@kanunilabs/datagrid 1.9.5 → 1.9.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- 'use strict';var datagridCore=require('@kanunilabs/datagrid-core');function Jo(l,u){let{controller:f,maxGroupLevels:D,t:v}=u,C=l.columnId,M=f.getColumnModel().getDef(C),A=f.getSort(),T=A.find($=>$.columnId===C),Z=f.getGroupLevels(),U=Z.includes(C),F=M?.sortable!==false,V=f.getColumnStates().find($=>$.id===C)?.pinned??null,ce=M?.groupable!==false,W=f.canGroup(),se=[{id:"sort-asc",label:v.sortAsc,disabled:!F||T?.direction==="asc",onSelect:()=>f.setSort([{columnId:C,direction:"asc"}])},{id:"sort-desc",label:v.sortDesc,disabled:!F||T?.direction==="desc",onSelect:()=>f.setSort([{columnId:C,direction:"desc"}])},{id:"sort-clear",label:v.clearSort,disabled:!T,onSelect:()=>f.setSort(A.filter($=>$.columnId!==C))},{id:"sep-1",separator:true},{id:"group",label:U?v.ungroupColumn:v.groupByColumn,disabled:!ce,onSelect:()=>{U?f.groupBy(Z.filter($=>$!==C)):f.groupBy([...Z,C].slice(-D));}},{id:"group-panel",label:u.groupPanelVisible?v.hideGroupPanel:v.showGroupPanel,onSelect:u.onToggleGroupPanel},{id:"footer",label:u.footerVisible?v.hideFooter:v.showFooter,onSelect:u.onToggleFooter},{id:"sep-2",separator:true},{id:"hide-column",label:v.hideColumn,disabled:f.getColumnStates().filter($=>$.visible).length<=1,onSelect:()=>f.setColumnVisible(C,false)},{id:"field-chooser",label:v.fieldChooser,onSelect:u.onOpenFieldChooser},{id:"sep-3",separator:true},{id:"best-fit",label:v.bestFit,disabled:M?.resizable===false,onSelect:()=>u.onBestFit(C)},{id:"best-fit-all",label:v.bestFitAll,onSelect:u.onBestFitAll}],ee=f.getColumnStates().filter($=>$.visible&&$.pinned===V).map($=>$.id),Re=ee.indexOf(C),S=M?.reorderable!==false&&Re>=0;return se.push({id:"sep-4",separator:true},{id:"move-left",label:v.moveLeft,disabled:!S||Re<=0,onSelect:()=>f.moveColumn(C,ee[Re-1])},{id:"move-right",label:v.moveRight,disabled:!S||Re<0||Re>=ee.length-1,onSelect:()=>f.moveColumn(C,ee[Re+2])},{id:"fixed-position",label:v.fixedPosition,items:[{id:"pin-left",label:v.pinLeft,disabled:V==="left",onSelect:()=>f.setColumnPinned(C,"left")},{id:"pin-right",label:v.pinRight,disabled:V==="right",onSelect:()=>f.setColumnPinned(C,"right")},{id:"pin-sticky",label:v.pinSticky,disabled:V==="sticky",onSelect:()=>f.setColumnPinned(C,"sticky")}]},{id:"unpin",label:v.unpin,disabled:V===null,onSelect:()=>f.setColumnPinned(C,null)}),W?se:se.filter($=>$.id!=="group"&&$.id!=="group-panel")}async function Qo(l,u){try{let f=u==="csv"?await l.exportToCsv():u==="excel"?await l.exportToExcel():u==="excel-selected"?await l.exportToExcel({selectedOnly:!0}):await l.exportToPdf();return datagridCore.downloadBlob(f.blob,f.fileName),{completed:!0}}catch(f){return f instanceof datagridCore.ExportAbortedError?{completed:false}:{completed:false,error:f instanceof Error?f.message:String(f)}}}var Ga=null;function cl(){return typeof document>"u"?null:(Ga??=document.createElement("canvas"),Ga.getContext("2d"))}function $a(l){let u=getComputedStyle(l);return `${u.fontStyle} ${u.fontWeight} ${u.fontSize} ${u.fontFamily}`}function pl(l){for(let u=l.firstElementChild;u;u=u.nextElementSibling)if(u.tagName!=="MARK")return true;return false}function fl(l){let u=l.map(D=>[D.style.width,D.style.minWidth,D.style.maxWidth]);for(let D of l)D.style.width="max-content",D.style.minWidth="0",D.style.maxWidth="none";let f=0;for(let D of l){let v=Math.ceil(D.getBoundingClientRect().width);v>f&&(f=v);}return l.forEach((D,v)=>{[D.style.width,D.style.minWidth,D.style.maxWidth]=u[v];}),f}function Zo(l,u){let f=cl();if(!f)return null;let D=typeof CSS<"u"&&CSS.escape?CSS.escape(u):u.replace(/"/g,'\\"'),v=l.querySelector(`.kanuni-datagrid-header-cell[data-column-id="${D}"]`),C=l.querySelectorAll(`.kanuni-datagrid-cell[data-column-id="${D}"]`);if(!v&&C.length===0)return null;let M=0;if(v){let A=v.querySelector(".kanuni-datagrid-header-label")??v;f.font=$a(A),M=f.measureText(A.textContent??"").width+44;}if(C.length>0){f.font=$a(C[0]);let A=[];for(let T=0;T<C.length;T++){if(pl(C[T])){A.push(C[T]);continue}let Z=C[T].textContent??"";if(Z==="")continue;let U=f.measureText(Z).width+20;U>M&&(M=U);}A.length>0&&(M=Math.max(M,fl(A)));}return M===0?null:Math.round(Math.min(640,Math.max(48,M)))}function Va(l){let u=Number(l.weekStartsOn);return Number.isInteger(u)&&u>=0&&u<=6?u:0}function kl(l){let u=[l.weekdaySu,l.weekdayMo,l.weekdayTu,l.weekdayWe,l.weekdayTh,l.weekdayFr,l.weekdaySa],f=Va(l);return [...u.slice(f),...u.slice(0,f)]}function Rl(l){return [l.monthJanuary,l.monthFebruary,l.monthMarch,l.monthApril,l.monthMay,l.monthJune,l.monthJuly,l.monthAugust,l.monthSeptember,l.monthOctober,l.monthNovember,l.monthDecember]}function xl(l,u){return !l||!u?false:l.getFullYear()===u.getFullYear()&&l.getMonth()===u.getMonth()&&l.getDate()===u.getDate()}var Ba="http://www.w3.org/2000/svg";function Tl(){let l=document.createElementNS(Ba,"svg");l.setAttribute("width","14"),l.setAttribute("height","14"),l.setAttribute("viewBox","0 0 16 16"),l.setAttribute("aria-hidden","true"),l.setAttribute("focusable","false");let u=document.createElementNS(Ba,"path");return u.setAttribute("d","M3 4h10v9H3z M3 6.5h10 M5.5 2.5v2 M10.5 2.5v2"),u.setAttribute("fill","none"),u.setAttribute("stroke","currentColor"),u.setAttribute("stroke-width","1.3"),u.setAttribute("stroke-linecap","round"),l.appendChild(u),l}function Ut(l){let{t:u,format:f=datagridCore.DEFAULT_DATE_FORMAT,autoFocus:D=true}=l,v=Rl(u),C=kl(u),M=document.createElement("span");M.className="kanuni-datagrid-date-editor";let A=document.createElement("input");A.type="text",A.inputMode="numeric",A.autocomplete="off",A.placeholder=f,l.ariaLabel&&A.setAttribute("aria-label",l.ariaLabel),l.testId&&A.setAttribute("data-testid",l.testId),l.columnId&&A.setAttribute("data-column-id",l.columnId),l.disabled&&(A.disabled=true);let T=null,Z=false,U=null,F=datagridCore.toDate(l.value),V=F??new Date,ce=()=>T===null?datagridCore.formatDateValue(l.value,f):datagridCore.maskDate(T,f),W=()=>T===null?null:datagridCore.parseDateValue(datagridCore.maskDate(T,f),f),se=()=>T!==null&&T.length===datagridCore.dateDigitCount(f)&&W()===null,ee=()=>{let K=se()||!!l.invalid;A.className=`kanuni-datagrid-editor${K?" kanuni-datagrid-editor--invalid":""}`,K?A.setAttribute("aria-invalid","true"):A.removeAttribute("aria-invalid");};A.value=ce(),ee();let Re=K=>{if(K===null){l.onChange(null);return}l.onChange(l.value instanceof Date?K:datagridCore.toIsoDate(K));},S=()=>{if(!U)return;if(!A.isConnected){z();return}let K=A.getBoundingClientRect(),Ce=datagridCore.placeAnchoredLayer({anchor:{left:K.left,top:K.top,bottom:K.bottom},width:U.offsetWidth,height:U.offsetHeight,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight});U.style.left=`${Ce.left}px`,U.style.top=`${Ce.top}px`;},$=()=>S();function X(){if(!U)return;U.textContent="";let K=document.createElement("div");K.className="kanuni-datagrid-date-popup-head";let Ce=document.createElement("button");Ce.type="button",Ce.setAttribute("aria-label",u.datePreviousMonth),Ce.setAttribute("data-testid","dg-date-prev"),Ce.textContent="\u2039",Ce.addEventListener("click",()=>{V=new Date(V.getFullYear(),V.getMonth()-1,1),X();});let Me=document.createElement("span");Me.setAttribute("data-testid","dg-date-title"),Me.textContent=`${v[V.getMonth()]} ${V.getFullYear()}`;let pe=document.createElement("button");pe.type="button",pe.setAttribute("aria-label",u.dateNextMonth),pe.setAttribute("data-testid","dg-date-next"),pe.textContent="\u203A",pe.addEventListener("click",()=>{V=new Date(V.getFullYear(),V.getMonth()+1,1),X();}),K.append(Ce,Me,pe);let g=document.createElement("div");g.className="kanuni-datagrid-date-popup-grid",g.setAttribute("role","grid");for(let be of C){let Y=document.createElement("span");Y.className="kanuni-datagrid-date-weekday",Y.setAttribute("role","columnheader"),Y.textContent=be,g.appendChild(Y);}let N=(new Date(V.getFullYear(),V.getMonth(),1).getDay()-Va(u)+7)%7,we=datagridCore.daysInMonth(V.getFullYear(),V.getMonth()+1);for(let be=0;be<42;be++){let Y=be-N+1,le=new Date(V.getFullYear(),V.getMonth(),Y),ve=Y<1||Y>we,Se=xl(le,W()??F),_=document.createElement("button");_.type="button",_.setAttribute("role","gridcell"),_.className=`kanuni-datagrid-date-day${ve?" kanuni-datagrid-date-day--outside":""}${Se?" kanuni-datagrid-date-day--selected":""}`,_.setAttribute("aria-selected",String(Se)),_.setAttribute("data-testid","dg-date-day"),_.setAttribute("data-date",datagridCore.toIsoDate(le)),_.textContent=String(le.getDate()),_.addEventListener("click",()=>q(le)),g.appendChild(_);}U.append(K,g);}function ae(){if(Z)return;Z=true,J.setAttribute("aria-expanded","true"),V=W()??F??new Date,U=document.createElement("div"),U.className=`kanuni-datagrid-detached kanuni-datagrid-date-popup${l.surfaceClass?` ${l.surfaceClass}`:""}`,U.style.position="fixed",U.setAttribute("data-testid","dg-date-calendar"),U.setAttribute("role","dialog"),U.setAttribute("aria-label",l.ariaLabel?`${l.ariaLabel} ${u.dateCalendar}`:u.dateCalendar),U.addEventListener("mousedown",Ce=>Ce.preventDefault());let K=datagridCore.portalContainerFor(M);datagridCore.portalTarget(K).appendChild(datagridCore.markPortal(U,K)),window.addEventListener("scroll",$,true),window.addEventListener("resize",$),l.onPortalOpen?.(z),X(),S();}function z(){Z&&(Z=false,J.setAttribute("aria-expanded","false"),window.removeEventListener("scroll",$,true),window.removeEventListener("resize",$),U?.remove(),U=null);}function q(K){T=null,z(),Re(K),A.value=datagridCore.formatDateValue(l.value instanceof Date?K:datagridCore.toIsoDate(K),f),ee(),A.focus({preventScroll:true});}function te(){if(T===null)return;if(T.length===0){Re(null),T=null,A.value=ce(),ee();return}let K=W();K&&Re(K),T=null,A.value=ce(),ee();}A.addEventListener("input",()=>{T=datagridCore.dateDigits(A.value,f),A.value=datagridCore.maskDate(T,f),ee();}),A.addEventListener("keydown",K=>{if(K.key==="Escape"){if(K.preventDefault(),K.stopPropagation(),Z){z();return}T=null,l.onCancel();return}if(Z){let Ce=K.key==="ArrowLeft"?-1:K.key==="ArrowRight"?1:K.key==="ArrowUp"?-7:K.key==="ArrowDown"?7:0;if(Ce!==0){K.preventDefault(),K.stopPropagation();let Me=W()??F??new Date,pe=new Date(Me.getFullYear(),Me.getMonth(),Me.getDate()+Ce);T=datagridCore.dateDigits(datagridCore.formatDateValue(pe,f),f),A.value=datagridCore.maskDate(T,f),V=pe,X(),ee();return}if(K.key==="Enter"){K.preventDefault(),K.stopPropagation();let Me=W();z(),Me&&q(Me);return}}if(K.key==="Enter"){K.preventDefault(),K.stopPropagation(),te(),l.onCommit();return}if(K.key==="Tab"){te(),z(),l.onTab&&(K.preventDefault(),K.stopPropagation(),l.onTab(K.shiftKey));return}if(K.key.length===1&&!K.ctrlKey&&!K.metaKey&&!/\d/.test(K.key)){K.preventDefault();return}K.stopPropagation();}),A.addEventListener("blur",()=>{Z||te();});let J=document.createElement("button");return J.type="button",J.className="kanuni-datagrid-date-button",J.setAttribute("aria-label",l.ariaLabel?`${l.ariaLabel} \u2014 ${u.dateOpenCalendar}`:u.dateOpenCalendar),J.setAttribute("aria-expanded","false"),J.setAttribute("data-testid","dg-date-open"),l.disabled&&(J.disabled=true),J.tabIndex=-1,J.addEventListener("mousedown",K=>K.preventDefault()),J.addEventListener("click",()=>{Z?z():ae(),A.focus({preventScroll:true});}),J.appendChild(Tl()),M.append(A,J),D&&queueMicrotask(()=>{A.isConnected&&(A.focus({preventScroll:true}),A.select());}),M}function _a(l,u){return l==null?"":u==="date"&&l instanceof Date?l.toISOString().slice(0,10):String(l)}function Wa(l,u){if(u){let f=document.createElement("span");f.id="kanuni-datagrid-editor-error",f.setAttribute("role","alert"),f.className="kanuni-datagrid-editor-error",f.textContent=u,l.appendChild(f);}return l}function nr(l){let{value:u,dataType:f,error:D,seeded:v=false}=l,C=document.createDocumentFragment();if(l.options===null){let T=document.createElement("input");return T.type="text",T.value="\u2026",T.readOnly=true,T.disabled=true,T.className="kanuni-datagrid-editor",T.setAttribute("data-testid","dg-cell-editor"),C.appendChild(T),C}if(l.options&&l.options.length>0&&l.renderLookup)return C.appendChild(l.renderLookup({options:l.options,value:u,matchMode:l.matchMode,allowCustom:l.allowCustom,invalid:!!D,testId:"dg-cell-editor",ariaLabel:l.ariaLabel,surfaceClass:l.surfaceClass,onPortalOpen:l.onPortalOpen,noMatchText:l.t?.editNoMatch??"No match",onChange:l.onChange,onCommit:()=>l.onCommit("none"),onCancel:l.onCancel,onTab:T=>l.onTab(T?-1:1)})),Wa(C,D);if(f==="date"&&l.t)return C.appendChild(Ut({value:u,format:l.dateFormat,invalid:!!D,testId:"dg-cell-editor",ariaLabel:l.ariaLabel,surfaceClass:l.surfaceClass,onPortalOpen:l.onPortalOpen,t:l.t,onChange:l.onChange,onCommit:()=>l.onCommit("none"),onCancel:l.onCancel,onTab:T=>l.onTab(T?-1:1)})),Wa(C,D);let M=document.createElement("input");M.className=`kanuni-datagrid-editor${D?" kanuni-datagrid-editor--invalid":""}`,M.setAttribute("data-testid","dg-cell-editor"),M.setAttribute("aria-invalid",String(!!D)),D&&M.setAttribute("aria-errormessage","kanuni-datagrid-editor-error");let A=false;if(f==="boolean"?(M.type="checkbox",M.checked=u===true,M.addEventListener("change",()=>l.onChange(M.checked))):f==="number"?(M.type=Number.isNaN(Number(u))&&u!==null&&u!==void 0&&u!==""?"text":"number",M.value=_a(u,f),M.addEventListener("input",()=>l.onChange(M.value===""?null:Number(M.value)))):(M.type="text",M.value=_a(u,f),M.addEventListener("input",()=>l.onChange(M.value))),M.addEventListener("keydown",T=>{T.isComposing||T.keyCode===229||(T.key==="Enter"?(T.preventDefault(),T.stopPropagation(),l.onCommit(T.shiftKey?"none":"down")):T.key==="Tab"?(T.preventDefault(),T.stopPropagation(),A=true,l.onTab(T.shiftKey?-1:1)):T.key==="Escape"?(T.preventDefault(),T.stopPropagation(),l.onCancel()):T.stopPropagation());}),M.addEventListener("blur",()=>{A||l.onCommit("none");}),C.appendChild(M),D){let T=document.createElement("span");T.id="kanuni-datagrid-editor-error",T.setAttribute("role","alert"),T.className="kanuni-datagrid-editor-error",T.textContent=D,C.appendChild(T);}return queueMicrotask(()=>{if(M.isConnected&&(M.focus({preventScroll:true}),M.type!=="checkbox"))if(v){if(M.type==="text"||M.type==="search"){let T=M.value.length;M.setSelectionRange(T,T);}}else M.select();}),C}var Ml=0;function or(l){return new Promise(u=>{let f=document.createElement("div");f.className=`kanuni-datagrid-detached kanuni-datagrid-dialog-root${l.surfaceClass?` ${l.surfaceClass}`:""}`,f.setAttribute("role","presentation");let D=document.activeElement,v=W=>{document.removeEventListener("keydown",C,true);let se=f.contains(document.activeElement);f.remove(),se&&D?.isConnected&&D.focus({preventScroll:true}),u(W);},C=W=>{if(W.key==="Escape"){W.stopPropagation(),v(false);return}if(W.key==="Tab"){let se=Array.from(F.querySelectorAll("button:not([disabled])"));if(se.length===0)return;let ee=se.indexOf(document.activeElement),Re=W.shiftKey?ee<=0?se.length-1:ee-1:ee===se.length-1?0:ee+1;W.preventDefault(),W.stopPropagation(),se[Re].focus();}};document.addEventListener("keydown",C,true);let M=document.createElement("div");M.className="kanuni-datagrid-dialog-overlay",M.addEventListener("mousedown",()=>v(false));let A=document.createElement("div");A.className="kanuni-datagrid-dialog",A.setAttribute("role","alertdialog"),A.setAttribute("aria-modal","true");let T=`dg-dialog-${++Ml}`;A.setAttribute("aria-labelledby",`${T}-title`),A.setAttribute("aria-describedby",`${T}-message`),A.setAttribute("data-testid","dg-dialog");let Z=document.createElement("div");Z.className="kanuni-datagrid-dialog-title",Z.id=`${T}-title`,Z.textContent=l.title;let U=document.createElement("div");U.className="kanuni-datagrid-dialog-message",U.id=`${T}-message`,U.textContent=l.message;let F=document.createElement("div");if(F.className="kanuni-datagrid-dialog-actions",l.cancelLabel!==void 0){let W=document.createElement("button");W.type="button",W.setAttribute("data-testid","dg-dialog-cancel"),W.textContent=l.cancelLabel,W.addEventListener("click",()=>v(false)),F.appendChild(W);}let V=document.createElement("button");V.type="button",V.className=`kanuni-datagrid-dialog-primary${l.danger?" kanuni-datagrid-dialog-primary--danger":""}`,V.setAttribute("data-testid","dg-dialog-confirm"),V.textContent=l.confirmLabel,V.addEventListener("click",()=>v(true)),F.appendChild(V),A.append(Z,U,F),f.append(M,A);let ce=datagridCore.portalContainerFor(l.anchor);datagridCore.portalTarget(ce).appendChild(datagridCore.markPortal(f,ce)),V.focus();})}function Dl(l,u){switch(l){case "number":return u==null||u===""||!Number.isNaN(Number(u))?"number":"text";case "boolean":return "checkbox";default:return "text"}}function Nl(l,u){if(u==="number"){if(l==="")return null;let f=Number(l);return Number.isNaN(f)?l:f}return l}function rr(l){let{t:u,popup:f=false,inline:D=false}=l,v=document.createElement("div");v.className=`kanuni-datagrid-edit-form${D?" kanuni-datagrid-edit-form--inline":""}`,v.setAttribute("data-testid","dg-edit-form"),v.setAttribute("data-row-key",String(l.rowKey)),f&&v.setAttribute("data-popup",""),v.setAttribute("role",f?"dialog":"group"),f&&v.setAttribute("aria-modal","true"),v.setAttribute("aria-label",l.isNew?u.formAddTitle:u.formEditTitle);let C=document.createElement("div");C.className="kanuni-datagrid-edit-form-header";let M=document.createElement("strong");M.textContent=l.isNew?u.formAddTitle:u.formEditTitle,C.appendChild(M);let A=document.createElement("div");A.className="kanuni-datagrid-edit-form-error",A.setAttribute("role","alert"),A.setAttribute("data-testid","dg-form-error"),A.style.display="none";let T=document.createElement("div");T.className="kanuni-datagrid-edit-form-fields";let Z=new Map,U=(S,$)=>{let X=l.getValue(S.columnId),ae=l.getSaving()||!S.editable,z=`dg-field-${String(l.rowKey)}-${S.columnId}`;if(S.lookup&&!l.renderLookup){let te=document.createElement("input");te.id=z,te.type="text",te.className="kanuni-datagrid-edit-form-input",te.setAttribute("data-testid",z),te.disabled=true,te.readOnly=true;let J=S.lookup.options?.find(K=>Object.is(K.value,X));return te.value=J?J.label:X==null?"":String(X),te}if(S.lookup&&l.renderLookup){let te=document.createElement("div");if(te.className="kanuni-datagrid-edit-form-lookup",S.lookup.options===null){let J=document.createElement("input");return J.type="text",J.value="\u2026",J.readOnly=true,J.disabled=true,J.className="kanuni-datagrid-editor",J.setAttribute("data-testid",z),te.appendChild(J),te}return te.appendChild(l.renderLookup({options:S.lookup.options,value:X,matchMode:S.lookup.matchMode,allowCustom:S.lookup.allowCustom,invalid:!!$,autoFocus:false,testId:z,columnId:S.columnId,ariaLabel:S.label,surfaceClass:l.surfaceClass,onPortalOpen:l.onPortalOpen,noMatchText:u.editNoMatch,onChange:J=>l.onChange(S.columnId,J),commitOnPick:false,onCommit:()=>l.onSave(),onCancel:l.onCancel})),te}if(S.dataType==="date"){let te=document.createElement("div");return te.className="kanuni-datagrid-edit-form-lookup",te.appendChild(Ut({value:X,format:S.dateFormat,invalid:!!$,disabled:ae,autoFocus:false,testId:z,columnId:S.columnId,ariaLabel:S.label,surfaceClass:l.surfaceClass,onPortalOpen:l.onPortalOpen,t:u,onChange:J=>l.onChange(S.columnId,J),onCommit:()=>l.onSave(),onCancel:l.onCancel})),te}let q=document.createElement("input");return q.id=z,q.className="kanuni-datagrid-edit-form-input",q.setAttribute("data-testid",z),q.disabled=ae,S.dataType==="boolean"?(q.type="checkbox",q.checked=X===true,q.addEventListener("change",()=>l.onChange(S.columnId,q.checked)),q):(q.type=Dl(S.dataType,X),$&&q.setAttribute("aria-invalid","true"),q.value=X==null?"":String(X),q.addEventListener("input",()=>l.onChange(S.columnId,Nl(q.value,S.dataType))),q)},F=l.getErrors();for(let S of l.fields){let $=document.createElement("label");$.className="kanuni-datagrid-edit-form-field",$.setAttribute("data-field-id",S.columnId);let X=document.createElement("span");X.className="kanuni-datagrid-edit-form-label",X.textContent=S.label;let ae=document.createElement("span");ae.style.display="contents",ae.appendChild(U(S,F[S.columnId]??null));let z=document.createElement("span");z.className="kanuni-datagrid-edit-form-message",z.setAttribute("role","alert"),z.style.display="none",$.append(X,ae,z),T.appendChild($),Z.set(S.columnId,{wrap:$,message:z,controlHost:ae,field:S});}let V=document.createElement("div");V.className="kanuni-datagrid-edit-form-footer";let ce=typeof navigator<"u"&&/Mac|iP(hone|ad)/.test(navigator.platform??""),W=document.createElement("span");W.className="kanuni-datagrid-edit-form-hint",W.textContent=u.formShortcut.replace("{key}",ce?"\u2318":"Ctrl");let se=document.createElement("button");se.type="button",se.setAttribute("data-testid","dg-form-cancel"),se.textContent=u.cancel,se.addEventListener("click",()=>l.onCancel());let ee=document.createElement("button");ee.type="button",ee.className="kanuni-datagrid-edit-form-save",ee.setAttribute("data-testid","dg-form-save"),ee.textContent=u.save,ee.addEventListener("click",()=>l.onSave()),V.append(W,se,ee),v.append(C,A,T,V),v.addEventListener("keydown",S=>{if(S.key==="Escape"){S.preventDefault(),S.stopPropagation(),l.onCancel();return}if(S.key==="Enter"&&(S.ctrlKey||S.metaKey)){S.preventDefault(),S.stopPropagation(),l.onSave();return}if(S.key==="Enter"&&!(S.target instanceof HTMLButtonElement)){S.preventDefault();return}if(S.key!=="Tab"||!f)return;let $=Array.from(v.querySelectorAll("input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled])"));if($.length===0)return;let X=$[0],ae=$[$.length-1];!S.shiftKey&&document.activeElement===ae?(S.preventDefault(),X.focus()):S.shiftKey&&document.activeElement===X&&(S.preventDefault(),ae.focus());});let Re=()=>{let S=l.getErrors(),$=l.getSaving(),X=l.getSaveError();A.textContent=X??"",A.style.display=X?"":"none",ee.disabled=$,se.disabled=$,ee.textContent=$?u.editSaving:u.save;for(let[z,q]of Z){let te=S[z]??null;q.message.textContent=te??"",q.message.style.display=te?"":"none",te?q.wrap.setAttribute("data-invalid",""):q.wrap.removeAttribute("data-invalid");let J=q.controlHost.querySelector("input, .kanuni-datagrid-editor");J&&J.classList.toggle("kanuni-datagrid-editor--invalid",!!te);}let ae=Object.keys(S)[0];ae&&Z.get(ae)?.wrap.querySelector("input:not([disabled])")?.focus();};return queueMicrotask(()=>{if(!v.isConnected)return;let S=v.querySelector("input:not([disabled]), select:not([disabled]), textarea:not([disabled])");S?.focus(),S instanceof HTMLInputElement&&S.type==="text"&&S.select(),l.onNaturalHeight&&l.onNaturalHeight(v.clientHeight-T.clientHeight+T.scrollHeight);}),{element:v,refresh:Re,setLookupOptions:(S,$)=>{let X=Z.get(S);if(!X)return;X.field.lookup={...X.field.lookup,options:$};let ae=l.getErrors();X.controlHost.textContent="",X.controlHost.appendChild(U(X.field,ae[S]??null));},dispose:()=>v.remove()}}function Ua(l){let{grid:u,engine:f,mode:D,t:v,extension:C}=l,M=u.controller,A=datagridCore.isRowEditMode(D),T=null,Z=async()=>{T=null;let k=await f.saveChanges();if(k.saved||k.superseded){_();return}T={message:k.error??v.editSaveFailed,rowKey:k.rowKey,columnId:k.columnId},_(),k.rowKey!==void 0&&k.columnId!==void 0&&(M.revealRow(k.rowKey),M.focusCell(k.rowKey,k.columnId));},U=()=>{T=null,f.cancelChanges();},F=null,V=null,ce=null,W=null,se=null,ee=new Map,Re=0,S=k=>(F=null,f.beginRowEdit(k)),$=null,X=(k,P,ne)=>!A||f.isEditingRow()||!f.canEditRow(k)||(M.scrollToCell(k,P),!S(k))?false:(D==="row"&&ne!==void 0&&($=P,f.setRowEditValue(P,ne)),true),ae=async()=>{if(!f.getRowSession())return false;let P=await f.saveRowEdit(M.getVisualColumnIds());return F=P.saved?null:P.error??null,P.saved?l.focusGrid():ue(),P.saved},z=()=>{F=null,f.cancelRowEdit(),l.focusGrid();},q=k=>{let P=M.getColumnLayout(),ne=M.getColumnModel(),Ee=++Re;return [...P.left,...P.center,...P.right].filter(xe=>!datagridCore.isChromeColumn(xe.state.id)).map(xe=>{let ye=xe.state.id,Ne=ne.getDef(ye),yt=C.formLookup?C.formLookup(k,ye,_e=>{Re===Ee&&ce?.setLookupOptions(ye,_e);}):Ne?.lookup?{options:datagridCore.staticLookupItems(Ne)??[]}:void 0;return {columnId:ye,label:Ne?.headerName??Ne?.field??ye,dataType:ne.getEditorDataType(ye),editable:f.canUpdate(k,ye),dateFormat:Ne?.dateFormat,lookup:yt}})},te=()=>se??l.formHeight??datagridCore.DEFAULT_EDIT_FORM_HEIGHT,J=(k,P)=>rr({rowKey:k,fields:q(k),getValue:ne=>f.rowEditValue(ne),getErrors:()=>f.getRowSession()?.errors??{},getSaving:()=>f.getRowSession()?.saving??false,getSaveError:()=>F,isNew:f.getRowSession()?.isNew??false,popup:!P,inline:P,surfaceClass:l.surfaceClass(),renderLookup:C.renderLookup,onPortalOpen:l.trackPortal,t:v,onNaturalHeight:P?ne=>{let Ee=Math.ceil(ne);if(Ee>0&&Ee!==se){se=Ee;let xe=f.getRowSession();xe&&D==="form"&&M.setEditFormRow(xe.rowKey,{height:te(),atTop:xe.isNew});}}:void 0,onChange:(ne,Ee)=>f.setRowEditValue(ne,Ee),onSave:()=>{ae();},onCancel:z}),K=()=>{ee.clear(),ce?.dispose(),ce=null,W?.remove(),W=null;};function Ce(){if(!A)return;let k=f.getRowSession();if(k&&D!=="row"?u.element.setAttribute("data-row-session",D):u.element.removeAttribute("data-row-session"),!k){V!==null&&(V=null,se=null,K(),D==="form"&&M.setEditFormRow(null));return}if(V===k.rowKey){ce?.refresh();return}if(K(),V=k.rowKey,D==="form"){M.setEditFormRow(k.rowKey,{height:te(),atTop:k.isNew}),M.revealRow(k.rowKey);return}if(D==="popup"){let P=l.surfaceClass();W=document.createElement("div"),W.className=`kanuni-datagrid-detached kanuni-datagrid-edit-popup${P?` ${P}`:""}`;let ne=document.createElement("div");ne.className="kanuni-datagrid-edit-popup-overlay",ne.addEventListener("mousedown",()=>z()),ce=J(k.rowKey,false),W.append(ne,ce.element);let Ee=datagridCore.portalContainerFor(l.barHost);datagridCore.portalTarget(Ee).appendChild(datagridCore.markPortal(W,Ee));return}M.revealRow(k.rowKey),queueMicrotask(()=>{let P=f.getRowSession();if(!P||P.rowKey!==V)return;let ne=u.element.querySelectorAll('[data-testid="dg-row-editor"]');if(ne.length===0)return;let Ee=M.getFocus(),ye=(Ee&&String(Ee.rowKey)===String(P.rowKey)?u.element.querySelector(`[data-testid="dg-row-editor"][data-column-id="${CSS.escape(Ee.columnId)}"]`):null)??ne[0],Ne=$!==null&&ye.getAttribute("data-column-id")===$;$=null,ye.focus({preventScroll:true}),ye instanceof HTMLInputElement&&(Ne?ye.setSelectionRange(ye.value.length,ye.value.length):ye.select());});}let Me=k=>{let P=ee.get(k);if(P)return P;let ne=M.getColumnModel(),Ee=ne.getDef(k),xe=ne.getEditorDataType(k),ye=f.rowEditValue(k),Ne=f.getRowSession()?.errors[k]??null,yt=Ee?.headerName??k,_e,ht=C.resolveLookup?.(V,k);if(ht&&ht.options!==void 0&&C.renderLookup)_e=C.renderLookup({options:ht.options??[],value:ye,matchMode:ht.matchMode,allowCustom:ht.allowCustom,invalid:!!Ne,autoFocus:false,testId:"dg-row-editor",columnId:k,ariaLabel:yt,surfaceClass:l.surfaceClass(),noMatchText:v.editNoMatch,onChange:Te=>f.setRowEditValue(k,Te),commitOnPick:false,onCommit:()=>{ae();},onCancel:z});else if(xe==="date")_e=Ut({value:ye,format:Ee?.dateFormat,invalid:!!Ne,autoFocus:false,testId:"dg-row-editor",columnId:k,ariaLabel:yt,surfaceClass:l.surfaceClass(),onPortalOpen:l.trackPortal,t:v,onChange:Te=>f.setRowEditValue(k,Te),onCommit:()=>{ae();},onCancel:z});else {let Te=document.createElement("input");Te.className=`kanuni-datagrid-editor${Ne?" kanuni-datagrid-editor--invalid":""}`,Te.setAttribute("data-testid","dg-row-editor"),Te.setAttribute("data-column-id",k),Te.setAttribute("aria-label",yt),Ne&&(Te.title=Ne),xe==="boolean"?(Te.type="checkbox",Te.checked=ye===true,Te.addEventListener("change",()=>f.setRowEditValue(k,Te.checked))):(Te.type=xe==="number"?"number":"text",Te.value=ye==null?"":String(ye),Te.addEventListener("input",()=>{let We=Te.value;f.setRowEditValue(k,xe==="number"?We===""?null:Number(We):We);})),Te.addEventListener("keydown",We=>{We.key==="Enter"?(We.preventDefault(),We.stopPropagation(),ae()):We.key==="Escape"?(We.preventDefault(),We.stopPropagation(),z()):We.stopPropagation();}),_e=Te;}return ee.set(k,_e),_e},pe=document.createElement("div");pe.className="kanuni-datagrid-filter-bar kanuni-datagrid-edit-bar",pe.setAttribute("data-testid","dg-edit-bar"),C.decorateBar?.(pe);let g=(k,P,ne,Ee)=>{let xe=document.createElement("button");return xe.type="button",ne&&(xe.className="kanuni-datagrid-filter-primary"),xe.setAttribute("data-testid",k),xe.textContent=P,xe.addEventListener("click",Ee),xe},I=k=>{let P=document.createElement("span");return P.className="kanuni-datagrid-edit-form-error",P.setAttribute("data-testid",k),P.style.display="none",P},N=null,we=null,be=null,Y=null,le=null,ve=null,Se=null;D==="batch"&&(N=g("dg-save-changes",v.editSaveChanges,true,()=>{Z();}),we=g("dg-discard-changes",v.editDiscardChanges,false,U),be=I("dg-save-error"),pe.append(N,we,be)),D==="row"&&(Y=document.createElement("span"),Y.setAttribute("data-testid","dg-row-editing"),Y.className="kanuni-datagrid-filter-active",Y.style.display="none",le=g("dg-save-row",v.editSaveRow,true,()=>{ae();}),le.style.display="none",ve=g("dg-cancel-row",v.cancel,false,z),ve.style.display="none",Se=I("dg-row-save-error"),pe.append(Y,le,ve,Se)),pe.childElementCount>0&&l.barHost?.appendChild(pe);function _(){let k=f.hasChanges();if(N&&(N.style.display=k?"":"none",N.textContent=v.editSaveCount.replace("{n}",String(f.getChanges().length)),N.disabled=f.isSaving()),we&&(we.style.display=k?"":"none"),be&&(be.textContent=T?.message??"",be.style.display=T?"":"none"),Y&&le&&ve&&Se){let P=f.getRowSession(),ne=P?"":"none";Y.style.display=ne,le.style.display=ne,ve.style.display=ne,P&&(Y.textContent=P.isNew?v.formAddTitle:v.editEditingRow.replace("{row}",String(P.rowKey)),le.disabled=P.saving,le.textContent=P.saving?v.editSaving:v.editSaveRow,ve.disabled=P.saving),Se.textContent=F??"",Se.style.display=P&&F?"":"none";}pe.style.display=Array.from(pe.children).some(P=>P.style.display!=="none")?"":"none";}_();function ue(){T=null,_(),Ce();}return {rowModeActive:A,beginRowEdit:S,openRowFromKeys:X,saveRowEdit:ae,cancelRowEdit:z,saveChanges:Z,cancelChanges:U,renderRowCell:k=>{if(!(D!=="row"||k.node.kind!=="data"||datagridCore.isChromeColumn(k.columnId))&&f.isEditingRow(k.node.key))return f.canUpdate(k.node.key,k.columnId)?Me(k.columnId):l.defaultContent(k,f.rowEditValue(k.columnId))},renderEditForm:k=>{if(D!=="form")return;let P=f.getRowSession();if(!(!P||P.rowKey!==k))return (!ce||ce.element.getAttribute("data-row-key")!==String(k))&&(ce?.dispose(),ce=J(k,true)),ce.element},onCellDoubleClick:k=>A?(k.node.kind==="data"&&!f.isEditingRow()&&f.canEditRow(k.node.key)&&S(k.node.key),true):false,handleRowKeys:k=>!f.isEditingRow()||k.target?.closest?.('[data-testid="dg-edit-form"]')?false:k.key==="Enter"?(k.preventDefault(),ae(),true):k.key==="Escape"?(k.preventDefault(),z(),true):false,sync:ue,dispose:()=>{K(),D==="form"&&V!==null&&M.setEditFormRow(null),V=null,u.element.removeAttribute("data-row-session"),pe.remove();}}}function ir(l,u,f,D,v={}){let C=l.controller,M=u.mode??"cell";u.formLabels&&(f={...f,...u.formLabels});let A=v.isColumnEditable??(g=>C.getColumnModel().getDef(g)?.editable!==false),T=()=>{C.refreshCells(),q.sync(),v.onChange?.(),Z.schedule("footer",()=>C.refreshSummaries());},Z=datagridCore.createDebouncedCommit(150),U=g=>C.getRowByKey(g),F=new datagridCore.EditingEngine({mode:M,messages:f,onChange:T,onAutoSaveFailed:g=>se(g),onCellValueChanged:g=>C.notifyCellValueChanged(g),onEditingStarted:g=>C.notifyEditingStarted(g),onEditingStopped:g=>C.notifyEditingStopped(g),onRowEditingStarted:g=>C.notifyRowEditingStarted(g),onRowEditingStopped:g=>C.notifyRowEditingStopped(g),editableColumns:g=>{let I=C.getColumnLayout();return [...I.left,...I.center,...I.right].map(N=>N.state.id).filter(N=>!datagridCore.isChromeColumn(N)&&F.canUpdate(g,N))},readValue:(g,I)=>{let N=U(g);return N?C.getColumnModel().getStoredValue(N,I):void 0},formatForEdit:(g,I,N)=>C.formatCellForEdit(I,N),parseFromEdit:(g,I,N)=>C.parseCellFromEdit(I,N,g),readRow:U,isColumnEditable:A,applyValue:(g,I,N)=>C.writeCellValue(g,I,N),storedValue:(g,I,N)=>C.valueAfterWrite(g,I,N),onSave:g=>u.onSave?.(g),...v.engine});C.setPendingValueReader({effectiveValue:(g,I,N)=>F.changes.effectiveValue(g,I,N),effectiveRow:(g,I)=>F.changes.applyPendingTo(g,I),hasPending:()=>F.changes.hasChanges()}),C.setEditingDelegate({startEditingCell:(g,I)=>(C.scrollToCell(g,I),F.beginEdit(g,I)),stopEditing:async g=>{if(F.isEditingRow())return g?(q.cancelRowEdit(),true):q.saveRowEdit();if(!F.getSession())return false;if(g)return F.cancelEdit(),W(),true;let I=F.commitEdit();return I&&W(),I},getEditingCells:()=>{let g=F.getRowSession();if(g)return C.getVisualColumnIds().filter(N=>!datagridCore.isChromeColumn(N)&&F.canUpdate(g.rowKey,N)).map(N=>({rowKey:g.rowKey,columnId:N}));let I=F.getSession();return I?[{rowKey:I.rowKey,columnId:I.columnId}]:[]}});let V=false,ce=[C.events.on("rowsChanged",g=>{V=g.removed===0;}),C.events.on("dataUpdated",()=>{let g=V;V=false,!g&&F.retainKeys(new Set(C.getDataRows().map(I=>I.key)));})];function W(){let g=l.element.querySelector(".kanuni-datagrid-scroller");(g&&g.tabIndex>=0?g:l.element).focus({preventScroll:true});}function se(g){let I=g.columnId!==void 0?C.getColumnModel().getDef(g.columnId)?.headerName??g.columnId:null,N=g.error??f.editSaveFailed;or({title:f.editCannotSave,message:I?`${I}: ${N}`:N,confirmLabel:f.ok,surfaceClass:D.surfaceClass(),anchor:l.element}),g.rowKey!==void 0&&g.columnId!==void 0&&(C.revealRow(g.rowKey),C.focusCell(g.rowKey,g.columnId));}let ee=(g,I={})=>{let N=F.getSession(),we=N?{rowKey:N.rowKey,columnId:N.columnId}:C.getFocus();if(!we||!F.commitEdit())return false;let be=C.getColumnModel().runtime().filter(_=>_.state.visible).map(_=>_.state.id);if(datagridCore.edgeEditableColumn(be,A,1)===null)return false;let Y=C.getRows(),le=Y.findIndex(_=>_.key===we.rowKey);if(le<0)return false;let ve=datagridCore.nextEditableColumn(be,A,we.columnId,g);if(ve===null){if(I.cycle===false)return false;let _=g;do le+=_;while(le>=0&&le<Y.length&&Y[le]?.kind!=="data");if(le<0||le>=Y.length)return false;ve=datagridCore.edgeEditableColumn(be,A,g);}let Se=Y[le];return !Se||Se.kind!=="data"?false:(C.focusCell(Se.key,ve),C.scrollToCell(Se.key,ve),I.open===true?F.beginEdit(Se.key,ve):(W(),true))},Re=g=>{if(F.getSession())return false;let I=C.getFocus();if(!I||!A(I.columnId))return false;let N=C.getColumnModel().getEditorDataType(I.columnId);if(N==="boolean"||N==="date")return false;let we=N==="number"?Number.isNaN(Number(g))?null:Number(g):g;return we===null?false:q.rowModeActive?q.openRowFromKeys(I.rowKey,I.columnId,we):(C.scrollToCell(I.rowKey,I.columnId),F.beginEdit(I.rowKey,I.columnId,we))},S=null,$=new Set,X=g=>{let I=()=>{$.delete(I),g();};$.add(I);},ae=()=>{for(let g of [...$])g();$.clear();},z=(g,I)=>{let N=C.getColumnModel().getDef(g.columnId),we=g.node.data;if(N?.renderCell)return N.renderCell({value:I,row:we,node:g.node,column:N});let be=datagridCore.lookupLabel(N,I);if(be!==null)return be;if(N?.valueFormatter){let Y=N.valueFormatter(I,we);return typeof Y=="string"?Y:String(Y??"")}return N?.dateFormat&&N.dataType==="date"?datagridCore.formatDateValue(I,N.dateFormat):I==null?"":String(I)},q=Ua({grid:l,engine:F,mode:M,t:f,formHeight:u.formHeight,surfaceClass:()=>D.surfaceClass(),barHost:D.barHost,focusGrid:W,trackPortal:X,defaultContent:z,extension:v}),te=g=>{if(g.node.kind!=="data")return;let I=q.renderRowCell(g);if(I!==void 0)return I;if(!F.isEditing(g.node.key,g.columnId)){S&&S.rowKey===g.node.key&&S.columnId===g.columnId&&(S=null);let _=F.getMode()==="cell"?void 0:F.changes.get(g.node.key,g.columnId),ue=v.cellAdornment?.(g)??null;if(!_&&!ue)return;let k=_?_.newValue:g.value,P=document.createElement("span");P.style.display="contents";let ne=z(g,k);return typeof ne=="string"?P.appendChild(document.createTextNode(ne)):P.appendChild(ne),ue&&P.appendChild(ue),P}let N=F.getSession();if(S&&S.rowKey===N.rowKey&&S.columnId===g.columnId)return S.setError(N.validation.message),S.container;let we=C.getColumnModel().getDef(g.columnId),be=v.resolveLookup?.(N.rowKey,g.columnId)??{options:void 0},Y=document.createElement("span");Y.style.display="contents";let le=v.customEditors?we?.renderEditor:void 0;if(le){let _=new Set,ue=le({value:F.getSession()?.value??N.value,row:F.effectiveRow(N.rowKey),columnId:g.columnId,error:N.validation.message,onErrorChange:k=>(_.add(k),()=>_.delete(k)),setValue:k=>F.setEditValue(k),commit:()=>{F.commitEdit()&&W();},cancel:()=>{F.cancelEdit(),W();}});return Y.appendChild(ue),S={rowKey:N.rowKey,columnId:g.columnId,container:Y,setError:k=>{for(let P of _)P(k);}},Y}let ve=_=>{Y.textContent="",Y.appendChild(nr({value:F.getSession()?.value??N.value,dataType:C.getColumnModel().getEditorDataType(g.columnId),error:_,seeded:N.seeded,onPortalOpen:X,options:be.options,allowCustom:be.allowCustom,matchMode:be.matchMode,renderLookup:v.renderLookup,dateFormat:we?.dateFormat,ariaLabel:we?.headerName??g.columnId,surfaceClass:D.surfaceClass(),t:f,onChange:ue=>F.setEditValue(ue),onCommit:ue=>{F.commitEdit()&&(ue==="down"&&C.moveFocus("down"),W());},onTab:ue=>{if(u.focusCellOnTab===false){F.commitEdit();return}ee(ue,{open:v.keepEditingOnTab===true,cycle:u.focusCellOnCycle!==false});},onCancel:()=>{F.cancelEdit(),W();}}));};ve(N.validation.message);let Se=N.validation.message;if(S={rowKey:N.rowKey,columnId:g.columnId,container:Y,setError:_=>{if(_===Se)return;Se=_,Y.querySelector(".kanuni-datagrid-editor")?.classList.toggle("kanuni-datagrid-editor--invalid",!!_);let k=Y.querySelector(".kanuni-datagrid-editor-error");_&&!k&&(k=document.createElement("span"),k.id="kanuni-datagrid-editor-error",k.setAttribute("role","alert"),k.className="kanuni-datagrid-editor-error",Y.appendChild(k)),k&&(k.textContent=_??"",_||k.remove());}},be.options===null&&v.resolveLookup){let _=v.resolveLookup,ue=()=>{let P=_(N.rowKey,g.columnId);P.options!==null&&S&&S.rowKey===N.rowKey&&S.columnId===g.columnId&&F.isEditing(N.rowKey,g.columnId)&&(be.options=P.options,ve(F.getSession()?.validation.message??null));},k=C.events.on("cellsRefreshed",()=>{ue(),_(N.rowKey,g.columnId).options!==null&&k();});}return Y},J=g=>{if(g.node.kind!=="data")return;let I=[];return F.isEditing(g.node.key,g.columnId)&&I.push("kanuni-datagrid-cell--editing"),F.changes.isDirty(g.node.key,g.columnId)&&I.push("kanuni-datagrid-cell--dirty"),F.isRemoved(g.node.key)&&I.push("kanuni-datagrid-cell--removed"),I.length?I.join(" "):void 0},K=g=>{g.node.kind==="data"&&(q.onCellDoubleClick(g)||F.canUpdate(g.node.key,g.columnId)&&(C.scrollToCell(g.node.key,g.columnId),F.beginEdit(g.node.key,g.columnId)));},Ce=g=>{let I=g.target;return I?.closest?.('[data-testid="dg-edit-form"], [data-testid="dg-row-message"]')?true:(g.key==="Tab"||g.key==="Enter"||g.key===" ")&&!!I?.closest?.('[data-testid="dg-edit-bar"]')},Me=g=>Ce(g)?false:q.handleRowKeys(g)?true:g.key==="Escape"&&F.getSession()?(g.preventDefault(),F.cancelEdit(),true):g.key==="Tab"&&u.focusCellOnTab!==false&&!F.getSession()&&C.getFocus()&&ee(g.shiftKey?-1:1,{open:v.keepEditingOnTab===true,cycle:u.focusCellOnCycle!==false})?(g.preventDefault(),true):false,pe=g=>{if(Ce(g))return false;let I=g.ctrlKey||g.metaKey;if(g.key==="F2"){let N=C.getFocus();if(N)return g.preventDefault(),q.rowModeActive?(q.openRowFromKeys(N.rowKey,N.columnId),true):(C.scrollToCell(N.rowKey,N.columnId),F.beginEdit(N.rowKey,N.columnId),true)}return u.editOnKeyPress!==false&&!I&&!g.altKey&&g.key.length===1&&g.key!==" "&&!F.getSession()&&Re(g.key)?(g.preventDefault(),true):false};return {engine:F,renderCellContent:te,getCellClassName:J,onCellDoubleClick:K,handleKeyDown:g=>Me(g)||pe(g),handleSessionKeys:Me,handleOpenKeys:pe,editAdjacentCell:ee,focusGrid:W,trackPortal:X,defaultContent:z,renderEditForm:q.renderEditForm,beginRowEdit:q.beginRowEdit,saveRowEdit:q.saveRowEdit,cancelRowEdit:q.cancelRowEdit,saveChanges:q.saveChanges,cancelChanges:q.cancelChanges,dispose:()=>{ae(),q.dispose(),F.dispose(),Z.cancelAll(),ce.forEach(g=>g()),C.setPendingValueReader(null),C.setEditingDelegate(null);}}}function Ya(l,u){return !l||datagridCore.isChromeColumn(u)?false:l.editable!==false&&l.lookup==null&&l.renderEditor==null&&l.allowFormulas!==true}var ja=["rules","crud","allowAdding","allowUpdating","allowDeleting","onInitNewRow","onRowInserted","onRowUpdated","onRowRemoved","insertKey","appendOnArrowDown","newRowPosition","keepEditingOnTab","commandColumn","commandLabels","confirmDelete","confirmDeleteMessage","range"];var En=60,cr=24,Nd=0,ao=36,kn=28,io="application/x-kanuni-row",vn=new Map,pr=new Set,ii=5e3,Yt=0,Id=["columnStateChanged","sortChanged"],Hd=["columnStateChanged"],Fd=["contentReady","viewportChanged","filterChanged","selectionChanged","focusChanged","summariesChanged","cellsRefreshed","findChanged"],y=(l,u="div")=>{let f=document.createElement(u);return f.className=l,f},Rn="http://www.w3.org/2000/svg";function Kd(l,u){let f=v=>{u&&console.warn(`[datagrid] ${v} is an Enterprise feature \u2014 use createEnterpriseGrid from @kanunilabs/datagrid-enterprise to use it.`);};if(l.viewportDatasource)throw new Error("[datagrid] viewportDatasource is an Enterprise feature \u2014 use createEnterpriseGrid from @kanunilabs/datagrid-enterprise to use it.");let D={...l};if(D.dataSource!=null&&!Array.isArray(D.dataSource)&&D.grouping&&(f("grouping a server-side DataSource is"),delete D.grouping),D.columns?.some(v=>v.spanRows)&&(f("cell span/merge (spanRows) is"),D={...D,columns:D.columns.map(v=>v.spanRows?{...v,spanRows:void 0}:v)}),D.tree&&(f("tree data is"),delete D.tree),D.masterDetail&&(f("master-detail is"),delete D.masterDetail),D.grouping){let{groupBy:v,groupSummaries:C}=D.grouping,M=v==null?[]:typeof v=="string"?[v]:v;(M.length>1||C)&&(f("multi-level grouping and group summaries are"),D={...D,grouping:{...D.grouping,groupBy:M.slice(0,1),groupSummaries:false}});}return D}var Pd={columnResize:"use `resizable`",columnReorder:"use `reorderable`",groupPanel:"use `grouping: { panel: true }`",autoColumns:"",loadingOverlay:"",onReady:"the controller is returned directly \u2014 use `grid.controller`",className:"style the host element you pass in",style:"style the host element you pass in",toolbarItemsBefore:"",renderRow:"",cardView:"",onCardViewChange:"",announcements:"",filterPanelLabels:"",filterIconMode:"",autoSizeStrategy:"",footerMenu:"",showRowCount:"",onOpenFilterBuilder:"",renderOverlay:"",cellMenu:""},lo=new Set;function Gd(l){for(let u of Object.keys(l)){let f=Pd[u];f===void 0||f===""||lo.has(u)||(lo.add(u),console.warn(`[datagrid] \`${u}\` is a React-only option \u2014 ${f}.`));}}function $d(){let l=document.createElementNS("http://www.w3.org/2000/svg","svg");l.setAttribute("width","14"),l.setAttribute("height","14"),l.setAttribute("viewBox","0 0 16 16"),l.setAttribute("aria-hidden","true"),l.setAttribute("focusable","false");let u=document.createElementNS("http://www.w3.org/2000/svg","path");return u.setAttribute("d","M8 1v8m0 0L5 6m3 3 3-3M2 11v2a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-2"),u.setAttribute("fill","none"),u.setAttribute("stroke","currentColor"),u.setAttribute("stroke-width","1.5"),u.setAttribute("stroke-linecap","round"),u.setAttribute("stroke-linejoin","round"),l.appendChild(u),l}function Od(){let l=document.createElementNS(Rn,"svg");l.setAttribute("width","11"),l.setAttribute("height","11"),l.setAttribute("viewBox","0 0 16 16"),l.setAttribute("aria-hidden","true"),l.setAttribute("focusable","false");let u=document.createElementNS(Rn,"path");return u.setAttribute("d","M1.5 2.5h13L9.5 8.6v4.3l-3 1.6V8.6L1.5 2.5Z"),u.setAttribute("fill","currentColor"),u.setAttribute("stroke","currentColor"),u.setAttribute("stroke-width","0.6"),u.setAttribute("stroke-linejoin","round"),l.appendChild(u),l}function Bd(l){let u=document.createElementNS(Rn,"svg");u.setAttribute("width","14"),u.setAttribute("height","14"),u.setAttribute("viewBox","0 0 16 16"),u.setAttribute("aria-hidden","true"),u.setAttribute("focusable","false");let f=document.createElementNS(Rn,"rect");f.setAttribute("x","2"),f.setAttribute("y","2"),f.setAttribute("width","12"),f.setAttribute("height","12"),f.setAttribute("rx","2"),f.setAttribute("fill","none"),f.setAttribute("stroke","currentColor"),f.setAttribute("stroke-width","1.3"),u.appendChild(f);let D=v=>{let C=document.createElementNS(Rn,"path");C.setAttribute("d",v),C.setAttribute("fill","none"),C.setAttribute("stroke","currentColor"),C.setAttribute("stroke-width","1.3"),C.setAttribute("stroke-linecap","round"),u.appendChild(C);};return D("M5 8h6"),l&&D("M8 5v6"),u}function ai(l,u){let f=l??(u==="number"||u==="bigint"?"right":"left");return f==="right"?"kanuni-datagrid-cell kanuni-datagrid-cell--number":f==="center"?"kanuni-datagrid-cell kanuni-datagrid-cell--center":"kanuni-datagrid-cell"}function ro(l){let u="kanuni-datagrid-root";return l.dark&&(u+=" kanuni-datagrid-dark"),l.theme&&(u+=` kanuni-datagrid-theme-${l.theme}`),l.palette&&(u+=` kanuni-datagrid-palette-${l.palette}`),l.density&&(u+=` kanuni-datagrid-density-${l.density}`),u}function Vd(l,u){let{theme:f,palette:D,density:v,dark:C,striped:M=true,rowNumbers:A=false,locale:T="en",footer:Z=false,footerMenu:U=true,footerPosition:F="bottom",notes:V,pinnedTopRows:ce=[],pinnedBottomRows:W=[],resizable:se=true,reorderable:ee=true,autoHeaderHeight:Re=false,filterRow:S=false,headerFilter:$=false,filterIconMode:X="hover",filterPanel:ae=false,onOpenFilterBuilder:z,focusedRow:q=false,focusedRowKey:te,onFocusedRowChanged:J,onRowClick:K,onRowActivate:Ce,autoSizeStrategy:Me="none",renderRow:pe,cardView:g,onCardViewChange:I,announcements:N=true,filterPanelLabels:we,showRowCount:be=false,toolbarColumnChooser:Y=false,cellMenu:le=true,rowMenu:ve,headerMenu:Se,rowDrag:_,alignedGrids:ue,printLayout:k,renderCellContent:P,getCellClassName:ne,getRowStatusSource:Ee,rowStatus:xe,onCellPointerDown:ye,onCellPointerEnter:Ne,onCellDoubleClick:yt,editing:_e,onHeaderClick:ht,getHeaderClassName:Te,renderHeaderLabel:We,renderDetail:fr,renderEditForm:gr,enterpriseEdition:Ct=false,stateStoring:mr,tooltip:et=true,renderOverlay:so,filterDebounce:li,toolbar:br=false,highlightSearch:di=true,sortable:wr=true,toolbarItemsAfter:si,toolbarItemsBefore:ui,toolbarExcel:ci=false,toolbarPdf:pi=false,searchDebounce:fi=200,...gi}=u;Gd(u),be&&!lo.has("showRowCount:deprecated")&&(lo.add("showRowCount:deprecated"),console.warn("[datagrid] `showRowCount` was retired on 2026-08-15 and does nothing in either renderer. The row count lives in the status bar (Enterprise) or the pager."));let h=datagridCore.getGridDictionary(T),{emptyText:mi=h.noData,loadingText:bi=h.busy,loadingOverlay:uo=true,...Qe}=gi,yr=typeof uo=="number"?uo:300,co=datagridCore.summaryTypeLabels(h),hr=datagridCore.datePeriodLabels(h);if((!Qe.columns||Qe.columns.length===0)&&u.autoColumns!==false){let e=Array.isArray(Qe.dataSource)?Qe.dataSource:[];Qe.columns=datagridCore.inferColumns(e,typeof u.autoColumns=="object"?u.autoColumns:{});}Qe.rowHeight===void 0&&(Qe.rowHeight=datagridCore.presetRowHeight(f,v,28));let wi=Ct?Qe:Kd(Qe,!!u.debugMode),Nt=Ct?V:void 0;!Ct&&V&&u.debugMode&&console.warn("[datagrid] cell notes are an Enterprise feature \u2014 use createEnterpriseGrid from @kanunilabs/datagrid-enterprise to show them.");let a=new datagridCore.DataGridController(wi);a.setEnterpriseEdition(Ct);let It=_e!=null&&typeof _e=="object"&&_e.enabled!==false,Ze=null;if(It&&u.debugMode)for(let e of ja)_e[e]!==void 0&&console.warn(`[datagrid] editing.${e} is an Enterprise feature \u2014 use createEnterpriseGrid from @kanunilabs/datagrid-enterprise to use it.`);let rn=It?e=>Ze?.renderCellContent(e)??P?.(e):P,po=It?e=>{let t=Ze?.getCellClassName(e),o=ne?.(e);return t&&o?`${t} ${o}`:t??o}:ne,Cr=It?e=>{yt?.(e),Ze?.onCellDoubleClick(e);}:yt,yi=It?(e,t)=>Ze?.renderEditForm(e,t)??gr?.(e,t)??"":gr,rt=datagridCore.normalizeRowStatus(xe);te!=null&&a.focusRow(te);let O=y(ro(u));datagridCore.registerPortalContainer(O,u.portalContainer),O.style.height="100%",O.setAttribute("role","grid"),O.setAttribute("aria-label",u.ariaLabel??u.gridId),O.setAttribute("data-grid-id",u.gridId),datagridCore.isRtlLocale(T)&&O.setAttribute("dir","rtl"),f&&O.setAttribute("data-theme",f),Re&&O.setAttribute("data-auto-header-height",""),O.style.setProperty("--dg-row-height",`${a.getRowHeight()}px`);let re=y("kanuni-datagrid-scroller"),Ie=y("kanuni-datagrid-canvas"),Ae=y("kanuni-datagrid-header");Ae.setAttribute("role","row");let $e=y("kanuni-datagrid-rows");$e.style.position="relative";let fe=y("kanuni-datagrid-viewport");$e.appendChild(fe);let tt=y("kanuni-datagrid-pinned-rows kanuni-datagrid-pinned-rows--top"),vt=y("kanuni-datagrid-pinned-rows kanuni-datagrid-pinned-rows--bottom"),Ht=()=>ce.length+a.getPinnedRows("top").length,vr=()=>W.length+a.getPinnedRows("bottom").length,qe=y("kanuni-datagrid-sticky-groups");qe.setAttribute("aria-hidden","true");let nt=Z,ut=F==="top",Oe=y(`kanuni-datagrid-footer-row kanuni-datagrid-footer-row--${ut?"top":"bottom"}`);if(Oe.setAttribute("role","row"),Oe.setAttribute("aria-label",h.columnTotalsAria),U){let e=t=>{let n=t.target?.closest(".kanuni-datagrid-footer-cell")?.getAttribute("data-column-id");!n||datagridCore.isChromeColumn(n)||(t.preventDefault(),Xi(n,{left:t.clientX,top:t.clientY}));};Oe.addEventListener("click",e),Oe.addEventListener("contextmenu",e);}let xn=y("kanuni-datagrid-bands-host");xn.style.display="contents";let Et=y("kanuni-datagrid-filter-row");Et.setAttribute("role","row"),Ie.append(xn,Ae),S&&Ie.append(Et);let Ft=S?2:1,fo=0,go=()=>fo+Ft+Ht();Oe.style.setProperty("--dg-pinned-gap",String(ut?Ft:0)),tt.style.setProperty("--dg-pinned-gap",String(Ft+(nt&&ut?1:0))),nt&&ut&&Ie.append(Oe),Ht()>0&&Ie.append(tt),a.hasStickyGroupHeaders()&&(qe.style.setProperty("--dg-pinned-gap",String(Ft+(nt&&ut?1:0))),qe.style.setProperty("--dg-sticky-below",`${Ht()>0?Ht()*a.getRowHeight()+1:0}px`),Ie.append(qe)),Ie.append($e),vr()>0&&Ie.append(vt),nt&&!ut&&Ie.append(Oe),re.appendChild(Ie);let ct=y("kanuni-datagrid-toolbar"),ot=y("kanuni-datagrid-pager");ot.setAttribute("role","navigation"),ot.setAttribute("aria-label",h.pagerAria);let Kt=y("kanuni-datagrid-filter-panel"),Pt=!!Qe.grouping?.panel,Ue=y("kanuni-datagrid-group-panel"),an=datagridCore.resolveCardView(g),ln=false,Tn=[],kt=pe,dn=y("kanuni-datagrid-cardbar");dn.hidden=true;let Er=y("kanuni-datagrid-cardbar-label","label"),kr=y("","span");kr.textContent=h.cardSortBy;let at=y("kanuni-datagrid-cardbar-select","select"),Gt=y("kanuni-datagrid-cardbar-dir","button");Gt.type="button",Er.append(kr,at),dn.append(Er,Gt),at.addEventListener("change",()=>{let e=a.getSort()[0];a.setSort(at.value?[{columnId:at.value,direction:e?.direction??"asc"}]:[]);}),Gt.addEventListener("click",()=>{let e=a.getSort()[0];e&&a.setSort([{columnId:e.columnId,direction:e.direction==="desc"?"asc":"desc"}]);});let hi=e=>{let[t,...o]=datagridCore.cardFields(a.getColumnModel(),Tn,e.row),n=y("kanuni-datagrid-card");n.setAttribute("role","gridcell");let i=y("kanuni-datagrid-card-title");if(i.textContent=t?.text??"",n.appendChild(i),o.length){let d=y("kanuni-datagrid-card-fields","dl");for(let s of o){let r=y("kanuni-datagrid-card-field"),c=y("","dt");c.textContent=s.label;let p=y("","dd");p.textContent=s.text,r.append(c,p),d.appendChild(r);}n.appendChild(d);}return n},Rr=()=>{if(!ln||!an)return;let e=a.getColumnModel(),t=datagridCore.cardColumnIds(e,an);t.join("\0")!==Tn.join("\0")&&(Tn=t,a.setDataRowHeight(datagridCore.cardHeight(t.length)));let o=wr?e.getOrder().filter(s=>e.getState(s)?.visible!==false&&e.getDef(s)?.sortable!==false):[];dn.hidden=o.length===0;let n=["",...o].join("\0");if(at.dataset.ids!==n){at.dataset.ids=n,at.replaceChildren();let s=document.createElement("option");s.value="",s.textContent=h.none,at.appendChild(s);for(let r of o){let c=document.createElement("option");c.value=r,c.textContent=e.getDef(r)?.headerName??r,at.appendChild(c);}}let i=a.getSort()[0];at.value=i?.columnId??"",Gt.hidden=!i;let d=i?.direction==="desc";Gt.textContent=d?"\u2193":"\u2191",Gt.setAttribute("aria-label",d?h.sortAsc:h.sortDesc),Gt.title=d?h.sortAsc:h.sortDesc;},xr=false,Ci=e=>{let t=datagridCore.showsCards(e,an);if(t!==ln){for(ln=t,O.classList.toggle("kanuni-datagrid-cards",t),kt=t?hi:pe,Tn=[],t?Rr():(dn.hidden=true,a.setDataRowHeight(null));gt.length;)gt.pop().root.remove();Gn(),xr?I?.(t):queueMicrotask(()=>I?.(t));}};br&&O.appendChild(ct),Pt&&O.appendChild(Ue),an&&O.appendChild(dn),O.appendChild(re),ae&&O.appendChild(Kt);let Sn=Qe.pagination;Sn&&Sn.enabled!==false&&O.appendChild(ot);let sn=y("kanuni-datagrid-loading-overlay"),Tr=y("kanuni-datagrid-loading-card"),Sr=y("kanuni-datagrid-loading-spinner","span");Sr.setAttribute("aria-hidden","true");let Lr=y("kanuni-datagrid-loading-label","span");Lr.textContent=bi,Tr.append(Sr,Lr),sn.appendChild(Tr),sn.style.display="none";let un=y("kanuni-datagrid-sr-only","div");un.setAttribute("role","status"),un.setAttribute("aria-live","polite"),un.setAttribute("aria-atomic","true");let Ln=y("kanuni-datagrid-empty");Ln.textContent=mi,Ln.style.display="none",O.append(sn,Ln),N&&O.appendChild(un),l.appendChild(O);let cn=Qe.selection,mo=a.getGroupDisplay()!=="fullWidth",Ar=a.getGroupDisplay()==="column",jt=(cn?.mode??"none")!=="none"&&(cn?.checkboxColumn??false),vi=(cn?.rowClick??(jt?"toggle":"replace"))==="toggle",Xt=a.hasMasterDetail()&&!!fr,bo=()=>(A?1:0)+(Xt?1:0)+(jt?1:0),wo=rt?.icons===true,Mr=wo?cr:0,yo=Mr,ho=yo+(A?En:0),Dr=ho+(Xt?kn:0),it=Mr+(A?En:0)+(Xt?kn:0)+(jt?ao:0);a.setLeadWidth(it);let pn=!!_?.enabled,fn=_?.group??null,Nr=_?.allowReordering??true,Ir=_?.allowDropInsert??fn!==null,pt=null,An=null,Mn=false,$t=null,Rt=null;function Jt(e){$t=e;for(let t of fe.querySelectorAll(".kanuni-datagrid-row")){let o=t.getAttribute("data-row-key"),n=e!==null&&o===String(e.key);t.classList.toggle("kanuni-datagrid-row--drop-before",n&&e.side==="before"),t.classList.toggle("kanuni-datagrid-row--drop-after",n&&e.side==="after");}}let Hr=(e,t)=>{let o=t.getBoundingClientRect();return e.clientY<o.top+o.height/2?"before":"after"},Fr=e=>e.dataTransfer?.types.includes(io)?pt!==null?Nr:Ir&&fn!==null:false;function Kr(e,t,o){let n=null;try{let i=e.dataTransfer?.getData(io);n=i?JSON.parse(i):null;}catch{n=null;}if(n){if(n.gridId===a.gridId){if(!Nr)return;if(_?.onReorder){_.onReorder({dragKey:n.rowKey,targetKey:t,position:o,row:a.getRowByKey(n.rowKey)});return}a.moveRow(n.rowKey,t,o);return}!Ir||fn===null||n.group!==fn||_?.onAdd?.({row:n.row,rowKey:n.rowKey,otherGridId:n.gridId,targetKey:t,position:o});}}let Ei=e=>{let t=St(e);if(!t||t.node.kind!=="data"||!e.dataTransfer)return;pt=t.node.key,An=t.node.key,Mn=false;let o={gridId:a.gridId,group:fn,rowKey:t.node.key,row:t.node.data};e.dataTransfer.setData(io,JSON.stringify(o)),e.dataTransfer.setData("text/plain",String(t.node.key)),e.dataTransfer.effectAllowed="move",a.notifyRowDrag("enter",{rowKey:t.node.key});},ki=e=>{if(!Fr(e))return;e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect="move");let t=St(e);if(!t||t.node.kind!=="data")return;if(pt===t.node.key){Rt=null,Jt(null);return}let o=e.target.closest(".kanuni-datagrid-row"),n=Hr(e,o),i=$t?.key!==t.node.key||$t.side!==n;Rt={key:t.node.key,side:n},Jt({key:t.node.key,side:n}),i&&pt!==null&&a.notifyRowDrag("move",{rowKey:pt,overKey:t.node.key,position:n});},Ri=e=>{if(!Fr(e)){Jt(null);return}e.preventDefault();let t=St(e);if(Mn=true,t&&t.node.kind==="data"){let o=e.target.closest(".kanuni-datagrid-row"),n=Hr(e,o);Rt={key:t.node.key,side:n},Kr(e,t.node.key,n);}else Rt=null,Kr(e,null,"after");pt=null,Jt(null);},xi=()=>{An!==null&&a.notifyRowDragEnd({rowKey:An,dropped:Mn,overKey:Rt?.key??null,position:Rt?.side??null}),Mn=false,An=null,pt=null,Rt=null,Jt(null);},Ti=e=>{let t=e.relatedTarget;t&&$e.contains(t)||pt!==null&&(Rt=null,Jt(null),a.notifyRowDrag("leave",{rowKey:pt}));},Ot=k===void 0||k===false?null:(()=>{let e=k===true?{}:k;return {always:e.always??false,maxRows:e.maxRows??ii,onLimit:e.onLimit}})(),Qt=false;function Co(e){Qt!==e&&(Qt=e,O.classList.toggle("kanuni-datagrid-print",e),e?(Yt++,document.documentElement.classList.add("kanuni-datagrid-printing")):(Yt--,Yt<=0&&(Yt=0,document.documentElement.classList.remove("kanuni-datagrid-printing"))),Gn());}let Pr=null;if(Ot&&!Ot.always){let e=()=>{let o=a.getRows().length;if(o>Ot.maxRows){a.isDebugMode()&&console.warn(`[datagrid] print layout skipped: ${o} rows exceeds maxRows (${Ot.maxRows}). Printing the visible rows instead \u2014 use exportPdf() for the whole result.`),Ot.onLimit?.({rows:o,maxRows:Ot.maxRows});return}Co(true);},t=()=>Co(false);window.addEventListener("beforeprint",e),window.addEventListener("afterprint",t),Pr=()=>{window.removeEventListener("beforeprint",e),window.removeEventListener("afterprint",t);};}let ft=0,lt=[],ze=0,vo=0;function Eo(){let e=a.getColumnLayout(),t=a.getVirtualWindow().columns,o=[],n=(d,s,r,c)=>{let p=d.def;o.push({def:p,id:d.state.id,width:d.state.width,pinned:s,inset:r,className:ai(p.align,p.dataType)+(s?" kanuni-datagrid-cell--pinned":"")+(p.autoHeight?" kanuni-datagrid-cell--wrap":""),visualIndex:c});};e.left.forEach((d,s)=>n(d,"left",e.leftOffsets[s]+it,s));for(let d=t.start;d<t.end&&d<e.center.length;d++)n(e.center[d],null,0,e.left.length+d);e.right.forEach((d,s)=>n(d,"right",e.rightOffsets[s],e.left.length+e.center.length+s)),lt=o,ze=t.offsetX;let i=(e.centerOffsets[Math.min(t.end,e.center.length)]??0)-(e.centerOffsets[Math.min(t.start,e.center.length)]??0);vo=Math.max(0,e.centerWidth-t.offsetX-i),Ie.style.minWidth=`${e.totalWidth+it}px`;}let Dn=26;function Si(){let e=a.getColumnLayout(),t=a.getVirtualWindow().columns,o=[...e.left,...e.center.slice(t.start,Math.min(t.end,e.center.length)),...e.right],n=datagridCore.bandDepth(o);if(fo=n,xn.textContent="",Ae.style.top=`${n*Dn}px`,O.style.setProperty("--dg-band-offset",`${n*Dn}px`),n===0)return;datagridCore.computeHeaderBands(o,n).forEach((d,s)=>{let r=y("kanuni-datagrid-band-row");if(r.style.top=`${s*Dn}px`,r.style.height=`${Dn}px`,it>0){let c=y("kanuni-datagrid-band-cell kanuni-datagrid-band-cell--spacer kanuni-datagrid-band-cell--pinned");c.style.width=`${it}px`,c.style.flex="none",c.style.insetInlineStart="0px",r.appendChild(c);}if(ze>0){let c=y("kanuni-datagrid-spacer");c.style.width=`${ze}px`,c.style.flex="none",r.appendChild(c);}for(let c of d){let p=y(`kanuni-datagrid-band-cell${c.spacer?" kanuni-datagrid-band-cell--spacer":""}`);if(p.style.width=`${c.width}px`,p.style.flex="none",!c.spacer){if(c.columnIds.length>0){let b=datagridCore.bandPath(a.getColumnModel().getDef(c.columnIds[0])).slice(0,s+1);if(b.length===s+1&&a.isBandCollapsible(b)){let R=a.isBandCollapsed(b),H=document.createElement("button");H.type="button",H.className="kanuni-datagrid-band-toggle",H.setAttribute("aria-expanded",String(!R));let x=R?h.expandColumnGroup:h.collapseColumnGroup;H.setAttribute("aria-label",x),H.title=x,H.appendChild(Bd(R)),H.addEventListener("click",B=>{B.stopPropagation(),a.toggleBand(b);}),p.appendChild(H);}}let E=y("kanuni-datagrid-band-label","span");E.textContent=c.label,p.appendChild(E);}r.appendChild(p);}xn.appendChild(r);});}let Zt=null,Nn=null;function In(e,t){Nn&&Nn!==e&&Nn.classList.remove("kanuni-datagrid-header-cell--drop-before","kanuni-datagrid-header-cell--drop-after"),Nn=e,e&&(e.classList.toggle("kanuni-datagrid-header-cell--drop-before",t==="before"),e.classList.toggle("kanuni-datagrid-header-cell--drop-after",t==="after"));}function Gr(){if(!Zt)return;let e=a.getSelectedCount(),t=a.getSelectableCount(),o=t>0&&e>=t;Zt.checked=o,Zt.indeterminate=!o&&e>0,Zt.disabled=t===0&&e===0;}let gn=null;function $r(e){gn=e;for(let t of Array.from(Ae.querySelectorAll(".kanuni-datagrid-header-cell[data-column-id]")))t.tabIndex=t.getAttribute("data-column-id")===e?0:-1;}function ko(){Si();let e=document.activeElement,t=e&&Ae.contains(e)?e.closest("[data-column-id]")?.getAttribute("data-column-id")??null:null,o=a.getColumnLayout(),n=[...o.left,...o.center,...o.right].map(r=>r.state.id);(!gn||!n.includes(gn))&&(gn=n[0]??null);let i=a.getSort(),d=new Map(i.map((r,c)=>[r.columnId,{direction:r.direction,order:c}]));if(Ae.textContent="",Zt=null,wo){let r=y("kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-status-cell");r.setAttribute("role","presentation"),r.setAttribute("aria-hidden","true"),r.style.width=`${cr}px`,r.style.flex="none",r.style.insetInlineStart="0px",Ae.appendChild(r);}if(A){let r=y("kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-rownum-cell");r.setAttribute("role","columnheader"),r.style.width=`${En}px`,r.style.flex="none",r.style.insetInlineStart=`${yo}px`,Ae.appendChild(r);}if(Xt){let r=y("kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-detail-toggle-cell");r.setAttribute("role","columnheader"),r.setAttribute("aria-label",h.detailsAria),r.style.width=`${kn}px`,r.style.flex="none",r.style.insetInlineStart=`${ho}px`,Ae.appendChild(r);}if(jt){let r=y("kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-select-cell");r.setAttribute("role","columnheader"),r.style.width=`${ao}px`,r.style.flex="none",r.style.insetInlineStart=`${Dr}px`;let c=document.createElement("input");c.type="checkbox",c.setAttribute("aria-label",h.selectAllRows),c.addEventListener("change",()=>{a.getSelectedCount()>0?a.clearSelection():a.selectAll();}),r.appendChild(c),Ae.appendChild(r),Zt=c,Gr();}let s=false;for(let r of lt){if(!r.pinned&&!s){if(ze>0){let w=document.createElement("div");w.style.flex=`0 0 ${ze}px`,Ae.appendChild(w);}s=true;}let c=wr&&r.def.sortable!==false,p=r.id===datagridCore.GROUP_COLUMN_ID,E=d.get(p?a.getGroupLevels()[0]??r.id:r.id),b=y(`kanuni-datagrid-header-cell${c?" kanuni-datagrid-header-cell--sortable":""}${r.pinned?" kanuni-datagrid-header-cell--pinned":""}${r.def.wrapHeaderText?" kanuni-datagrid-header-cell--wrap":""}`);b.setAttribute("role","columnheader"),b.setAttribute("data-column-id",r.id),b.tabIndex=r.id===gn?0:-1,b.addEventListener("focus",()=>$r(r.id)),b.setAttribute("aria-sort",E?E.direction==="asc"?"ascending":"descending":"none");let R=r.def.headerTooltip;R&&(b.title=R),b.style.width=`${r.width}px`,b.style.flex="none",r.pinned==="left"&&(b.style.insetInlineStart=`${r.inset}px`),r.pinned==="right"&&(b.style.insetInlineEnd=`${r.inset}px`);let H=y("kanuni-datagrid-header-label","span");H.id=`${encodeURIComponent(u.gridId)}-hdr-${encodeURIComponent(r.id)}`,b.setAttribute("aria-labelledby",H.id);let x=We?.(r.id);if(x)H.appendChild(x);else if(r.def.renderHeader){let w=r.def.renderHeader({column:r.def});typeof w=="string"?H.textContent=w:H.appendChild(w);}else H.textContent=r.def.headerName??r.id;if(b.appendChild(H),E){let w=y("kanuni-datagrid-sort-indicator","span");if(w.setAttribute("aria-hidden","true"),w.textContent=E.direction==="asc"?"\u25B2":"\u25BC",b.appendChild(w),i.length>1&&!p){let G=y("kanuni-datagrid-sort-order","span");G.setAttribute("aria-hidden","true"),G.textContent=String(E.order+1),b.appendChild(G);}}if(c||ht){let w=r.id;b.addEventListener("click",G=>{ht?.(w,G)||c&&a.toggleSort(w,G.shiftKey);});}let B=Se!==false&&!datagridCore.isChromeColumn(r.id);if(B){let w=r.id;b.addEventListener("contextmenu",G=>{G.preventDefault(),oa(w,{left:G.clientX,top:G.clientY});});}let m=null;if($&&r.def.filterable!==false){m=document.createElement("button"),m.type="button",m.tabIndex=-1;let w=a.getColumnFilter(r.id)!==null;m.className=`kanuni-datagrid-filter-button${w?" kanuni-datagrid-filter-button--active":""}${X==="always"?" kanuni-datagrid-filter-button--pinned":""}`,m.setAttribute("aria-haspopup","dialog"),m.setAttribute("aria-label",datagridCore.fillText(h.filterPopupAria,{column:r.def.headerName??r.id})),m.appendChild(Od());let G=m;m.addEventListener("click",Q=>{Q.stopPropagation(),ta(r.id,G);}),b.appendChild(m);}if(b.addEventListener("keydown",w=>{let G=n.indexOf(r.id),Q;if(w.key==="ArrowRight")Q=n[Math.min(n.length-1,G+1)];else if(w.key==="ArrowLeft")Q=n[Math.max(0,G-1)];else if(w.key==="Home")Q=n[0];else if(w.key==="End")Q=n[n.length-1];else if(m&&w.altKey&&w.key==="ArrowDown")ta(r.id,m);else if(c&&(w.key==="Enter"||w.key===" "))a.toggleSort(r.id,w.shiftKey);else if(B&&(w.key==="ContextMenu"||w.key==="F10"&&w.shiftKey)){let he=b.getBoundingClientRect();oa(r.id,{left:he.left,top:he.bottom});}else return;w.preventDefault(),w.stopPropagation(),Q&&Q!==r.id&&($r(Q),No(Q)?.focus());}),ee&&r.def.reorderable!==false&&(b.draggable=true,b.addEventListener("dragstart",w=>{w.dataTransfer?.setData("text/x-kanuni-column",r.id),w.dataTransfer&&(w.dataTransfer.effectAllowed="move");}),b.addEventListener("dragover",w=>{if(!w.dataTransfer?.types.includes("text/x-kanuni-column"))return;w.preventDefault();let G=b.getBoundingClientRect(),Q=w.clientX<G.left+G.width/2;In(b,Q?"before":"after");}),b.addEventListener("dragleave",w=>{let G=w.relatedTarget;(!G||!b.contains(G))&&In(null,"before");}),b.addEventListener("drop",w=>{In(null,"before");let G=w.dataTransfer?.getData("text/x-kanuni-column");if(!G||G===r.id)return;w.preventDefault();let Q=b.getBoundingClientRect();if(w.clientX<Q.left+Q.width/2)a.moveColumn(G,r.id);else {let Pe=lt.findIndex(oe=>oe.id===r.id);a.moveColumn(G,lt[Pe+1]?.id);}}),b.addEventListener("dragend",()=>In(null,"before"))),se&&r.def.resizable!==false){let w=y("kanuni-datagrid-resize-handle","span");w.setAttribute("data-resize-handle",r.id),w.setAttribute("role","presentation"),w.addEventListener("click",G=>G.stopPropagation()),w.addEventListener("dblclick",G=>{G.stopPropagation(),Qi(r.id);}),w.addEventListener("pointerdown",G=>{G.preventDefault(),G.stopPropagation();let Q=G.clientX,he=r.width,Pe=getComputedStyle(b).direction==="rtl"?-1:1;b.draggable=false;let oe=he,ke=false,Ve=dt=>{ke=true,oe=he+(dt.clientX-Q)*Pe,a.setColumnWidth(r.id,oe,false);},bt=()=>{window.removeEventListener("pointermove",Ve),window.removeEventListener("pointerup",bt),window.removeEventListener("pointercancel",bt),ke&&a.setColumnWidth(r.id,oe,true),b.draggable=ee&&r.def.reorderable!==false;};window.addEventListener("pointermove",Ve),window.addEventListener("pointerup",bt),window.addEventListener("pointercancel",bt);}),b.appendChild(w);}Ae.appendChild(b);}t&&No(t)?.focus({preventScroll:true});}let Or=null,Hn=null;function Li(e){if(e===Or)return;Or=e;let t=[];for(let o=0;o<e.length;o++){let n=e[o];n&&n.kind!=="data"&&t.push(o);}Hn=t.length>0?t:null;}function Ai(e){if(!Hn)return e+1;let t=0,o=Hn.length;for(;t<o;){let n=t+o>>1;Hn[n]<=e?t=n+1:o=n;}return e+1-t}let gt=[];function Fn(e="data"){let t=y("kanuni-datagrid-row");if(t.setAttribute("role","row"),e==="loading"){t.classList.add("kanuni-datagrid-row--loading"),t.setAttribute("aria-busy","true");let p=y("kanuni-datagrid-cell kanuni-datagrid-loading-cell");return p.setAttribute("role","gridcell"),p.setAttribute("aria-colindex","1"),p.appendChild(y("kanuni-datagrid-loading-bar","span")),t.appendChild(p),{kind:e,root:t,cells:[],rowNumberCell:null,selectInput:null,detailToggle:null,leadingSpacer:null,trailingSpacer:null,epoch:ft}}if(e==="data"&&mo&&t.addEventListener("click",()=>{if(!t.classList.contains("kanuni-datagrid-group-row--aligned"))return;let p=t.getAttribute("data-group-key");p!==null&&a.toggleGroup(p);}),e==="panel"){let p=document.createElement("div");return p.setAttribute("role","gridcell"),p.setAttribute("aria-colindex","1"),t.appendChild(p),{kind:e,root:t,cells:[],rowNumberCell:null,selectInput:null,detailToggle:null,leadingSpacer:null,trailingSpacer:null,panelCell:p,epoch:ft}}if(e==="group"){let p=y("kanuni-datagrid-group-cell");p.setAttribute("role","gridcell"),p.setAttribute("aria-colindex","1");let E=y("kanuni-datagrid-group-twisty","span");E.setAttribute("aria-hidden","true");let b=y("kanuni-datagrid-group-caption","span"),R=y("kanuni-datagrid-group-label","span"),H=y("kanuni-datagrid-group-count","span"),x=y("kanuni-datagrid-group-aggregates","span"),B=null;return jt&&cn?.mode==="multiple"&&(B=document.createElement("input"),B.type="checkbox",B.className="kanuni-datagrid-group-checkbox",B.tabIndex=-1,B.addEventListener("change",()=>{let m=t.getAttribute("data-group-key");m!==null&&a.toggleGroupSelection(m);}),B.addEventListener("click",m=>m.stopPropagation()),B.addEventListener("mousedown",m=>m.stopPropagation()),p.appendChild(B)),p.append(E,b,R,H,x),t.appendChild(p),t.addEventListener("click",()=>{let m=t.getAttribute("data-group-key");m!==null&&a.toggleGroup(m);}),{kind:e,root:t,cells:[],rowNumberCell:null,selectInput:null,detailToggle:null,leadingSpacer:null,trailingSpacer:null,group:{cell:p,check:B,twisty:E,caption:b,label:R,count:H,aggregates:x},epoch:ft}}if(pn){let p=y("kanuni-datagrid-row-grip","span");p.setAttribute("aria-hidden","true"),p.title=h.dragToReorder??"Drag to reorder",p.innerHTML='<svg width="10" height="14" viewBox="0 0 10 14" focusable="false"><g fill="currentColor"><circle cx="3" cy="3" r="1.2"/><circle cx="7" cy="3" r="1.2"/><circle cx="3" cy="7" r="1.2"/><circle cx="7" cy="7" r="1.2"/><circle cx="3" cy="11" r="1.2"/><circle cx="7" cy="11" r="1.2"/></g></svg>',p.addEventListener("mouseenter",()=>{t.draggable=true;}),p.addEventListener("mouseleave",()=>{t.draggable=false;}),t.appendChild(p);}if(kt)return {kind:e,root:t,cells:[],rowNumberCell:null,selectInput:null,detailToggle:null,leadingSpacer:null,trailingSpacer:null,epoch:ft};if(wo){let p=y("kanuni-datagrid-cell kanuni-datagrid-cell--pinned kanuni-datagrid-status-cell");p.setAttribute("role","presentation"),p.setAttribute("aria-hidden","true"),p.style.width=`${cr}px`,p.style.flex="none",p.style.insetInlineStart="0px",p.appendChild(y("kanuni-datagrid-status-icon","span")),t.appendChild(p);}let o=null;A&&(o=y("kanuni-datagrid-cell kanuni-datagrid-cell--number kanuni-datagrid-cell--pinned kanuni-datagrid-rownum-cell"),o.setAttribute("role","gridcell"),o.setAttribute("aria-colindex","1"),o.style.width=`${En}px`,o.style.flex="none",o.style.insetInlineStart=`${yo}px`,t.appendChild(o));let n=null;if(Xt){let p=y("kanuni-datagrid-cell kanuni-datagrid-cell--center kanuni-datagrid-cell--pinned kanuni-datagrid-detail-toggle-cell");p.setAttribute("role","gridcell"),p.setAttribute("aria-colindex",String((A?1:0)+1)),p.style.width=`${kn}px`,p.style.flex="none",p.style.insetInlineStart=`${ho}px`;let E=document.createElement("button");E.type="button",E.className="kanuni-datagrid-detail-toggle",E.tabIndex=-1,E.addEventListener("click",b=>{b.stopPropagation();let R=t.getAttribute("data-row-key");if(R===null)return;let H=a.getRows().find(x=>x!==void 0&&String(x.key)===R);H&&H.kind==="data"&&a.toggleDetail(H.key);}),E.addEventListener("mousedown",b=>b.stopPropagation()),p.appendChild(E),t.appendChild(p),n=E;}let i=null;if(jt){let p=y("kanuni-datagrid-cell kanuni-datagrid-cell--center kanuni-datagrid-cell--pinned kanuni-datagrid-select-cell");p.setAttribute("role","gridcell"),p.setAttribute("aria-colindex",String((A?1:0)+(Xt?1:0)+1)),p.style.width=`${ao}px`,p.style.flex="none",p.style.insetInlineStart=`${Dr}px`;let E=document.createElement("input");E.type="checkbox",E.tabIndex=-1;let b=()=>{let R=t.getAttribute("data-row-key");if(R===null)return;let H=a.getRows().find(x=>x!==void 0&&String(x.key)===R);H?.kind==="group"?a.toggleGroupSelection(String(H.key)):H&&a.toggleRow(H.key);};p.addEventListener("mousedown",R=>R.stopPropagation()),p.addEventListener("click",R=>{R.target.tagName!=="INPUT"&&(R.stopPropagation(),b());}),E.addEventListener("change",b),E.addEventListener("click",R=>R.stopPropagation()),E.addEventListener("mousedown",R=>R.stopPropagation()),p.appendChild(E),t.appendChild(p),i=E;}let d=[],s=null,r=false;for(let p of lt){!p.pinned&&!r&&(s=document.createElement("div"),s.style.flex=`0 0 ${ze}px`,t.appendChild(s),r=true);let E=y(p.className);E.setAttribute("role","gridcell"),E.setAttribute("data-column-id",p.id),E.style.width=`${p.width}px`,E.style.flex="none",p.pinned==="left"&&(E.style.insetInlineStart=`${p.inset}px`),p.pinned==="right"&&(E.style.insetInlineEnd=`${p.inset}px`),t.appendChild(E),d.push({el:E,slot:p});}let c=document.createElement("div");return c.style.flex=`0 0 ${vo}px`,t.appendChild(c),{kind:e,root:t,cells:d,rowNumberCell:o,selectInput:i,detailToggle:n,leadingSpacer:s,trailingSpacer:c,epoch:ft}}let en="";function Kn(e,t){if(en===""||t===""){e.textContent=t;return}let o=datagridCore.foldText(t),n=o.indexOf(en);if(n===-1){e.textContent=t;return}let i=[],d=0;for(;n!==-1;){n>d&&i.push(document.createTextNode(t.slice(d,n)));let r=document.createElement("mark");r.className="kanuni-datagrid-highlight",r.textContent=t.slice(n,n+en.length),i.push(r),d=n+en.length,n=o.indexOf(en,d);}d<t.length&&i.push(document.createTextNode(t.slice(d)));let s=document.createElement("span");s.className="kanuni-datagrid-cell-text",s.append(...i),e.replaceChildren(s);}function Br(e,t,o){let n=a.getColumnModel().getCellValue(o.data,t.id),i=t.def;if(i.renderCell){let s=i.renderCell({value:n,row:o.data,node:o,column:i});typeof s=="string"?e.textContent=s:e.replaceChildren(s);return}let d=datagridCore.lookupLabel(i,n);if(d!==null){Kn(e,d);return}if(i.valueFormatter){let s=i.valueFormatter(n,o.data);Kn(e,typeof s=="string"?s:String(s??""));return}if(i.dateFormat&&i.dataType==="date"){Kn(e,datagridCore.formatDateValue(n,i.dateFormat));return}Kn(e,n==null?"":String(n));}function Mi(e,t){return e.kind==="group"&&!t.group}function Di(e,t,o){let n=t?.lead??null;if(!n||!e.leadingSpacer||o.kind!=="data"){e.leadCell?.remove(),e.leadCell=null;return}let i=a.getColumnLayout(),d=n.column.def,s={def:d,id:n.column.state.id,width:n.width,className:ai(d.align,d.dataType),visualIndex:i.left.length+i.center.indexOf(n.column)},r=e.leadCell??y(s.className);e.leadCell=r,r.className=s.className,r.setAttribute("role","gridcell"),r.setAttribute("data-column-id",s.id),r.setAttribute("aria-colspan",String(t.spans.get(s.id)??1)),r.setAttribute("aria-colindex",String(bo()+s.visualIndex+1)),r.id=`${u.gridId}-cell-${String(o.key)}-${s.id}`,r.style.width=`${n.width}px`,r.style.flex="none",e.leadingSpacer.nextSibling!==r&&e.leadingSpacer.after(r),Br(r,s,o);}function Ni(e){let t=document.createElement("div");t.className="kanuni-datagrid-row-message",t.setAttribute("data-testid","dg-row-message"),t.innerHTML='<svg class="kanuni-datagrid-row-message-icon" viewBox="0 0 16 16" width="14" height="14" aria-hidden="true"><path d="M8 1.5 15 14H1z" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"/><path d="M8 6v3.5M8 11.6v.4" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/></svg>';let o=document.createElement("span");o.className="kanuni-datagrid-row-message-text",o.textContent=e.text,o.title=e.text,t.appendChild(o);let n=(i,d,s)=>{let r=document.createElement("button");r.type="button",r.className="kanuni-datagrid-row-message-button",r.setAttribute("data-testid",i),r.textContent=d,r.addEventListener("click",s),t.appendChild(r);};return e.retry&&n("dg-row-retry",h.rowStatusRetry,e.retry),e.remove&&n("dg-row-delete",h.rowStatusDelete,e.remove),t}function Vr(){if(!rt?.messages)return;let e=Ze?.engine??Ee?.()??null,t=rt.get,o=datagridCore.rowMessageKeys(rt,e).filter(n=>{if(!t)return true;let i=a.getDataRowNode(n)?.data;if(i===void 0)return true;let d=t({row:i,rowKey:n});return d===void 0||d==="error"});a.setMessageRows(o,a.getRowHeight());}function _r(e,t){let o=rt&&t?.kind==="data"?datagridCore.resolveRowStatus(rt,t.data,t.key,Ze?.engine??Ee?.()??null):null,n=e.getAttribute("data-row-status");if(n!==null&&e.classList.remove(`kanuni-datagrid-row--status-${n}`,"kanuni-datagrid-row--status-tint"),!o){if(n===null)return;e.removeAttribute("data-row-status"),e.removeAttribute("aria-description"),e.removeAttribute("aria-busy"),e.removeAttribute("aria-invalid");return}e.setAttribute("data-row-status",o.status),e.classList.add(...datagridCore.rowStatusClassName(o.status,rt.tint).split(" ")),e.setAttribute("aria-description",datagridCore.rowStatusDescription(o,h)),o.status==="saving"?e.setAttribute("aria-busy","true"):e.removeAttribute("aria-busy"),o.status==="error"?e.setAttribute("aria-invalid","true"):e.removeAttribute("aria-invalid");}function Ro(e,t,o){let n=e.root;if(n.setAttribute("aria-rowindex",String(o+1+go())),n.setAttribute("data-row-key",String(t.key)),t.kind==="message"){let m=e.panelCell;n.className="kanuni-datagrid-row kanuni-datagrid-message-row",n.style.height=`${t.height}px`,n.style.display="",n.setAttribute("data-message-for",String(t.parentKey)),n.removeAttribute("data-detail-for"),n.removeAttribute("data-editform-for"),n.removeAttribute("data-panel-for"),m.className="kanuni-datagrid-message-cell";let w=rt?datagridCore.rowMessageModel(rt,t.parentKey,t.data,Ze?.engine??Ee?.()??null,h):null,G=w?`${String(t.parentKey)}|${w.text}|${w.retry?1:0}${w.remove?1:0}`:"";n.getAttribute("data-message-sig")!==G&&(n.setAttribute("data-message-sig",G),m.textContent="",w&&m.appendChild(Ni(w)));return}if(n.removeAttribute("data-message-for"),n.removeAttribute("data-message-sig"),t.kind==="detail"||t.kind==="editform"){let m=e.panelCell,w=t.kind==="detail";n.className=`kanuni-datagrid-row ${w?"kanuni-datagrid-detail-row":"kanuni-datagrid-editform-row"}`,n.style.height=`${t.height}px`,w?(n.setAttribute("data-detail-for",String(t.parentKey)),n.removeAttribute("data-editform-for")):(n.setAttribute("data-editform-for",t.parentKey===null?"":String(t.parentKey)),n.removeAttribute("data-detail-for")),m.className=w?"kanuni-datagrid-detail-cell":"kanuni-datagrid-editform-cell";let G=`${t.kind}:${String(t.key)}`;if(n.getAttribute("data-panel-for")!==G){n.setAttribute("data-panel-for",G);let Q=w?fr?.(t.data):t.parentKey===null?void 0:yi?.(t.parentKey,t.data);m.textContent="",typeof Q=="string"?m.textContent=Q:Q&&m.appendChild(Q);}return}if(n.removeAttribute("data-panel-for"),n.removeAttribute("data-detail-for"),n.removeAttribute("data-editform-for"),t.kind==="filler"){n.style.display="none";return}n.style.display="";let i=t.kind==="data"?a.getDataRowHeight():null;n.style.height=Wr?"":`${i??a.getRowHeight()}px`;let d=t.kind==="group"&&!e.group?t:null;if(!e.group){n.classList.remove("kanuni-datagrid-group-row","kanuni-datagrid-group-row--aligned");for(let m of Array.from(n.classList))m.startsWith("kanuni-datagrid-group-row--level-")&&n.classList.remove(m);d?(n.classList.add("kanuni-datagrid-group-row","kanuni-datagrid-group-row--aligned",`kanuni-datagrid-group-row--level-${d.level}`),n.setAttribute("aria-expanded",String(d.expanded)),n.setAttribute("aria-level",String(d.level+1)),n.setAttribute("data-group-key",String(d.key)),n.setAttribute("data-group-level",String(d.level))):(n.removeAttribute("aria-expanded"),n.removeAttribute("aria-level"),n.removeAttribute("data-group-key"),n.removeAttribute("data-group-level"));}n.classList.toggle("kanuni-datagrid-row--odd",M&&o%2===1);let s=a.isRowSelected(t.key);n.classList.toggle("kanuni-datagrid-row--selected",s),t.kind==="data"&&a.getSelectionMode()!=="none"?n.setAttribute("aria-selected",String(s)):n.removeAttribute("aria-selected");let r=a.getFocus();n.classList.toggle("kanuni-datagrid-row--focused",q&&r!==null&&r.rowKey===t.key),_r(n,t);let c=t.kind==="data"&&!Mi(t,e)?a.planRowColSpans(t,a.getVirtualWindow().columns):null;if(e.leadingSpacer&&(e.leadingSpacer.style.flex=`0 0 ${Math.max(0,ze-(c?.leadingDelta??0))}px`),e.trailingSpacer&&(e.trailingSpacer.style.flex=`0 0 ${Math.max(0,vo-(c?.trailingDelta??0))}px`),Di(e,c,t),pn){let m=$t!==null&&String($t.key)===String(t.key);n.classList.toggle("kanuni-datagrid-row--drop-before",m&&$t.side==="before"),n.classList.toggle("kanuni-datagrid-row--drop-after",m&&$t.side==="after");}let p=t.kind==="treePath",E=p||d!==null;if(n.classList.toggle("kanuni-datagrid-row--tree-path",p),e.rowNumberCell&&(e.rowNumberCell.textContent=E?"":String(Ai(o))),e.detailToggle&&(e.detailToggle.hidden=E),e.selectInput){let m=d!==null&&cn?.mode==="multiple";if(e.selectInput.hidden=p||d!==null&&!m,e.selectInput.classList.toggle("kanuni-datagrid-group-checkbox",m),m){let w=a.getGroupSelectionState(String(d.key));e.selectInput.checked=w==="all",e.selectInput.indeterminate=w==="some",e.selectInput.disabled=false,e.selectInput.setAttribute("aria-label",h.selectGroupAria.replace("{count}",String(d.count)).replace("{group}",d.display??d.label));}else e.selectInput.indeterminate=false,e.selectInput.checked=a.isRowSelected(t.key),e.selectInput.disabled=t.kind==="data"&&!a.isRowSelectable(t.key),e.selectInput.setAttribute("aria-label",h.selectRowAria.replace("{row}",String(t.key)));}if(e.detailToggle&&t.kind==="data"){let m=a.isDetailExpanded(t.key);e.detailToggle.textContent=m?"\u25BE":"\u25B8",e.detailToggle.setAttribute("aria-expanded",String(m)),e.detailToggle.setAttribute("aria-label",m?h.collapseDetails:h.expandDetails);}if(t.kind==="group"&&e.group){let m=t;n.className=`kanuni-datagrid-row kanuni-datagrid-group-row kanuni-datagrid-group-row--level-${m.level}`,n.setAttribute("aria-expanded",String(m.expanded)),n.setAttribute("aria-level",String(m.level+1)),n.setAttribute("data-group-key",String(m.key)),n.setAttribute("data-group-level",String(m.level)),e.group.cell.style.paddingLeft=m.level>0?`${8+m.level*18}px`:"",e.group.twisty.textContent=m.expanded?"\u25BE":"\u25B8";let w=a.getColumnModel().getDef(m.columnId),G=w?.headerName??m.columnId;if(e.group.caption.textContent=`${G}:`,e.group.label.textContent=datagridCore.lookupLabel(w,m.value)??m.display??(m.label===""?h.filterBlank:m.label),e.group.count.textContent=`(${m.count})`,e.group.check){let he=a.getGroupSelectionState(String(m.key));e.group.check.checked=he==="all",e.group.check.indeterminate=he==="some",e.group.check.setAttribute("aria-label",h.selectGroupAria.replace("{count}",String(m.count)).replace("{group}",e.group.label.textContent??""));}e.group.aggregates.textContent="";let Q=m.aggregates??null;if(Q)for(let he of a.getSummaryDefs()){let Pe=y("kanuni-datagrid-group-aggregate","span"),oe=y("kanuni-datagrid-group-aggregate-label","span"),ke=a.getColumnModel().getDef(he.columnId);oe.textContent=`${datagridCore.summaryLabel(he,co)} ${ke?.headerName??he.columnId}:`,Pe.append(oe,` ${datagridCore.formatSummaryValue(he,Q[datagridCore.summaryKey(he.columnId,he.type)],ke)}`),e.group.aggregates.appendChild(Pe);}return}if(t.kind!=="data"&&!p&&!d){for(let{el:m}of e.cells)m.textContent="";return}if(kt&&E){let m=pn?1:0;for(;n.childNodes.length>m;)n.removeChild(n.lastChild);let w=y("kanuni-datagrid-cell");d?w.appendChild(qr(d)):(w.appendChild(Ur(t)),xo(w,t,t.tree)),n.appendChild(w);return}if(kt){let m=pn?1:0,w=kt({row:t.data,node:t,rowIndex:o,selected:a.isRowSelected(t.key),focused:q&&r!==null&&r.rowKey===t.key});if(w instanceof Node&&n.childNodes.length===m+1&&n.childNodes[m]===w)return;for(;n.childNodes.length>m;)n.removeChild(n.lastChild);typeof w=="string"?n.appendChild(document.createTextNode(w)):w&&n.appendChild(w);return}let b=r!==null&&r.rowKey===t.key?r.columnId:null,R=d?void 0:t.tree,H=d&&Ar?datagridCore.GROUP_COLUMN_ID:R||d?(()=>{let m=a.getColumnLayout();return (m.left[0]??m.center[0]??m.right[0])?.state.id??null})():null,x=R?H:null,B=a.hasCellSpans();for(let{el:m,slot:w}of e.cells){m.style.display=c?.covered.has(w.id)?"none":"",m.style.width=`${c?.widths.get(w.id)??w.width}px`;let G=c?.spans.get(w.id);G?m.setAttribute("aria-colspan",String(G)):m.removeAttribute("aria-colspan");let Q=(rn||po)&&!E?{node:t,columnId:w.id,rowIndex:o,columnIndex:w.visualIndex,value:a.getColumnModel().getCellValue(t.data,w.id)}:null,he=rn&&d&&w.id!==H?{node:t,columnId:w.id,rowIndex:o,columnIndex:w.visualIndex,value:void 0}:null,Pe=Q&&rn?rn(Q):he?rn(he):void 0,oe=false;if(Pe!==void 0?Pe instanceof Node&&m.childNodes.length===1&&m.firstChild===Pe?oe=true:typeof Pe=="string"?m.textContent=Pe:m.replaceChildren(Pe):d?w.id===H?m.replaceChildren(qr(d)):m.replaceChildren(...Ki(d,w.id)):p?w.id===x?(m.replaceChildren(Ur(t)),xo(m,t,R)):m.replaceChildren():(Br(m,w,t),R&&w.id===x&&xo(m,t,R)),B&&!oe){let Le=Hi(o,w.id);m.classList.toggle("kanuni-datagrid-cell--span",Le?.kind==="draw"),m.classList.toggle("kanuni-datagrid-cell--span-covered",Le?.kind==="covered");let De=Pe!==void 0;if(Le?.kind==="covered"&&b!==w.id&&!De)m.replaceChildren();else if(Le?.kind==="draw"){let nn=y("kanuni-datagrid-span-box");nn.style.height=`${Le.height}px`,nn.append(...Array.from(m.childNodes)),m.appendChild(nn);}}else B||m.classList.remove("kanuni-datagrid-cell--span","kanuni-datagrid-cell--span-covered");if(Nt){let Le=!E&&!!To(t.key,w.id,t.data);m.classList.toggle("kanuni-datagrid-cell--noted",Le);}m.id=`${u.gridId}-cell-${String(t.key)}-${w.id}`,m.setAttribute("aria-colindex",String(bo()+w.visualIndex+1)),m.classList.toggle("kanuni-datagrid-cell--focused",b===w.id);let ke=t.kind==="data"?a.getFindMatchKind(t.key,w.id):null;m.classList.toggle("kanuni-datagrid-cell--find-match",ke!==null),m.classList.toggle("kanuni-datagrid-cell--find-active",ke==="active");let Ve=m.getAttribute("data-slot-classes");if(Ve)for(let Le of Ve.split(" "))m.classList.remove(Le);let bt=Q&&po?po(Q):void 0,dt=w.def.cellClassName,de=[E?void 0:typeof dt=="function"?dt({value:a.getColumnModel().getCellValue(t.data,w.id),row:t.data,node:t,column:w.def}):dt,bt].filter(Boolean).join(" ")||void 0;if(de){for(let Le of de.split(" "))m.classList.add(Le);m.setAttribute("data-slot-classes",de);}else Ve&&m.removeAttribute("data-slot-classes");}}let Wr=u.columns.some(e=>e.autoHeight);function Ii(){if(!Wr)return;let e=a.getVirtualWindow(),t=a.getRows(),o=new Map(a.getMeasuredRowHeights()),n=false;for(let i=e.rows.start;i<e.rows.end&&i<t.length;i++){let d=t[i];if(!d||d.kind!=="data")continue;let s=i-e.rows.start,r=gt[s]?.root;if(!r)continue;let c=r.getBoundingClientRect().height;c>0&&o.get(d.key)!==c&&(o.set(d.key,c),n=true);}n&&a.setMeasuredRowHeights(o);}let Pn={start:0,end:0};function Hi(e,t){let o=a.getCellSpans(t);if(o.length===0)return null;let n=datagridCore.spanRoleAt(o,e,Pn.start,Pn.end);if(!n)return null;if(n.role==="covered")return {kind:"covered"};let i=a.getRowOffset(n.drawStart);return {kind:"draw",height:a.getRowOffset(n.drawEnd)+a.getRowHeightAt(n.drawEnd)-i}}function Fi(e,t){let o=a.isRowLoadFailed(t),n=o?"failed":"loading";if(e.dataset.holeState===n)return;e.dataset.holeState=n,e.classList.toggle("kanuni-datagrid-row--load-failed",o),o?e.removeAttribute("aria-busy"):e.setAttribute("aria-busy","true");let i=e.firstElementChild;if(!o)i.replaceChildren(y("kanuni-datagrid-loading-bar","span"));else {let d=y("kanuni-datagrid-load-failed-text","span");d.textContent=h.rowsLoadFailed;let s=document.createElement("button");s.className="kanuni-datagrid-retry-button",s.type="button",s.setAttribute("data-retry-load",""),s.textContent=h.retryLoad,s.addEventListener("click",()=>a.retryFailedLoads()),i.replaceChildren(d,s);}}function qr(e){let t=y("kanuni-datagrid-group-inline","span");t.style.paddingInlineStart=`${e.level*16}px`;let o=y("kanuni-datagrid-group-twisty","span");o.setAttribute("aria-hidden","true"),o.textContent=e.expanded?"\u25BE":"\u25B8";let n=a.getColumnModel().getDef(e.columnId),i=y("kanuni-datagrid-group-caption","span");i.textContent=`${n?.headerName??e.columnId}:`;let d=y("kanuni-datagrid-group-label","span");d.textContent=datagridCore.lookupLabel(n,e.value)??e.display??(e.label===""?h.filterBlank:e.label);let s=y("kanuni-datagrid-group-count","span");return s.textContent=`(${e.count})`,Ar?t.append(o,d,s):t.append(o,i,d,s),t}function Ki(e,t){if(!e.aggregates)return [];let o=a.getSummaryDefs().find(i=>i.columnId===t);if(!o)return [];let n=y("kanuni-datagrid-group-aggregate-value","span");return n.textContent=datagridCore.formatSummaryValue(o,e.aggregates[datagridCore.summaryKey(o.columnId,o.type)],a.getColumnModel().getDef(t)),[n]}function Ur(e){let t=y("kanuni-datagrid-tree-path-label","span");return t.textContent=e.label,t}function xo(e,t,o){let n=y(`kanuni-datagrid-tree-cell${o.ancestorOnly?" kanuni-datagrid-tree-cell--ancestor":""}`,"span");if(n.style.paddingInlineStart=`${o.depth*16}px`,o.hasChildren){let i=document.createElement("button");i.type="button",i.className="kanuni-datagrid-tree-toggle",i.setAttribute("data-tree-toggle",""),i.setAttribute("aria-expanded",String(o.expanded)),i.setAttribute("aria-label",o.expanded?h.collapseTreeRow:h.expandTreeRow),i.textContent=o.expanded?"\u25BE":"\u25B8",i.addEventListener("mousedown",d=>d.stopPropagation()),i.addEventListener("click",d=>{d.stopPropagation(),a.toggleTreeRow(t.key);}),n.appendChild(i);}else n.appendChild(y("kanuni-datagrid-tree-toggle kanuni-datagrid-tree-toggle--leaf","span"));n.append(...Array.from(e.childNodes)),e.appendChild(n);}let To=(e,t,o)=>Nt?Nt.get({rowKey:e,columnId:t,row:o})??null:null,zr=null,xt=so?y("kanuni-datagrid-overlay"):null;xt&&(xt.style.position="absolute",xt.style.inset="0",xt.style.pointerEvents="none",$e.appendChild(xt));function Pi(){if(!so||!xt)return;let e=so();e!==zr&&(zr=e,e?xt.replaceChildren(e):xt.replaceChildren());}function Gi(e){let t=a.getColumnLayout(),o=Array.from(vt.children);O.setAttribute("aria-rowcount",String(go()+e+o.length)),O.setAttribute("aria-colcount",String(bo()+t.left.length+t.center.length+t.right.length)),a.getSelectionMode()==="multiple"?O.setAttribute("aria-multiselectable","true"):O.removeAttribute("aria-multiselectable"),o.forEach((n,i)=>n.setAttribute("aria-rowindex",String(go()+e+i+1)));}function Gn(){Pi(),ln&&Rr();let e=a.getVirtualWindow(),t=a.getRows(),o=Qt?{...e,rows:{...e.rows,start:0,end:t.length,offsetY:0,totalHeight:0}}:e;Li(t),Gi(t.length),$e.style.height=`${o.rows.totalHeight}px`,fe.style.transform=`translateY(${o.rows.offsetY}px)`,en=a.getFindNeedle()||(di?datagridCore.normalizeSearch(a.getSearchText()):"");let n=Math.max(0,Math.min(o.rows.end,t.length)-o.rows.start);for(Pn.start=o.rows.start,Pn.end=Math.min(o.rows.end,t.length)-1;gt.length>n;)gt.pop().root.remove();for(let i=0;i<n;i++){let d=o.rows.start+i,s=t[d];if(!s){let p=gt[i];if(!p||p.kind!=="loading"){let E=Fn("loading");p?fe.replaceChild(E.root,p.root):fe.appendChild(E.root),gt[i]=E,p=E;}p.root.setAttribute("aria-rowindex",String(d+2)),p.root.style.height=`${a.getDataRowHeight()??a.getRowHeight()}px`,Fi(p.root,d);continue}let r=s.kind==="data"?"data":s.kind==="group"?mo?"data":"group":s.kind==="detail"||s.kind==="editform"||s.kind==="message"?"panel":"stub",c=gt[i];if(!c||c.epoch!==ft||c.kind!==r){let p=Fn(r);c?fe.replaceChild(p.root,c.root):fe.appendChild(p.root),gt[i]=p,c=p;}Ro(c,s,d);}Ii(),Yr();}let $n=[];function Yr(){if(!a.hasStickyGroupHeaders())return;let e=Qt?[]:a.getStickyGroupRows();for(qe.style.width=`${a.getColumnLayout().totalWidth}px`;$n.length>e.length;)$n.pop().wrap.remove();let t=mo?"data":"group";e.forEach((o,n)=>{let i=$n[n];if(!i||i.rs.epoch!==ft||i.rs.kind!==t){let d=Fn(t),s=i?.wrap??y("kanuni-datagrid-sticky-group");s.textContent="",s.appendChild(d.root),i||qe.appendChild(s),i={wrap:s,rs:d},$n[n]=i;}Ro(i.rs,o.node,o.index),i.rs.root.removeAttribute("aria-rowindex"),i.wrap.style.top=`${o.offset}px`,i.wrap.style.height=`${o.height}px`,i.wrap.style.zIndex=String(e.length-n),i.wrap.classList.toggle("kanuni-datagrid-sticky-group--last",n===e.length-1),i.wrap.querySelectorAll("button, input, select, textarea, a[href], [tabindex]").forEach(d=>d.setAttribute("tabindex","-1"));});}qe.addEventListener("click",e=>{let o=e.target.closest("[data-group-key]")?.getAttribute("data-group-key");o&&a.scrollToRow(o);});let On=datagridCore.createDebouncedCommit(li??(a.isRemote()?200:0));function jr(e,t,o,n){let i=a.getColumnModel().getDef(t);if(!i?.renderFilter)return ()=>{};let d=()=>o==="row"?a.getColumnFilter(t,datagridCore.FILTER_PART_ROW):a.getColumnFilter(t,datagridCore.FILTER_PART_SET)??a.getColumnFilter(t,datagridCore.FILTER_PART_DEFAULT),s=new Set,r=a.events.on("filterChanged",()=>{let p=d();s.forEach(E=>E(p));}),c=i.renderFilter(e,{columnId:t,column:i,surface:o,getValue:d,setValue:p=>a.setColumnFilter(t,p,o==="row"?datagridCore.FILTER_PART_ROW:datagridCore.FILTER_PART_SET),close:n,onValueChange:p=>(s.add(p),()=>s.delete(p))});return ()=>{r(),s.clear(),typeof c=="function"&&c();}}let mn=[],bn=new Map,So=false;function $i(){!S||So||Et.querySelectorAll("select[data-filter-operator-for]").forEach(e=>{let t=e.getAttribute("data-filter-operator-for");if(On.isPending(t))return;let o=a.getColumnModel().getDef(t),n=a.getColumnFilter(t,datagridCore.FILTER_PART_ROW),i=bn.get(t)??"",d=e.parentElement?.querySelector("input.kanuni-datagrid-filter-input"),s=i;if(n){let r=datagridCore.customFilterInputFromNode(n,o);s=r?.operatorId??"",r&&d&&(d.value=r.text);}else datagridCore.findCustomFilterOperator(o,i)?.operandType==="none"&&(s="");bn.set(t,s),e.value=s,d&&(d.disabled=datagridCore.findCustomFilterOperator(o,s)?.operandType==="none");});}function Lo(){if(!S)return;if(mn.forEach(n=>n()),mn=[],Et.textContent="",it>0){let n=y("kanuni-datagrid-filter-cell kanuni-datagrid-filter-cell--pinned");n.setAttribute("role","gridcell"),n.style.width=`${it}px`,n.style.flex="none",n.style.insetInlineStart="0px",Et.appendChild(n);}let e=false,t=null,o=()=>{if(!t){t=document.createElement("datalist"),t.id=`${u.gridId}-filter-periods`;for(let n of datagridCore.periodSuggestionList(hr)){let i=document.createElement("option");i.value=n,t.appendChild(i);}Et.appendChild(t);}return t.id};for(let n of lt){if(!n.pinned&&!e){if(ze>0){let s=y("kanuni-datagrid-spacer");s.style.width=`${ze}px`,s.style.flex="none",Et.appendChild(s);}e=true;}let i=y(`kanuni-datagrid-filter-cell${n.pinned?" kanuni-datagrid-filter-cell--pinned":""}`);i.setAttribute("role","gridcell"),i.style.width=`${n.width}px`,i.style.flex="none",n.pinned==="left"&&(i.style.insetInlineStart=`${n.inset}px`),n.pinned==="right"&&(i.style.insetInlineEnd=`${n.inset}px`);let d=n.def.renderFilter;if(n.def.filterable!==false&&d){let s=y("kanuni-datagrid-filter-custom");s.setAttribute("data-filter-for",n.id),i.appendChild(s),mn.push(jr(s,n.id,"row",()=>{}));}else if(n.def.filterable!==false){let s=document.createElement("input");s.className="kanuni-datagrid-filter-input",s.setAttribute("aria-label",datagridCore.fillText(h.filterPopupAria,{column:n.def.headerName??n.id})),s.setAttribute("data-filter-for",n.id);let r=datagridCore.customFilterOperators(n.def),c=()=>datagridCore.findCustomFilterOperator(n.def,bn.get(n.id)??"");n.def.dataType==="date"&&!c()&&s.setAttribute("list",o());let p=()=>{let b=c();So=true;try{a.setColumnFilter(n.id,b?datagridCore.parseCustomFilterInput(n.id,s.value,b):datagridCore.parseFilterInput(n.id,s.value,n.def.dataType,hr),datagridCore.FILTER_PART_ROW);}finally{So=false;}};if(r.length>0){let b=document.createElement("select");b.className="kanuni-datagrid-filter-operator",b.setAttribute("aria-label",datagridCore.fillText(h.filterOperatorAria,{column:n.def.headerName??n.id})),b.setAttribute("data-filter-operator-for",n.id);let R=[["",h.filterOperatorDefault],...r.map(x=>[x.id,x.label])];for(let[x,B]of R){let m=document.createElement("option");m.value=x,m.textContent=B,b.appendChild(m);}let H=datagridCore.customFilterInputFromNode(a.getColumnFilter(n.id,datagridCore.FILTER_PART_ROW),n.def);H&&(bn.set(n.id,H.operatorId),s.value=H.text),b.value=c()?.id??"",s.disabled=c()?.operandType==="none",b.addEventListener("change",()=>{bn.set(n.id,b.value),s.disabled=c()?.operandType==="none",c()?s.removeAttribute("list"):n.def.dataType==="date"&&s.setAttribute("list",o()),On.cancel(n.id),p();}),i.appendChild(b);}s.addEventListener("input",()=>On.schedule(n.id,p));let E=()=>{On.cancel(n.id),p();};s.addEventListener("keydown",b=>{b.key==="Enter"&&E();}),s.addEventListener("blur",E),i.appendChild(s);}Et.appendChild(i);}}let Ao=()=>{};function Oi(){let e=datagridCore.resolveToolbar(br);if(!e.show)return;let t=e.search,o=document.createElement("input");o.type="search",o.className="kanuni-datagrid-toolbar-search",o.placeholder=t?.placeholder??h.toolbarSearch,o.setAttribute("aria-label",h.toolbarSearch),o.setAttribute("data-testid","dg-toolbar-search"),t?.maxLength!==void 0&&(o.maxLength=t.maxLength);let n=y("kanuni-datagrid-toolbar-search-error","span");n.id=`kanuni-dg-search-error-${++Nd}`,n.setAttribute("role","alert"),n.setAttribute("data-testid","dg-toolbar-search-error"),n.style.display="none";let i=()=>{let x=t?.validate?.(o.value)??null;return n.textContent=x??"",n.style.display=x===null?"none":"",x===null?(o.removeAttribute("aria-invalid"),o.removeAttribute("aria-describedby")):(o.setAttribute("aria-invalid","true"),o.setAttribute("aria-describedby",n.id)),x===null},d=null,s=()=>{d&&clearTimeout(d),d=null,i()&&a.getSearchText()!==o.value&&a.setSearchText(o.value);};o.addEventListener("input",()=>{d&&clearTimeout(d),d=null,i()&&(d=setTimeout(s,t?.debounce??fi));}),t?.applyOnBlur!==false&&(o.addEventListener("blur",s),o.addEventListener("keydown",x=>{x.key==="Enter"&&s();}));let r=y("kanuni-datagrid-toolbar-spacer"),c=null;if(e.columns??Y){let x=document.createElement("button");x.type="button",datagridCore.setCommandContent(x,"columns",h.toolbarColumns??"Columns"),x.setAttribute("aria-haspopup","dialog"),x.addEventListener("click",()=>{let B=x.getBoundingClientRect();ra({left:B.left,top:B.bottom+2});}),c=x;}let p=Ct&&ci,E=Ct&&pi,b=document.createElement("button");b.type="button",b.className="kanuni-datagrid-toolbar-icon-button",b.setAttribute("aria-haspopup","menu"),b.setAttribute("aria-label",h.exportMenu),b.setAttribute("data-testid","dg-export-menu"),b.title=h.exportMenu,b.appendChild($d());let R=null;b.addEventListener("click",()=>{if(R)return;let x=b.getBoundingClientRect();mt({left:x.right-190,top:x.bottom+2},B=>{B.setAttribute("role","menu"),B.setAttribute("aria-label",h.exportMenu);let m=[{kind:"csv",label:h.exportCsv,testId:"dg-export-csv",on:a.canExportAll()},{kind:"excel",label:h.exportExcel,testId:"dg-export-excel",on:p},{kind:"excel-selected",label:h.exportExcelSelected,testId:"dg-export-excel-selected",on:p},{kind:"pdf",label:h.exportPdf,testId:"dg-export-pdf",on:E}];for(let w of m){if(!w.on)continue;let G=document.createElement("button");G.type="button",G.className="kanuni-datagrid-menu-item",G.setAttribute("role","menuitem"),G.setAttribute("data-testid",w.testId),G.textContent=w.label,w.kind==="excel-selected"&&a.getSelectedCount()===0&&(G.disabled=true),G.addEventListener("click",()=>{R=w.kind,b.disabled=true,He(),Qo(a,w.kind).then(Q=>{R=null,b.disabled=false,Q.error&&Ao(Q.error);});}),B.appendChild(G);}},"kanuni-datagrid-filter-popup kanuni-datagrid-export-menu");});for(let x of ui??[])ct.append(x);t&&ct.append(o,n),ct.append(r),c&&ct.append(c),e.export&&(a.canExportAll()||p||E)&&ct.append(b);for(let x of si??[])ct.append(x);let H=y("kanuni-datagrid-toolbar-error","span");H.setAttribute("role","alert"),H.style.display="none",ct.append(H),Ao=x=>{H.textContent=x,H.style.display="";};}function Xr(){if(!ot.isConnected)return;let e=a.getPage(),t=a.getPageCount(),o=document.activeElement,n=o instanceof HTMLElement&&ot.contains(o)?o.getAttribute("data-pager"):null;ot.textContent="";let i=(c,p,E,b,R)=>{let H=document.createElement("button");return H.type="button",H.textContent=c,H.setAttribute("aria-label",p),H.setAttribute("data-pager",R),H.disabled=E,H.addEventListener("click",b),H},d=y("kanuni-datagrid-pager-buttons"),s=e<=0,r=e>=t-1;if(d.append(i("\xAB",h.pagerFirst??"First",s,()=>a.setPage(0),"first"),i("\u2039",h.pagerPrevious??"Previous",s,()=>a.setPage(e-1),"previous")),Sn?.pageButtons)for(let c of datagridCore.pageButtonItems(e,t,Sn.maxPageButtons)){if(typeof c!="number"){let b=y("kanuni-datagrid-pager-gap","span");b.textContent="\u2026",b.setAttribute("aria-hidden","true"),d.append(b);continue}let p=String(c+1),E=i(p,h.pagerPageButton.replace("{n}",p),false,()=>a.setPage(c),`page-${c}`);E.classList.add("kanuni-datagrid-pager-page"),c===e&&E.setAttribute("aria-current","page"),d.append(E);}else {let c=y("kanuni-datagrid-pager-current","span");c.textContent=`${e+1} / ${t}`,d.append(c);}if(d.append(i("\u203A",h.pagerNext??"Next",r,()=>a.setPage(e+1),"next"),i("\xBB",h.pagerLast??"Last",r,()=>a.setPage(t-1),"last")),ot.appendChild(d),n!==null){let c=ot.querySelector(`[data-pager="${n}"]`);(c&&!c.disabled?c:ot.querySelector('[aria-current="page"]')??ot.querySelector("button:not(:disabled)"))?.focus();}}function Mo(){if(!nt)return;let e=a.getColumnLayout(),t=a.getSummaries(),o=new Map(a.getSummaryDefs().map(i=>[i.columnId,i]));if(Oe.textContent="",Oe.style.width=`${e.totalWidth+it}px`,it>0){let i=y("kanuni-datagrid-footer-cell kanuni-datagrid-footer-cell--pinned");i.style.width=`${it}px`,i.style.insetInlineStart="0px",Oe.appendChild(i);}let n=false;for(let i of lt){if(!i.pinned&&!n){if(ze>0){let c=y("kanuni-datagrid-spacer");c.style.width=`${ze}px`,Oe.appendChild(c);}n=true;}let d=o.get(i.id),s=i.def.dataType==="number"||i.def.dataType==="bigint",r=y(`kanuni-datagrid-footer-cell${i.pinned?" kanuni-datagrid-footer-cell--pinned":""}${s?" kanuni-datagrid-footer-cell--number":""}${d?" kanuni-datagrid-footer-cell--active":""}`);if(r.setAttribute("role","gridcell"),r.setAttribute("data-column-id",i.id),r.setAttribute("data-summary-type",d?.type??""),r.style.width=`${i.width}px`,i.pinned==="left"&&(r.style.insetInlineStart=`${i.inset}px`),i.pinned==="right"&&(r.style.insetInlineEnd=`${i.inset}px`),d){r.title=`${datagridCore.summaryLabel(d,co)} \u2014 ${i.def.headerName??i.id}`;let c=y("kanuni-datagrid-footer-value","span");c.textContent=datagridCore.formatSummaryValue(d,t[datagridCore.summaryKey(d.columnId,d.type)],i.def),r.appendChild(c);}else {let c=y("kanuni-datagrid-footer-hint","span");c.textContent=U&&!datagridCore.isChromeColumn(i.id)?"\xB7":"",r.appendChild(c);}Oe.appendChild(r);}}function Bi(){Ht()>0?tt.isConnected||Ie.insertBefore(tt,qe.isConnected?qe:$e):tt.remove(),vr()>0?vt.isConnected||Ie.insertBefore(vt,$e.nextSibling):vt.remove(),qe.style.setProperty("--dg-sticky-below",`${Ht()>0?Ht()*a.getRowHeight()+1:0}px`);}function Bn(){let e=kt;kt=pe;try{Vi();}finally{kt=e;}}function Vi(){let e=(t,o,n,i)=>{t.textContent="",o.forEach((d,s)=>{let r=Fn("data");Ro(r,{kind:"data",key:`__pinned-${n}-${s}`,sourceIndex:-1,data:d},s),r.root.classList.remove("kanuni-datagrid-row--odd"),r.root.setAttribute("aria-rowindex",String(fo+Ft+s+1)),r.root.removeAttribute("aria-selected"),_r(r.root,null),r.rowNumberCell&&(r.rowNumberCell.textContent="");let c=i[s-(o.length-i.length)];c!==void 0?r.root.setAttribute("data-pinned-row-key",String(c)):r.root.removeAttribute("data-pinned-row-key"),t.appendChild(r.root);});};for(let[t,o,n]of [["top",tt,ce],["bottom",vt,W]]){let i=a.getPinnedRows(t);if(n.length+i.length===0){o.textContent="";continue}e(o,[...n,...i.map(d=>d.row)],t,i.map(d=>d.key));}}let Vn=e=>{let t=e.target.closest("[data-pinned-row-key]");if(!t)return;let o=t.getAttribute("data-pinned-row-key"),n=a.getPinnedRowKeys(),i=[...n.top,...n.bottom].find(c=>String(c)===o);if(i===void 0)return;let d=Jr(i,false);if(d.length===0)return;e.preventDefault();let s=a.getPinnedRows(a.getRowPinSide(i)??"top").find(c=>c.key===i)?.row,r={row:s,node:{kind:"data",key:i,sourceIndex:-1,data:s},rowIndex:-1,columnId:e.target.closest("[data-column-id]")?.getAttribute("data-column-id")??null,selectedKeys:a.getSelectedKeys()};mt({left:e.clientX,top:e.clientY},c=>{c.setAttribute("role","menu"),Wn(c,d,r);},"kanuni-datagrid-context-menu");};tt.addEventListener("contextmenu",Vn),vt.addEventListener("contextmenu",Vn);function Jr(e,t){if(!a.isRowPinningEnabled()||!a.canPinRow(e))return [];let o=a.getRowPinSide(e),n=[];return o!=="top"&&n.push({id:"__dg-pin-top",label:h.pinRowTop,onSelect:()=>a.pinRow(e,"top")}),o!=="bottom"&&n.push({id:"__dg-pin-bottom",label:h.pinRowBottom,onSelect:()=>a.pinRow(e,"bottom")}),o&&n.push({id:"__dg-unpin",label:h.unpinRow,onSelect:()=>a.pinRow(e,null)}),t&&n.length>0?[{id:"__dg-sep-pin",separator:true},...n]:n}let Bt=null,Vt=null,Do=null;function He(e=true){Vt?.(),Vt=null,Bt?.remove(),Bt=null;let t=Do;Do=null,e&&t?.();}function No(e){return Ae.querySelector(`.kanuni-datagrid-header-cell[data-column-id="${CSS.escape(e)}"]`)}function Qr(e,t){e.addEventListener("keydown",o=>{let n=Array.from(e.querySelectorAll('[role="menuitem"]:not(:disabled)'));if(n.length===0)return;let i=n.indexOf(document.activeElement),d=n[i],s;switch(o.key){case "ArrowDown":s=n[(i+1)%n.length];break;case "ArrowUp":s=n[i<=0?n.length-1:i-1];break;case "Home":s=n[0];break;case "End":s=n[n.length-1];break;case "ArrowRight":case "Enter":case " ":if(d?.getAttribute("aria-haspopup")!=="menu")return;d.click(),s=Bt?.querySelector('.kanuni-datagrid-submenu [role="menuitem"]:not(:disabled)')??void 0;break;case "ArrowLeft":if(!t)return;t();break;case "Tab":He();break;default:return}o.preventDefault(),o.stopPropagation(),s?.focus();});}function Zr(e,t){let n=e.getBoundingClientRect();n.width===0&&n.height===0||(e.style.left=`${Math.max(8,Math.min(t.left,window.innerWidth-n.width-8))}px`,e.style.top=`${Math.max(8,Math.min(t.top,window.innerHeight-n.height-8))}px`);}function mt(e,t,o="kanuni-datagrid-filter-popup",n){He(false);let i=document.activeElement instanceof HTMLElement?document.activeElement:null,d=i&&(i===O||!i.contains(O))?i:null,s=(d&&Ae.contains(d)?d.closest("[data-column-id]")?.getAttribute("data-column-id")??null:null)??n??null;Bt=y(`${ro(u)} kanuni-datagrid-portal`);let r=y(o);r.style.position="fixed",r.style.left=`${e.left}px`,r.style.top=`${e.top}px`,r.style.zIndex="1000",t(r),Bt.appendChild(r),datagridCore.portalTarget(u.portalContainer).appendChild(datagridCore.markPortal(Bt,u.portalContainer)),Zr(r,e),Do=()=>{let b=s?No(s):null,R=d?.isConnected?d:b;R?.focus({preventScroll:true}),R&&document.activeElement!==R&&b&&b.focus({preventScroll:true});},r.getAttribute("role")==="menu"&&(Qr(r),r.querySelector('[role="menuitem"]:not(:disabled)')?.focus({preventScroll:true}));let c=Bt,p=b=>{c.contains(b.target)||He(false);},E=b=>{b.key==="Escape"&&He();};document.addEventListener("pointerdown",p,true),document.addEventListener("keydown",E,true),Vt=()=>{document.removeEventListener("pointerdown",p,true),document.removeEventListener("keydown",E,true);};}let Tt=25,ea=8,Io=new Map,Ho=0;function ta(e,t){let o=t.getBoundingClientRect(),n=++Ho;if(a.getColumnModel().getDef(e)?.renderFilter){let s=null,r=null;mt({left:o.left,top:o.bottom+2},E=>{r=E,E.classList.add("kanuni-datagrid-filter-popup--custom"),E.setAttribute("role","dialog"),E.setAttribute("aria-label",datagridCore.fillText(h.filterPopupAria,{column:a.getColumnModel().getDef(e)?.headerName??e})),E.setAttribute("data-column-id",e),E.tabIndex=-1,s=jr(E,e,"popup",()=>He());},void 0,e);let c=r;c&&(c.querySelector('input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), a[href], [tabindex]:not([tabindex="-1"])')??c).focus({preventScroll:true});let p=Vt;Vt=()=>{p?.(),s?.(),s=null;};return}let i=null;mt({left:o.left,top:o.bottom+2},s=>{s.setAttribute("role","dialog"),s.setAttribute("aria-label",datagridCore.fillText(h.filterPopupAria,{column:a.getColumnModel().getDef(e)?.headerName??e}));let r=[],c=true,p=new Set,E=false,b=0,R="",H=[],x={value:void 0,label:""},B=L=>L.value===null||L.value===void 0,m=[],w=L=>L===x?datagridCore.NONBLANK_KEY:datagridCore.distinctEntryKey(L),G=L=>L===x?h.filterNonBlank:datagridCore.distinctDisplayText(L,{filterBlank:h.filterBlank,filterEmptyText:h.filterEmptyText,filterSpace:h.filterSpace,filterSpaces:h.filterSpaces}),Q=null,he="",Pe=[],oe=null,ke=document.createElement("input");ke.type="search",ke.className="kanuni-datagrid-filter-search",ke.placeholder=h.search,ke.setAttribute("data-testid","dg-filter-search");let Ve=null;z&&(Ve=document.createElement("button"),Ve.type="button",Ve.className="kanuni-datagrid-filter-custom",Ve.setAttribute("data-testid","dg-filter-custom"),Ve.textContent=h.filterCustom,Ve.addEventListener("click",()=>{He(),z({columnId:e});}));let bt=y("kanuni-datagrid-filter-actions"),dt=document.createElement("button");dt.type="button",dt.textContent=h.filterSelectAll,dt.addEventListener("click",()=>{if(oe)return oe.selectAll();if(E=true,R.trim()==="")p=new Set(r.map(datagridCore.distinctEntryKey));else for(let L of H)p.add(datagridCore.distinctEntryKey(L));Xe();});let wn=document.createElement("button");wn.type="button",wn.textContent=h.clear,wn.addEventListener("click",()=>{if(oe)return oe.clear();if(E=true,R.trim()==="")p=new Set;else for(let L of H)p.delete(datagridCore.distinctEntryKey(L));Xe();}),bt.append(dt,wn);let de=y("kanuni-datagrid-filter-list");de.setAttribute("role","listbox"),de.setAttribute("aria-multiselectable","true");let Le=document.createElement("div");Le.style.position="relative";let De=document.createElement("div");Le.appendChild(De),de.appendChild(Le);let nn=()=>{let L=datagridCore.foldText(R.trim());if(!L){H=r;let j=r.findIndex(B);m=j<0?r:[...r.slice(0,j+1),x,...r.slice(j+1)];return}Q||(Q=r.map(j=>datagridCore.foldText(j.label))),H=he!==""&&L.includes(he)?Pe.filter(j=>datagridCore.foldText(j.label).includes(L)):r.filter((j,ie)=>Q[ie].includes(L)),he=L,Pe=H,m=H;},dl=L=>{let j=L.getRowCount(),ie=L.isLoading();de.setAttribute("aria-busy",String(ie)),de.setAttribute("aria-setsize",String(j));let ge=document.activeElement instanceof HTMLElement?document.activeElement.closest(".kanuni-datagrid-filter-item")?.getAttribute("data-index")??null:null;if(De.textContent="",ie||j===0){Le.style.height="",De.style.transform="";let me=y("kanuni-datagrid-filter-empty");me.textContent=ie?h.filterLoading:h.filterNoMatch,De.appendChild(me);return}Le.style.height=`${L.getWindow(de.scrollTop,240).totalHeight}px`;let Fe=L.getWindow(de.scrollTop,Math.max(de.clientHeight,150));Le.style.height=`${Fe.totalHeight}px`,De.style.transform=`translateY(${Fe.offsetY}px)`;for(let me=Fe.start;me<Fe.end;me++){let Je=L.getRow(me),Ke=y("kanuni-datagrid-filter-item");if(Ke.setAttribute("role","option"),Ke.setAttribute("data-index",String(me)),!Je){Ke.classList.add("kanuni-datagrid-filter-item--pending"),Ke.setAttribute("aria-selected","false"),Ke.setAttribute("aria-busy","true");let on=document.createElement("span");on.setAttribute("aria-hidden","true"),on.textContent="\u2026",Ke.appendChild(on),De.appendChild(Ke);continue}let yn=L.isChecked(Je);Ke.setAttribute("aria-selected",String(yn)),Ke.tabIndex=0,Ke.setAttribute("data-value",Je.label),me===b&&Ke.classList.add("kanuni-datagrid-filter-item--active");let Ge=document.createElement("input");Ge.type="checkbox",Ge.readOnly=true,Ge.checked=yn,Ge.tabIndex=-1;let Dt=document.createElement("span");Dt.textContent=Je.nonBlank?h.filterNonBlank:datagridCore.distinctDisplayText({value:Je.blank?null:Je.value,label:Je.label},{filterBlank:h.filterBlank,filterEmptyText:h.filterEmptyText,filterSpace:h.filterSpace,filterSpaces:h.filterSpaces}),Ke.append(Ge,Dt),Ke.addEventListener("click",()=>L.toggle(Je)),Ke.addEventListener("focus",()=>{b=me;}),De.appendChild(Ke);}L.ensure(Fe.start,Fe.end),ge!==null&&De.querySelector(`[data-index="${ge}"]`)?.focus({preventScroll:true});},Xe=()=>{if(oe&&!c)return dl(oe);if(de.setAttribute("aria-busy",String(c)),de.setAttribute("aria-setsize",String(m.length)),c){Le.style.height="",De.textContent="";let me=y("kanuni-datagrid-filter-empty");me.textContent=h.filterLoading,De.appendChild(me);return}if(m.length===0){Le.style.height="",De.style.transform="",De.textContent="";let me=y("kanuni-datagrid-filter-empty");me.textContent=h.filterNoMatch,De.appendChild(me);return}let L=de.clientHeight||240,j=Math.max(0,Math.floor(de.scrollTop/Tt)-ea),ie=Math.ceil(L/Tt)+ea*2,ge=Math.min(j,Math.max(0,m.length-1)),Fe=Math.min(m.length,ge+ie);Le.style.height=`${m.length*Tt}px`,De.style.transform=`translateY(${ge*Tt}px)`,De.textContent="";for(let me=ge;me<Fe;me++){let Je=m[me],Ke=w(Je),yn=Je===x?datagridCore.distinctNonBlankTicked(r,p):p.has(Ke),Ge=y("kanuni-datagrid-filter-item");Ge.setAttribute("role","option"),Ge.setAttribute("aria-selected",String(yn)),Ge.tabIndex=0,Ge.setAttribute("data-value",Je.label),Ge.setAttribute("data-index",String(me)),me===b&&Ge.classList.add("kanuni-datagrid-filter-item--active");let Dt=document.createElement("input");Dt.type="checkbox",Dt.readOnly=true,Dt.checked=yn,Dt.tabIndex=-1;let on=document.createElement("span");on.textContent=G(Je),Ge.append(Dt,on),Ge.addEventListener("click",()=>Ha(Ke)),Ge.addEventListener("focus",()=>{b=me;}),De.appendChild(Ge);}},Ha=L=>{if(E=true,L===datagridCore.NONBLANK_KEY){let j=datagridCore.distinctNonBlankTicked(r,p);for(let ie of r)B(ie)&&!j?p.delete(datagridCore.BLANK_KEY):p.add(datagridCore.distinctEntryKey(ie));}else p.has(L)?p.delete(L):p.add(L);for(let j of De.querySelectorAll(".kanuni-datagrid-filter-item")){let ie=m[Number(j.getAttribute("data-index"))];if(!ie)continue;let ge=ie===x?datagridCore.distinctNonBlankTicked(r,p):p.has(w(ie));j.setAttribute("aria-selected",String(ge));let Fe=j.querySelector("input");Fe&&(Fe.checked=ge);}};de.addEventListener("scroll",()=>{Io.set(e,de.scrollTop),Xe();});let Qn=null,jo=()=>{if(b=0,oe){let L=oe;Qn&&clearTimeout(Qn),Qn=setTimeout(()=>{Qn=null,L.getSearch()!==R.trim()&&(L.setSearch(R),de.scrollTop=0,Xe());},150);return}nn(),Xe();};ke.addEventListener("input",()=>{R=ke.value,jo();});let Xo=L=>{if(oe){let ge=oe.getRowCount();if(ge===0)return;b=Math.max(0,Math.min(ge-1,L)),L<=0?de.scrollTop=0:L>=ge-1&&(de.scrollTop=de.scrollHeight),Xe();let Fe=s.querySelector(`.kanuni-datagrid-filter-item[data-index="${b}"]`);Fe?.focus(),Fe?.scrollIntoView?.({block:"nearest"});return}if(m.length===0)return;b=Math.max(0,Math.min(m.length-1,L));let j=b*Tt,ie=de.clientHeight||240;j<de.scrollTop?de.scrollTop=j:j+Tt>de.scrollTop+ie&&(de.scrollTop=j+Tt-ie),Xe(),s.querySelector(`.kanuni-datagrid-filter-item[data-index="${b}"]`)?.focus();},Fa=()=>{if(c)return;if(oe){if(oe.isLoading())return;a.setColumnFilter(e,oe.buildFilter(e),datagridCore.FILTER_PART_SET),He();return}let L;if(p.size===r.length)L=null;else if(datagridCore.distinctNonBlankTicked(r,p))L={columnId:e,operator:"isnotnull"};else {let j=p.has(datagridCore.BLANK_KEY),ie=r.filter(ge=>!B(ge)&&p.has(datagridCore.distinctEntryKey(ge)));ie.length===0?L=j?{columnId:e,operator:"isnull"}:null:j?L={logic:"or",nodes:[{columnId:e,operator:"in",value:ie.map(ge=>ge.value)},{columnId:e,operator:"isnull"}]}:L={columnId:e,operator:"in",value:ie.map(ge=>ge.value)};}a.setColumnFilter(e,L,datagridCore.FILTER_PART_SET),He();};s.tabIndex=-1,s.addEventListener("keydown",L=>{let j=L.target===ke;if(!((L.key==="Enter"||L.key===" ")&&L.target instanceof HTMLButtonElement)){if(L.key==="Tab"){let ie=Array.from(s.querySelectorAll('input:not([disabled]), button:not([disabled]), [tabindex="0"]')),ge=ie[0],Fe=ie[ie.length-1],me=document.activeElement;ge&&Fe&&(!L.shiftKey&&(me===Fe||me===s)?(L.preventDefault(),ge.focus()):L.shiftKey&&(me===ge||me===s)&&(L.preventDefault(),Fe.focus()));return}if(L.key==="Backspace"&&!j){L.preventDefault(),ke.focus(),R=R.slice(0,-1),ke.value=R,jo();return}if(L.key==="ArrowDown"){L.preventDefault(),Xo(j?0:b+1);return}if(L.key==="ArrowUp"){L.preventDefault(),Xo(j?oe?0:m.length-1:b-1);return}if(!j&&(L.key==="Home"||L.key==="End")){L.preventDefault(),Xo(L.key==="Home"?0:(oe?oe.getRowCount():m.length)-1);return}if(L.key===" "&&!j){if(L.preventDefault(),oe){let ge=oe.getRow(b);ge&&oe.toggle(ge);return}let ie=m[b];ie&&Ha(w(ie));return}if(L.key==="Enter"){L.preventDefault(),Fa();return}!j&&L.key.length===1&&L.key!==" "&&!L.ctrlKey&&!L.metaKey&&!L.altKey&&(L.preventDefault(),ke.focus(),R+=L.key,ke.value=R,jo());}});let Ka=y("kanuni-datagrid-filter-footer"),Zn=document.createElement("button");Zn.type="button",Zn.textContent=h.cancel,Zn.addEventListener("click",()=>He());let wt=document.createElement("button");wt.type="button",wt.className="kanuni-datagrid-filter-primary",wt.setAttribute("data-testid","dg-filter-apply"),wt.textContent=h.apply,wt.disabled=true,wt.addEventListener("click",Fa),Ka.append(Zn,wt),s.append(ke,...Ve?[Ve]:[],bt,de,Ka),Xe(),queueMicrotask(()=>{ke.isConnected&&ke.focus();});let Pa=L=>{r=L,Q=null,he="",c=false,wt.disabled=false;let j=datagridCore.selectedLabelsFromFilter(a.getColumnFilter(e,datagridCore.FILTER_PART_SET)??a.getColumnFilter(e,datagridCore.FILTER_PART_DEFAULT),r,{text:a.getColumnModel().getDataType(e)==="string"});j?(E=true,p=new Set(j)):E||(p=new Set(r.map(datagridCore.distinctEntryKey))),nn();let ie=Io.get(e);Xe(),ie&&(de.scrollTop=ie,Xe());},Mt=a.openRemoteDistinct(e,Tt);if(Mt){oe=Mt,i=Mt,Mt.subscribe(()=>{s.isConnected&&oe===Mt&&Xe();}),Mt.start().then(L=>{if(Ho!==n||!s.isConnected){Mt.dispose();return}if(L.kind==="paged"){c=false,wt.disabled=false;let j=Io.get(e);Xe(),j&&(de.scrollTop=j,Xe());return}Mt.dispose(),oe=null,i=null,Pa(a.sortDistinctEntries(L.values));});return}a.getDistinctValueSetAsync(e).then(L=>{Ho!==n||!s.isConnected||Pa(L.entries);});},void 0,e);let d=Vt;Vt=()=>{d?.(),i?.dispose(),i=null;};}function _n(e={}){let t=a.getClipboardText(e);a.notifyClipboardGesture("copy",t?t.split(`
2
- `).length:0,()=>a.writeClipboard(t,"copy"));}function _i(e){if(le===false)return [];let t=le===true?{}:le,o=[],n=d=>{e&&o.length===0&&o.push({separator:true,id:"__dg-sep"}),o.push(d);};t.copy!==false&&n({id:"__dg-copy",label:h.menuCopy,shortcut:`${qi}C`,onSelect:()=>_n()}),t.copyWithHeaders!==false&&n({id:"__dg-copy-headers",label:h.menuCopyWithHeaders,onSelect:()=>_n({includeHeaders:true})}),t.copyWithGroupHeaders!==false&&Wi()&&n({id:"__dg-copy-group-headers",label:h.menuCopyWithGroupHeaders,onSelect:()=>_n({includeGroupHeaders:true})});let i=(t.export===false?[]:Array.isArray(t.export)?t.export:["csv","excel","excel-selected","pdf"]).filter(d=>d!=="csv"||a.canExportAll());if(i.length>0){let d=a.getSelectedCount()===0,s={csv:h.exportCsv,excel:h.exportExcel,"excel-selected":h.exportExcelSelected,pdf:h.exportPdf};n({id:"__dg-export",label:h.menuExport,items:i.map(r=>({id:`__dg-export-${r}`,label:s[r],disabled:r==="excel-selected"&&d,onSelect:()=>{Qo(a,r).then(c=>{c.error&&Ao(c.error);});}}))});}return o}function Wi(){let e=a.getColumnModel();return a.getVisualColumnIds().some(t=>{let o=e.getDef(t)?.band;return typeof o=="string"?o!=="":Array.isArray(o)&&o.length>0})}let qi=/Mac|iPhone|iPad|iPod/.test(navigator.platform??"")?"\u2318":"Ctrl+";function Wn(e,t,o){let n=null,i=()=>{n?.remove(),n=null;};t.forEach((d,s)=>{if(d.separator){let b=y("kanuni-datagrid-menu-separator");b.setAttribute("role","separator"),e.appendChild(b);return}let r=y("kanuni-datagrid-menu-row"),c=document.createElement("button");if(c.type="button",c.className="kanuni-datagrid-menu-item",c.setAttribute("role","menuitem"),c.setAttribute("data-item-index",String(s)),d.disabled&&(c.disabled=true),d.icon!==void 0){let b=y("kanuni-datagrid-menu-icon","span");typeof d.icon=="string"?b.textContent=d.icon:b.appendChild(d.icon),c.appendChild(b);}let p=y("kanuni-datagrid-menu-label","span");if(p.textContent=d.label??"",c.appendChild(p),d.shortcut){let b=y("kanuni-datagrid-menu-shortcut","span");b.textContent=d.shortcut,c.appendChild(b);}let E=d.items??[];if(E.length>0){let b=y("kanuni-datagrid-menu-caret","span");b.textContent="\u203A",c.appendChild(b),c.setAttribute("aria-haspopup","menu"),c.setAttribute("aria-expanded","false");let R=()=>{i();let H=y("kanuni-datagrid-context-menu kanuni-datagrid-submenu");H.setAttribute("role","menu");let x=c.getBoundingClientRect();H.style.left=`${x.right}px`,H.style.top=`${Math.max(0,x.top-4)}px`;for(let B of E){if(B.separator){let G=y("kanuni-datagrid-menu-separator");G.setAttribute("role","separator"),H.appendChild(G);continue}let m=document.createElement("button");m.type="button",m.className="kanuni-datagrid-menu-item",m.setAttribute("role","menuitem"),B.disabled&&(m.disabled=true);let w=y("kanuni-datagrid-menu-label","span");w.textContent=B.label??"",m.appendChild(w),m.addEventListener("click",()=>{B.onSelect?.(o),He();}),H.appendChild(m);}e.parentElement?.appendChild(H),Zr(H,{left:x.right,top:Math.max(0,x.top-4)}),n=H,c.setAttribute("aria-expanded","true"),Qr(H,()=>{i(),c.setAttribute("aria-expanded","false"),c.focus();});};c.addEventListener("mouseenter",R),c.addEventListener("click",R);}else c.addEventListener("mouseenter",i),c.addEventListener("click",()=>{d.onSelect?.(o),He();});r.appendChild(c),e.appendChild(r);});}let na=e=>{let o=e.target.closest(".kanuni-datagrid-row");if(!o||o.classList.contains("kanuni-datagrid-group-row"))return;let n=St(e);if(n?.columnId&&a.notifyCell("cellContextMenu",n.node,n.rowIndex,n.columnId),!ve&&!le&&!a.isRowPinningEnabled()||!n||n.node.kind!=="data")return;e.preventDefault(),a.isRowSelected(n.node.key)||a.handleRowClick(n.node.key,{}),n.columnId&&a.focusCell(n.node.key,n.columnId);let i={row:n.node.data,node:n.node,rowIndex:n.rowIndex,columnId:n.columnId,selectedKeys:a.getSelectedKeys()},d=(typeof ve=="function"?ve(i):ve)??[],s=[...d,...Ui(i,d.length>0)],r=[...s,...Jr(n.node.key,s.length>0)],c=_i(r.length>0);r.length===0&&c.length===0||mt({left:e.clientX,top:e.clientY},p=>{p.setAttribute("role","menu"),Wn(p,[...r,...c],i);},"kanuni-datagrid-context-menu");};function Ui(e,t){if(!Nt?.onChange||Nt.menu===false)return [];let o=e.columnId;if(!o)return [];let n=e.node.key,i=To(n,o,e.row),d=[];return t&&d.push({separator:true,id:"__note-sep"}),d.push({id:"__note-edit",label:i?h.editNote:h.addNote,onSelect:()=>zi(n,o,e.row,i??"")}),i&&d.push({id:"__note-delete",label:h.deleteNote,onSelect:()=>Nt.onChange?.({rowKey:n,columnId:o,row:e.row,text:null})}),d}function zi(e,t,o,n){let d=(O.querySelector(`[data-row-key="${CSS.escape(String(e))}"] [data-column-id="${CSS.escape(t)}"]`)??O).getBoundingClientRect();queueMicrotask(()=>{mt({left:d.left,top:d.bottom+2},s=>{s.setAttribute("aria-label",h.noteEditorAria);let r=document.createElement("textarea");r.className="kanuni-datagrid-note-input",r.rows=4,r.value=n,r.setAttribute("aria-label",h.noteEditorAria),r.placeholder=h.notePlaceholder,r.setAttribute("data-testid","dg-note-input");let c=()=>{let R=r.value.trim();He(),Nt?.onChange?.({rowKey:e,columnId:t,row:o,text:R===""?null:R});};r.addEventListener("keydown",R=>{R.key==="Enter"&&(R.ctrlKey||R.metaKey)&&(R.preventDefault(),c()),R.key==="Escape"&&(R.preventDefault(),He());});let p=y("kanuni-datagrid-note-actions"),E=document.createElement("button");E.type="button",E.className="kanuni-datagrid-note-cancel",E.textContent=h.cancel,E.addEventListener("click",()=>He());let b=document.createElement("button");b.type="button",b.className="kanuni-datagrid-note-save",b.setAttribute("data-testid","dg-note-save"),b.textContent=h.save,b.addEventListener("click",c),p.append(E,b),s.append(r,p),queueMicrotask(()=>{r.focus(),r.select();});},"kanuni-datagrid-filter-popup kanuni-datagrid-note-editor");});}function Yi(e){Pt!==e&&(Pt=e,e?(O.insertBefore(Ue,re),Po()):Ue.remove());}function ji(e){if(nt!==e){if(nt=e,e){if(ut){let t=tt.isConnected?tt:qe.isConnected?qe:$e;Ie.insertBefore(Oe,t);}else Ie.append(Oe);Mo();}else Oe.remove();tt.style.setProperty("--dg-pinned-gap",String(Ft+(nt&&ut?1:0))),qe.style.setProperty("--dg-pinned-gap",String(Ft+(nt&&ut?1:0)));}}function Fo(e){let t=Zo(O,e);t!==null&&a.setColumnWidth(e,t);}function oa(e,t){let o=a.getColumnModel().getDef(e),n={columnId:e,headerName:o?.headerName??e},i=Jo(n,{controller:a,t:h,groupPanelVisible:Pt,footerVisible:nt,onToggleGroupPanel:()=>Yi(!Pt),onToggleFooter:()=>ji(!nt),onOpenFieldChooser:()=>ra(t),onBestFit:Fo,onBestFitAll:()=>{for(let s of a.getColumnStates())s.visible&&!s.flex&&Fo(s.id);},maxGroupLevels:Ct?Number.POSITIVE_INFINITY:1}),d=typeof Se=="function"?Se(n,i):i;d.length!==0&&mt(t,s=>{s.setAttribute("role","menu"),Wn(s,d,n);},"kanuni-datagrid-context-menu");}function Xi(e,t){let o=a.getColumnModel().getDef(e),n=a.getColumnSummary(e),i={columnId:e,headerName:o?.headerName??o?.field??e},d=[{id:"none",label:h.noTotal,disabled:n===null,onSelect:()=>a.setColumnSummary(e,null)},{id:"sep",separator:true},...datagridCore.allowedSummaryTypes(o?.dataType).map(s=>({id:s,label:co[s],disabled:n?.type===s,onSelect:()=>a.setColumnSummary(e,s)}))];mt(t,s=>{s.setAttribute("role","menu"),Wn(s,d,i);},"kanuni-datagrid-context-menu");}function ra(e){mt(e,t=>{t.setAttribute("role","dialog"),t.setAttribute("aria-label",h.columns);let o=y("kanuni-datagrid-chooser-title");o.textContent=h.columns,t.appendChild(o);let n=()=>a.getColumnStates().filter(R=>!datagridCore.isChromeColumn(R.id)),i=()=>n().filter(R=>!a.getColumnModel().getDef(R.id)?.hideInChooser),d=R=>a.getColumnModel().getDef(R)?.headerName??R,s="";if(i().length>8){let R=document.createElement("input");R.type="search",R.className="kanuni-datagrid-filter-search",R.placeholder=h.search,R.setAttribute("aria-label",h.search),R.addEventListener("input",()=>{s=R.value.trim().toLocaleLowerCase(),b();}),t.appendChild(R);}let r=y("kanuni-datagrid-filter-list");t.appendChild(r);let c=y("kanuni-datagrid-filter-footer"),p=document.createElement("button");p.type="button",p.textContent=h.showAll,p.addEventListener("click",()=>{for(let R of i())R.visible||a.setColumnVisible(R.id,true);b();});let E=document.createElement("button");E.type="button",E.className="kanuni-datagrid-filter-primary",E.textContent=h.ok,E.addEventListener("click",()=>He()),c.append(p,E),t.appendChild(c);function b(){let R=i(),H=n().filter(B=>B.visible).length;r.textContent="";let x=s?R.filter(B=>d(B.id).toLocaleLowerCase().includes(s)):R;if(x.length===0){let B=y("kanuni-datagrid-chooser-empty");B.textContent=h.noData,r.appendChild(B);}for(let B of x){let m=document.createElement("label");m.className="kanuni-datagrid-filter-item";let w=document.createElement("input");w.type="checkbox",w.checked=B.visible,w.disabled=B.visible&&H===1,w.setAttribute("data-column-toggle",B.id),w.addEventListener("change",()=>{a.setColumnVisible(B.id,w.checked),b();});let G=document.createElement("span");G.textContent=d(B.id),m.append(w,G),r.appendChild(m);}p.disabled=H===R.length;}b();},"kanuni-datagrid-filter-popup kanuni-datagrid-column-chooser");}let _t=null,Ko=null,qn=e=>{Ue.classList.toggle("kanuni-datagrid-group-panel--over",e);};function aa(e,t,o){let n=a.getGroupLevels();if(e===t)return;let i=n.filter(r=>r!==e),d=i.indexOf(t);if(d<0)return;let s=o==="before"?d:d+1;Ko=e,a.groupBy([...i.slice(0,s),e,...i.slice(s)]);}function ia(e,t){let o=a.getGroupLevels(),n=o.indexOf(e),i=n+t;n<0||i<0||i>=o.length||aa(e,o[i],t===-1?"before":"after");}function la(e,t){if(!e)return;let o=a.getGroupLevels();if(o.includes(e))return;let n=Ct?Number.POSITIVE_INFINITY:1;if(o.length>=n){a.groupBy([...o.slice(0,n-1),e]);return}let i=t??o.length;a.groupBy([...o.slice(0,i),e,...o.slice(i)]);}function Po(){if(!Pt)return;Ue.textContent="";let e=a.getGroupLevels();if(e.length===0){let c=y("kanuni-datagrid-group-panel-hint","span");c.textContent=h.groupPanelHint??"Drag a column header here to group by it",Ue.appendChild(c);return}let t=c=>a.getColumnModel().getDef(c)?.headerName??c,o=y("kanuni-datagrid-group-levels"),n=(c,p)=>c<p.top+p.height/2?"before":"after",i=(c,p)=>{for(let E of Ue.querySelectorAll(".kanuni-datagrid-group-level"))E.classList.remove("kanuni-datagrid-group-level--drop-before","kanuni-datagrid-group-level--drop-after");c&&p&&c.classList.add(`kanuni-datagrid-group-level--drop-${p}`);};e.forEach((c,p)=>{let E=y("kanuni-datagrid-group-level");E.style.setProperty("--dg-group-level",String(p)),E.setAttribute("data-group-level",String(p));let b=y("kanuni-datagrid-group-chip");if(b.setAttribute("role","button"),b.tabIndex=0,e.length>1&&(b.draggable=true),b.setAttribute("aria-label",`${datagridCore.fillText(h.groupLevelAria,{n:p+1})}: ${t(c)}`),b.addEventListener("dragstart",x=>{_t=c,x.dataTransfer&&(x.dataTransfer.effectAllowed="move",x.dataTransfer.setData("text/x-kanuni-column",c));}),b.addEventListener("dragend",()=>{_t=null,i(null,null);}),b.addEventListener("keydown",x=>{let B=x.ctrlKey||x.metaKey;B&&(x.key==="ArrowUp"||x.key==="ArrowLeft")?(x.preventDefault(),ia(c,-1)):B&&(x.key==="ArrowDown"||x.key==="ArrowRight")?(x.preventDefault(),ia(c,1)):(x.key==="Delete"||x.key==="Backspace")&&(x.preventDefault(),a.groupBy(e.filter(m=>m!==c)));}),E.addEventListener("dragover",x=>{!_t&&!(x.dataTransfer?.types.includes("text/x-kanuni-column")??false)||(x.preventDefault(),x.stopPropagation(),i(E,n(x.clientY,E.getBoundingClientRect())));}),E.addEventListener("drop",x=>{x.preventDefault(),x.stopPropagation();let B=n(x.clientY,E.getBoundingClientRect());i(null,null),qn(false);let m=_t;if(_t=null,m){aa(m,c,B);return}let w=x.dataTransfer?.getData("text/x-kanuni-column");w&&la(w,B==="before"?p:p+1);}),e.length>1){let x=y("kanuni-datagrid-group-chip-level","span");x.textContent=String(p+1),b.appendChild(x);}let R=document.createElement("span");R.textContent=t(c);let H=document.createElement("button");H.type="button",H.setAttribute("aria-label",datagridCore.fillText(h.groupRemoveAria,{column:t(c)})),H.textContent="\xD7",H.addEventListener("click",()=>{a.groupBy(e.filter(x=>x!==c));}),H.draggable=false,b.append(R,H),E.appendChild(b),o.appendChild(E),Ko===c&&(Ko=null,queueMicrotask(()=>b.focus()));}),Ue.appendChild(o);let d=y("kanuni-datagrid-group-panel-actions"),s=document.createElement("button");s.type="button",s.textContent=h.groupExpandAll,s.addEventListener("click",()=>a.expandAllGroups());let r=document.createElement("button");r.type="button",r.textContent=h.groupCollapseAll,r.addEventListener("click",()=>a.collapseAllGroups()),d.append(s,r),Ue.appendChild(d);}if(Pt){let e=t=>t.dataTransfer?.types.includes("text/x-kanuni-column")??false;Ue.addEventListener("dragover",t=>{e(t)&&(t.preventDefault(),qn(true));}),Ue.addEventListener("dragleave",t=>{let o=t.relatedTarget;o&&Ue.contains(o)||qn(false);}),Ue.addEventListener("drop",t=>{qn(false);let o=t.dataTransfer?.getData("text/x-kanuni-column");if(o){if(t.preventDefault(),_t){_t=null;return}la(o);}});}let da="";function sa(){if(!N)return;let e=[datagridCore.fillText(h.announceRows,{n:a.getVisibleCount()})],t=a.getSort();if(t.length>0){let i=t.map(d=>{let s=a.getColumnModel().getDef(d.columnId),r=s?.headerName??s?.field??d.columnId,c=d.direction==="desc"?h.announceDescending:h.announceAscending;return `${r} ${c}`}).join(", ");e.push(datagridCore.fillText(h.announceSortedBy,{columns:i}));}let o=a.getSelectedCount();o>0&&e.push(datagridCore.fillText(h.announceSelected,{n:o}));let n=e.join(", ");n!==da&&(da=n,un.textContent=n);}function ua(){if(!ae)return;Kt.textContent="";let e=datagridCore.describeFilter(a.getEffectiveFilter(),a.getColumnModel(),{...we,labels:{...datagridCore.filterLabels(h),...we?.labels}});if(!e&&ae!=="always"){Kt.style.display="none";return}Kt.style.display="";let t=a.isFilterEnabled();Kt.className=`kanuni-datagrid-filter-panel${t?"":" kanuni-datagrid-filter-panel--suspended"}`;let o=document.createElement("button");o.type="button",o.className="kanuni-datagrid-filter-panel-clear",o.title=h.filterRemove,o.setAttribute("aria-label",h.filterRemove),o.setAttribute("data-testid","dg-filter-panel-clear"),o.disabled=e===null,o.textContent="\xD7",o.addEventListener("click",()=>{a.setFilter(null),a.clearColumnFilters(),a.setFilterEnabled(true);});let n=document.createElement("input");n.type="checkbox",n.className="kanuni-datagrid-filter-panel-toggle",n.checked=t,n.disabled=e===null,n.title=h.filterToggle,n.setAttribute("aria-label",h.filterToggle),n.setAttribute("data-testid","dg-filter-panel-toggle"),n.addEventListener("change",()=>a.setFilterEnabled(n.checked));let i=y("kanuni-datagrid-filter-panel-text","span");if(i.setAttribute("data-testid","dg-filter-panel-text"),i.textContent=e??h.filterNone,e&&(i.title=e),Kt.append(o,n,i),z){let d=document.createElement("button");d.type="button",d.className="kanuni-datagrid-filter-panel-builder",d.title=h.filterEditBuilder,d.setAttribute("aria-label",h.filterEditBuilder),d.setAttribute("data-testid","dg-filter-panel-builder"),d.textContent="\u25BE",d.addEventListener("click",()=>z()),Kt.appendChild(d);}}let Go=new Set,Ji=a.events.on("cellsFlashed",({rowKeys:e,columnIds:t,duration:o})=>{let n=e.length?e.map(r=>`[data-row-key="${CSS.escape(String(r))}"]`).join(","):".kanuni-datagrid-row",i=t.length?t.map(r=>`[data-column-id="${CSS.escape(r)}"]`).join(","):"[data-column-id]",d=[];fe.querySelectorAll(n).forEach(r=>{r.querySelectorAll(i).forEach(c=>d.push(c));});for(let r of d)r.classList.remove("kanuni-datagrid-cell--flash");O.offsetWidth;for(let r of d)r.classList.add("kanuni-datagrid-cell--flash");let s=setTimeout(()=>{for(let r of d)r.classList.remove("kanuni-datagrid-cell--flash");Go.delete(s);},o);Go.add(s);});function St(e){let t=e.target,o=t.closest(".kanuni-datagrid-row");if(!o||!fe.contains(o))return null;let n=o.getAttribute("data-row-key");if(n===null)return null;let i=a.getRows(),d=i.findIndex(r=>r!==void 0&&String(r.key)===n);if(d===-1)return null;let s=t.closest(".kanuni-datagrid-cell")?.getAttribute("data-column-id")??null;return {node:i[d],rowIndex:d,columnId:s}}let ca=e=>{let t=St(e);t&&(K?.(t.node),a.notifyRow("rowClicked",t.node,t.rowIndex),t.columnId&&a.notifyCell("cellClicked",t.node,t.rowIndex,t.columnId));},pa=e=>{let t=St(e);if(t){if(Cr){let o=Wo(t,true);o&&Cr(o);}Ce?.(t.node),a.notifyRow("rowDoubleClicked",t.node,t.rowIndex),t.columnId&&a.notifyCell("cellDoubleClicked",t.node,t.rowIndex,t.columnId);}};fe.addEventListener("click",ca),fe.addEventListener("dblclick",pa);function Qi(e){let t=0,o=Ae.querySelector(`[data-column-id="${CSS.escape(e)}"]`);o&&(t=o.scrollWidth),fe.querySelectorAll(`[data-column-id="${CSS.escape(e)}"]`).forEach(n=>{n.scrollWidth>t&&(t=n.scrollWidth);}),t>0&&a.setColumnWidth(e,t+12,true);}function Zi(){if(Te)for(let e of Ae.querySelectorAll('[role="columnheader"][data-column-id]')){let t=Te(e.getAttribute("data-column-id"))??"",o=e.dataset.slotClass??"";if(t!==o){for(let n of o.split(" "))n&&e.classList.remove(n);for(let n of t.split(" "))n&&e.classList.add(n);e.dataset.slotClass=t;}}}function el(){if($)for(let e of Ae.querySelectorAll(".kanuni-datagrid-filter-button")){let t=e.parentElement?.getAttribute("data-column-id");t&&e.classList.toggle("kanuni-datagrid-filter-button--active",a.getColumnFilter(t)!==null);}}let $o=false,fa=false,tn=null;function Un(){tn!==null&&(clearTimeout(tn),tn=null);}function zn(e){sn.style.display=e?"":"none";}function Yn(){let e=a.getOverlay();if(Ln.style.display=e==="noRows"?"":"none",uo===false){Un(),zn(false);return}if(!(e==="loading"&&($o||!fa))){Un(),zn(false);return}if($o||yr<=0){Un(),zn(true);return}tn!==null||sn.style.display===""||(tn=setTimeout(()=>{tn=null,Be||zn(true);},yr));}let ga=false,Oo=false,Bo=false,Vo=false,Be=false,_o=new datagridCore.RowMotion;function tl(){if(Oo=false,!Be){if(Bo)Bo=false,Vo&&(Vo=false,ft++),Eo(),ko(),Lo(),Bn();else {let e=ze;Eo(),ze!==e?(ft++,ko(),Lo(),Bn()):a.getPinnedRows("top").length+a.getPinnedRows("bottom").length>0&&Bn();}Gn(),a.getAnimateRows()&&_o.play(fe),Gr(),Mo(),Xr(),el(),Zi(),Po(),ua(),sa(),Yn();}}function jn(e){Be||(e&&(Bo=true),!Oo&&(Oo=true,queueMicrotask(tl)));}let nl=[...J?[a.events.on("focusedRowChanged",e=>J({rowKey:e.rowKey,row:e.row}))]:[],...Id.map(e=>a.events.on(e,()=>jn(true))),...Hd.map(e=>a.events.on(e,()=>{Vo=true;})),...Fd.map(e=>a.events.on(e,()=>jn(false))),a.events.on("filterChanged",()=>$i()),...["sortChanged","filterChanged","groupChanged","dataUpdated"].map(e=>a.events.on(e,()=>{a.getAnimateRows()&&_o.capture(fe);})),a.events.on("rowPinningChanged",()=>{Be||(Bi(),jn(true));}),a.events.on("overlayChanged",e=>{$o=e.manual===true&&e.overlay==="loading",Be||Yn();}),a.events.on("busyChanged",e=>{fa=e.background===true,Be||Yn();}),a.events.on("paginationChanged",()=>{Be||jn(false);}),a.events.on("bodyScroll",()=>{Be||Yr();}),a.events.on("cellsRefreshed",()=>{Be||Vr();}),a.events.on("scrollRequested",e=>{if(Be)return;e.scrollTop!==void 0&&(re.scrollTop=e.scrollTop),e.scrollLeft!==void 0&&(re.scrollLeft=e.scrollLeft),a.setScroll(re.scrollTop,Math.abs(re.scrollLeft));let t=e.scrollTop;t===void 0||Math.abs(re.scrollTop-t)<=1||setTimeout(()=>{Be||Math.abs(re.scrollTop-t)<=1||(re.scrollTop=t,a.setScroll(re.scrollTop,Math.abs(re.scrollLeft)));},0);}),...Me==="fitGrid"?[a.events.on("gridSizeChanged",()=>a.sizeColumnsToFit())]:[],...Me==="fitCells"?[a.events.on("firstDataRendered",()=>{Be||ga||(ga=true,queueMicrotask(()=>{if(!Be)for(let e of a.getColumnStates())e.visible&&!e.flex&&Fo(e.id);}));})]:[]];Me==="fitGrid"&&a.sizeColumnsToFit();function Wo(e,t=false){if(!e.columnId||e.node.kind!=="data"&&!(t&&e.node.kind==="group"))return null;let o=lt.find(n=>n.id===e.columnId);return o?{node:e.node,columnId:e.columnId,rowIndex:e.rowIndex,columnIndex:o.visualIndex,value:e.node.kind==="data"?a.getColumnModel().getCellValue(e.node.data,o.id):void 0}:null}let ma=e=>{let t=e.target;if(ye){let r=St(e),c=r?Wo(r):null;c&&ye(c,e);}let o=t.closest(".kanuni-datagrid-row");if(!o||o.classList.contains("kanuni-datagrid-group-row"))return;let n=o.getAttribute("data-row-key");if(n===null)return;let i=a.getRows().find(r=>r!==void 0&&String(r.key)===n);if(!i||i.kind!=="data")return;a.handleRowClick(i.key,{ctrlKey:e.ctrlKey||vi&&!e.shiftKey,metaKey:e.metaKey,shiftKey:e.shiftKey});let d=t.closest(".kanuni-datagrid-cell"),s=d?lt.find(r=>d.id.endsWith(`-${r.id}`))?.id:void 0;s&&a.focusCell(i.key,s);},ba=e=>{if(!Ne)return;let o=e.target.closest(".kanuni-datagrid-cell");if(!o||!fe.contains(o)||e.relatedTarget?.closest?.(".kanuni-datagrid-cell")===o)return;let i=St(e),d=i?Wo(i):null;d&&Ne(d,e);};if(fe.addEventListener("mousedown",ma),fe.addEventListener("contextmenu",na),Ne&&fe.addEventListener("mouseover",ba),pn&&($e.addEventListener("dragstart",Ei),$e.addEventListener("dragover",ki),$e.addEventListener("drop",Ri),$e.addEventListener("dragend",xi),$e.addEventListener("dragleave",Ti)),O.tabIndex=0,It){Ze=ir({controller:a,element:O},_e,h,{surfaceClass:()=>ro(u).replace("kanuni-datagrid-root","").trim(),barHost:O},{isColumnEditable:t=>Ya(a.getColumnModel().getDef(t),t)});let e=O.querySelector(':scope > [data-testid="dg-edit-bar"]');e&&O.insertBefore(e,O.firstChild),Ze.engine.setSavedDuration(rt?.savedDuration??0);}Vr();let wa=e=>{let t=Ze;if(!t||ln)return;let o=e.target;if(!o||!(o===O||o===re||fe.contains(o)))return;let n=o.tagName;n==="INPUT"||n==="TEXTAREA"||n==="SELECT"||o.isContentEditable||t.handleKeyDown(e)&&e.stopImmediatePropagation();};It&&O.addEventListener("keydown",wa,true);let ya=e=>{let t=e.target;if(t.tagName==="INPUT"||t.tagName==="TEXTAREA"||t.isContentEditable||ot.contains(t)||ct.contains(t)||t.closest?.('[data-testid="dg-edit-form"], [data-testid="dg-edit-bar"], [data-testid="dg-row-message"]')||Ae.contains(t))return;if((ve||le||a.isRowPinningEnabled())&&(e.key==="ContextMenu"||e.key==="F10"&&e.shiftKey)){let d=a.getFocus(),s=d?fe.querySelector(`[id="${CSS.escape(`${u.gridId}-cell-${String(d.rowKey)}-${d.columnId}`)}"]`):null;if(s){let r=s.getBoundingClientRect();s.dispatchEvent(new MouseEvent("contextmenu",{bubbles:true,cancelable:true,clientX:r.left+16,clientY:r.bottom})),e.preventDefault();}return}let o=datagridCore.resolveGridCommand({key:e.key,ctrlKey:e.ctrlKey,metaKey:e.metaKey,shiftKey:e.shiftKey,altKey:e.altKey});if(!o)return;if(o.type==="copy"){_n();return}if(o.type==="activate"){if(Ce){let d=a.getFocus(),s=d?a.getRows().find(r=>r!==void 0&&r.key===d.rowKey):void 0;s&&Ce(s);}o.preventDefault&&e.preventDefault();return}a.executeCommand(o),o.preventDefault&&e.preventDefault();let n=a.getFocusIndices();if(n){let s=a.getColumnLayout().center.findIndex(c=>c.state.id===a.getFocus()?.columnId),r=a.ensureVisible(n.rowIndex,s===-1?void 0:s);r&&(r.scrollTop!==void 0&&(re.scrollTop=r.scrollTop),r.scrollLeft!==void 0&&(re.scrollLeft=r.scrollLeft),a.setScroll(re.scrollTop,Math.abs(re.scrollLeft)));}let i=a.getFocus();O.setAttribute("aria-activedescendant",i?`${u.gridId}-cell-${String(i.rowKey)}-${i.columnId}`:"");};O.addEventListener("keydown",ya);let ol=mr?datagridCore.attachStateStoring(a,mr):null,ha=typeof et=="object"?et.delay??400:400,Ca=et!==false&&!(typeof et=="object"&&et.enabled===false),rl=typeof et=="object"?et.showOnTruncation!==false:true,va=typeof et=="object"?et.trigger??"hover":"hover",Ea=Ca&&va!=="focus",qo=Ca&&va!=="hover",Xn=typeof et=="object"&&et.interactive===true,ka=`${u.gridId}-tooltip`,Wt=null,Ye=null,je=null,qt=null,Uo=null;function Lt(){Ye&&clearTimeout(Ye),Ye=null,qt=null,zo();}function zo(){je&&clearTimeout(je),je=null,Uo?.removeAttribute("aria-describedby"),Uo=null,Wt?.remove(),Wt=null;}let al=e=>e.scrollWidth>e.clientWidth+1||e.scrollHeight>e.clientHeight+1;function il(e){let o=e.closest(".kanuni-datagrid-row")?.getAttribute("data-row-key"),n=lt.find(p=>e.id.endsWith(`-${p.id}`));if(!o||!n)return null;let i=a.getRows().find(p=>p!==void 0&&String(p.key)===o);if(!i||i.kind!=="data")return null;let d=n.def,s=To(i.key,n.id,i.data);if(s)return s;let r={value:a.getColumnModel().getCellValue(i.data,n.id),row:i.data,node:i,column:d},c=d.renderTooltip;if(c){let p=c(r);return p===void 0||p===""?null:p}if(typeof d.tooltip=="function")return d.tooltip(r)??null;if(typeof d.tooltip=="string")return d.tooltip;if(d.tooltipField){let p=i.data[d.tooltipField];return p==null?null:String(p)}return rl&&al(e)?e.textContent??null:null}function Ra(e,t){let o=il(e);if(o===null||o==="")return;zo();let n=e.getBoundingClientRect();Wt=y(`${ro(u)} kanuni-datagrid-portal`);let i=y(Xn?"kanuni-datagrid-tooltip kanuni-datagrid-tooltip--interactive":"kanuni-datagrid-tooltip");i.id=ka,i.setAttribute("role","tooltip"),typeof o=="string"?i.textContent=o:i.appendChild(o),i.style.position="fixed",i.style.left=`${n.left}px`,i.style.top=`${n.bottom+4}px`,i.style.zIndex="1001",Xn&&(i.addEventListener("pointerenter",()=>{je&&clearTimeout(je),je=null,Ye&&clearTimeout(Ye),Ye=null;}),i.addEventListener("pointerleave",Lt)),Wt.appendChild(i),datagridCore.portalTarget(u.portalContainer).appendChild(datagridCore.markPortal(Wt,u.portalContainer,"tooltip")),t&&(e.setAttribute("aria-describedby",ka),Uo=e);}let xa=e=>{if(!Ea)return;let t=e.target.closest(".kanuni-datagrid-cell");if(t&&t===qt){je&&clearTimeout(je),je=null;return}Xn&&Wt&&je?(Ye&&clearTimeout(Ye),Ye=null):Lt(),!(!t||!fe.contains(t))&&(qt=t,Ye=setTimeout(()=>{Ye=null,!(qt!==t||!t.isConnected)&&Ra(t,false);},ha));},Ta=e=>{if(!Ea)return;let t=e.relatedTarget;if(!(qt&&t&&qt.contains(t))){if(!Xn||!Wt){Lt();return}je&&clearTimeout(je),je=setTimeout(zo,150);}};O.addEventListener("pointerover",xa),O.addEventListener("pointerout",Ta),re.addEventListener("scroll",Lt,{passive:true});let Sa=-1/0,La=()=>{Sa=Date.now();};qo&&O.addEventListener("pointerdown",La);let ll=qo?a.events.on("focusChanged",()=>{Lt();let e=a.getFocus();e&&(Ye=setTimeout(()=>{if(Ye=null,!O.contains(document.activeElement)&&Date.now()-Sa>1500)return;let t=document.getElementById(`${u.gridId}-cell-${String(e.rowKey)}-${e.columnId}`);!t||!fe.contains(t)||(qt=t,Ra(t,true));},ha));}):null,Aa=e=>{e.key==="Escape"&&Lt();};qo&&O.addEventListener("keydown",Aa);let Ma=()=>{if(a.setScroll(re.scrollTop,Math.abs(re.scrollLeft)),At)for(let e of Da())e.scroller.scrollLeft!==re.scrollLeft&&(e.scroller.scrollLeft=re.scrollLeft);};re.addEventListener("scroll",Ma,{passive:true});let At=null,Da=()=>{if(!ue||!At)return [];let e=vn.get(ue);return e?[...e].filter(t=>t!==At):[]},Na=null;if(ue){At={controller:a,scroller:re};let e=vn.get(ue)??new Set;e.add(At),vn.set(ue,e),Na=a.events.on("columnStateChanged",()=>{if(pr.has(ue))return;let t=Da();if(t.length===0)return;let o=a.getColumnStates();pr.add(ue);try{for(let n of t)n.controller.applyColumnStates(o);}finally{pr.delete(ue);}});}let Ia=()=>{a.setViewportSize(re.clientWidth,re.clientHeight),an&&Ci(datagridCore.cardViewWidth(re)),re.style.setProperty("--dg-viewport-width",`${re.clientWidth}px`);let e=$e.getBoundingClientRect(),t=Ie.getBoundingClientRect();a.setChromeOffsets(e.top-t.top,t.bottom-e.bottom),datagridCore.calibrateMaxScrollOffset(re,a);};Ia();let Jn=null;typeof ResizeObserver<"u"&&(Jn=new ResizeObserver(Ia),Jn.observe(re),Jn.observe(Ie)),Eo(),ko(),Lo(),Oi(),Bn(),Gn(),Mo(),Xr(),Po(),ua(),sa(),Yn(),Ot?.always&&Co(true);let Yo=null;if(Re){let e=null,t=()=>{let o=Ae.offsetHeight,n=o>0?`${o}px`:null;n!==e&&(e=n,n?Ie.style.setProperty("--dg-header-actual",n):Ie.style.removeProperty("--dg-header-actual"));};t(),typeof ResizeObserver<"u"&&(Yo=new ResizeObserver(t),Yo.observe(Ae));}return xr=true,{controller:a,element:O,setData:e=>a.setData(e),setColumns:e=>a.setColumns(e),destroy:()=>{if(!Be){if(Be=true,nl.forEach(e=>e()),mn.forEach(e=>e()),mn=[],Jn?.disconnect(),Yo?.disconnect(),Pr?.(),Qt&&(Qt=false,Yt--,Yt<=0&&(Yt=0,document.documentElement.classList.remove("kanuni-datagrid-printing"))),Na?.(),ue&&At){let e=vn.get(ue);e?.delete(At),e&&e.size===0&&vn.delete(ue),At=null;}re.removeEventListener("scroll",Ma),fe.removeEventListener("mousedown",ma),fe.removeEventListener("contextmenu",na),tt.removeEventListener("contextmenu",Vn),_o.dispose(),vt.removeEventListener("contextmenu",Vn),Ne&&fe.removeEventListener("mouseover",ba),fe.removeEventListener("click",ca),fe.removeEventListener("dblclick",pa),Ji(),Un();for(let e of Go)clearTimeout(e);O.removeEventListener("keydown",ya),O.removeEventListener("keydown",wa,true),Ze?.dispose(),Ze=null,O.removeEventListener("pointerover",xa),O.removeEventListener("pointerout",Ta),O.removeEventListener("keydown",Aa),O.removeEventListener("pointerdown",La),ll?.(),re.removeEventListener("scroll",Lt),Lt(),ol?.(),He(false),a.dispose(),O.remove();}}}}function _d(l){let u=document.createElement("button");u.type="button";let f={...l},D=()=>{let{icon:v,label:C,shortcut:M,disabledReason:A,showLabel:T,testId:Z}=f;if(u.className=`kanuni-datagrid-app-button${T?"":" kanuni-datagrid-toolbar-icon-button"}`,u.textContent="",typeof v=="string"?u.insertAdjacentHTML("afterbegin",v):u.appendChild(v),T){let F=document.createElement("span");F.textContent=C,u.appendChild(F),u.removeAttribute("aria-label");}else u.setAttribute("aria-label",C);let U=M?`${C} (${M})`:C;u.title=A!==void 0?`${U} \u2014 ${A}`:U,M?u.setAttribute("aria-keyshortcuts",M):u.removeAttribute("aria-keyshortcuts"),A!==void 0?(u.setAttribute("aria-disabled","true"),u.setAttribute("aria-description",A)):(u.removeAttribute("aria-disabled"),u.removeAttribute("aria-description")),Z&&u.setAttribute("data-testid",Z);};return u.addEventListener("click",v=>{if(f.disabledReason!==void 0){v.preventDefault();return}f.onClick?.();}),u.update=v=>{f={...f,...v},D();},D(),u}Object.defineProperty(exports,"DENSITY_ROW_HEIGHT",{enumerable:true,get:function(){return datagridCore.DENSITY_ROW_HEIGHT}});Object.defineProperty(exports,"GRID_COLOR_SCHEMES",{enumerable:true,get:function(){return datagridCore.GRID_COLOR_SCHEMES}});Object.defineProperty(exports,"THEME_ROW_HEIGHT",{enumerable:true,get:function(){return datagridCore.THEME_ROW_HEIGHT}});Object.defineProperty(exports,"isPackagedTheme",{enumerable:true,get:function(){return datagridCore.isPackagedTheme}});Object.defineProperty(exports,"presetRowHeight",{enumerable:true,get:function(){return datagridCore.presetRowHeight}});exports.CHECKBOX_COLUMN_WIDTH=ao;exports.DETAIL_COLUMN_WIDTH=kn;exports.PRINT_MAX_ROWS=ii;exports.ROW_DRAG_MIME=io;exports.ROW_NUMBER_COLUMN_WIDTH=En;exports.attachCellEditing=ir;exports.buildCellEditor=nr;exports.buildDateEditor=Ut;exports.buildEditForm=rr;exports.buildHeaderMenu=Jo;exports.createGrid=Vd;exports.measureBestFitWidth=Zo;exports.openConfirmDialog=or;exports.toolbarButton=_d;
1
+ 'use strict';var datagridCore=require('@kanunilabs/datagrid-core');function Jo(l,u){let{controller:f,maxGroupLevels:M,t:E}=u,C=l.columnId,A=f.getColumnModel().getDef(C),L=f.getSort(),x=L.find(O=>O.columnId===C),Z=f.getGroupLevels(),U=Z.includes(C),H=A?.sortable!==false,V=f.getColumnStates().find(O=>O.id===C)?.pinned??null,ce=A?.groupable!==false,W=f.canGroup(),se=[{id:"sort-asc",label:E.sortAsc,disabled:!H||x?.direction==="asc",onSelect:()=>f.setSort([{columnId:C,direction:"asc"}])},{id:"sort-desc",label:E.sortDesc,disabled:!H||x?.direction==="desc",onSelect:()=>f.setSort([{columnId:C,direction:"desc"}])},{id:"sort-clear",label:E.clearSort,disabled:!x,onSelect:()=>f.setSort(L.filter(O=>O.columnId!==C))},{id:"sep-1",separator:true},{id:"group",label:U?E.ungroupColumn:E.groupByColumn,disabled:!ce,onSelect:()=>{U?f.groupBy(Z.filter(O=>O!==C)):f.groupBy([...Z,C].slice(-M));}},{id:"group-panel",label:u.groupPanelVisible?E.hideGroupPanel:E.showGroupPanel,onSelect:u.onToggleGroupPanel},{id:"footer",label:u.footerVisible?E.hideFooter:E.showFooter,onSelect:u.onToggleFooter},{id:"sep-2",separator:true},{id:"hide-column",label:E.hideColumn,disabled:f.getColumnStates().filter(O=>O.visible).length<=1,onSelect:()=>f.setColumnVisible(C,false)},{id:"field-chooser",label:E.fieldChooser,onSelect:u.onOpenFieldChooser},{id:"sep-3",separator:true},{id:"best-fit",label:E.bestFit,disabled:A?.resizable===false,onSelect:()=>u.onBestFit(C)},{id:"best-fit-all",label:E.bestFitAll,onSelect:u.onBestFitAll}],ee=f.getColumnStates().filter(O=>O.visible&&O.pinned===V).map(O=>O.id),Re=ee.indexOf(C),T=A?.reorderable!==false&&Re>=0;return se.push({id:"sep-4",separator:true},{id:"move-left",label:E.moveLeft,disabled:!T||Re<=0,onSelect:()=>f.moveColumn(C,ee[Re-1])},{id:"move-right",label:E.moveRight,disabled:!T||Re<0||Re>=ee.length-1,onSelect:()=>f.moveColumn(C,ee[Re+2])},{id:"fixed-position",label:E.fixedPosition,items:[{id:"pin-left",label:E.pinLeft,disabled:V==="left",onSelect:()=>f.setColumnPinned(C,"left")},{id:"pin-right",label:E.pinRight,disabled:V==="right",onSelect:()=>f.setColumnPinned(C,"right")},{id:"pin-sticky",label:E.pinSticky,disabled:V==="sticky",onSelect:()=>f.setColumnPinned(C,"sticky")}]},{id:"unpin",label:E.unpin,disabled:V===null,onSelect:()=>f.setColumnPinned(C,null)}),W?se:se.filter(O=>O.id!=="group"&&O.id!=="group-panel")}async function Qo(l,u){try{let f=u==="csv"?await l.exportToCsv():u==="excel"?await l.exportToExcel():u==="excel-selected"?await l.exportToExcel({selectedOnly:!0}):await l.exportToPdf();return datagridCore.downloadBlob(f.blob,f.fileName),{completed:!0}}catch(f){return f instanceof datagridCore.ExportAbortedError?{completed:false}:{completed:false,error:f instanceof Error?f.message:String(f)}}}var $a=null;function pl(){return typeof document>"u"?null:($a??=document.createElement("canvas"),$a.getContext("2d"))}function Oa(l){let u=getComputedStyle(l);return `${u.fontStyle} ${u.fontWeight} ${u.fontSize} ${u.fontFamily}`}function fl(l){for(let u=l.firstElementChild;u;u=u.nextElementSibling)if(u.tagName!=="MARK")return true;return false}function gl(l){let u=l.map(M=>[M.style.width,M.style.minWidth,M.style.maxWidth]);for(let M of l)M.style.width="max-content",M.style.minWidth="0",M.style.maxWidth="none";let f=0;for(let M of l){let E=Math.ceil(M.getBoundingClientRect().width);E>f&&(f=E);}return l.forEach((M,E)=>{[M.style.width,M.style.minWidth,M.style.maxWidth]=u[E];}),f}function Zo(l,u){let f=pl();if(!f)return null;let M=typeof CSS<"u"&&CSS.escape?CSS.escape(u):u.replace(/"/g,'\\"'),E=l.querySelector(`.kanuni-datagrid-header-cell[data-column-id="${M}"]`),C=l.querySelectorAll(`.kanuni-datagrid-cell[data-column-id="${M}"]`);if(!E&&C.length===0)return null;let A=0;if(E){let L=E.querySelector(".kanuni-datagrid-header-label")??E;f.font=Oa(L),A=f.measureText(L.textContent??"").width+44;}if(C.length>0){f.font=Oa(C[0]);let L=[];for(let x=0;x<C.length;x++){if(fl(C[x])){L.push(C[x]);continue}let Z=C[x].textContent??"";if(Z==="")continue;let U=f.measureText(Z).width+20;U>A&&(A=U);}L.length>0&&(A=Math.max(A,gl(L)));}return A===0?null:Math.round(Math.min(640,Math.max(48,A)))}function _a(l){let u=Number(l.weekStartsOn);return Number.isInteger(u)&&u>=0&&u<=6?u:0}function Rl(l){let u=[l.weekdaySu,l.weekdayMo,l.weekdayTu,l.weekdayWe,l.weekdayTh,l.weekdayFr,l.weekdaySa],f=_a(l);return [...u.slice(f),...u.slice(0,f)]}function xl(l){return [l.monthJanuary,l.monthFebruary,l.monthMarch,l.monthApril,l.monthMay,l.monthJune,l.monthJuly,l.monthAugust,l.monthSeptember,l.monthOctober,l.monthNovember,l.monthDecember]}function Tl(l,u){return !l||!u?false:l.getFullYear()===u.getFullYear()&&l.getMonth()===u.getMonth()&&l.getDate()===u.getDate()}var Va="http://www.w3.org/2000/svg";function Sl(){let l=document.createElementNS(Va,"svg");l.setAttribute("width","14"),l.setAttribute("height","14"),l.setAttribute("viewBox","0 0 16 16"),l.setAttribute("aria-hidden","true"),l.setAttribute("focusable","false");let u=document.createElementNS(Va,"path");return u.setAttribute("d","M3 4h10v9H3z M3 6.5h10 M5.5 2.5v2 M10.5 2.5v2"),u.setAttribute("fill","none"),u.setAttribute("stroke","currentColor"),u.setAttribute("stroke-width","1.3"),u.setAttribute("stroke-linecap","round"),l.appendChild(u),l}function Ut(l){let{t:u,format:f=datagridCore.DEFAULT_DATE_FORMAT,autoFocus:M=true}=l,E=xl(u),C=Rl(u),A=document.createElement("span");A.className="kanuni-datagrid-date-editor";let L=document.createElement("input");L.type="text",L.inputMode="numeric",L.autocomplete="off",L.placeholder=f,l.ariaLabel&&L.setAttribute("aria-label",l.ariaLabel),l.testId&&L.setAttribute("data-testid",l.testId),l.columnId&&L.setAttribute("data-column-id",l.columnId),l.disabled&&(L.disabled=true);let x=null,Z=false,U=null,H=datagridCore.toDate(l.value),V=H??new Date,ce=()=>x===null?datagridCore.formatDateValue(l.value,f):datagridCore.maskDate(x,f),W=()=>x===null?null:datagridCore.parseDateValue(datagridCore.maskDate(x,f),f),se=()=>x!==null&&x.length===datagridCore.dateDigitCount(f)&&W()===null,ee=()=>{let P=se()||!!l.invalid;L.className=`kanuni-datagrid-editor${P?" kanuni-datagrid-editor--invalid":""}`,P?L.setAttribute("aria-invalid","true"):L.removeAttribute("aria-invalid");};L.value=ce(),ee();let Re=P=>{if(P===null){l.onChange(null);return}l.onChange(l.value instanceof Date?P:datagridCore.toIsoDate(P));},T=()=>{if(!U)return;if(!L.isConnected){Y();return}let P=L.getBoundingClientRect(),Ce=datagridCore.placeAnchoredLayer({anchor:{left:P.left,top:P.top,bottom:P.bottom},width:U.offsetWidth,height:U.offsetHeight,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight});U.style.left=`${Ce.left}px`,U.style.top=`${Ce.top}px`;},O=()=>T();function J(){if(!U)return;U.textContent="";let P=document.createElement("div");P.className="kanuni-datagrid-date-popup-head";let Ce=document.createElement("button");Ce.type="button",Ce.setAttribute("aria-label",u.datePreviousMonth),Ce.setAttribute("data-testid","dg-date-prev"),Ce.textContent="\u2039",Ce.addEventListener("click",()=>{V=new Date(V.getFullYear(),V.getMonth()-1,1),J();});let Me=document.createElement("span");Me.setAttribute("data-testid","dg-date-title"),Me.textContent=`${E[V.getMonth()]} ${V.getFullYear()}`;let pe=document.createElement("button");pe.type="button",pe.setAttribute("aria-label",u.dateNextMonth),pe.setAttribute("data-testid","dg-date-next"),pe.textContent="\u203A",pe.addEventListener("click",()=>{V=new Date(V.getFullYear(),V.getMonth()+1,1),J();}),P.append(Ce,Me,pe);let g=document.createElement("div");g.className="kanuni-datagrid-date-popup-grid",g.setAttribute("role","grid");for(let we of C){let j=document.createElement("span");j.className="kanuni-datagrid-date-weekday",j.setAttribute("role","columnheader"),j.textContent=we,g.appendChild(j);}let D=(new Date(V.getFullYear(),V.getMonth(),1).getDay()-_a(u)+7)%7,ye=datagridCore.daysInMonth(V.getFullYear(),V.getMonth()+1);for(let we=0;we<42;we++){let j=we-D+1,le=new Date(V.getFullYear(),V.getMonth(),j),ve=j<1||j>ye,Se=Tl(le,W()??H),_=document.createElement("button");_.type="button",_.setAttribute("role","gridcell"),_.className=`kanuni-datagrid-date-day${ve?" kanuni-datagrid-date-day--outside":""}${Se?" kanuni-datagrid-date-day--selected":""}`,_.setAttribute("aria-selected",String(Se)),_.setAttribute("data-testid","dg-date-day"),_.setAttribute("data-date",datagridCore.toIsoDate(le)),_.textContent=String(le.getDate()),_.addEventListener("click",()=>q(le)),g.appendChild(_);}U.append(P,g);}function ae(){if(Z)return;Z=true,Q.setAttribute("aria-expanded","true"),V=W()??H??new Date,U=document.createElement("div"),U.className=`kanuni-datagrid-detached kanuni-datagrid-date-popup${l.surfaceClass?` ${l.surfaceClass}`:""}`,U.style.position="fixed",U.setAttribute("data-testid","dg-date-calendar"),U.setAttribute("role","dialog"),U.setAttribute("aria-label",l.ariaLabel?`${l.ariaLabel} ${u.dateCalendar}`:u.dateCalendar),U.addEventListener("mousedown",Ce=>Ce.preventDefault());let P=datagridCore.portalContainerFor(A);datagridCore.portalTarget(P).appendChild(datagridCore.markPortal(U,P)),window.addEventListener("scroll",O,true),window.addEventListener("resize",O),l.onPortalOpen?.(Y),J(),T();}function Y(){Z&&(Z=false,Q.setAttribute("aria-expanded","false"),window.removeEventListener("scroll",O,true),window.removeEventListener("resize",O),U?.remove(),U=null);}function q(P){x=null,Y(),Re(P),L.value=datagridCore.formatDateValue(l.value instanceof Date?P:datagridCore.toIsoDate(P),f),ee(),L.focus({preventScroll:true});}function te(){if(x===null)return;if(x.length===0){Re(null),x=null,L.value=ce(),ee();return}let P=W();P&&Re(P),x=null,L.value=ce(),ee();}L.addEventListener("input",()=>{x=datagridCore.dateDigits(L.value,f),L.value=datagridCore.maskDate(x,f),ee();}),L.addEventListener("keydown",P=>{if(P.key==="Escape"){if(P.preventDefault(),P.stopPropagation(),Z){Y();return}x=null,l.onCancel();return}if(Z){let Ce=P.key==="ArrowLeft"?-1:P.key==="ArrowRight"?1:P.key==="ArrowUp"?-7:P.key==="ArrowDown"?7:0;if(Ce!==0){P.preventDefault(),P.stopPropagation();let Me=W()??H??new Date,pe=new Date(Me.getFullYear(),Me.getMonth(),Me.getDate()+Ce);x=datagridCore.dateDigits(datagridCore.formatDateValue(pe,f),f),L.value=datagridCore.maskDate(x,f),V=pe,J(),ee();return}if(P.key==="Enter"){P.preventDefault(),P.stopPropagation();let Me=W();Y(),Me&&q(Me);return}}if(P.key==="Enter"){P.preventDefault(),P.stopPropagation(),te(),l.onCommit();return}if(P.key==="Tab"){te(),Y(),l.onTab&&(P.preventDefault(),P.stopPropagation(),l.onTab(P.shiftKey));return}if(P.key.length===1&&!P.ctrlKey&&!P.metaKey&&!/\d/.test(P.key)){P.preventDefault();return}P.stopPropagation();}),L.addEventListener("blur",()=>{Z||te();});let Q=document.createElement("button");return Q.type="button",Q.className="kanuni-datagrid-date-button",Q.setAttribute("aria-label",l.ariaLabel?`${l.ariaLabel} \u2014 ${u.dateOpenCalendar}`:u.dateOpenCalendar),Q.setAttribute("aria-expanded","false"),Q.setAttribute("data-testid","dg-date-open"),l.disabled&&(Q.disabled=true),Q.tabIndex=-1,Q.addEventListener("mousedown",P=>P.preventDefault()),Q.addEventListener("click",()=>{Z?Y():ae(),L.focus({preventScroll:true});}),Q.appendChild(Sl()),A.append(L,Q),M&&queueMicrotask(()=>{L.isConnected&&(L.focus({preventScroll:true}),L.select());}),A}function Wa(l,u){return l==null?"":u==="date"&&l instanceof Date?l.toISOString().slice(0,10):String(l)}function qa(l,u){if(u){let f=document.createElement("span");f.id="kanuni-datagrid-editor-error",f.setAttribute("role","alert"),f.className="kanuni-datagrid-editor-error",f.textContent=u,l.appendChild(f);}return l}function nr(l){let{value:u,dataType:f,error:M,seeded:E=false}=l,C=document.createDocumentFragment();if(l.options===null){let x=document.createElement("input");return x.type="text",x.value="\u2026",x.readOnly=true,x.disabled=true,x.className="kanuni-datagrid-editor",x.setAttribute("data-testid","dg-cell-editor"),C.appendChild(x),C}if(l.options&&l.options.length>0&&l.renderLookup)return C.appendChild(l.renderLookup({options:l.options,value:u,matchMode:l.matchMode,allowCustom:l.allowCustom,invalid:!!M,testId:"dg-cell-editor",ariaLabel:l.ariaLabel,surfaceClass:l.surfaceClass,onPortalOpen:l.onPortalOpen,noMatchText:l.t?.editNoMatch??"No match",onChange:l.onChange,onCommit:()=>l.onCommit("none"),onCancel:l.onCancel,onTab:x=>l.onTab(x?-1:1)})),qa(C,M);if(f==="date"&&l.t)return C.appendChild(Ut({value:u,format:l.dateFormat,invalid:!!M,testId:"dg-cell-editor",ariaLabel:l.ariaLabel,surfaceClass:l.surfaceClass,onPortalOpen:l.onPortalOpen,t:l.t,onChange:l.onChange,onCommit:()=>l.onCommit("none"),onCancel:l.onCancel,onTab:x=>l.onTab(x?-1:1)})),qa(C,M);let A=document.createElement("input");A.className=`kanuni-datagrid-editor${M?" kanuni-datagrid-editor--invalid":""}`,A.setAttribute("data-testid","dg-cell-editor"),A.setAttribute("aria-invalid",String(!!M)),M&&A.setAttribute("aria-errormessage","kanuni-datagrid-editor-error");let L=false;if(f==="boolean"?(A.type="checkbox",A.checked=u===true,A.addEventListener("change",()=>l.onChange(A.checked))):f==="number"?(A.type=Number.isNaN(Number(u))&&u!==null&&u!==void 0&&u!==""?"text":"number",A.value=Wa(u,f),A.addEventListener("input",()=>l.onChange(A.value===""?null:Number(A.value)))):(A.type="text",A.value=Wa(u,f),A.addEventListener("input",()=>l.onChange(A.value))),A.addEventListener("keydown",x=>{x.isComposing||x.keyCode===229||(x.key==="Enter"?(x.preventDefault(),x.stopPropagation(),l.onCommit(x.shiftKey?"none":"down")):x.key==="Tab"?(x.preventDefault(),x.stopPropagation(),L=true,l.onTab(x.shiftKey?-1:1)):x.key==="Escape"?(x.preventDefault(),x.stopPropagation(),l.onCancel()):x.stopPropagation());}),A.addEventListener("blur",()=>{L||l.onCommit("none");}),C.appendChild(A),M){let x=document.createElement("span");x.id="kanuni-datagrid-editor-error",x.setAttribute("role","alert"),x.className="kanuni-datagrid-editor-error",x.textContent=M,C.appendChild(x);}return queueMicrotask(()=>{if(A.isConnected&&(A.focus({preventScroll:true}),A.type!=="checkbox"))if(E){if(A.type==="text"||A.type==="search"){let x=A.value.length;A.setSelectionRange(x,x);}}else A.select();}),C}var Dl=0;function or(l){return new Promise(u=>{let f=document.createElement("div");f.className=`kanuni-datagrid-detached kanuni-datagrid-dialog-root${l.surfaceClass?` ${l.surfaceClass}`:""}`,f.setAttribute("role","presentation");let M=document.activeElement,E=W=>{document.removeEventListener("keydown",C,true);let se=f.contains(document.activeElement);f.remove(),se&&M?.isConnected&&M.focus({preventScroll:true}),u(W);},C=W=>{if(W.key==="Escape"){W.stopPropagation(),E(false);return}if(W.key==="Tab"){let se=Array.from(H.querySelectorAll("button:not([disabled])"));if(se.length===0)return;let ee=se.indexOf(document.activeElement),Re=W.shiftKey?ee<=0?se.length-1:ee-1:ee===se.length-1?0:ee+1;W.preventDefault(),W.stopPropagation(),se[Re].focus();}};document.addEventListener("keydown",C,true);let A=document.createElement("div");A.className="kanuni-datagrid-dialog-overlay",A.addEventListener("mousedown",()=>E(false));let L=document.createElement("div");L.className="kanuni-datagrid-dialog",L.setAttribute("role","alertdialog"),L.setAttribute("aria-modal","true");let x=`dg-dialog-${++Dl}`;L.setAttribute("aria-labelledby",`${x}-title`),L.setAttribute("aria-describedby",`${x}-message`),L.setAttribute("data-testid","dg-dialog");let Z=document.createElement("div");Z.className="kanuni-datagrid-dialog-title",Z.id=`${x}-title`,Z.textContent=l.title;let U=document.createElement("div");U.className="kanuni-datagrid-dialog-message",U.id=`${x}-message`,U.textContent=l.message;let H=document.createElement("div");if(H.className="kanuni-datagrid-dialog-actions",l.cancelLabel!==void 0){let W=document.createElement("button");W.type="button",W.setAttribute("data-testid","dg-dialog-cancel"),W.textContent=l.cancelLabel,W.addEventListener("click",()=>E(false)),H.appendChild(W);}let V=document.createElement("button");V.type="button",V.className=`kanuni-datagrid-dialog-primary${l.danger?" kanuni-datagrid-dialog-primary--danger":""}`,V.setAttribute("data-testid","dg-dialog-confirm"),V.textContent=l.confirmLabel,V.addEventListener("click",()=>E(true)),H.appendChild(V),L.append(Z,U,H),f.append(A,L);let ce=datagridCore.portalContainerFor(l.anchor);datagridCore.portalTarget(ce).appendChild(datagridCore.markPortal(f,ce)),V.focus();})}function Nl(l,u){switch(l){case "number":return u==null||u===""||!Number.isNaN(Number(u))?"number":"text";case "boolean":return "checkbox";default:return "text"}}function Il(l,u){if(u==="number"){if(l==="")return null;let f=Number(l);return Number.isNaN(f)?l:f}return l}function rr(l){let{t:u,popup:f=false,inline:M=false}=l,E=document.createElement("div");E.className=`kanuni-datagrid-edit-form${M?" kanuni-datagrid-edit-form--inline":""}`,E.setAttribute("data-testid","dg-edit-form"),E.setAttribute("data-row-key",String(l.rowKey)),f&&E.setAttribute("data-popup",""),E.setAttribute("role",f?"dialog":"group"),f&&E.setAttribute("aria-modal","true"),E.setAttribute("aria-label",l.isNew?u.formAddTitle:u.formEditTitle);let C=document.createElement("div");C.className="kanuni-datagrid-edit-form-header";let A=document.createElement("strong");A.textContent=l.isNew?u.formAddTitle:u.formEditTitle,C.appendChild(A);let L=document.createElement("div");L.className="kanuni-datagrid-edit-form-error",L.setAttribute("role","alert"),L.setAttribute("data-testid","dg-form-error"),L.style.display="none";let x=document.createElement("div");x.className="kanuni-datagrid-edit-form-fields";let Z=new Map,U=(T,O)=>{let J=l.getValue(T.columnId),ae=l.getSaving()||!T.editable,Y=`dg-field-${String(l.rowKey)}-${T.columnId}`;if(T.lookup&&!l.renderLookup){let te=document.createElement("input");te.id=Y,te.type="text",te.className="kanuni-datagrid-edit-form-input",te.setAttribute("data-testid",Y),te.disabled=true,te.readOnly=true;let Q=T.lookup.options?.find(P=>Object.is(P.value,J));return te.value=Q?Q.label:J==null?"":String(J),te}if(T.lookup&&l.renderLookup){let te=document.createElement("div");if(te.className="kanuni-datagrid-edit-form-lookup",T.lookup.options===null){let Q=document.createElement("input");return Q.type="text",Q.value="\u2026",Q.readOnly=true,Q.disabled=true,Q.className="kanuni-datagrid-editor",Q.setAttribute("data-testid",Y),te.appendChild(Q),te}return te.appendChild(l.renderLookup({options:T.lookup.options,value:J,matchMode:T.lookup.matchMode,allowCustom:T.lookup.allowCustom,invalid:!!O,autoFocus:false,testId:Y,columnId:T.columnId,ariaLabel:T.label,surfaceClass:l.surfaceClass,onPortalOpen:l.onPortalOpen,noMatchText:u.editNoMatch,onChange:Q=>l.onChange(T.columnId,Q),commitOnPick:false,onCommit:()=>l.onSave(),onCancel:l.onCancel})),te}if(T.dataType==="date"){let te=document.createElement("div");return te.className="kanuni-datagrid-edit-form-lookup",te.appendChild(Ut({value:J,format:T.dateFormat,invalid:!!O,disabled:ae,autoFocus:false,testId:Y,columnId:T.columnId,ariaLabel:T.label,surfaceClass:l.surfaceClass,onPortalOpen:l.onPortalOpen,t:u,onChange:Q=>l.onChange(T.columnId,Q),onCommit:()=>l.onSave(),onCancel:l.onCancel})),te}let q=document.createElement("input");return q.id=Y,q.className="kanuni-datagrid-edit-form-input",q.setAttribute("data-testid",Y),q.disabled=ae,T.dataType==="boolean"?(q.type="checkbox",q.checked=J===true,q.addEventListener("change",()=>l.onChange(T.columnId,q.checked)),q):(q.type=Nl(T.dataType,J),O&&q.setAttribute("aria-invalid","true"),q.value=J==null?"":String(J),q.addEventListener("input",()=>l.onChange(T.columnId,Il(q.value,T.dataType))),q)},H=l.getErrors();for(let T of l.fields){let O=document.createElement("label");O.className="kanuni-datagrid-edit-form-field",O.setAttribute("data-field-id",T.columnId);let J=document.createElement("span");J.className="kanuni-datagrid-edit-form-label",J.textContent=T.label;let ae=document.createElement("span");ae.style.display="contents",ae.appendChild(U(T,H[T.columnId]??null));let Y=document.createElement("span");Y.className="kanuni-datagrid-edit-form-message",Y.setAttribute("role","alert"),Y.style.display="none",O.append(J,ae,Y),x.appendChild(O),Z.set(T.columnId,{wrap:O,message:Y,controlHost:ae,field:T});}let V=document.createElement("div");V.className="kanuni-datagrid-edit-form-footer";let ce=typeof navigator<"u"&&/Mac|iP(hone|ad)/.test(navigator.platform??""),W=document.createElement("span");W.className="kanuni-datagrid-edit-form-hint",W.textContent=u.formShortcut.replace("{key}",ce?"\u2318":"Ctrl");let se=document.createElement("button");se.type="button",se.setAttribute("data-testid","dg-form-cancel"),se.textContent=u.cancel,se.addEventListener("click",()=>l.onCancel());let ee=document.createElement("button");ee.type="button",ee.className="kanuni-datagrid-edit-form-save",ee.setAttribute("data-testid","dg-form-save"),ee.textContent=u.save,ee.addEventListener("click",()=>l.onSave()),V.append(W,se,ee),E.append(C,L,x,V),E.addEventListener("keydown",T=>{if(T.key==="Escape"){T.preventDefault(),T.stopPropagation(),l.onCancel();return}if(T.key==="Enter"&&(T.ctrlKey||T.metaKey)){T.preventDefault(),T.stopPropagation(),l.onSave();return}if(T.key==="Enter"&&!(T.target instanceof HTMLButtonElement)){T.preventDefault();return}if(T.key!=="Tab"||!f)return;let O=Array.from(E.querySelectorAll("input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled])"));if(O.length===0)return;let J=O[0],ae=O[O.length-1];!T.shiftKey&&document.activeElement===ae?(T.preventDefault(),J.focus()):T.shiftKey&&document.activeElement===J&&(T.preventDefault(),ae.focus());});let Re=()=>{let T=l.getErrors(),O=l.getSaving(),J=l.getSaveError();L.textContent=J??"",L.style.display=J?"":"none",ee.disabled=O,se.disabled=O,ee.textContent=O?u.editSaving:u.save;for(let[Y,q]of Z){let te=T[Y]??null;q.message.textContent=te??"",q.message.style.display=te?"":"none",te?q.wrap.setAttribute("data-invalid",""):q.wrap.removeAttribute("data-invalid");let Q=q.controlHost.querySelector("input, .kanuni-datagrid-editor");Q&&Q.classList.toggle("kanuni-datagrid-editor--invalid",!!te);}let ae=Object.keys(T)[0];ae&&Z.get(ae)?.wrap.querySelector("input:not([disabled])")?.focus();};return queueMicrotask(()=>{if(!E.isConnected)return;let T=E.querySelector("input:not([disabled]), select:not([disabled]), textarea:not([disabled])");T?.focus(),T instanceof HTMLInputElement&&T.type==="text"&&T.select(),l.onNaturalHeight&&l.onNaturalHeight(E.clientHeight-x.clientHeight+x.scrollHeight);}),{element:E,refresh:Re,setLookupOptions:(T,O)=>{let J=Z.get(T);if(!J)return;J.field.lookup={...J.field.lookup,options:O};let ae=l.getErrors();J.controlHost.textContent="",J.controlHost.appendChild(U(J.field,ae[T]??null));},dispose:()=>E.remove()}}function za(l){let{grid:u,engine:f,mode:M,t:E,extension:C}=l,A=u.controller,L=datagridCore.isRowEditMode(M),x=null,Z=async()=>{x=null;let k=await f.saveChanges();if(k.saved||k.superseded){_();return}x={message:k.error??E.editSaveFailed,rowKey:k.rowKey,columnId:k.columnId},_(),k.rowKey!==void 0&&k.columnId!==void 0&&(A.revealRow(k.rowKey),A.focusCell(k.rowKey,k.columnId));},U=()=>{x=null,f.cancelChanges();},H=null,V=null,ce=null,W=null,se=null,ee=new Map,Re=0,T=k=>(H=null,f.beginRowEdit(k)),O=null,J=(k,G,ne)=>!L||f.isEditingRow()||!f.canEditRow(k)||(A.scrollToCell(k,G),!T(k))?false:(M==="row"&&ne!==void 0&&(O=G,f.setRowEditValue(G,ne)),true),ae=async()=>{if(!f.getRowSession())return false;let G=await f.saveRowEdit(A.getVisualColumnIds());return H=G.saved?null:G.error??null,G.saved?l.focusGrid():ue(),G.saved},Y=()=>{H=null,f.cancelRowEdit(),l.focusGrid();},q=k=>{let G=A.getColumnLayout(),ne=A.getColumnModel(),Ee=++Re;return [...G.left,...G.center,...G.right].filter(xe=>!datagridCore.isChromeColumn(xe.state.id)).map(xe=>{let he=xe.state.id,Ne=ne.getDef(he),yt=C.formLookup?C.formLookup(k,he,_e=>{Re===Ee&&ce?.setLookupOptions(he,_e);}):Ne?.lookup?{options:datagridCore.staticLookupItems(Ne)??[]}:void 0;return {columnId:he,label:Ne?.headerName??Ne?.field??he,dataType:ne.getEditorDataType(he),editable:f.canUpdate(k,he),dateFormat:Ne?.dateFormat,lookup:yt}})},te=()=>se??l.formHeight??datagridCore.DEFAULT_EDIT_FORM_HEIGHT,Q=(k,G)=>rr({rowKey:k,fields:q(k),getValue:ne=>f.rowEditValue(ne),getErrors:()=>f.getRowSession()?.errors??{},getSaving:()=>f.getRowSession()?.saving??false,getSaveError:()=>H,isNew:f.getRowSession()?.isNew??false,popup:!G,inline:G,surfaceClass:l.surfaceClass(),renderLookup:C.renderLookup,onPortalOpen:l.trackPortal,t:E,onNaturalHeight:G?ne=>{let Ee=Math.ceil(ne);if(Ee>0&&Ee!==se){se=Ee;let xe=f.getRowSession();xe&&M==="form"&&A.setEditFormRow(xe.rowKey,{height:te(),atTop:xe.isNew});}}:void 0,onChange:(ne,Ee)=>f.setRowEditValue(ne,Ee),onSave:()=>{ae();},onCancel:Y}),P=()=>{ee.clear(),ce?.dispose(),ce=null,W?.remove(),W=null;};function Ce(){if(!L)return;let k=f.getRowSession();if(k&&M!=="row"?u.element.setAttribute("data-row-session",M):u.element.removeAttribute("data-row-session"),!k){V!==null&&(V=null,se=null,P(),M==="form"&&A.setEditFormRow(null));return}if(V===k.rowKey){ce?.refresh();return}if(P(),V=k.rowKey,M==="form"){A.setEditFormRow(k.rowKey,{height:te(),atTop:k.isNew}),A.revealRow(k.rowKey);return}if(M==="popup"){let G=l.surfaceClass();W=document.createElement("div"),W.className=`kanuni-datagrid-detached kanuni-datagrid-edit-popup${G?` ${G}`:""}`;let ne=document.createElement("div");ne.className="kanuni-datagrid-edit-popup-overlay",ne.addEventListener("mousedown",()=>Y()),ce=Q(k.rowKey,false),W.append(ne,ce.element);let Ee=datagridCore.portalContainerFor(l.barHost);datagridCore.portalTarget(Ee).appendChild(datagridCore.markPortal(W,Ee));return}A.revealRow(k.rowKey),queueMicrotask(()=>{let G=f.getRowSession();if(!G||G.rowKey!==V)return;let ne=u.element.querySelectorAll('[data-testid="dg-row-editor"]');if(ne.length===0)return;let Ee=A.getFocus(),he=(Ee&&String(Ee.rowKey)===String(G.rowKey)?u.element.querySelector(`[data-testid="dg-row-editor"][data-column-id="${CSS.escape(Ee.columnId)}"]`):null)??ne[0],Ne=O!==null&&he.getAttribute("data-column-id")===O;O=null,he.focus({preventScroll:true}),he instanceof HTMLInputElement&&(Ne?he.setSelectionRange(he.value.length,he.value.length):he.select());});}let Me=k=>{let G=ee.get(k);if(G)return G;let ne=A.getColumnModel(),Ee=ne.getDef(k),xe=ne.getEditorDataType(k),he=f.rowEditValue(k),Ne=f.getRowSession()?.errors[k]??null,yt=Ee?.headerName??k,_e,ht=C.resolveLookup?.(V,k);if(ht&&ht.options!==void 0&&C.renderLookup)_e=C.renderLookup({options:ht.options??[],value:he,matchMode:ht.matchMode,allowCustom:ht.allowCustom,invalid:!!Ne,autoFocus:false,testId:"dg-row-editor",columnId:k,ariaLabel:yt,surfaceClass:l.surfaceClass(),noMatchText:E.editNoMatch,onChange:Te=>f.setRowEditValue(k,Te),commitOnPick:false,onCommit:()=>{ae();},onCancel:Y});else if(xe==="date")_e=Ut({value:he,format:Ee?.dateFormat,invalid:!!Ne,autoFocus:false,testId:"dg-row-editor",columnId:k,ariaLabel:yt,surfaceClass:l.surfaceClass(),onPortalOpen:l.trackPortal,t:E,onChange:Te=>f.setRowEditValue(k,Te),onCommit:()=>{ae();},onCancel:Y});else {let Te=document.createElement("input");Te.className=`kanuni-datagrid-editor${Ne?" kanuni-datagrid-editor--invalid":""}`,Te.setAttribute("data-testid","dg-row-editor"),Te.setAttribute("data-column-id",k),Te.setAttribute("aria-label",yt),Ne&&(Te.title=Ne),xe==="boolean"?(Te.type="checkbox",Te.checked=he===true,Te.addEventListener("change",()=>f.setRowEditValue(k,Te.checked))):(Te.type=xe==="number"?"number":"text",Te.value=he==null?"":String(he),Te.addEventListener("input",()=>{let We=Te.value;f.setRowEditValue(k,xe==="number"?We===""?null:Number(We):We);})),Te.addEventListener("keydown",We=>{We.key==="Enter"?(We.preventDefault(),We.stopPropagation(),ae()):We.key==="Escape"?(We.preventDefault(),We.stopPropagation(),Y()):We.stopPropagation();}),_e=Te;}return ee.set(k,_e),_e},pe=document.createElement("div");pe.className="kanuni-datagrid-filter-bar kanuni-datagrid-edit-bar",pe.setAttribute("data-testid","dg-edit-bar"),C.decorateBar?.(pe);let g=(k,G,ne,Ee)=>{let xe=document.createElement("button");return xe.type="button",ne&&(xe.className="kanuni-datagrid-filter-primary"),xe.setAttribute("data-testid",k),xe.textContent=G,xe.addEventListener("click",Ee),xe},N=k=>{let G=document.createElement("span");return G.className="kanuni-datagrid-edit-form-error",G.setAttribute("data-testid",k),G.style.display="none",G},D=null,ye=null,we=null,j=null,le=null,ve=null,Se=null;M==="batch"&&(D=g("dg-save-changes",E.editSaveChanges,true,()=>{Z();}),ye=g("dg-discard-changes",E.editDiscardChanges,false,U),we=N("dg-save-error"),pe.append(D,ye,we)),M==="row"&&(j=document.createElement("span"),j.setAttribute("data-testid","dg-row-editing"),j.className="kanuni-datagrid-filter-active",j.style.display="none",le=g("dg-save-row",E.editSaveRow,true,()=>{ae();}),le.style.display="none",ve=g("dg-cancel-row",E.cancel,false,Y),ve.style.display="none",Se=N("dg-row-save-error"),pe.append(j,le,ve,Se)),pe.childElementCount>0&&l.barHost?.appendChild(pe);function _(){let k=f.hasChanges();if(D&&(D.style.display=k?"":"none",D.textContent=E.editSaveCount.replace("{n}",String(f.getChanges().length)),D.disabled=f.isSaving()),ye&&(ye.style.display=k?"":"none"),we&&(we.textContent=x?.message??"",we.style.display=x?"":"none"),j&&le&&ve&&Se){let G=f.getRowSession(),ne=G?"":"none";j.style.display=ne,le.style.display=ne,ve.style.display=ne,G&&(j.textContent=G.isNew?E.formAddTitle:E.editEditingRow.replace("{row}",String(G.rowKey)),le.disabled=G.saving,le.textContent=G.saving?E.editSaving:E.editSaveRow,ve.disabled=G.saving),Se.textContent=H??"",Se.style.display=G&&H?"":"none";}pe.style.display=Array.from(pe.children).some(G=>G.style.display!=="none")?"":"none";}_();function ue(){x=null,_(),Ce();}return {rowModeActive:L,beginRowEdit:T,openRowFromKeys:J,saveRowEdit:ae,cancelRowEdit:Y,saveChanges:Z,cancelChanges:U,renderRowCell:k=>{if(!(M!=="row"||k.node.kind!=="data"||datagridCore.isChromeColumn(k.columnId))&&f.isEditingRow(k.node.key))return f.canUpdate(k.node.key,k.columnId)?Me(k.columnId):l.defaultContent(k,f.rowEditValue(k.columnId))},renderEditForm:k=>{if(M!=="form")return;let G=f.getRowSession();if(!(!G||G.rowKey!==k))return (!ce||ce.element.getAttribute("data-row-key")!==String(k))&&(ce?.dispose(),ce=Q(k,true)),ce.element},onCellDoubleClick:k=>L?(k.node.kind==="data"&&!f.isEditingRow()&&f.canEditRow(k.node.key)&&T(k.node.key),true):false,handleRowKeys:k=>!f.isEditingRow()||k.target?.closest?.('[data-testid="dg-edit-form"]')?false:k.key==="Enter"?(k.preventDefault(),ae(),true):k.key==="Escape"?(k.preventDefault(),Y(),true):false,sync:ue,dispose:()=>{P(),M==="form"&&V!==null&&A.setEditFormRow(null),V=null,u.element.removeAttribute("data-row-session"),pe.remove();}}}function ir(l,u,f,M,E={}){let C=l.controller,A=u.mode??"cell";u.formLabels&&(f={...f,...u.formLabels});let L=E.isColumnEditable??(g=>C.getColumnModel().getDef(g)?.editable!==false),x=()=>{C.refreshCells(),q.sync(),E.onChange?.(),Z.schedule("footer",()=>C.refreshSummaries());},Z=datagridCore.createDebouncedCommit(150),U=g=>C.getRowByKey(g),H=new datagridCore.EditingEngine({mode:A,messages:f,onChange:x,onAutoSaveFailed:g=>se(g),onCellValueChanged:g=>C.notifyCellValueChanged(g),onEditingStarted:g=>C.notifyEditingStarted(g),onEditingStopped:g=>C.notifyEditingStopped(g),onRowEditingStarted:g=>C.notifyRowEditingStarted(g),onRowEditingStopped:g=>C.notifyRowEditingStopped(g),editableColumns:g=>{let N=C.getColumnLayout();return [...N.left,...N.center,...N.right].map(D=>D.state.id).filter(D=>!datagridCore.isChromeColumn(D)&&H.canUpdate(g,D))},readValue:(g,N)=>{let D=U(g);return D?C.getColumnModel().getStoredValue(D,N):void 0},formatForEdit:(g,N,D)=>C.formatCellForEdit(N,D),parseFromEdit:(g,N,D)=>C.parseCellFromEdit(N,D,g),readRow:U,isColumnEditable:L,applyValue:(g,N,D)=>C.writeCellValue(g,N,D),storedValue:(g,N,D)=>C.valueAfterWrite(g,N,D),onSave:g=>u.onSave?.(g),...E.engine});C.setPendingValueReader({effectiveValue:(g,N,D)=>H.changes.effectiveValue(g,N,D),effectiveRow:(g,N)=>H.changes.applyPendingTo(g,N),hasPending:()=>H.changes.hasChanges()}),C.setEditingDelegate({startEditingCell:(g,N)=>(C.scrollToCell(g,N),H.beginEdit(g,N)),stopEditing:async g=>{if(H.isEditingRow())return g?(q.cancelRowEdit(),true):q.saveRowEdit();if(!H.getSession())return false;if(g)return H.cancelEdit(),W(),true;let N=H.commitEdit();return N&&W(),N},getEditingCells:()=>{let g=H.getRowSession();if(g)return C.getVisualColumnIds().filter(D=>!datagridCore.isChromeColumn(D)&&H.canUpdate(g.rowKey,D)).map(D=>({rowKey:g.rowKey,columnId:D}));let N=H.getSession();return N?[{rowKey:N.rowKey,columnId:N.columnId}]:[]}});let V=false,ce=[C.events.on("rowsChanged",g=>{V=g.removed===0;}),C.events.on("dataUpdated",()=>{let g=V;V=false,!g&&H.retainKeys(new Set(C.getDataRows().map(N=>N.key)));})];function W(){let g=l.element.querySelector(".kanuni-datagrid-scroller");(g&&g.tabIndex>=0?g:l.element).focus({preventScroll:true});}function se(g){let N=g.columnId!==void 0?C.getColumnModel().getDef(g.columnId)?.headerName??g.columnId:null,D=g.error??f.editSaveFailed;or({title:f.editCannotSave,message:N?`${N}: ${D}`:D,confirmLabel:f.ok,surfaceClass:M.surfaceClass(),anchor:l.element}),g.rowKey!==void 0&&g.columnId!==void 0&&(C.revealRow(g.rowKey),C.focusCell(g.rowKey,g.columnId));}let ee=(g,N={})=>{let D=H.getSession(),ye=D?{rowKey:D.rowKey,columnId:D.columnId}:C.getFocus();if(!ye||!H.commitEdit())return false;let we=C.getColumnModel().runtime().filter(_=>_.state.visible).map(_=>_.state.id);if(datagridCore.edgeEditableColumn(we,L,1)===null)return false;let j=C.getRows(),le=j.findIndex(_=>_.key===ye.rowKey);if(le<0)return false;let ve=datagridCore.nextEditableColumn(we,L,ye.columnId,g);if(ve===null){if(N.cycle===false)return false;let _=g;do le+=_;while(le>=0&&le<j.length&&j[le]?.kind!=="data");if(le<0||le>=j.length)return false;ve=datagridCore.edgeEditableColumn(we,L,g);}let Se=j[le];return !Se||Se.kind!=="data"?false:(C.focusCell(Se.key,ve),C.scrollToCell(Se.key,ve),N.open===true?H.beginEdit(Se.key,ve):(W(),true))},Re=g=>{if(H.getSession())return false;let N=C.getFocus();if(!N||!L(N.columnId))return false;let D=C.getColumnModel().getEditorDataType(N.columnId);if(D==="boolean"||D==="date")return false;let ye=D==="number"?Number.isNaN(Number(g))?null:Number(g):g;return ye===null?false:q.rowModeActive?q.openRowFromKeys(N.rowKey,N.columnId,ye):(C.scrollToCell(N.rowKey,N.columnId),H.beginEdit(N.rowKey,N.columnId,ye))},T=null,O=new Set,J=g=>{let N=()=>{O.delete(N),g();};O.add(N);},ae=()=>{for(let g of [...O])g();O.clear();},Y=(g,N)=>{let D=C.getColumnModel().getDef(g.columnId),ye=g.node.data;if(D?.renderCell)return D.renderCell({value:N,row:ye,node:g.node,column:D});let we=datagridCore.lookupLabel(D,N);if(we!==null)return we;if(D?.valueFormatter){let j=D.valueFormatter(N,ye);return typeof j=="string"?j:String(j??"")}return D?.dateFormat&&D.dataType==="date"?datagridCore.formatDateValue(N,D.dateFormat):N==null?"":String(N)},q=za({grid:l,engine:H,mode:A,t:f,formHeight:u.formHeight,surfaceClass:()=>M.surfaceClass(),barHost:M.barHost,focusGrid:W,trackPortal:J,defaultContent:Y,extension:E}),te=g=>{if(g.node.kind!=="data")return;let N=q.renderRowCell(g);if(N!==void 0)return N;if(!H.isEditing(g.node.key,g.columnId)){T&&T.rowKey===g.node.key&&T.columnId===g.columnId&&(T=null);let _=H.getMode()==="cell"?void 0:H.changes.get(g.node.key,g.columnId),ue=E.cellAdornment?.(g)??null;if(!_&&!ue)return;let k=_?_.newValue:g.value,G=document.createElement("span");G.style.display="contents";let ne=Y(g,k);return typeof ne=="string"?G.appendChild(document.createTextNode(ne)):G.appendChild(ne),ue&&G.appendChild(ue),G}let D=H.getSession();if(T&&T.rowKey===D.rowKey&&T.columnId===g.columnId)return T.setError(D.validation.message),T.container;let ye=C.getColumnModel().getDef(g.columnId),we=E.resolveLookup?.(D.rowKey,g.columnId)??{options:void 0},j=document.createElement("span");j.style.display="contents";let le=E.customEditors?ye?.renderEditor:void 0;if(le){let _=new Set,ue=le({value:H.getSession()?.value??D.value,row:H.effectiveRow(D.rowKey),columnId:g.columnId,error:D.validation.message,onErrorChange:k=>(_.add(k),()=>_.delete(k)),setValue:k=>H.setEditValue(k),commit:()=>{H.commitEdit()&&W();},cancel:()=>{H.cancelEdit(),W();}});return j.appendChild(ue),T={rowKey:D.rowKey,columnId:g.columnId,container:j,setError:k=>{for(let G of _)G(k);}},j}let ve=_=>{j.textContent="",j.appendChild(nr({value:H.getSession()?.value??D.value,dataType:C.getColumnModel().getEditorDataType(g.columnId),error:_,seeded:D.seeded,onPortalOpen:J,options:we.options,allowCustom:we.allowCustom,matchMode:we.matchMode,renderLookup:E.renderLookup,dateFormat:ye?.dateFormat,ariaLabel:ye?.headerName??g.columnId,surfaceClass:M.surfaceClass(),t:f,onChange:ue=>H.setEditValue(ue),onCommit:ue=>{H.commitEdit()&&(ue==="down"&&C.moveFocus("down"),W());},onTab:ue=>{if(u.focusCellOnTab===false){H.commitEdit();return}ee(ue,{open:E.keepEditingOnTab===true,cycle:u.focusCellOnCycle!==false});},onCancel:()=>{H.cancelEdit(),W();}}));};ve(D.validation.message);let Se=D.validation.message;if(T={rowKey:D.rowKey,columnId:g.columnId,container:j,setError:_=>{if(_===Se)return;Se=_,j.querySelector(".kanuni-datagrid-editor")?.classList.toggle("kanuni-datagrid-editor--invalid",!!_);let k=j.querySelector(".kanuni-datagrid-editor-error");_&&!k&&(k=document.createElement("span"),k.id="kanuni-datagrid-editor-error",k.setAttribute("role","alert"),k.className="kanuni-datagrid-editor-error",j.appendChild(k)),k&&(k.textContent=_??"",_||k.remove());}},we.options===null&&E.resolveLookup){let _=E.resolveLookup,ue=()=>{let G=_(D.rowKey,g.columnId);G.options!==null&&T&&T.rowKey===D.rowKey&&T.columnId===g.columnId&&H.isEditing(D.rowKey,g.columnId)&&(we.options=G.options,ve(H.getSession()?.validation.message??null));},k=C.events.on("cellsRefreshed",()=>{ue(),_(D.rowKey,g.columnId).options!==null&&k();});}return j},Q=g=>{if(g.node.kind!=="data")return;let N=[];return H.isEditing(g.node.key,g.columnId)&&N.push("kanuni-datagrid-cell--editing"),H.changes.isDirty(g.node.key,g.columnId)&&N.push("kanuni-datagrid-cell--dirty"),H.isRemoved(g.node.key)&&N.push("kanuni-datagrid-cell--removed"),N.length?N.join(" "):void 0},P=g=>{g.node.kind==="data"&&(q.onCellDoubleClick(g)||H.canUpdate(g.node.key,g.columnId)&&(C.scrollToCell(g.node.key,g.columnId),H.beginEdit(g.node.key,g.columnId)));},Ce=g=>{let N=g.target;return N?.closest?.('[data-testid="dg-edit-form"], [data-testid="dg-row-message"]')?true:(g.key==="Tab"||g.key==="Enter"||g.key===" ")&&!!N?.closest?.('[data-testid="dg-edit-bar"]')},Me=g=>Ce(g)?false:q.handleRowKeys(g)?true:g.key==="Escape"&&H.getSession()?(g.preventDefault(),H.cancelEdit(),true):g.key==="Tab"&&u.focusCellOnTab!==false&&!H.getSession()&&C.getFocus()&&ee(g.shiftKey?-1:1,{open:E.keepEditingOnTab===true,cycle:u.focusCellOnCycle!==false})?(g.preventDefault(),true):false,pe=g=>{if(Ce(g))return false;let N=g.ctrlKey||g.metaKey;if(g.key==="F2"){let D=C.getFocus();if(D)return g.preventDefault(),q.rowModeActive?(q.openRowFromKeys(D.rowKey,D.columnId),true):(C.scrollToCell(D.rowKey,D.columnId),H.beginEdit(D.rowKey,D.columnId),true)}return u.editOnKeyPress!==false&&!N&&!g.altKey&&g.key.length===1&&g.key!==" "&&!H.getSession()&&Re(g.key)?(g.preventDefault(),true):false};return {engine:H,renderCellContent:te,getCellClassName:Q,onCellDoubleClick:P,handleKeyDown:g=>Me(g)||pe(g),handleSessionKeys:Me,handleOpenKeys:pe,editAdjacentCell:ee,focusGrid:W,trackPortal:J,defaultContent:Y,renderEditForm:q.renderEditForm,beginRowEdit:q.beginRowEdit,saveRowEdit:q.saveRowEdit,cancelRowEdit:q.cancelRowEdit,saveChanges:q.saveChanges,cancelChanges:q.cancelChanges,dispose:()=>{ae(),q.dispose(),H.dispose(),Z.cancelAll(),ce.forEach(g=>g()),C.setPendingValueReader(null),C.setEditingDelegate(null);}}}function ja(l,u){return !l||datagridCore.isChromeColumn(u)?false:l.editable!==false&&l.lookup==null&&l.renderEditor==null&&l.allowFormulas!==true}var Xa=["rules","crud","allowAdding","allowUpdating","allowDeleting","onInitNewRow","onRowInserted","onRowUpdated","onRowRemoved","insertKey","appendOnArrowDown","newRowPosition","keepEditingOnTab","commandColumn","commandLabels","confirmDelete","confirmDeleteMessage","range"];var En=60,cr=24,Id=0,ao=36,kn=28,io="application/x-kanuni-row",vn=new Map,pr=new Set,li=5e3,Yt=0,Hd=["columnStateChanged","sortChanged"],Fd=["columnStateChanged"],Kd=["contentReady","viewportChanged","filterChanged","selectionChanged","focusChanged","summariesChanged","cellsRefreshed","findChanged"],w=(l,u="div")=>{let f=document.createElement(u);return f.className=l,f},Rn="http://www.w3.org/2000/svg";function Pd(l,u){let f=E=>{u&&console.warn(`[datagrid] ${E} is an Enterprise feature \u2014 use createEnterpriseGrid from @kanunilabs/datagrid-enterprise to use it.`);};if(l.viewportDatasource)throw new Error("[datagrid] viewportDatasource is an Enterprise feature \u2014 use createEnterpriseGrid from @kanunilabs/datagrid-enterprise to use it.");let M={...l};if(M.dataSource!=null&&!Array.isArray(M.dataSource)&&M.grouping&&(f("grouping a server-side DataSource is"),delete M.grouping),M.columns?.some(E=>E.spanRows)&&(f("cell span/merge (spanRows) is"),M={...M,columns:M.columns.map(E=>E.spanRows?{...E,spanRows:void 0}:E)}),M.tree&&(f("tree data is"),delete M.tree),M.masterDetail&&(f("master-detail is"),delete M.masterDetail),M.grouping){let{groupBy:E,groupSummaries:C}=M.grouping,A=E==null?[]:typeof E=="string"?[E]:E;(A.length>1||C)&&(f("multi-level grouping and group summaries are"),M={...M,grouping:{...M.grouping,groupBy:A.slice(0,1),groupSummaries:false}});}return M}var Gd={columnResize:"use `resizable`",columnReorder:"use `reorderable`",groupPanel:"use `grouping: { panel: true }`",autoColumns:"",loadingOverlay:"",onReady:"the controller is returned directly \u2014 use `grid.controller`",className:"style the host element you pass in",style:"style the host element you pass in",toolbarItemsBefore:"",renderRow:"",cardView:"",onCardViewChange:"",announcements:"",filterPanelLabels:"",filterIconMode:"",autoSizeStrategy:"",footerMenu:"",showRowCount:"",onOpenFilterBuilder:"",renderOverlay:"",cellMenu:""},lo=new Set;function $d(l){for(let u of Object.keys(l)){let f=Gd[u];f===void 0||f===""||lo.has(u)||(lo.add(u),console.warn(`[datagrid] \`${u}\` is a React-only option \u2014 ${f}.`));}}function Od(){let l=document.createElementNS("http://www.w3.org/2000/svg","svg");l.setAttribute("width","14"),l.setAttribute("height","14"),l.setAttribute("viewBox","0 0 16 16"),l.setAttribute("aria-hidden","true"),l.setAttribute("focusable","false");let u=document.createElementNS("http://www.w3.org/2000/svg","path");return u.setAttribute("d","M8 1v8m0 0L5 6m3 3 3-3M2 11v2a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-2"),u.setAttribute("fill","none"),u.setAttribute("stroke","currentColor"),u.setAttribute("stroke-width","1.5"),u.setAttribute("stroke-linecap","round"),u.setAttribute("stroke-linejoin","round"),l.appendChild(u),l}function Bd(){let l=document.createElementNS(Rn,"svg");l.setAttribute("width","11"),l.setAttribute("height","11"),l.setAttribute("viewBox","0 0 16 16"),l.setAttribute("aria-hidden","true"),l.setAttribute("focusable","false");let u=document.createElementNS(Rn,"path");return u.setAttribute("d","M1.5 2.5h13L9.5 8.6v4.3l-3 1.6V8.6L1.5 2.5Z"),u.setAttribute("fill","currentColor"),u.setAttribute("stroke","currentColor"),u.setAttribute("stroke-width","0.6"),u.setAttribute("stroke-linejoin","round"),l.appendChild(u),l}function Vd(l){let u=document.createElementNS(Rn,"svg");u.setAttribute("width","14"),u.setAttribute("height","14"),u.setAttribute("viewBox","0 0 16 16"),u.setAttribute("aria-hidden","true"),u.setAttribute("focusable","false");let f=document.createElementNS(Rn,"rect");f.setAttribute("x","2"),f.setAttribute("y","2"),f.setAttribute("width","12"),f.setAttribute("height","12"),f.setAttribute("rx","2"),f.setAttribute("fill","none"),f.setAttribute("stroke","currentColor"),f.setAttribute("stroke-width","1.3"),u.appendChild(f);let M=E=>{let C=document.createElementNS(Rn,"path");C.setAttribute("d",E),C.setAttribute("fill","none"),C.setAttribute("stroke","currentColor"),C.setAttribute("stroke-width","1.3"),C.setAttribute("stroke-linecap","round"),u.appendChild(C);};return M("M5 8h6"),l&&M("M8 5v6"),u}function ii(l,u){let f=l??(u==="number"||u==="bigint"?"right":"left");return f==="right"?"kanuni-datagrid-cell kanuni-datagrid-cell--number":f==="center"?"kanuni-datagrid-cell kanuni-datagrid-cell--center":"kanuni-datagrid-cell"}function ro(l){let u="kanuni-datagrid-root";return l.dark&&(u+=" kanuni-datagrid-dark"),l.theme&&(u+=` kanuni-datagrid-theme-${l.theme}`),l.palette&&(u+=` kanuni-datagrid-palette-${l.palette}`),l.density&&(u+=` kanuni-datagrid-density-${l.density}`),u}function _d(l,u){let{theme:f,palette:M,density:E,dark:C,striped:A=true,rowNumbers:L=false,locale:x="en",footer:Z=false,footerMenu:U=true,footerPosition:H="bottom",notes:V,pinnedTopRows:ce=[],pinnedBottomRows:W=[],resizable:se=true,reorderable:ee=true,autoHeaderHeight:Re=false,filterRow:T=false,headerFilter:O=false,filterIconMode:J="hover",filterPanel:ae=false,onOpenFilterBuilder:Y,focusedRow:q=false,focusedRowKey:te,onFocusedRowChanged:Q,onRowClick:P,onRowActivate:Ce,autoSizeStrategy:Me="none",renderRow:pe,cardView:g,onCardViewChange:N,announcements:D=true,filterPanelLabels:ye,showRowCount:we=false,toolbarColumnChooser:j=false,cellMenu:le=true,rowMenu:ve,headerMenu:Se,rowDrag:_,alignedGrids:ue,printLayout:k,renderCellContent:G,getCellClassName:ne,getRowStatusSource:Ee,rowStatus:xe,onCellPointerDown:he,onCellPointerEnter:Ne,onCellDoubleClick:yt,editing:_e,onHeaderClick:ht,getHeaderClassName:Te,renderHeaderLabel:We,renderDetail:fr,renderEditForm:gr,enterpriseEdition:Ct=false,stateStoring:mr,tooltip:et=true,renderOverlay:so,filterDebounce:di,toolbar:br=false,highlightSearch:si=true,sortable:wr=true,toolbarItemsAfter:ui,toolbarItemsBefore:ci,toolbarExcel:pi=false,toolbarPdf:fi=false,searchDebounce:gi=200,...mi}=u;$d(u),we&&!lo.has("showRowCount:deprecated")&&(lo.add("showRowCount:deprecated"),console.warn("[datagrid] `showRowCount` was retired on 2026-08-15 and does nothing in either renderer. The row count lives in the status bar (Enterprise) or the pager."));let h=datagridCore.getGridDictionary(x),{emptyText:bi=h.noData,loadingText:wi=h.busy,loadingOverlay:uo=true,...Qe}=mi,yr=typeof uo=="number"?uo:300,co=datagridCore.summaryTypeLabels(h),hr=datagridCore.datePeriodLabels(h);if((!Qe.columns||Qe.columns.length===0)&&u.autoColumns!==false){let e=Array.isArray(Qe.dataSource)?Qe.dataSource:[];Qe.columns=datagridCore.inferColumns(e,typeof u.autoColumns=="object"?u.autoColumns:{});}Qe.rowHeight===void 0&&(Qe.rowHeight=datagridCore.presetRowHeight(f,E,28));let yi=Ct?Qe:Pd(Qe,!!u.debugMode),Nt=Ct?V:void 0;!Ct&&V&&u.debugMode&&console.warn("[datagrid] cell notes are an Enterprise feature \u2014 use createEnterpriseGrid from @kanunilabs/datagrid-enterprise to show them.");let a=new datagridCore.DataGridController(yi);a.setEnterpriseEdition(Ct);let It=_e!=null&&typeof _e=="object"&&_e.enabled!==false,Ze=null;if(It&&u.debugMode)for(let e of Xa)_e[e]!==void 0&&console.warn(`[datagrid] editing.${e} is an Enterprise feature \u2014 use createEnterpriseGrid from @kanunilabs/datagrid-enterprise to use it.`);let rn=It?e=>Ze?.renderCellContent(e)??G?.(e):G,po=It?e=>{let t=Ze?.getCellClassName(e),o=ne?.(e);return t&&o?`${t} ${o}`:t??o}:ne,Cr=It?e=>{yt?.(e),Ze?.onCellDoubleClick(e);}:yt,hi=It?(e,t)=>Ze?.renderEditForm(e,t)??gr?.(e,t)??"":gr,rt=datagridCore.normalizeRowStatus(xe);te!=null&&a.focusRow(te);let B=w(ro(u));datagridCore.registerPortalContainer(B,u.portalContainer),B.style.height="100%",B.setAttribute("role","grid"),B.setAttribute("aria-label",u.ariaLabel??u.gridId),B.setAttribute("data-grid-id",u.gridId),datagridCore.isRtlLocale(x)&&B.setAttribute("dir","rtl"),f&&B.setAttribute("data-theme",f),Re&&B.setAttribute("data-auto-header-height",""),B.style.setProperty("--dg-row-height",`${a.getRowHeight()}px`);let re=w("kanuni-datagrid-scroller"),Ie=w("kanuni-datagrid-canvas"),Ae=w("kanuni-datagrid-header");Ae.setAttribute("role","row");let $e=w("kanuni-datagrid-rows");$e.style.position="relative";let fe=w("kanuni-datagrid-viewport");$e.appendChild(fe);let tt=w("kanuni-datagrid-pinned-rows kanuni-datagrid-pinned-rows--top"),vt=w("kanuni-datagrid-pinned-rows kanuni-datagrid-pinned-rows--bottom"),Ht=()=>ce.length+a.getPinnedRows("top").length,vr=()=>W.length+a.getPinnedRows("bottom").length,qe=w("kanuni-datagrid-sticky-groups");qe.setAttribute("aria-hidden","true");let nt=Z,ut=H==="top",Oe=w(`kanuni-datagrid-footer-row kanuni-datagrid-footer-row--${ut?"top":"bottom"}`);if(Oe.setAttribute("role","row"),Oe.setAttribute("aria-label",h.columnTotalsAria),U){let e=t=>{let n=t.target?.closest(".kanuni-datagrid-footer-cell")?.getAttribute("data-column-id");!n||datagridCore.isChromeColumn(n)||(t.preventDefault(),Ji(n,{left:t.clientX,top:t.clientY}));};Oe.addEventListener("click",e),Oe.addEventListener("contextmenu",e);}let xn=w("kanuni-datagrid-bands-host");xn.style.display="contents";let Et=w("kanuni-datagrid-filter-row");Et.setAttribute("role","row"),Ie.append(xn,Ae),T&&Ie.append(Et);let Ft=T?2:1,fo=0,go=()=>fo+Ft+Ht();Oe.style.setProperty("--dg-pinned-gap",String(ut?Ft:0)),tt.style.setProperty("--dg-pinned-gap",String(Ft+(nt&&ut?1:0))),nt&&ut&&Ie.append(Oe),Ht()>0&&Ie.append(tt),a.hasStickyGroupHeaders()&&(qe.style.setProperty("--dg-pinned-gap",String(Ft+(nt&&ut?1:0))),qe.style.setProperty("--dg-sticky-below",`${Ht()>0?Ht()*a.getRowHeight()+1:0}px`),Ie.append(qe)),Ie.append($e),vr()>0&&Ie.append(vt),nt&&!ut&&Ie.append(Oe),re.appendChild(Ie);let ct=w("kanuni-datagrid-toolbar"),ot=w("kanuni-datagrid-pager");ot.setAttribute("role","navigation"),ot.setAttribute("aria-label",h.pagerAria);let Kt=w("kanuni-datagrid-filter-panel"),Pt=!!Qe.grouping?.panel,Ue=w("kanuni-datagrid-group-panel"),an=datagridCore.resolveCardView(g),ln=false,Tn=[],kt=pe,dn=w("kanuni-datagrid-cardbar");dn.hidden=true;let Er=w("kanuni-datagrid-cardbar-label","label"),kr=w("","span");kr.textContent=h.cardSortBy;let at=w("kanuni-datagrid-cardbar-select","select"),Gt=w("kanuni-datagrid-cardbar-dir","button");Gt.type="button",Er.append(kr,at),dn.append(Er,Gt),at.addEventListener("change",()=>{let e=a.getSort()[0];a.setSort(at.value?[{columnId:at.value,direction:e?.direction??"asc"}]:[]);}),Gt.addEventListener("click",()=>{let e=a.getSort()[0];e&&a.setSort([{columnId:e.columnId,direction:e.direction==="desc"?"asc":"desc"}]);});let Ci=e=>{let[t,...o]=datagridCore.cardFields(a.getColumnModel(),Tn,e.row),n=w("kanuni-datagrid-card");n.setAttribute("role","gridcell");let i=w("kanuni-datagrid-card-title");if(i.textContent=t?.text??"",n.appendChild(i),o.length){let d=w("kanuni-datagrid-card-fields","dl");for(let s of o){let r=w("kanuni-datagrid-card-field"),c=w("","dt");c.textContent=s.label;let p=w("","dd");p.textContent=s.text,r.append(c,p),d.appendChild(r);}n.appendChild(d);}return n},Rr=()=>{if(!ln||!an)return;let e=a.getColumnModel(),t=datagridCore.cardColumnIds(e,an);t.join("\0")!==Tn.join("\0")&&(Tn=t,a.setDataRowHeight(datagridCore.cardHeight(t.length)));let o=wr?e.getOrder().filter(s=>e.getState(s)?.visible!==false&&e.getDef(s)?.sortable!==false):[];dn.hidden=o.length===0;let n=["",...o].join("\0");if(at.dataset.ids!==n){at.dataset.ids=n,at.replaceChildren();let s=document.createElement("option");s.value="",s.textContent=h.none,at.appendChild(s);for(let r of o){let c=document.createElement("option");c.value=r,c.textContent=e.getDef(r)?.headerName??r,at.appendChild(c);}}let i=a.getSort()[0];at.value=i?.columnId??"",Gt.hidden=!i;let d=i?.direction==="desc";Gt.textContent=d?"\u2193":"\u2191",Gt.setAttribute("aria-label",d?h.sortAsc:h.sortDesc),Gt.title=d?h.sortAsc:h.sortDesc;},xr=false,vi=e=>{let t=datagridCore.showsCards(e,an);if(t!==ln){for(ln=t,B.classList.toggle("kanuni-datagrid-cards",t),kt=t?Ci:pe,Tn=[],t?Rr():(dn.hidden=true,a.setDataRowHeight(null));gt.length;)gt.pop().root.remove();Gn(),xr?N?.(t):queueMicrotask(()=>N?.(t));}};br&&B.appendChild(ct),Pt&&B.appendChild(Ue),an&&B.appendChild(dn),B.appendChild(re),ae&&B.appendChild(Kt);let Sn=Qe.pagination;Sn&&Sn.enabled!==false&&B.appendChild(ot);let sn=w("kanuni-datagrid-loading-overlay"),Tr=w("kanuni-datagrid-loading-card"),Sr=w("kanuni-datagrid-loading-spinner","span");Sr.setAttribute("aria-hidden","true");let Lr=w("kanuni-datagrid-loading-label","span");Lr.textContent=wi,Tr.append(Sr,Lr),sn.appendChild(Tr),sn.style.display="none";let un=w("kanuni-datagrid-sr-only","div");un.setAttribute("role","status"),un.setAttribute("aria-live","polite"),un.setAttribute("aria-atomic","true");let Ln=w("kanuni-datagrid-empty");Ln.textContent=bi,Ln.style.display="none",B.append(sn,Ln),D&&B.appendChild(un),l.appendChild(B);let cn=Qe.selection,mo=a.getGroupDisplay()!=="fullWidth",Ar=a.getGroupDisplay()==="column",jt=(cn?.mode??"none")!=="none"&&(cn?.checkboxColumn??false),Ei=(cn?.rowClick??(jt?"toggle":"replace"))==="toggle",Xt=a.hasMasterDetail()&&!!fr,bo=()=>(L?1:0)+(Xt?1:0)+(jt?1:0),wo=rt?.icons===true,Mr=wo?cr:0,yo=Mr,ho=yo+(L?En:0),Dr=ho+(Xt?kn:0),it=Mr+(L?En:0)+(Xt?kn:0)+(jt?ao:0);a.setLeadWidth(it);let pn=!!_?.enabled,fn=_?.group??null,Nr=_?.allowReordering??true,Ir=_?.allowDropInsert??fn!==null,pt=null,An=null,Mn=false,$t=null,Rt=null;function Jt(e){$t=e;for(let t of fe.querySelectorAll(".kanuni-datagrid-row")){let o=t.getAttribute("data-row-key"),n=e!==null&&o===String(e.key);t.classList.toggle("kanuni-datagrid-row--drop-before",n&&e.side==="before"),t.classList.toggle("kanuni-datagrid-row--drop-after",n&&e.side==="after");}}let Hr=(e,t)=>{let o=t.getBoundingClientRect();return e.clientY<o.top+o.height/2?"before":"after"},Fr=e=>e.dataTransfer?.types.includes(io)?pt!==null?Nr:Ir&&fn!==null:false;function Kr(e,t,o){let n=null;try{let i=e.dataTransfer?.getData(io);n=i?JSON.parse(i):null;}catch{n=null;}if(n){if(n.gridId===a.gridId){if(!Nr)return;if(_?.onReorder){_.onReorder({dragKey:n.rowKey,targetKey:t,position:o,row:a.getRowByKey(n.rowKey)});return}a.moveRow(n.rowKey,t,o);return}!Ir||fn===null||n.group!==fn||_?.onAdd?.({row:n.row,rowKey:n.rowKey,otherGridId:n.gridId,targetKey:t,position:o});}}let ki=e=>{let t=St(e);if(!t||t.node.kind!=="data"||!e.dataTransfer)return;pt=t.node.key,An=t.node.key,Mn=false;let o={gridId:a.gridId,group:fn,rowKey:t.node.key,row:t.node.data};e.dataTransfer.setData(io,JSON.stringify(o)),e.dataTransfer.setData("text/plain",String(t.node.key)),e.dataTransfer.effectAllowed="move",a.notifyRowDrag("enter",{rowKey:t.node.key});},Ri=e=>{if(!Fr(e))return;e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect="move");let t=St(e);if(!t||t.node.kind!=="data")return;if(pt===t.node.key){Rt=null,Jt(null);return}let o=e.target.closest(".kanuni-datagrid-row"),n=Hr(e,o),i=$t?.key!==t.node.key||$t.side!==n;Rt={key:t.node.key,side:n},Jt({key:t.node.key,side:n}),i&&pt!==null&&a.notifyRowDrag("move",{rowKey:pt,overKey:t.node.key,position:n});},xi=e=>{if(!Fr(e)){Jt(null);return}e.preventDefault();let t=St(e);if(Mn=true,t&&t.node.kind==="data"){let o=e.target.closest(".kanuni-datagrid-row"),n=Hr(e,o);Rt={key:t.node.key,side:n},Kr(e,t.node.key,n);}else Rt=null,Kr(e,null,"after");pt=null,Jt(null);},Ti=()=>{An!==null&&a.notifyRowDragEnd({rowKey:An,dropped:Mn,overKey:Rt?.key??null,position:Rt?.side??null}),Mn=false,An=null,pt=null,Rt=null,Jt(null);},Si=e=>{let t=e.relatedTarget;t&&$e.contains(t)||pt!==null&&(Rt=null,Jt(null),a.notifyRowDrag("leave",{rowKey:pt}));},Ot=k===void 0||k===false?null:(()=>{let e=k===true?{}:k;return {always:e.always??false,maxRows:e.maxRows??li,onLimit:e.onLimit}})(),Qt=false;function Co(e){Qt!==e&&(Qt=e,B.classList.toggle("kanuni-datagrid-print",e),e?(Yt++,document.documentElement.classList.add("kanuni-datagrid-printing")):(Yt--,Yt<=0&&(Yt=0,document.documentElement.classList.remove("kanuni-datagrid-printing"))),Gn());}let Pr=null;if(Ot&&!Ot.always){let e=()=>{let o=a.getRows().length;if(o>Ot.maxRows){a.isDebugMode()&&console.warn(`[datagrid] print layout skipped: ${o} rows exceeds maxRows (${Ot.maxRows}). Printing the visible rows instead \u2014 use exportPdf() for the whole result.`),Ot.onLimit?.({rows:o,maxRows:Ot.maxRows});return}Co(true);},t=()=>Co(false);window.addEventListener("beforeprint",e),window.addEventListener("afterprint",t),Pr=()=>{window.removeEventListener("beforeprint",e),window.removeEventListener("afterprint",t);};}let ft=0,lt=[],ze=0,vo=0;function Eo(){let e=a.getColumnLayout(),t=a.getVirtualWindow().columns,o=[],n=(d,s,r,c)=>{let p=d.def;o.push({def:p,id:d.state.id,width:d.state.width,pinned:s,inset:r,className:ii(p.align,p.dataType)+(s?" kanuni-datagrid-cell--pinned":"")+(p.autoHeight?" kanuni-datagrid-cell--wrap":""),visualIndex:c});};e.left.forEach((d,s)=>n(d,"left",e.leftOffsets[s]+it,s));for(let d=t.start;d<t.end&&d<e.center.length;d++)n(e.center[d],null,0,e.left.length+d);e.right.forEach((d,s)=>n(d,"right",e.rightOffsets[s],e.left.length+e.center.length+s)),lt=o,ze=t.offsetX;let i=(e.centerOffsets[Math.min(t.end,e.center.length)]??0)-(e.centerOffsets[Math.min(t.start,e.center.length)]??0);vo=Math.max(0,e.centerWidth-t.offsetX-i),Ie.style.minWidth=`${e.totalWidth+it}px`;}let Dn=26;function Li(){let e=a.getColumnLayout(),t=a.getVirtualWindow().columns,o=[...e.left,...e.center.slice(t.start,Math.min(t.end,e.center.length)),...e.right],n=datagridCore.bandDepth(o);if(fo=n,xn.textContent="",Ae.style.top=`${n*Dn}px`,B.style.setProperty("--dg-band-offset",`${n*Dn}px`),n===0)return;datagridCore.computeHeaderBands(o,n).forEach((d,s)=>{let r=w("kanuni-datagrid-band-row");if(r.style.top=`${s*Dn}px`,r.style.height=`${Dn}px`,it>0){let c=w("kanuni-datagrid-band-cell kanuni-datagrid-band-cell--spacer kanuni-datagrid-band-cell--pinned");c.style.width=`${it}px`,c.style.flex="none",c.style.insetInlineStart="0px",r.appendChild(c);}if(ze>0){let c=w("kanuni-datagrid-spacer");c.style.width=`${ze}px`,c.style.flex="none",r.appendChild(c);}for(let c of d){let p=w(`kanuni-datagrid-band-cell${c.spacer?" kanuni-datagrid-band-cell--spacer":""}`);if(p.style.width=`${c.width}px`,p.style.flex="none",!c.spacer){if(c.columnIds.length>0){let b=datagridCore.bandPath(a.getColumnModel().getDef(c.columnIds[0])).slice(0,s+1);if(b.length===s+1&&a.isBandCollapsible(b)){let R=a.isBandCollapsed(b),F=document.createElement("button");F.type="button",F.className="kanuni-datagrid-band-toggle",F.setAttribute("aria-expanded",String(!R));let K=R?h.expandColumnGroup:h.collapseColumnGroup;F.setAttribute("aria-label",K),F.title=K,F.appendChild(Vd(R)),F.addEventListener("click",I=>{I.stopPropagation(),a.toggleBand(b);}),p.appendChild(F);}}let v=w("kanuni-datagrid-band-label","span");v.textContent=c.label,p.appendChild(v);}r.appendChild(p);}xn.appendChild(r);});}let Zt=null,Nn=null;function In(e,t){Nn&&Nn!==e&&Nn.classList.remove("kanuni-datagrid-header-cell--drop-before","kanuni-datagrid-header-cell--drop-after"),Nn=e,e&&(e.classList.toggle("kanuni-datagrid-header-cell--drop-before",t==="before"),e.classList.toggle("kanuni-datagrid-header-cell--drop-after",t==="after"));}function Gr(){if(!Zt)return;let e=a.getSelectedCount(),t=a.getSelectableCount(),o=t>0&&e>=t;Zt.checked=o,Zt.indeterminate=!o&&e>0,Zt.disabled=t===0&&e===0;}let gn=null;function $r(e){gn=e;for(let t of Array.from(Ae.querySelectorAll(".kanuni-datagrid-header-cell[data-column-id]")))t.tabIndex=t.getAttribute("data-column-id")===e?0:-1;}function ko(){Li();let e=document.activeElement,t=e&&Ae.contains(e)?e.closest("[data-column-id]")?.getAttribute("data-column-id")??null:null,o=a.getColumnLayout(),n=[...o.left,...o.center,...o.right].map(r=>r.state.id);(!gn||!n.includes(gn))&&(gn=n[0]??null);let i=a.getSort(),d=new Map(i.map((r,c)=>[r.columnId,{direction:r.direction,order:c}]));if(Ae.textContent="",Zt=null,wo){let r=w("kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-status-cell");r.setAttribute("role","presentation"),r.setAttribute("aria-hidden","true"),r.style.width=`${cr}px`,r.style.flex="none",r.style.insetInlineStart="0px",Ae.appendChild(r);}if(L){let r=w("kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-rownum-cell");r.setAttribute("role","columnheader"),r.style.width=`${En}px`,r.style.flex="none",r.style.insetInlineStart=`${yo}px`,Ae.appendChild(r);}if(Xt){let r=w("kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-detail-toggle-cell");r.setAttribute("role","columnheader"),r.setAttribute("aria-label",h.detailsAria),r.style.width=`${kn}px`,r.style.flex="none",r.style.insetInlineStart=`${ho}px`,Ae.appendChild(r);}if(jt){let r=w("kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-select-cell");r.setAttribute("role","columnheader"),r.style.width=`${ao}px`,r.style.flex="none",r.style.insetInlineStart=`${Dr}px`;let c=document.createElement("input");c.type="checkbox",c.setAttribute("aria-label",h.selectAllRows),c.addEventListener("change",()=>{a.getSelectedCount()>0?a.clearSelection():a.selectAll();}),r.appendChild(c),Ae.appendChild(r),Zt=c,Gr();}let s=false;for(let r of lt){if(!r.pinned&&!s){if(ze>0){let y=document.createElement("div");y.style.flex=`0 0 ${ze}px`,Ae.appendChild(y);}s=true;}let c=wr&&r.def.sortable!==false,p=r.id===datagridCore.GROUP_COLUMN_ID,v=d.get(p?a.getGroupLevels()[0]??r.id:r.id),b=w(`kanuni-datagrid-header-cell${c?" kanuni-datagrid-header-cell--sortable":""}${r.pinned?" kanuni-datagrid-header-cell--pinned":""}${r.def.wrapHeaderText?" kanuni-datagrid-header-cell--wrap":""}`);b.setAttribute("role","columnheader"),b.setAttribute("data-column-id",r.id),b.tabIndex=r.id===gn?0:-1,b.addEventListener("focus",()=>$r(r.id)),b.setAttribute("aria-sort",v?v.direction==="asc"?"ascending":"descending":"none");let R=r.def.headerTooltip;R&&(b.title=R),b.style.width=`${r.width}px`,b.style.flex="none",r.pinned==="left"&&(b.style.insetInlineStart=`${r.inset}px`),r.pinned==="right"&&(b.style.insetInlineEnd=`${r.inset}px`);let F=w("kanuni-datagrid-header-label","span");F.id=`${encodeURIComponent(u.gridId)}-hdr-${encodeURIComponent(r.id)}`,b.setAttribute("aria-labelledby",F.id);let K=We?.(r.id);if(K)F.appendChild(K);else if(r.def.renderHeader){let y=r.def.renderHeader({column:r.def});typeof y=="string"?F.textContent=y:F.appendChild(y);}else F.textContent=r.def.headerName??r.id;if(b.appendChild(F),v){let y=w("kanuni-datagrid-sort-indicator","span");if(y.setAttribute("aria-hidden","true"),y.textContent=v.direction==="asc"?"\u25B2":"\u25BC",b.appendChild(y),i.length>1&&!p){let $=w("kanuni-datagrid-sort-order","span");$.setAttribute("aria-hidden","true"),$.textContent=String(v.order+1),b.appendChild($);}}if(c||ht){let y=r.id;b.addEventListener("click",$=>{ht?.(y,$)||c&&a.toggleSort(y,$.shiftKey);});}let I=Se!==false&&!datagridCore.isChromeColumn(r.id);if(I){let y=r.id;b.addEventListener("contextmenu",$=>{$.preventDefault(),ra(y,{left:$.clientX,top:$.clientY});});}let m=null;if(O&&r.def.filterable!==false){m=document.createElement("button"),m.type="button",m.tabIndex=-1;let y=a.getColumnFilter(r.id)!==null;m.className=`kanuni-datagrid-filter-button${y?" kanuni-datagrid-filter-button--active":""}${J==="always"?" kanuni-datagrid-filter-button--pinned":""}`,m.setAttribute("aria-haspopup","dialog"),m.setAttribute("aria-label",datagridCore.fillText(h.filterPopupAria,{column:r.def.headerName??r.id})),m.appendChild(Bd());let $=m;m.addEventListener("click",z=>{z.stopPropagation(),na(r.id,$);}),b.appendChild(m);}if(b.addEventListener("keydown",y=>{let $=n.indexOf(r.id),z;if(y.key==="ArrowRight")z=n[Math.min(n.length-1,$+1)];else if(y.key==="ArrowLeft")z=n[Math.max(0,$-1)];else if(y.key==="Home")z=n[0];else if(y.key==="End")z=n[n.length-1];else if(m&&y.altKey&&y.key==="ArrowDown")na(r.id,m);else if(c&&(y.key==="Enter"||y.key===" "))a.toggleSort(r.id,y.shiftKey);else if(I&&(y.key==="ContextMenu"||y.key==="F10"&&y.shiftKey)){let ge=b.getBoundingClientRect();ra(r.id,{left:ge.left,top:ge.bottom});}else return;y.preventDefault(),y.stopPropagation(),z&&z!==r.id&&($r(z),No(z)?.focus());}),ee&&r.def.reorderable!==false&&(b.draggable=true,b.addEventListener("dragstart",y=>{y.dataTransfer?.setData("text/x-kanuni-column",r.id),y.dataTransfer&&(y.dataTransfer.effectAllowed="move");}),b.addEventListener("dragover",y=>{if(!y.dataTransfer?.types.includes("text/x-kanuni-column"))return;y.preventDefault();let $=b.getBoundingClientRect(),z=y.clientX<$.left+$.width/2;In(b,z?"before":"after");}),b.addEventListener("dragleave",y=>{let $=y.relatedTarget;(!$||!b.contains($))&&In(null,"before");}),b.addEventListener("drop",y=>{In(null,"before");let $=y.dataTransfer?.getData("text/x-kanuni-column");if(!$||$===r.id)return;y.preventDefault();let z=b.getBoundingClientRect();if(y.clientX<z.left+z.width/2)a.moveColumn($,r.id);else {let Pe=lt.findIndex(oe=>oe.id===r.id);a.moveColumn($,lt[Pe+1]?.id);}}),b.addEventListener("dragend",()=>In(null,"before"))),se&&r.def.resizable!==false){let y=w("kanuni-datagrid-resize-handle","span");y.setAttribute("data-resize-handle",r.id),y.setAttribute("role","presentation"),y.addEventListener("click",$=>$.stopPropagation()),y.addEventListener("dblclick",$=>{$.stopPropagation(),Zi(r.id);}),y.addEventListener("pointerdown",$=>{$.preventDefault(),$.stopPropagation();let z=$.clientX,ge=r.width,Pe=getComputedStyle(b).direction==="rtl"?-1:1;b.draggable=false;let oe=ge,ke=false,Ve=dt=>{ke=true,oe=ge+(dt.clientX-z)*Pe,a.setColumnWidth(r.id,oe,false);},bt=()=>{window.removeEventListener("pointermove",Ve),window.removeEventListener("pointerup",bt),window.removeEventListener("pointercancel",bt),ke&&a.setColumnWidth(r.id,oe,true),b.draggable=ee&&r.def.reorderable!==false;};window.addEventListener("pointermove",Ve),window.addEventListener("pointerup",bt),window.addEventListener("pointercancel",bt);}),b.appendChild(y);}Ae.appendChild(b);}t&&No(t)?.focus({preventScroll:true});}let Or=null,Hn=null;function Ai(e){if(e===Or)return;Or=e;let t=[];for(let o=0;o<e.length;o++){let n=e[o];n&&n.kind!=="data"&&t.push(o);}Hn=t.length>0?t:null;}function Mi(e){if(!Hn)return e+1;let t=0,o=Hn.length;for(;t<o;){let n=t+o>>1;Hn[n]<=e?t=n+1:o=n;}return e+1-t}let gt=[];function Fn(e="data"){let t=w("kanuni-datagrid-row");if(t.setAttribute("role","row"),e==="loading"){t.classList.add("kanuni-datagrid-row--loading"),t.setAttribute("aria-busy","true");let p=w("kanuni-datagrid-cell kanuni-datagrid-loading-cell");return p.setAttribute("role","gridcell"),p.setAttribute("aria-colindex","1"),p.appendChild(w("kanuni-datagrid-loading-bar","span")),t.appendChild(p),{kind:e,root:t,cells:[],rowNumberCell:null,selectInput:null,detailToggle:null,leadingSpacer:null,trailingSpacer:null,epoch:ft}}if(e==="data"&&mo&&t.addEventListener("click",()=>{if(!t.classList.contains("kanuni-datagrid-group-row--aligned"))return;let p=t.getAttribute("data-group-key");p!==null&&a.toggleGroup(p);}),e==="panel"){let p=document.createElement("div");return p.setAttribute("role","gridcell"),p.setAttribute("aria-colindex","1"),t.appendChild(p),{kind:e,root:t,cells:[],rowNumberCell:null,selectInput:null,detailToggle:null,leadingSpacer:null,trailingSpacer:null,panelCell:p,epoch:ft}}if(e==="group"){let p=w("kanuni-datagrid-group-cell");p.setAttribute("role","gridcell"),p.setAttribute("aria-colindex","1");let v=w("kanuni-datagrid-group-twisty","span");v.setAttribute("aria-hidden","true");let b=w("kanuni-datagrid-group-caption","span"),R=w("kanuni-datagrid-group-label","span"),F=w("kanuni-datagrid-group-count","span"),K=w("kanuni-datagrid-group-aggregates","span"),I=null;return jt&&cn?.mode==="multiple"&&(I=document.createElement("input"),I.type="checkbox",I.className="kanuni-datagrid-group-checkbox",I.tabIndex=-1,I.addEventListener("change",()=>{let m=t.getAttribute("data-group-key");m!==null&&a.toggleGroupSelection(m);}),I.addEventListener("click",m=>m.stopPropagation()),I.addEventListener("mousedown",m=>m.stopPropagation()),p.appendChild(I)),p.append(v,b,R,F,K),t.appendChild(p),t.addEventListener("click",()=>{let m=t.getAttribute("data-group-key");m!==null&&a.toggleGroup(m);}),{kind:e,root:t,cells:[],rowNumberCell:null,selectInput:null,detailToggle:null,leadingSpacer:null,trailingSpacer:null,group:{cell:p,check:I,twisty:v,caption:b,label:R,count:F,aggregates:K},epoch:ft}}if(pn){let p=w("kanuni-datagrid-row-grip","span");p.setAttribute("aria-hidden","true"),p.title=h.dragToReorder??"Drag to reorder",p.innerHTML='<svg width="10" height="14" viewBox="0 0 10 14" focusable="false"><g fill="currentColor"><circle cx="3" cy="3" r="1.2"/><circle cx="7" cy="3" r="1.2"/><circle cx="3" cy="7" r="1.2"/><circle cx="7" cy="7" r="1.2"/><circle cx="3" cy="11" r="1.2"/><circle cx="7" cy="11" r="1.2"/></g></svg>',p.addEventListener("mouseenter",()=>{t.draggable=true;}),p.addEventListener("mouseleave",()=>{t.draggable=false;}),t.appendChild(p);}if(kt)return {kind:e,root:t,cells:[],rowNumberCell:null,selectInput:null,detailToggle:null,leadingSpacer:null,trailingSpacer:null,epoch:ft};if(wo){let p=w("kanuni-datagrid-cell kanuni-datagrid-cell--pinned kanuni-datagrid-status-cell");p.setAttribute("role","presentation"),p.setAttribute("aria-hidden","true"),p.style.width=`${cr}px`,p.style.flex="none",p.style.insetInlineStart="0px",p.appendChild(w("kanuni-datagrid-status-icon","span")),t.appendChild(p);}let o=null;L&&(o=w("kanuni-datagrid-cell kanuni-datagrid-cell--number kanuni-datagrid-cell--pinned kanuni-datagrid-rownum-cell"),o.setAttribute("role","gridcell"),o.setAttribute("aria-colindex","1"),o.style.width=`${En}px`,o.style.flex="none",o.style.insetInlineStart=`${yo}px`,t.appendChild(o));let n=null;if(Xt){let p=w("kanuni-datagrid-cell kanuni-datagrid-cell--center kanuni-datagrid-cell--pinned kanuni-datagrid-detail-toggle-cell");p.setAttribute("role","gridcell"),p.setAttribute("aria-colindex",String((L?1:0)+1)),p.style.width=`${kn}px`,p.style.flex="none",p.style.insetInlineStart=`${ho}px`;let v=document.createElement("button");v.type="button",v.className="kanuni-datagrid-detail-toggle",v.tabIndex=-1,v.addEventListener("click",b=>{b.stopPropagation();let R=t.getAttribute("data-row-key");if(R===null)return;let F=a.getRows().find(K=>K!==void 0&&String(K.key)===R);F&&F.kind==="data"&&a.toggleDetail(F.key);}),v.addEventListener("mousedown",b=>b.stopPropagation()),p.appendChild(v),t.appendChild(p),n=v;}let i=null;if(jt){let p=w("kanuni-datagrid-cell kanuni-datagrid-cell--center kanuni-datagrid-cell--pinned kanuni-datagrid-select-cell");p.setAttribute("role","gridcell"),p.setAttribute("aria-colindex",String((L?1:0)+(Xt?1:0)+1)),p.style.width=`${ao}px`,p.style.flex="none",p.style.insetInlineStart=`${Dr}px`;let v=document.createElement("input");v.type="checkbox",v.tabIndex=-1;let b=()=>{let R=t.getAttribute("data-row-key");if(R===null)return;let F=a.getRows().find(K=>K!==void 0&&String(K.key)===R);F?.kind==="group"?a.toggleGroupSelection(String(F.key)):F&&a.toggleRow(F.key);};p.addEventListener("mousedown",R=>R.stopPropagation()),p.addEventListener("click",R=>{R.target.tagName!=="INPUT"&&(R.stopPropagation(),b());}),v.addEventListener("change",b),v.addEventListener("click",R=>R.stopPropagation()),v.addEventListener("mousedown",R=>R.stopPropagation()),p.appendChild(v),t.appendChild(p),i=v;}let d=[],s=null,r=false;for(let p of lt){!p.pinned&&!r&&(s=document.createElement("div"),s.style.flex=`0 0 ${ze}px`,t.appendChild(s),r=true);let v=w(p.className);v.setAttribute("role","gridcell"),v.setAttribute("data-column-id",p.id),v.style.width=`${p.width}px`,v.style.flex="none",p.pinned==="left"&&(v.style.insetInlineStart=`${p.inset}px`),p.pinned==="right"&&(v.style.insetInlineEnd=`${p.inset}px`),t.appendChild(v),d.push({el:v,slot:p});}let c=document.createElement("div");return c.style.flex=`0 0 ${vo}px`,t.appendChild(c),{kind:e,root:t,cells:d,rowNumberCell:o,selectInput:i,detailToggle:n,leadingSpacer:s,trailingSpacer:c,epoch:ft}}let en="";function Kn(e,t){if(en===""||t===""){e.textContent=t;return}let o=datagridCore.foldText(t),n=o.indexOf(en);if(n===-1){e.textContent=t;return}let i=[],d=0;for(;n!==-1;){n>d&&i.push(document.createTextNode(t.slice(d,n)));let r=document.createElement("mark");r.className="kanuni-datagrid-highlight",r.textContent=t.slice(n,n+en.length),i.push(r),d=n+en.length,n=o.indexOf(en,d);}d<t.length&&i.push(document.createTextNode(t.slice(d)));let s=document.createElement("span");s.className="kanuni-datagrid-cell-text",s.append(...i),e.replaceChildren(s);}function Br(e,t,o){let n=a.getColumnModel().getCellValue(o.data,t.id),i=t.def;if(i.renderCell){let s=i.renderCell({value:n,row:o.data,node:o,column:i});typeof s=="string"?e.textContent=s:e.replaceChildren(s);return}let d=datagridCore.lookupLabel(i,n);if(d!==null){Kn(e,d);return}if(i.valueFormatter){let s=i.valueFormatter(n,o.data);Kn(e,typeof s=="string"?s:String(s??""));return}if(i.dateFormat&&i.dataType==="date"){Kn(e,datagridCore.formatDateValue(n,i.dateFormat));return}Kn(e,n==null?"":String(n));}function Di(e,t){return e.kind==="group"&&!t.group}function Ni(e,t,o){let n=t?.lead??null;if(!n||!e.leadingSpacer||o.kind!=="data"){e.leadCell?.remove(),e.leadCell=null;return}let i=a.getColumnLayout(),d=n.column.def,s={def:d,id:n.column.state.id,width:n.width,className:ii(d.align,d.dataType),visualIndex:i.left.length+i.center.indexOf(n.column)},r=e.leadCell??w(s.className);e.leadCell=r,r.className=s.className,r.setAttribute("role","gridcell"),r.setAttribute("data-column-id",s.id),r.setAttribute("aria-colspan",String(t.spans.get(s.id)??1)),r.setAttribute("aria-colindex",String(bo()+s.visualIndex+1)),r.id=`${u.gridId}-cell-${String(o.key)}-${s.id}`,r.style.width=`${n.width}px`,r.style.flex="none",e.leadingSpacer.nextSibling!==r&&e.leadingSpacer.after(r),Br(r,s,o);}function Ii(e){let t=document.createElement("div");t.className="kanuni-datagrid-row-message",t.setAttribute("data-testid","dg-row-message"),t.innerHTML='<svg class="kanuni-datagrid-row-message-icon" viewBox="0 0 16 16" width="14" height="14" aria-hidden="true"><path d="M8 1.5 15 14H1z" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"/><path d="M8 6v3.5M8 11.6v.4" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/></svg>';let o=document.createElement("span");o.className="kanuni-datagrid-row-message-text",o.textContent=e.text,o.title=e.text,t.appendChild(o);let n=(i,d,s)=>{let r=document.createElement("button");r.type="button",r.className="kanuni-datagrid-row-message-button",r.setAttribute("data-testid",i),r.textContent=d,r.addEventListener("click",s),t.appendChild(r);};return e.retry&&n("dg-row-retry",h.rowStatusRetry,e.retry),e.remove&&n("dg-row-delete",h.rowStatusDelete,e.remove),t}function Vr(){if(!rt?.messages)return;let e=Ze?.engine??Ee?.()??null,t=rt.get,o=datagridCore.rowMessageKeys(rt,e).filter(n=>{if(!t)return true;let i=a.getDataRowNode(n)?.data;if(i===void 0)return true;let d=t({row:i,rowKey:n});return d===void 0||d==="error"});a.setMessageRows(o,a.getRowHeight());}function _r(e,t){let o=rt&&t?.kind==="data"?datagridCore.resolveRowStatus(rt,t.data,t.key,Ze?.engine??Ee?.()??null):null,n=e.getAttribute("data-row-status");if(n!==null&&e.classList.remove(`kanuni-datagrid-row--status-${n}`,"kanuni-datagrid-row--status-tint"),!o){if(n===null)return;e.removeAttribute("data-row-status"),e.removeAttribute("aria-description"),e.removeAttribute("aria-busy"),e.removeAttribute("aria-invalid");return}e.setAttribute("data-row-status",o.status),e.classList.add(...datagridCore.rowStatusClassName(o.status,rt.tint).split(" ")),e.setAttribute("aria-description",datagridCore.rowStatusDescription(o,h)),o.status==="saving"?e.setAttribute("aria-busy","true"):e.removeAttribute("aria-busy"),o.status==="error"?e.setAttribute("aria-invalid","true"):e.removeAttribute("aria-invalid");}function Ro(e,t,o){let n=e.root;if(n.setAttribute("aria-rowindex",String(o+1+go())),n.setAttribute("data-row-key",String(t.key)),t.kind==="message"){let m=e.panelCell;n.className="kanuni-datagrid-row kanuni-datagrid-message-row",n.style.height=`${t.height}px`,n.style.display="",n.setAttribute("data-message-for",String(t.parentKey)),n.removeAttribute("data-detail-for"),n.removeAttribute("data-editform-for"),n.removeAttribute("data-panel-for"),m.className="kanuni-datagrid-message-cell";let y=rt?datagridCore.rowMessageModel(rt,t.parentKey,t.data,Ze?.engine??Ee?.()??null,h):null,$=y?`${String(t.parentKey)}|${y.text}|${y.retry?1:0}${y.remove?1:0}`:"";n.getAttribute("data-message-sig")!==$&&(n.setAttribute("data-message-sig",$),m.textContent="",y&&m.appendChild(Ii(y)));return}if(n.removeAttribute("data-message-for"),n.removeAttribute("data-message-sig"),t.kind==="detail"||t.kind==="editform"){let m=e.panelCell,y=t.kind==="detail";n.className=`kanuni-datagrid-row ${y?"kanuni-datagrid-detail-row":"kanuni-datagrid-editform-row"}`,n.style.height=`${t.height}px`,y?(n.setAttribute("data-detail-for",String(t.parentKey)),n.removeAttribute("data-editform-for")):(n.setAttribute("data-editform-for",t.parentKey===null?"":String(t.parentKey)),n.removeAttribute("data-detail-for")),m.className=y?"kanuni-datagrid-detail-cell":"kanuni-datagrid-editform-cell";let $=`${t.kind}:${String(t.key)}`;if(n.getAttribute("data-panel-for")!==$){n.setAttribute("data-panel-for",$);let z=y?fr?.(t.data):t.parentKey===null?void 0:hi?.(t.parentKey,t.data);m.textContent="",typeof z=="string"?m.textContent=z:z&&m.appendChild(z);}return}if(n.removeAttribute("data-panel-for"),n.removeAttribute("data-detail-for"),n.removeAttribute("data-editform-for"),t.kind==="filler"){n.style.display="none";return}n.style.display="";let i=t.kind==="data"?a.getDataRowHeight():null;n.style.height=Wr?"":`${i??a.getRowHeight()}px`;let d=t.kind==="group"&&!e.group?t:null;if(!e.group){n.classList.remove("kanuni-datagrid-group-row","kanuni-datagrid-group-row--aligned");for(let m of Array.from(n.classList))m.startsWith("kanuni-datagrid-group-row--level-")&&n.classList.remove(m);d?(n.classList.add("kanuni-datagrid-group-row","kanuni-datagrid-group-row--aligned",`kanuni-datagrid-group-row--level-${d.level}`),n.setAttribute("aria-expanded",String(d.expanded)),n.setAttribute("aria-level",String(d.level+1)),n.setAttribute("data-group-key",String(d.key)),n.setAttribute("data-group-level",String(d.level))):(n.removeAttribute("aria-expanded"),n.removeAttribute("aria-level"),n.removeAttribute("data-group-key"),n.removeAttribute("data-group-level"));}n.classList.toggle("kanuni-datagrid-row--odd",A&&o%2===1);let s=a.isRowSelected(t.key);n.classList.toggle("kanuni-datagrid-row--selected",s),t.kind==="data"&&a.getSelectionMode()!=="none"?n.setAttribute("aria-selected",String(s)):n.removeAttribute("aria-selected");let r=a.getFocus();n.classList.toggle("kanuni-datagrid-row--focused",q&&r!==null&&r.rowKey===t.key),_r(n,t);let c=t.kind==="data"&&!Di(t,e)?a.planRowColSpans(t,a.getVirtualWindow().columns):null;if(e.leadingSpacer&&(e.leadingSpacer.style.flex=`0 0 ${Math.max(0,ze-(c?.leadingDelta??0))}px`),e.trailingSpacer&&(e.trailingSpacer.style.flex=`0 0 ${Math.max(0,vo-(c?.trailingDelta??0))}px`),Ni(e,c,t),pn){let m=$t!==null&&String($t.key)===String(t.key);n.classList.toggle("kanuni-datagrid-row--drop-before",m&&$t.side==="before"),n.classList.toggle("kanuni-datagrid-row--drop-after",m&&$t.side==="after");}let p=t.kind==="treePath",v=p||d!==null;if(n.classList.toggle("kanuni-datagrid-row--tree-path",p),e.rowNumberCell&&(e.rowNumberCell.textContent=v?"":String(Mi(o))),e.detailToggle&&(e.detailToggle.hidden=v),e.selectInput){let m=d!==null&&cn?.mode==="multiple";if(e.selectInput.hidden=p||d!==null&&!m,e.selectInput.classList.toggle("kanuni-datagrid-group-checkbox",m),m){let y=a.getGroupSelectionState(String(d.key));e.selectInput.checked=y==="all",e.selectInput.indeterminate=y==="some",e.selectInput.disabled=false,e.selectInput.setAttribute("aria-label",h.selectGroupAria.replace("{count}",String(d.count)).replace("{group}",d.display??d.label));}else e.selectInput.indeterminate=false,e.selectInput.checked=a.isRowSelected(t.key),e.selectInput.disabled=t.kind==="data"&&!a.isRowSelectable(t.key),e.selectInput.setAttribute("aria-label",h.selectRowAria.replace("{row}",String(t.key)));}if(e.detailToggle&&t.kind==="data"){let m=a.isDetailExpanded(t.key);e.detailToggle.textContent=m?"\u25BE":"\u25B8",e.detailToggle.setAttribute("aria-expanded",String(m)),e.detailToggle.setAttribute("aria-label",m?h.collapseDetails:h.expandDetails);}if(t.kind==="group"&&e.group){let m=t;n.className=`kanuni-datagrid-row kanuni-datagrid-group-row kanuni-datagrid-group-row--level-${m.level}`,n.setAttribute("aria-expanded",String(m.expanded)),n.setAttribute("aria-level",String(m.level+1)),n.setAttribute("data-group-key",String(m.key)),n.setAttribute("data-group-level",String(m.level)),e.group.cell.style.paddingLeft=m.level>0?`${8+m.level*18}px`:"",e.group.twisty.textContent=m.expanded?"\u25BE":"\u25B8";let y=a.getColumnModel().getDef(m.columnId),$=y?.headerName??m.columnId;if(e.group.caption.textContent=`${$}:`,e.group.label.textContent=datagridCore.lookupLabel(y,m.value)??m.display??(m.label===""?h.filterBlank:m.label),e.group.count.textContent=`(${m.count})`,e.group.check){let ge=a.getGroupSelectionState(String(m.key));e.group.check.checked=ge==="all",e.group.check.indeterminate=ge==="some",e.group.check.setAttribute("aria-label",h.selectGroupAria.replace("{count}",String(m.count)).replace("{group}",e.group.label.textContent??""));}e.group.aggregates.textContent="";let z=m.aggregates??null;if(z)for(let ge of a.getSummaryDefs()){let Pe=w("kanuni-datagrid-group-aggregate","span"),oe=w("kanuni-datagrid-group-aggregate-label","span"),ke=a.getColumnModel().getDef(ge.columnId);oe.textContent=`${datagridCore.summaryLabel(ge,co)} ${ke?.headerName??ge.columnId}:`,Pe.append(oe,` ${datagridCore.formatSummaryValue(ge,z[datagridCore.summaryKey(ge.columnId,ge.type)],ke)}`),e.group.aggregates.appendChild(Pe);}return}if(t.kind!=="data"&&!p&&!d){for(let{el:m}of e.cells)m.textContent="";return}if(kt&&v){let m=pn?1:0;for(;n.childNodes.length>m;)n.removeChild(n.lastChild);let y=w("kanuni-datagrid-cell");d?y.appendChild(qr(d)):(y.appendChild(Ur(t)),xo(y,t,t.tree)),n.appendChild(y);return}if(kt){let m=pn?1:0,y=kt({row:t.data,node:t,rowIndex:o,selected:a.isRowSelected(t.key),focused:q&&r!==null&&r.rowKey===t.key});if(y instanceof Node&&n.childNodes.length===m+1&&n.childNodes[m]===y)return;for(;n.childNodes.length>m;)n.removeChild(n.lastChild);typeof y=="string"?n.appendChild(document.createTextNode(y)):y&&n.appendChild(y);return}let b=r!==null&&r.rowKey===t.key?r.columnId:null,R=d?void 0:t.tree,F=d&&Ar?datagridCore.GROUP_COLUMN_ID:R||d?(()=>{let m=a.getColumnLayout();return (m.left[0]??m.center[0]??m.right[0])?.state.id??null})():null,K=R?F:null,I=a.hasCellSpans();for(let{el:m,slot:y}of e.cells){m.style.display=c?.covered.has(y.id)?"none":"",m.style.width=`${c?.widths.get(y.id)??y.width}px`;let $=c?.spans.get(y.id);$?m.setAttribute("aria-colspan",String($)):m.removeAttribute("aria-colspan");let z=(rn||po)&&!v?{node:t,columnId:y.id,rowIndex:o,columnIndex:y.visualIndex,value:a.getColumnModel().getCellValue(t.data,y.id)}:null,ge=rn&&d&&y.id!==F?{node:t,columnId:y.id,rowIndex:o,columnIndex:y.visualIndex,value:void 0}:null,Pe=z&&rn?rn(z):ge?rn(ge):void 0,oe=false;if(Pe!==void 0?Pe instanceof Node&&m.childNodes.length===1&&m.firstChild===Pe?oe=true:typeof Pe=="string"?m.textContent=Pe:m.replaceChildren(Pe):d?y.id===F?m.replaceChildren(qr(d)):m.replaceChildren(...Pi(d,y.id)):p?y.id===K?(m.replaceChildren(Ur(t)),xo(m,t,R)):m.replaceChildren():(Br(m,y,t),R&&y.id===K&&xo(m,t,R)),I&&!oe){let Le=Fi(o,y.id);m.classList.toggle("kanuni-datagrid-cell--span",Le?.kind==="draw"),m.classList.toggle("kanuni-datagrid-cell--span-covered",Le?.kind==="covered");let De=Pe!==void 0;if(Le?.kind==="covered"&&b!==y.id&&!De)m.replaceChildren();else if(Le?.kind==="draw"){let nn=w("kanuni-datagrid-span-box");nn.style.height=`${Le.height}px`,nn.append(...Array.from(m.childNodes)),m.appendChild(nn);}}else I||m.classList.remove("kanuni-datagrid-cell--span","kanuni-datagrid-cell--span-covered");if(Nt){let Le=!v&&!!To(t.key,y.id,t.data);m.classList.toggle("kanuni-datagrid-cell--noted",Le);}m.id=`${u.gridId}-cell-${String(t.key)}-${y.id}`,m.setAttribute("aria-colindex",String(bo()+y.visualIndex+1)),m.classList.toggle("kanuni-datagrid-cell--focused",b===y.id);let ke=t.kind==="data"?a.getFindMatchKind(t.key,y.id):null;m.classList.toggle("kanuni-datagrid-cell--find-match",ke!==null),m.classList.toggle("kanuni-datagrid-cell--find-active",ke==="active");let Ve=m.getAttribute("data-slot-classes");if(Ve)for(let Le of Ve.split(" "))m.classList.remove(Le);let bt=z&&po?po(z):void 0,dt=y.def.cellClassName,de=[v?void 0:typeof dt=="function"?dt({value:a.getColumnModel().getCellValue(t.data,y.id),row:t.data,node:t,column:y.def}):dt,bt].filter(Boolean).join(" ")||void 0;if(de){for(let Le of de.split(" "))m.classList.add(Le);m.setAttribute("data-slot-classes",de);}else Ve&&m.removeAttribute("data-slot-classes");}}let Wr=u.columns.some(e=>e.autoHeight);function Hi(){if(!Wr)return;let e=a.getVirtualWindow(),t=a.getRows(),o=new Map(a.getMeasuredRowHeights()),n=false;for(let i=e.rows.start;i<e.rows.end&&i<t.length;i++){let d=t[i];if(!d||d.kind!=="data")continue;let s=i-e.rows.start,r=gt[s]?.root;if(!r)continue;let c=r.getBoundingClientRect().height;c>0&&o.get(d.key)!==c&&(o.set(d.key,c),n=true);}n&&a.setMeasuredRowHeights(o);}let Pn={start:0,end:0};function Fi(e,t){let o=a.getCellSpans(t);if(o.length===0)return null;let n=datagridCore.spanRoleAt(o,e,Pn.start,Pn.end);if(!n)return null;if(n.role==="covered")return {kind:"covered"};let i=a.getRowOffset(n.drawStart);return {kind:"draw",height:a.getRowOffset(n.drawEnd)+a.getRowHeightAt(n.drawEnd)-i}}function Ki(e,t){let o=a.isRowLoadFailed(t),n=o?"failed":"loading";if(e.dataset.holeState===n)return;e.dataset.holeState=n,e.classList.toggle("kanuni-datagrid-row--load-failed",o),o?e.removeAttribute("aria-busy"):e.setAttribute("aria-busy","true");let i=e.firstElementChild;if(!o)i.replaceChildren(w("kanuni-datagrid-loading-bar","span"));else {let d=w("kanuni-datagrid-load-failed-text","span");d.textContent=h.rowsLoadFailed;let s=document.createElement("button");s.className="kanuni-datagrid-retry-button",s.type="button",s.setAttribute("data-retry-load",""),s.textContent=h.retryLoad,s.addEventListener("click",()=>a.retryFailedLoads()),i.replaceChildren(d,s);}}function qr(e){let t=w("kanuni-datagrid-group-inline","span");t.style.paddingInlineStart=`${e.level*16}px`;let o=w("kanuni-datagrid-group-twisty","span");o.setAttribute("aria-hidden","true"),o.textContent=e.expanded?"\u25BE":"\u25B8";let n=a.getColumnModel().getDef(e.columnId),i=w("kanuni-datagrid-group-caption","span");i.textContent=`${n?.headerName??e.columnId}:`;let d=w("kanuni-datagrid-group-label","span");d.textContent=datagridCore.lookupLabel(n,e.value)??e.display??(e.label===""?h.filterBlank:e.label);let s=w("kanuni-datagrid-group-count","span");return s.textContent=`(${e.count})`,Ar?t.append(o,d,s):t.append(o,i,d,s),t}function Pi(e,t){if(!e.aggregates)return [];let o=a.getSummaryDefs().find(i=>i.columnId===t);if(!o)return [];let n=w("kanuni-datagrid-group-aggregate-value","span");return n.textContent=datagridCore.formatSummaryValue(o,e.aggregates[datagridCore.summaryKey(o.columnId,o.type)],a.getColumnModel().getDef(t)),[n]}function Ur(e){let t=w("kanuni-datagrid-tree-path-label","span");return t.textContent=e.label,t}function xo(e,t,o){let n=w(`kanuni-datagrid-tree-cell${o.ancestorOnly?" kanuni-datagrid-tree-cell--ancestor":""}`,"span");if(n.style.paddingInlineStart=`${o.depth*16}px`,o.hasChildren){let i=document.createElement("button");i.type="button",i.className="kanuni-datagrid-tree-toggle",i.setAttribute("data-tree-toggle",""),i.setAttribute("aria-expanded",String(o.expanded)),i.setAttribute("aria-label",o.expanded?h.collapseTreeRow:h.expandTreeRow),i.textContent=o.expanded?"\u25BE":"\u25B8",i.addEventListener("mousedown",d=>d.stopPropagation()),i.addEventListener("click",d=>{d.stopPropagation(),a.toggleTreeRow(t.key);}),n.appendChild(i);}else n.appendChild(w("kanuni-datagrid-tree-toggle kanuni-datagrid-tree-toggle--leaf","span"));n.append(...Array.from(e.childNodes)),e.appendChild(n);}let To=(e,t,o)=>Nt?Nt.get({rowKey:e,columnId:t,row:o})??null:null,zr=null,xt=so?w("kanuni-datagrid-overlay"):null;xt&&(xt.style.position="absolute",xt.style.inset="0",xt.style.pointerEvents="none",$e.appendChild(xt));function Gi(){if(!so||!xt)return;let e=so();e!==zr&&(zr=e,e?xt.replaceChildren(e):xt.replaceChildren());}function $i(e){let t=a.getColumnLayout(),o=Array.from(vt.children);B.setAttribute("aria-rowcount",String(go()+e+o.length)),B.setAttribute("aria-colcount",String(bo()+t.left.length+t.center.length+t.right.length)),a.getSelectionMode()==="multiple"?B.setAttribute("aria-multiselectable","true"):B.removeAttribute("aria-multiselectable"),o.forEach((n,i)=>n.setAttribute("aria-rowindex",String(go()+e+i+1)));}function Gn(){Gi(),ln&&Rr();let e=a.getVirtualWindow(),t=a.getRows(),o=Qt?{...e,rows:{...e.rows,start:0,end:t.length,offsetY:0,totalHeight:0}}:e;Ai(t),$i(t.length),$e.style.height=`${o.rows.totalHeight}px`,fe.style.transform=`translateY(${o.rows.offsetY}px)`,en=a.getFindNeedle()||(si?datagridCore.normalizeSearch(a.getSearchText()):"");let n=Math.max(0,Math.min(o.rows.end,t.length)-o.rows.start);for(Pn.start=o.rows.start,Pn.end=Math.min(o.rows.end,t.length)-1;gt.length>n;)gt.pop().root.remove();for(let i=0;i<n;i++){let d=o.rows.start+i,s=t[d];if(!s){let p=gt[i];if(!p||p.kind!=="loading"){let v=Fn("loading");p?fe.replaceChild(v.root,p.root):fe.appendChild(v.root),gt[i]=v,p=v;}p.root.setAttribute("aria-rowindex",String(d+2)),p.root.style.height=`${a.getDataRowHeight()??a.getRowHeight()}px`,Ki(p.root,d);continue}let r=s.kind==="data"?"data":s.kind==="group"?mo?"data":"group":s.kind==="detail"||s.kind==="editform"||s.kind==="message"?"panel":"stub",c=gt[i];if(!c||c.epoch!==ft||c.kind!==r){let p=Fn(r);c?fe.replaceChild(p.root,c.root):fe.appendChild(p.root),gt[i]=p,c=p;}Ro(c,s,d);}Hi(),Yr();}let $n=[];function Yr(){if(!a.hasStickyGroupHeaders())return;let e=Qt?[]:a.getStickyGroupRows();for(qe.style.width=`${a.getColumnLayout().totalWidth}px`;$n.length>e.length;)$n.pop().wrap.remove();let t=mo?"data":"group";e.forEach((o,n)=>{let i=$n[n];if(!i||i.rs.epoch!==ft||i.rs.kind!==t){let d=Fn(t),s=i?.wrap??w("kanuni-datagrid-sticky-group");s.textContent="",s.appendChild(d.root),i||qe.appendChild(s),i={wrap:s,rs:d},$n[n]=i;}Ro(i.rs,o.node,o.index),i.rs.root.removeAttribute("aria-rowindex"),i.wrap.style.top=`${o.offset}px`,i.wrap.style.height=`${o.height}px`,i.wrap.style.zIndex=String(e.length-n),i.wrap.classList.toggle("kanuni-datagrid-sticky-group--last",n===e.length-1),i.wrap.querySelectorAll("button, input, select, textarea, a[href], [tabindex]").forEach(d=>d.setAttribute("tabindex","-1"));});}qe.addEventListener("click",e=>{let o=e.target.closest("[data-group-key]")?.getAttribute("data-group-key");o&&a.scrollToRow(o);});let On=datagridCore.createDebouncedCommit(di??(a.isRemote()?200:0));function jr(e,t,o,n){let i=a.getColumnModel().getDef(t);if(!i?.renderFilter)return ()=>{};let d=()=>o==="row"?a.getColumnFilter(t,datagridCore.FILTER_PART_ROW):a.getColumnFilter(t,datagridCore.FILTER_PART_SET)??a.getColumnFilter(t,datagridCore.FILTER_PART_DEFAULT),s=new Set,r=a.events.on("filterChanged",()=>{let p=d();s.forEach(v=>v(p));}),c=i.renderFilter(e,{columnId:t,column:i,surface:o,getValue:d,setValue:p=>a.setColumnFilter(t,p,o==="row"?datagridCore.FILTER_PART_ROW:datagridCore.FILTER_PART_SET),close:n,onValueChange:p=>(s.add(p),()=>s.delete(p))});return ()=>{r(),s.clear(),typeof c=="function"&&c();}}let mn=[],bn=new Map,So=false;function Oi(){!T||So||Et.querySelectorAll("select[data-filter-operator-for]").forEach(e=>{let t=e.getAttribute("data-filter-operator-for");if(On.isPending(t))return;let o=a.getColumnModel().getDef(t),n=a.getColumnFilter(t,datagridCore.FILTER_PART_ROW),i=bn.get(t)??"",d=e.parentElement?.querySelector("input.kanuni-datagrid-filter-input"),s=i;if(n){let r=datagridCore.customFilterInputFromNode(n,o);s=r?.operatorId??"",r&&d&&(d.value=r.text);}else datagridCore.findCustomFilterOperator(o,i)?.operandType==="none"&&(s="");bn.set(t,s),e.value=s,d&&(d.disabled=datagridCore.findCustomFilterOperator(o,s)?.operandType==="none");});}function Lo(){if(!T)return;if(mn.forEach(n=>n()),mn=[],Et.textContent="",it>0){let n=w("kanuni-datagrid-filter-cell kanuni-datagrid-filter-cell--pinned");n.setAttribute("role","gridcell"),n.style.width=`${it}px`,n.style.flex="none",n.style.insetInlineStart="0px",Et.appendChild(n);}let e=false,t=null,o=()=>{if(!t){t=document.createElement("datalist"),t.id=`${u.gridId}-filter-periods`;for(let n of datagridCore.periodSuggestionList(hr)){let i=document.createElement("option");i.value=n,t.appendChild(i);}Et.appendChild(t);}return t.id};for(let n of lt){if(!n.pinned&&!e){if(ze>0){let s=w("kanuni-datagrid-spacer");s.style.width=`${ze}px`,s.style.flex="none",Et.appendChild(s);}e=true;}let i=w(`kanuni-datagrid-filter-cell${n.pinned?" kanuni-datagrid-filter-cell--pinned":""}`);i.setAttribute("role","gridcell"),i.style.width=`${n.width}px`,i.style.flex="none",n.pinned==="left"&&(i.style.insetInlineStart=`${n.inset}px`),n.pinned==="right"&&(i.style.insetInlineEnd=`${n.inset}px`);let d=n.def.renderFilter;if(n.def.filterable!==false&&d){let s=w("kanuni-datagrid-filter-custom");s.setAttribute("data-filter-for",n.id),i.appendChild(s),mn.push(jr(s,n.id,"row",()=>{}));}else if(n.def.filterable!==false){let s=document.createElement("input");s.className="kanuni-datagrid-filter-input",s.setAttribute("aria-label",datagridCore.fillText(h.filterPopupAria,{column:n.def.headerName??n.id})),s.setAttribute("data-filter-for",n.id);let r=datagridCore.customFilterOperators(n.def),c=()=>datagridCore.findCustomFilterOperator(n.def,bn.get(n.id)??"");n.def.dataType==="date"&&!c()&&s.setAttribute("list",o());let p=()=>{let b=c();So=true;try{a.setColumnFilter(n.id,b?datagridCore.parseCustomFilterInput(n.id,s.value,b):datagridCore.parseFilterInput(n.id,s.value,n.def.dataType,hr),datagridCore.FILTER_PART_ROW);}finally{So=false;}};if(r.length>0){let b=document.createElement("select");b.className="kanuni-datagrid-filter-operator",b.setAttribute("aria-label",datagridCore.fillText(h.filterOperatorAria,{column:n.def.headerName??n.id})),b.setAttribute("data-filter-operator-for",n.id);let R=[["",h.filterOperatorDefault],...r.map(K=>[K.id,K.label])];for(let[K,I]of R){let m=document.createElement("option");m.value=K,m.textContent=I,b.appendChild(m);}let F=datagridCore.customFilterInputFromNode(a.getColumnFilter(n.id,datagridCore.FILTER_PART_ROW),n.def);F&&(bn.set(n.id,F.operatorId),s.value=F.text),b.value=c()?.id??"",s.disabled=c()?.operandType==="none",b.addEventListener("change",()=>{bn.set(n.id,b.value),s.disabled=c()?.operandType==="none",c()?s.removeAttribute("list"):n.def.dataType==="date"&&s.setAttribute("list",o()),On.cancel(n.id),p();}),i.appendChild(b);}s.addEventListener("input",()=>On.schedule(n.id,p));let v=()=>{On.cancel(n.id),p();};s.addEventListener("keydown",b=>{b.key==="Enter"&&v();}),s.addEventListener("blur",v),i.appendChild(s);}Et.appendChild(i);}}let Ao=()=>{},Xr=null;function Bi(){let e=datagridCore.resolveToolbar(br);if(!e.show)return;let t=e.search,o=document.createElement("input");o.type="search",o.className="kanuni-datagrid-toolbar-search",o.placeholder=t?.placeholder??h.toolbarSearch,o.setAttribute("aria-label",t?.ariaLabel??h.toolbarSearch),o.setAttribute("data-testid","dg-toolbar-search"),o.value=a.getSearchText(),t?.maxLength!==void 0&&(o.maxLength=t.maxLength);let n=w("kanuni-datagrid-toolbar-search-error","span");n.id=`kanuni-dg-search-error-${++Id}`,n.setAttribute("role","alert"),n.setAttribute("data-testid","dg-toolbar-search-error"),n.style.display="none";let i=()=>{let I=t?.validate?.(o.value)??null;return n.textContent=I??"",n.style.display=I===null?"none":"",I===null?(o.removeAttribute("aria-invalid"),o.removeAttribute("aria-describedby")):(o.setAttribute("aria-invalid","true"),o.setAttribute("aria-describedby",n.id)),I===null},d=null,s=false,r=()=>{d&&clearTimeout(d),d=null,s=false;let I=o.value.trim();i()&&a.getSearchText()!==I&&a.setSearchText(I);};Xr=a.events.on("filterChanged",({searchText:I})=>{s||o.value.trim()===I||(o.value=I,i());}),o.addEventListener("input",()=>{s=true,d&&clearTimeout(d),d=null,i()&&(d=setTimeout(r,t?.debounce??gi));}),t?.applyOnBlur!==false&&(o.addEventListener("blur",r),o.addEventListener("keydown",I=>{I.key==="Enter"&&r();}));let c=w("kanuni-datagrid-toolbar-spacer"),p=null;if(e.columns??j){let I=document.createElement("button");I.type="button",datagridCore.setCommandContent(I,"columns",h.toolbarColumns??"Columns"),I.setAttribute("aria-haspopup","dialog"),I.addEventListener("click",()=>{let m=I.getBoundingClientRect();aa({left:m.left,top:m.bottom+2});}),p=I;}let v=Ct&&pi,b=Ct&&fi,R=document.createElement("button");R.type="button",R.className="kanuni-datagrid-toolbar-icon-button",R.setAttribute("aria-haspopup","menu"),R.setAttribute("aria-label",h.exportMenu),R.setAttribute("data-testid","dg-export-menu"),R.title=h.exportMenu,R.appendChild(Od());let F=null;R.addEventListener("click",()=>{if(F)return;let I=R.getBoundingClientRect();mt({left:I.right-190,top:I.bottom+2},m=>{m.setAttribute("role","menu"),m.setAttribute("aria-label",h.exportMenu);let y=[{kind:"csv",label:h.exportCsv,testId:"dg-export-csv",on:a.canExportAll()},{kind:"excel",label:h.exportExcel,testId:"dg-export-excel",on:v},{kind:"excel-selected",label:h.exportExcelSelected,testId:"dg-export-excel-selected",on:v},{kind:"pdf",label:h.exportPdf,testId:"dg-export-pdf",on:b}];for(let $ of y){if(!$.on)continue;let z=document.createElement("button");z.type="button",z.className="kanuni-datagrid-menu-item",z.setAttribute("role","menuitem"),z.setAttribute("data-testid",$.testId),z.textContent=$.label,$.kind==="excel-selected"&&a.getSelectedCount()===0&&(z.disabled=true),z.addEventListener("click",()=>{F=$.kind,R.disabled=true,He(),Qo(a,$.kind).then(ge=>{F=null,R.disabled=false,ge.error&&Ao(ge.error);});}),m.appendChild(z);}},"kanuni-datagrid-filter-popup kanuni-datagrid-export-menu");});for(let I of ci??[])ct.append(I);t&&ct.append(o,n),ct.append(c),p&&ct.append(p),e.export&&(a.canExportAll()||v||b)&&ct.append(R);for(let I of ui??[])ct.append(I);let K=w("kanuni-datagrid-toolbar-error","span");K.setAttribute("role","alert"),K.style.display="none",ct.append(K),Ao=I=>{K.textContent=I,K.style.display="";};}function Jr(){if(!ot.isConnected)return;let e=a.getPage(),t=a.getPageCount(),o=document.activeElement,n=o instanceof HTMLElement&&ot.contains(o)?o.getAttribute("data-pager"):null;ot.textContent="";let i=(c,p,v,b,R)=>{let F=document.createElement("button");return F.type="button",F.textContent=c,F.setAttribute("aria-label",p),F.setAttribute("data-pager",R),F.disabled=v,F.addEventListener("click",b),F},d=w("kanuni-datagrid-pager-buttons"),s=e<=0,r=e>=t-1;if(d.append(i("\xAB",h.pagerFirst??"First",s,()=>a.setPage(0),"first"),i("\u2039",h.pagerPrevious??"Previous",s,()=>a.setPage(e-1),"previous")),Sn?.pageButtons)for(let c of datagridCore.pageButtonItems(e,t,Sn.maxPageButtons)){if(typeof c!="number"){let b=w("kanuni-datagrid-pager-gap","span");b.textContent="\u2026",b.setAttribute("aria-hidden","true"),d.append(b);continue}let p=String(c+1),v=i(p,h.pagerPageButton.replace("{n}",p),false,()=>a.setPage(c),`page-${c}`);v.classList.add("kanuni-datagrid-pager-page"),c===e&&v.setAttribute("aria-current","page"),d.append(v);}else {let c=w("kanuni-datagrid-pager-current","span");c.textContent=`${e+1} / ${t}`,d.append(c);}if(d.append(i("\u203A",h.pagerNext??"Next",r,()=>a.setPage(e+1),"next"),i("\xBB",h.pagerLast??"Last",r,()=>a.setPage(t-1),"last")),ot.appendChild(d),n!==null){let c=ot.querySelector(`[data-pager="${n}"]`);(c&&!c.disabled?c:ot.querySelector('[aria-current="page"]')??ot.querySelector("button:not(:disabled)"))?.focus();}}function Mo(){if(!nt)return;let e=a.getColumnLayout(),t=a.getSummaries(),o=new Map(a.getSummaryDefs().map(i=>[i.columnId,i]));if(Oe.textContent="",Oe.style.width=`${e.totalWidth+it}px`,it>0){let i=w("kanuni-datagrid-footer-cell kanuni-datagrid-footer-cell--pinned");i.style.width=`${it}px`,i.style.insetInlineStart="0px",Oe.appendChild(i);}let n=false;for(let i of lt){if(!i.pinned&&!n){if(ze>0){let c=w("kanuni-datagrid-spacer");c.style.width=`${ze}px`,Oe.appendChild(c);}n=true;}let d=o.get(i.id),s=i.def.dataType==="number"||i.def.dataType==="bigint",r=w(`kanuni-datagrid-footer-cell${i.pinned?" kanuni-datagrid-footer-cell--pinned":""}${s?" kanuni-datagrid-footer-cell--number":""}${d?" kanuni-datagrid-footer-cell--active":""}`);if(r.setAttribute("role","gridcell"),r.setAttribute("data-column-id",i.id),r.setAttribute("data-summary-type",d?.type??""),r.style.width=`${i.width}px`,i.pinned==="left"&&(r.style.insetInlineStart=`${i.inset}px`),i.pinned==="right"&&(r.style.insetInlineEnd=`${i.inset}px`),d){r.title=`${datagridCore.summaryLabel(d,co)} \u2014 ${i.def.headerName??i.id}`;let c=w("kanuni-datagrid-footer-value","span");c.textContent=datagridCore.formatSummaryValue(d,t[datagridCore.summaryKey(d.columnId,d.type)],i.def),r.appendChild(c);}else {let c=w("kanuni-datagrid-footer-hint","span");c.textContent=U&&!datagridCore.isChromeColumn(i.id)?"\xB7":"",r.appendChild(c);}Oe.appendChild(r);}}function Vi(){Ht()>0?tt.isConnected||Ie.insertBefore(tt,qe.isConnected?qe:$e):tt.remove(),vr()>0?vt.isConnected||Ie.insertBefore(vt,$e.nextSibling):vt.remove(),qe.style.setProperty("--dg-sticky-below",`${Ht()>0?Ht()*a.getRowHeight()+1:0}px`);}function Bn(){let e=kt;kt=pe;try{_i();}finally{kt=e;}}function _i(){let e=(t,o,n,i)=>{t.textContent="",o.forEach((d,s)=>{let r=Fn("data");Ro(r,{kind:"data",key:`__pinned-${n}-${s}`,sourceIndex:-1,data:d},s),r.root.classList.remove("kanuni-datagrid-row--odd"),r.root.setAttribute("aria-rowindex",String(fo+Ft+s+1)),r.root.removeAttribute("aria-selected"),_r(r.root,null),r.rowNumberCell&&(r.rowNumberCell.textContent="");let c=i[s-(o.length-i.length)];c!==void 0?r.root.setAttribute("data-pinned-row-key",String(c)):r.root.removeAttribute("data-pinned-row-key"),t.appendChild(r.root);});};for(let[t,o,n]of [["top",tt,ce],["bottom",vt,W]]){let i=a.getPinnedRows(t);if(n.length+i.length===0){o.textContent="";continue}e(o,[...n,...i.map(d=>d.row)],t,i.map(d=>d.key));}}let Vn=e=>{let t=e.target.closest("[data-pinned-row-key]");if(!t)return;let o=t.getAttribute("data-pinned-row-key"),n=a.getPinnedRowKeys(),i=[...n.top,...n.bottom].find(c=>String(c)===o);if(i===void 0)return;let d=Qr(i,false);if(d.length===0)return;e.preventDefault();let s=a.getPinnedRows(a.getRowPinSide(i)??"top").find(c=>c.key===i)?.row,r={row:s,node:{kind:"data",key:i,sourceIndex:-1,data:s},rowIndex:-1,columnId:e.target.closest("[data-column-id]")?.getAttribute("data-column-id")??null,selectedKeys:a.getSelectedKeys()};mt({left:e.clientX,top:e.clientY},c=>{c.setAttribute("role","menu"),Wn(c,d,r);},"kanuni-datagrid-context-menu");};tt.addEventListener("contextmenu",Vn),vt.addEventListener("contextmenu",Vn);function Qr(e,t){if(!a.isRowPinningEnabled()||!a.canPinRow(e))return [];let o=a.getRowPinSide(e),n=[];return o!=="top"&&n.push({id:"__dg-pin-top",label:h.pinRowTop,onSelect:()=>a.pinRow(e,"top")}),o!=="bottom"&&n.push({id:"__dg-pin-bottom",label:h.pinRowBottom,onSelect:()=>a.pinRow(e,"bottom")}),o&&n.push({id:"__dg-unpin",label:h.unpinRow,onSelect:()=>a.pinRow(e,null)}),t&&n.length>0?[{id:"__dg-sep-pin",separator:true},...n]:n}let Bt=null,Vt=null,Do=null;function He(e=true){Vt?.(),Vt=null,Bt?.remove(),Bt=null;let t=Do;Do=null,e&&t?.();}function No(e){return Ae.querySelector(`.kanuni-datagrid-header-cell[data-column-id="${CSS.escape(e)}"]`)}function Zr(e,t){e.addEventListener("keydown",o=>{let n=Array.from(e.querySelectorAll('[role="menuitem"]:not(:disabled)'));if(n.length===0)return;let i=n.indexOf(document.activeElement),d=n[i],s;switch(o.key){case "ArrowDown":s=n[(i+1)%n.length];break;case "ArrowUp":s=n[i<=0?n.length-1:i-1];break;case "Home":s=n[0];break;case "End":s=n[n.length-1];break;case "ArrowRight":case "Enter":case " ":if(d?.getAttribute("aria-haspopup")!=="menu")return;d.click(),s=Bt?.querySelector('.kanuni-datagrid-submenu [role="menuitem"]:not(:disabled)')??void 0;break;case "ArrowLeft":if(!t)return;t();break;case "Tab":He();break;default:return}o.preventDefault(),o.stopPropagation(),s?.focus();});}function ea(e,t){let n=e.getBoundingClientRect();n.width===0&&n.height===0||(e.style.left=`${Math.max(8,Math.min(t.left,window.innerWidth-n.width-8))}px`,e.style.top=`${Math.max(8,Math.min(t.top,window.innerHeight-n.height-8))}px`);}function mt(e,t,o="kanuni-datagrid-filter-popup",n){He(false);let i=document.activeElement instanceof HTMLElement?document.activeElement:null,d=i&&(i===B||!i.contains(B))?i:null,s=(d&&Ae.contains(d)?d.closest("[data-column-id]")?.getAttribute("data-column-id")??null:null)??n??null;Bt=w(`${ro(u)} kanuni-datagrid-portal`);let r=w(o);r.style.position="fixed",r.style.left=`${e.left}px`,r.style.top=`${e.top}px`,r.style.zIndex="1000",t(r),Bt.appendChild(r),datagridCore.portalTarget(u.portalContainer).appendChild(datagridCore.markPortal(Bt,u.portalContainer)),ea(r,e),Do=()=>{let b=s?No(s):null,R=d?.isConnected?d:b;R?.focus({preventScroll:true}),R&&document.activeElement!==R&&b&&b.focus({preventScroll:true});},r.getAttribute("role")==="menu"&&(Zr(r),r.querySelector('[role="menuitem"]:not(:disabled)')?.focus({preventScroll:true}));let c=Bt,p=b=>{c.contains(b.target)||He(false);},v=b=>{b.key==="Escape"&&He();};document.addEventListener("pointerdown",p,true),document.addEventListener("keydown",v,true),Vt=()=>{document.removeEventListener("pointerdown",p,true),document.removeEventListener("keydown",v,true);};}let Tt=25,ta=8,Io=new Map,Ho=0;function na(e,t){let o=t.getBoundingClientRect(),n=++Ho;if(a.getColumnModel().getDef(e)?.renderFilter){let s=null,r=null;mt({left:o.left,top:o.bottom+2},v=>{r=v,v.classList.add("kanuni-datagrid-filter-popup--custom"),v.setAttribute("role","dialog"),v.setAttribute("aria-label",datagridCore.fillText(h.filterPopupAria,{column:a.getColumnModel().getDef(e)?.headerName??e})),v.setAttribute("data-column-id",e),v.tabIndex=-1,s=jr(v,e,"popup",()=>He());},void 0,e);let c=r;c&&(c.querySelector('input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), a[href], [tabindex]:not([tabindex="-1"])')??c).focus({preventScroll:true});let p=Vt;Vt=()=>{p?.(),s?.(),s=null;};return}let i=null;mt({left:o.left,top:o.bottom+2},s=>{s.setAttribute("role","dialog"),s.setAttribute("aria-label",datagridCore.fillText(h.filterPopupAria,{column:a.getColumnModel().getDef(e)?.headerName??e}));let r=[],c=true,p=new Set,v=false,b=0,R="",F=[],K={value:void 0,label:""},I=S=>S.value===null||S.value===void 0,m=[],y=S=>S===K?datagridCore.NONBLANK_KEY:datagridCore.distinctEntryKey(S),$=S=>S===K?h.filterNonBlank:datagridCore.distinctDisplayText(S,{filterBlank:h.filterBlank,filterEmptyText:h.filterEmptyText,filterSpace:h.filterSpace,filterSpaces:h.filterSpaces}),z=null,ge="",Pe=[],oe=null,ke=document.createElement("input");ke.type="search",ke.className="kanuni-datagrid-filter-search",ke.placeholder=h.search,ke.setAttribute("data-testid","dg-filter-search");let Ve=null;Y&&(Ve=document.createElement("button"),Ve.type="button",Ve.className="kanuni-datagrid-filter-custom",Ve.setAttribute("data-testid","dg-filter-custom"),Ve.textContent=h.filterCustom,Ve.addEventListener("click",()=>{He(),Y({columnId:e});}));let bt=w("kanuni-datagrid-filter-actions"),dt=document.createElement("button");dt.type="button",dt.textContent=h.filterSelectAll,dt.addEventListener("click",()=>{if(oe)return oe.selectAll();if(v=true,R.trim()==="")p=new Set(r.map(datagridCore.distinctEntryKey));else for(let S of F)p.add(datagridCore.distinctEntryKey(S));Xe();});let wn=document.createElement("button");wn.type="button",wn.textContent=h.clear,wn.addEventListener("click",()=>{if(oe)return oe.clear();if(v=true,R.trim()==="")p=new Set;else for(let S of F)p.delete(datagridCore.distinctEntryKey(S));Xe();}),bt.append(dt,wn);let de=w("kanuni-datagrid-filter-list");de.setAttribute("role","listbox"),de.setAttribute("aria-multiselectable","true");let Le=document.createElement("div");Le.style.position="relative";let De=document.createElement("div");Le.appendChild(De),de.appendChild(Le);let nn=()=>{let S=datagridCore.foldText(R.trim());if(!S){F=r;let X=r.findIndex(I);m=X<0?r:[...r.slice(0,X+1),K,...r.slice(X+1)];return}z||(z=r.map(X=>datagridCore.foldText(X.label))),F=ge!==""&&S.includes(ge)?Pe.filter(X=>datagridCore.foldText(X.label).includes(S)):r.filter((X,ie)=>z[ie].includes(S)),ge=S,Pe=F,m=F;},sl=S=>{let X=S.getRowCount(),ie=S.isLoading();de.setAttribute("aria-busy",String(ie)),de.setAttribute("aria-setsize",String(X));let me=document.activeElement instanceof HTMLElement?document.activeElement.closest(".kanuni-datagrid-filter-item")?.getAttribute("data-index")??null:null;if(De.textContent="",ie||X===0){Le.style.height="",De.style.transform="";let be=w("kanuni-datagrid-filter-empty");be.textContent=ie?h.filterLoading:h.filterNoMatch,De.appendChild(be);return}Le.style.height=`${S.getWindow(de.scrollTop,240).totalHeight}px`;let Fe=S.getWindow(de.scrollTop,Math.max(de.clientHeight,150));Le.style.height=`${Fe.totalHeight}px`,De.style.transform=`translateY(${Fe.offsetY}px)`;for(let be=Fe.start;be<Fe.end;be++){let Je=S.getRow(be),Ke=w("kanuni-datagrid-filter-item");if(Ke.setAttribute("role","option"),Ke.setAttribute("data-index",String(be)),!Je){Ke.classList.add("kanuni-datagrid-filter-item--pending"),Ke.setAttribute("aria-selected","false"),Ke.setAttribute("aria-busy","true");let on=document.createElement("span");on.setAttribute("aria-hidden","true"),on.textContent="\u2026",Ke.appendChild(on),De.appendChild(Ke);continue}let yn=S.isChecked(Je);Ke.setAttribute("aria-selected",String(yn)),Ke.tabIndex=0,Ke.setAttribute("data-value",Je.label),be===b&&Ke.classList.add("kanuni-datagrid-filter-item--active");let Ge=document.createElement("input");Ge.type="checkbox",Ge.readOnly=true,Ge.checked=yn,Ge.tabIndex=-1;let Dt=document.createElement("span");Dt.textContent=Je.nonBlank?h.filterNonBlank:datagridCore.distinctDisplayText({value:Je.blank?null:Je.value,label:Je.label},{filterBlank:h.filterBlank,filterEmptyText:h.filterEmptyText,filterSpace:h.filterSpace,filterSpaces:h.filterSpaces}),Ke.append(Ge,Dt),Ke.addEventListener("click",()=>S.toggle(Je)),Ke.addEventListener("focus",()=>{b=be;}),De.appendChild(Ke);}S.ensure(Fe.start,Fe.end),me!==null&&De.querySelector(`[data-index="${me}"]`)?.focus({preventScroll:true});},Xe=()=>{if(oe&&!c)return sl(oe);if(de.setAttribute("aria-busy",String(c)),de.setAttribute("aria-setsize",String(m.length)),c){Le.style.height="",De.textContent="";let be=w("kanuni-datagrid-filter-empty");be.textContent=h.filterLoading,De.appendChild(be);return}if(m.length===0){Le.style.height="",De.style.transform="",De.textContent="";let be=w("kanuni-datagrid-filter-empty");be.textContent=h.filterNoMatch,De.appendChild(be);return}let S=de.clientHeight||240,X=Math.max(0,Math.floor(de.scrollTop/Tt)-ta),ie=Math.ceil(S/Tt)+ta*2,me=Math.min(X,Math.max(0,m.length-1)),Fe=Math.min(m.length,me+ie);Le.style.height=`${m.length*Tt}px`,De.style.transform=`translateY(${me*Tt}px)`,De.textContent="";for(let be=me;be<Fe;be++){let Je=m[be],Ke=y(Je),yn=Je===K?datagridCore.distinctNonBlankTicked(r,p):p.has(Ke),Ge=w("kanuni-datagrid-filter-item");Ge.setAttribute("role","option"),Ge.setAttribute("aria-selected",String(yn)),Ge.tabIndex=0,Ge.setAttribute("data-value",Je.label),Ge.setAttribute("data-index",String(be)),be===b&&Ge.classList.add("kanuni-datagrid-filter-item--active");let Dt=document.createElement("input");Dt.type="checkbox",Dt.readOnly=true,Dt.checked=yn,Dt.tabIndex=-1;let on=document.createElement("span");on.textContent=$(Je),Ge.append(Dt,on),Ge.addEventListener("click",()=>Fa(Ke)),Ge.addEventListener("focus",()=>{b=be;}),De.appendChild(Ge);}},Fa=S=>{if(v=true,S===datagridCore.NONBLANK_KEY){let X=datagridCore.distinctNonBlankTicked(r,p);for(let ie of r)I(ie)&&!X?p.delete(datagridCore.BLANK_KEY):p.add(datagridCore.distinctEntryKey(ie));}else p.has(S)?p.delete(S):p.add(S);for(let X of De.querySelectorAll(".kanuni-datagrid-filter-item")){let ie=m[Number(X.getAttribute("data-index"))];if(!ie)continue;let me=ie===K?datagridCore.distinctNonBlankTicked(r,p):p.has(y(ie));X.setAttribute("aria-selected",String(me));let Fe=X.querySelector("input");Fe&&(Fe.checked=me);}};de.addEventListener("scroll",()=>{Io.set(e,de.scrollTop),Xe();});let Qn=null,jo=()=>{if(b=0,oe){let S=oe;Qn&&clearTimeout(Qn),Qn=setTimeout(()=>{Qn=null,S.getSearch()!==R.trim()&&(S.setSearch(R),de.scrollTop=0,Xe());},150);return}nn(),Xe();};ke.addEventListener("input",()=>{R=ke.value,jo();});let Xo=S=>{if(oe){let me=oe.getRowCount();if(me===0)return;b=Math.max(0,Math.min(me-1,S)),S<=0?de.scrollTop=0:S>=me-1&&(de.scrollTop=de.scrollHeight),Xe();let Fe=s.querySelector(`.kanuni-datagrid-filter-item[data-index="${b}"]`);Fe?.focus(),Fe?.scrollIntoView?.({block:"nearest"});return}if(m.length===0)return;b=Math.max(0,Math.min(m.length-1,S));let X=b*Tt,ie=de.clientHeight||240;X<de.scrollTop?de.scrollTop=X:X+Tt>de.scrollTop+ie&&(de.scrollTop=X+Tt-ie),Xe(),s.querySelector(`.kanuni-datagrid-filter-item[data-index="${b}"]`)?.focus();},Ka=()=>{if(c)return;if(oe){if(oe.isLoading())return;a.setColumnFilter(e,oe.buildFilter(e),datagridCore.FILTER_PART_SET),He();return}let S;if(p.size===r.length)S=null;else if(datagridCore.distinctNonBlankTicked(r,p))S={columnId:e,operator:"isnotnull"};else {let X=p.has(datagridCore.BLANK_KEY),ie=r.filter(me=>!I(me)&&p.has(datagridCore.distinctEntryKey(me)));ie.length===0?S=X?{columnId:e,operator:"isnull"}:null:X?S={logic:"or",nodes:[{columnId:e,operator:"in",value:ie.map(me=>me.value)},{columnId:e,operator:"isnull"}]}:S={columnId:e,operator:"in",value:ie.map(me=>me.value)};}a.setColumnFilter(e,S,datagridCore.FILTER_PART_SET),He();};s.tabIndex=-1,s.addEventListener("keydown",S=>{let X=S.target===ke;if(!((S.key==="Enter"||S.key===" ")&&S.target instanceof HTMLButtonElement)){if(S.key==="Tab"){let ie=Array.from(s.querySelectorAll('input:not([disabled]), button:not([disabled]), [tabindex="0"]')),me=ie[0],Fe=ie[ie.length-1],be=document.activeElement;me&&Fe&&(!S.shiftKey&&(be===Fe||be===s)?(S.preventDefault(),me.focus()):S.shiftKey&&(be===me||be===s)&&(S.preventDefault(),Fe.focus()));return}if(S.key==="Backspace"&&!X){S.preventDefault(),ke.focus(),R=R.slice(0,-1),ke.value=R,jo();return}if(S.key==="ArrowDown"){S.preventDefault(),Xo(X?0:b+1);return}if(S.key==="ArrowUp"){S.preventDefault(),Xo(X?oe?0:m.length-1:b-1);return}if(!X&&(S.key==="Home"||S.key==="End")){S.preventDefault(),Xo(S.key==="Home"?0:(oe?oe.getRowCount():m.length)-1);return}if(S.key===" "&&!X){if(S.preventDefault(),oe){let me=oe.getRow(b);me&&oe.toggle(me);return}let ie=m[b];ie&&Fa(y(ie));return}if(S.key==="Enter"){S.preventDefault(),Ka();return}!X&&S.key.length===1&&S.key!==" "&&!S.ctrlKey&&!S.metaKey&&!S.altKey&&(S.preventDefault(),ke.focus(),R+=S.key,ke.value=R,jo());}});let Pa=w("kanuni-datagrid-filter-footer"),Zn=document.createElement("button");Zn.type="button",Zn.textContent=h.cancel,Zn.addEventListener("click",()=>He());let wt=document.createElement("button");wt.type="button",wt.className="kanuni-datagrid-filter-primary",wt.setAttribute("data-testid","dg-filter-apply"),wt.textContent=h.apply,wt.disabled=true,wt.addEventListener("click",Ka),Pa.append(Zn,wt),s.append(ke,...Ve?[Ve]:[],bt,de,Pa),Xe(),queueMicrotask(()=>{ke.isConnected&&ke.focus();});let Ga=S=>{r=S,z=null,ge="",c=false,wt.disabled=false;let X=datagridCore.selectedLabelsFromFilter(a.getColumnFilter(e,datagridCore.FILTER_PART_SET)??a.getColumnFilter(e,datagridCore.FILTER_PART_DEFAULT),r,{text:a.getColumnModel().getDataType(e)==="string"});X?(v=true,p=new Set(X)):v||(p=new Set(r.map(datagridCore.distinctEntryKey))),nn();let ie=Io.get(e);Xe(),ie&&(de.scrollTop=ie,Xe());},Mt=a.openRemoteDistinct(e,Tt);if(Mt){oe=Mt,i=Mt,Mt.subscribe(()=>{s.isConnected&&oe===Mt&&Xe();}),Mt.start().then(S=>{if(Ho!==n||!s.isConnected){Mt.dispose();return}if(S.kind==="paged"){c=false,wt.disabled=false;let X=Io.get(e);Xe(),X&&(de.scrollTop=X,Xe());return}Mt.dispose(),oe=null,i=null,Ga(a.sortDistinctEntries(S.values));});return}a.getDistinctValueSetAsync(e).then(S=>{Ho!==n||!s.isConnected||Ga(S.entries);});},void 0,e);let d=Vt;Vt=()=>{d?.(),i?.dispose(),i=null;};}function _n(e={}){let t=a.getClipboardText(e);a.notifyClipboardGesture("copy",t?t.split(`
2
+ `).length:0,()=>a.writeClipboard(t,"copy"));}function Wi(e){if(le===false)return [];let t=le===true?{}:le,o=[],n=d=>{e&&o.length===0&&o.push({separator:true,id:"__dg-sep"}),o.push(d);};t.copy!==false&&n({id:"__dg-copy",label:h.menuCopy,shortcut:`${Ui}C`,onSelect:()=>_n()}),t.copyWithHeaders!==false&&n({id:"__dg-copy-headers",label:h.menuCopyWithHeaders,onSelect:()=>_n({includeHeaders:true})}),t.copyWithGroupHeaders!==false&&qi()&&n({id:"__dg-copy-group-headers",label:h.menuCopyWithGroupHeaders,onSelect:()=>_n({includeGroupHeaders:true})});let i=(t.export===false?[]:Array.isArray(t.export)?t.export:["csv","excel","excel-selected","pdf"]).filter(d=>d!=="csv"||a.canExportAll());if(i.length>0){let d=a.getSelectedCount()===0,s={csv:h.exportCsv,excel:h.exportExcel,"excel-selected":h.exportExcelSelected,pdf:h.exportPdf};n({id:"__dg-export",label:h.menuExport,items:i.map(r=>({id:`__dg-export-${r}`,label:s[r],disabled:r==="excel-selected"&&d,onSelect:()=>{Qo(a,r).then(c=>{c.error&&Ao(c.error);});}}))});}return o}function qi(){let e=a.getColumnModel();return a.getVisualColumnIds().some(t=>{let o=e.getDef(t)?.band;return typeof o=="string"?o!=="":Array.isArray(o)&&o.length>0})}let Ui=/Mac|iPhone|iPad|iPod/.test(navigator.platform??"")?"\u2318":"Ctrl+";function Wn(e,t,o){let n=null,i=()=>{n?.remove(),n=null;};t.forEach((d,s)=>{if(d.separator){let b=w("kanuni-datagrid-menu-separator");b.setAttribute("role","separator"),e.appendChild(b);return}let r=w("kanuni-datagrid-menu-row"),c=document.createElement("button");if(c.type="button",c.className="kanuni-datagrid-menu-item",c.setAttribute("role","menuitem"),c.setAttribute("data-item-index",String(s)),d.disabled&&(c.disabled=true),d.icon!==void 0){let b=w("kanuni-datagrid-menu-icon","span");typeof d.icon=="string"?b.textContent=d.icon:b.appendChild(d.icon),c.appendChild(b);}let p=w("kanuni-datagrid-menu-label","span");if(p.textContent=d.label??"",c.appendChild(p),d.shortcut){let b=w("kanuni-datagrid-menu-shortcut","span");b.textContent=d.shortcut,c.appendChild(b);}let v=d.items??[];if(v.length>0){let b=w("kanuni-datagrid-menu-caret","span");b.textContent="\u203A",c.appendChild(b),c.setAttribute("aria-haspopup","menu"),c.setAttribute("aria-expanded","false");let R=()=>{i();let F=w("kanuni-datagrid-context-menu kanuni-datagrid-submenu");F.setAttribute("role","menu");let K=c.getBoundingClientRect();F.style.left=`${K.right}px`,F.style.top=`${Math.max(0,K.top-4)}px`;for(let I of v){if(I.separator){let $=w("kanuni-datagrid-menu-separator");$.setAttribute("role","separator"),F.appendChild($);continue}let m=document.createElement("button");m.type="button",m.className="kanuni-datagrid-menu-item",m.setAttribute("role","menuitem"),I.disabled&&(m.disabled=true);let y=w("kanuni-datagrid-menu-label","span");y.textContent=I.label??"",m.appendChild(y),m.addEventListener("click",()=>{I.onSelect?.(o),He();}),F.appendChild(m);}e.parentElement?.appendChild(F),ea(F,{left:K.right,top:Math.max(0,K.top-4)}),n=F,c.setAttribute("aria-expanded","true"),Zr(F,()=>{i(),c.setAttribute("aria-expanded","false"),c.focus();});};c.addEventListener("mouseenter",R),c.addEventListener("click",R);}else c.addEventListener("mouseenter",i),c.addEventListener("click",()=>{d.onSelect?.(o),He();});r.appendChild(c),e.appendChild(r);});}let oa=e=>{let o=e.target.closest(".kanuni-datagrid-row");if(!o||o.classList.contains("kanuni-datagrid-group-row"))return;let n=St(e);if(n?.columnId&&a.notifyCell("cellContextMenu",n.node,n.rowIndex,n.columnId),!ve&&!le&&!a.isRowPinningEnabled()||!n||n.node.kind!=="data")return;e.preventDefault(),a.isRowSelected(n.node.key)||a.handleRowClick(n.node.key,{}),n.columnId&&a.focusCell(n.node.key,n.columnId);let i={row:n.node.data,node:n.node,rowIndex:n.rowIndex,columnId:n.columnId,selectedKeys:a.getSelectedKeys()},d=(typeof ve=="function"?ve(i):ve)??[],s=[...d,...zi(i,d.length>0)],r=[...s,...Qr(n.node.key,s.length>0)],c=Wi(r.length>0);r.length===0&&c.length===0||mt({left:e.clientX,top:e.clientY},p=>{p.setAttribute("role","menu"),Wn(p,[...r,...c],i);},"kanuni-datagrid-context-menu");};function zi(e,t){if(!Nt?.onChange||Nt.menu===false)return [];let o=e.columnId;if(!o)return [];let n=e.node.key,i=To(n,o,e.row),d=[];return t&&d.push({separator:true,id:"__note-sep"}),d.push({id:"__note-edit",label:i?h.editNote:h.addNote,onSelect:()=>Yi(n,o,e.row,i??"")}),i&&d.push({id:"__note-delete",label:h.deleteNote,onSelect:()=>Nt.onChange?.({rowKey:n,columnId:o,row:e.row,text:null})}),d}function Yi(e,t,o,n){let d=(B.querySelector(`[data-row-key="${CSS.escape(String(e))}"] [data-column-id="${CSS.escape(t)}"]`)??B).getBoundingClientRect();queueMicrotask(()=>{mt({left:d.left,top:d.bottom+2},s=>{s.setAttribute("aria-label",h.noteEditorAria);let r=document.createElement("textarea");r.className="kanuni-datagrid-note-input",r.rows=4,r.value=n,r.setAttribute("aria-label",h.noteEditorAria),r.placeholder=h.notePlaceholder,r.setAttribute("data-testid","dg-note-input");let c=()=>{let R=r.value.trim();He(),Nt?.onChange?.({rowKey:e,columnId:t,row:o,text:R===""?null:R});};r.addEventListener("keydown",R=>{R.key==="Enter"&&(R.ctrlKey||R.metaKey)&&(R.preventDefault(),c()),R.key==="Escape"&&(R.preventDefault(),He());});let p=w("kanuni-datagrid-note-actions"),v=document.createElement("button");v.type="button",v.className="kanuni-datagrid-note-cancel",v.textContent=h.cancel,v.addEventListener("click",()=>He());let b=document.createElement("button");b.type="button",b.className="kanuni-datagrid-note-save",b.setAttribute("data-testid","dg-note-save"),b.textContent=h.save,b.addEventListener("click",c),p.append(v,b),s.append(r,p),queueMicrotask(()=>{r.focus(),r.select();});},"kanuni-datagrid-filter-popup kanuni-datagrid-note-editor");});}function ji(e){Pt!==e&&(Pt=e,e?(B.insertBefore(Ue,re),Po()):Ue.remove());}function Xi(e){if(nt!==e){if(nt=e,e){if(ut){let t=tt.isConnected?tt:qe.isConnected?qe:$e;Ie.insertBefore(Oe,t);}else Ie.append(Oe);Mo();}else Oe.remove();tt.style.setProperty("--dg-pinned-gap",String(Ft+(nt&&ut?1:0))),qe.style.setProperty("--dg-pinned-gap",String(Ft+(nt&&ut?1:0)));}}function Fo(e){let t=Zo(B,e);t!==null&&a.setColumnWidth(e,t);}function ra(e,t){let o=a.getColumnModel().getDef(e),n={columnId:e,headerName:o?.headerName??e},i=Jo(n,{controller:a,t:h,groupPanelVisible:Pt,footerVisible:nt,onToggleGroupPanel:()=>ji(!Pt),onToggleFooter:()=>Xi(!nt),onOpenFieldChooser:()=>aa(t),onBestFit:Fo,onBestFitAll:()=>{for(let s of a.getColumnStates())s.visible&&!s.flex&&Fo(s.id);},maxGroupLevels:Ct?Number.POSITIVE_INFINITY:1}),d=typeof Se=="function"?Se(n,i):i;d.length!==0&&mt(t,s=>{s.setAttribute("role","menu"),Wn(s,d,n);},"kanuni-datagrid-context-menu");}function Ji(e,t){let o=a.getColumnModel().getDef(e),n=a.getColumnSummary(e),i={columnId:e,headerName:o?.headerName??o?.field??e},d=[{id:"none",label:h.noTotal,disabled:n===null,onSelect:()=>a.setColumnSummary(e,null)},{id:"sep",separator:true},...datagridCore.allowedSummaryTypes(o?.dataType).map(s=>({id:s,label:co[s],disabled:n?.type===s,onSelect:()=>a.setColumnSummary(e,s)}))];mt(t,s=>{s.setAttribute("role","menu"),Wn(s,d,i);},"kanuni-datagrid-context-menu");}function aa(e){mt(e,t=>{t.setAttribute("role","dialog"),t.setAttribute("aria-label",h.columns);let o=w("kanuni-datagrid-chooser-title");o.textContent=h.columns,t.appendChild(o);let n=()=>a.getColumnStates().filter(R=>!datagridCore.isChromeColumn(R.id)),i=()=>n().filter(R=>!a.getColumnModel().getDef(R.id)?.hideInChooser),d=R=>a.getColumnModel().getDef(R)?.headerName??R,s="";if(i().length>8){let R=document.createElement("input");R.type="search",R.className="kanuni-datagrid-filter-search",R.placeholder=h.search,R.setAttribute("aria-label",h.search),R.addEventListener("input",()=>{s=R.value.trim().toLocaleLowerCase(),b();}),t.appendChild(R);}let r=w("kanuni-datagrid-filter-list");t.appendChild(r);let c=w("kanuni-datagrid-filter-footer"),p=document.createElement("button");p.type="button",p.textContent=h.showAll,p.addEventListener("click",()=>{for(let R of i())R.visible||a.setColumnVisible(R.id,true);b();});let v=document.createElement("button");v.type="button",v.className="kanuni-datagrid-filter-primary",v.textContent=h.ok,v.addEventListener("click",()=>He()),c.append(p,v),t.appendChild(c);function b(){let R=i(),F=n().filter(I=>I.visible).length;r.textContent="";let K=s?R.filter(I=>d(I.id).toLocaleLowerCase().includes(s)):R;if(K.length===0){let I=w("kanuni-datagrid-chooser-empty");I.textContent=h.noData,r.appendChild(I);}for(let I of K){let m=document.createElement("label");m.className="kanuni-datagrid-filter-item";let y=document.createElement("input");y.type="checkbox",y.checked=I.visible,y.disabled=I.visible&&F===1,y.setAttribute("data-column-toggle",I.id),y.addEventListener("change",()=>{a.setColumnVisible(I.id,y.checked),b();});let $=document.createElement("span");$.textContent=d(I.id),m.append(y,$),r.appendChild(m);}p.disabled=F===R.length;}b();},"kanuni-datagrid-filter-popup kanuni-datagrid-column-chooser");}let _t=null,Ko=null,qn=e=>{Ue.classList.toggle("kanuni-datagrid-group-panel--over",e);};function ia(e,t,o){let n=a.getGroupLevels();if(e===t)return;let i=n.filter(r=>r!==e),d=i.indexOf(t);if(d<0)return;let s=o==="before"?d:d+1;Ko=e,a.groupBy([...i.slice(0,s),e,...i.slice(s)]);}function la(e,t){let o=a.getGroupLevels(),n=o.indexOf(e),i=n+t;n<0||i<0||i>=o.length||ia(e,o[i],t===-1?"before":"after");}function da(e,t){if(!e)return;let o=a.getGroupLevels();if(o.includes(e))return;let n=Ct?Number.POSITIVE_INFINITY:1;if(o.length>=n){a.groupBy([...o.slice(0,n-1),e]);return}let i=t??o.length;a.groupBy([...o.slice(0,i),e,...o.slice(i)]);}function Po(){if(!Pt)return;Ue.textContent="";let e=a.getGroupLevels();if(e.length===0){let c=w("kanuni-datagrid-group-panel-hint","span");c.textContent=h.groupPanelHint??"Drag a column header here to group by it",Ue.appendChild(c);return}let t=c=>a.getColumnModel().getDef(c)?.headerName??c,o=w("kanuni-datagrid-group-levels"),n=(c,p)=>c<p.top+p.height/2?"before":"after",i=(c,p)=>{for(let v of Ue.querySelectorAll(".kanuni-datagrid-group-level"))v.classList.remove("kanuni-datagrid-group-level--drop-before","kanuni-datagrid-group-level--drop-after");c&&p&&c.classList.add(`kanuni-datagrid-group-level--drop-${p}`);};e.forEach((c,p)=>{let v=w("kanuni-datagrid-group-level");v.style.setProperty("--dg-group-level",String(p)),v.setAttribute("data-group-level",String(p));let b=w("kanuni-datagrid-group-chip");if(b.setAttribute("role","button"),b.tabIndex=0,e.length>1&&(b.draggable=true),b.setAttribute("aria-label",`${datagridCore.fillText(h.groupLevelAria,{n:p+1})}: ${t(c)}`),b.addEventListener("dragstart",K=>{_t=c,K.dataTransfer&&(K.dataTransfer.effectAllowed="move",K.dataTransfer.setData("text/x-kanuni-column",c));}),b.addEventListener("dragend",()=>{_t=null,i(null,null);}),b.addEventListener("keydown",K=>{let I=K.ctrlKey||K.metaKey;I&&(K.key==="ArrowUp"||K.key==="ArrowLeft")?(K.preventDefault(),la(c,-1)):I&&(K.key==="ArrowDown"||K.key==="ArrowRight")?(K.preventDefault(),la(c,1)):(K.key==="Delete"||K.key==="Backspace")&&(K.preventDefault(),a.groupBy(e.filter(m=>m!==c)));}),v.addEventListener("dragover",K=>{!_t&&!(K.dataTransfer?.types.includes("text/x-kanuni-column")??false)||(K.preventDefault(),K.stopPropagation(),i(v,n(K.clientY,v.getBoundingClientRect())));}),v.addEventListener("drop",K=>{K.preventDefault(),K.stopPropagation();let I=n(K.clientY,v.getBoundingClientRect());i(null,null),qn(false);let m=_t;if(_t=null,m){ia(m,c,I);return}let y=K.dataTransfer?.getData("text/x-kanuni-column");y&&da(y,I==="before"?p:p+1);}),e.length>1){let K=w("kanuni-datagrid-group-chip-level","span");K.textContent=String(p+1),b.appendChild(K);}let R=document.createElement("span");R.textContent=t(c);let F=document.createElement("button");F.type="button",F.setAttribute("aria-label",datagridCore.fillText(h.groupRemoveAria,{column:t(c)})),F.textContent="\xD7",F.addEventListener("click",()=>{a.groupBy(e.filter(K=>K!==c));}),F.draggable=false,b.append(R,F),v.appendChild(b),o.appendChild(v),Ko===c&&(Ko=null,queueMicrotask(()=>b.focus()));}),Ue.appendChild(o);let d=w("kanuni-datagrid-group-panel-actions"),s=document.createElement("button");s.type="button",s.textContent=h.groupExpandAll,s.addEventListener("click",()=>a.expandAllGroups());let r=document.createElement("button");r.type="button",r.textContent=h.groupCollapseAll,r.addEventListener("click",()=>a.collapseAllGroups()),d.append(s,r),Ue.appendChild(d);}if(Pt){let e=t=>t.dataTransfer?.types.includes("text/x-kanuni-column")??false;Ue.addEventListener("dragover",t=>{e(t)&&(t.preventDefault(),qn(true));}),Ue.addEventListener("dragleave",t=>{let o=t.relatedTarget;o&&Ue.contains(o)||qn(false);}),Ue.addEventListener("drop",t=>{qn(false);let o=t.dataTransfer?.getData("text/x-kanuni-column");if(o){if(t.preventDefault(),_t){_t=null;return}da(o);}});}let sa="";function ua(){if(!D)return;let e=[datagridCore.fillText(h.announceRows,{n:a.getVisibleCount()})],t=a.getSort();if(t.length>0){let i=t.map(d=>{let s=a.getColumnModel().getDef(d.columnId),r=s?.headerName??s?.field??d.columnId,c=d.direction==="desc"?h.announceDescending:h.announceAscending;return `${r} ${c}`}).join(", ");e.push(datagridCore.fillText(h.announceSortedBy,{columns:i}));}let o=a.getSelectedCount();o>0&&e.push(datagridCore.fillText(h.announceSelected,{n:o}));let n=e.join(", ");n!==sa&&(sa=n,un.textContent=n);}function ca(){if(!ae)return;Kt.textContent="";let e=datagridCore.describeFilter(a.getEffectiveFilter(),a.getColumnModel(),{...ye,labels:{...datagridCore.filterLabels(h),...ye?.labels}});if(!e&&ae!=="always"){Kt.style.display="none";return}Kt.style.display="";let t=a.isFilterEnabled();Kt.className=`kanuni-datagrid-filter-panel${t?"":" kanuni-datagrid-filter-panel--suspended"}`;let o=document.createElement("button");o.type="button",o.className="kanuni-datagrid-filter-panel-clear",o.title=h.filterRemove,o.setAttribute("aria-label",h.filterRemove),o.setAttribute("data-testid","dg-filter-panel-clear"),o.disabled=e===null,o.textContent="\xD7",o.addEventListener("click",()=>{a.setFilter(null),a.clearColumnFilters(),a.setFilterEnabled(true);});let n=document.createElement("input");n.type="checkbox",n.className="kanuni-datagrid-filter-panel-toggle",n.checked=t,n.disabled=e===null,n.title=h.filterToggle,n.setAttribute("aria-label",h.filterToggle),n.setAttribute("data-testid","dg-filter-panel-toggle"),n.addEventListener("change",()=>a.setFilterEnabled(n.checked));let i=w("kanuni-datagrid-filter-panel-text","span");if(i.setAttribute("data-testid","dg-filter-panel-text"),i.textContent=e??h.filterNone,e&&(i.title=e),Kt.append(o,n,i),Y){let d=document.createElement("button");d.type="button",d.className="kanuni-datagrid-filter-panel-builder",d.title=h.filterEditBuilder,d.setAttribute("aria-label",h.filterEditBuilder),d.setAttribute("data-testid","dg-filter-panel-builder"),d.textContent="\u25BE",d.addEventListener("click",()=>Y()),Kt.appendChild(d);}}let Go=new Set,Qi=a.events.on("cellsFlashed",({rowKeys:e,columnIds:t,duration:o})=>{let n=e.length?e.map(r=>`[data-row-key="${CSS.escape(String(r))}"]`).join(","):".kanuni-datagrid-row",i=t.length?t.map(r=>`[data-column-id="${CSS.escape(r)}"]`).join(","):"[data-column-id]",d=[];fe.querySelectorAll(n).forEach(r=>{r.querySelectorAll(i).forEach(c=>d.push(c));});for(let r of d)r.classList.remove("kanuni-datagrid-cell--flash");B.offsetWidth;for(let r of d)r.classList.add("kanuni-datagrid-cell--flash");let s=setTimeout(()=>{for(let r of d)r.classList.remove("kanuni-datagrid-cell--flash");Go.delete(s);},o);Go.add(s);});function St(e){let t=e.target,o=t.closest(".kanuni-datagrid-row");if(!o||!fe.contains(o))return null;let n=o.getAttribute("data-row-key");if(n===null)return null;let i=a.getRows(),d=i.findIndex(r=>r!==void 0&&String(r.key)===n);if(d===-1)return null;let s=t.closest(".kanuni-datagrid-cell")?.getAttribute("data-column-id")??null;return {node:i[d],rowIndex:d,columnId:s}}let pa=e=>{let t=St(e);t&&(P?.(t.node),a.notifyRow("rowClicked",t.node,t.rowIndex),t.columnId&&a.notifyCell("cellClicked",t.node,t.rowIndex,t.columnId));},fa=e=>{let t=St(e);if(t){if(Cr){let o=Wo(t,true);o&&Cr(o);}Ce?.(t.node),a.notifyRow("rowDoubleClicked",t.node,t.rowIndex),t.columnId&&a.notifyCell("cellDoubleClicked",t.node,t.rowIndex,t.columnId);}};fe.addEventListener("click",pa),fe.addEventListener("dblclick",fa);function Zi(e){let t=0,o=Ae.querySelector(`[data-column-id="${CSS.escape(e)}"]`);o&&(t=o.scrollWidth),fe.querySelectorAll(`[data-column-id="${CSS.escape(e)}"]`).forEach(n=>{n.scrollWidth>t&&(t=n.scrollWidth);}),t>0&&a.setColumnWidth(e,t+12,true);}function el(){if(Te)for(let e of Ae.querySelectorAll('[role="columnheader"][data-column-id]')){let t=Te(e.getAttribute("data-column-id"))??"",o=e.dataset.slotClass??"";if(t!==o){for(let n of o.split(" "))n&&e.classList.remove(n);for(let n of t.split(" "))n&&e.classList.add(n);e.dataset.slotClass=t;}}}function tl(){if(O)for(let e of Ae.querySelectorAll(".kanuni-datagrid-filter-button")){let t=e.parentElement?.getAttribute("data-column-id");t&&e.classList.toggle("kanuni-datagrid-filter-button--active",a.getColumnFilter(t)!==null);}}let $o=false,ga=false,tn=null;function Un(){tn!==null&&(clearTimeout(tn),tn=null);}function zn(e){sn.style.display=e?"":"none";}function Yn(){let e=a.getOverlay();if(Ln.style.display=e==="noRows"?"":"none",uo===false){Un(),zn(false);return}if(!(e==="loading"&&($o||!ga))){Un(),zn(false);return}if($o||yr<=0){Un(),zn(true);return}tn!==null||sn.style.display===""||(tn=setTimeout(()=>{tn=null,Be||zn(true);},yr));}let ma=false,Oo=false,Bo=false,Vo=false,Be=false,_o=new datagridCore.RowMotion;function nl(){if(Oo=false,!Be){if(Bo)Bo=false,Vo&&(Vo=false,ft++),Eo(),ko(),Lo(),Bn();else {let e=ze;Eo(),ze!==e?(ft++,ko(),Lo(),Bn()):a.getPinnedRows("top").length+a.getPinnedRows("bottom").length>0&&Bn();}Gn(),a.getAnimateRows()&&_o.play(fe),Gr(),Mo(),Jr(),tl(),el(),Po(),ca(),ua(),Yn();}}function jn(e){Be||(e&&(Bo=true),!Oo&&(Oo=true,queueMicrotask(nl)));}let ol=[...Q?[a.events.on("focusedRowChanged",e=>Q({rowKey:e.rowKey,row:e.row}))]:[],...Hd.map(e=>a.events.on(e,()=>jn(true))),...Fd.map(e=>a.events.on(e,()=>{Vo=true;})),...Kd.map(e=>a.events.on(e,()=>jn(false))),a.events.on("filterChanged",()=>Oi()),...["sortChanged","filterChanged","groupChanged","dataUpdated"].map(e=>a.events.on(e,()=>{a.getAnimateRows()&&_o.capture(fe);})),a.events.on("rowPinningChanged",()=>{Be||(Vi(),jn(true));}),a.events.on("overlayChanged",e=>{$o=e.manual===true&&e.overlay==="loading",Be||Yn();}),a.events.on("busyChanged",e=>{ga=e.background===true,Be||Yn();}),a.events.on("paginationChanged",()=>{Be||jn(false);}),a.events.on("bodyScroll",()=>{Be||Yr();}),a.events.on("cellsRefreshed",()=>{Be||Vr();}),a.events.on("scrollRequested",e=>{if(Be)return;e.scrollTop!==void 0&&(re.scrollTop=e.scrollTop),e.scrollLeft!==void 0&&(re.scrollLeft=e.scrollLeft),a.setScroll(re.scrollTop,Math.abs(re.scrollLeft));let t=e.scrollTop;t===void 0||Math.abs(re.scrollTop-t)<=1||setTimeout(()=>{Be||Math.abs(re.scrollTop-t)<=1||(re.scrollTop=t,a.setScroll(re.scrollTop,Math.abs(re.scrollLeft)));},0);}),...Me==="fitGrid"?[a.events.on("gridSizeChanged",()=>a.sizeColumnsToFit())]:[],...Me==="fitCells"?[a.events.on("firstDataRendered",()=>{Be||ma||(ma=true,queueMicrotask(()=>{if(!Be)for(let e of a.getColumnStates())e.visible&&!e.flex&&Fo(e.id);}));})]:[]];Me==="fitGrid"&&a.sizeColumnsToFit();function Wo(e,t=false){if(!e.columnId||e.node.kind!=="data"&&!(t&&e.node.kind==="group"))return null;let o=lt.find(n=>n.id===e.columnId);return o?{node:e.node,columnId:e.columnId,rowIndex:e.rowIndex,columnIndex:o.visualIndex,value:e.node.kind==="data"?a.getColumnModel().getCellValue(e.node.data,o.id):void 0}:null}let ba=e=>{let t=e.target;if(he){let r=St(e),c=r?Wo(r):null;c&&he(c,e);}let o=t.closest(".kanuni-datagrid-row");if(!o||o.classList.contains("kanuni-datagrid-group-row"))return;let n=o.getAttribute("data-row-key");if(n===null)return;let i=a.getRows().find(r=>r!==void 0&&String(r.key)===n);if(!i||i.kind!=="data")return;a.handleRowClick(i.key,{ctrlKey:e.ctrlKey||Ei&&!e.shiftKey,metaKey:e.metaKey,shiftKey:e.shiftKey});let d=t.closest(".kanuni-datagrid-cell"),s=d?lt.find(r=>d.id.endsWith(`-${r.id}`))?.id:void 0;s&&a.focusCell(i.key,s);},wa=e=>{if(!Ne)return;let o=e.target.closest(".kanuni-datagrid-cell");if(!o||!fe.contains(o)||e.relatedTarget?.closest?.(".kanuni-datagrid-cell")===o)return;let i=St(e),d=i?Wo(i):null;d&&Ne(d,e);};if(fe.addEventListener("mousedown",ba),fe.addEventListener("contextmenu",oa),Ne&&fe.addEventListener("mouseover",wa),pn&&($e.addEventListener("dragstart",ki),$e.addEventListener("dragover",Ri),$e.addEventListener("drop",xi),$e.addEventListener("dragend",Ti),$e.addEventListener("dragleave",Si)),B.tabIndex=0,It){Ze=ir({controller:a,element:B},_e,h,{surfaceClass:()=>ro(u).replace("kanuni-datagrid-root","").trim(),barHost:B},{isColumnEditable:t=>ja(a.getColumnModel().getDef(t),t)});let e=B.querySelector(':scope > [data-testid="dg-edit-bar"]');e&&B.insertBefore(e,B.firstChild),Ze.engine.setSavedDuration(rt?.savedDuration??0);}Vr();let ya=e=>{let t=Ze;if(!t||ln)return;let o=e.target;if(!o||!(o===B||o===re||fe.contains(o)))return;let n=o.tagName;n==="INPUT"||n==="TEXTAREA"||n==="SELECT"||o.isContentEditable||t.handleKeyDown(e)&&e.stopImmediatePropagation();};It&&B.addEventListener("keydown",ya,true);let ha=e=>{let t=e.target;if(t.tagName==="INPUT"||t.tagName==="TEXTAREA"||t.isContentEditable||ot.contains(t)||ct.contains(t)||t.closest?.('[data-testid="dg-edit-form"], [data-testid="dg-edit-bar"], [data-testid="dg-row-message"]')||Ae.contains(t))return;if((ve||le||a.isRowPinningEnabled())&&(e.key==="ContextMenu"||e.key==="F10"&&e.shiftKey)){let d=a.getFocus(),s=d?fe.querySelector(`[id="${CSS.escape(`${u.gridId}-cell-${String(d.rowKey)}-${d.columnId}`)}"]`):null;if(s){let r=s.getBoundingClientRect();s.dispatchEvent(new MouseEvent("contextmenu",{bubbles:true,cancelable:true,clientX:r.left+16,clientY:r.bottom})),e.preventDefault();}return}let o=datagridCore.resolveGridCommand({key:e.key,ctrlKey:e.ctrlKey,metaKey:e.metaKey,shiftKey:e.shiftKey,altKey:e.altKey});if(!o)return;if(o.type==="copy"){_n();return}if(o.type==="activate"){if(Ce){let d=a.getFocus(),s=d?a.getRows().find(r=>r!==void 0&&r.key===d.rowKey):void 0;s&&Ce(s);}o.preventDefault&&e.preventDefault();return}a.executeCommand(o),o.preventDefault&&e.preventDefault();let n=a.getFocusIndices();if(n){let s=a.getColumnLayout().center.findIndex(c=>c.state.id===a.getFocus()?.columnId),r=a.ensureVisible(n.rowIndex,s===-1?void 0:s);r&&(r.scrollTop!==void 0&&(re.scrollTop=r.scrollTop),r.scrollLeft!==void 0&&(re.scrollLeft=r.scrollLeft),a.setScroll(re.scrollTop,Math.abs(re.scrollLeft)));}let i=a.getFocus();B.setAttribute("aria-activedescendant",i?`${u.gridId}-cell-${String(i.rowKey)}-${i.columnId}`:"");};B.addEventListener("keydown",ha);let rl=mr?datagridCore.attachStateStoring(a,mr):null,Ca=typeof et=="object"?et.delay??400:400,va=et!==false&&!(typeof et=="object"&&et.enabled===false),al=typeof et=="object"?et.showOnTruncation!==false:true,Ea=typeof et=="object"?et.trigger??"hover":"hover",ka=va&&Ea!=="focus",qo=va&&Ea!=="hover",Xn=typeof et=="object"&&et.interactive===true,Ra=`${u.gridId}-tooltip`,Wt=null,Ye=null,je=null,qt=null,Uo=null;function Lt(){Ye&&clearTimeout(Ye),Ye=null,qt=null,zo();}function zo(){je&&clearTimeout(je),je=null,Uo?.removeAttribute("aria-describedby"),Uo=null,Wt?.remove(),Wt=null;}let il=e=>e.scrollWidth>e.clientWidth+1||e.scrollHeight>e.clientHeight+1;function ll(e){let o=e.closest(".kanuni-datagrid-row")?.getAttribute("data-row-key"),n=lt.find(p=>e.id.endsWith(`-${p.id}`));if(!o||!n)return null;let i=a.getRows().find(p=>p!==void 0&&String(p.key)===o);if(!i||i.kind!=="data")return null;let d=n.def,s=To(i.key,n.id,i.data);if(s)return s;let r={value:a.getColumnModel().getCellValue(i.data,n.id),row:i.data,node:i,column:d},c=d.renderTooltip;if(c){let p=c(r);return p===void 0||p===""?null:p}if(typeof d.tooltip=="function")return d.tooltip(r)??null;if(typeof d.tooltip=="string")return d.tooltip;if(d.tooltipField){let p=i.data[d.tooltipField];return p==null?null:String(p)}return al&&il(e)?e.textContent??null:null}function xa(e,t){let o=ll(e);if(o===null||o==="")return;zo();let n=e.getBoundingClientRect();Wt=w(`${ro(u)} kanuni-datagrid-portal`);let i=w(Xn?"kanuni-datagrid-tooltip kanuni-datagrid-tooltip--interactive":"kanuni-datagrid-tooltip");i.id=Ra,i.setAttribute("role","tooltip"),typeof o=="string"?i.textContent=o:i.appendChild(o),i.style.position="fixed",i.style.left=`${n.left}px`,i.style.top=`${n.bottom+4}px`,i.style.zIndex="1001",Xn&&(i.addEventListener("pointerenter",()=>{je&&clearTimeout(je),je=null,Ye&&clearTimeout(Ye),Ye=null;}),i.addEventListener("pointerleave",Lt)),Wt.appendChild(i),datagridCore.portalTarget(u.portalContainer).appendChild(datagridCore.markPortal(Wt,u.portalContainer,"tooltip")),t&&(e.setAttribute("aria-describedby",Ra),Uo=e);}let Ta=e=>{if(!ka)return;let t=e.target.closest(".kanuni-datagrid-cell");if(t&&t===qt){je&&clearTimeout(je),je=null;return}Xn&&Wt&&je?(Ye&&clearTimeout(Ye),Ye=null):Lt(),!(!t||!fe.contains(t))&&(qt=t,Ye=setTimeout(()=>{Ye=null,!(qt!==t||!t.isConnected)&&xa(t,false);},Ca));},Sa=e=>{if(!ka)return;let t=e.relatedTarget;if(!(qt&&t&&qt.contains(t))){if(!Xn||!Wt){Lt();return}je&&clearTimeout(je),je=setTimeout(zo,150);}};B.addEventListener("pointerover",Ta),B.addEventListener("pointerout",Sa),re.addEventListener("scroll",Lt,{passive:true});let La=-1/0,Aa=()=>{La=Date.now();};qo&&B.addEventListener("pointerdown",Aa);let dl=qo?a.events.on("focusChanged",()=>{Lt();let e=a.getFocus();e&&(Ye=setTimeout(()=>{if(Ye=null,!B.contains(document.activeElement)&&Date.now()-La>1500)return;let t=document.getElementById(`${u.gridId}-cell-${String(e.rowKey)}-${e.columnId}`);!t||!fe.contains(t)||(qt=t,xa(t,true));},Ca));}):null,Ma=e=>{e.key==="Escape"&&Lt();};qo&&B.addEventListener("keydown",Ma);let Da=()=>{if(a.setScroll(re.scrollTop,Math.abs(re.scrollLeft)),At)for(let e of Na())e.scroller.scrollLeft!==re.scrollLeft&&(e.scroller.scrollLeft=re.scrollLeft);};re.addEventListener("scroll",Da,{passive:true});let At=null,Na=()=>{if(!ue||!At)return [];let e=vn.get(ue);return e?[...e].filter(t=>t!==At):[]},Ia=null;if(ue){At={controller:a,scroller:re};let e=vn.get(ue)??new Set;e.add(At),vn.set(ue,e),Ia=a.events.on("columnStateChanged",()=>{if(pr.has(ue))return;let t=Na();if(t.length===0)return;let o=a.getColumnStates();pr.add(ue);try{for(let n of t)n.controller.applyColumnStates(o);}finally{pr.delete(ue);}});}let Ha=()=>{a.setViewportSize(re.clientWidth,re.clientHeight),an&&vi(datagridCore.cardViewWidth(re)),re.style.setProperty("--dg-viewport-width",`${re.clientWidth}px`);let e=$e.getBoundingClientRect(),t=Ie.getBoundingClientRect();a.setChromeOffsets(e.top-t.top,t.bottom-e.bottom),datagridCore.calibrateMaxScrollOffset(re,a);};Ha();let Jn=null;typeof ResizeObserver<"u"&&(Jn=new ResizeObserver(Ha),Jn.observe(re),Jn.observe(Ie)),Eo(),ko(),Lo(),Bi(),Bn(),Gn(),Mo(),Jr(),Po(),ca(),ua(),Yn(),Ot?.always&&Co(true);let Yo=null;if(Re){let e=null,t=()=>{let o=Ae.offsetHeight,n=o>0?`${o}px`:null;n!==e&&(e=n,n?Ie.style.setProperty("--dg-header-actual",n):Ie.style.removeProperty("--dg-header-actual"));};t(),typeof ResizeObserver<"u"&&(Yo=new ResizeObserver(t),Yo.observe(Ae));}return xr=true,{controller:a,element:B,setData:e=>a.setData(e),setColumns:e=>a.setColumns(e),destroy:()=>{if(!Be){if(Be=true,ol.forEach(e=>e()),mn.forEach(e=>e()),mn=[],Jn?.disconnect(),Yo?.disconnect(),Pr?.(),Qt&&(Qt=false,Yt--,Yt<=0&&(Yt=0,document.documentElement.classList.remove("kanuni-datagrid-printing"))),Ia?.(),ue&&At){let e=vn.get(ue);e?.delete(At),e&&e.size===0&&vn.delete(ue),At=null;}re.removeEventListener("scroll",Da),fe.removeEventListener("mousedown",ba),fe.removeEventListener("contextmenu",oa),tt.removeEventListener("contextmenu",Vn),_o.dispose(),vt.removeEventListener("contextmenu",Vn),Ne&&fe.removeEventListener("mouseover",wa),fe.removeEventListener("click",pa),fe.removeEventListener("dblclick",fa),Qi(),Xr?.(),Un();for(let e of Go)clearTimeout(e);B.removeEventListener("keydown",ha),B.removeEventListener("keydown",ya,true),Ze?.dispose(),Ze=null,B.removeEventListener("pointerover",Ta),B.removeEventListener("pointerout",Sa),B.removeEventListener("keydown",Ma),B.removeEventListener("pointerdown",Aa),dl?.(),re.removeEventListener("scroll",Lt),Lt(),rl?.(),He(false),a.dispose(),B.remove();}}}}function Wd(l){let u=document.createElement("button");u.type="button";let f={...l},M=()=>{let{icon:E,label:C,shortcut:A,disabledReason:L,showLabel:x,testId:Z}=f;if(u.className=`kanuni-datagrid-app-button${x?"":" kanuni-datagrid-toolbar-icon-button"}`,u.textContent="",typeof E=="string"?u.insertAdjacentHTML("afterbegin",E):u.appendChild(E),x){let H=document.createElement("span");H.textContent=C,u.appendChild(H),u.removeAttribute("aria-label");}else u.setAttribute("aria-label",C);let U=A?`${C} (${A})`:C;u.title=L!==void 0?`${U} \u2014 ${L}`:U,A?u.setAttribute("aria-keyshortcuts",A):u.removeAttribute("aria-keyshortcuts"),L!==void 0?(u.setAttribute("aria-disabled","true"),u.setAttribute("aria-description",L)):(u.removeAttribute("aria-disabled"),u.removeAttribute("aria-description")),Z&&u.setAttribute("data-testid",Z);};return u.addEventListener("click",E=>{if(f.disabledReason!==void 0){E.preventDefault();return}f.onClick?.();}),u.update=E=>{f={...f,...E},M();},M(),u}Object.defineProperty(exports,"DENSITY_ROW_HEIGHT",{enumerable:true,get:function(){return datagridCore.DENSITY_ROW_HEIGHT}});Object.defineProperty(exports,"GRID_COLOR_SCHEMES",{enumerable:true,get:function(){return datagridCore.GRID_COLOR_SCHEMES}});Object.defineProperty(exports,"THEME_ROW_HEIGHT",{enumerable:true,get:function(){return datagridCore.THEME_ROW_HEIGHT}});Object.defineProperty(exports,"isPackagedTheme",{enumerable:true,get:function(){return datagridCore.isPackagedTheme}});Object.defineProperty(exports,"presetRowHeight",{enumerable:true,get:function(){return datagridCore.presetRowHeight}});exports.CHECKBOX_COLUMN_WIDTH=ao;exports.DETAIL_COLUMN_WIDTH=kn;exports.PRINT_MAX_ROWS=li;exports.ROW_DRAG_MIME=io;exports.ROW_NUMBER_COLUMN_WIDTH=En;exports.attachCellEditing=ir;exports.buildCellEditor=nr;exports.buildDateEditor=Ut;exports.buildEditForm=rr;exports.buildHeaderMenu=Jo;exports.createGrid=_d;exports.measureBestFitWidth=Zo;exports.openConfirmDialog=or;exports.toolbarButton=Wd;