@kanunilabs/datagrid 1.9.12 → 1.9.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
1
  'use strict';var datagridCore=require('@kanunilabs/datagrid-core');function er(l,u){let{controller:f,maxGroupLevels:T,t:v}=u,y=l.columnId,S=f.getColumnModel().getDef(y),A=f.getSort(),R=A.find(O=>O.columnId===y),z=f.getGroupLevels(),q=z.includes(y),N=S?.sortable!==false,V=f.getColumnStates().find(O=>O.id===y)?.pinned??null,se=S?.groupable!==false,W=f.canGroup(),le=[{id:"sort-asc",label:v.sortAsc,disabled:!N||R?.direction==="asc",onSelect:()=>f.setSort([{columnId:y,direction:"asc"}])},{id:"sort-desc",label:v.sortDesc,disabled:!N||R?.direction==="desc",onSelect:()=>f.setSort([{columnId:y,direction:"desc"}])},{id:"sort-clear",label:v.clearSort,disabled:!R,onSelect:()=>f.setSort(A.filter(O=>O.columnId!==y))},{id:"sep-1",separator:true},{id:"group",label:q?v.ungroupColumn:v.groupByColumn,disabled:!se,onSelect:()=>{q?f.groupBy(z.filter(O=>O!==y)):f.groupBy([...z,y].slice(-T));}},{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(O=>O.visible).length<=1,onSelect:()=>f.setColumnVisible(y,false)},{id:"field-chooser",label:v.fieldChooser,onSelect:u.onOpenFieldChooser},{id:"sep-3",separator:true},{id:"best-fit",label:v.bestFit,disabled:S?.resizable===false,onSelect:()=>u.onBestFit(y)},{id:"best-fit-all",label:v.bestFitAll,onSelect:u.onBestFitAll}],ee=f.getColumnStates().filter(O=>O.visible&&O.pinned===V).map(O=>O.id),Ee=ee.indexOf(y),M=S?.reorderable!==false&&Ee>=0;return le.push({id:"sep-4",separator:true},{id:"move-left",label:v.moveLeft,disabled:!M||Ee<=0,onSelect:()=>f.moveColumn(y,ee[Ee-1])},{id:"move-right",label:v.moveRight,disabled:!M||Ee<0||Ee>=ee.length-1,onSelect:()=>f.moveColumn(y,ee[Ee+2])},{id:"fixed-position",label:v.fixedPosition,items:[{id:"pin-left",label:v.pinLeft,disabled:V==="left",onSelect:()=>f.setColumnPinned(y,"left")},{id:"pin-right",label:v.pinRight,disabled:V==="right",onSelect:()=>f.setColumnPinned(y,"right")},{id:"pin-sticky",label:v.pinSticky,disabled:V==="sticky",onSelect:()=>f.setColumnPinned(y,"sticky")}]},{id:"unpin",label:v.unpin,disabled:V===null,onSelect:()=>f.setColumnPinned(y,null)}),W?le:le.filter(O=>O.id!=="group"&&O.id!=="group-panel")}async function tr(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 Ua=44,za=20,Ya=48,ja=640,qa=null;function Xa(){return typeof document>"u"?null:(qa??=document.createElement("canvas"),qa.getContext("2d"))}function no(l){let u=getComputedStyle(l);return `${u.fontStyle} ${u.fontWeight} ${u.fontSize} ${u.fontFamily}`}function Tl(l){for(let u=l.firstElementChild;u;u=u.nextElementSibling)if(u.tagName!=="MARK")return true;return false}function Ll(l){let u=l.map(T=>[T.style.width,T.style.minWidth,T.style.maxWidth]);for(let T of l)T.style.width="max-content",T.style.minWidth="0",T.style.maxWidth="none";let f=0;for(let T of l){let v=Math.ceil(T.getBoundingClientRect().width);v>f&&(f=v);}return l.forEach((T,v)=>{[T.style.width,T.style.minWidth,T.style.maxWidth]=u[v];}),f}function oo(l,u){let f=Xa();if(!f)return null;let T=datagridCore.cssEscape(u),v=l.querySelector(`.kanuni-datagrid-header-cell[data-column-id="${T}"]`),y=l.querySelectorAll(`.kanuni-datagrid-cell[data-column-id="${T}"]`);if(!v&&y.length===0)return null;let S=0;if(v){let A=v.querySelector(".kanuni-datagrid-header-label")??v;f.font=no(A),S=f.measureText(A.textContent??"").width+Ua;}if(y.length>0){f.font=no(y[0]);let A=[];for(let R=0;R<y.length;R++){if(Tl(y[R])){A.push(y[R]);continue}let z=y[R].textContent??"";if(z==="")continue;let q=f.measureText(z).width+za;q>S&&(S=q);}A.length>0&&(S=Math.max(S,Ll(A)));}return S===0?null:Math.round(Math.min(ja,Math.max(Ya,S)))}function Sl(l,u,f){let T=Xa();if(!T)return null;let v=l.querySelector(".kanuni-datagrid-header-label"),y=l.querySelector(".kanuni-datagrid-cell[data-column-id]"),S=0;v&&(T.font=no(v)),S=T.measureText(u).width+Ua,y&&(T.font=no(y));for(let A of f){if(A==="")continue;let R=T.measureText(A).width+za;R>S&&(S=R);}return Math.round(Math.min(ja,Math.max(Ya,S)))}function Ja(l,u){let f=new Map,T=[];for(let R of u.getColumnStates()){if(!R.visible||R.flex)continue;let z=oo(l,R.id);z!==null?f.set(R.id,z):T.push(R.id);}if(T.length===0)return f;let{start:v,end:y}=u.getVirtualWindow().rows,S=[];u.forEachDisplayedNode((R,z)=>{z>=v&&z<y&&R.kind==="data"&&S.push(R.data);});let A=u.getColumnModel();for(let R of T){let z=A.getDef(R),q=S.map(V=>datagridCore.cellDisplayText(z,A.getCellValue(V,R),V)),N=Sl(l,z?.headerName??R,q);N!==null&&f.set(R,N);}return f}function ei(l){let u=Number(l.weekStartsOn);return Number.isInteger(u)&&u>=0&&u<=6?u:0}function Gl(l){let u=[l.weekdaySu,l.weekdayMo,l.weekdayTu,l.weekdayWe,l.weekdayTh,l.weekdayFr,l.weekdaySa],f=ei(l);return [...u.slice(f),...u.slice(0,f)]}function $l(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 Ol(l,u){return !l||!u?false:l.getFullYear()===u.getFullYear()&&l.getMonth()===u.getMonth()&&l.getDate()===u.getDate()}var Za="http://www.w3.org/2000/svg";function Bl(){let l=document.createElementNS(Za,"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(Za,"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 Yt(l){let{t:u,format:f=datagridCore.DEFAULT_DATE_FORMAT,autoFocus:T=true}=l,v=$l(u),y=Gl(u),S=document.createElement("span");S.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 R=null,z=false,q=null,N=datagridCore.toDate(l.value),V=N??new Date,se=()=>R===null?datagridCore.formatDateValue(l.value,f):datagridCore.maskDate(R,f),W=()=>R===null?null:datagridCore.parseDateValue(datagridCore.maskDate(R,f),f),le=()=>R!==null&&R.length===datagridCore.dateDigitCount(f)&&W()===null,ee=()=>{let G=le()||!!l.invalid;A.className=`kanuni-datagrid-editor${G?" kanuni-datagrid-editor--invalid":""}`,G?A.setAttribute("aria-invalid","true"):A.removeAttribute("aria-invalid");};A.value=se(),ee();let Ee=G=>{if(G===null){l.onChange(null);return}l.onChange(l.value instanceof Date?G:datagridCore.toIsoDate(G));},M=()=>{if(!q)return;if(!A.isConnected){Q();return}let G=A.getBoundingClientRect(),Le=datagridCore.placeAnchoredLayer({anchor:{left:G.left,top:G.top,bottom:G.bottom},width:q.offsetWidth,height:q.offsetHeight,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight});q.style.left=`${Le.left}px`,q.style.top=`${Le.top}px`;},O=()=>M();function J(){if(!q)return;q.textContent="";let G=document.createElement("div");G.className="kanuni-datagrid-date-popup-head";let Le=document.createElement("button");Le.type="button",Le.setAttribute("aria-label",u.datePreviousMonth),Le.setAttribute("data-testid","dg-date-prev"),Le.textContent="\u2039",Le.addEventListener("click",()=>{V=new Date(V.getFullYear(),V.getMonth()-1,1),J();});let Ne=document.createElement("span");Ne.setAttribute("data-testid","dg-date-title"),Ne.textContent=`${v[V.getMonth()]} ${V.getFullYear()}`;let ue=document.createElement("button");ue.type="button",ue.setAttribute("aria-label",u.dateNextMonth),ue.setAttribute("data-testid","dg-date-next"),ue.textContent="\u203A",ue.addEventListener("click",()=>{V=new Date(V.getFullYear(),V.getMonth()+1,1),J();}),G.append(Le,Ne,ue);let g=document.createElement("div");g.className="kanuni-datagrid-date-popup-grid",g.setAttribute("role","grid");for(let ce of y){let X=document.createElement("span");X.className="kanuni-datagrid-date-weekday",X.setAttribute("role","columnheader"),X.textContent=ce,g.appendChild(X);}let D=(new Date(V.getFullYear(),V.getMonth(),1).getDay()-ei(u)+7)%7,we=datagridCore.daysInMonth(V.getFullYear(),V.getMonth()+1);for(let ce=0;ce<42;ce++){let X=ce-D+1,ge=new Date(V.getFullYear(),V.getMonth(),X),ye=X<1||X>we,Ce=Ol(ge,W()??N),U=document.createElement("button");U.type="button",U.setAttribute("role","gridcell"),U.className=`kanuni-datagrid-date-day${ye?" kanuni-datagrid-date-day--outside":""}${Ce?" kanuni-datagrid-date-day--selected":""}`,U.setAttribute("aria-selected",String(Ce)),U.setAttribute("data-testid","dg-date-day"),U.setAttribute("data-date",datagridCore.toIsoDate(ge)),U.textContent=String(ge.getDate()),U.addEventListener("click",()=>_(ge)),g.appendChild(U);}q.append(G,g);}function de(){if(z)return;z=true,Z.setAttribute("aria-expanded","true"),V=W()??N??new Date,q=document.createElement("div"),q.className=`kanuni-datagrid-detached kanuni-datagrid-date-popup${l.surfaceClass?` ${l.surfaceClass}`:""}`,q.style.position="fixed",q.setAttribute("data-testid","dg-date-calendar"),q.setAttribute("role","dialog"),q.setAttribute("aria-label",l.ariaLabel?`${l.ariaLabel} ${u.dateCalendar}`:u.dateCalendar),q.addEventListener("mousedown",Le=>Le.preventDefault());let G=datagridCore.portalContainerFor(S);datagridCore.portalTarget(G).appendChild(datagridCore.markPortal(q,G)),window.addEventListener("scroll",O,true),window.addEventListener("resize",O),l.onPortalOpen?.(Q),J(),M();}function Q(){z&&(z=false,Z.setAttribute("aria-expanded","false"),window.removeEventListener("scroll",O,true),window.removeEventListener("resize",O),q?.remove(),q=null);}function _(G){R=null,Q(),Ee(G),A.value=datagridCore.formatDateValue(l.value instanceof Date?G:datagridCore.toIsoDate(G),f),ee(),A.focus({preventScroll:true});}function te(){if(R===null)return;if(R.length===0){Ee(null),R=null,A.value=se(),ee();return}let G=W();G&&Ee(G),R=null,A.value=se(),ee();}A.addEventListener("input",()=>{R=datagridCore.dateDigits(A.value,f),A.value=datagridCore.maskDate(R,f),ee();}),A.addEventListener("keydown",G=>{if(G.key==="Escape"){if(G.preventDefault(),G.stopPropagation(),z){Q();return}R=null,l.onCancel();return}if(z){let Le=G.key==="ArrowLeft"?-1:G.key==="ArrowRight"?1:G.key==="ArrowUp"?-7:G.key==="ArrowDown"?7:0;if(Le!==0){G.preventDefault(),G.stopPropagation();let Ne=W()??N??new Date,ue=new Date(Ne.getFullYear(),Ne.getMonth(),Ne.getDate()+Le);R=datagridCore.dateDigits(datagridCore.formatDateValue(ue,f),f),A.value=datagridCore.maskDate(R,f),V=ue,J(),ee();return}if(G.key==="Enter"){G.preventDefault(),G.stopPropagation();let Ne=W();Q(),Ne&&_(Ne);return}}if(G.key==="Enter"){G.preventDefault(),G.stopPropagation(),te(),l.onCommit();return}if(G.key==="Tab"){te(),Q(),l.onTab&&(G.preventDefault(),G.stopPropagation(),l.onTab(G.shiftKey));return}if(G.key.length===1&&!G.ctrlKey&&!G.metaKey&&!/\d/.test(G.key)){G.preventDefault();return}G.stopPropagation();}),A.addEventListener("blur",()=>{z||te();});let Z=document.createElement("button");return Z.type="button",Z.className="kanuni-datagrid-date-button",Z.setAttribute("aria-label",l.ariaLabel?`${l.ariaLabel} \u2014 ${u.dateOpenCalendar}`:u.dateOpenCalendar),Z.setAttribute("aria-expanded","false"),Z.setAttribute("data-testid","dg-date-open"),l.disabled&&(Z.disabled=true),Z.tabIndex=-1,Z.addEventListener("mousedown",G=>G.preventDefault()),Z.addEventListener("click",()=>{z?Q():de(),A.focus({preventScroll:true});}),Z.appendChild(Bl()),S.append(A,Z),T&&queueMicrotask(()=>{A.isConnected&&(A.focus({preventScroll:true}),A.select());}),S}function ti(l,u){return l==null?"":u==="date"&&l instanceof Date?l.toISOString().slice(0,10):String(l)}function ni(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 rr(l){let{value:u,dataType:f,error:T,seeded:v=false}=l,y=document.createDocumentFragment();if(l.options===null){let R=document.createElement("input");return R.type="text",R.value="\u2026",R.readOnly=true,R.disabled=true,R.className="kanuni-datagrid-editor",R.setAttribute("data-testid","dg-cell-editor"),y.appendChild(R),y}if(l.options&&l.options.length>0&&l.renderLookup)return y.appendChild(l.renderLookup({options:l.options,value:u,matchMode:l.matchMode,allowCustom:l.allowCustom,invalid:!!T,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:R=>l.onTab(R?-1:1)})),ni(y,T);if(f==="date"&&l.t)return y.appendChild(Yt({value:u,format:l.dateFormat,invalid:!!T,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:R=>l.onTab(R?-1:1)})),ni(y,T);let S=document.createElement("input");S.className=`kanuni-datagrid-editor${T?" kanuni-datagrid-editor--invalid":""}`,S.setAttribute("data-testid","dg-cell-editor"),S.setAttribute("aria-invalid",String(!!T)),T&&S.setAttribute("aria-errormessage","kanuni-datagrid-editor-error");let A=false;if(f==="boolean"?(S.type="checkbox",S.checked=u===true,S.addEventListener("change",()=>l.onChange(S.checked))):f==="number"?(S.type=Number.isNaN(Number(u))&&u!==null&&u!==void 0&&u!==""?"text":"number",S.value=ti(u,f),S.addEventListener("input",()=>l.onChange(S.value===""?null:Number(S.value)))):(S.type="text",S.value=ti(u,f),S.addEventListener("input",()=>l.onChange(S.value))),S.addEventListener("keydown",R=>{R.isComposing||R.keyCode===229||(R.key==="Enter"?(R.preventDefault(),R.stopPropagation(),l.onCommit(R.shiftKey?"none":"down")):R.key==="Tab"?(R.preventDefault(),R.stopPropagation(),A=true,l.onTab(R.shiftKey?-1:1)):R.key==="Escape"?(R.preventDefault(),R.stopPropagation(),l.onCancel()):R.stopPropagation());}),S.addEventListener("blur",()=>{A||l.onCommit("none");}),y.appendChild(S),T){let R=document.createElement("span");R.id="kanuni-datagrid-editor-error",R.setAttribute("role","alert"),R.className="kanuni-datagrid-editor-error",R.textContent=T,y.appendChild(R);}return queueMicrotask(()=>{if(S.isConnected&&(S.focus({preventScroll:true}),S.type!=="checkbox"))if(v){if(S.type==="text"||S.type==="search"){let R=S.value.length;S.setSelectionRange(R,R);}}else S.select();}),y}var ql=0;function ar(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 T=document.activeElement,v=W=>{document.removeEventListener("keydown",y,true);let le=f.contains(document.activeElement);f.remove(),le&&T?.isConnected&&T.focus({preventScroll:true}),u(W);},y=W=>{if(W.key==="Escape"){W.stopPropagation(),v(false);return}if(W.key==="Tab"){let le=Array.from(N.querySelectorAll("button:not([disabled])"));if(le.length===0)return;let ee=le.indexOf(document.activeElement),Ee=W.shiftKey?ee<=0?le.length-1:ee-1:ee===le.length-1?0:ee+1;W.preventDefault(),W.stopPropagation(),le[Ee].focus();}};document.addEventListener("keydown",y,true);let S=document.createElement("div");S.className="kanuni-datagrid-dialog-overlay",S.addEventListener("mousedown",()=>v(false));let A=document.createElement("div");A.className="kanuni-datagrid-dialog",A.setAttribute("role","alertdialog"),A.setAttribute("aria-modal","true");let R=`dg-dialog-${++ql}`;A.setAttribute("aria-labelledby",`${R}-title`),A.setAttribute("aria-describedby",`${R}-message`),A.setAttribute("data-testid","dg-dialog");let z=document.createElement("div");z.className="kanuni-datagrid-dialog-title",z.id=`${R}-title`,z.textContent=l.title;let q=document.createElement("div");q.className="kanuni-datagrid-dialog-message",q.id=`${R}-message`,q.textContent=l.message;let N=document.createElement("div");if(N.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)),N.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)),N.appendChild(V),A.append(z,q,N),f.append(S,A);let se=datagridCore.portalContainerFor(l.anchor);datagridCore.portalTarget(se).appendChild(datagridCore.markPortal(f,se)),V.focus();})}function Ul(l,u){switch(l){case "number":return u==null||u===""||!Number.isNaN(Number(u))?"number":"text";case "boolean":return "checkbox";default:return "text"}}function zl(l,u){if(u==="number"){if(l==="")return null;let f=Number(l);return Number.isNaN(f)?l:f}return l}function ir(l){let{t:u,popup:f=false,inline:T=false}=l,v=document.createElement("div");v.className=`kanuni-datagrid-edit-form${T?" 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 y=document.createElement("div");y.className="kanuni-datagrid-edit-form-header";let S=document.createElement("strong");S.textContent=l.isNew?u.formAddTitle:u.formEditTitle,y.appendChild(S);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 R=document.createElement("div");R.className="kanuni-datagrid-edit-form-fields";let z=new Map,q=(M,O)=>{let J=l.getValue(M.columnId),de=l.getSaving()||!M.editable,Q=`dg-field-${String(l.rowKey)}-${M.columnId}`;if(M.lookup&&!l.renderLookup){let te=document.createElement("input");te.id=Q,te.type="text",te.className="kanuni-datagrid-edit-form-input",te.setAttribute("data-testid",Q),te.disabled=true,te.readOnly=true;let Z=M.lookup.options?.find(G=>Object.is(G.value,J));return te.value=Z?Z.label:J==null?"":String(J),te}if(M.lookup&&l.renderLookup){let te=document.createElement("div");if(te.className="kanuni-datagrid-edit-form-lookup",M.lookup.options===null){let Z=document.createElement("input");return Z.type="text",Z.value="\u2026",Z.readOnly=true,Z.disabled=true,Z.className="kanuni-datagrid-editor",Z.setAttribute("data-testid",Q),te.appendChild(Z),te}return te.appendChild(l.renderLookup({options:M.lookup.options,value:J,matchMode:M.lookup.matchMode,allowCustom:M.lookup.allowCustom,invalid:!!O,autoFocus:false,testId:Q,columnId:M.columnId,ariaLabel:M.label,surfaceClass:l.surfaceClass,onPortalOpen:l.onPortalOpen,noMatchText:u.editNoMatch,onChange:Z=>l.onChange(M.columnId,Z),commitOnPick:false,onCommit:()=>l.onSave(),onCancel:l.onCancel})),te}if(M.dataType==="date"){let te=document.createElement("div");return te.className="kanuni-datagrid-edit-form-lookup",te.appendChild(Yt({value:J,format:M.dateFormat,invalid:!!O,disabled:de,autoFocus:false,testId:Q,columnId:M.columnId,ariaLabel:M.label,surfaceClass:l.surfaceClass,onPortalOpen:l.onPortalOpen,t:u,onChange:Z=>l.onChange(M.columnId,Z),onCommit:()=>l.onSave(),onCancel:l.onCancel})),te}let _=document.createElement("input");return _.id=Q,_.className="kanuni-datagrid-edit-form-input",_.setAttribute("data-testid",Q),_.disabled=de,M.dataType==="boolean"?(_.type="checkbox",_.checked=J===true,_.addEventListener("change",()=>l.onChange(M.columnId,_.checked)),_):(_.type=Ul(M.dataType,J),O&&_.setAttribute("aria-invalid","true"),_.value=J==null?"":String(J),_.addEventListener("input",()=>l.onChange(M.columnId,zl(_.value,M.dataType))),_)},N=l.getErrors();for(let M of l.fields){let O=document.createElement("label");O.className="kanuni-datagrid-edit-form-field",O.setAttribute("data-field-id",M.columnId);let J=document.createElement("span");J.className="kanuni-datagrid-edit-form-label",J.textContent=M.label;let de=document.createElement("span");de.style.display="contents",de.appendChild(q(M,N[M.columnId]??null));let Q=document.createElement("span");Q.className="kanuni-datagrid-edit-form-message",Q.setAttribute("role","alert"),Q.style.display="none",O.append(J,de,Q),R.appendChild(O),z.set(M.columnId,{wrap:O,message:Q,controlHost:de,field:M});}let V=document.createElement("div");V.className="kanuni-datagrid-edit-form-footer";let se=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}",se?"\u2318":"Ctrl");let le=document.createElement("button");le.type="button",le.setAttribute("data-testid","dg-form-cancel"),le.textContent=u.cancel,le.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,le,ee),v.append(y,A,R,V),v.addEventListener("keydown",M=>{if(M.key==="Escape"){M.preventDefault(),M.stopPropagation(),l.onCancel();return}if(M.key==="Enter"&&(M.ctrlKey||M.metaKey)){M.preventDefault(),M.stopPropagation(),l.onSave();return}if(M.key==="Enter"&&!(M.target instanceof HTMLButtonElement)){M.preventDefault();return}if(M.key!=="Tab"||!f)return;let O=Array.from(v.querySelectorAll("input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled])"));if(O.length===0)return;let J=O[0],de=O[O.length-1];!M.shiftKey&&document.activeElement===de?(M.preventDefault(),J.focus()):M.shiftKey&&document.activeElement===J&&(M.preventDefault(),de.focus());});let Ee=()=>{let M=l.getErrors(),O=l.getSaving(),J=l.getSaveError();A.textContent=J??"",A.style.display=J?"":"none",ee.disabled=O,le.disabled=O,ee.textContent=O?u.editSaving:u.save;for(let[Q,_]of z){let te=M[Q]??null;_.message.textContent=te??"",_.message.style.display=te?"":"none",te?_.wrap.setAttribute("data-invalid",""):_.wrap.removeAttribute("data-invalid");let Z=_.controlHost.querySelector("input, .kanuni-datagrid-editor");Z&&Z.classList.toggle("kanuni-datagrid-editor--invalid",!!te);}let de=Object.keys(M)[0];de&&z.get(de)?.wrap.querySelector("input:not([disabled])")?.focus();};return queueMicrotask(()=>{if(!v.isConnected)return;let M=v.querySelector("input:not([disabled]), select:not([disabled]), textarea:not([disabled])");M?.focus(),M instanceof HTMLInputElement&&M.type==="text"&&M.select(),l.onNaturalHeight&&l.onNaturalHeight(v.clientHeight-R.clientHeight+R.scrollHeight);}),{element:v,refresh:Ee,setLookupOptions:(M,O)=>{let J=z.get(M);if(!J)return;J.field.lookup={...J.field.lookup,options:O};let de=l.getErrors();J.controlHost.textContent="",J.controlHost.appendChild(q(J.field,de[M]??null));},dispose:()=>v.remove()}}function ri(l){let{grid:u,engine:f,mode:T,t:v,extension:y}=l,S=u.controller,A=datagridCore.isRowEditMode(T),R=null,z=async()=>{R=null;let k=await f.saveChanges();if(k.saved||k.superseded){U();return}R={message:k.error??v.editSaveFailed,rowKey:k.rowKey,columnId:k.columnId},U(),k.rowKey!==void 0&&k.columnId!==void 0&&(S.revealRow(k.rowKey),S.focusCell(k.rowKey,k.columnId));},q=()=>{R=null,f.cancelChanges();},N=null,V=null,se=null,W=null,le=null,ee=new Map,Ee=0,M=k=>(N=null,f.beginRowEdit(k)),O=null,J=(k,P,oe)=>!A||f.isEditingRow()||!f.canEditRow(k)||(S.scrollToCell(k,P),!M(k))?false:(T==="row"&&oe!==void 0&&(O=P,f.setRowEditValue(P,oe)),true),de=async()=>{if(!f.getRowSession())return false;let P=await f.saveRowEdit(S.getVisualColumnIds());return N=P.saved?null:P.error??null,P.saved?l.focusGrid():be(),P.saved},Q=()=>{N=null,f.cancelRowEdit(),l.focusGrid();},_=k=>{let P=S.getColumnLayout(),oe=S.getColumnModel(),Re=++Ee;return [...P.left,...P.center,...P.right].filter(he=>!datagridCore.isChromeColumn(he.state.id)).map(he=>{let ve=he.state.id,Pe=oe.getDef(ve),at=y.formLookup?y.formLookup(k,ve,it=>{Ee===Re&&se?.setLookupOptions(ve,it);}):Pe?.lookup?{options:datagridCore.staticLookupItems(Pe)??[]}:void 0;return {columnId:ve,label:Pe?.headerName??Pe?.field??ve,dataType:oe.getEditorDataType(ve),editable:f.canUpdate(k,ve),dateFormat:Pe?.dateFormat,lookup:at}})},te=()=>le??l.formHeight??datagridCore.DEFAULT_EDIT_FORM_HEIGHT,Z=(k,P)=>ir({rowKey:k,fields:_(k),getValue:oe=>f.rowEditValue(oe),getErrors:()=>f.getRowSession()?.errors??{},getSaving:()=>f.getRowSession()?.saving??false,getSaveError:()=>N,isNew:f.getRowSession()?.isNew??false,popup:!P,inline:P,surfaceClass:l.surfaceClass(),renderLookup:y.renderLookup,onPortalOpen:l.trackPortal,t:v,onNaturalHeight:P?oe=>{let Re=Math.ceil(oe);if(Re>0&&Re!==le){le=Re;let he=f.getRowSession();he&&T==="form"&&S.setEditFormRow(he.rowKey,{height:te(),atTop:he.isNew});}}:void 0,onChange:(oe,Re)=>f.setRowEditValue(oe,Re),onSave:()=>{de();},onCancel:Q}),G=()=>{ee.clear(),se?.dispose(),se=null,W?.remove(),W=null;};function Le(){if(!A)return;let k=f.getRowSession();if(k&&T!=="row"?u.element.setAttribute("data-row-session",T):u.element.removeAttribute("data-row-session"),!k){V!==null&&(V=null,le=null,G(),T==="form"&&S.setEditFormRow(null));return}if(V===k.rowKey){se?.refresh();return}if(G(),V=k.rowKey,T==="form"){S.setEditFormRow(k.rowKey,{height:te(),atTop:k.isNew}),S.revealRow(k.rowKey);return}if(T==="popup"){let P=l.surfaceClass();W=document.createElement("div"),W.className=`kanuni-datagrid-detached kanuni-datagrid-edit-popup${P?` ${P}`:""}`;let oe=document.createElement("div");oe.className="kanuni-datagrid-edit-popup-overlay",oe.addEventListener("mousedown",()=>Q()),se=Z(k.rowKey,false),W.append(oe,se.element);let Re=datagridCore.portalContainerFor(l.barHost);datagridCore.portalTarget(Re).appendChild(datagridCore.markPortal(W,Re));return}S.revealRow(k.rowKey),queueMicrotask(()=>{let P=f.getRowSession();if(!P||P.rowKey!==V)return;let oe=u.element.querySelectorAll('[data-testid="dg-row-editor"]');if(oe.length===0)return;let Re=S.getFocus(),ve=(Re&&String(Re.rowKey)===String(P.rowKey)?u.element.querySelector(`[data-testid="dg-row-editor"][data-column-id="${datagridCore.cssEscape(Re.columnId)}"]`):null)??oe[0],Pe=O!==null&&ve.getAttribute("data-column-id")===O;O=null,ve.focus({preventScroll:true}),ve instanceof HTMLInputElement&&(Pe?ve.setSelectionRange(ve.value.length,ve.value.length):ve.select());});}let Ne=k=>{let P=ee.get(k);if(P)return P;let oe=S.getColumnModel(),Re=oe.getDef(k),he=oe.getEditorDataType(k),ve=f.rowEditValue(k),Pe=f.getRowSession()?.errors[k]??null,at=Re?.headerName??k,it,et=y.resolveLookup?.(V,k);if(et&&et.options!==void 0&&y.renderLookup)it=y.renderLookup({options:et.options??[],value:ve,matchMode:et.matchMode,allowCustom:et.allowCustom,invalid:!!Pe,autoFocus:false,testId:"dg-row-editor",columnId:k,ariaLabel:at,surfaceClass:l.surfaceClass(),noMatchText:v.editNoMatch,onChange:xe=>f.setRowEditValue(k,xe),commitOnPick:false,onCommit:()=>{de();},onCancel:Q});else if(he==="date")it=Yt({value:ve,format:Re?.dateFormat,invalid:!!Pe,autoFocus:false,testId:"dg-row-editor",columnId:k,ariaLabel:at,surfaceClass:l.surfaceClass(),onPortalOpen:l.trackPortal,t:v,onChange:xe=>f.setRowEditValue(k,xe),onCommit:()=>{de();},onCancel:Q});else {let xe=document.createElement("input");xe.className=`kanuni-datagrid-editor${Pe?" kanuni-datagrid-editor--invalid":""}`,xe.setAttribute("data-testid","dg-row-editor"),xe.setAttribute("data-column-id",k),xe.setAttribute("aria-label",at),Pe&&(xe.title=Pe),he==="boolean"?(xe.type="checkbox",xe.checked=ve===true,xe.addEventListener("change",()=>f.setRowEditValue(k,xe.checked))):(xe.type=he==="number"?"number":"text",xe.value=ve==null?"":String(ve),xe.addEventListener("input",()=>{let _e=xe.value;f.setRowEditValue(k,he==="number"?_e===""?null:Number(_e):_e);})),xe.addEventListener("keydown",_e=>{_e.key==="Enter"?(_e.preventDefault(),_e.stopPropagation(),de()):_e.key==="Escape"?(_e.preventDefault(),_e.stopPropagation(),Q()):_e.stopPropagation();}),it=xe;}return ee.set(k,it),it},ue=document.createElement("div");ue.className="kanuni-datagrid-filter-bar kanuni-datagrid-edit-bar",ue.setAttribute("data-testid","dg-edit-bar"),y.decorateBar?.(ue);let g=(k,P,oe,Re)=>{let he=document.createElement("button");return he.type="button",oe&&(he.className="kanuni-datagrid-filter-primary"),he.setAttribute("data-testid",k),he.textContent=P,he.addEventListener("click",Re),he},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},D=null,we=null,ce=null,X=null,ge=null,ye=null,Ce=null;T==="batch"&&(D=g("dg-save-changes",v.editSaveChanges,true,()=>{z();}),we=g("dg-discard-changes",v.editDiscardChanges,false,q),ce=I("dg-save-error"),ue.append(D,we,ce)),T==="row"&&(X=document.createElement("span"),X.setAttribute("data-testid","dg-row-editing"),X.className="kanuni-datagrid-filter-active",X.style.display="none",ge=g("dg-save-row",v.editSaveRow,true,()=>{de();}),ge.style.display="none",ye=g("dg-cancel-row",v.cancel,false,Q),ye.style.display="none",Ce=I("dg-row-save-error"),ue.append(X,ge,ye,Ce)),ue.childElementCount>0&&l.barHost?.appendChild(ue);function U(){let k=f.hasChanges();if(D&&(D.style.display=k?"":"none",D.textContent=v.editSaveCount.replace("{n}",String(f.getChanges().length)),D.disabled=f.isSaving()),we&&(we.style.display=k?"":"none"),ce&&(ce.textContent=R?.message??"",ce.style.display=R?"":"none"),X&&ge&&ye&&Ce){let P=f.getRowSession(),oe=P?"":"none";X.style.display=oe,ge.style.display=oe,ye.style.display=oe,P&&(X.textContent=P.isNew?v.formAddTitle:v.editEditingRow.replace("{row}",String(P.rowKey)),ge.disabled=P.saving,ge.textContent=P.saving?v.editSaving:v.editSaveRow,ye.disabled=P.saving),Ce.textContent=N??"",Ce.style.display=P&&N?"":"none";}ue.style.display=Array.from(ue.children).some(P=>P.style.display!=="none")?"":"none";}U();function be(){R=null,U(),Le();}return {rowModeActive:A,beginRowEdit:M,openRowFromKeys:J,saveRowEdit:de,cancelRowEdit:Q,saveChanges:z,cancelChanges:q,renderRowCell:k=>{if(!(T!=="row"||k.node.kind!=="data"||datagridCore.isChromeColumn(k.columnId))&&f.isEditingRow(k.node.key))return f.canUpdate(k.node.key,k.columnId)?Ne(k.columnId):l.defaultContent(k,f.rowEditValue(k.columnId))},renderEditForm:k=>{if(T!=="form")return;let P=f.getRowSession();if(!(!P||P.rowKey!==k))return (!se||se.element.getAttribute("data-row-key")!==String(k))&&(se?.dispose(),se=Z(k,true)),se.element},onCellDoubleClick:k=>A?(k.node.kind==="data"&&!f.isEditingRow()&&f.canEditRow(k.node.key)&&M(k.node.key),true):false,handleRowKeys:k=>!f.isEditingRow()||k.target?.closest?.('[data-testid="dg-edit-form"]')?false:k.key==="Enter"?(k.preventDefault(),de(),true):k.key==="Escape"?(k.preventDefault(),Q(),true):false,sync:be,dispose:()=>{G(),T==="form"&&V!==null&&S.setEditFormRow(null),V=null,u.element.removeAttribute("data-row-session"),ue.remove();}}}function dr(l,u,f,T,v={}){let y=l.controller,S=u.mode??"cell";u.formLabels&&(f={...f,...u.formLabels});let A=v.isColumnEditable??(g=>y.getColumnModel().getDef(g)?.editable!==false),R=()=>{y.refreshCells(),_.sync(),v.onChange?.(),z.schedule("footer",()=>y.refreshSummaries());},z=datagridCore.createDebouncedCommit(150),q=g=>y.getRowByKey(g),N=new datagridCore.EditingEngine({mode:S,messages:f,onChange:R,onAutoSaveFailed:g=>le(g),onCellValueChanged:g=>y.notifyCellValueChanged(g),onEditingStarted:g=>y.notifyEditingStarted(g),onEditingStopped:g=>y.notifyEditingStopped(g),onRowEditingStarted:g=>y.notifyRowEditingStarted(g),onRowEditingStopped:g=>y.notifyRowEditingStopped(g),onChangesChanged:g=>y.notifyChangesChanged(g),editableColumns:g=>{let I=y.getColumnLayout();return [...I.left,...I.center,...I.right].map(D=>D.state.id).filter(D=>!datagridCore.isChromeColumn(D)&&N.canUpdate(g,D))},readValue:(g,I)=>{let D=q(g);return D?y.getColumnModel().getStoredValue(D,I):void 0},formatForEdit:(g,I,D)=>y.formatCellForEdit(I,D),parseFromEdit:(g,I,D)=>y.parseCellFromEdit(I,D,g),readRow:q,isColumnEditable:A,applyValue:(g,I,D)=>y.writeCellValue(g,I,D),storedValue:(g,I,D)=>y.valueAfterWrite(g,I,D),onSave:g=>u.onSave?.(g),...v.engine});y.setPendingValueReader({effectiveValue:(g,I,D)=>N.changes.effectiveValue(g,I,D),effectiveRow:(g,I)=>N.changes.applyPendingTo(g,I),hasPending:()=>N.changes.hasChanges()}),y.setEditingDelegate({startEditingCell:(g,I)=>(y.scrollToCell(g,I),N.beginEdit(g,I)),stopEditing:async g=>{if(N.isEditingRow())return g?(_.cancelRowEdit(),true):_.saveRowEdit();if(!N.getSession())return false;if(g)return N.cancelEdit(),W(),true;let I=N.commitEdit();return I&&W(),I},getEditingCells:()=>{let g=N.getRowSession();if(g)return y.getVisualColumnIds().filter(D=>!datagridCore.isChromeColumn(D)&&N.canUpdate(g.rowKey,D)).map(D=>({rowKey:g.rowKey,columnId:D}));let I=N.getSession();return I?[{rowKey:I.rowKey,columnId:I.columnId}]:[]}});let V=false,se=[y.events.on("rowsChanged",g=>{V=g.removed===0;}),y.events.on("dataUpdated",()=>{let g=V;V=false,!g&&N.retainKeys(new Set(y.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 le(g){let I=g.columnId!==void 0?y.getColumnModel().getDef(g.columnId)?.headerName??g.columnId:null,D=g.error??f.editSaveFailed;ar({title:f.editCannotSave,message:I?`${I}: ${D}`:D,confirmLabel:f.ok,surfaceClass:T.surfaceClass(),anchor:l.element}),g.rowKey!==void 0&&g.columnId!==void 0&&(y.revealRow(g.rowKey),y.focusCell(g.rowKey,g.columnId));}let ee=(g,I={})=>{let D=N.getSession(),we=D?{rowKey:D.rowKey,columnId:D.columnId}:y.getFocus();if(!we||!N.commitEdit())return false;let ce=y.getColumnModel().runtime().filter(U=>U.state.visible).map(U=>U.state.id);if(datagridCore.edgeEditableColumn(ce,A,1)===null)return false;let X=y.getRows(),ge=X.findIndex(U=>U.key===we.rowKey);if(ge<0)return false;let ye=datagridCore.nextEditableColumn(ce,A,we.columnId,g);if(ye===null){if(I.cycle===false)return false;let U=g;do ge+=U;while(ge>=0&&ge<X.length&&X[ge]?.kind!=="data");if(ge<0||ge>=X.length)return false;ye=datagridCore.edgeEditableColumn(ce,A,g);}let Ce=X[ge];return !Ce||Ce.kind!=="data"?false:y.focusCell(Ce.key,ye)?(y.scrollToCell(Ce.key,ye),I.open===true?N.beginEdit(Ce.key,ye):(W(),true)):(W(),false)},Ee=g=>{if(N.getSession())return false;let I=y.getFocus();if(!I||!A(I.columnId))return false;let D=y.getColumnModel().getEditorDataType(I.columnId);if(D==="boolean"||D==="date")return false;let we=D==="number"?Number.isNaN(Number(g))?null:Number(g):g;return we===null?false:_.rowModeActive?_.openRowFromKeys(I.rowKey,I.columnId,we):(y.scrollToCell(I.rowKey,I.columnId),N.beginEdit(I.rowKey,I.columnId,we))},M=null,O=new Set,J=g=>{let I=()=>{O.delete(I),g();};O.add(I);},de=()=>{for(let g of [...O])g();O.clear();},Q=(g,I)=>{let D=y.getColumnModel().getDef(g.columnId),we=g.node.data;if(D?.renderCell)return D.renderCell({value:I,row:we,node:g.node,column:D});let ce=datagridCore.lookupLabel(D,I);if(ce!==null)return ce;if(D?.valueFormatter){let X=D.valueFormatter(I,we);return typeof X=="string"?X:String(X??"")}return D?.dateFormat&&D.dataType==="date"?datagridCore.formatDateValue(I,D.dateFormat):I==null?"":String(I)},_=ri({grid:l,engine:N,mode:S,t:f,formHeight:u.formHeight,surfaceClass:()=>T.surfaceClass(),barHost:T.barHost,focusGrid:W,trackPortal:J,defaultContent:Q,extension:v}),te=g=>{if(g.node.kind!=="data")return;let I=_.renderRowCell(g);if(I!==void 0)return I;if(!N.isEditing(g.node.key,g.columnId)){M&&M.rowKey===g.node.key&&M.columnId===g.columnId&&(M=null);let U=N.getMode()==="cell"?void 0:N.changes.get(g.node.key,g.columnId),be=v.cellAdornment?.(g)??null;if(!U&&!be)return;let k=U?U.newValue:g.value,P=document.createElement("span");P.style.display="contents";let oe=Q(g,k);return typeof oe=="string"?P.appendChild(document.createTextNode(oe)):P.appendChild(oe),be&&P.appendChild(be),P}let D=N.getSession();if(M&&M.rowKey===D.rowKey&&M.columnId===g.columnId)return M.setError(D.validation.message),M.container;let we=y.getColumnModel().getDef(g.columnId),ce=v.resolveLookup?.(D.rowKey,g.columnId)??{options:void 0},X=document.createElement("span");X.style.display="contents";let ge=v.customEditors?we?.renderEditor:void 0;if(ge){let U=new Set,be=ge({value:N.getSession()?.value??D.value,row:N.effectiveRow(D.rowKey),columnId:g.columnId,error:D.validation.message,onErrorChange:k=>(U.add(k),()=>U.delete(k)),setValue:k=>N.setEditValue(k),commit:()=>{N.commitEdit()&&W();},cancel:()=>{N.cancelEdit(),W();}});return X.appendChild(be),M={rowKey:D.rowKey,columnId:g.columnId,container:X,setError:k=>{for(let P of U)P(k);}},X}let ye=U=>{X.textContent="",X.appendChild(rr({value:N.getSession()?.value??D.value,dataType:y.getColumnModel().getEditorDataType(g.columnId),error:U,seeded:D.seeded,onPortalOpen:J,options:ce.options,allowCustom:ce.allowCustom,matchMode:ce.matchMode,renderLookup:v.renderLookup,dateFormat:we?.dateFormat,ariaLabel:we?.headerName??g.columnId,surfaceClass:T.surfaceClass(),t:f,onChange:be=>N.setEditValue(be),onCommit:be=>{N.commitEdit()&&(be==="down"&&y.moveFocus("down"),W());},onTab:be=>{if(u.focusCellOnTab===false){N.commitEdit();return}ee(be,{open:v.keepEditingOnTab===true,cycle:u.focusCellOnCycle!==false});},onCancel:()=>{N.cancelEdit(),W();}}));};ye(D.validation.message);let Ce=D.validation.message;if(M={rowKey:D.rowKey,columnId:g.columnId,container:X,setError:U=>{if(U===Ce)return;Ce=U,X.querySelector(".kanuni-datagrid-editor")?.classList.toggle("kanuni-datagrid-editor--invalid",!!U);let k=X.querySelector(".kanuni-datagrid-editor-error");U&&!k&&(k=document.createElement("span"),k.id="kanuni-datagrid-editor-error",k.setAttribute("role","alert"),k.className="kanuni-datagrid-editor-error",X.appendChild(k)),k&&(k.textContent=U??"",U||k.remove());}},ce.options===null&&v.resolveLookup){let U=v.resolveLookup,be=()=>{let P=U(D.rowKey,g.columnId);P.options!==null&&M&&M.rowKey===D.rowKey&&M.columnId===g.columnId&&N.isEditing(D.rowKey,g.columnId)&&(ce.options=P.options,ye(N.getSession()?.validation.message??null));},k=y.events.on("cellsRefreshed",()=>{be(),U(D.rowKey,g.columnId).options!==null&&k();});}return X},Z=g=>{if(g.node.kind!=="data")return;let I=[];return N.isEditing(g.node.key,g.columnId)&&I.push("kanuni-datagrid-cell--editing"),N.changes.isDirty(g.node.key,g.columnId)&&I.push("kanuni-datagrid-cell--dirty"),N.isRemoved(g.node.key)&&I.push("kanuni-datagrid-cell--removed"),I.length?I.join(" "):void 0},G=g=>{g.node.kind==="data"&&(y.isRowLeaveBlocked(g.node.key)||_.onCellDoubleClick(g)||N.canUpdate(g.node.key,g.columnId)&&(y.scrollToCell(g.node.key,g.columnId),N.beginEdit(g.node.key,g.columnId)));},Le=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"]')},Ne=g=>Le(g)?false:_.handleRowKeys(g)?true:g.key==="Escape"&&N.getSession()?(g.preventDefault(),N.cancelEdit(),true):g.key==="Tab"&&u.focusCellOnTab!==false&&!N.getSession()&&y.getFocus()&&ee(g.shiftKey?-1:1,{open:v.keepEditingOnTab===true,cycle:u.focusCellOnCycle!==false})?(g.preventDefault(),true):false,ue=g=>{if(Le(g))return false;let I=g.ctrlKey||g.metaKey;if(g.key==="F2"){let D=y.getFocus();if(D)return g.preventDefault(),_.rowModeActive?(_.openRowFromKeys(D.rowKey,D.columnId),true):(y.scrollToCell(D.rowKey,D.columnId),N.beginEdit(D.rowKey,D.columnId),true)}return u.editOnKeyPress!==false&&!I&&!g.altKey&&g.key.length===1&&g.key!==" "&&!N.getSession()&&Ee(g.key)?(g.preventDefault(),true):false};return {engine:N,renderCellContent:te,getCellClassName:Z,onCellDoubleClick:G,handleKeyDown:g=>Ne(g)||ue(g),handleSessionKeys:Ne,handleOpenKeys:ue,editAdjacentCell:ee,focusGrid:W,trackPortal:J,defaultContent:Q,renderEditForm:_.renderEditForm,beginRowEdit:_.beginRowEdit,saveRowEdit:_.saveRowEdit,cancelRowEdit:_.cancelRowEdit,saveChanges:_.saveChanges,cancelChanges:_.cancelChanges,dispose:()=>{de(),_.dispose(),N.dispose(),z.cancelAll(),se.forEach(g=>g()),y.setPendingValueReader(null),y.setEditingDelegate(null);}}}function ii(l,u){return !l||datagridCore.isChromeColumn(u)?false:l.editable!==false&&l.lookup==null&&l.renderEditor==null&&l.allowFormulas!==true}var li=["rules","crud","allowAdding","allowUpdating","allowDeleting","onInitNewRow","onRowInserted","onRowUpdated","onRowRemoved","insertKey","appendOnArrowDown","newRowPosition","keepEditingOnTab","commandColumn","commandLabels","confirmDelete","confirmDeleteMessage","range"];var Rn=60,gr=24,Xd=0,so=36,xn=28,uo="application/x-kanuni-row",En=new Map,mr=new Set,hi=5e3,Xt=0,Jd=["columnStateChanged","sortChanged"],Qd=["columnStateChanged"],Zd=["contentReady","viewportChanged","filterChanged","selectionChanged","focusChanged","summariesChanged","cellsRefreshed","findChanged"],w=(l,u="div")=>{let f=document.createElement(u);return f.className=l,f},Tn="http://www.w3.org/2000/svg";function es(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 T={...l};if(T.dataSource!=null&&!Array.isArray(T.dataSource)&&T.grouping&&(f("grouping a server-side DataSource is"),delete T.grouping),T.columns?.some(v=>v.spanRows)&&(f("cell span/merge (spanRows) is"),T={...T,columns:T.columns.map(v=>v.spanRows?{...v,spanRows:void 0}:v)}),T.tree&&(f("tree data is"),delete T.tree),T.masterDetail&&(f("master-detail is"),delete T.masterDetail),T.grouping){let{groupBy:v,groupSummaries:y}=T.grouping,S=v==null?[]:typeof v=="string"?[v]:v;(S.length>1||y)&&(f("multi-level grouping and group summaries are"),T={...T,grouping:{...T.grouping,groupBy:S.slice(0,1),groupSummaries:false}});}return T}var ts={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:""},co=new Set;function ns(l){for(let u of Object.keys(l)){let f=ts[u];f===void 0||f===""||co.has(u)||(co.add(u),console.warn(`[datagrid] \`${u}\` is a React-only option \u2014 ${f}.`));}}function os(){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 rs(){let l=document.createElementNS(Tn,"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(Tn,"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 as(l){let u=document.createElementNS(Tn,"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(Tn,"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 T=v=>{let y=document.createElementNS(Tn,"path");y.setAttribute("d",v),y.setAttribute("fill","none"),y.setAttribute("stroke","currentColor"),y.setAttribute("stroke-width","1.3"),y.setAttribute("stroke-linecap","round"),u.appendChild(y);};return T("M5 8h6"),l&&T("M8 5v6"),u}function wi(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 lo(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 is(l,u){let{theme:f,palette:T,density:v,dark:y,striped:S=true,rowNumbers:A=false,locale:R="en",footer:z=false,footerMenu:q=true,footerPosition:N="bottom",pinFooterToBottom:V=false,notes:se,pinnedTopRows:W=[],pinnedBottomRows:le=[],resizable:ee=true,reorderable:Ee=true,autoHeaderHeight:M=false,filterRow:O=false,headerFilter:J=false,filterIconMode:de="hover",filterPanel:Q=false,onOpenFilterBuilder:_,focusedRow:te=false,focusedRowKey:Z,onFocusedRowChanged:G,onRowClick:Le,onRowActivate:Ne,autoSizeStrategy:ue="none",renderRow:g,cardView:I,onCardViewChange:D,announcements:we=true,filterPanelLabels:ce,showRowCount:X=false,toolbarColumnChooser:ge=false,cellMenu:ye=true,rowMenu:Ce,headerMenu:U,rowDrag:be,alignedGrids:k,printLayout:P,renderCellContent:oe,getCellClassName:Re,getRowStatusSource:he,rowStatus:ve,onCellPointerDown:Pe,onCellPointerEnter:at,onCellDoubleClick:it,editing:et,onHeaderClick:xe,getHeaderClassName:_e,renderHeaderLabel:yi,renderDetail:br,renderEditForm:wr,enterpriseEdition:vt=false,stateStoring:hr,tooltip:tt=true,renderOverlay:po,filterDebounce:Ci,toolbar:yr=false,highlightSearch:vi=true,sortable:Cr=true,toolbarItemsAfter:ki,toolbarItemsBefore:Ei,toolbarExcel:Ri=false,toolbarPdf:xi=false,searchDebounce:Ti=200,...Li}=u;ns(u),X&&!co.has("showRowCount:deprecated")&&(co.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 C=datagridCore.getGridDictionary(R),{emptyText:Si=C.noData,loadingText:Ai=C.busy,loadingOverlay:fo=true,...Je}=Li,vr=typeof fo=="number"?fo:300,go=datagridCore.summaryTypeLabels(C),kr=datagridCore.datePeriodLabels(C);if((!Je.columns||Je.columns.length===0)&&u.autoColumns!==false){let e=Array.isArray(Je.dataSource)?Je.dataSource:[];Je.columns=datagridCore.inferColumns(e,typeof u.autoColumns=="object"?u.autoColumns:{});}Je.rowHeight===void 0&&(Je.rowHeight=datagridCore.presetRowHeight(f,v,28));let Mi=vt?Je:es(Je,!!u.debugMode),Ht=vt?se:void 0;!vt&&se&&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(Mi);a.setEnterpriseEdition(vt);let Ft=et!=null&&typeof et=="object"&&et.enabled!==false,Qe=null;if(Ft&&u.debugMode)for(let e of li)et[e]!==void 0&&console.warn(`[datagrid] editing.${e} is an Enterprise feature \u2014 use createEnterpriseGrid from @kanunilabs/datagrid-enterprise to use it.`);let an=Ft?e=>Qe?.renderCellContent(e)??oe?.(e):oe,mo=Ft?e=>{let t=Qe?.getCellClassName(e),o=Re?.(e);return t&&o?`${t} ${o}`:t??o}:Re,Er=Ft?e=>{it?.(e),Qe?.onCellDoubleClick(e);}:it,Di=Ft?(e,t)=>Qe?.renderEditForm(e,t)??wr?.(e,t)??"":wr,nt=datagridCore.normalizeRowStatus(ve);Z!=null&&a.focusRow(Z);let B=w(lo(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(R)&&B.setAttribute("dir","rtl"),f&&B.setAttribute("data-theme",f),M&&B.setAttribute("data-auto-header-height",""),B.style.setProperty("--dg-row-height",`${a.getRowHeight()}px`);let ae=w("kanuni-datagrid-scroller"),Ie=w("kanuni-datagrid-canvas"),Me=w("kanuni-datagrid-header");Me.setAttribute("role","row");let $e=w("kanuni-datagrid-rows");$e.style.position="relative";let pe=w("kanuni-datagrid-viewport");$e.appendChild(pe);let ot=w("kanuni-datagrid-pinned-rows kanuni-datagrid-pinned-rows--top"),kt=w("kanuni-datagrid-pinned-rows kanuni-datagrid-pinned-rows--bottom"),Kt=()=>W.length+a.getPinnedRows("top").length,Rr=()=>le.length+a.getPinnedRows("bottom").length,We=w("kanuni-datagrid-sticky-groups");We.setAttribute("aria-hidden","true");let Ze=z,lt=N==="top",Oe=w(`kanuni-datagrid-footer-row kanuni-datagrid-footer-row--${lt?"top":"bottom"}`);if(Oe.setAttribute("role","row"),Oe.setAttribute("aria-label",C.columnTotalsAria),q){let e=t=>{let n=t.target?.closest(".kanuni-datagrid-footer-cell")?.getAttribute("data-column-id");!n||datagridCore.isChromeColumn(n)||(t.preventDefault(),sl(n,{left:t.clientX,top:t.clientY}));};Oe.addEventListener("click",e),Oe.addEventListener("contextmenu",e);}let Ln=w("kanuni-datagrid-bands-host");Ln.style.display="contents";let Et=w("kanuni-datagrid-filter-row");Et.setAttribute("role","row"),Ie.append(Ln,Me),O&&Ie.append(Et);let Pt=O?2:1,bo=0,wo=()=>bo+Pt+Kt();Oe.style.setProperty("--dg-pinned-gap",String(lt?Pt:0)),ot.style.setProperty("--dg-pinned-gap",String(Pt+(Ze&&lt?1:0))),Ze&&lt&&Ie.append(Oe),Kt()>0&&Ie.append(ot),a.hasStickyGroupHeaders()&&(We.style.setProperty("--dg-pinned-gap",String(Pt+(Ze&&lt?1:0))),We.style.setProperty("--dg-sticky-below",`${Kt()>0?Kt()*a.getRowHeight()+1:0}px`),Ie.append(We)),Ie.append($e),Rr()>0&&Ie.append(kt),Ze&&!lt&&Ie.append(Oe),la(),ae.appendChild(Ie);let ft=w("kanuni-datagrid-toolbar"),rt=w("kanuni-datagrid-pager");rt.setAttribute("role","navigation"),rt.setAttribute("aria-label",C.pagerAria);let Gt=w("kanuni-datagrid-filter-panel"),$t=!!Je.grouping?.panel,qe=w("kanuni-datagrid-group-panel"),ln=datagridCore.resolveCardView(I),dn=false,Sn=[],Rt=g,sn=w("kanuni-datagrid-cardbar");sn.hidden=true;let xr=w("kanuni-datagrid-cardbar-label","label"),Tr=w("","span");Tr.textContent=C.cardSortBy;let dt=w("kanuni-datagrid-cardbar-select","select"),Ot=w("kanuni-datagrid-cardbar-dir","button");Ot.type="button",xr.append(Tr,dt),sn.append(xr,Ot),dt.addEventListener("change",()=>{let e=a.getSort()[0];a.setSort(dt.value?[{columnId:dt.value,direction:e?.direction??"asc"}]:[]);}),Ot.addEventListener("click",()=>{let e=a.getSort()[0];e&&a.setSort([{columnId:e.columnId,direction:e.direction==="desc"?"asc":"desc"}]);});let Ni=e=>{let[t,...o]=datagridCore.cardFields(a.getColumnModel(),Sn,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},Lr=()=>{if(!dn||!ln)return;let e=a.getColumnModel(),t=datagridCore.cardColumnIds(e,ln);t.join("\0")!==Sn.join("\0")&&(Sn=t,a.setDataRowHeight(datagridCore.cardHeight(t.length)));let o=Cr?e.getOrder().filter(s=>e.getState(s)?.visible!==false&&e.getDef(s)?.sortable!==false):[];sn.hidden=o.length===0;let n=["",...o].join("\0");if(dt.dataset.ids!==n){dt.dataset.ids=n,dt.replaceChildren();let s=document.createElement("option");s.value="",s.textContent=C.none,dt.appendChild(s);for(let r of o){let c=document.createElement("option");c.value=r,c.textContent=e.getDef(r)?.headerName??r,dt.appendChild(c);}}let i=a.getSort()[0];dt.value=i?.columnId??"",Ot.hidden=!i;let d=i?.direction==="desc";Ot.textContent=d?"\u2193":"\u2191",Ot.setAttribute("aria-label",d?C.sortAsc:C.sortDesc),Ot.title=d?C.sortAsc:C.sortDesc;},Sr=false,Ii=e=>{let t=datagridCore.showsCards(e,ln);if(t!==dn){for(dn=t,B.classList.toggle("kanuni-datagrid-cards",t),Rt=t?Ni:g,Sn=[],t?Lr():(sn.hidden=true,a.setDataRowHeight(null));bt.length;)bt.pop().root.remove();$n(),Sr?D?.(t):queueMicrotask(()=>D?.(t));}};yr&&B.appendChild(ft),$t&&B.appendChild(qe),ln&&B.appendChild(sn),B.appendChild(ae),Q&&B.appendChild(Gt);let An=Je.pagination;An&&An.enabled!==false&&B.appendChild(rt);let un=w("kanuni-datagrid-loading-overlay"),Ar=w("kanuni-datagrid-loading-card"),Mr=w("kanuni-datagrid-loading-spinner","span");Mr.setAttribute("aria-hidden","true");let Dr=w("kanuni-datagrid-loading-label","span");Dr.textContent=Ai,Ar.append(Mr,Dr),un.appendChild(Ar),un.style.display="none";let cn=w("kanuni-datagrid-sr-only","div");cn.setAttribute("role","status"),cn.setAttribute("aria-live","polite"),cn.setAttribute("aria-atomic","true");let Mn=w("kanuni-datagrid-empty");Mn.textContent=Si,Mn.style.display="none",B.append(un,Mn),we&&B.appendChild(cn),l.appendChild(B);let pn=Je.selection,ho=a.getGroupDisplay()!=="fullWidth",Nr=a.getGroupDisplay()==="column",Jt=(pn?.mode??"none")!=="none"&&(pn?.checkboxColumn??false),Hi=(pn?.rowClick??(Jt?"toggle":"replace"))==="toggle",Qt=a.hasMasterDetail()&&!!br,yo=()=>(A?1:0)+(Qt?1:0)+(Jt?1:0),Co=nt?.icons===true,Ir=Co?gr:0,vo=Ir,ko=vo+(A?Rn:0),Hr=ko+(Qt?xn:0),st=Ir+(A?Rn:0)+(Qt?xn:0)+(Jt?so:0);a.setLeadWidth(st);let fn=!!be?.enabled,gn=be?.group??null,Fr=be?.allowReordering??true,Kr=be?.allowDropInsert??gn!==null,gt=null,Dn=null,Nn=false,Bt=null,xt=null;function Zt(e){Bt=e;for(let t of pe.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 Pr=(e,t)=>{let o=t.getBoundingClientRect();return e.clientY<o.top+o.height/2?"before":"after"},Gr=e=>e.dataTransfer?.types.includes(uo)?gt!==null?Fr:Kr&&gn!==null:false;function $r(e,t,o){let n=null;try{let i=e.dataTransfer?.getData(uo);n=i?JSON.parse(i):null;}catch{n=null;}if(n){if(n.gridId===a.gridId){if(!Fr)return;if(be?.onReorder){be.onReorder({dragKey:n.rowKey,targetKey:t,position:o,row:a.getRowByKey(n.rowKey)});return}a.moveRow(n.rowKey,t,o);return}!Kr||gn===null||n.group!==gn||be?.onAdd?.({row:n.row,rowKey:n.rowKey,otherGridId:n.gridId,targetKey:t,position:o});}}let Fi=e=>{let t=St(e);if(!t||t.node.kind!=="data"||!e.dataTransfer)return;gt=t.node.key,Dn=t.node.key,Nn=false;let o={gridId:a.gridId,group:gn,rowKey:t.node.key,row:t.node.data};e.dataTransfer.setData(uo,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(!Gr(e))return;e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect="move");let t=St(e);if(!t||t.node.kind!=="data")return;if(gt===t.node.key){xt=null,Zt(null);return}let o=e.target.closest(".kanuni-datagrid-row"),n=Pr(e,o),i=Bt?.key!==t.node.key||Bt.side!==n;xt={key:t.node.key,side:n},Zt({key:t.node.key,side:n}),i&&gt!==null&&a.notifyRowDrag("move",{rowKey:gt,overKey:t.node.key,position:n});},Pi=e=>{if(!Gr(e)){Zt(null);return}e.preventDefault();let t=St(e);if(Nn=true,t&&t.node.kind==="data"){let o=e.target.closest(".kanuni-datagrid-row"),n=Pr(e,o);xt={key:t.node.key,side:n},$r(e,t.node.key,n);}else xt=null,$r(e,null,"after");gt=null,Zt(null);},Gi=()=>{Dn!==null&&a.notifyRowDragEnd({rowKey:Dn,dropped:Nn,overKey:xt?.key??null,position:xt?.side??null}),Nn=false,Dn=null,gt=null,xt=null,Zt(null);},$i=e=>{let t=e.relatedTarget;t&&$e.contains(t)||gt!==null&&(xt=null,Zt(null),a.notifyRowDrag("leave",{rowKey:gt}));},Vt=P===void 0||P===false?null:(()=>{let e=P===true?{}:P;return {always:e.always??false,maxRows:e.maxRows??hi,onLimit:e.onLimit}})(),en=false;function Eo(e){en!==e&&(en=e,B.classList.toggle("kanuni-datagrid-print",e),e?(Xt++,document.documentElement.classList.add("kanuni-datagrid-printing")):(Xt--,Xt<=0&&(Xt=0,document.documentElement.classList.remove("kanuni-datagrid-printing"))),$n());}let Or=null;if(Vt&&!Vt.always){let e=()=>{let o=a.getRows().length;if(o>Vt.maxRows){a.isDebugMode()&&console.warn(`[datagrid] print layout skipped: ${o} rows exceeds maxRows (${Vt.maxRows}). Printing the visible rows instead \u2014 use exportPdf() for the whole result.`),Vt.onLimit?.({rows:o,maxRows:Vt.maxRows});return}Eo(true);},t=()=>Eo(false);window.addEventListener("beforeprint",e),window.addEventListener("afterprint",t),Or=()=>{window.removeEventListener("beforeprint",e),window.removeEventListener("afterprint",t);};}let mt=0,ut=[],Ue=0,Ro=0;function xo(){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:wi(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]+st,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)),ut=o,Ue=t.offsetX;let i=(e.centerOffsets[Math.min(t.end,e.center.length)]??0)-(e.centerOffsets[Math.min(t.start,e.center.length)]??0);Ro=Math.max(0,e.centerWidth-t.offsetX-i),Ie.style.minWidth=`${e.totalWidth+st}px`;}let In=26;function Oi(){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(bo=n,Ln.textContent="",Me.style.top=`${n*In}px`,B.style.setProperty("--dg-band-offset",`${n*In}px`),n===0)return;datagridCore.computeHeaderBands(o,n).forEach((d,s)=>{let r=w("kanuni-datagrid-band-row");if(r.style.top=`${s*In}px`,r.style.height=`${In}px`,st>0){let c=w("kanuni-datagrid-band-cell kanuni-datagrid-band-cell--spacer kanuni-datagrid-band-cell--pinned");c.style.width=`${st}px`,c.style.flex="none",c.style.insetInlineStart="0px",r.appendChild(c);}if(Ue>0){let c=w("kanuni-datagrid-spacer");c.style.width=`${Ue}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 x=a.isBandCollapsed(b),F=document.createElement("button");F.type="button",F.className="kanuni-datagrid-band-toggle",F.setAttribute("aria-expanded",String(!x));let K=x?C.expandColumnGroup:C.collapseColumnGroup;F.setAttribute("aria-label",K),F.title=K,F.appendChild(as(x)),F.addEventListener("click",H=>{H.stopPropagation(),a.toggleBand(b);}),p.appendChild(F);}}let E=w("kanuni-datagrid-band-label","span");E.textContent=c.label,p.appendChild(E);}r.appendChild(p);}Ln.appendChild(r);});}let tn=null,Hn=null;function Fn(e,t){Hn&&Hn!==e&&Hn.classList.remove("kanuni-datagrid-header-cell--drop-before","kanuni-datagrid-header-cell--drop-after"),Hn=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 Br(){if(!tn)return;let e=a.getSelectedCount(),t=a.getSelectableCount(),o=t>0&&e>=t;tn.checked=o,tn.indeterminate=!o&&e>0,tn.disabled=t===0&&e===0;}let mn=null;function Vr(e){mn=e;for(let t of Array.from(Me.querySelectorAll(".kanuni-datagrid-header-cell[data-column-id]")))t.tabIndex=t.getAttribute("data-column-id")===e?0:-1;}function To(){Oi();let e=document.activeElement,t=e&&Me.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);(!mn||!n.includes(mn))&&(mn=n[0]??null);let i=a.getSort(),d=new Map(i.map((r,c)=>[r.columnId,{direction:r.direction,order:c}]));if(Me.textContent="",tn=null,Co){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=`${gr}px`,r.style.flex="none",r.style.insetInlineStart="0px",Me.appendChild(r);}if(A){let r=w("kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-rownum-cell");r.setAttribute("role","columnheader"),r.style.width=`${Rn}px`,r.style.flex="none",r.style.insetInlineStart=`${vo}px`,Me.appendChild(r);}if(Qt){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",C.detailsAria),r.style.width=`${xn}px`,r.style.flex="none",r.style.insetInlineStart=`${ko}px`,Me.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=`${so}px`,r.style.flex="none",r.style.insetInlineStart=`${Hr}px`;let c=document.createElement("input");c.type="checkbox",c.setAttribute("aria-label",C.selectAllRows),c.addEventListener("change",()=>{a.getSelectedCount()>0?a.clearSelection():a.selectAll();}),r.appendChild(c),Me.appendChild(r),tn=c,Br();}let s=false;for(let r of ut){if(!r.pinned&&!s){if(Ue>0){let h=document.createElement("div");h.style.flex=`0 0 ${Ue}px`,Me.appendChild(h);}s=true;}let c=Cr&&r.def.sortable!==false,p=r.id===datagridCore.GROUP_COLUMN_ID,E=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===mn?0:-1,b.addEventListener("focus",()=>Vr(r.id)),b.setAttribute("aria-sort",E?E.direction==="asc"?"ascending":"descending":"none");let x=r.def.headerTooltip;x&&(b.title=x),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=yi?.(r.id);if(K)F.appendChild(K);else if(r.def.renderHeader){let h=r.def.renderHeader({column:r.def});typeof h=="string"?F.textContent=h:F.appendChild(h);}else F.textContent=r.def.headerName??r.id;if(b.appendChild(F),E){let h=w("kanuni-datagrid-sort-indicator","span");if(h.setAttribute("aria-hidden","true"),h.textContent=E.direction==="asc"?"\u25B2":"\u25BC",b.appendChild(h),i.length>1&&!p){let $=w("kanuni-datagrid-sort-order","span");$.setAttribute("aria-hidden","true"),$.textContent=String(E.order+1),b.appendChild($);}}if(c||xe){let h=r.id;b.addEventListener("click",$=>{xe?.(h,$)||c&&a.toggleSort(h,$.shiftKey);});}let H=U!==false&&!datagridCore.isChromeColumn(r.id);if(H){let h=r.id;b.addEventListener("contextmenu",$=>{$.preventDefault(),sa(h,{left:$.clientX,top:$.clientY});});}let m=null;if(J&&r.def.filterable!==false){m=document.createElement("button"),m.type="button",m.tabIndex=-1;let h=a.getColumnFilter(r.id)!==null;m.className=`kanuni-datagrid-filter-button${h?" kanuni-datagrid-filter-button--active":""}${de==="always"?" kanuni-datagrid-filter-button--pinned":""}`,m.setAttribute("aria-haspopup","dialog"),m.setAttribute("aria-label",datagridCore.fillText(C.filterPopupAria,{column:r.def.headerName??r.id})),m.appendChild(rs());let $=m;m.addEventListener("click",j=>{j.stopPropagation(),aa(r.id,$);}),b.appendChild(m);}if(b.addEventListener("keydown",h=>{let $=n.indexOf(r.id),j;if(h.key==="ArrowRight")j=n[Math.min(n.length-1,$+1)];else if(h.key==="ArrowLeft")j=n[Math.max(0,$-1)];else if(h.key==="Home")j=n[0];else if(h.key==="End")j=n[n.length-1];else if(m&&h.altKey&&h.key==="ArrowDown")aa(r.id,m);else if(c&&(h.key==="Enter"||h.key===" "))a.toggleSort(r.id,h.shiftKey);else if(H&&(h.key==="ContextMenu"||h.key==="F10"&&h.shiftKey)){let fe=b.getBoundingClientRect();sa(r.id,{left:fe.left,top:fe.bottom});}else return;h.preventDefault(),h.stopPropagation(),j&&j!==r.id&&(Vr(j),Ko(j)?.focus());}),Ee&&r.def.reorderable!==false&&(b.draggable=true,b.addEventListener("dragstart",h=>{h.dataTransfer?.setData("text/x-kanuni-column",r.id),h.dataTransfer&&(h.dataTransfer.effectAllowed="move");}),b.addEventListener("dragover",h=>{if(!h.dataTransfer?.types.includes("text/x-kanuni-column"))return;h.preventDefault();let $=b.getBoundingClientRect(),j=h.clientX<$.left+$.width/2;Fn(b,j?"before":"after");}),b.addEventListener("dragleave",h=>{let $=h.relatedTarget;(!$||!b.contains($))&&Fn(null,"before");}),b.addEventListener("drop",h=>{Fn(null,"before");let $=h.dataTransfer?.getData("text/x-kanuni-column");if(!$||$===r.id)return;h.preventDefault();let j=b.getBoundingClientRect();if(h.clientX<j.left+j.width/2)a.moveColumn($,r.id);else {let Ke=ut.findIndex(re=>re.id===r.id);a.moveColumn($,ut[Ke+1]?.id);}}),b.addEventListener("dragend",()=>Fn(null,"before"))),ee&&r.def.resizable!==false){let h=w("kanuni-datagrid-resize-handle","span");h.setAttribute("data-resize-handle",r.id),h.setAttribute("role","presentation"),h.addEventListener("click",$=>$.stopPropagation()),h.addEventListener("dblclick",$=>{$.stopPropagation(),cl(r.id);}),h.addEventListener("pointerdown",$=>{$.preventDefault(),$.stopPropagation();let j=$.clientX,fe=r.width,Ke=getComputedStyle(b).direction==="rtl"?-1:1;b.draggable=false;let re=fe,ke=false,Ve=ct=>{ke=true,re=fe+(ct.clientX-j)*Ke,a.setColumnWidth(r.id,re,false);},ht=()=>{window.removeEventListener("pointermove",Ve),window.removeEventListener("pointerup",ht),window.removeEventListener("pointercancel",ht),ke&&a.setColumnWidth(r.id,re,true),b.draggable=Ee&&r.def.reorderable!==false;};window.addEventListener("pointermove",Ve),window.addEventListener("pointerup",ht),window.addEventListener("pointercancel",ht);}),b.appendChild(h);}Me.appendChild(b);}t&&Ko(t)?.focus({preventScroll:true});}let _r=null,Kn=null;function Bi(e){if(e===_r)return;_r=e;let t=[];for(let o=0;o<e.length;o++){let n=e[o];n&&n.kind!=="data"&&t.push(o);}Kn=t.length>0?t:null;}function Vi(e){if(!Kn)return e+1;let t=0,o=Kn.length;for(;t<o;){let n=t+o>>1;Kn[n]<=e?t=n+1:o=n;}return e+1-t}let bt=[];function Pn(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:mt}}if(e==="data"&&ho&&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:mt}}if(e==="group"){let p=w("kanuni-datagrid-group-cell");p.setAttribute("role","gridcell"),p.setAttribute("aria-colindex","1");let E=w("kanuni-datagrid-group-twisty","span");E.setAttribute("aria-hidden","true");let b=w("kanuni-datagrid-group-caption","span"),x=w("kanuni-datagrid-group-label","span"),F=w("kanuni-datagrid-group-count","span"),K=w("kanuni-datagrid-group-aggregates","span"),H=null;return Jt&&pn?.mode==="multiple"&&(H=document.createElement("input"),H.type="checkbox",H.className="kanuni-datagrid-group-checkbox",H.tabIndex=-1,H.addEventListener("change",()=>{let m=t.getAttribute("data-group-key");m!==null&&a.toggleGroupSelection(m);}),H.addEventListener("click",m=>m.stopPropagation()),H.addEventListener("mousedown",m=>m.stopPropagation()),p.appendChild(H)),p.append(E,b,x,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:H,twisty:E,caption:b,label:x,count:F,aggregates:K},epoch:mt}}if(fn){let p=w("kanuni-datagrid-row-grip","span");p.setAttribute("aria-hidden","true"),p.title=C.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(Rt)return {kind:e,root:t,cells:[],rowNumberCell:null,selectInput:null,detailToggle:null,leadingSpacer:null,trailingSpacer:null,epoch:mt};if(Co){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=`${gr}px`,p.style.flex="none",p.style.insetInlineStart="0px",p.appendChild(w("kanuni-datagrid-status-icon","span")),t.appendChild(p);}let o=null;A&&(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=`${Rn}px`,o.style.flex="none",o.style.insetInlineStart=`${vo}px`,t.appendChild(o));let n=null;if(Qt){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((A?1:0)+1)),p.style.width=`${xn}px`,p.style.flex="none",p.style.insetInlineStart=`${ko}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 x=t.getAttribute("data-row-key");if(x===null)return;let F=a.getRows().find(K=>K!==void 0&&String(K.key)===x);F&&F.kind==="data"&&a.toggleDetail(F.key);}),E.addEventListener("mousedown",b=>b.stopPropagation()),p.appendChild(E),t.appendChild(p),n=E;}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((A?1:0)+(Qt?1:0)+1)),p.style.width=`${so}px`,p.style.flex="none",p.style.insetInlineStart=`${Hr}px`;let E=document.createElement("input");E.type="checkbox",E.tabIndex=-1;let b=()=>{let x=t.getAttribute("data-row-key");if(x===null)return;let F=a.getRows().find(K=>K!==void 0&&String(K.key)===x);F?.kind==="group"?a.toggleGroupSelection(String(F.key)):F&&a.toggleRow(F.key);};p.addEventListener("mousedown",x=>x.stopPropagation()),p.addEventListener("click",x=>{x.target.tagName!=="INPUT"&&(x.stopPropagation(),b());}),E.addEventListener("change",b),E.addEventListener("click",x=>x.stopPropagation()),E.addEventListener("mousedown",x=>x.stopPropagation()),p.appendChild(E),t.appendChild(p),i=E;}let d=[],s=null,r=false;for(let p of ut){!p.pinned&&!r&&(s=document.createElement("div"),s.style.flex=`0 0 ${Ue}px`,t.appendChild(s),r=true);let E=w(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 ${Ro}px`,t.appendChild(c),{kind:e,root:t,cells:d,rowNumberCell:o,selectInput:i,detailToggle:n,leadingSpacer:s,trailingSpacer:c,epoch:mt}}let nn="",Lo="case";function bn(e,t){if(nn===""||t===""){e.textContent=t;return}let o=datagridCore.foldMatchText(t,Lo),n=o.indexOf(nn);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+nn.length),i.push(r),d=n+nn.length,n=o.indexOf(nn,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 Wr(e,t,o){let n=a.getColumnModel().getCellValue(o.data,t.id),i=t.def;if(i.renderCell){let r=i.renderCell({value:n,row:o.data,node:o,column:i});typeof r=="string"?e.textContent=r:e.replaceChildren(r);return}let d=datagridCore.lookupLabel(i,n);if(d!==null){bn(e,d);return}if(i.valueFormatter){let r=i.valueFormatter(n,o.data);bn(e,typeof r=="string"?r:String(r??""));return}if(i.dateFormat&&i.dataType==="date"){bn(e,datagridCore.formatDateValue(n,i.dateFormat));return}let s=datagridCore.numberCellText(i,n);if(s!==null){bn(e,s);return}bn(e,n==null?"":String(n));}function _i(e,t){return e.kind==="group"&&!t.group}function Wi(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:wi(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(yo()+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),Wr(r,s,o);}function qi(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",C.rowStatusRetry,e.retry),e.remove&&n("dg-row-delete",C.rowStatusDelete,e.remove),t}function qr(){if(!nt?.messages)return;let e=Qe?.engine??he?.()??null,t=nt.get,o=datagridCore.rowMessageKeys(nt,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 Ur(e,t){let o=nt&&t?.kind==="data"?datagridCore.resolveRowStatus(nt,t.data,t.key,Qe?.engine??he?.()??null):null,n=e.getAttribute("data-row-status");if(n!==null&&e.classList.remove(`kanuni-datagrid-row--status-${n}`,"kanuni-datagrid-row--status-tint","kanuni-datagrid-row--status-strike"),!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,nt.tint,nt.strike).split(" ")),e.setAttribute("aria-description",datagridCore.rowStatusDescription(o,C)),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 So(e,t,o){let n=e.root;if(n.setAttribute("aria-rowindex",String(o+1+wo())),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 h=nt?datagridCore.rowMessageModel(nt,t.parentKey,t.data,Qe?.engine??he?.()??null,C):null,$=h?`${String(t.parentKey)}|${h.text}|${h.retry?1:0}${h.remove?1:0}`:"";n.getAttribute("data-message-sig")!==$&&(n.setAttribute("data-message-sig",$),m.textContent="",h&&m.appendChild(qi(h)));return}if(n.removeAttribute("data-message-for"),n.removeAttribute("data-message-sig"),t.kind==="detail"||t.kind==="editform"){let m=e.panelCell,h=t.kind==="detail";n.className=`kanuni-datagrid-row ${h?"kanuni-datagrid-detail-row":"kanuni-datagrid-editform-row"}`,n.style.height=`${t.height}px`,h?(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=h?"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 j=h?br?.(t.data):t.parentKey===null?void 0:Di?.(t.parentKey,t.data);m.textContent="",typeof j=="string"?m.textContent=j:j&&m.appendChild(j);}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=zr?"":`${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",S&&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",te&&r!==null&&r.rowKey===t.key),Ur(n,t);let c=t.kind==="data"&&!_i(t,e)?a.planRowColSpans(t,a.getVirtualWindow().columns):null;if(e.leadingSpacer&&(e.leadingSpacer.style.flex=`0 0 ${Math.max(0,Ue-(c?.leadingDelta??0))}px`),e.trailingSpacer&&(e.trailingSpacer.style.flex=`0 0 ${Math.max(0,Ro-(c?.trailingDelta??0))}px`),Wi(e,c,t),fn){let m=Bt!==null&&String(Bt.key)===String(t.key);n.classList.toggle("kanuni-datagrid-row--drop-before",m&&Bt.side==="before"),n.classList.toggle("kanuni-datagrid-row--drop-after",m&&Bt.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(Vi(o))),e.detailToggle&&(e.detailToggle.hidden=E),e.selectInput){let m=d!==null&&pn?.mode==="multiple";if(e.selectInput.hidden=p||d!==null&&!m,e.selectInput.classList.toggle("kanuni-datagrid-group-checkbox",m),m){let h=a.getGroupSelectionState(String(d.key));e.selectInput.checked=h==="all",e.selectInput.indeterminate=h==="some",e.selectInput.disabled=false,e.selectInput.setAttribute("aria-label",C.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",C.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?C.collapseDetails:C.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 h=a.getColumnModel().getDef(m.columnId),$=h?.headerName??m.columnId;if(e.group.caption.textContent=`${$}:`,e.group.label.textContent=datagridCore.lookupLabel(h,m.value)??m.display??(m.label===""?C.filterBlank:m.label),e.group.count.textContent=`(${m.count})`,e.group.check){let fe=a.getGroupSelectionState(String(m.key));e.group.check.checked=fe==="all",e.group.check.indeterminate=fe==="some",e.group.check.setAttribute("aria-label",C.selectGroupAria.replace("{count}",String(m.count)).replace("{group}",e.group.label.textContent??""));}e.group.aggregates.textContent="";let j=m.aggregates??null;if(j)for(let fe of a.getSummaryDefs()){let Ke=w("kanuni-datagrid-group-aggregate","span"),re=w("kanuni-datagrid-group-aggregate-label","span"),ke=a.getColumnModel().getDef(fe.columnId);re.textContent=`${datagridCore.summaryLabel(fe,go)} ${ke?.headerName??fe.columnId}:`,Ke.append(re,` ${datagridCore.formatSummaryValue(fe,j[datagridCore.summaryKey(fe.columnId,fe.type)],ke)}`),e.group.aggregates.appendChild(Ke);}return}if(t.kind!=="data"&&!p&&!d){for(let{el:m}of e.cells)m.textContent="";return}if(Rt&&E){let m=fn?1:0;for(;n.childNodes.length>m;)n.removeChild(n.lastChild);let h=w("kanuni-datagrid-cell");d?h.appendChild(Yr(d)):(h.appendChild(jr(t)),Ao(h,t,t.tree)),n.appendChild(h);return}if(Rt){let m=fn?1:0,h=Rt({row:t.data,node:t,rowIndex:o,selected:a.isRowSelected(t.key),focused:te&&r!==null&&r.rowKey===t.key});if(h instanceof Node&&n.childNodes.length===m+1&&n.childNodes[m]===h)return;for(;n.childNodes.length>m;)n.removeChild(n.lastChild);typeof h=="string"?n.appendChild(document.createTextNode(h)):h&&n.appendChild(h);return}let b=r!==null&&r.rowKey===t.key?r.columnId:null,x=d?void 0:t.tree,F=d&&Nr?datagridCore.GROUP_COLUMN_ID:x||d?(()=>{let m=a.getColumnLayout();return (m.left[0]??m.center[0]??m.right[0])?.state.id??null})():null,K=x?F:null,H=a.hasCellSpans();for(let{el:m,slot:h}of e.cells){m.style.display=c?.covered.has(h.id)?"none":"",m.style.width=`${c?.widths.get(h.id)??h.width}px`;let $=c?.spans.get(h.id);$?m.setAttribute("aria-colspan",String($)):m.removeAttribute("aria-colspan");let j=(an||mo)&&!E?{node:t,columnId:h.id,rowIndex:o,columnIndex:h.visualIndex,value:a.getColumnModel().getCellValue(t.data,h.id)}:null,fe=an&&d&&h.id!==F?{node:t,columnId:h.id,rowIndex:o,columnIndex:h.visualIndex,value:void 0}:null,Ke=j&&an?an(j):fe?an(fe):void 0,re=false;if(Ke!==void 0?Ke instanceof Node&&m.childNodes.length===1&&m.firstChild===Ke?re=true:typeof Ke=="string"?m.textContent=Ke:m.replaceChildren(Ke):d?h.id===F?m.replaceChildren(Yr(d)):m.replaceChildren(...ji(d,h.id)):p?h.id===K?(m.replaceChildren(jr(t)),Ao(m,t,x)):m.replaceChildren():(Wr(m,h,t),x&&h.id===K&&Ao(m,t,x)),H&&!re){let Se=zi(o,h.id);m.classList.toggle("kanuni-datagrid-cell--span",Se?.kind==="draw"),m.classList.toggle("kanuni-datagrid-cell--span-covered",Se?.kind==="covered");let Te=Ke!==void 0;if(Se?.kind==="covered"&&b!==h.id&&!Te)m.replaceChildren();else if(Se?.kind==="draw"){let rn=w("kanuni-datagrid-span-box");rn.style.height=`${Se.height}px`,rn.append(...Array.from(m.childNodes)),m.appendChild(rn);}}else H||m.classList.remove("kanuni-datagrid-cell--span","kanuni-datagrid-cell--span-covered");if(Ht){let Se=!E&&!!Mo(t.key,h.id,t.data);m.classList.toggle("kanuni-datagrid-cell--noted",Se);}m.id=`${u.gridId}-cell-${String(t.key)}-${h.id}`,m.setAttribute("aria-colindex",String(yo()+h.visualIndex+1)),m.classList.toggle("kanuni-datagrid-cell--focused",b===h.id);let ke=t.kind==="data"?a.getFindMatchKind(t.key,h.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 Se of Ve.split(" "))m.classList.remove(Se);let ht=j&&mo?mo(j):void 0,ct=h.def.cellClassName,ie=[E?void 0:typeof ct=="function"?ct({value:a.getColumnModel().getCellValue(t.data,h.id),row:t.data,node:t,column:h.def}):ct,ht].filter(Boolean).join(" ")||void 0;if(ie){for(let Se of ie.split(" "))m.classList.add(Se);m.setAttribute("data-slot-classes",ie);}else Ve&&m.removeAttribute("data-slot-classes");}}let zr=u.columns.some(e=>e.autoHeight);function Ui(){if(!zr)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=bt[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 Gn={start:0,end:0};function zi(e,t){let o=a.getCellSpans(t);if(o.length===0)return null;let n=datagridCore.spanRoleAt(o,e,Gn.start,Gn.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 Yi(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=C.rowsLoadFailed;let s=document.createElement("button");s.className="kanuni-datagrid-retry-button",s.type="button",s.setAttribute("data-retry-load",""),s.textContent=C.retryLoad,s.addEventListener("click",()=>a.retryFailedLoads()),i.replaceChildren(d,s);}}function Yr(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===""?C.filterBlank:e.label);let s=w("kanuni-datagrid-group-count","span");return s.textContent=`(${e.count})`,Nr?t.append(o,d,s):t.append(o,i,d,s),t}function ji(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 jr(e){let t=w("kanuni-datagrid-tree-path-label","span");return t.textContent=e.label,t}function Ao(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?C.collapseTreeRow:C.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 Mo=(e,t,o)=>Ht?Ht.get({rowKey:e,columnId:t,row:o})??null:null,Xr=null,Tt=po?w("kanuni-datagrid-overlay"):null;Tt&&(Tt.style.position="absolute",Tt.style.inset="0",Tt.style.pointerEvents="none",$e.appendChild(Tt));function Xi(){if(!po||!Tt)return;let e=po();e!==Xr&&(Xr=e,e?Tt.replaceChildren(e):Tt.replaceChildren());}function Ji(e){let t=a.getColumnLayout(),o=Array.from(kt.children);B.setAttribute("aria-rowcount",String(wo()+e+o.length)),B.setAttribute("aria-colcount",String(yo()+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(wo()+e+i+1)));}function $n(){Xi(),dn&&Lr();let e=a.getVirtualWindow(),t=a.getRows(),o=en?{...e,rows:{...e.rows,start:0,end:t.length,offsetY:0,totalHeight:0}}:e;Bi(t),Ji(t.length),$e.style.height=`${o.rows.totalHeight}px`,pe.style.transform=`translateY(${o.rows.offsetY}px)`,Lo=a.getSearchFold(),nn=a.getFindNeedle()||(vi?datagridCore.normalizeSearch(a.getSearchText(),Lo):"");let n=Math.max(0,Math.min(o.rows.end,t.length)-o.rows.start);for(Gn.start=o.rows.start,Gn.end=Math.min(o.rows.end,t.length)-1;bt.length>n;)bt.pop().root.remove();for(let i=0;i<n;i++){let d=o.rows.start+i,s=t[d];if(!s){let p=bt[i];if(!p||p.kind!=="loading"){let E=Pn("loading");p?pe.replaceChild(E.root,p.root):pe.appendChild(E.root),bt[i]=E,p=E;}p.root.setAttribute("aria-rowindex",String(d+2)),p.root.style.height=`${a.getDataRowHeight()??a.getRowHeight()}px`,Yi(p.root,d);continue}let r=s.kind==="data"?"data":s.kind==="group"?ho?"data":"group":s.kind==="detail"||s.kind==="editform"||s.kind==="message"?"panel":"stub",c=bt[i];if(!c||c.epoch!==mt||c.kind!==r){let p=Pn(r);c?pe.replaceChild(p.root,c.root):pe.appendChild(p.root),bt[i]=p,c=p;}So(c,s,d);}Ui(),Jr();}let On=[];function Jr(){if(!a.hasStickyGroupHeaders())return;let e=en?[]:a.getStickyGroupRows();for(We.style.width=`${a.getColumnLayout().totalWidth}px`;On.length>e.length;)On.pop().wrap.remove();let t=ho?"data":"group";e.forEach((o,n)=>{let i=On[n];if(!i||i.rs.epoch!==mt||i.rs.kind!==t){let d=Pn(t),s=i?.wrap??w("kanuni-datagrid-sticky-group");s.textContent="",s.appendChild(d.root),i||We.appendChild(s),i={wrap:s,rs:d},On[n]=i;}So(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"));});}We.addEventListener("click",e=>{let o=e.target.closest("[data-group-key]")?.getAttribute("data-group-key");o&&a.scrollToRow(o);});let Bn=datagridCore.createDebouncedCommit(Ci??(a.isRemote()?200:0));function Qr(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 wn=[],hn=new Map,Do=false;function Qi(){!O||Do||Et.querySelectorAll("select[data-filter-operator-for]").forEach(e=>{let t=e.getAttribute("data-filter-operator-for");if(Bn.isPending(t))return;let o=a.getColumnModel().getDef(t),n=a.getColumnFilter(t,datagridCore.FILTER_PART_ROW),i=hn.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="");hn.set(t,s),e.value=s,d&&(d.disabled=datagridCore.findCustomFilterOperator(o,s)?.operandType==="none");});}function No(){if(!O)return;if(wn.forEach(n=>n()),wn=[],Et.textContent="",st>0){let n=w("kanuni-datagrid-filter-cell kanuni-datagrid-filter-cell--pinned");n.setAttribute("role","gridcell"),n.style.width=`${st}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(kr)){let i=document.createElement("option");i.value=n,t.appendChild(i);}Et.appendChild(t);}return t.id};for(let n of ut){if(!n.pinned&&!e){if(Ue>0){let s=w("kanuni-datagrid-spacer");s.style.width=`${Ue}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),wn.push(Qr(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(C.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,hn.get(n.id)??"");n.def.dataType==="date"&&!c()&&s.setAttribute("list",o());let p=()=>{let b=c();Do=true;try{a.setColumnFilter(n.id,b?datagridCore.parseCustomFilterInput(n.id,s.value,b):datagridCore.parseFilterInput(n.id,s.value,n.def.dataType,kr),datagridCore.FILTER_PART_ROW);}finally{Do=false;}};if(r.length>0){let b=document.createElement("select");b.className="kanuni-datagrid-filter-operator",b.setAttribute("aria-label",datagridCore.fillText(C.filterOperatorAria,{column:n.def.headerName??n.id})),b.setAttribute("data-filter-operator-for",n.id);let x=[["",C.filterOperatorDefault],...r.map(K=>[K.id,K.label])];for(let[K,H]of x){let m=document.createElement("option");m.value=K,m.textContent=H,b.appendChild(m);}let F=datagridCore.customFilterInputFromNode(a.getColumnFilter(n.id,datagridCore.FILTER_PART_ROW),n.def);F&&(hn.set(n.id,F.operatorId),s.value=F.text),b.value=c()?.id??"",s.disabled=c()?.operandType==="none",b.addEventListener("change",()=>{hn.set(n.id,b.value),s.disabled=c()?.operandType==="none",c()?s.removeAttribute("list"):n.def.dataType==="date"&&s.setAttribute("list",o()),Bn.cancel(n.id),p();}),i.appendChild(b);}s.addEventListener("input",()=>Bn.schedule(n.id,p));let E=()=>{Bn.cancel(n.id),p();};s.addEventListener("keydown",b=>{b.key==="Enter"&&E();}),s.addEventListener("blur",E),i.appendChild(s);}Et.appendChild(i);}}let Io=()=>{},Zr=null;function Zi(){let e=datagridCore.resolveToolbar(yr);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??C.toolbarSearch,o.setAttribute("aria-label",t?.ariaLabel??C.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-${++Xd}`,n.setAttribute("role","alert"),n.setAttribute("data-testid","dg-toolbar-search-error"),n.style.display="none";let i=()=>{let H=t?.validate?.(o.value)??null;return n.textContent=H??"",n.style.display=H===null?"none":"",H===null?(o.removeAttribute("aria-invalid"),o.removeAttribute("aria-describedby")):(o.setAttribute("aria-invalid","true"),o.setAttribute("aria-describedby",n.id)),H===null},d=null,s=false,r=()=>{d&&clearTimeout(d),d=null,s=false;let H=o.value.trim();i()&&a.getSearchText()!==H&&a.setSearchText(H);};Zr=a.events.on("filterChanged",({searchText:H})=>{s||o.value.trim()===H||(o.value=H,i());}),o.addEventListener("input",()=>{s=true,d&&clearTimeout(d),d=null,i()&&(d=setTimeout(r,t?.debounce??Ti));}),t?.applyOnBlur!==false&&(o.addEventListener("blur",r),o.addEventListener("keydown",H=>{H.key==="Enter"&&r();}));let c=w("kanuni-datagrid-toolbar-spacer"),p=null;if(e.columns??ge){let H=document.createElement("button");H.type="button",datagridCore.setCommandContent(H,"columns",C.toolbarColumns??"Columns"),H.setAttribute("aria-haspopup","dialog"),H.addEventListener("click",()=>{let m=H.getBoundingClientRect();ua({left:m.left,top:m.bottom+2});}),p=H;}let E=vt&&Ri,b=vt&&xi,x=document.createElement("button");x.type="button",x.className="kanuni-datagrid-toolbar-icon-button",x.setAttribute("aria-haspopup","menu"),x.setAttribute("aria-label",C.exportMenu),x.setAttribute("data-testid","dg-export-menu"),x.title=C.exportMenu,x.appendChild(os());let F=null;x.addEventListener("click",()=>{if(F)return;let H=x.getBoundingClientRect();wt({left:H.right-190,top:H.bottom+2},m=>{m.setAttribute("role","menu"),m.setAttribute("aria-label",C.exportMenu);let h=[{kind:"csv",label:C.exportCsv,testId:"dg-export-csv",on:a.canExportAll()},{kind:"excel",label:C.exportExcel,testId:"dg-export-excel",on:E},{kind:"excel-selected",label:C.exportExcelSelected,testId:"dg-export-excel-selected",on:E},{kind:"pdf",label:C.exportPdf,testId:"dg-export-pdf",on:b}];for(let $ of h){if(!$.on)continue;let j=document.createElement("button");j.type="button",j.className="kanuni-datagrid-menu-item",j.setAttribute("role","menuitem"),j.setAttribute("data-testid",$.testId),j.textContent=$.label,$.kind==="excel-selected"&&a.getSelectedCount()===0&&(j.disabled=true),j.addEventListener("click",()=>{F=$.kind,x.disabled=true,He(),tr(a,$.kind).then(fe=>{F=null,x.disabled=false,fe.error&&Io(fe.error);});}),m.appendChild(j);}},"kanuni-datagrid-filter-popup kanuni-datagrid-export-menu");});for(let H of Ei??[])ft.append(H);t&&ft.append(o,n),ft.append(c),p&&ft.append(p),e.export&&(a.canExportAll()||E||b)&&ft.append(x);for(let H of ki??[])ft.append(H);let K=w("kanuni-datagrid-toolbar-error","span");K.setAttribute("role","alert"),K.style.display="none",ft.append(K),Io=H=>{K.textContent=H,K.style.display="";};}function ea(){if(!rt.isConnected)return;let e=a.getPage(),t=a.getPageCount(),o=document.activeElement,n=o instanceof HTMLElement&&rt.contains(o)?o.getAttribute("data-pager"):null;rt.textContent="";let i=(c,p,E,b,x)=>{let F=document.createElement("button");return F.type="button",F.textContent=c,F.setAttribute("aria-label",p),F.setAttribute("data-pager",x),F.disabled=E,F.addEventListener("click",b),F},d=w("kanuni-datagrid-pager-buttons"),s=e<=0,r=e>=t-1;if(d.append(i("\xAB",C.pagerFirst??"First",s,()=>a.setPage(0),"first"),i("\u2039",C.pagerPrevious??"Previous",s,()=>a.setPage(e-1),"previous")),An?.pageButtons)for(let c of datagridCore.pageButtonItems(e,t,An.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),E=i(p,C.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=w("kanuni-datagrid-pager-current","span");c.textContent=`${e+1} / ${t}`,d.append(c);}if(d.append(i("\u203A",C.pagerNext??"Next",r,()=>a.setPage(e+1),"next"),i("\xBB",C.pagerLast??"Last",r,()=>a.setPage(t-1),"last")),rt.appendChild(d),n!==null){let c=rt.querySelector(`[data-pager="${n}"]`);(c&&!c.disabled?c:rt.querySelector('[aria-current="page"]')??rt.querySelector("button:not(:disabled)"))?.focus();}}function Ho(){if(!Ze)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+st}px`,st>0){let i=w("kanuni-datagrid-footer-cell kanuni-datagrid-footer-cell--pinned");i.style.width=`${st}px`,i.style.insetInlineStart="0px",Oe.appendChild(i);}let n=false;for(let i of ut){if(!i.pinned&&!n){if(Ue>0){let c=w("kanuni-datagrid-spacer");c.style.width=`${Ue}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,go)} \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=q&&!datagridCore.isChromeColumn(i.id)?"\xB7":"",r.appendChild(c);}Oe.appendChild(r);}}function el(){Kt()>0?ot.isConnected||Ie.insertBefore(ot,We.isConnected?We:$e):ot.remove(),Rr()>0?kt.isConnected||Ie.insertBefore(kt,$e.nextSibling):kt.remove(),We.style.setProperty("--dg-sticky-below",`${Kt()>0?Kt()*a.getRowHeight()+1:0}px`);}function Vn(){let e=Rt;Rt=g;try{tl();}finally{Rt=e;}}function tl(){let e=(t,o,n,i)=>{t.textContent="",o.forEach((d,s)=>{let r=Pn("data");So(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(bo+Pt+s+1)),r.root.removeAttribute("aria-selected"),Ur(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",ot,W],["bottom",kt,le]]){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 _n=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=ta(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()};wt({left:e.clientX,top:e.clientY},c=>{c.setAttribute("role","menu"),qn(c,d,r);},"kanuni-datagrid-context-menu");};ot.addEventListener("contextmenu",_n),kt.addEventListener("contextmenu",_n);function ta(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:C.pinRowTop,onSelect:()=>a.pinRow(e,"top")}),o!=="bottom"&&n.push({id:"__dg-pin-bottom",label:C.pinRowBottom,onSelect:()=>a.pinRow(e,"bottom")}),o&&n.push({id:"__dg-unpin",label:C.unpinRow,onSelect:()=>a.pinRow(e,null)}),t&&n.length>0?[{id:"__dg-sep-pin",separator:true},...n]:n}let _t=null,Wt=null,Fo=null;function He(e=true){Wt?.(),Wt=null,_t?.remove(),_t=null;let t=Fo;Fo=null,e&&t?.();}function Ko(e){return Me.querySelector(`.kanuni-datagrid-header-cell[data-column-id="${datagridCore.cssEscape(e)}"]`)}function na(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=_t?.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 oa(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 wt(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&&Me.contains(d)?d.closest("[data-column-id]")?.getAttribute("data-column-id")??null:null)??n??null;_t=w(`${lo(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),_t.appendChild(r),datagridCore.portalTarget(u.portalContainer).appendChild(datagridCore.markPortal(_t,u.portalContainer)),oa(r,e),Fo=()=>{let b=s?Ko(s):null,x=d?.isConnected?d:b;x?.focus({preventScroll:true}),x&&document.activeElement!==x&&b&&b.focus({preventScroll:true});},r.getAttribute("role")==="menu"&&(na(r),r.querySelector('[role="menuitem"]:not(:disabled)')?.focus({preventScroll:true}));let c=_t,p=b=>{c.contains(b.target)||He(false);},E=b=>{b.key==="Escape"&&He();};document.addEventListener("pointerdown",p,true),document.addEventListener("keydown",E,true),Wt=()=>{document.removeEventListener("pointerdown",p,true),document.removeEventListener("keydown",E,true);};}let Lt=25,ra=8,Po=new Map,Go=0;function aa(e,t){let o=t.getBoundingClientRect(),n=++Go;if(a.getColumnModel().getDef(e)?.renderFilter){let s=null,r=null;wt({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(C.filterPopupAria,{column:a.getColumnModel().getDef(e)?.headerName??e})),E.setAttribute("data-column-id",e),E.tabIndex=-1,s=Qr(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=Wt;Wt=()=>{p?.(),s?.(),s=null;};return}let i=null;wt({left:o.left,top:o.bottom+2},s=>{s.setAttribute("role","dialog"),s.setAttribute("aria-label",datagridCore.fillText(C.filterPopupAria,{column:a.getColumnModel().getDef(e)?.headerName??e}));let r=[],c=true,p=new Set,E=false,b=0,x="",F=[],K={value:void 0,label:""},H=L=>L.value===null||L.value===void 0,m=[],h=L=>L===K?datagridCore.NONBLANK_KEY:datagridCore.distinctEntryKey(L),$=L=>L===K?C.filterNonBlank:datagridCore.distinctDisplayText(L,{filterBlank:C.filterBlank,filterEmptyText:C.filterEmptyText,filterSpace:C.filterSpace,filterSpaces:C.filterSpaces}),j=null,fe="",Ke=[],re=null,ke=document.createElement("input");ke.type="search",ke.className="kanuni-datagrid-filter-search",ke.placeholder=C.search,ke.setAttribute("data-testid","dg-filter-search");let Ve=null;_&&(Ve=document.createElement("button"),Ve.type="button",Ve.className="kanuni-datagrid-filter-custom",Ve.setAttribute("data-testid","dg-filter-custom"),Ve.textContent=C.filterCustom,Ve.addEventListener("click",()=>{He(),_({columnId:e});}));let ht=w("kanuni-datagrid-filter-actions"),ct=document.createElement("button");ct.type="button",ct.textContent=C.filterSelectAll,ct.addEventListener("click",()=>{if(re)return re.selectAll();if(E=true,x.trim()==="")p=new Set(r.map(datagridCore.distinctEntryKey));else for(let L of F)p.add(datagridCore.distinctEntryKey(L));je();});let yn=document.createElement("button");yn.type="button",yn.textContent=C.clear,yn.addEventListener("click",()=>{if(re)return re.clear();if(E=true,x.trim()==="")p=new Set;else for(let L of F)p.delete(datagridCore.distinctEntryKey(L));je();}),ht.append(ct,yn);let ie=w("kanuni-datagrid-filter-list");ie.setAttribute("role","listbox"),ie.setAttribute("aria-multiselectable","true");let Se=document.createElement("div");Se.style.position="relative";let Te=document.createElement("div");Se.appendChild(Te),ie.appendChild(Se);let rn=()=>{let L=datagridCore.foldText(x.trim());if(!L){F=r;let Y=r.findIndex(H);m=Y<0?r:[...r.slice(0,Y+1),K,...r.slice(Y+1)];return}j||(j=r.map(Y=>datagridCore.foldText(Y.label))),F=fe!==""&&L.includes(fe)?Ke.filter(Y=>datagridCore.foldText(Y.label).includes(L)):r.filter((Y,ne)=>j[ne].includes(L)),fe=L,Ke=F,m=F;},vl=L=>{let Y=L.getRowCount(),ne=L.isLoading();ie.setAttribute("aria-busy",String(ne)),ie.setAttribute("aria-setsize",String(Y));let me=document.activeElement instanceof HTMLElement?document.activeElement.closest(".kanuni-datagrid-filter-item")?.getAttribute("data-index")??null:null;if(Te.textContent="",ne||Y===0){Se.style.height="",Te.style.transform="";let Ge=w("kanuni-datagrid-filter-empty");Ge.textContent=ne?C.filterLoading:C.filterNoMatch,Te.appendChild(Ge);return}Se.style.height=`${L.getWindow(ie.scrollTop,240).totalHeight}px`;let Fe=L.getWindow(ie.scrollTop,Math.max(ie.clientHeight,150));Se.style.height=`${Fe.totalHeight}px`,Te.style.transform=`translateY(${Fe.offsetY}px)`;for(let Ge=Fe.start;Ge<Fe.end;Ge++){let Ae=L.getRow(Ge),De=w("kanuni-datagrid-filter-item");if(De.setAttribute("role","option"),De.setAttribute("data-index",String(Ge)),!Ae){De.classList.add("kanuni-datagrid-filter-item--pending"),De.setAttribute("aria-selected","false"),De.setAttribute("aria-busy","true");let Ct=document.createElement("span");Ct.setAttribute("aria-hidden","true"),Ct.textContent="\u2026",De.appendChild(Ct),Te.appendChild(De);continue}let Cn=L.isChecked(Ae);De.setAttribute("aria-selected",String(Cn)),De.tabIndex=-1,De.setAttribute("data-value",Ae.label),Ge===b&&De.classList.add("kanuni-datagrid-filter-item--active");let Nt=document.createElement("input");Nt.type="checkbox",Nt.readOnly=true,Nt.checked=Cn,Nt.tabIndex=-1;let Xe=document.createElement("span");Xe.textContent=Ae.nonBlank?C.filterNonBlank:datagridCore.distinctDisplayText({value:Ae.blank?null:Ae.value,label:Ae.label},{filterBlank:C.filterBlank,filterEmptyText:C.filterEmptyText,filterSpace:C.filterSpace,filterSpaces:C.filterSpaces}),De.append(Nt,Xe),De.addEventListener("click",()=>L.toggle(Ae)),De.addEventListener("focus",()=>{b=Ge,Zn();}),Te.appendChild(De);}Zn(),L.ensure(Fe.start,Fe.end),me!==null&&Te.querySelector(`[data-index="${b}"]`)?.focus({preventScroll:true});},je=()=>{if(re&&!c)return vl(re);if(ie.setAttribute("aria-busy",String(c)),ie.setAttribute("aria-setsize",String(m.length)),c){Se.style.height="",Te.textContent="";let Ae=w("kanuni-datagrid-filter-empty");Ae.textContent=C.filterLoading,Te.appendChild(Ae);return}if(m.length===0){Se.style.height="",Te.style.transform="",Te.textContent="";let Ae=w("kanuni-datagrid-filter-empty");Ae.textContent=C.filterNoMatch,Te.appendChild(Ae);return}let L=ie.clientHeight||240,Y=Math.max(0,Math.floor(ie.scrollTop/Lt)-ra),ne=Math.ceil(L/Lt)+ra*2,me=Math.min(Y,Math.max(0,m.length-1)),Fe=Math.min(m.length,me+ne);Se.style.height=`${m.length*Lt}px`,Te.style.transform=`translateY(${me*Lt}px)`;let Ge=document.activeElement instanceof HTMLElement?document.activeElement.closest(".kanuni-datagrid-filter-item")?.getAttribute("data-index")??null:null;Te.textContent="";for(let Ae=me;Ae<Fe;Ae++){let De=m[Ae],Cn=h(De),Nt=De===K?datagridCore.distinctNonBlankTicked(r,p):p.has(Cn),Xe=w("kanuni-datagrid-filter-item");Xe.setAttribute("role","option"),Xe.setAttribute("aria-selected",String(Nt)),Xe.tabIndex=-1,Xe.setAttribute("data-value",De.label),Xe.setAttribute("data-index",String(Ae)),Ae===b&&Xe.classList.add("kanuni-datagrid-filter-item--active");let Ct=document.createElement("input");Ct.type="checkbox",Ct.readOnly=true,Ct.checked=Nt,Ct.tabIndex=-1;let Wa=document.createElement("span");Wa.textContent=$(De),Xe.append(Ct,Wa),Xe.addEventListener("click",()=>Oa(Cn)),Xe.addEventListener("focus",()=>{b=Ae,Zn();}),Te.appendChild(Xe);}Zn(),Ge!==null&&Te.querySelector(`[data-index="${b}"]`)?.focus({preventScroll:true});};function Zn(){let L=false;for(let Y of Array.from(Te.querySelectorAll(".kanuni-datagrid-filter-item"))){if(Y.getAttribute("aria-busy")==="true")continue;let ne=Number(Y.getAttribute("data-index"))===b;Y.tabIndex=ne?0:-1,Y.classList.toggle("kanuni-datagrid-filter-item--active",ne),L||=ne;}ie.tabIndex=L||!Te.querySelector(".kanuni-datagrid-filter-item")?-1:0;}let Oa=L=>{if(E=true,L===datagridCore.NONBLANK_KEY){let Y=datagridCore.distinctNonBlankTicked(r,p);for(let ne of r)H(ne)&&!Y?p.delete(datagridCore.BLANK_KEY):p.add(datagridCore.distinctEntryKey(ne));}else p.has(L)?p.delete(L):p.add(L);for(let Y of Te.querySelectorAll(".kanuni-datagrid-filter-item")){let ne=m[Number(Y.getAttribute("data-index"))];if(!ne)continue;let me=ne===K?datagridCore.distinctNonBlankTicked(r,p):p.has(h(ne));Y.setAttribute("aria-selected",String(me));let Fe=Y.querySelector("input");Fe&&(Fe.checked=me);}};ie.addEventListener("scroll",()=>{Po.set(e,ie.scrollTop),je();});let eo=null,Qo=()=>{if(b=0,re){let L=re;eo&&clearTimeout(eo),eo=setTimeout(()=>{eo=null,L.getSearch()!==x.trim()&&(L.setSearch(x),ie.scrollTop=0,je());},150);return}rn(),je();};ke.addEventListener("input",()=>{x=ke.value,Qo();});let Zo=L=>{if(re){let me=re.getRowCount();if(me===0)return;b=Math.max(0,Math.min(me-1,L)),L<=0?ie.scrollTop=0:L>=me-1&&(ie.scrollTop=ie.scrollHeight),je();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 Y=b*Lt,ne=ie.clientHeight||240;Y<ie.scrollTop?ie.scrollTop=Y:Y+Lt>ie.scrollTop+ne&&(ie.scrollTop=Y+Lt-ne),je(),s.querySelector(`.kanuni-datagrid-filter-item[data-index="${b}"]`)?.focus();},Ba=()=>{if(c)return;if(re){if(re.isLoading())return;a.setColumnFilter(e,re.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 Y=p.has(datagridCore.BLANK_KEY),ne=r.filter(me=>!H(me)&&p.has(datagridCore.distinctEntryKey(me)));ne.length===0?L=Y?{columnId:e,operator:"isnull"}:null:Y?L={logic:"or",nodes:[{columnId:e,operator:"in",value:ne.map(me=>me.value)},{columnId:e,operator:"isnull"}]}:L={columnId:e,operator:"in",value:ne.map(me=>me.value)};}a.setColumnFilter(e,L,datagridCore.FILTER_PART_SET),He();};s.tabIndex=-1,s.addEventListener("keydown",L=>{let Y=L.target===ke;if(!((L.key==="Enter"||L.key===" ")&&L.target instanceof HTMLButtonElement)){if(L.key==="Tab"){let ne=Array.from(s.querySelectorAll('input:not([disabled]), button:not([disabled]), [tabindex="0"]')),me=ne[0],Fe=ne[ne.length-1],Ge=document.activeElement;me&&Fe&&(!L.shiftKey&&(Ge===Fe||Ge===s)?(L.preventDefault(),me.focus()):L.shiftKey&&(Ge===me||Ge===s)&&(L.preventDefault(),Fe.focus()));return}if(L.key==="Backspace"&&!Y){L.preventDefault(),ke.focus(),x=x.slice(0,-1),ke.value=x,Qo();return}if(L.key==="ArrowDown"){L.preventDefault(),Zo(Y?0:b+1);return}if(L.key==="ArrowUp"){L.preventDefault(),Zo(Y?re?0:m.length-1:b-1);return}if(!Y&&(L.key==="Home"||L.key==="End")){L.preventDefault(),Zo(L.key==="Home"?0:(re?re.getRowCount():m.length)-1);return}if(L.key===" "&&!Y){if(L.preventDefault(),re){let me=re.getRow(b);me&&re.toggle(me);return}let ne=m[b];ne&&Oa(h(ne));return}if(L.key==="Enter"){L.preventDefault(),Ba();return}!Y&&L.key.length===1&&L.key!==" "&&!L.ctrlKey&&!L.metaKey&&!L.altKey&&(L.preventDefault(),ke.focus(),x+=L.key,ke.value=x,Qo());}});let Va=w("kanuni-datagrid-filter-footer"),to=document.createElement("button");to.type="button",to.textContent=C.cancel,to.addEventListener("click",()=>He());let yt=document.createElement("button");yt.type="button",yt.className="kanuni-datagrid-filter-primary",yt.setAttribute("data-testid","dg-filter-apply"),yt.textContent=C.apply,yt.disabled=true,yt.addEventListener("click",Ba),Va.append(to,yt),s.append(ke,...Ve?[Ve]:[],ht,ie,Va),je(),queueMicrotask(()=>{ke.isConnected&&ke.focus();});let _a=L=>{r=L,j=null,fe="",c=false,yt.disabled=false;let Y=datagridCore.selectedLabelsFromFilter(a.getColumnFilter(e,datagridCore.FILTER_PART_SET)??a.getColumnFilter(e,datagridCore.FILTER_PART_DEFAULT),r,{text:a.getColumnModel().getDataType(e)==="string"});Y?(E=true,p=new Set(Y)):E||(p=new Set(r.map(datagridCore.distinctEntryKey))),rn();let ne=Po.get(e);je(),ne&&(ie.scrollTop=ne,je());},Dt=a.openRemoteDistinct(e,Lt);if(Dt){re=Dt,i=Dt,Dt.subscribe(()=>{s.isConnected&&re===Dt&&je();}),Dt.start().then(L=>{if(Go!==n||!s.isConnected){Dt.dispose();return}if(L.kind==="paged"){c=false,yt.disabled=false;let Y=Po.get(e);je(),Y&&(ie.scrollTop=Y,je());return}Dt.dispose(),re=null,i=null,_a(a.sortDistinctEntries(L.values));});return}a.getDistinctValueSetAsync(e).then(L=>{Go!==n||!s.isConnected||_a(L.entries);});},void 0,e);let d=Wt;Wt=()=>{d?.(),i?.dispose(),i=null;};}function Wn(e={}){let t=a.getClipboardText(e);a.notifyClipboardGesture("copy",t?t.split(`
2
- `).length:0,()=>a.writeClipboard(t,"copy"));}function nl(e){if(ye===false)return [];let t=ye===true?{}:ye,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:C.menuCopy,shortcut:`${rl}C`,onSelect:()=>Wn()}),t.copyWithHeaders!==false&&n({id:"__dg-copy-headers",label:C.menuCopyWithHeaders,onSelect:()=>Wn({includeHeaders:true})}),t.copyWithGroupHeaders!==false&&ol()&&n({id:"__dg-copy-group-headers",label:C.menuCopyWithGroupHeaders,onSelect:()=>Wn({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:C.exportCsv,excel:C.exportExcel,"excel-selected":C.exportExcelSelected,pdf:C.exportPdf};n({id:"__dg-export",label:C.menuExport,items:i.map(r=>({id:`__dg-export-${r}`,label:s[r],disabled:r==="excel-selected"&&d,onSelect:()=>{tr(a,r).then(c=>{c.error&&Io(c.error);});}}))});}return o}function ol(){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 rl=/Mac|iPhone|iPad|iPod/.test(navigator.platform??"")?"\u2318":"Ctrl+";function qn(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 E=d.items??[];if(E.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 x=()=>{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 H of E){if(H.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"),H.disabled&&(m.disabled=true);let h=w("kanuni-datagrid-menu-label","span");h.textContent=H.label??"",m.appendChild(h),m.addEventListener("click",()=>{H.onSelect?.(o),He();}),F.appendChild(m);}e.parentElement?.appendChild(F),oa(F,{left:K.right,top:Math.max(0,K.top-4)}),n=F,c.setAttribute("aria-expanded","true"),na(F,()=>{i(),c.setAttribute("aria-expanded","false"),c.focus();});};c.addEventListener("mouseenter",x),c.addEventListener("click",x);}else c.addEventListener("mouseenter",i),c.addEventListener("click",()=>{d.onSelect?.(o),He();});r.appendChild(c),e.appendChild(r);});}let ia=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),!Ce&&!ye&&!a.isRowPinningEnabled()||!n||n.node.kind!=="data"||(e.preventDefault(),n.columnId&&!a.focusCell(n.node.key,n.columnId))||!n.columnId&&a.isRowLeaveBlocked(n.node.key))return;a.isRowSelected(n.node.key)||a.handleRowClick(n.node.key,{});let i={row:n.node.data,node:n.node,rowIndex:n.rowIndex,columnId:n.columnId,selectedKeys:a.getSelectedKeys()},d=(typeof Ce=="function"?Ce(i):Ce)??[],s=[...d,...al(i,d.length>0)],r=[...s,...ta(n.node.key,s.length>0)],c=nl(r.length>0);r.length===0&&c.length===0||wt({left:e.clientX,top:e.clientY},p=>{p.setAttribute("role","menu"),qn(p,[...r,...c],i);},"kanuni-datagrid-context-menu");};function al(e,t){if(!Ht?.onChange||Ht.menu===false)return [];let o=e.columnId;if(!o)return [];let n=e.node.key,i=Mo(n,o,e.row),d=[];return t&&d.push({separator:true,id:"__note-sep"}),d.push({id:"__note-edit",label:i?C.editNote:C.addNote,onSelect:()=>il(n,o,e.row,i??"")}),i&&d.push({id:"__note-delete",label:C.deleteNote,onSelect:()=>Ht.onChange?.({rowKey:n,columnId:o,row:e.row,text:null})}),d}function il(e,t,o,n){let d=(B.querySelector(`[data-row-key="${datagridCore.cssEscape(String(e))}"] [data-column-id="${datagridCore.cssEscape(t)}"]`)??B).getBoundingClientRect();queueMicrotask(()=>{wt({left:d.left,top:d.bottom+2},s=>{s.setAttribute("aria-label",C.noteEditorAria);let r=document.createElement("textarea");r.className="kanuni-datagrid-note-input",r.rows=4,r.value=n,r.setAttribute("aria-label",C.noteEditorAria),r.placeholder=C.notePlaceholder,r.setAttribute("data-testid","dg-note-input");let c=()=>{let x=r.value.trim();He(),Ht?.onChange?.({rowKey:e,columnId:t,row:o,text:x===""?null:x});};r.addEventListener("keydown",x=>{x.key==="Enter"&&(x.ctrlKey||x.metaKey)&&(x.preventDefault(),c()),x.key==="Escape"&&(x.preventDefault(),He());});let p=w("kanuni-datagrid-note-actions"),E=document.createElement("button");E.type="button",E.className="kanuni-datagrid-note-cancel",E.textContent=C.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=C.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 ll(e){$t!==e&&($t=e,e?(B.insertBefore(qe,ae),Oo()):qe.remove());}function la(){B.classList.toggle("kanuni-datagrid--footer-pinned",V&&Ze&&!lt);}function dl(e){if(Ze!==e){if(Ze=e,la(),e){if(lt){let t=ot.isConnected?ot:We.isConnected?We:$e;Ie.insertBefore(Oe,t);}else Ie.append(Oe);Ho();}else Oe.remove();ot.style.setProperty("--dg-pinned-gap",String(Pt+(Ze&&lt?1:0))),We.style.setProperty("--dg-pinned-gap",String(Pt+(Ze&&lt?1:0)));}}function da(e){let t=oo(B,e);t!==null&&a.setColumnWidth(e,t);}function sa(e,t){let o=a.getColumnModel().getDef(e),n={columnId:e,headerName:o?.headerName??e},i=er(n,{controller:a,t:C,groupPanelVisible:$t,footerVisible:Ze,onToggleGroupPanel:()=>ll(!$t),onToggleFooter:()=>dl(!Ze),onOpenFieldChooser:()=>ua(t),onBestFit:da,onBestFitAll:()=>{for(let[s,r]of Ja(B,a))a.setColumnWidth(s,r);},maxGroupLevels:vt?Number.POSITIVE_INFINITY:1}),d=typeof U=="function"?U(n,i):i;d.length!==0&&wt(t,s=>{s.setAttribute("role","menu"),qn(s,d,n);},"kanuni-datagrid-context-menu");}function sl(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:C.noTotal,disabled:n===null,onSelect:()=>a.setColumnSummary(e,null)},{id:"sep",separator:true},...datagridCore.allowedSummaryTypes(o?.dataType).map(s=>({id:s,label:go[s],disabled:n?.type===s,onSelect:()=>a.setColumnSummary(e,s)}))];wt(t,s=>{s.setAttribute("role","menu"),qn(s,d,i);},"kanuni-datagrid-context-menu");}function ua(e){wt(e,t=>{t.setAttribute("role","dialog"),t.setAttribute("aria-label",C.columns);let o=w("kanuni-datagrid-chooser-title");o.textContent=C.columns,t.appendChild(o);let n=()=>a.getColumnStates().filter(x=>!datagridCore.isChromeColumn(x.id)),i=()=>n().filter(x=>!a.getColumnModel().getDef(x.id)?.hideInChooser),d=x=>a.getColumnModel().getDef(x)?.headerName??x,s="";if(i().length>8){let x=document.createElement("input");x.type="search",x.className="kanuni-datagrid-filter-search",x.placeholder=C.search,x.setAttribute("aria-label",C.search),x.addEventListener("input",()=>{s=x.value.trim().toLocaleLowerCase(),b();}),t.appendChild(x);}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=C.showAll,p.addEventListener("click",()=>{for(let x of i())x.visible||a.setColumnVisible(x.id,true);b();});let E=document.createElement("button");E.type="button",E.className="kanuni-datagrid-filter-primary",E.textContent=C.ok,E.addEventListener("click",()=>He()),c.append(p,E),t.appendChild(c);function b(){let x=i(),F=n().filter(H=>H.visible).length;r.textContent="";let K=s?x.filter(H=>d(H.id).toLocaleLowerCase().includes(s)):x;if(K.length===0){let H=w("kanuni-datagrid-chooser-empty");H.textContent=C.noData,r.appendChild(H);}for(let H of K){let m=document.createElement("label");m.className="kanuni-datagrid-filter-item";let h=document.createElement("input");h.type="checkbox",h.checked=H.visible,h.disabled=H.visible&&F===1,h.setAttribute("data-column-toggle",H.id),h.addEventListener("change",()=>{a.setColumnVisible(H.id,h.checked),b();});let $=document.createElement("span");$.textContent=d(H.id),m.append(h,$),r.appendChild(m);}p.disabled=F===x.length;}b();},"kanuni-datagrid-filter-popup kanuni-datagrid-column-chooser");}let qt=null,$o=null,Un=e=>{qe.classList.toggle("kanuni-datagrid-group-panel--over",e);};function ca(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;$o=e,a.groupBy([...i.slice(0,s),e,...i.slice(s)]);}function pa(e,t){let o=a.getGroupLevels(),n=o.indexOf(e),i=n+t;n<0||i<0||i>=o.length||ca(e,o[i],t===-1?"before":"after");}function fa(e,t){if(!e)return;let o=a.getGroupLevels();if(o.includes(e))return;let n=vt?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 Oo(){if(!$t)return;qe.textContent="";let e=a.getGroupLevels();if(e.length===0){let c=w("kanuni-datagrid-group-panel-hint","span");c.textContent=C.groupPanelHint??"Drag a column header here to group by it",qe.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 E of qe.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=w("kanuni-datagrid-group-level");E.style.setProperty("--dg-group-level",String(p)),E.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(C.groupLevelAria,{n:p+1})}: ${t(c)}`),b.addEventListener("dragstart",K=>{qt=c,K.dataTransfer&&(K.dataTransfer.effectAllowed="move",K.dataTransfer.setData("text/x-kanuni-column",c));}),b.addEventListener("dragend",()=>{qt=null,i(null,null);}),b.addEventListener("keydown",K=>{let H=K.ctrlKey||K.metaKey;H&&(K.key==="ArrowUp"||K.key==="ArrowLeft")?(K.preventDefault(),pa(c,-1)):H&&(K.key==="ArrowDown"||K.key==="ArrowRight")?(K.preventDefault(),pa(c,1)):(K.key==="Delete"||K.key==="Backspace")&&(K.preventDefault(),a.groupBy(e.filter(m=>m!==c)));}),E.addEventListener("dragover",K=>{!qt&&!(K.dataTransfer?.types.includes("text/x-kanuni-column")??false)||(K.preventDefault(),K.stopPropagation(),i(E,n(K.clientY,E.getBoundingClientRect())));}),E.addEventListener("drop",K=>{K.preventDefault(),K.stopPropagation();let H=n(K.clientY,E.getBoundingClientRect());i(null,null),Un(false);let m=qt;if(qt=null,m){ca(m,c,H);return}let h=K.dataTransfer?.getData("text/x-kanuni-column");h&&fa(h,H==="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 x=document.createElement("span");x.textContent=t(c);let F=document.createElement("button");F.type="button",F.setAttribute("aria-label",datagridCore.fillText(C.groupRemoveAria,{column:t(c)})),F.textContent="\xD7",F.addEventListener("click",()=>{a.groupBy(e.filter(K=>K!==c));}),F.draggable=false,b.append(x,F),E.appendChild(b),o.appendChild(E),$o===c&&($o=null,queueMicrotask(()=>b.focus()));}),qe.appendChild(o);let d=w("kanuni-datagrid-group-panel-actions"),s=document.createElement("button");s.type="button",s.textContent=C.groupExpandAll,s.addEventListener("click",()=>a.expandAllGroups());let r=document.createElement("button");r.type="button",r.textContent=C.groupCollapseAll,r.addEventListener("click",()=>a.collapseAllGroups()),d.append(s,r),qe.appendChild(d);}if($t){let e=t=>t.dataTransfer?.types.includes("text/x-kanuni-column")??false;qe.addEventListener("dragover",t=>{e(t)&&(t.preventDefault(),Un(true));}),qe.addEventListener("dragleave",t=>{let o=t.relatedTarget;o&&qe.contains(o)||Un(false);}),qe.addEventListener("drop",t=>{Un(false);let o=t.dataTransfer?.getData("text/x-kanuni-column");if(o){if(t.preventDefault(),qt){qt=null;return}fa(o);}});}let ga="";function ma(){if(!we)return;let e=[datagridCore.fillText(C.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"?C.announceDescending:C.announceAscending;return `${r} ${c}`}).join(", ");e.push(datagridCore.fillText(C.announceSortedBy,{columns:i}));}let o=a.getSelectedCount();o>0&&e.push(datagridCore.fillText(C.announceSelected,{n:o}));let n=e.join(", ");n!==ga&&(ga=n,cn.textContent=n);}function ba(){if(!Q)return;Gt.textContent="";let e=datagridCore.describeFilter(a.getEffectiveFilter(),a.getColumnModel(),{...ce,labels:{...datagridCore.filterLabels(C),...ce?.labels}});if(!e&&Q!=="always"){Gt.style.display="none";return}Gt.style.display="";let t=a.isFilterEnabled();Gt.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=C.filterRemove,o.setAttribute("aria-label",C.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=C.filterToggle,n.setAttribute("aria-label",C.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??C.filterNone,e&&(i.title=e),Gt.append(o,n,i),_){let d=document.createElement("button");d.type="button",d.className="kanuni-datagrid-filter-panel-builder",d.title=C.filterEditBuilder,d.setAttribute("aria-label",C.filterEditBuilder),d.setAttribute("data-testid","dg-filter-panel-builder"),d.textContent="\u25BE",d.addEventListener("click",()=>_()),Gt.appendChild(d);}}let Bo=new Set,ul=a.events.on("cellsFlashed",({rowKeys:e,columnIds:t,duration:o})=>{let n=e.length?e.map(r=>`[data-row-key="${datagridCore.cssEscape(String(r))}"]`).join(","):".kanuni-datagrid-row",i=t.length?t.map(r=>`[data-column-id="${datagridCore.cssEscape(r)}"]`).join(","):"[data-column-id]",d=[];pe.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");Bo.delete(s);},o);Bo.add(s);});function St(e){let t=e.target,o=t.closest(".kanuni-datagrid-row");if(!o||!pe.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 wa=e=>{let t=St(e);t&&(Le?.(t.node),a.notifyRow("rowClicked",t.node,t.rowIndex),t.columnId&&a.notifyCell("cellClicked",t.node,t.rowIndex,t.columnId));},ha=e=>{let t=St(e);if(t){if(Er){let o=zo(t,true);o&&Er(o);}Ne?.(t.node),a.notifyRow("rowDoubleClicked",t.node,t.rowIndex),t.columnId&&a.notifyCell("cellDoubleClicked",t.node,t.rowIndex,t.columnId);}};pe.addEventListener("click",wa),pe.addEventListener("dblclick",ha);function cl(e){let t=0,o=Me.querySelector(`[data-column-id="${datagridCore.cssEscape(e)}"]`);o&&(t=o.scrollWidth),pe.querySelectorAll(`[data-column-id="${datagridCore.cssEscape(e)}"]`).forEach(n=>{n.scrollWidth>t&&(t=n.scrollWidth);}),t>0&&a.setColumnWidth(e,t+12,true);}function pl(){if(_e)for(let e of Me.querySelectorAll('[role="columnheader"][data-column-id]')){let t=_e(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 fl(){if(J)for(let e of Me.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 Vo=false,ya=false,on=null;function zn(){on!==null&&(clearTimeout(on),on=null);}function Yn(e){un.style.display=e?"":"none";}function jn(){let e=a.getOverlay();if(Mn.style.display=e==="noRows"?"":"none",fo===false){zn(),Yn(false);return}if(!(e==="loading"&&(Vo||!ya))){zn(),Yn(false);return}if(Vo||vr<=0){zn(),Yn(true);return}on!==null||un.style.display===""||(on=setTimeout(()=>{on=null,Be||Yn(true);},vr));}let Ca=false,_o=false,Wo=false,qo=false,Be=false,Uo=new datagridCore.RowMotion;function gl(){if(_o=false,!Be){if(Wo)Wo=false,qo&&(qo=false,mt++),xo(),To(),No(),Vn();else {let e=Ue;xo(),Ue!==e?(mt++,To(),No(),Vn()):a.getPinnedRows("top").length+a.getPinnedRows("bottom").length>0&&Vn();}$n(),a.getAnimateRows()&&Uo.play(pe),Br(),Ho(),ea(),fl(),pl(),Oo(),ba(),ma(),jn();}}function Xn(e){Be||(e&&(Wo=true),!_o&&(_o=true,queueMicrotask(gl)));}let ml=[...G?[a.events.on("focusedRowChanged",e=>G({rowKey:e.rowKey,row:e.row}))]:[],...Jd.map(e=>a.events.on(e,()=>Xn(true))),...Qd.map(e=>a.events.on(e,()=>{qo=true;})),...Zd.map(e=>a.events.on(e,()=>Xn(false))),a.events.on("filterChanged",()=>Qi()),...["sortChanged","filterChanged","groupChanged","dataUpdated"].map(e=>a.events.on(e,()=>{a.getAnimateRows()&&Uo.capture(pe);})),a.events.on("rowPinningChanged",()=>{Be||(el(),Xn(true));}),a.events.on("overlayChanged",e=>{Vo=e.manual===true&&e.overlay==="loading",Be||jn();}),a.events.on("busyChanged",e=>{ya=e.background===true,Be||jn();}),a.events.on("paginationChanged",()=>{Be||Xn(false);}),a.events.on("bodyScroll",()=>{Be||Jr();}),a.events.on("cellsRefreshed",()=>{Be||qr();}),a.events.on("scrollRequested",e=>{if(Be)return;e.scrollTop!==void 0&&(ae.scrollTop=e.scrollTop),e.scrollLeft!==void 0&&(ae.scrollLeft=e.scrollLeft),a.setScroll(ae.scrollTop,Math.abs(ae.scrollLeft));let t=e.scrollTop;t===void 0||Math.abs(ae.scrollTop-t)<=1||setTimeout(()=>{Be||Math.abs(ae.scrollTop-t)<=1||(ae.scrollTop=t,a.setScroll(ae.scrollTop,Math.abs(ae.scrollLeft)));},0);}),...ue==="fitGrid"?[a.events.on("gridSizeChanged",()=>a.sizeColumnsToFit())]:[],...ue==="fitCells"?[a.events.on("firstDataRendered",()=>{Be||Ca||(Ca=true,queueMicrotask(()=>{if(!Be)for(let e of a.getColumnStates())e.visible&&!e.flex&&da(e.id);}));})]:[]];ue==="fitGrid"&&a.sizeColumnsToFit();function zo(e,t=false){if(!e.columnId||e.node.kind!=="data"&&!(t&&e.node.kind==="group"))return null;let o=ut.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 va=e=>{let t=e.target;if(Pe){let r=St(e),c=r?zo(r):null;c&&Pe(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;let d=t.closest(".kanuni-datagrid-cell"),s=d?ut.find(r=>d.id.endsWith(`-${r.id}`))?.id:void 0;if(!(s&&!a.focusCell(i.key,s))){if(!s){if(a.isRowLeavePending())return;let r=a.getFocus();if(a.hasRowLeaving()&&r&&r.rowKey!==i.key&&!a.focusCell(i.key,r.columnId))return}a.handleRowClick(i.key,{ctrlKey:e.ctrlKey||Hi&&!e.shiftKey,metaKey:e.metaKey,shiftKey:e.shiftKey});}},ka=e=>{if(!at)return;let o=e.target.closest(".kanuni-datagrid-cell");if(!o||!pe.contains(o)||e.relatedTarget?.closest?.(".kanuni-datagrid-cell")===o)return;let i=St(e),d=i?zo(i):null;d&&at(d,e);};if(pe.addEventListener("mousedown",va),pe.addEventListener("contextmenu",ia),at&&pe.addEventListener("mouseover",ka),fn&&($e.addEventListener("dragstart",Fi),$e.addEventListener("dragover",Ki),$e.addEventListener("drop",Pi),$e.addEventListener("dragend",Gi),$e.addEventListener("dragleave",$i)),B.tabIndex=0,Ft){Qe=dr({controller:a,element:B},et,C,{surfaceClass:()=>lo(u).replace("kanuni-datagrid-root","").trim(),barHost:B},{isColumnEditable:t=>ii(a.getColumnModel().getDef(t),t)});let e=B.querySelector(':scope > [data-testid="dg-edit-bar"]');e&&B.insertBefore(e,B.firstChild),Qe.engine.setSavedDuration(nt?.savedDuration??0);}qr();let Ea=e=>{let t=Qe;if(!t||dn)return;let o=e.target;if(!o||!(o===B||o===ae||pe.contains(o)))return;let n=o.tagName;n==="INPUT"||n==="TEXTAREA"||n==="SELECT"||o.isContentEditable||t.handleKeyDown(e)&&e.stopImmediatePropagation();};Ft&&B.addEventListener("keydown",Ea,true);let Ra=e=>{let t=e.target;if(t.tagName==="INPUT"||t.tagName==="TEXTAREA"||t.isContentEditable||rt.contains(t)||ft.contains(t)||t.closest?.('[data-testid="dg-edit-form"], [data-testid="dg-edit-bar"], [data-testid="dg-row-message"]')||Me.contains(t))return;if((Ce||ye||a.isRowPinningEnabled())&&(e.key==="ContextMenu"||e.key==="F10"&&e.shiftKey)){let d=a.getFocus(),s=d?pe.querySelector(`[id="${datagridCore.cssEscape(`${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"){Wn();return}if(o.type==="activate"){if(Ne){let d=a.getFocus(),s=d?a.getRows().find(r=>r!==void 0&&r.key===d.rowKey):void 0;s&&Ne(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&&(ae.scrollTop=r.scrollTop),r.scrollLeft!==void 0&&(ae.scrollLeft=r.scrollLeft),a.setScroll(ae.scrollTop,Math.abs(ae.scrollLeft)));}let i=a.getFocus();B.setAttribute("aria-activedescendant",i?`${u.gridId}-cell-${String(i.rowKey)}-${i.columnId}`:"");};B.addEventListener("keydown",Ra);let bl=hr?datagridCore.attachStateStoring(a,hr):null,xa=typeof tt=="object"?tt.delay??400:400,Ta=tt!==false&&!(typeof tt=="object"&&tt.enabled===false),wl=typeof tt=="object"?tt.showOnTruncation!==false:true,La=typeof tt=="object"?tt.trigger??"hover":"hover",Sa=Ta&&La!=="focus",Yo=Ta&&La!=="hover",Jn=typeof tt=="object"&&tt.interactive===true,Aa=`${u.gridId}-tooltip`,Ut=null,ze=null,Ye=null,zt=null,jo=null;function At(){ze&&clearTimeout(ze),ze=null,zt=null,Xo();}function Xo(){Ye&&clearTimeout(Ye),Ye=null,jo?.removeAttribute("aria-describedby"),jo=null,Ut?.remove(),Ut=null;}let hl=e=>e.scrollWidth>e.clientWidth+1||e.scrollHeight>e.clientHeight+1;function yl(e){let o=e.closest(".kanuni-datagrid-row")?.getAttribute("data-row-key"),n=ut.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=Mo(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 wl&&hl(e)?e.textContent??null:null}function Ma(e,t){let o=yl(e);if(o===null||o==="")return;Xo();let n=e.getBoundingClientRect();Ut=w(`${lo(u)} kanuni-datagrid-portal`);let i=w(Jn?"kanuni-datagrid-tooltip kanuni-datagrid-tooltip--interactive":"kanuni-datagrid-tooltip");i.id=Aa,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",Jn&&(i.addEventListener("pointerenter",()=>{Ye&&clearTimeout(Ye),Ye=null,ze&&clearTimeout(ze),ze=null;}),i.addEventListener("pointerleave",At)),Ut.appendChild(i),datagridCore.portalTarget(u.portalContainer).appendChild(datagridCore.markPortal(Ut,u.portalContainer,"tooltip")),t&&(e.setAttribute("aria-describedby",Aa),jo=e);}let Da=e=>{if(!Sa)return;let t=e.target.closest(".kanuni-datagrid-cell");if(t&&t===zt){Ye&&clearTimeout(Ye),Ye=null;return}Jn&&Ut&&Ye?(ze&&clearTimeout(ze),ze=null):At(),!(!t||!pe.contains(t))&&(zt=t,ze=setTimeout(()=>{ze=null,!(zt!==t||!t.isConnected)&&Ma(t,false);},xa));},Na=e=>{if(!Sa)return;let t=e.relatedTarget;if(!(zt&&t&&zt.contains(t))){if(!Jn||!Ut){At();return}Ye&&clearTimeout(Ye),Ye=setTimeout(Xo,150);}};B.addEventListener("pointerover",Da),B.addEventListener("pointerout",Na),ae.addEventListener("scroll",At,{passive:true});let Ia=-1/0,Ha=()=>{Ia=Date.now();};Yo&&B.addEventListener("pointerdown",Ha);let Cl=Yo?a.events.on("focusChanged",()=>{At();let e=a.getFocus();e&&(ze=setTimeout(()=>{if(ze=null,!B.contains(document.activeElement)&&Date.now()-Ia>1500)return;let t=document.getElementById(`${u.gridId}-cell-${String(e.rowKey)}-${e.columnId}`);!t||!pe.contains(t)||(zt=t,Ma(t,true));},xa));}):null,Fa=e=>{e.key==="Escape"&&At();};Yo&&B.addEventListener("keydown",Fa);let Ka=()=>{if(a.setScroll(ae.scrollTop,Math.abs(ae.scrollLeft)),Mt)for(let e of Pa())e.scroller.scrollLeft!==ae.scrollLeft&&(e.scroller.scrollLeft=ae.scrollLeft);};ae.addEventListener("scroll",Ka,{passive:true});let Mt=null,Pa=()=>{if(!k||!Mt)return [];let e=En.get(k);return e?[...e].filter(t=>t!==Mt):[]},Ga=null;if(k){Mt={controller:a,scroller:ae};let e=En.get(k)??new Set;e.add(Mt),En.set(k,e),Ga=a.events.on("columnStateChanged",()=>{if(mr.has(k))return;let t=Pa();if(t.length===0)return;let o=a.getColumnStates();mr.add(k);try{for(let n of t)n.controller.applyColumnStates(o);}finally{mr.delete(k);}});}let $a=()=>{a.setViewportSize(ae.clientWidth,ae.clientHeight),ln&&Ii(datagridCore.cardViewWidth(ae)),ae.style.setProperty("--dg-viewport-width",`${ae.clientWidth}px`);let e=$e.getBoundingClientRect(),t=Ie.getBoundingClientRect();a.setChromeOffsets(e.top-t.top,t.bottom-e.bottom),datagridCore.calibrateMaxScrollOffset(ae,a);};$a();let Qn=null;typeof ResizeObserver<"u"&&(Qn=new ResizeObserver($a),Qn.observe(ae),Qn.observe(Ie)),xo(),To(),No(),Zi(),Vn(),$n(),Ho(),ea(),Oo(),ba(),ma(),jn(),Vt?.always&&Eo(true);let Jo=null;if(M){let e=null,t=()=>{let o=Me.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"&&(Jo=new ResizeObserver(t),Jo.observe(Me));}return Sr=true,{controller:a,element:B,setData:e=>a.setData(e),setColumns:e=>a.setColumns(e),destroy:()=>{if(!Be){if(Be=true,ml.forEach(e=>e()),wn.forEach(e=>e()),wn=[],Qn?.disconnect(),Jo?.disconnect(),Or?.(),en&&(en=false,Xt--,Xt<=0&&(Xt=0,document.documentElement.classList.remove("kanuni-datagrid-printing"))),Ga?.(),k&&Mt){let e=En.get(k);e?.delete(Mt),e&&e.size===0&&En.delete(k),Mt=null;}ae.removeEventListener("scroll",Ka),pe.removeEventListener("mousedown",va),pe.removeEventListener("contextmenu",ia),ot.removeEventListener("contextmenu",_n),Uo.dispose(),kt.removeEventListener("contextmenu",_n),at&&pe.removeEventListener("mouseover",ka),pe.removeEventListener("click",wa),pe.removeEventListener("dblclick",ha),ul(),Zr?.(),zn();for(let e of Bo)clearTimeout(e);B.removeEventListener("keydown",Ra),B.removeEventListener("keydown",Ea,true),Qe?.dispose(),Qe=null,B.removeEventListener("pointerover",Da),B.removeEventListener("pointerout",Na),B.removeEventListener("keydown",Fa),B.removeEventListener("pointerdown",Ha),Cl?.(),ae.removeEventListener("scroll",At),At(),bl?.(),He(false),a.dispose(),B.remove();}}}}function ls(l){let u=document.createElement("button");u.type="button";let f={...l},T=()=>{let{icon:v,label:y,shortcut:S,disabledReason:A,showLabel:R,testId:z}=f;if(u.className=`kanuni-datagrid-app-button${R?"":" kanuni-datagrid-toolbar-icon-button"}`,u.textContent="",typeof v=="string"?u.insertAdjacentHTML("afterbegin",v):u.appendChild(v),R){let N=document.createElement("span");N.textContent=y,u.appendChild(N),u.removeAttribute("aria-label");}else u.setAttribute("aria-label",y);let q=S?`${y} (${S})`:y;u.title=A!==void 0?`${q} \u2014 ${A}`:q,S?u.setAttribute("aria-keyshortcuts",S):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},T();},T(),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=so;exports.DETAIL_COLUMN_WIDTH=xn;exports.PRINT_MAX_ROWS=hi;exports.ROW_DRAG_MIME=uo;exports.ROW_NUMBER_COLUMN_WIDTH=Rn;exports.attachCellEditing=dr;exports.buildCellEditor=rr;exports.buildDateEditor=Yt;exports.buildEditForm=ir;exports.buildHeaderMenu=er;exports.createGrid=is;exports.measureBestFitWidth=oo;exports.openConfirmDialog=ar;exports.toolbarButton=ls;
2
+ `).length:0,()=>a.writeClipboard(t,"copy"));}function nl(e){if(ye===false)return [];let t=ye===true?{}:ye,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:C.menuCopy,shortcut:`${rl}C`,onSelect:()=>Wn()}),t.copyWithHeaders!==false&&n({id:"__dg-copy-headers",label:C.menuCopyWithHeaders,onSelect:()=>Wn({includeHeaders:true})}),t.copyWithGroupHeaders!==false&&ol()&&n({id:"__dg-copy-group-headers",label:C.menuCopyWithGroupHeaders,onSelect:()=>Wn({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:C.exportCsv,excel:C.exportExcel,"excel-selected":C.exportExcelSelected,pdf:C.exportPdf};n({id:"__dg-export",label:C.menuExport,items:i.map(r=>({id:`__dg-export-${r}`,label:s[r],disabled:r==="excel-selected"&&d,onSelect:()=>{tr(a,r).then(c=>{c.error&&Io(c.error);});}}))});}return o}function ol(){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 rl=/Mac|iPhone|iPad|iPod/.test(navigator.platform??"")?"\u2318":"Ctrl+";function qn(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 E=d.items??[];if(E.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 x=()=>{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 H of E){if(H.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"),H.disabled&&(m.disabled=true);let h=w("kanuni-datagrid-menu-label","span");h.textContent=H.label??"",m.appendChild(h),m.addEventListener("click",()=>{H.onSelect?.(o),He();}),F.appendChild(m);}e.parentElement?.appendChild(F),oa(F,{left:K.right,top:Math.max(0,K.top-4)}),n=F,c.setAttribute("aria-expanded","true"),na(F,()=>{i(),c.setAttribute("aria-expanded","false"),c.focus();});};c.addEventListener("mouseenter",x),c.addEventListener("click",x);}else c.addEventListener("mouseenter",i),c.addEventListener("click",()=>{d.onSelect?.(o),He();});r.appendChild(c),e.appendChild(r);});}let ia=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),!Ce&&!ye&&!a.isRowPinningEnabled()||!n||n.node.kind!=="data"||(e.preventDefault(),a.isRowLeaveBlocked(n.node.key))||n.columnId&&!a.focusCell(n.node.key,n.columnId))return;a.isRowSelected(n.node.key)||a.handleRowClick(n.node.key,{});let i={row:n.node.data,node:n.node,rowIndex:n.rowIndex,columnId:n.columnId,selectedKeys:a.getSelectedKeys()},d=(typeof Ce=="function"?Ce(i):Ce)??[],s=[...d,...al(i,d.length>0)],r=[...s,...ta(n.node.key,s.length>0)],c=nl(r.length>0);r.length===0&&c.length===0||wt({left:e.clientX,top:e.clientY},p=>{p.setAttribute("role","menu"),qn(p,[...r,...c],i);},"kanuni-datagrid-context-menu");};function al(e,t){if(!Ht?.onChange||Ht.menu===false)return [];let o=e.columnId;if(!o)return [];let n=e.node.key,i=Mo(n,o,e.row),d=[];return t&&d.push({separator:true,id:"__note-sep"}),d.push({id:"__note-edit",label:i?C.editNote:C.addNote,onSelect:()=>il(n,o,e.row,i??"")}),i&&d.push({id:"__note-delete",label:C.deleteNote,onSelect:()=>Ht.onChange?.({rowKey:n,columnId:o,row:e.row,text:null})}),d}function il(e,t,o,n){let d=(B.querySelector(`[data-row-key="${datagridCore.cssEscape(String(e))}"] [data-column-id="${datagridCore.cssEscape(t)}"]`)??B).getBoundingClientRect();queueMicrotask(()=>{wt({left:d.left,top:d.bottom+2},s=>{s.setAttribute("aria-label",C.noteEditorAria);let r=document.createElement("textarea");r.className="kanuni-datagrid-note-input",r.rows=4,r.value=n,r.setAttribute("aria-label",C.noteEditorAria),r.placeholder=C.notePlaceholder,r.setAttribute("data-testid","dg-note-input");let c=()=>{let x=r.value.trim();He(),Ht?.onChange?.({rowKey:e,columnId:t,row:o,text:x===""?null:x});};r.addEventListener("keydown",x=>{x.key==="Enter"&&(x.ctrlKey||x.metaKey)&&(x.preventDefault(),c()),x.key==="Escape"&&(x.preventDefault(),He());});let p=w("kanuni-datagrid-note-actions"),E=document.createElement("button");E.type="button",E.className="kanuni-datagrid-note-cancel",E.textContent=C.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=C.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 ll(e){$t!==e&&($t=e,e?(B.insertBefore(qe,ae),Oo()):qe.remove());}function la(){B.classList.toggle("kanuni-datagrid--footer-pinned",V&&Ze&&!lt);}function dl(e){if(Ze!==e){if(Ze=e,la(),e){if(lt){let t=ot.isConnected?ot:We.isConnected?We:$e;Ie.insertBefore(Oe,t);}else Ie.append(Oe);Ho();}else Oe.remove();ot.style.setProperty("--dg-pinned-gap",String(Pt+(Ze&&lt?1:0))),We.style.setProperty("--dg-pinned-gap",String(Pt+(Ze&&lt?1:0)));}}function da(e){let t=oo(B,e);t!==null&&a.setColumnWidth(e,t);}function sa(e,t){let o=a.getColumnModel().getDef(e),n={columnId:e,headerName:o?.headerName??e},i=er(n,{controller:a,t:C,groupPanelVisible:$t,footerVisible:Ze,onToggleGroupPanel:()=>ll(!$t),onToggleFooter:()=>dl(!Ze),onOpenFieldChooser:()=>ua(t),onBestFit:da,onBestFitAll:()=>{for(let[s,r]of Ja(B,a))a.setColumnWidth(s,r);},maxGroupLevels:vt?Number.POSITIVE_INFINITY:1}),d=typeof U=="function"?U(n,i):i;d.length!==0&&wt(t,s=>{s.setAttribute("role","menu"),qn(s,d,n);},"kanuni-datagrid-context-menu");}function sl(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:C.noTotal,disabled:n===null,onSelect:()=>a.setColumnSummary(e,null)},{id:"sep",separator:true},...datagridCore.allowedSummaryTypes(o?.dataType).map(s=>({id:s,label:go[s],disabled:n?.type===s,onSelect:()=>a.setColumnSummary(e,s)}))];wt(t,s=>{s.setAttribute("role","menu"),qn(s,d,i);},"kanuni-datagrid-context-menu");}function ua(e){wt(e,t=>{t.setAttribute("role","dialog"),t.setAttribute("aria-label",C.columns);let o=w("kanuni-datagrid-chooser-title");o.textContent=C.columns,t.appendChild(o);let n=()=>a.getColumnStates().filter(x=>!datagridCore.isChromeColumn(x.id)),i=()=>n().filter(x=>!a.getColumnModel().getDef(x.id)?.hideInChooser),d=x=>a.getColumnModel().getDef(x)?.headerName??x,s="";if(i().length>8){let x=document.createElement("input");x.type="search",x.className="kanuni-datagrid-filter-search",x.placeholder=C.search,x.setAttribute("aria-label",C.search),x.addEventListener("input",()=>{s=x.value.trim().toLocaleLowerCase(),b();}),t.appendChild(x);}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=C.showAll,p.addEventListener("click",()=>{for(let x of i())x.visible||a.setColumnVisible(x.id,true);b();});let E=document.createElement("button");E.type="button",E.className="kanuni-datagrid-filter-primary",E.textContent=C.ok,E.addEventListener("click",()=>He()),c.append(p,E),t.appendChild(c);function b(){let x=i(),F=n().filter(H=>H.visible).length;r.textContent="";let K=s?x.filter(H=>d(H.id).toLocaleLowerCase().includes(s)):x;if(K.length===0){let H=w("kanuni-datagrid-chooser-empty");H.textContent=C.noData,r.appendChild(H);}for(let H of K){let m=document.createElement("label");m.className="kanuni-datagrid-filter-item";let h=document.createElement("input");h.type="checkbox",h.checked=H.visible,h.disabled=H.visible&&F===1,h.setAttribute("data-column-toggle",H.id),h.addEventListener("change",()=>{a.setColumnVisible(H.id,h.checked),b();});let $=document.createElement("span");$.textContent=d(H.id),m.append(h,$),r.appendChild(m);}p.disabled=F===x.length;}b();},"kanuni-datagrid-filter-popup kanuni-datagrid-column-chooser");}let qt=null,$o=null,Un=e=>{qe.classList.toggle("kanuni-datagrid-group-panel--over",e);};function ca(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;$o=e,a.groupBy([...i.slice(0,s),e,...i.slice(s)]);}function pa(e,t){let o=a.getGroupLevels(),n=o.indexOf(e),i=n+t;n<0||i<0||i>=o.length||ca(e,o[i],t===-1?"before":"after");}function fa(e,t){if(!e)return;let o=a.getGroupLevels();if(o.includes(e))return;let n=vt?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 Oo(){if(!$t)return;qe.textContent="";let e=a.getGroupLevels();if(e.length===0){let c=w("kanuni-datagrid-group-panel-hint","span");c.textContent=C.groupPanelHint??"Drag a column header here to group by it",qe.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 E of qe.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=w("kanuni-datagrid-group-level");E.style.setProperty("--dg-group-level",String(p)),E.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(C.groupLevelAria,{n:p+1})}: ${t(c)}`),b.addEventListener("dragstart",K=>{qt=c,K.dataTransfer&&(K.dataTransfer.effectAllowed="move",K.dataTransfer.setData("text/x-kanuni-column",c));}),b.addEventListener("dragend",()=>{qt=null,i(null,null);}),b.addEventListener("keydown",K=>{let H=K.ctrlKey||K.metaKey;H&&(K.key==="ArrowUp"||K.key==="ArrowLeft")?(K.preventDefault(),pa(c,-1)):H&&(K.key==="ArrowDown"||K.key==="ArrowRight")?(K.preventDefault(),pa(c,1)):(K.key==="Delete"||K.key==="Backspace")&&(K.preventDefault(),a.groupBy(e.filter(m=>m!==c)));}),E.addEventListener("dragover",K=>{!qt&&!(K.dataTransfer?.types.includes("text/x-kanuni-column")??false)||(K.preventDefault(),K.stopPropagation(),i(E,n(K.clientY,E.getBoundingClientRect())));}),E.addEventListener("drop",K=>{K.preventDefault(),K.stopPropagation();let H=n(K.clientY,E.getBoundingClientRect());i(null,null),Un(false);let m=qt;if(qt=null,m){ca(m,c,H);return}let h=K.dataTransfer?.getData("text/x-kanuni-column");h&&fa(h,H==="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 x=document.createElement("span");x.textContent=t(c);let F=document.createElement("button");F.type="button",F.setAttribute("aria-label",datagridCore.fillText(C.groupRemoveAria,{column:t(c)})),F.textContent="\xD7",F.addEventListener("click",()=>{a.groupBy(e.filter(K=>K!==c));}),F.draggable=false,b.append(x,F),E.appendChild(b),o.appendChild(E),$o===c&&($o=null,queueMicrotask(()=>b.focus()));}),qe.appendChild(o);let d=w("kanuni-datagrid-group-panel-actions"),s=document.createElement("button");s.type="button",s.textContent=C.groupExpandAll,s.addEventListener("click",()=>a.expandAllGroups());let r=document.createElement("button");r.type="button",r.textContent=C.groupCollapseAll,r.addEventListener("click",()=>a.collapseAllGroups()),d.append(s,r),qe.appendChild(d);}if($t){let e=t=>t.dataTransfer?.types.includes("text/x-kanuni-column")??false;qe.addEventListener("dragover",t=>{e(t)&&(t.preventDefault(),Un(true));}),qe.addEventListener("dragleave",t=>{let o=t.relatedTarget;o&&qe.contains(o)||Un(false);}),qe.addEventListener("drop",t=>{Un(false);let o=t.dataTransfer?.getData("text/x-kanuni-column");if(o){if(t.preventDefault(),qt){qt=null;return}fa(o);}});}let ga="";function ma(){if(!we)return;let e=[datagridCore.fillText(C.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"?C.announceDescending:C.announceAscending;return `${r} ${c}`}).join(", ");e.push(datagridCore.fillText(C.announceSortedBy,{columns:i}));}let o=a.getSelectedCount();o>0&&e.push(datagridCore.fillText(C.announceSelected,{n:o}));let n=e.join(", ");n!==ga&&(ga=n,cn.textContent=n);}function ba(){if(!Q)return;Gt.textContent="";let e=datagridCore.describeFilter(a.getEffectiveFilter(),a.getColumnModel(),{...ce,labels:{...datagridCore.filterLabels(C),...ce?.labels}});if(!e&&Q!=="always"){Gt.style.display="none";return}Gt.style.display="";let t=a.isFilterEnabled();Gt.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=C.filterRemove,o.setAttribute("aria-label",C.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=C.filterToggle,n.setAttribute("aria-label",C.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??C.filterNone,e&&(i.title=e),Gt.append(o,n,i),_){let d=document.createElement("button");d.type="button",d.className="kanuni-datagrid-filter-panel-builder",d.title=C.filterEditBuilder,d.setAttribute("aria-label",C.filterEditBuilder),d.setAttribute("data-testid","dg-filter-panel-builder"),d.textContent="\u25BE",d.addEventListener("click",()=>_()),Gt.appendChild(d);}}let Bo=new Set,ul=a.events.on("cellsFlashed",({rowKeys:e,columnIds:t,duration:o})=>{let n=e.length?e.map(r=>`[data-row-key="${datagridCore.cssEscape(String(r))}"]`).join(","):".kanuni-datagrid-row",i=t.length?t.map(r=>`[data-column-id="${datagridCore.cssEscape(r)}"]`).join(","):"[data-column-id]",d=[];pe.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");Bo.delete(s);},o);Bo.add(s);});function St(e){let t=e.target,o=t.closest(".kanuni-datagrid-row");if(!o||!pe.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 wa=e=>{let t=St(e);t&&(Le?.(t.node),a.notifyRow("rowClicked",t.node,t.rowIndex),t.columnId&&a.notifyCell("cellClicked",t.node,t.rowIndex,t.columnId));},ha=e=>{let t=St(e);if(t){if(Er){let o=zo(t,true);o&&Er(o);}Ne?.(t.node),a.notifyRow("rowDoubleClicked",t.node,t.rowIndex),t.columnId&&a.notifyCell("cellDoubleClicked",t.node,t.rowIndex,t.columnId);}};pe.addEventListener("click",wa),pe.addEventListener("dblclick",ha);function cl(e){let t=0,o=Me.querySelector(`[data-column-id="${datagridCore.cssEscape(e)}"]`);o&&(t=o.scrollWidth),pe.querySelectorAll(`[data-column-id="${datagridCore.cssEscape(e)}"]`).forEach(n=>{n.scrollWidth>t&&(t=n.scrollWidth);}),t>0&&a.setColumnWidth(e,t+12,true);}function pl(){if(_e)for(let e of Me.querySelectorAll('[role="columnheader"][data-column-id]')){let t=_e(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 fl(){if(J)for(let e of Me.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 Vo=false,ya=false,on=null;function zn(){on!==null&&(clearTimeout(on),on=null);}function Yn(e){un.style.display=e?"":"none";}function jn(){let e=a.getOverlay();if(Mn.style.display=e==="noRows"?"":"none",fo===false){zn(),Yn(false);return}if(!(e==="loading"&&(Vo||!ya))){zn(),Yn(false);return}if(Vo||vr<=0){zn(),Yn(true);return}on!==null||un.style.display===""||(on=setTimeout(()=>{on=null,Be||Yn(true);},vr));}let Ca=false,_o=false,Wo=false,qo=false,Be=false,Uo=new datagridCore.RowMotion;function gl(){if(_o=false,!Be){if(Wo)Wo=false,qo&&(qo=false,mt++),xo(),To(),No(),Vn();else {let e=Ue;xo(),Ue!==e?(mt++,To(),No(),Vn()):a.getPinnedRows("top").length+a.getPinnedRows("bottom").length>0&&Vn();}$n(),a.getAnimateRows()&&Uo.play(pe),Br(),Ho(),ea(),fl(),pl(),Oo(),ba(),ma(),jn();}}function Xn(e){Be||(e&&(Wo=true),!_o&&(_o=true,queueMicrotask(gl)));}let ml=[...G?[a.events.on("focusedRowChanged",e=>G({rowKey:e.rowKey,row:e.row}))]:[],...Jd.map(e=>a.events.on(e,()=>Xn(true))),...Qd.map(e=>a.events.on(e,()=>{qo=true;})),...Zd.map(e=>a.events.on(e,()=>Xn(false))),a.events.on("filterChanged",()=>Qi()),...["sortChanged","filterChanged","groupChanged","dataUpdated"].map(e=>a.events.on(e,()=>{a.getAnimateRows()&&Uo.capture(pe);})),a.events.on("rowPinningChanged",()=>{Be||(el(),Xn(true));}),a.events.on("overlayChanged",e=>{Vo=e.manual===true&&e.overlay==="loading",Be||jn();}),a.events.on("busyChanged",e=>{ya=e.background===true,Be||jn();}),a.events.on("paginationChanged",()=>{Be||Xn(false);}),a.events.on("bodyScroll",()=>{Be||Jr();}),a.events.on("cellsRefreshed",()=>{Be||qr();}),a.events.on("scrollRequested",e=>{if(Be)return;e.scrollTop!==void 0&&(ae.scrollTop=e.scrollTop),e.scrollLeft!==void 0&&(ae.scrollLeft=e.scrollLeft),a.setScroll(ae.scrollTop,Math.abs(ae.scrollLeft));let t=e.scrollTop;t===void 0||Math.abs(ae.scrollTop-t)<=1||setTimeout(()=>{Be||Math.abs(ae.scrollTop-t)<=1||(ae.scrollTop=t,a.setScroll(ae.scrollTop,Math.abs(ae.scrollLeft)));},0);}),...ue==="fitGrid"?[a.events.on("gridSizeChanged",()=>a.sizeColumnsToFit())]:[],...ue==="fitCells"?[a.events.on("firstDataRendered",()=>{Be||Ca||(Ca=true,queueMicrotask(()=>{if(!Be)for(let e of a.getColumnStates())e.visible&&!e.flex&&da(e.id);}));})]:[]];ue==="fitGrid"&&a.sizeColumnsToFit();function zo(e,t=false){if(!e.columnId||e.node.kind!=="data"&&!(t&&e.node.kind==="group"))return null;let o=ut.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 va=e=>{let t=e.target;if(Pe){let r=St(e),c=r?zo(r):null;c&&Pe(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;let d=t.closest(".kanuni-datagrid-cell"),s=d?ut.find(r=>d.id.endsWith(`-${r.id}`))?.id:void 0;if(!(s&&!a.focusCell(i.key,s))){if(!s){if(a.isRowLeavePending())return;let r=a.getFocus();if(a.hasRowLeaving()&&r&&r.rowKey!==i.key&&!a.focusCell(i.key,r.columnId))return}a.handleRowClick(i.key,{ctrlKey:e.ctrlKey||Hi&&!e.shiftKey,metaKey:e.metaKey,shiftKey:e.shiftKey});}},ka=e=>{if(!at)return;let o=e.target.closest(".kanuni-datagrid-cell");if(!o||!pe.contains(o)||e.relatedTarget?.closest?.(".kanuni-datagrid-cell")===o)return;let i=St(e),d=i?zo(i):null;d&&at(d,e);};if(pe.addEventListener("mousedown",va),pe.addEventListener("contextmenu",ia),at&&pe.addEventListener("mouseover",ka),fn&&($e.addEventListener("dragstart",Fi),$e.addEventListener("dragover",Ki),$e.addEventListener("drop",Pi),$e.addEventListener("dragend",Gi),$e.addEventListener("dragleave",$i)),B.tabIndex=0,Ft){Qe=dr({controller:a,element:B},et,C,{surfaceClass:()=>lo(u).replace("kanuni-datagrid-root","").trim(),barHost:B},{isColumnEditable:t=>ii(a.getColumnModel().getDef(t),t)});let e=B.querySelector(':scope > [data-testid="dg-edit-bar"]');e&&B.insertBefore(e,B.firstChild),Qe.engine.setSavedDuration(nt?.savedDuration??0);}qr();let Ea=e=>{let t=Qe;if(!t||dn)return;let o=e.target;if(!o||!(o===B||o===ae||pe.contains(o)))return;let n=o.tagName;n==="INPUT"||n==="TEXTAREA"||n==="SELECT"||o.isContentEditable||t.handleKeyDown(e)&&e.stopImmediatePropagation();};Ft&&B.addEventListener("keydown",Ea,true);let Ra=e=>{let t=e.target;if(t.tagName==="INPUT"||t.tagName==="TEXTAREA"||t.isContentEditable||rt.contains(t)||ft.contains(t)||t.closest?.('[data-testid="dg-edit-form"], [data-testid="dg-edit-bar"], [data-testid="dg-row-message"]')||Me.contains(t))return;if((Ce||ye||a.isRowPinningEnabled())&&(e.key==="ContextMenu"||e.key==="F10"&&e.shiftKey)){let d=a.getFocus(),s=d?pe.querySelector(`[id="${datagridCore.cssEscape(`${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"){Wn();return}if(o.type==="activate"){if(Ne){let d=a.getFocus(),s=d?a.getRows().find(r=>r!==void 0&&r.key===d.rowKey):void 0;s&&Ne(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&&(ae.scrollTop=r.scrollTop),r.scrollLeft!==void 0&&(ae.scrollLeft=r.scrollLeft),a.setScroll(ae.scrollTop,Math.abs(ae.scrollLeft)));}let i=a.getFocus();B.setAttribute("aria-activedescendant",i?`${u.gridId}-cell-${String(i.rowKey)}-${i.columnId}`:"");};B.addEventListener("keydown",Ra);let bl=hr?datagridCore.attachStateStoring(a,hr):null,xa=typeof tt=="object"?tt.delay??400:400,Ta=tt!==false&&!(typeof tt=="object"&&tt.enabled===false),wl=typeof tt=="object"?tt.showOnTruncation!==false:true,La=typeof tt=="object"?tt.trigger??"hover":"hover",Sa=Ta&&La!=="focus",Yo=Ta&&La!=="hover",Jn=typeof tt=="object"&&tt.interactive===true,Aa=`${u.gridId}-tooltip`,Ut=null,ze=null,Ye=null,zt=null,jo=null;function At(){ze&&clearTimeout(ze),ze=null,zt=null,Xo();}function Xo(){Ye&&clearTimeout(Ye),Ye=null,jo?.removeAttribute("aria-describedby"),jo=null,Ut?.remove(),Ut=null;}let hl=e=>e.scrollWidth>e.clientWidth+1||e.scrollHeight>e.clientHeight+1;function yl(e){let o=e.closest(".kanuni-datagrid-row")?.getAttribute("data-row-key"),n=ut.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=Mo(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 wl&&hl(e)?e.textContent??null:null}function Ma(e,t){let o=yl(e);if(o===null||o==="")return;Xo();let n=e.getBoundingClientRect();Ut=w(`${lo(u)} kanuni-datagrid-portal`);let i=w(Jn?"kanuni-datagrid-tooltip kanuni-datagrid-tooltip--interactive":"kanuni-datagrid-tooltip");i.id=Aa,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",Jn&&(i.addEventListener("pointerenter",()=>{Ye&&clearTimeout(Ye),Ye=null,ze&&clearTimeout(ze),ze=null;}),i.addEventListener("pointerleave",At)),Ut.appendChild(i),datagridCore.portalTarget(u.portalContainer).appendChild(datagridCore.markPortal(Ut,u.portalContainer,"tooltip")),t&&(e.setAttribute("aria-describedby",Aa),jo=e);}let Da=e=>{if(!Sa)return;let t=e.target.closest(".kanuni-datagrid-cell");if(t&&t===zt){Ye&&clearTimeout(Ye),Ye=null;return}Jn&&Ut&&Ye?(ze&&clearTimeout(ze),ze=null):At(),!(!t||!pe.contains(t))&&(zt=t,ze=setTimeout(()=>{ze=null,!(zt!==t||!t.isConnected)&&Ma(t,false);},xa));},Na=e=>{if(!Sa)return;let t=e.relatedTarget;if(!(zt&&t&&zt.contains(t))){if(!Jn||!Ut){At();return}Ye&&clearTimeout(Ye),Ye=setTimeout(Xo,150);}};B.addEventListener("pointerover",Da),B.addEventListener("pointerout",Na),ae.addEventListener("scroll",At,{passive:true});let Ia=-1/0,Ha=()=>{Ia=Date.now();};Yo&&B.addEventListener("pointerdown",Ha);let Cl=Yo?a.events.on("focusChanged",()=>{At();let e=a.getFocus();e&&(ze=setTimeout(()=>{if(ze=null,!B.contains(document.activeElement)&&Date.now()-Ia>1500)return;let t=document.getElementById(`${u.gridId}-cell-${String(e.rowKey)}-${e.columnId}`);!t||!pe.contains(t)||(zt=t,Ma(t,true));},xa));}):null,Fa=e=>{e.key==="Escape"&&At();};Yo&&B.addEventListener("keydown",Fa);let Ka=()=>{if(a.setScroll(ae.scrollTop,Math.abs(ae.scrollLeft)),Mt)for(let e of Pa())e.scroller.scrollLeft!==ae.scrollLeft&&(e.scroller.scrollLeft=ae.scrollLeft);};ae.addEventListener("scroll",Ka,{passive:true});let Mt=null,Pa=()=>{if(!k||!Mt)return [];let e=En.get(k);return e?[...e].filter(t=>t!==Mt):[]},Ga=null;if(k){Mt={controller:a,scroller:ae};let e=En.get(k)??new Set;e.add(Mt),En.set(k,e),Ga=a.events.on("columnStateChanged",()=>{if(mr.has(k))return;let t=Pa();if(t.length===0)return;let o=a.getColumnStates();mr.add(k);try{for(let n of t)n.controller.applyColumnStates(o);}finally{mr.delete(k);}});}let $a=()=>{a.setViewportSize(ae.clientWidth,ae.clientHeight),ln&&Ii(datagridCore.cardViewWidth(ae)),ae.style.setProperty("--dg-viewport-width",`${ae.clientWidth}px`);let e=$e.getBoundingClientRect(),t=Ie.getBoundingClientRect();a.setChromeOffsets(e.top-t.top,t.bottom-e.bottom),datagridCore.calibrateMaxScrollOffset(ae,a);};$a();let Qn=null;typeof ResizeObserver<"u"&&(Qn=new ResizeObserver($a),Qn.observe(ae),Qn.observe(Ie)),xo(),To(),No(),Zi(),Vn(),$n(),Ho(),ea(),Oo(),ba(),ma(),jn(),Vt?.always&&Eo(true);let Jo=null;if(M){let e=null,t=()=>{let o=Me.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"&&(Jo=new ResizeObserver(t),Jo.observe(Me));}return Sr=true,{controller:a,element:B,setData:e=>a.setData(e),setColumns:e=>a.setColumns(e),destroy:()=>{if(!Be){if(Be=true,ml.forEach(e=>e()),wn.forEach(e=>e()),wn=[],Qn?.disconnect(),Jo?.disconnect(),Or?.(),en&&(en=false,Xt--,Xt<=0&&(Xt=0,document.documentElement.classList.remove("kanuni-datagrid-printing"))),Ga?.(),k&&Mt){let e=En.get(k);e?.delete(Mt),e&&e.size===0&&En.delete(k),Mt=null;}ae.removeEventListener("scroll",Ka),pe.removeEventListener("mousedown",va),pe.removeEventListener("contextmenu",ia),ot.removeEventListener("contextmenu",_n),Uo.dispose(),kt.removeEventListener("contextmenu",_n),at&&pe.removeEventListener("mouseover",ka),pe.removeEventListener("click",wa),pe.removeEventListener("dblclick",ha),ul(),Zr?.(),zn();for(let e of Bo)clearTimeout(e);B.removeEventListener("keydown",Ra),B.removeEventListener("keydown",Ea,true),Qe?.dispose(),Qe=null,B.removeEventListener("pointerover",Da),B.removeEventListener("pointerout",Na),B.removeEventListener("keydown",Fa),B.removeEventListener("pointerdown",Ha),Cl?.(),ae.removeEventListener("scroll",At),At(),bl?.(),He(false),a.dispose(),B.remove();}}}}function ls(l){let u=document.createElement("button");u.type="button";let f={...l},T=()=>{let{icon:v,label:y,shortcut:S,disabledReason:A,showLabel:R,testId:z}=f;if(u.className=`kanuni-datagrid-app-button${R?"":" kanuni-datagrid-toolbar-icon-button"}`,u.textContent="",typeof v=="string"?u.insertAdjacentHTML("afterbegin",v):u.appendChild(v),R){let N=document.createElement("span");N.textContent=y,u.appendChild(N),u.removeAttribute("aria-label");}else u.setAttribute("aria-label",y);let q=S?`${y} (${S})`:y;u.title=A!==void 0?`${q} \u2014 ${A}`:q,S?u.setAttribute("aria-keyshortcuts",S):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},T();},T(),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=so;exports.DETAIL_COLUMN_WIDTH=xn;exports.PRINT_MAX_ROWS=hi;exports.ROW_DRAG_MIME=uo;exports.ROW_NUMBER_COLUMN_WIDTH=Rn;exports.attachCellEditing=dr;exports.buildCellEditor=rr;exports.buildDateEditor=Yt;exports.buildEditForm=ir;exports.buildHeaderMenu=er;exports.createGrid=is;exports.measureBestFitWidth=oo;exports.openConfirmDialog=ar;exports.toolbarButton=ls;