@kanunilabs/datagrid 1.9.1 → 1.9.2
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/datagrid.umd.js +8 -8
- package/dist/index.cjs +2 -2
- package/dist/index.d.cts +7 -1
- package/dist/index.d.ts +7 -1
- package/dist/index.js +2 -2
- package/dist/styles.css +268 -1
- package/dist/themes/all.css +108 -0
- package/dist/themes/amber.css +3 -0
- package/dist/themes/aubergine.css +3 -0
- package/dist/themes/azure.css +3 -0
- package/dist/themes/burgundy.css +3 -0
- package/dist/themes/charcoal.css +3 -0
- package/dist/themes/contrast-dark.css +3 -0
- package/dist/themes/contrast-light.css +3 -0
- package/dist/themes/coral.css +3 -0
- package/dist/themes/corporate.css +3 -0
- package/dist/themes/deep-sea.css +3 -0
- package/dist/themes/editorial.css +3 -0
- package/dist/themes/ember.css +3 -0
- package/dist/themes/emerald.css +3 -0
- package/dist/themes/forest.css +3 -0
- package/dist/themes/glacier.css +3 -0
- package/dist/themes/graphite.css +3 -0
- package/dist/themes/indigo-night.css +3 -0
- package/dist/themes/indigo.css +3 -0
- package/dist/themes/ivory.css +3 -0
- package/dist/themes/lagoon.css +3 -0
- package/dist/themes/linen.css +3 -0
- package/dist/themes/midnight.css +3 -0
- package/dist/themes/mist.css +3 -0
- package/dist/themes/monochrome.css +3 -0
- package/dist/themes/onyx.css +3 -0
- package/dist/themes/orchid.css +3 -0
- package/dist/themes/porcelain.css +3 -0
- package/dist/themes/rose.css +3 -0
- package/dist/themes/sandstone.css +3 -0
- package/dist/themes/slate-night.css +3 -0
- package/dist/themes/slate.css +3 -0
- package/dist/themes/steel.css +3 -0
- package/dist/themes/stone.css +3 -0
- package/dist/themes/taupe.css +3 -0
- package/dist/themes/teal.css +3 -0
- package/dist/themes/terminal.css +3 -0
- package/package.json +4 -4
package/dist/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var datagridCore=require('@kanunilabs/datagrid-core');function Do(d,p){let{controller:f,maxGroupLevels:A,t:k}=p,h=d.columnId,N=f.getColumnModel().getDef(h),S=f.getSort(),x=S.find(P=>P.columnId===h),te=f.getGroupLevels(),U=te.includes(h),I=N?.sortable!==false,$=f.getColumnStates().find(P=>P.id===h)?.pinned??null,j=N?.groupable!==false,Y=f.canGroup(),ue=[{id:"sort-asc",label:k.sortAsc,disabled:!I||x?.direction==="asc",onSelect:()=>f.setSort([{columnId:h,direction:"asc"}])},{id:"sort-desc",label:k.sortDesc,disabled:!I||x?.direction==="desc",onSelect:()=>f.setSort([{columnId:h,direction:"desc"}])},{id:"sort-clear",label:k.clearSort,disabled:!x,onSelect:()=>f.setSort(S.filter(P=>P.columnId!==h))},{id:"sep-1",separator:true},{id:"group",label:U?k.ungroupColumn:k.groupByColumn,disabled:!j,onSelect:()=>{U?f.groupBy(te.filter(P=>P!==h)):f.groupBy([...te,h].slice(-A));}},{id:"group-panel",label:p.groupPanelVisible?k.hideGroupPanel:k.showGroupPanel,onSelect:p.onToggleGroupPanel},{id:"footer",label:p.footerVisible?k.hideFooter:k.showFooter,onSelect:p.onToggleFooter},{id:"sep-2",separator:true},{id:"hide-column",label:k.hideColumn,disabled:f.getColumnStates().filter(P=>P.visible).length<=1,onSelect:()=>f.setColumnVisible(h,false)},{id:"field-chooser",label:k.fieldChooser,onSelect:p.onOpenFieldChooser},{id:"sep-3",separator:true},{id:"best-fit",label:k.bestFit,disabled:N?.resizable===false,onSelect:()=>p.onBestFit(h)},{id:"best-fit-all",label:k.bestFitAll,onSelect:p.onBestFitAll}],ne=f.getColumnStates().filter(P=>P.visible&&P.pinned===$).map(P=>P.id),Ee=ne.indexOf(h),R=N?.reorderable!==false&&Ee>=0;return ue.push({id:"sep-4",separator:true},{id:"move-left",label:k.moveLeft,disabled:!R||Ee<=0,onSelect:()=>f.moveColumn(h,ne[Ee-1])},{id:"move-right",label:k.moveRight,disabled:!R||Ee<0||Ee>=ne.length-1,onSelect:()=>f.moveColumn(h,ne[Ee+2])},{id:"fixed-position",label:k.fixedPosition,items:[{id:"pin-left",label:k.pinLeft,disabled:$==="left",onSelect:()=>f.setColumnPinned(h,"left")},{id:"pin-right",label:k.pinRight,disabled:$==="right",onSelect:()=>f.setColumnPinned(h,"right")},{id:"pin-sticky",label:k.pinSticky,disabled:$==="sticky",onSelect:()=>f.setColumnPinned(h,"sticky")}]},{id:"unpin",label:k.unpin,disabled:$===null,onSelect:()=>f.setColumnPinned(h,null)}),Y?ue:ue.filter(P=>P.id!=="group"&&P.id!=="group-panel")}async function No(d,p){try{let f=p==="csv"?await d.exportToCsv():p==="excel"?await d.exportToExcel():p==="excel-selected"?await d.exportToExcel({selectedOnly:!0}):await d.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 ca=null;function Ni(){return typeof document>"u"?null:(ca??=document.createElement("canvas"),ca.getContext("2d"))}function pa(d){let p=getComputedStyle(d);return `${p.fontStyle} ${p.fontWeight} ${p.fontSize} ${p.fontFamily}`}function Ii(d){for(let p=d.firstElementChild;p;p=p.nextElementSibling)if(p.tagName!=="MARK")return true;return false}function Hi(d){let p=d.map(A=>[A.style.width,A.style.minWidth,A.style.maxWidth]);for(let A of d)A.style.width="max-content",A.style.minWidth="0",A.style.maxWidth="none";let f=0;for(let A of d){let k=Math.ceil(A.getBoundingClientRect().width);k>f&&(f=k);}return d.forEach((A,k)=>{[A.style.width,A.style.minWidth,A.style.maxWidth]=p[k];}),f}function Io(d,p){let f=Ni();if(!f)return null;let A=typeof CSS<"u"&&CSS.escape?CSS.escape(p):p.replace(/"/g,'\\"'),k=d.querySelector(`.kanuni-datagrid-header-cell[data-column-id="${A}"]`),h=d.querySelectorAll(`.kanuni-datagrid-cell[data-column-id="${A}"]`);if(!k&&h.length===0)return null;let N=0;if(k){let S=k.querySelector(".kanuni-datagrid-header-label")??k;f.font=pa(S),N=f.measureText(S.textContent??"").width+44;}if(h.length>0){f.font=pa(h[0]);let S=[];for(let x=0;x<h.length;x++){if(Ii(h[x])){S.push(h[x]);continue}let te=h[x].textContent??"";if(te==="")continue;let U=f.measureText(te).width+20;U>N&&(N=U);}S.length>0&&(N=Math.max(N,Hi(S)));}return N===0?null:Math.round(Math.min(640,Math.max(48,N)))}function ma(d){let p=Number(d.weekStartsOn);return Number.isInteger(p)&&p>=0&&p<=6?p:0}function Bi(d){let p=[d.weekdaySu,d.weekdayMo,d.weekdayTu,d.weekdayWe,d.weekdayTh,d.weekdayFr,d.weekdaySa],f=ma(d);return [...p.slice(f),...p.slice(0,f)]}function Vi(d){return [d.monthJanuary,d.monthFebruary,d.monthMarch,d.monthApril,d.monthMay,d.monthJune,d.monthJuly,d.monthAugust,d.monthSeptember,d.monthOctober,d.monthNovember,d.monthDecember]}function _i(d,p){return !d||!p?false:d.getFullYear()===p.getFullYear()&&d.getMonth()===p.getMonth()&&d.getDate()===p.getDate()}var fa="http://www.w3.org/2000/svg";function Wi(){let d=document.createElementNS(fa,"svg");d.setAttribute("width","14"),d.setAttribute("height","14"),d.setAttribute("viewBox","0 0 16 16"),d.setAttribute("aria-hidden","true"),d.setAttribute("focusable","false");let p=document.createElementNS(fa,"path");return p.setAttribute("d","M3 4h10v9H3z M3 6.5h10 M5.5 2.5v2 M10.5 2.5v2"),p.setAttribute("fill","none"),p.setAttribute("stroke","currentColor"),p.setAttribute("stroke-width","1.3"),p.setAttribute("stroke-linecap","round"),d.appendChild(p),d}function Ht(d){let{t:p,format:f=datagridCore.DEFAULT_DATE_FORMAT,autoFocus:A=true}=d,k=Vi(p),h=Bi(p),N=document.createElement("span");N.className="kanuni-datagrid-date-editor";let S=document.createElement("input");S.type="text",S.inputMode="numeric",S.autocomplete="off",S.placeholder=f,d.ariaLabel&&S.setAttribute("aria-label",d.ariaLabel),d.testId&&S.setAttribute("data-testid",d.testId),d.columnId&&S.setAttribute("data-column-id",d.columnId),d.disabled&&(S.disabled=true);let x=null,te=false,U=null,I=datagridCore.toDate(d.value),$=I??new Date,j=()=>x===null?datagridCore.formatDateValue(d.value,f):datagridCore.maskDate(x,f),Y=()=>x===null?null:datagridCore.parseDateValue(datagridCore.maskDate(x,f),f),ue=()=>x!==null&&x.length===datagridCore.dateDigitCount(f)&&Y()===null,ne=()=>{let K=ue()||!!d.invalid;S.className=`kanuni-datagrid-editor${K?" kanuni-datagrid-editor--invalid":""}`,K?S.setAttribute("aria-invalid","true"):S.removeAttribute("aria-invalid");};S.value=j(),ne();let Ee=K=>{if(K===null){d.onChange(null);return}d.onChange(d.value instanceof Date?K:datagridCore.toIsoDate(K));},R=()=>{if(!U)return;if(!S.isConnected){J();return}let K=S.getBoundingClientRect(),he=datagridCore.placeAnchoredLayer({anchor:{left:K.left,top:K.top,bottom:K.bottom},width:U.offsetWidth,height:U.offsetHeight,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight});U.style.left=`${he.left}px`,U.style.top=`${he.top}px`;},P=()=>R();function X(){if(!U)return;U.textContent="";let K=document.createElement("div");K.className="kanuni-datagrid-date-popup-head";let he=document.createElement("button");he.type="button",he.setAttribute("aria-label",p.datePreviousMonth),he.setAttribute("data-testid","dg-date-prev"),he.textContent="\u2039",he.addEventListener("click",()=>{$=new Date($.getFullYear(),$.getMonth()-1,1),X();});let ke=document.createElement("span");ke.setAttribute("data-testid","dg-date-title"),ke.textContent=`${k[$.getMonth()]} ${$.getFullYear()}`;let de=document.createElement("button");de.type="button",de.setAttribute("aria-label",p.dateNextMonth),de.setAttribute("data-testid","dg-date-next"),de.textContent="\u203A",de.addEventListener("click",()=>{$=new Date($.getFullYear(),$.getMonth()+1,1),X();}),K.append(he,ke,de);let g=document.createElement("div");g.className="kanuni-datagrid-date-popup-grid",g.setAttribute("role","grid");for(let ce of h){let z=document.createElement("span");z.className="kanuni-datagrid-date-weekday",z.setAttribute("role","columnheader"),z.textContent=ce,g.appendChild(z);}let T=(new Date($.getFullYear(),$.getMonth(),1).getDay()-ma(p)+7)%7,me=datagridCore.daysInMonth($.getFullYear(),$.getMonth()+1);for(let ce=0;ce<42;ce++){let z=ce-T+1,ie=new Date($.getFullYear(),$.getMonth(),z),we=z<1||z>me,Ce=_i(ie,Y()??I),B=document.createElement("button");B.type="button",B.setAttribute("role","gridcell"),B.className=`kanuni-datagrid-date-day${we?" kanuni-datagrid-date-day--outside":""}${Ce?" kanuni-datagrid-date-day--selected":""}`,B.setAttribute("aria-selected",String(Ce)),B.setAttribute("data-testid","dg-date-day"),B.setAttribute("data-date",datagridCore.toIsoDate(ie)),B.textContent=String(ie.getDate()),B.addEventListener("click",()=>W(ie)),g.appendChild(B);}U.append(K,g);}function ae(){te||(te=true,Q.setAttribute("aria-expanded","true"),$=Y()??I??new Date,U=document.createElement("div"),U.className=`kanuni-datagrid-detached kanuni-datagrid-date-popup${d.surfaceClass?` ${d.surfaceClass}`:""}`,U.style.position="fixed",U.setAttribute("data-testid","dg-date-calendar"),U.setAttribute("role","dialog"),U.setAttribute("aria-label",d.ariaLabel?`${d.ariaLabel} ${p.dateCalendar}`:p.dateCalendar),U.addEventListener("mousedown",K=>K.preventDefault()),document.body.appendChild(U),window.addEventListener("scroll",P,true),window.addEventListener("resize",P),d.onPortalOpen?.(J),X(),R());}function J(){te&&(te=false,Q.setAttribute("aria-expanded","false"),window.removeEventListener("scroll",P,true),window.removeEventListener("resize",P),U?.remove(),U=null);}function W(K){x=null,J(),Ee(K),S.value=datagridCore.formatDateValue(d.value instanceof Date?K:datagridCore.toIsoDate(K),f),ne(),S.focus({preventScroll:true});}function Z(){if(x===null)return;if(x.length===0){Ee(null),x=null,S.value=j(),ne();return}let K=Y();K&&Ee(K),x=null,S.value=j(),ne();}S.addEventListener("input",()=>{x=datagridCore.dateDigits(S.value,f),S.value=datagridCore.maskDate(x,f),ne();}),S.addEventListener("keydown",K=>{if(K.key==="Escape"){if(K.preventDefault(),K.stopPropagation(),te){J();return}x=null,d.onCancel();return}if(te){let he=K.key==="ArrowLeft"?-1:K.key==="ArrowRight"?1:K.key==="ArrowUp"?-7:K.key==="ArrowDown"?7:0;if(he!==0){K.preventDefault(),K.stopPropagation();let ke=Y()??I??new Date,de=new Date(ke.getFullYear(),ke.getMonth(),ke.getDate()+he);x=datagridCore.dateDigits(datagridCore.formatDateValue(de,f),f),S.value=datagridCore.maskDate(x,f),$=de,X(),ne();return}if(K.key==="Enter"){K.preventDefault(),K.stopPropagation();let ke=Y();J(),ke&&W(ke);return}}if(K.key==="Enter"){K.preventDefault(),K.stopPropagation(),Z(),d.onCommit();return}if(K.key==="Tab"){Z(),J(),d.onTab&&(K.preventDefault(),K.stopPropagation(),d.onTab(K.shiftKey));return}if(K.key.length===1&&!K.ctrlKey&&!K.metaKey&&!/\d/.test(K.key)){K.preventDefault();return}K.stopPropagation();}),S.addEventListener("blur",()=>{te||Z();});let Q=document.createElement("button");return Q.type="button",Q.className="kanuni-datagrid-date-button",Q.setAttribute("aria-label",d.ariaLabel?`${d.ariaLabel} \u2014 ${p.dateOpenCalendar}`:p.dateOpenCalendar),Q.setAttribute("aria-expanded","false"),Q.setAttribute("data-testid","dg-date-open"),d.disabled&&(Q.disabled=true),Q.tabIndex=-1,Q.addEventListener("mousedown",K=>K.preventDefault()),Q.addEventListener("click",()=>{te?J():ae(),S.focus({preventScroll:true});}),Q.appendChild(Wi()),N.append(S,Q),A&&queueMicrotask(()=>{S.isConnected&&(S.focus({preventScroll:true}),S.select());}),N}function ba(d,p){return d==null?"":p==="date"&&d instanceof Date?d.toISOString().slice(0,10):String(d)}function wa(d,p){if(p){let f=document.createElement("span");f.id="kanuni-datagrid-editor-error",f.setAttribute("role","alert"),f.className="kanuni-datagrid-editor-error",f.textContent=p,d.appendChild(f);}return d}function Ko(d){let{value:p,dataType:f,error:A,seeded:k=false}=d,h=document.createDocumentFragment();if(d.options===null){let x=document.createElement("input");return x.type="text",x.value="\u2026",x.readOnly=true,x.disabled=true,x.className="kanuni-datagrid-editor",x.setAttribute("data-testid","dg-cell-editor"),h.appendChild(x),h}if(d.options&&d.options.length>0&&d.renderLookup)return h.appendChild(d.renderLookup({options:d.options,value:p,matchMode:d.matchMode,allowCustom:d.allowCustom,invalid:!!A,testId:"dg-cell-editor",ariaLabel:d.ariaLabel,surfaceClass:d.surfaceClass,onPortalOpen:d.onPortalOpen,noMatchText:d.t?.editNoMatch??"No match",onChange:d.onChange,onCommit:()=>d.onCommit("none"),onCancel:d.onCancel,onTab:x=>d.onTab(x?-1:1)})),wa(h,A);if(f==="date"&&d.t)return h.appendChild(Ht({value:p,format:d.dateFormat,invalid:!!A,testId:"dg-cell-editor",ariaLabel:d.ariaLabel,surfaceClass:d.surfaceClass,onPortalOpen:d.onPortalOpen,t:d.t,onChange:d.onChange,onCommit:()=>d.onCommit("none"),onCancel:d.onCancel,onTab:x=>d.onTab(x?-1:1)})),wa(h,A);let N=document.createElement("input");N.className=`kanuni-datagrid-editor${A?" kanuni-datagrid-editor--invalid":""}`,N.setAttribute("data-testid","dg-cell-editor"),N.setAttribute("aria-invalid",String(!!A)),A&&N.setAttribute("aria-errormessage","kanuni-datagrid-editor-error");let S=false;if(f==="boolean"?(N.type="checkbox",N.checked=p===true,N.addEventListener("change",()=>d.onChange(N.checked))):f==="number"?(N.type=Number.isNaN(Number(p))&&p!==null&&p!==void 0&&p!==""?"text":"number",N.value=ba(p,f),N.addEventListener("input",()=>d.onChange(N.value===""?null:Number(N.value)))):(N.type="text",N.value=ba(p,f),N.addEventListener("input",()=>d.onChange(N.value))),N.addEventListener("keydown",x=>{x.isComposing||x.keyCode===229||(x.key==="Enter"?(x.preventDefault(),x.stopPropagation(),d.onCommit(x.shiftKey?"none":"down")):x.key==="Tab"?(x.preventDefault(),x.stopPropagation(),S=true,d.onTab(x.shiftKey?-1:1)):x.key==="Escape"?(x.preventDefault(),x.stopPropagation(),d.onCancel()):x.stopPropagation());}),N.addEventListener("blur",()=>{S||d.onCommit("none");}),h.appendChild(N),A){let x=document.createElement("span");x.id="kanuni-datagrid-editor-error",x.setAttribute("role","alert"),x.className="kanuni-datagrid-editor-error",x.textContent=A,h.appendChild(x);}return queueMicrotask(()=>{if(N.isConnected&&(N.focus({preventScroll:true}),N.type!=="checkbox"))if(k){if(N.type==="text"||N.type==="search"){let x=N.value.length;N.setSelectionRange(x,x);}}else N.select();}),h}var qi=0;function Po(d){return new Promise(p=>{let f=document.createElement("div");f.className=`kanuni-datagrid-detached kanuni-datagrid-dialog-root${d.surfaceClass?` ${d.surfaceClass}`:""}`,f.setAttribute("role","presentation");let A=document.activeElement,k=j=>{document.removeEventListener("keydown",h,true);let Y=f.contains(document.activeElement);f.remove(),Y&&A?.isConnected&&A.focus({preventScroll:true}),p(j);},h=j=>{if(j.key==="Escape"){j.stopPropagation(),k(false);return}if(j.key==="Tab"){let Y=Array.from(I.querySelectorAll("button:not([disabled])"));if(Y.length===0)return;let ue=Y.indexOf(document.activeElement),ne=j.shiftKey?ue<=0?Y.length-1:ue-1:ue===Y.length-1?0:ue+1;j.preventDefault(),j.stopPropagation(),Y[ne].focus();}};document.addEventListener("keydown",h,true);let N=document.createElement("div");N.className="kanuni-datagrid-dialog-overlay",N.addEventListener("mousedown",()=>k(false));let S=document.createElement("div");S.className="kanuni-datagrid-dialog",S.setAttribute("role","alertdialog"),S.setAttribute("aria-modal","true");let x=`dg-dialog-${++qi}`;S.setAttribute("aria-labelledby",`${x}-title`),S.setAttribute("aria-describedby",`${x}-message`),S.setAttribute("data-testid","dg-dialog");let te=document.createElement("div");te.className="kanuni-datagrid-dialog-title",te.id=`${x}-title`,te.textContent=d.title;let U=document.createElement("div");U.className="kanuni-datagrid-dialog-message",U.id=`${x}-message`,U.textContent=d.message;let I=document.createElement("div");if(I.className="kanuni-datagrid-dialog-actions",d.cancelLabel!==void 0){let j=document.createElement("button");j.type="button",j.setAttribute("data-testid","dg-dialog-cancel"),j.textContent=d.cancelLabel,j.addEventListener("click",()=>k(false)),I.appendChild(j);}let $=document.createElement("button");$.type="button",$.className=`kanuni-datagrid-dialog-primary${d.danger?" kanuni-datagrid-dialog-primary--danger":""}`,$.setAttribute("data-testid","dg-dialog-confirm"),$.textContent=d.confirmLabel,$.addEventListener("click",()=>k(true)),I.appendChild($),S.append(te,U,I),f.append(N,S),document.body.appendChild(f),$.focus();})}function Ui(d,p){switch(d){case "number":return p==null||p===""||!Number.isNaN(Number(p))?"number":"text";case "boolean":return "checkbox";default:return "text"}}function zi(d,p){if(p==="number"){if(d==="")return null;let f=Number(d);return Number.isNaN(f)?d:f}return d}function Go(d){let{t:p,popup:f=false,inline:A=false}=d,k=document.createElement("div");k.className=`kanuni-datagrid-edit-form${A?" kanuni-datagrid-edit-form--inline":""}`,k.setAttribute("data-testid","dg-edit-form"),k.setAttribute("data-row-key",String(d.rowKey)),f&&k.setAttribute("data-popup",""),k.setAttribute("role",f?"dialog":"group"),f&&k.setAttribute("aria-modal","true"),k.setAttribute("aria-label",d.isNew?p.formAddTitle:p.formEditTitle);let h=document.createElement("div");h.className="kanuni-datagrid-edit-form-header";let N=document.createElement("strong");N.textContent=d.isNew?p.formAddTitle:p.formEditTitle,h.appendChild(N);let S=document.createElement("div");S.className="kanuni-datagrid-edit-form-error",S.setAttribute("role","alert"),S.setAttribute("data-testid","dg-form-error"),S.style.display="none";let x=document.createElement("div");x.className="kanuni-datagrid-edit-form-fields";let te=new Map,U=(R,P)=>{let X=d.getValue(R.columnId),ae=d.getSaving()||!R.editable,J=`dg-field-${String(d.rowKey)}-${R.columnId}`;if(R.lookup&&!d.renderLookup){let Z=document.createElement("input");Z.id=J,Z.type="text",Z.className="kanuni-datagrid-edit-form-input",Z.setAttribute("data-testid",J),Z.disabled=true,Z.readOnly=true;let Q=R.lookup.options?.find(K=>Object.is(K.value,X));return Z.value=Q?Q.label:X==null?"":String(X),Z}if(R.lookup&&d.renderLookup){let Z=document.createElement("div");if(Z.className="kanuni-datagrid-edit-form-lookup",R.lookup.options===null){let Q=document.createElement("input");return Q.type="text",Q.value="\u2026",Q.readOnly=true,Q.disabled=true,Q.className="kanuni-datagrid-editor",Q.setAttribute("data-testid",J),Z.appendChild(Q),Z}return Z.appendChild(d.renderLookup({options:R.lookup.options,value:X,matchMode:R.lookup.matchMode,allowCustom:R.lookup.allowCustom,invalid:!!P,autoFocus:false,testId:J,columnId:R.columnId,ariaLabel:R.label,surfaceClass:d.surfaceClass,onPortalOpen:d.onPortalOpen,noMatchText:p.editNoMatch,onChange:Q=>d.onChange(R.columnId,Q),commitOnPick:false,onCommit:()=>d.onSave(),onCancel:d.onCancel})),Z}if(R.dataType==="date"){let Z=document.createElement("div");return Z.className="kanuni-datagrid-edit-form-lookup",Z.appendChild(Ht({value:X,format:R.dateFormat,invalid:!!P,disabled:ae,autoFocus:false,testId:J,columnId:R.columnId,ariaLabel:R.label,surfaceClass:d.surfaceClass,onPortalOpen:d.onPortalOpen,t:p,onChange:Q=>d.onChange(R.columnId,Q),onCommit:()=>d.onSave(),onCancel:d.onCancel})),Z}let W=document.createElement("input");return W.id=J,W.className="kanuni-datagrid-edit-form-input",W.setAttribute("data-testid",J),W.disabled=ae,R.dataType==="boolean"?(W.type="checkbox",W.checked=X===true,W.addEventListener("change",()=>d.onChange(R.columnId,W.checked)),W):(W.type=Ui(R.dataType,X),P&&W.setAttribute("aria-invalid","true"),W.value=X==null?"":String(X),W.addEventListener("input",()=>d.onChange(R.columnId,zi(W.value,R.dataType))),W)},I=d.getErrors();for(let R of d.fields){let P=document.createElement("label");P.className="kanuni-datagrid-edit-form-field",P.setAttribute("data-field-id",R.columnId);let X=document.createElement("span");X.className="kanuni-datagrid-edit-form-label",X.textContent=R.label;let ae=document.createElement("span");ae.style.display="contents",ae.appendChild(U(R,I[R.columnId]??null));let J=document.createElement("span");J.className="kanuni-datagrid-edit-form-message",J.setAttribute("role","alert"),J.style.display="none",P.append(X,ae,J),x.appendChild(P),te.set(R.columnId,{wrap:P,message:J,controlHost:ae,field:R});}let $=document.createElement("div");$.className="kanuni-datagrid-edit-form-footer";let j=typeof navigator<"u"&&/Mac|iP(hone|ad)/.test(navigator.platform??""),Y=document.createElement("span");Y.className="kanuni-datagrid-edit-form-hint",Y.textContent=p.formShortcut.replace("{key}",j?"\u2318":"Ctrl");let ue=document.createElement("button");ue.type="button",ue.setAttribute("data-testid","dg-form-cancel"),ue.textContent=p.cancel,ue.addEventListener("click",()=>d.onCancel());let ne=document.createElement("button");ne.type="button",ne.className="kanuni-datagrid-edit-form-save",ne.setAttribute("data-testid","dg-form-save"),ne.textContent=p.save,ne.addEventListener("click",()=>d.onSave()),$.append(Y,ue,ne),k.append(h,S,x,$),k.addEventListener("keydown",R=>{if(R.key==="Escape"){R.preventDefault(),R.stopPropagation(),d.onCancel();return}if(R.key==="Enter"&&(R.ctrlKey||R.metaKey)){R.preventDefault(),R.stopPropagation(),d.onSave();return}if(R.key==="Enter"&&!(R.target instanceof HTMLButtonElement)){R.preventDefault();return}if(R.key!=="Tab"||!f)return;let P=Array.from(k.querySelectorAll("input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled])"));if(P.length===0)return;let X=P[0],ae=P[P.length-1];!R.shiftKey&&document.activeElement===ae?(R.preventDefault(),X.focus()):R.shiftKey&&document.activeElement===X&&(R.preventDefault(),ae.focus());});let Ee=()=>{let R=d.getErrors(),P=d.getSaving(),X=d.getSaveError();S.textContent=X??"",S.style.display=X?"":"none",ne.disabled=P,ue.disabled=P,ne.textContent=P?p.editSaving:p.save;for(let[J,W]of te){let Z=R[J]??null;W.message.textContent=Z??"",W.message.style.display=Z?"":"none",Z?W.wrap.setAttribute("data-invalid",""):W.wrap.removeAttribute("data-invalid");let Q=W.controlHost.querySelector("input, .kanuni-datagrid-editor");Q&&Q.classList.toggle("kanuni-datagrid-editor--invalid",!!Z);}let ae=Object.keys(R)[0];ae&&te.get(ae)?.wrap.querySelector("input:not([disabled])")?.focus();};return queueMicrotask(()=>{if(!k.isConnected)return;let R=k.querySelector("input:not([disabled]), select:not([disabled]), textarea:not([disabled])");R?.focus(),R instanceof HTMLInputElement&&R.type==="text"&&R.select(),d.onNaturalHeight&&d.onNaturalHeight(k.clientHeight-x.clientHeight+x.scrollHeight);}),{element:k,refresh:Ee,setLookupOptions:(R,P)=>{let X=te.get(R);if(!X)return;X.field.lookup={...X.field.lookup,options:P};let ae=d.getErrors();X.controlHost.textContent="",X.controlHost.appendChild(U(X.field,ae[R]??null));},dispose:()=>k.remove()}}function ha(d){let{grid:p,engine:f,mode:A,t:k,extension:h}=d,N=p.controller,S=datagridCore.isRowEditMode(A),x=null,te=async()=>{x=null;let C=await f.saveChanges();if(C.saved||C.superseded){B();return}x={message:C.error??k.editSaveFailed,rowKey:C.rowKey,columnId:C.columnId},B(),C.rowKey!==void 0&&C.columnId!==void 0&&(N.revealRow(C.rowKey),N.focusCell(C.rowKey,C.columnId));},U=()=>{x=null,f.cancelChanges();},I=null,$=null,j=null,Y=null,ue=null,ne=new Map,Ee=0,R=C=>(I=null,f.beginRowEdit(C)),P=null,X=(C,F,ee)=>!S||f.isEditingRow()||!f.canEditRow(C)||(N.scrollToCell(C,F),!R(C))?false:(A==="row"&&ee!==void 0&&(P=F,f.setRowEditValue(F,ee)),true),ae=async()=>{if(!f.getRowSession())return false;let F=await f.saveRowEdit(N.getVisualColumnIds());return I=F.saved?null:F.error??null,F.saved?d.focusGrid():le(),F.saved},J=()=>{I=null,f.cancelRowEdit(),d.focusGrid();},W=C=>{let F=N.getColumnLayout(),ee=N.getColumnModel(),Re=++Ee;return [...F.left,...F.center,...F.right].filter(ge=>!datagridCore.isChromeColumn(ge.state.id)).map(ge=>{let be=ge.state.id,xe=ee.getDef(be),it=h.formLookup?h.formLookup(C,be,Ye=>{Ee===Re&&j?.setLookupOptions(be,Ye);}):xe?.lookup?{options:datagridCore.staticLookupItems(xe)??[]}:void 0;return {columnId:be,label:xe?.headerName??xe?.field??be,dataType:ee.getEditorDataType(be),editable:f.canUpdate(C,be),dateFormat:xe?.dateFormat,lookup:it}})},Z=()=>ue??d.formHeight??datagridCore.DEFAULT_EDIT_FORM_HEIGHT,Q=(C,F)=>Go({rowKey:C,fields:W(C),getValue:ee=>f.rowEditValue(ee),getErrors:()=>f.getRowSession()?.errors??{},getSaving:()=>f.getRowSession()?.saving??false,getSaveError:()=>I,isNew:f.getRowSession()?.isNew??false,popup:!F,inline:F,surfaceClass:d.surfaceClass(),renderLookup:h.renderLookup,onPortalOpen:d.trackPortal,t:k,onNaturalHeight:F?ee=>{let Re=Math.ceil(ee);if(Re>0&&Re!==ue){ue=Re;let ge=f.getRowSession();ge&&A==="form"&&N.setEditFormRow(ge.rowKey,{height:Z(),atTop:ge.isNew});}}:void 0,onChange:(ee,Re)=>f.setRowEditValue(ee,Re),onSave:()=>{ae();},onCancel:J}),K=()=>{ne.clear(),j?.dispose(),j=null,Y?.remove(),Y=null;};function he(){if(!S)return;let C=f.getRowSession();if(C&&A!=="row"?p.element.setAttribute("data-row-session",A):p.element.removeAttribute("data-row-session"),!C){$!==null&&($=null,ue=null,K(),A==="form"&&N.setEditFormRow(null));return}if($===C.rowKey){j?.refresh();return}if(K(),$=C.rowKey,A==="form"){N.setEditFormRow(C.rowKey,{height:Z(),atTop:C.isNew}),N.revealRow(C.rowKey);return}if(A==="popup"){let F=d.surfaceClass();Y=document.createElement("div"),Y.className=`kanuni-datagrid-detached kanuni-datagrid-edit-popup${F?` ${F}`:""}`;let ee=document.createElement("div");ee.className="kanuni-datagrid-edit-popup-overlay",ee.addEventListener("mousedown",()=>J()),j=Q(C.rowKey,false),Y.append(ee,j.element),document.body.appendChild(Y);return}N.revealRow(C.rowKey),queueMicrotask(()=>{let F=f.getRowSession();if(!F||F.rowKey!==$)return;let ee=p.element.querySelectorAll('[data-testid="dg-row-editor"]');if(ee.length===0)return;let Re=N.getFocus(),be=(Re&&String(Re.rowKey)===String(F.rowKey)?p.element.querySelector(`[data-testid="dg-row-editor"][data-column-id="${CSS.escape(Re.columnId)}"]`):null)??ee[0],xe=P!==null&&be.getAttribute("data-column-id")===P;P=null,be.focus({preventScroll:true}),be instanceof HTMLInputElement&&(xe?be.setSelectionRange(be.value.length,be.value.length):be.select());});}let ke=C=>{let F=ne.get(C);if(F)return F;let ee=N.getColumnModel(),Re=ee.getDef(C),ge=ee.getEditorDataType(C),be=f.rowEditValue(C),xe=f.getRowSession()?.errors[C]??null,it=Re?.headerName??C,Ye,Ct=h.resolveLookup?.($,C);if(Ct&&Ct.options!==void 0&&h.renderLookup)Ye=h.renderLookup({options:Ct.options??[],value:be,matchMode:Ct.matchMode,allowCustom:Ct.allowCustom,invalid:!!xe,autoFocus:false,testId:"dg-row-editor",columnId:C,ariaLabel:it,surfaceClass:d.surfaceClass(),noMatchText:k.editNoMatch,onChange:ye=>f.setRowEditValue(C,ye),commitOnPick:false,onCommit:()=>{ae();},onCancel:J});else if(ge==="date")Ye=Ht({value:be,format:Re?.dateFormat,invalid:!!xe,autoFocus:false,testId:"dg-row-editor",columnId:C,ariaLabel:it,surfaceClass:d.surfaceClass(),onPortalOpen:d.trackPortal,t:k,onChange:ye=>f.setRowEditValue(C,ye),onCommit:()=>{ae();},onCancel:J});else {let ye=document.createElement("input");ye.className=`kanuni-datagrid-editor${xe?" kanuni-datagrid-editor--invalid":""}`,ye.setAttribute("data-testid","dg-row-editor"),ye.setAttribute("data-column-id",C),ye.setAttribute("aria-label",it),xe&&(ye.title=xe),ge==="boolean"?(ye.type="checkbox",ye.checked=be===true,ye.addEventListener("change",()=>f.setRowEditValue(C,ye.checked))):(ye.type=ge==="number"?"number":"text",ye.value=be==null?"":String(be),ye.addEventListener("input",()=>{let He=ye.value;f.setRowEditValue(C,ge==="number"?He===""?null:Number(He):He);})),ye.addEventListener("keydown",He=>{He.key==="Enter"?(He.preventDefault(),He.stopPropagation(),ae()):He.key==="Escape"?(He.preventDefault(),He.stopPropagation(),J()):He.stopPropagation();}),Ye=ye;}return ne.set(C,Ye),Ye},de=document.createElement("div");de.className="kanuni-datagrid-filter-bar kanuni-datagrid-edit-bar",de.setAttribute("data-testid","dg-edit-bar"),h.decorateBar?.(de);let g=(C,F,ee,Re)=>{let ge=document.createElement("button");return ge.type="button",ee&&(ge.className="kanuni-datagrid-filter-primary"),ge.setAttribute("data-testid",C),ge.textContent=F,ge.addEventListener("click",Re),ge},M=C=>{let F=document.createElement("span");return F.className="kanuni-datagrid-edit-form-error",F.setAttribute("data-testid",C),F.style.display="none",F},T=null,me=null,ce=null,z=null,ie=null,we=null,Ce=null;A==="batch"&&(T=g("dg-save-changes",k.editSaveChanges,true,()=>{te();}),me=g("dg-discard-changes",k.editDiscardChanges,false,U),ce=M("dg-save-error"),de.append(T,me,ce)),A==="row"&&(z=document.createElement("span"),z.setAttribute("data-testid","dg-row-editing"),z.className="kanuni-datagrid-filter-active",z.style.display="none",ie=g("dg-save-row",k.editSaveRow,true,()=>{ae();}),ie.style.display="none",we=g("dg-cancel-row",k.cancel,false,J),we.style.display="none",Ce=M("dg-row-save-error"),de.append(z,ie,we,Ce)),de.childElementCount>0&&d.barHost?.appendChild(de);function B(){let C=f.hasChanges();if(T&&(T.style.display=C?"":"none",T.textContent=k.editSaveCount.replace("{n}",String(f.getChanges().length)),T.disabled=f.isSaving()),me&&(me.style.display=C?"":"none"),ce&&(ce.textContent=x?.message??"",ce.style.display=x?"":"none"),z&&ie&&we&&Ce){let F=f.getRowSession(),ee=F?"":"none";z.style.display=ee,ie.style.display=ee,we.style.display=ee,F&&(z.textContent=F.isNew?k.formAddTitle:k.editEditingRow.replace("{row}",String(F.rowKey)),ie.disabled=F.saving,ie.textContent=F.saving?k.editSaving:k.editSaveRow,we.disabled=F.saving),Ce.textContent=I??"",Ce.style.display=F&&I?"":"none";}de.style.display=Array.from(de.children).some(F=>F.style.display!=="none")?"":"none";}B();function le(){x=null,B(),he();}return {rowModeActive:S,beginRowEdit:R,openRowFromKeys:X,saveRowEdit:ae,cancelRowEdit:J,saveChanges:te,cancelChanges:U,renderRowCell:C=>{if(!(A!=="row"||C.node.kind!=="data"||datagridCore.isChromeColumn(C.columnId))&&f.isEditingRow(C.node.key))return f.canUpdate(C.node.key,C.columnId)?ke(C.columnId):d.defaultContent(C,f.rowEditValue(C.columnId))},renderEditForm:C=>{if(A!=="form")return;let F=f.getRowSession();if(!(!F||F.rowKey!==C))return (!j||j.element.getAttribute("data-row-key")!==String(C))&&(j?.dispose(),j=Q(C,true)),j.element},onCellDoubleClick:C=>S?(C.node.kind==="data"&&!f.isEditingRow()&&f.canEditRow(C.node.key)&&R(C.node.key),true):false,handleRowKeys:C=>!f.isEditingRow()||C.target?.closest?.('[data-testid="dg-edit-form"]')?false:C.key==="Enter"?(C.preventDefault(),ae(),true):C.key==="Escape"?(C.preventDefault(),J(),true):false,sync:le,dispose:()=>{K(),A==="form"&&$!==null&&N.setEditFormRow(null),$=null,p.element.removeAttribute("data-row-session"),de.remove();}}}function $o(d,p,f,A,k={}){let h=d.controller,N=p.mode??"cell";p.formLabels&&(f={...f,...p.formLabels});let S=k.isColumnEditable??(g=>h.getColumnModel().getDef(g)?.editable!==false),x=()=>{h.refreshCells(),W.sync(),k.onChange?.(),te.schedule("footer",()=>h.refreshSummaries());},te=datagridCore.createDebouncedCommit(150),U=g=>h.getRowByKey(g),I=new datagridCore.EditingEngine({mode:N,messages:f,onChange:x,onAutoSaveFailed:g=>ue(g),onCellValueChanged:g=>h.notifyCellValueChanged(g),onEditingStarted:g=>h.notifyEditingStarted(g),onEditingStopped:g=>h.notifyEditingStopped(g),onRowEditingStarted:g=>h.notifyRowEditingStarted(g),onRowEditingStopped:g=>h.notifyRowEditingStopped(g),editableColumns:g=>{let M=h.getColumnLayout();return [...M.left,...M.center,...M.right].map(T=>T.state.id).filter(T=>!datagridCore.isChromeColumn(T)&&I.canUpdate(g,T))},readValue:(g,M)=>{let T=U(g);return T?h.getColumnModel().getStoredValue(T,M):void 0},formatForEdit:(g,M,T)=>h.formatCellForEdit(M,T),parseFromEdit:(g,M,T)=>h.parseCellFromEdit(M,T,g),readRow:U,isColumnEditable:S,applyValue:(g,M,T)=>h.writeCellValue(g,M,T),storedValue:(g,M,T)=>h.valueAfterWrite(g,M,T),onSave:g=>p.onSave?.(g),...k.engine});h.setPendingValueReader({effectiveValue:(g,M,T)=>I.changes.effectiveValue(g,M,T),effectiveRow:(g,M)=>I.changes.applyPendingTo(g,M),hasPending:()=>I.changes.hasChanges()}),h.setEditingDelegate({startEditingCell:(g,M)=>(h.scrollToCell(g,M),I.beginEdit(g,M)),stopEditing:async g=>{if(I.isEditingRow())return g?(W.cancelRowEdit(),true):W.saveRowEdit();if(!I.getSession())return false;if(g)return I.cancelEdit(),Y(),true;let M=I.commitEdit();return M&&Y(),M},getEditingCells:()=>{let g=I.getRowSession();if(g)return h.getVisualColumnIds().filter(T=>!datagridCore.isChromeColumn(T)&&I.canUpdate(g.rowKey,T)).map(T=>({rowKey:g.rowKey,columnId:T}));let M=I.getSession();return M?[{rowKey:M.rowKey,columnId:M.columnId}]:[]}});let $=false,j=[h.events.on("rowsChanged",g=>{$=g.removed===0;}),h.events.on("dataUpdated",()=>{let g=$;$=false,!g&&I.retainKeys(new Set(h.getDataRows().map(M=>M.key)));})];function Y(){let g=d.element.querySelector(".kanuni-datagrid-scroller");(g&&g.tabIndex>=0?g:d.element).focus({preventScroll:true});}function ue(g){let M=g.columnId!==void 0?h.getColumnModel().getDef(g.columnId)?.headerName??g.columnId:null,T=g.error??f.editSaveFailed;Po({title:f.editCannotSave,message:M?`${M}: ${T}`:T,confirmLabel:f.ok,surfaceClass:A.surfaceClass()}),g.rowKey!==void 0&&g.columnId!==void 0&&(h.revealRow(g.rowKey),h.focusCell(g.rowKey,g.columnId));}let ne=(g,M={})=>{let T=I.getSession(),me=T?{rowKey:T.rowKey,columnId:T.columnId}:h.getFocus();if(!me||!I.commitEdit())return false;let ce=h.getColumnModel().runtime().filter(B=>B.state.visible).map(B=>B.state.id);if(datagridCore.edgeEditableColumn(ce,S,1)===null)return false;let z=h.getRows(),ie=z.findIndex(B=>B.key===me.rowKey);if(ie<0)return false;let we=datagridCore.nextEditableColumn(ce,S,me.columnId,g);if(we===null){if(M.cycle===false)return false;let B=g;do ie+=B;while(ie>=0&&ie<z.length&&z[ie]?.kind!=="data");if(ie<0||ie>=z.length)return false;we=datagridCore.edgeEditableColumn(ce,S,g);}let Ce=z[ie];return !Ce||Ce.kind!=="data"?false:(h.focusCell(Ce.key,we),h.scrollToCell(Ce.key,we),M.open===true?I.beginEdit(Ce.key,we):(Y(),true))},Ee=g=>{if(I.getSession())return false;let M=h.getFocus();if(!M||!S(M.columnId))return false;let T=h.getColumnModel().getEditorDataType(M.columnId);if(T==="boolean"||T==="date")return false;let me=T==="number"?Number.isNaN(Number(g))?null:Number(g):g;return me===null?false:W.rowModeActive?W.openRowFromKeys(M.rowKey,M.columnId,me):(h.scrollToCell(M.rowKey,M.columnId),I.beginEdit(M.rowKey,M.columnId,me))},R=null,P=new Set,X=g=>{let M=()=>{P.delete(M),g();};P.add(M);},ae=()=>{for(let g of [...P])g();P.clear();},J=(g,M)=>{let T=h.getColumnModel().getDef(g.columnId),me=g.node.data;if(T?.renderCell)return T.renderCell({value:M,row:me,node:g.node,column:T});let ce=datagridCore.lookupLabel(T,M);if(ce!==null)return ce;if(T?.valueFormatter){let z=T.valueFormatter(M,me);return typeof z=="string"?z:String(z??"")}return T?.dateFormat&&T.dataType==="date"?datagridCore.formatDateValue(M,T.dateFormat):M==null?"":String(M)},W=ha({grid:d,engine:I,mode:N,t:f,formHeight:p.formHeight,surfaceClass:()=>A.surfaceClass(),barHost:A.barHost,focusGrid:Y,trackPortal:X,defaultContent:J,extension:k}),Z=g=>{if(g.node.kind!=="data")return;let M=W.renderRowCell(g);if(M!==void 0)return M;if(!I.isEditing(g.node.key,g.columnId)){R&&R.rowKey===g.node.key&&R.columnId===g.columnId&&(R=null);let B=I.getMode()==="cell"?void 0:I.changes.get(g.node.key,g.columnId),le=k.cellAdornment?.(g)??null;if(!B&&!le)return;let C=B?B.newValue:g.value,F=document.createElement("span");F.style.display="contents";let ee=J(g,C);return typeof ee=="string"?F.appendChild(document.createTextNode(ee)):F.appendChild(ee),le&&F.appendChild(le),F}let T=I.getSession();if(R&&R.rowKey===T.rowKey&&R.columnId===g.columnId)return R.setError(T.validation.message),R.container;let me=h.getColumnModel().getDef(g.columnId),ce=k.resolveLookup?.(T.rowKey,g.columnId)??{options:void 0},z=document.createElement("span");z.style.display="contents";let ie=k.customEditors?me?.renderEditor:void 0;if(ie){let B=new Set,le=ie({value:I.getSession()?.value??T.value,row:I.effectiveRow(T.rowKey),columnId:g.columnId,error:T.validation.message,onErrorChange:C=>(B.add(C),()=>B.delete(C)),setValue:C=>I.setEditValue(C),commit:()=>{I.commitEdit()&&Y();},cancel:()=>{I.cancelEdit(),Y();}});return z.appendChild(le),R={rowKey:T.rowKey,columnId:g.columnId,container:z,setError:C=>{for(let F of B)F(C);}},z}let we=B=>{z.textContent="",z.appendChild(Ko({value:I.getSession()?.value??T.value,dataType:h.getColumnModel().getEditorDataType(g.columnId),error:B,seeded:T.seeded,onPortalOpen:X,options:ce.options,allowCustom:ce.allowCustom,matchMode:ce.matchMode,renderLookup:k.renderLookup,dateFormat:me?.dateFormat,ariaLabel:me?.headerName??g.columnId,surfaceClass:A.surfaceClass(),t:f,onChange:le=>I.setEditValue(le),onCommit:le=>{I.commitEdit()&&(le==="down"&&h.moveFocus("down"),Y());},onTab:le=>{if(p.focusCellOnTab===false){I.commitEdit();return}ne(le,{open:k.keepEditingOnTab===true,cycle:p.focusCellOnCycle!==false});},onCancel:()=>{I.cancelEdit(),Y();}}));};we(T.validation.message);let Ce=T.validation.message;if(R={rowKey:T.rowKey,columnId:g.columnId,container:z,setError:B=>{if(B===Ce)return;Ce=B,z.querySelector(".kanuni-datagrid-editor")?.classList.toggle("kanuni-datagrid-editor--invalid",!!B);let C=z.querySelector(".kanuni-datagrid-editor-error");B&&!C&&(C=document.createElement("span"),C.id="kanuni-datagrid-editor-error",C.setAttribute("role","alert"),C.className="kanuni-datagrid-editor-error",z.appendChild(C)),C&&(C.textContent=B??"",B||C.remove());}},ce.options===null&&k.resolveLookup){let B=k.resolveLookup,le=()=>{let F=B(T.rowKey,g.columnId);F.options!==null&&R&&R.rowKey===T.rowKey&&R.columnId===g.columnId&&I.isEditing(T.rowKey,g.columnId)&&(ce.options=F.options,we(I.getSession()?.validation.message??null));},C=h.events.on("cellsRefreshed",()=>{le(),B(T.rowKey,g.columnId).options!==null&&C();});}return z},Q=g=>{if(g.node.kind!=="data")return;let M=[];return I.isEditing(g.node.key,g.columnId)&&M.push("kanuni-datagrid-cell--editing"),I.changes.isDirty(g.node.key,g.columnId)&&M.push("kanuni-datagrid-cell--dirty"),I.isRemoved(g.node.key)&&M.push("kanuni-datagrid-cell--removed"),M.length?M.join(" "):void 0},K=g=>{g.node.kind==="data"&&(W.onCellDoubleClick(g)||I.canUpdate(g.node.key,g.columnId)&&(h.scrollToCell(g.node.key,g.columnId),I.beginEdit(g.node.key,g.columnId)));},he=g=>{let M=g.target;return M?.closest?.('[data-testid="dg-edit-form"]')?true:(g.key==="Tab"||g.key==="Enter"||g.key===" ")&&!!M?.closest?.('[data-testid="dg-edit-bar"]')},ke=g=>he(g)?false:W.handleRowKeys(g)?true:g.key==="Escape"&&I.getSession()?(g.preventDefault(),I.cancelEdit(),true):g.key==="Tab"&&p.focusCellOnTab!==false&&!I.getSession()&&h.getFocus()&&ne(g.shiftKey?-1:1,{open:k.keepEditingOnTab===true,cycle:p.focusCellOnCycle!==false})?(g.preventDefault(),true):false,de=g=>{if(he(g))return false;let M=g.ctrlKey||g.metaKey;if(g.key==="F2"){let T=h.getFocus();if(T)return g.preventDefault(),W.rowModeActive?(W.openRowFromKeys(T.rowKey,T.columnId),true):(h.scrollToCell(T.rowKey,T.columnId),I.beginEdit(T.rowKey,T.columnId),true)}return p.editOnKeyPress!==false&&!M&&!g.altKey&&g.key.length===1&&g.key!==" "&&!I.getSession()&&Ee(g.key)?(g.preventDefault(),true):false};return {engine:I,renderCellContent:Z,getCellClassName:Q,onCellDoubleClick:K,handleKeyDown:g=>ke(g)||de(g),handleSessionKeys:ke,handleOpenKeys:de,editAdjacentCell:ne,focusGrid:Y,trackPortal:X,defaultContent:J,renderEditForm:W.renderEditForm,beginRowEdit:W.beginRowEdit,saveRowEdit:W.saveRowEdit,cancelRowEdit:W.cancelRowEdit,saveChanges:W.saveChanges,cancelChanges:W.cancelChanges,dispose:()=>{ae(),W.dispose(),te.cancelAll(),j.forEach(g=>g()),h.setPendingValueReader(null),h.setEditingDelegate(null);}}}function Ea(d,p){return !d||datagridCore.isChromeColumn(p)?false:d.editable!==false&&d.lookup==null&&d.renderEditor==null&&d.allowFormulas!==true}var va=["rules","crud","allowAdding","allowUpdating","allowDeleting","onInitNewRow","onRowInserted","onRowUpdated","onRowRemoved","insertKey","appendOnArrowDown","newRowPosition","keepEditingOnTab","commandColumn","commandLabels","confirmDelete","confirmDeleteMessage","range"];var sn=60,Wn=36,un=28,qn="application/x-kanuni-row",dn=new Map,qo=new Set,La=5e3,Ft=0,Fl=["columnStateChanged","sortChanged"],Kl=["columnStateChanged"],Pl=["contentReady","viewportChanged","filterChanged","selectionChanged","focusChanged","summariesChanged","cellsRefreshed","findChanged"],w=(d,p="div")=>{let f=document.createElement(p);return f.className=d,f},cn="http://www.w3.org/2000/svg";function Gl(d,p){let f=k=>{p&&console.warn(`[datagrid] ${k} is an Enterprise feature \u2014 use createEnterpriseGrid from @kanunilabs/datagrid-enterprise to use it.`);};if(d.viewportDatasource)throw new Error("[datagrid] viewportDatasource is an Enterprise feature \u2014 use createEnterpriseGrid from @kanunilabs/datagrid-enterprise to use it.");let A={...d};if(A.dataSource!=null&&!Array.isArray(A.dataSource)&&A.grouping&&(f("grouping a server-side DataSource is"),delete A.grouping),A.columns?.some(k=>k.spanRows)&&(f("cell span/merge (spanRows) is"),A={...A,columns:A.columns.map(k=>k.spanRows?{...k,spanRows:void 0}:k)}),A.tree&&(f("tree data is"),delete A.tree),A.masterDetail&&(f("master-detail is"),delete A.masterDetail),A.grouping){let{groupBy:k,groupSummaries:h}=A.grouping,N=k==null?[]:typeof k=="string"?[k]:k;(N.length>1||h)&&(f("multi-level grouping and group summaries are"),A={...A,grouping:{...A.grouping,groupBy:N.slice(0,1),groupSummaries:false}});}return A}var Ol={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:""},Un=new Set;function $l(d){for(let p of Object.keys(d)){let f=Ol[p];f===void 0||f===""||Un.has(p)||(Un.add(p),console.warn(`[datagrid] \`${p}\` is a React-only option \u2014 ${f}.`));}}function Bl(){let d=document.createElementNS("http://www.w3.org/2000/svg","svg");d.setAttribute("width","14"),d.setAttribute("height","14"),d.setAttribute("viewBox","0 0 16 16"),d.setAttribute("aria-hidden","true"),d.setAttribute("focusable","false");let p=document.createElementNS("http://www.w3.org/2000/svg","path");return p.setAttribute("d","M8 1v8m0 0L5 6m3 3 3-3M2 11v2a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-2"),p.setAttribute("fill","none"),p.setAttribute("stroke","currentColor"),p.setAttribute("stroke-width","1.5"),p.setAttribute("stroke-linecap","round"),p.setAttribute("stroke-linejoin","round"),d.appendChild(p),d}function Vl(){let d=document.createElementNS(cn,"svg");d.setAttribute("width","11"),d.setAttribute("height","11"),d.setAttribute("viewBox","0 0 16 16"),d.setAttribute("aria-hidden","true"),d.setAttribute("focusable","false");let p=document.createElementNS(cn,"path");return p.setAttribute("d","M1.5 2.5h13L9.5 8.6v4.3l-3 1.6V8.6L1.5 2.5Z"),p.setAttribute("fill","currentColor"),p.setAttribute("stroke","currentColor"),p.setAttribute("stroke-width","0.6"),p.setAttribute("stroke-linejoin","round"),d.appendChild(p),d}function _l(d){let p=document.createElementNS(cn,"svg");p.setAttribute("width","14"),p.setAttribute("height","14"),p.setAttribute("viewBox","0 0 16 16"),p.setAttribute("aria-hidden","true"),p.setAttribute("focusable","false");let f=document.createElementNS(cn,"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"),p.appendChild(f);let A=k=>{let h=document.createElementNS(cn,"path");h.setAttribute("d",k),h.setAttribute("fill","none"),h.setAttribute("stroke","currentColor"),h.setAttribute("stroke-width","1.3"),h.setAttribute("stroke-linecap","round"),p.appendChild(h);};return A("M5 8h6"),d&&A("M8 5v6"),p}function Sa(d,p){let f=d??(p==="number"||p==="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 _n(d){let p="kanuni-datagrid-root";return d.dark&&(p+=" kanuni-datagrid-dark"),d.theme&&(p+=` kanuni-datagrid-theme-${d.theme}`),d.palette&&(p+=` kanuni-datagrid-palette-${d.palette}`),d.density&&(p+=` kanuni-datagrid-density-${d.density}`),p}function Wl(d,p){let{theme:f,palette:A,density:k,dark:h,striped:N=true,rowNumbers:S=false,locale:x="en",footer:te=false,footerMenu:U=true,footerPosition:I="bottom",notes:$,pinnedTopRows:j=[],pinnedBottomRows:Y=[],resizable:ue=true,reorderable:ne=true,autoHeaderHeight:Ee=false,filterRow:R=false,headerFilter:P=false,filterIconMode:X="hover",filterPanel:ae=false,onOpenFilterBuilder:J,focusedRow:W=false,focusedRowKey:Z,onFocusedRowChanged:Q,onRowClick:K,onRowActivate:he,autoSizeStrategy:ke="none",renderRow:de,cardView:g,onCardViewChange:M,announcements:T=true,filterPanelLabels:me,showRowCount:ce=false,toolbarColumnChooser:z=false,cellMenu:ie=true,rowMenu:we,headerMenu:Ce,rowDrag:B,alignedGrids:le,printLayout:C,renderCellContent:F,getCellClassName:ee,onCellPointerDown:Re,onCellPointerEnter:ge,onCellDoubleClick:be,editing:xe,onHeaderClick:it,getHeaderClassName:Ye,renderHeaderLabel:Ct,renderDetail:ye,renderEditForm:He,enterpriseEdition:lt=false,stateStoring:Uo,tooltip:We=true,renderOverlay:zn,filterDebounce:Aa,toolbar:zo=false,highlightSearch:Ma=true,sortable:Yo=true,toolbarItemsAfter:Da,toolbarItemsBefore:Na,toolbarExcel:Ia=false,toolbarPdf:Ha=false,searchDebounce:Fa=200,...Ka}=p;$l(p),ce&&!Un.has("showRowCount:deprecated")&&(Un.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 v=datagridCore.getGridDictionary(x),{emptyText:Pa=v.noData,loadingText:Ga=v.busy,loadingOverlay:Yn=true,...Be}=Ka,jo=typeof Yn=="number"?Yn:300,jn=datagridCore.summaryTypeLabels(v),Xo=datagridCore.datePeriodLabels(v);if((!Be.columns||Be.columns.length===0)&&p.autoColumns!==false){let e=Array.isArray(Be.dataSource)?Be.dataSource:[];Be.columns=datagridCore.inferColumns(e,typeof p.autoColumns=="object"?p.autoColumns:{});}Be.rowHeight===void 0&&(Be.rowHeight=datagridCore.presetRowHeight(f,k,28));let Oa=lt?Be:Gl(Be,!!p.debugMode),Et=lt?$:void 0;!lt&&$&&p.debugMode&&console.warn("[datagrid] cell notes are an Enterprise feature \u2014 use createEnterpriseGrid from @kanunilabs/datagrid-enterprise to show them.");let r=new datagridCore.DataGridController(Oa);r.setEnterpriseEdition(lt);let vt=xe!=null&&typeof xe=="object"&&xe.enabled!==false,dt=null;if(vt&&p.debugMode)for(let e of va)xe[e]!==void 0&&console.warn(`[datagrid] editing.${e} is an Enterprise feature \u2014 use createEnterpriseGrid from @kanunilabs/datagrid-enterprise to use it.`);let qt=vt?e=>dt?.renderCellContent(e)??F?.(e):F,Xn=vt?e=>{let t=dt?.getCellClassName(e),o=ee?.(e);return t&&o?`${t} ${o}`:t??o}:ee,Jo=vt?e=>{be?.(e),dt?.onCellDoubleClick(e);}:be,$a=vt?(e,t)=>dt?.renderEditForm(e,t)??He?.(e,t)??"":He;Z!=null&&r.focusRow(Z);let G=w(_n(p));G.style.height="100%",G.setAttribute("role","grid"),G.setAttribute("aria-label",p.ariaLabel??p.gridId),G.setAttribute("data-grid-id",p.gridId),datagridCore.isRtlLocale(x)&&G.setAttribute("dir","rtl"),f&&G.setAttribute("data-theme",f),Ee&&G.setAttribute("data-auto-header-height",""),G.style.setProperty("--dg-row-height",`${r.getRowHeight()}px`);let oe=w("kanuni-datagrid-scroller"),Ae=w("kanuni-datagrid-canvas"),Te=w("kanuni-datagrid-header");Te.setAttribute("role","row");let Ne=w("kanuni-datagrid-rows");Ne.style.position="relative";let se=w("kanuni-datagrid-viewport");Ne.appendChild(se);let qe=w("kanuni-datagrid-pinned-rows kanuni-datagrid-pinned-rows--top"),st=w("kanuni-datagrid-pinned-rows kanuni-datagrid-pinned-rows--bottom"),kt=()=>j.length+r.getPinnedRows("top").length,Qo=()=>Y.length+r.getPinnedRows("bottom").length,Ke=w("kanuni-datagrid-sticky-groups");Ke.setAttribute("aria-hidden","true");let Ue=te,et=I==="top",Ie=w(`kanuni-datagrid-footer-row kanuni-datagrid-footer-row--${et?"top":"bottom"}`);if(Ie.setAttribute("role","row"),Ie.setAttribute("aria-label",v.columnTotalsAria),U){let e=t=>{let n=t.target?.closest(".kanuni-datagrid-footer-cell")?.getAttribute("data-column-id");!n||datagridCore.isChromeColumn(n)||(t.preventDefault(),wi(n,{left:t.clientX,top:t.clientY}));};Ie.addEventListener("click",e),Ie.addEventListener("contextmenu",e);}let pn=w("kanuni-datagrid-bands-host");pn.style.display="contents";let ut=w("kanuni-datagrid-filter-row");ut.setAttribute("role","row"),Ae.append(pn,Te),R&&Ae.append(ut);let Rt=R?2:1,Jn=0,Qn=()=>Jn+Rt+kt();Ie.style.setProperty("--dg-pinned-gap",String(et?Rt:0)),qe.style.setProperty("--dg-pinned-gap",String(Rt+(Ue&&et?1:0))),Ue&&et&&Ae.append(Ie),kt()>0&&Ae.append(qe),r.hasStickyGroupHeaders()&&(Ke.style.setProperty("--dg-pinned-gap",String(Rt+(Ue&&et?1:0))),Ke.style.setProperty("--dg-sticky-below",`${kt()>0?kt()*r.getRowHeight()+1:0}px`),Ae.append(Ke)),Ae.append(Ne),Qo()>0&&Ae.append(st),Ue&&!et&&Ae.append(Ie),oe.appendChild(Ae);let ct=w("kanuni-datagrid-toolbar"),ze=w("kanuni-datagrid-pager");ze.setAttribute("role","navigation"),ze.setAttribute("aria-label",v.pagerAria);let xt=w("kanuni-datagrid-filter-panel"),Tt=!!Be.grouping?.panel,Pe=w("kanuni-datagrid-group-panel"),Ut=datagridCore.resolveCardView(g),zt=false,gn=[],pt=de,Yt=w("kanuni-datagrid-cardbar");Yt.hidden=true;let Zo=w("kanuni-datagrid-cardbar-label","label"),er=w("","span");er.textContent=v.cardSortBy;let je=w("kanuni-datagrid-cardbar-select","select"),St=w("kanuni-datagrid-cardbar-dir","button");St.type="button",Zo.append(er,je),Yt.append(Zo,St),je.addEventListener("change",()=>{let e=r.getSort()[0];r.setSort(je.value?[{columnId:je.value,direction:e?.direction??"asc"}]:[]);}),St.addEventListener("click",()=>{let e=r.getSort()[0];e&&r.setSort([{columnId:e.columnId,direction:e.direction==="desc"?"asc":"desc"}]);});let Ba=e=>{let[t,...o]=datagridCore.cardFields(r.getColumnModel(),gn,e.row),n=w("kanuni-datagrid-card");n.setAttribute("role","gridcell");let a=w("kanuni-datagrid-card-title");if(a.textContent=t?.text??"",n.appendChild(a),o.length){let l=w("kanuni-datagrid-card-fields","dl");for(let s of o){let i=w("kanuni-datagrid-card-field"),u=w("","dt");u.textContent=s.label;let c=w("","dd");c.textContent=s.text,i.append(u,c),l.appendChild(i);}n.appendChild(l);}return n},tr=()=>{if(!zt||!Ut)return;let e=r.getColumnModel(),t=datagridCore.cardColumnIds(e,Ut);t.join("\0")!==gn.join("\0")&&(gn=t,r.setDataRowHeight(datagridCore.cardHeight(t.length)));let o=Yo?e.getOrder().filter(s=>e.getState(s)?.visible!==false&&e.getDef(s)?.sortable!==false):[];Yt.hidden=o.length===0;let n=["",...o].join("\0");if(je.dataset.ids!==n){je.dataset.ids=n,je.replaceChildren();let s=document.createElement("option");s.value="",s.textContent=v.none,je.appendChild(s);for(let i of o){let u=document.createElement("option");u.value=i,u.textContent=e.getDef(i)?.headerName??i,je.appendChild(u);}}let a=r.getSort()[0];je.value=a?.columnId??"",St.hidden=!a;let l=a?.direction==="desc";St.textContent=l?"\u2193":"\u2191",St.setAttribute("aria-label",l?v.sortAsc:v.sortDesc),St.title=l?v.sortAsc:v.sortDesc;},nr=false,Va=e=>{let t=datagridCore.showsCards(e,Ut);if(t!==zt){for(zt=t,G.classList.toggle("kanuni-datagrid-cards",t),pt=t?Ba:de,gn=[],t?tr():(Yt.hidden=true,r.setDataRowHeight(null));ot.length;)ot.pop().root.remove();xn(),nr?M?.(t):queueMicrotask(()=>M?.(t));}};zo&&G.appendChild(ct),Tt&&G.appendChild(Pe),Ut&&G.appendChild(Yt),G.appendChild(oe),ae&&G.appendChild(xt);let fn=Be.pagination;fn&&fn.enabled!==false&&G.appendChild(ze);let jt=w("kanuni-datagrid-loading-overlay"),or=w("kanuni-datagrid-loading-card"),rr=w("kanuni-datagrid-loading-spinner","span");rr.setAttribute("aria-hidden","true");let ar=w("kanuni-datagrid-loading-label","span");ar.textContent=Ga,or.append(rr,ar),jt.appendChild(or),jt.style.display="none";let Xt=w("kanuni-datagrid-sr-only","div");Xt.setAttribute("role","status"),Xt.setAttribute("aria-live","polite"),Xt.setAttribute("aria-atomic","true");let mn=w("kanuni-datagrid-empty");mn.textContent=Pa,mn.style.display="none",G.append(jt,mn),T&&G.appendChild(Xt),d.appendChild(G);let Jt=Be.selection,Zn=r.getGroupDisplay()!=="fullWidth",ir=r.getGroupDisplay()==="column",Kt=(Jt?.mode??"none")!=="none"&&(Jt?.checkboxColumn??false),_a=(Jt?.rowClick??(Kt?"toggle":"replace"))==="toggle",Pt=r.hasMasterDetail()&&!!ye,eo=()=>(S?1:0)+(Pt?1:0)+(Kt?1:0),to=S?sn:0,lr=to+(Pt?un:0),Xe=(S?sn:0)+(Pt?un:0)+(Kt?Wn:0);r.setLeadWidth(Xe);let Qt=!!B?.enabled,Zt=B?.group??null,dr=B?.allowReordering??true,sr=B?.allowDropInsert??Zt!==null,tt=null,bn=null,wn=false,Lt=null,gt=null;function Gt(e){Lt=e;for(let t of se.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 ur=(e,t)=>{let o=t.getBoundingClientRect();return e.clientY<o.top+o.height/2?"before":"after"},cr=e=>e.dataTransfer?.types.includes(qn)?tt!==null?dr:sr&&Zt!==null:false;function pr(e,t,o){let n=null;try{let a=e.dataTransfer?.getData(qn);n=a?JSON.parse(a):null;}catch{n=null;}if(n){if(n.gridId===r.gridId){if(!dr)return;if(B?.onReorder){B.onReorder({dragKey:n.rowKey,targetKey:t,position:o,row:r.getRowByKey(n.rowKey)});return}r.moveRow(n.rowKey,t,o);return}!sr||Zt===null||n.group!==Zt||B?.onAdd?.({row:n.row,rowKey:n.rowKey,otherGridId:n.gridId,targetKey:t,position:o});}}let Wa=e=>{let t=mt(e);if(!t||t.node.kind!=="data"||!e.dataTransfer)return;tt=t.node.key,bn=t.node.key,wn=false;let o={gridId:r.gridId,group:Zt,rowKey:t.node.key,row:t.node.data};e.dataTransfer.setData(qn,JSON.stringify(o)),e.dataTransfer.setData("text/plain",String(t.node.key)),e.dataTransfer.effectAllowed="move",r.notifyRowDrag("enter",{rowKey:t.node.key});},qa=e=>{if(!cr(e))return;e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect="move");let t=mt(e);if(!t||t.node.kind!=="data")return;if(tt===t.node.key){gt=null,Gt(null);return}let o=e.target.closest(".kanuni-datagrid-row"),n=ur(e,o),a=Lt?.key!==t.node.key||Lt.side!==n;gt={key:t.node.key,side:n},Gt({key:t.node.key,side:n}),a&&tt!==null&&r.notifyRowDrag("move",{rowKey:tt,overKey:t.node.key,position:n});},Ua=e=>{if(!cr(e)){Gt(null);return}e.preventDefault();let t=mt(e);if(wn=true,t&&t.node.kind==="data"){let o=e.target.closest(".kanuni-datagrid-row"),n=ur(e,o);gt={key:t.node.key,side:n},pr(e,t.node.key,n);}else gt=null,pr(e,null,"after");tt=null,Gt(null);},za=()=>{bn!==null&&r.notifyRowDragEnd({rowKey:bn,dropped:wn,overKey:gt?.key??null,position:gt?.side??null}),wn=false,bn=null,tt=null,gt=null,Gt(null);},Ya=e=>{let t=e.relatedTarget;t&&Ne.contains(t)||tt!==null&&(gt=null,Gt(null),r.notifyRowDrag("leave",{rowKey:tt}));},en=C===void 0||C===false?null:(()=>{let e=C===true?{}:C;return {always:e.always??false,maxRows:e.maxRows??La}})(),Ot=false;function no(e){Ot!==e&&(Ot=e,G.classList.toggle("kanuni-datagrid-print",e),e?(Ft++,document.documentElement.classList.add("kanuni-datagrid-printing")):(Ft--,Ft<=0&&(Ft=0,document.documentElement.classList.remove("kanuni-datagrid-printing"))),xn());}let gr=null;if(en&&!en.always){let e=()=>{let o=r.getRows().length;if(o>en.maxRows){r.isDebugMode()&&console.warn(`[datagrid] print layout skipped: ${o} rows exceeds maxRows (${en.maxRows}). Printing the visible rows instead \u2014 use exportPdf() for the whole result.`);return}no(true);},t=()=>no(false);window.addEventListener("beforeprint",e),window.addEventListener("afterprint",t),gr=()=>{window.removeEventListener("beforeprint",e),window.removeEventListener("afterprint",t);};}let nt=0,Je=[],Ge=0,oo=0;function ro(){let e=r.getColumnLayout(),t=r.getVirtualWindow().columns,o=[],n=(l,s,i,u)=>{let c=l.def;o.push({def:c,id:l.state.id,width:l.state.width,pinned:s,inset:i,className:Sa(c.align,c.dataType)+(s?" kanuni-datagrid-cell--pinned":"")+(c.autoHeight?" kanuni-datagrid-cell--wrap":""),visualIndex:u});};e.left.forEach((l,s)=>n(l,"left",e.leftOffsets[s]+Xe,s));for(let l=t.start;l<t.end&&l<e.center.length;l++)n(e.center[l],null,0,e.left.length+l);e.right.forEach((l,s)=>n(l,"right",e.rightOffsets[s],e.left.length+e.center.length+s)),Je=o,Ge=t.offsetX;let a=(e.centerOffsets[Math.min(t.end,e.center.length)]??0)-(e.centerOffsets[Math.min(t.start,e.center.length)]??0);oo=Math.max(0,e.centerWidth-t.offsetX-a),Ae.style.minWidth=`${e.totalWidth+Xe}px`;}let yn=26;function ja(){let e=r.getColumnLayout(),t=r.getVirtualWindow().columns,o=[...e.left,...e.center.slice(t.start,Math.min(t.end,e.center.length)),...e.right],n=datagridCore.bandDepth(o);if(Jn=n,pn.textContent="",Te.style.top=`${n*yn}px`,G.style.setProperty("--dg-band-offset",`${n*yn}px`),n===0)return;datagridCore.computeHeaderBands(o,n).forEach((l,s)=>{let i=w("kanuni-datagrid-band-row");if(i.style.top=`${s*yn}px`,i.style.height=`${yn}px`,Xe>0){let u=w("kanuni-datagrid-band-cell kanuni-datagrid-band-cell--spacer kanuni-datagrid-band-cell--pinned");u.style.width=`${Xe}px`,u.style.flex="none",u.style.insetInlineStart="0px",i.appendChild(u);}if(Ge>0){let u=w("kanuni-datagrid-spacer");u.style.width=`${Ge}px`,u.style.flex="none",i.appendChild(u);}for(let u of l){let c=w(`kanuni-datagrid-band-cell${u.spacer?" kanuni-datagrid-band-cell--spacer":""}`);if(c.style.width=`${u.width}px`,c.style.flex="none",!u.spacer){if(u.columnIds.length>0){let m=datagridCore.bandPath(r.getColumnModel().getDef(u.columnIds[0])).slice(0,s+1);if(m.length===s+1&&r.isBandCollapsible(m)){let H=r.isBandCollapsed(m),L=document.createElement("button");L.type="button",L.className="kanuni-datagrid-band-toggle",L.setAttribute("aria-expanded",String(!H));let D=H?v.expandColumnGroup:v.collapseColumnGroup;L.setAttribute("aria-label",D),L.title=D,L.appendChild(_l(H)),L.addEventListener("click",_=>{_.stopPropagation(),r.toggleBand(m);}),c.appendChild(L);}}let E=w("kanuni-datagrid-band-label","span");E.textContent=u.label,c.appendChild(E);}i.appendChild(c);}pn.appendChild(i);});}let $t=null,hn=null;function Cn(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 fr(){if(!$t)return;let e=r.getSelectedCount(),t=r.getSelectableCount(),o=t>0&&e>=t;$t.checked=o,$t.indeterminate=!o&&e>0,$t.disabled=t===0&&e===0;}let tn=null;function mr(e){tn=e;for(let t of Array.from(Te.querySelectorAll(".kanuni-datagrid-header-cell[data-column-id]")))t.tabIndex=t.getAttribute("data-column-id")===e?0:-1;}function ao(){ja();let e=document.activeElement,t=e&&Te.contains(e)?e.closest("[data-column-id]")?.getAttribute("data-column-id")??null:null,o=r.getColumnLayout(),n=[...o.left,...o.center,...o.right].map(i=>i.state.id);(!tn||!n.includes(tn))&&(tn=n[0]??null);let a=r.getSort(),l=new Map(a.map((i,u)=>[i.columnId,{direction:i.direction,order:u}]));if(Te.textContent="",$t=null,S){let i=w("kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-rownum-cell");i.setAttribute("role","columnheader"),i.style.width=`${sn}px`,i.style.flex="none",i.style.insetInlineStart="0px",Te.appendChild(i);}if(Pt){let i=w("kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-detail-toggle-cell");i.setAttribute("role","columnheader"),i.setAttribute("aria-label",v.detailsAria),i.style.width=`${un}px`,i.style.flex="none",i.style.insetInlineStart=`${to}px`,Te.appendChild(i);}if(Kt){let i=w("kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-select-cell");i.setAttribute("role","columnheader"),i.style.width=`${Wn}px`,i.style.flex="none",i.style.insetInlineStart=`${lr}px`;let u=document.createElement("input");u.type="checkbox",u.setAttribute("aria-label",v.selectAllRows),u.addEventListener("change",()=>{r.getSelectedCount()>0?r.clearSelection():r.selectAll();}),i.appendChild(u),Te.appendChild(i),$t=u,fr();}let s=false;for(let i of Je){if(!i.pinned&&!s){if(Ge>0){let y=document.createElement("div");y.style.flex=`0 0 ${Ge}px`,Te.appendChild(y);}s=true;}let u=Yo&&i.def.sortable!==false,c=i.id===datagridCore.GROUP_COLUMN_ID,E=l.get(c?r.getGroupLevels()[0]??i.id:i.id),m=w(`kanuni-datagrid-header-cell${u?" kanuni-datagrid-header-cell--sortable":""}${i.pinned?" kanuni-datagrid-header-cell--pinned":""}${i.def.wrapHeaderText?" kanuni-datagrid-header-cell--wrap":""}`);m.setAttribute("role","columnheader"),m.setAttribute("data-column-id",i.id),m.tabIndex=i.id===tn?0:-1,m.addEventListener("focus",()=>mr(i.id)),m.setAttribute("aria-sort",E?E.direction==="asc"?"ascending":"descending":"none");let H=i.def.headerTooltip;H&&(m.title=H),m.style.width=`${i.width}px`,m.style.flex="none",i.pinned==="left"&&(m.style.insetInlineStart=`${i.inset}px`),i.pinned==="right"&&(m.style.insetInlineEnd=`${i.inset}px`);let L=w("kanuni-datagrid-header-label","span");L.id=`${encodeURIComponent(p.gridId)}-hdr-${encodeURIComponent(i.id)}`,m.setAttribute("aria-labelledby",L.id);let D=Ct?.(i.id);if(D)L.appendChild(D);else if(i.def.renderHeader){let y=i.def.renderHeader({column:i.def});typeof y=="string"?L.textContent=y:L.appendChild(y);}else L.textContent=i.def.headerName??i.id;if(m.appendChild(L),E){let y=w("kanuni-datagrid-sort-indicator","span");if(y.setAttribute("aria-hidden","true"),y.textContent=E.direction==="asc"?"\u25B2":"\u25BC",m.appendChild(y),a.length>1&&!c){let V=w("kanuni-datagrid-sort-order","span");V.setAttribute("aria-hidden","true"),V.textContent=String(E.order+1),m.appendChild(V);}}if(u||it){let y=i.id;m.addEventListener("click",V=>{it?.(y,V)||u&&r.toggleSort(y,V.shiftKey);});}let _=Ce!==false&&!datagridCore.isChromeColumn(i.id);if(_){let y=i.id;m.addEventListener("contextmenu",V=>{V.preventDefault(),Ir(y,{left:V.clientX,top:V.clientY});});}let b=null;if(P&&i.def.filterable!==false){b=document.createElement("button"),b.type="button",b.tabIndex=-1;let y=r.getColumnFilter(i.id)!==null;b.className=`kanuni-datagrid-filter-button${y?" kanuni-datagrid-filter-button--active":""}${X==="always"?" kanuni-datagrid-filter-button--pinned":""}`,b.setAttribute("aria-haspopup","dialog"),b.setAttribute("aria-label",`${i.def.headerName??i.id} filter`),b.appendChild(Vl());let V=b;b.addEventListener("click",q=>{q.stopPropagation(),Dr(i.id,V);}),m.appendChild(b);}if(m.addEventListener("keydown",y=>{let V=n.indexOf(i.id),q;if(y.key==="ArrowRight")q=n[Math.min(n.length-1,V+1)];else if(y.key==="ArrowLeft")q=n[Math.max(0,V-1)];else if(y.key==="Home")q=n[0];else if(y.key==="End")q=n[n.length-1];else if(b&&y.altKey&&y.key==="ArrowDown")Dr(i.id,b);else if(u&&(y.key==="Enter"||y.key===" "))r.toggleSort(i.id,y.shiftKey);else if(_&&(y.key==="ContextMenu"||y.key==="F10"&&y.shiftKey)){let pe=m.getBoundingClientRect();Ir(i.id,{left:pe.left,top:pe.bottom});}else return;y.preventDefault(),y.stopPropagation(),q&&q!==i.id&&(mr(q),mo(q)?.focus());}),ne&&i.def.reorderable!==false&&(m.draggable=true,m.addEventListener("dragstart",y=>{y.dataTransfer?.setData("text/x-kanuni-column",i.id),y.dataTransfer&&(y.dataTransfer.effectAllowed="move");}),m.addEventListener("dragover",y=>{if(!y.dataTransfer?.types.includes("text/x-kanuni-column"))return;y.preventDefault();let V=m.getBoundingClientRect(),q=y.clientX<V.left+V.width/2;Cn(m,q?"before":"after");}),m.addEventListener("dragleave",y=>{let V=y.relatedTarget;(!V||!m.contains(V))&&Cn(null,"before");}),m.addEventListener("drop",y=>{Cn(null,"before");let V=y.dataTransfer?.getData("text/x-kanuni-column");if(!V||V===i.id)return;y.preventDefault();let q=m.getBoundingClientRect();if(y.clientX<q.left+q.width/2)r.moveColumn(V,i.id);else {let fe=Je.findIndex(De=>De.id===i.id);r.moveColumn(V,Je[fe+1]?.id);}}),m.addEventListener("dragend",()=>Cn(null,"before"))),ue&&i.def.resizable!==false){let y=w("kanuni-datagrid-resize-handle","span");y.setAttribute("data-resize-handle",i.id),y.setAttribute("role","presentation"),y.addEventListener("click",V=>V.stopPropagation()),y.addEventListener("dblclick",V=>{V.stopPropagation(),hi(i.id);}),y.addEventListener("pointerdown",V=>{V.preventDefault(),V.stopPropagation();let q=V.clientX,pe=i.width,fe=getComputedStyle(m).direction==="rtl"?-1:1;m.draggable=false;let De=pe,Se=false,at=yt=>{Se=true,De=pe+(yt.clientX-q)*fe,r.setColumnWidth(i.id,De,false);},Qe=()=>{window.removeEventListener("pointermove",at),window.removeEventListener("pointerup",Qe),window.removeEventListener("pointercancel",Qe),Se&&r.setColumnWidth(i.id,De,true),m.draggable=ne&&i.def.reorderable!==false;};window.addEventListener("pointermove",at),window.addEventListener("pointerup",Qe),window.addEventListener("pointercancel",Qe);}),m.appendChild(y);}Te.appendChild(m);}t&&mo(t)?.focus({preventScroll:true});}let br=null,En=null;function Xa(e){if(e===br)return;br=e;let t=[];for(let o=0;o<e.length;o++){let n=e[o];n&&n.kind!=="data"&&t.push(o);}En=t.length>0?t:null;}function Ja(e){if(!En)return e+1;let t=0,o=En.length;for(;t<o;){let n=t+o>>1;En[n]<=e?t=n+1:o=n;}return e+1-t}let ot=[];function vn(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 c=w("kanuni-datagrid-cell kanuni-datagrid-loading-cell");return c.setAttribute("role","gridcell"),c.setAttribute("aria-colindex","1"),c.appendChild(w("kanuni-datagrid-loading-bar","span")),t.appendChild(c),{kind:e,root:t,cells:[],rowNumberCell:null,selectInput:null,detailToggle:null,leadingSpacer:null,trailingSpacer:null,epoch:nt}}if(e==="data"&&Zn&&t.addEventListener("click",()=>{if(!t.classList.contains("kanuni-datagrid-group-row--aligned"))return;let c=t.getAttribute("data-group-key");c!==null&&r.toggleGroup(c);}),e==="panel"){let c=document.createElement("div");return c.setAttribute("role","gridcell"),c.setAttribute("aria-colindex","1"),t.appendChild(c),{kind:e,root:t,cells:[],rowNumberCell:null,selectInput:null,detailToggle:null,leadingSpacer:null,trailingSpacer:null,panelCell:c,epoch:nt}}if(e==="group"){let c=w("kanuni-datagrid-group-cell");c.setAttribute("role","gridcell"),c.setAttribute("aria-colindex","1");let E=w("kanuni-datagrid-group-twisty","span");E.setAttribute("aria-hidden","true");let m=w("kanuni-datagrid-group-caption","span"),H=w("kanuni-datagrid-group-label","span"),L=w("kanuni-datagrid-group-count","span"),D=w("kanuni-datagrid-group-aggregates","span"),_=null;return Kt&&Jt?.mode==="multiple"&&(_=document.createElement("input"),_.type="checkbox",_.className="kanuni-datagrid-group-checkbox",_.tabIndex=-1,_.addEventListener("change",()=>{let b=t.getAttribute("data-group-key");b!==null&&r.toggleGroupSelection(b);}),_.addEventListener("click",b=>b.stopPropagation()),_.addEventListener("mousedown",b=>b.stopPropagation()),c.appendChild(_)),c.append(E,m,H,L,D),t.appendChild(c),t.addEventListener("click",()=>{let b=t.getAttribute("data-group-key");b!==null&&r.toggleGroup(b);}),{kind:e,root:t,cells:[],rowNumberCell:null,selectInput:null,detailToggle:null,leadingSpacer:null,trailingSpacer:null,group:{cell:c,check:_,twisty:E,caption:m,label:H,count:L,aggregates:D},epoch:nt}}if(Qt){let c=w("kanuni-datagrid-row-grip","span");c.setAttribute("aria-hidden","true"),c.title=v.dragToReorder??"Drag to reorder",c.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>',c.addEventListener("mouseenter",()=>{t.draggable=true;}),c.addEventListener("mouseleave",()=>{t.draggable=false;}),t.appendChild(c);}if(pt)return {kind:e,root:t,cells:[],rowNumberCell:null,selectInput:null,detailToggle:null,leadingSpacer:null,trailingSpacer:null,epoch:nt};let o=null;S&&(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=`${sn}px`,o.style.flex="none",o.style.insetInlineStart="0px",t.appendChild(o));let n=null;if(Pt){let c=w("kanuni-datagrid-cell kanuni-datagrid-cell--center kanuni-datagrid-cell--pinned kanuni-datagrid-detail-toggle-cell");c.setAttribute("role","gridcell"),c.setAttribute("aria-colindex",String((S?1:0)+1)),c.style.width=`${un}px`,c.style.flex="none",c.style.insetInlineStart=`${to}px`;let E=document.createElement("button");E.type="button",E.className="kanuni-datagrid-detail-toggle",E.tabIndex=-1,E.addEventListener("click",m=>{m.stopPropagation();let H=t.getAttribute("data-row-key");if(H===null)return;let L=r.getRows().find(D=>D!==void 0&&String(D.key)===H);L&&L.kind==="data"&&r.toggleDetail(L.key);}),E.addEventListener("mousedown",m=>m.stopPropagation()),c.appendChild(E),t.appendChild(c),n=E;}let a=null;if(Kt){let c=w("kanuni-datagrid-cell kanuni-datagrid-cell--center kanuni-datagrid-cell--pinned kanuni-datagrid-select-cell");c.setAttribute("role","gridcell"),c.setAttribute("aria-colindex",String((S?1:0)+(Pt?1:0)+1)),c.style.width=`${Wn}px`,c.style.flex="none",c.style.insetInlineStart=`${lr}px`;let E=document.createElement("input");E.type="checkbox",E.tabIndex=-1;let m=()=>{let H=t.getAttribute("data-row-key");if(H===null)return;let L=r.getRows().find(D=>D!==void 0&&String(D.key)===H);L?.kind==="group"?r.toggleGroupSelection(String(L.key)):L&&r.toggleRow(L.key);};c.addEventListener("mousedown",H=>H.stopPropagation()),c.addEventListener("click",H=>{H.target.tagName!=="INPUT"&&(H.stopPropagation(),m());}),E.addEventListener("change",m),E.addEventListener("click",H=>H.stopPropagation()),E.addEventListener("mousedown",H=>H.stopPropagation()),c.appendChild(E),t.appendChild(c),a=E;}let l=[],s=null,i=false;for(let c of Je){!c.pinned&&!i&&(s=document.createElement("div"),s.style.flex=`0 0 ${Ge}px`,t.appendChild(s),i=true);let E=w(c.className);E.setAttribute("role","gridcell"),E.setAttribute("data-column-id",c.id),E.style.width=`${c.width}px`,E.style.flex="none",c.pinned==="left"&&(E.style.insetInlineStart=`${c.inset}px`),c.pinned==="right"&&(E.style.insetInlineEnd=`${c.inset}px`),t.appendChild(E),l.push({el:E,slot:c});}let u=document.createElement("div");return u.style.flex=`0 0 ${oo}px`,t.appendChild(u),{kind:e,root:t,cells:l,rowNumberCell:o,selectInput:a,detailToggle:n,leadingSpacer:s,trailingSpacer:u,epoch:nt}}let Bt="";function kn(e,t){if(Bt===""||t===""){e.textContent=t;return}let o=datagridCore.foldText(t),n=o.indexOf(Bt);if(n===-1){e.textContent=t;return}let a=[],l=0;for(;n!==-1;){n>l&&a.push(document.createTextNode(t.slice(l,n)));let i=document.createElement("mark");i.className="kanuni-datagrid-highlight",i.textContent=t.slice(n,n+Bt.length),a.push(i),l=n+Bt.length,n=o.indexOf(Bt,l);}l<t.length&&a.push(document.createTextNode(t.slice(l)));let s=document.createElement("span");s.className="kanuni-datagrid-cell-text",s.append(...a),e.replaceChildren(s);}function wr(e,t,o){let n=r.getColumnModel().getCellValue(o.data,t.id),a=t.def;if(a.renderCell){let s=a.renderCell({value:n,row:o.data,node:o,column:a});typeof s=="string"?e.textContent=s:e.replaceChildren(s);return}let l=datagridCore.lookupLabel(a,n);if(l!==null){kn(e,l);return}if(a.valueFormatter){let s=a.valueFormatter(n,o.data);kn(e,typeof s=="string"?s:String(s??""));return}if(a.dateFormat&&a.dataType==="date"){kn(e,datagridCore.formatDateValue(n,a.dateFormat));return}kn(e,n==null?"":String(n));}function Qa(e,t){return e.kind==="group"&&!t.group}function Za(e,t,o){let n=t?.lead??null;if(!n||!e.leadingSpacer||o.kind!=="data"){e.leadCell?.remove(),e.leadCell=null;return}let a=r.getColumnLayout(),l=n.column.def,s={def:l,id:n.column.state.id,width:n.width,className:Sa(l.align,l.dataType),visualIndex:a.left.length+a.center.indexOf(n.column)},i=e.leadCell??w(s.className);e.leadCell=i,i.className=s.className,i.setAttribute("role","gridcell"),i.setAttribute("data-column-id",s.id),i.setAttribute("aria-colspan",String(t.spans.get(s.id)??1)),i.setAttribute("aria-colindex",String(eo()+s.visualIndex+1)),i.id=`${p.gridId}-cell-${String(o.key)}-${s.id}`,i.style.width=`${n.width}px`,i.style.flex="none",e.leadingSpacer.nextSibling!==i&&e.leadingSpacer.after(i),wr(i,s,o);}function io(e,t,o){let n=e.root;if(n.setAttribute("aria-rowindex",String(o+1+Qn())),n.setAttribute("data-row-key",String(t.key)),t.kind==="detail"||t.kind==="editform"){let b=e.panelCell,y=t.kind==="detail";n.className=`kanuni-datagrid-row ${y?"kanuni-datagrid-detail-row":"kanuni-datagrid-editform-row"}`,n.style.height=`${t.height}px`,y?(n.setAttribute("data-detail-for",String(t.parentKey)),n.removeAttribute("data-editform-for")):(n.setAttribute("data-editform-for",t.parentKey===null?"":String(t.parentKey)),n.removeAttribute("data-detail-for")),b.className=y?"kanuni-datagrid-detail-cell":"kanuni-datagrid-editform-cell";let V=`${t.kind}:${String(t.key)}`;if(n.getAttribute("data-panel-for")!==V){n.setAttribute("data-panel-for",V);let q=y?ye?.(t.data):t.parentKey===null?void 0:$a?.(t.parentKey,t.data);b.textContent="",typeof q=="string"?b.textContent=q:q&&b.appendChild(q);}return}if(n.removeAttribute("data-panel-for"),n.removeAttribute("data-detail-for"),n.removeAttribute("data-editform-for"),t.kind==="filler"){n.style.display="none";return}n.style.display="";let a=t.kind==="data"?r.getDataRowHeight():null;n.style.height=yr?"":`${a??r.getRowHeight()}px`;let l=t.kind==="group"&&!e.group?t:null;if(!e.group){n.classList.remove("kanuni-datagrid-group-row","kanuni-datagrid-group-row--aligned");for(let b of Array.from(n.classList))b.startsWith("kanuni-datagrid-group-row--level-")&&n.classList.remove(b);l?(n.classList.add("kanuni-datagrid-group-row","kanuni-datagrid-group-row--aligned",`kanuni-datagrid-group-row--level-${l.level}`),n.setAttribute("aria-expanded",String(l.expanded)),n.setAttribute("aria-level",String(l.level+1)),n.setAttribute("data-group-key",String(l.key)),n.setAttribute("data-group-level",String(l.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",N&&o%2===1);let s=r.isRowSelected(t.key);n.classList.toggle("kanuni-datagrid-row--selected",s),t.kind==="data"&&r.getSelectionMode()!=="none"?n.setAttribute("aria-selected",String(s)):n.removeAttribute("aria-selected");let i=r.getFocus();n.classList.toggle("kanuni-datagrid-row--focused",W&&i!==null&&i.rowKey===t.key);let u=t.kind==="data"&&!Qa(t,e)?r.planRowColSpans(t,r.getVirtualWindow().columns):null;if(e.leadingSpacer&&(e.leadingSpacer.style.flex=`0 0 ${Math.max(0,Ge-(u?.leadingDelta??0))}px`),e.trailingSpacer&&(e.trailingSpacer.style.flex=`0 0 ${Math.max(0,oo-(u?.trailingDelta??0))}px`),Za(e,u,t),Qt){let b=Lt!==null&&String(Lt.key)===String(t.key);n.classList.toggle("kanuni-datagrid-row--drop-before",b&&Lt.side==="before"),n.classList.toggle("kanuni-datagrid-row--drop-after",b&&Lt.side==="after");}let c=t.kind==="treePath",E=c||l!==null;if(n.classList.toggle("kanuni-datagrid-row--tree-path",c),e.rowNumberCell&&(e.rowNumberCell.textContent=E?"":String(Ja(o))),e.detailToggle&&(e.detailToggle.hidden=E),e.selectInput){let b=l!==null&&Jt?.mode==="multiple";if(e.selectInput.hidden=c||l!==null&&!b,e.selectInput.classList.toggle("kanuni-datagrid-group-checkbox",b),b){let y=r.getGroupSelectionState(String(l.key));e.selectInput.checked=y==="all",e.selectInput.indeterminate=y==="some",e.selectInput.disabled=false,e.selectInput.setAttribute("aria-label",v.selectGroupAria.replace("{count}",String(l.count)).replace("{group}",l.display??l.label));}else e.selectInput.indeterminate=false,e.selectInput.checked=r.isRowSelected(t.key),e.selectInput.disabled=t.kind==="data"&&!r.isRowSelectable(t.key),e.selectInput.setAttribute("aria-label",v.selectRowAria.replace("{row}",String(t.key)));}if(e.detailToggle&&t.kind==="data"){let b=r.isDetailExpanded(t.key);e.detailToggle.textContent=b?"\u25BE":"\u25B8",e.detailToggle.setAttribute("aria-expanded",String(b)),e.detailToggle.setAttribute("aria-label",b?v.collapseDetails:v.expandDetails);}if(t.kind==="group"&&e.group){let b=t;n.className=`kanuni-datagrid-row kanuni-datagrid-group-row kanuni-datagrid-group-row--level-${b.level}`,n.setAttribute("aria-expanded",String(b.expanded)),n.setAttribute("aria-level",String(b.level+1)),n.setAttribute("data-group-key",String(b.key)),n.setAttribute("data-group-level",String(b.level)),e.group.cell.style.paddingLeft=b.level>0?`${8+b.level*18}px`:"",e.group.twisty.textContent=b.expanded?"\u25BE":"\u25B8";let y=r.getColumnModel().getDef(b.columnId),V=y?.headerName??b.columnId;if(e.group.caption.textContent=`${V}:`,e.group.label.textContent=datagridCore.lookupLabel(y,b.value)??b.display??(b.label===""?v.filterBlank:b.label),e.group.count.textContent=`(${b.count})`,e.group.check){let pe=r.getGroupSelectionState(String(b.key));e.group.check.checked=pe==="all",e.group.check.indeterminate=pe==="some",e.group.check.setAttribute("aria-label",v.selectGroupAria.replace("{count}",String(b.count)).replace("{group}",e.group.label.textContent??""));}e.group.aggregates.textContent="";let q=b.aggregates??null;if(q)for(let pe of r.getSummaryDefs()){let fe=w("kanuni-datagrid-group-aggregate","span"),De=w("kanuni-datagrid-group-aggregate-label","span"),Se=r.getColumnModel().getDef(pe.columnId);De.textContent=`${datagridCore.summaryLabel(pe,jn)} ${Se?.headerName??pe.columnId}:`,fe.append(De,` ${datagridCore.formatSummaryValue(pe,q[datagridCore.summaryKey(pe.columnId,pe.type)],Se)}`),e.group.aggregates.appendChild(fe);}return}if(t.kind!=="data"&&!c&&!l){for(let{el:b}of e.cells)b.textContent="";return}if(pt&&E){let b=Qt?1:0;for(;n.childNodes.length>b;)n.removeChild(n.lastChild);let y=w("kanuni-datagrid-cell");l?y.appendChild(hr(l)):(y.appendChild(Cr(t)),lo(y,t,t.tree)),n.appendChild(y);return}if(pt){let b=Qt?1:0,y=pt({row:t.data,node:t,rowIndex:o,selected:r.isRowSelected(t.key),focused:W&&i!==null&&i.rowKey===t.key});if(y instanceof Node&&n.childNodes.length===b+1&&n.childNodes[b]===y)return;for(;n.childNodes.length>b;)n.removeChild(n.lastChild);typeof y=="string"?n.appendChild(document.createTextNode(y)):y&&n.appendChild(y);return}let m=i!==null&&i.rowKey===t.key?i.columnId:null,H=l?void 0:t.tree,L=l&&ir?datagridCore.GROUP_COLUMN_ID:H||l?(()=>{let b=r.getColumnLayout();return (b.left[0]??b.center[0]??b.right[0])?.state.id??null})():null,D=H?L:null,_=r.hasCellSpans();for(let{el:b,slot:y}of e.cells){b.style.display=u?.covered.has(y.id)?"none":"",b.style.width=`${u?.widths.get(y.id)??y.width}px`;let V=u?.spans.get(y.id);V?b.setAttribute("aria-colspan",String(V)):b.removeAttribute("aria-colspan");let q=(qt||Xn)&&!E?{node:t,columnId:y.id,rowIndex:o,columnIndex:y.visualIndex,value:r.getColumnModel().getCellValue(t.data,y.id)}:null,pe=qt&&l&&y.id!==L?{node:t,columnId:y.id,rowIndex:o,columnIndex:y.visualIndex,value:void 0}:null,fe=q&&qt?qt(q):pe?qt(pe):void 0,De=false;if(fe!==void 0?fe instanceof Node&&b.childNodes.length===1&&b.firstChild===fe?De=true:typeof fe=="string"?b.textContent=fe:b.replaceChildren(fe):l?y.id===L?b.replaceChildren(hr(l)):b.replaceChildren(...oi(l,y.id)):c?y.id===D?(b.replaceChildren(Cr(t)),lo(b,t,H)):b.replaceChildren():(wr(b,y,t),H&&y.id===D&&lo(b,t,H)),_&&!De){let ve=ti(o,y.id);b.classList.toggle("kanuni-datagrid-cell--span",ve?.kind==="draw"),b.classList.toggle("kanuni-datagrid-cell--span-covered",ve?.kind==="covered");let O=fe!==void 0;if(ve?.kind==="covered"&&m!==y.id&&!O)b.replaceChildren();else if(ve?.kind==="draw"){let re=w("kanuni-datagrid-span-box");re.style.height=`${ve.height}px`,re.append(...Array.from(b.childNodes)),b.appendChild(re);}}else _||b.classList.remove("kanuni-datagrid-cell--span","kanuni-datagrid-cell--span-covered");if(Et){let ve=!E&&!!so(t.key,y.id,t.data);b.classList.toggle("kanuni-datagrid-cell--noted",ve);}b.id=`${p.gridId}-cell-${String(t.key)}-${y.id}`,b.setAttribute("aria-colindex",String(eo()+y.visualIndex+1)),b.classList.toggle("kanuni-datagrid-cell--focused",m===y.id);let Se=t.kind==="data"?r.getFindMatchKind(t.key,y.id):null;b.classList.toggle("kanuni-datagrid-cell--find-match",Se!==null),b.classList.toggle("kanuni-datagrid-cell--find-active",Se==="active");let at=b.getAttribute("data-slot-classes");if(at)for(let ve of at.split(" "))b.classList.remove(ve);let Qe=q&&Xn?Xn(q):void 0,yt=y.def.cellClassName,ht=[E?void 0:typeof yt=="function"?yt({value:r.getColumnModel().getCellValue(t.data,y.id),row:t.data,node:t,column:y.def}):yt,Qe].filter(Boolean).join(" ")||void 0;if(ht){for(let ve of ht.split(" "))b.classList.add(ve);b.setAttribute("data-slot-classes",ht);}else at&&b.removeAttribute("data-slot-classes");}}let yr=p.columns.some(e=>e.autoHeight);function ei(){if(!yr)return;let e=r.getVirtualWindow(),t=r.getRows(),o=new Map(r.getMeasuredRowHeights()),n=false;for(let a=e.rows.start;a<e.rows.end&&a<t.length;a++){let l=t[a];if(!l||l.kind!=="data")continue;let s=a-e.rows.start,i=ot[s]?.root;if(!i)continue;let u=i.getBoundingClientRect().height;u>0&&o.get(l.key)!==u&&(o.set(l.key,u),n=true);}n&&r.setMeasuredRowHeights(o);}let Rn={start:0,end:0};function ti(e,t){let o=r.getCellSpans(t);if(o.length===0)return null;let n=datagridCore.spanRoleAt(o,e,Rn.start,Rn.end);if(!n)return null;if(n.role==="covered")return {kind:"covered"};let a=r.getRowOffset(n.drawStart);return {kind:"draw",height:r.getRowOffset(n.drawEnd)+r.getRowHeightAt(n.drawEnd)-a}}function ni(e,t){let o=r.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 a=e.firstElementChild;if(!o)a.replaceChildren(w("kanuni-datagrid-loading-bar","span"));else {let l=w("kanuni-datagrid-load-failed-text","span");l.textContent=v.rowsLoadFailed;let s=document.createElement("button");s.className="kanuni-datagrid-retry-button",s.type="button",s.setAttribute("data-retry-load",""),s.textContent=v.retryLoad,s.addEventListener("click",()=>r.retryFailedLoads()),a.replaceChildren(l,s);}}function hr(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=r.getColumnModel().getDef(e.columnId),a=w("kanuni-datagrid-group-caption","span");a.textContent=`${n?.headerName??e.columnId}:`;let l=w("kanuni-datagrid-group-label","span");l.textContent=datagridCore.lookupLabel(n,e.value)??e.display??(e.label===""?v.filterBlank:e.label);let s=w("kanuni-datagrid-group-count","span");return s.textContent=`(${e.count})`,ir?t.append(o,l,s):t.append(o,a,l,s),t}function oi(e,t){if(!e.aggregates)return [];let o=r.getSummaryDefs().find(a=>a.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)],r.getColumnModel().getDef(t)),[n]}function Cr(e){let t=w("kanuni-datagrid-tree-path-label","span");return t.textContent=e.label,t}function lo(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 a=document.createElement("button");a.type="button",a.className="kanuni-datagrid-tree-toggle",a.setAttribute("data-tree-toggle",""),a.setAttribute("aria-expanded",String(o.expanded)),a.setAttribute("aria-label",o.expanded?v.collapseTreeRow:v.expandTreeRow),a.textContent=o.expanded?"\u25BE":"\u25B8",a.addEventListener("mousedown",l=>l.stopPropagation()),a.addEventListener("click",l=>{l.stopPropagation(),r.toggleTreeRow(t.key);}),n.appendChild(a);}else n.appendChild(w("kanuni-datagrid-tree-toggle kanuni-datagrid-tree-toggle--leaf","span"));n.append(...Array.from(e.childNodes)),e.appendChild(n);}let so=(e,t,o)=>Et?Et.get({rowKey:e,columnId:t,row:o})??null:null,Er=null,ft=zn?w("kanuni-datagrid-overlay"):null;ft&&(ft.style.position="absolute",ft.style.inset="0",ft.style.pointerEvents="none",Ne.appendChild(ft));function ri(){if(!zn||!ft)return;let e=zn();e!==Er&&(Er=e,e?ft.replaceChildren(e):ft.replaceChildren());}function ai(e){let t=r.getColumnLayout(),o=Array.from(st.children);G.setAttribute("aria-rowcount",String(Qn()+e+o.length)),G.setAttribute("aria-colcount",String(eo()+t.left.length+t.center.length+t.right.length)),r.getSelectionMode()==="multiple"?G.setAttribute("aria-multiselectable","true"):G.removeAttribute("aria-multiselectable"),o.forEach((n,a)=>n.setAttribute("aria-rowindex",String(Qn()+e+a+1)));}function xn(){ri(),zt&&tr();let e=r.getVirtualWindow(),t=r.getRows(),o=Ot?{...e,rows:{...e.rows,start:0,end:t.length,offsetY:0,totalHeight:0}}:e;Xa(t),ai(t.length),Ne.style.height=`${o.rows.totalHeight}px`,se.style.transform=`translateY(${o.rows.offsetY}px)`,Bt=r.getFindNeedle()||(Ma?datagridCore.normalizeSearch(r.getSearchText()):"");let n=Math.max(0,Math.min(o.rows.end,t.length)-o.rows.start);for(Rn.start=o.rows.start,Rn.end=Math.min(o.rows.end,t.length)-1;ot.length>n;)ot.pop().root.remove();for(let a=0;a<n;a++){let l=o.rows.start+a,s=t[l];if(!s){let c=ot[a];if(!c||c.kind!=="loading"){let E=vn("loading");c?se.replaceChild(E.root,c.root):se.appendChild(E.root),ot[a]=E,c=E;}c.root.setAttribute("aria-rowindex",String(l+2)),c.root.style.height=`${r.getDataRowHeight()??r.getRowHeight()}px`,ni(c.root,l);continue}let i=s.kind==="data"?"data":s.kind==="group"?Zn?"data":"group":s.kind==="detail"||s.kind==="editform"?"panel":"stub",u=ot[a];if(!u||u.epoch!==nt||u.kind!==i){let c=vn(i);u?se.replaceChild(c.root,u.root):se.appendChild(c.root),ot[a]=c,u=c;}io(u,s,l);}ei(),vr();}let Tn=[];function vr(){if(!r.hasStickyGroupHeaders())return;let e=Ot?[]:r.getStickyGroupRows();for(Ke.style.width=`${r.getColumnLayout().totalWidth}px`;Tn.length>e.length;)Tn.pop().wrap.remove();let t=Zn?"data":"group";e.forEach((o,n)=>{let a=Tn[n];if(!a||a.rs.epoch!==nt||a.rs.kind!==t){let l=vn(t),s=a?.wrap??w("kanuni-datagrid-sticky-group");s.textContent="",s.appendChild(l.root),a||Ke.appendChild(s),a={wrap:s,rs:l},Tn[n]=a;}io(a.rs,o.node,o.index),a.rs.root.removeAttribute("aria-rowindex"),a.wrap.style.top=`${o.offset}px`,a.wrap.style.height=`${o.height}px`,a.wrap.style.zIndex=String(e.length-n),a.wrap.classList.toggle("kanuni-datagrid-sticky-group--last",n===e.length-1),a.wrap.querySelectorAll("button, input, select, textarea, a[href], [tabindex]").forEach(l=>l.setAttribute("tabindex","-1"));});}Ke.addEventListener("click",e=>{let o=e.target.closest("[data-group-key]")?.getAttribute("data-group-key");o&&r.scrollToRow(o);});let Sn=datagridCore.createDebouncedCommit(Aa??(r.isRemote()?200:0));function kr(e,t,o,n){let a=r.getColumnModel().getDef(t);if(!a?.renderFilter)return ()=>{};let l=()=>o==="row"?r.getColumnFilter(t,datagridCore.FILTER_PART_ROW):r.getColumnFilter(t,datagridCore.FILTER_PART_SET)??r.getColumnFilter(t,datagridCore.FILTER_PART_DEFAULT),s=new Set,i=r.events.on("filterChanged",()=>{let c=l();s.forEach(E=>E(c));}),u=a.renderFilter(e,{columnId:t,column:a,surface:o,getValue:l,setValue:c=>r.setColumnFilter(t,c,o==="row"?datagridCore.FILTER_PART_ROW:datagridCore.FILTER_PART_SET),close:n,onValueChange:c=>(s.add(c),()=>s.delete(c))});return ()=>{i(),s.clear(),typeof u=="function"&&u();}}let nn=[],on=new Map,uo=false;function ii(){!R||uo||ut.querySelectorAll("select[data-filter-operator-for]").forEach(e=>{let t=e.getAttribute("data-filter-operator-for");if(Sn.isPending(t))return;let o=r.getColumnModel().getDef(t),n=r.getColumnFilter(t,datagridCore.FILTER_PART_ROW),a=on.get(t)??"",l=e.parentElement?.querySelector("input.kanuni-datagrid-filter-input"),s=a;if(n){let i=datagridCore.customFilterInputFromNode(n,o);s=i?.operatorId??"",i&&l&&(l.value=i.text);}else datagridCore.findCustomFilterOperator(o,a)?.operandType==="none"&&(s="");on.set(t,s),e.value=s,l&&(l.disabled=datagridCore.findCustomFilterOperator(o,s)?.operandType==="none");});}function co(){if(!R)return;if(nn.forEach(n=>n()),nn=[],ut.textContent="",Xe>0){let n=w("kanuni-datagrid-filter-cell kanuni-datagrid-filter-cell--pinned");n.setAttribute("role","gridcell"),n.style.width=`${Xe}px`,n.style.flex="none",n.style.insetInlineStart="0px",ut.appendChild(n);}let e=false,t=null,o=()=>{if(!t){t=document.createElement("datalist"),t.id=`${p.gridId}-filter-periods`;for(let n of datagridCore.periodSuggestionList(Xo)){let a=document.createElement("option");a.value=n,t.appendChild(a);}ut.appendChild(t);}return t.id};for(let n of Je){if(!n.pinned&&!e){if(Ge>0){let s=w("kanuni-datagrid-spacer");s.style.width=`${Ge}px`,s.style.flex="none",ut.appendChild(s);}e=true;}let a=w(`kanuni-datagrid-filter-cell${n.pinned?" kanuni-datagrid-filter-cell--pinned":""}`);a.setAttribute("role","gridcell"),a.style.width=`${n.width}px`,a.style.flex="none",n.pinned==="left"&&(a.style.insetInlineStart=`${n.inset}px`),n.pinned==="right"&&(a.style.insetInlineEnd=`${n.inset}px`);let l=n.def.renderFilter;if(n.def.filterable!==false&&l){let s=w("kanuni-datagrid-filter-custom");s.setAttribute("data-filter-for",n.id),a.appendChild(s),nn.push(kr(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",`${n.def.headerName??n.id} filter`),s.setAttribute("data-filter-for",n.id);let i=datagridCore.customFilterOperators(n.def),u=()=>datagridCore.findCustomFilterOperator(n.def,on.get(n.id)??"");n.def.dataType==="date"&&!u()&&s.setAttribute("list",o());let c=()=>{let m=u();uo=true;try{r.setColumnFilter(n.id,m?datagridCore.parseCustomFilterInput(n.id,s.value,m):datagridCore.parseFilterInput(n.id,s.value,n.def.dataType,Xo),datagridCore.FILTER_PART_ROW);}finally{uo=false;}};if(i.length>0){let m=document.createElement("select");m.className="kanuni-datagrid-filter-operator",m.setAttribute("aria-label",datagridCore.fillText(v.filterOperatorAria,{column:n.def.headerName??n.id})),m.setAttribute("data-filter-operator-for",n.id);let H=[["",v.filterOperatorDefault],...i.map(D=>[D.id,D.label])];for(let[D,_]of H){let b=document.createElement("option");b.value=D,b.textContent=_,m.appendChild(b);}let L=datagridCore.customFilterInputFromNode(r.getColumnFilter(n.id,datagridCore.FILTER_PART_ROW),n.def);L&&(on.set(n.id,L.operatorId),s.value=L.text),m.value=u()?.id??"",s.disabled=u()?.operandType==="none",m.addEventListener("change",()=>{on.set(n.id,m.value),s.disabled=u()?.operandType==="none",u()?s.removeAttribute("list"):n.def.dataType==="date"&&s.setAttribute("list",o()),Sn.cancel(n.id),c();}),a.appendChild(m);}s.addEventListener("input",()=>Sn.schedule(n.id,c));let E=()=>{Sn.cancel(n.id),c();};s.addEventListener("keydown",m=>{m.key==="Enter"&&E();}),s.addEventListener("blur",E),a.appendChild(s);}ut.appendChild(a);}}let po=()=>{};function li(){if(!zo)return;let e=document.createElement("input");e.type="search",e.className="kanuni-datagrid-toolbar-search",e.placeholder=v.toolbarSearch,e.setAttribute("aria-label",v.toolbarSearch);let t=null;e.addEventListener("input",()=>{t&&clearTimeout(t),t=setTimeout(()=>r.setSearchText(e.value),Fa);});let o=w("kanuni-datagrid-toolbar-spacer"),n=null;if(z){let c=document.createElement("button");c.type="button",datagridCore.setCommandContent(c,"columns",v.toolbarColumns??"Columns"),c.setAttribute("aria-haspopup","dialog"),c.addEventListener("click",()=>{let E=c.getBoundingClientRect();Hr({left:E.left,top:E.bottom+2});}),n=c;}let a=lt&&Ia,l=lt&&Ha,s=document.createElement("button");s.type="button",s.className="kanuni-datagrid-toolbar-icon-button",s.setAttribute("aria-haspopup","menu"),s.setAttribute("aria-label",v.exportMenu),s.setAttribute("data-testid","dg-export-menu"),s.title=v.exportMenu,s.appendChild(Bl());let i=null;s.addEventListener("click",()=>{if(i)return;let c=s.getBoundingClientRect();rt({left:c.right-190,top:c.bottom+2},E=>{E.setAttribute("role","menu"),E.setAttribute("aria-label",v.exportMenu);let m=[{kind:"csv",label:v.exportCsv,testId:"dg-export-csv",on:r.canExportAll()},{kind:"excel",label:v.exportExcel,testId:"dg-export-excel",on:a},{kind:"excel-selected",label:v.exportExcelSelected,testId:"dg-export-excel-selected",on:a},{kind:"pdf",label:v.exportPdf,testId:"dg-export-pdf",on:l}];for(let H of m){if(!H.on)continue;let L=document.createElement("button");L.type="button",L.className="kanuni-datagrid-menu-item",L.setAttribute("role","menuitem"),L.setAttribute("data-testid",H.testId),L.textContent=H.label,H.kind==="excel-selected"&&r.getSelectedCount()===0&&(L.disabled=true),L.addEventListener("click",()=>{i=H.kind,s.disabled=true,Me(),No(r,H.kind).then(D=>{i=null,s.disabled=false,D.error&&po(D.error);});}),E.appendChild(L);}},"kanuni-datagrid-filter-popup kanuni-datagrid-export-menu");});for(let c of Na??[])ct.append(c);ct.append(e,o),n&&ct.append(n),(r.canExportAll()||a||l)&&ct.append(s);for(let c of Da??[])ct.append(c);let u=w("kanuni-datagrid-toolbar-error","span");u.setAttribute("role","alert"),u.style.display="none",ct.append(u),po=c=>{u.textContent=c,u.style.display="";};}function Rr(){if(!ze.isConnected)return;let e=r.getPage(),t=r.getPageCount(),o=document.activeElement,n=o instanceof HTMLElement&&ze.contains(o)?o.getAttribute("data-pager"):null;ze.textContent="";let a=(u,c,E,m,H)=>{let L=document.createElement("button");return L.type="button",L.textContent=u,L.setAttribute("aria-label",c),L.setAttribute("data-pager",H),L.disabled=E,L.addEventListener("click",m),L},l=w("kanuni-datagrid-pager-buttons"),s=e<=0,i=e>=t-1;if(l.append(a("\xAB",v.pagerFirst??"First",s,()=>r.setPage(0),"first"),a("\u2039",v.pagerPrevious??"Previous",s,()=>r.setPage(e-1),"previous")),fn?.pageButtons)for(let u of datagridCore.pageButtonItems(e,t,fn.maxPageButtons)){if(typeof u!="number"){let m=w("kanuni-datagrid-pager-gap","span");m.textContent="\u2026",m.setAttribute("aria-hidden","true"),l.append(m);continue}let c=String(u+1),E=a(c,v.pagerPageButton.replace("{n}",c),false,()=>r.setPage(u),`page-${u}`);E.classList.add("kanuni-datagrid-pager-page"),u===e&&E.setAttribute("aria-current","page"),l.append(E);}else {let u=w("kanuni-datagrid-pager-current","span");u.textContent=`${e+1} / ${t}`,l.append(u);}if(l.append(a("\u203A",v.pagerNext??"Next",i,()=>r.setPage(e+1),"next"),a("\xBB",v.pagerLast??"Last",i,()=>r.setPage(t-1),"last")),ze.appendChild(l),n!==null){let u=ze.querySelector(`[data-pager="${n}"]`);(u&&!u.disabled?u:ze.querySelector('[aria-current="page"]')??ze.querySelector("button:not(:disabled)"))?.focus();}}function go(){if(!Ue)return;let e=r.getColumnLayout(),t=r.getSummaries(),o=new Map(r.getSummaryDefs().map(a=>[a.columnId,a]));if(Ie.textContent="",Ie.style.width=`${e.totalWidth+Xe}px`,Xe>0){let a=w("kanuni-datagrid-footer-cell kanuni-datagrid-footer-cell--pinned");a.style.width=`${Xe}px`,a.style.insetInlineStart="0px",Ie.appendChild(a);}let n=false;for(let a of Je){if(!a.pinned&&!n){if(Ge>0){let u=w("kanuni-datagrid-spacer");u.style.width=`${Ge}px`,Ie.appendChild(u);}n=true;}let l=o.get(a.id),s=a.def.dataType==="number"||a.def.dataType==="bigint",i=w(`kanuni-datagrid-footer-cell${a.pinned?" kanuni-datagrid-footer-cell--pinned":""}${s?" kanuni-datagrid-footer-cell--number":""}${l?" kanuni-datagrid-footer-cell--active":""}`);if(i.setAttribute("role","gridcell"),i.setAttribute("data-column-id",a.id),i.setAttribute("data-summary-type",l?.type??""),i.style.width=`${a.width}px`,a.pinned==="left"&&(i.style.insetInlineStart=`${a.inset}px`),a.pinned==="right"&&(i.style.insetInlineEnd=`${a.inset}px`),l){i.title=`${datagridCore.summaryLabel(l,jn)} \u2014 ${a.def.headerName??a.id}`;let u=w("kanuni-datagrid-footer-value","span");u.textContent=datagridCore.formatSummaryValue(l,t[datagridCore.summaryKey(l.columnId,l.type)],a.def),i.appendChild(u);}else {let u=w("kanuni-datagrid-footer-hint","span");u.textContent=U&&!datagridCore.isChromeColumn(a.id)?"\xB7":"",i.appendChild(u);}Ie.appendChild(i);}}function di(){kt()>0?qe.isConnected||Ae.insertBefore(qe,Ke.isConnected?Ke:Ne):qe.remove(),Qo()>0?st.isConnected||Ae.insertBefore(st,Ne.nextSibling):st.remove(),Ke.style.setProperty("--dg-sticky-below",`${kt()>0?kt()*r.getRowHeight()+1:0}px`);}function Ln(){let e=pt;pt=de;try{si();}finally{pt=e;}}function si(){let e=(t,o,n,a)=>{t.textContent="",o.forEach((l,s)=>{let i=vn("data");io(i,{kind:"data",key:`__pinned-${n}-${s}`,sourceIndex:-1,data:l},s),i.root.classList.remove("kanuni-datagrid-row--odd"),i.root.setAttribute("aria-rowindex",String(Jn+Rt+s+1)),i.root.removeAttribute("aria-selected"),i.rowNumberCell&&(i.rowNumberCell.textContent="");let u=a[s-(o.length-a.length)];u!==void 0?i.root.setAttribute("data-pinned-row-key",String(u)):i.root.removeAttribute("data-pinned-row-key"),t.appendChild(i.root);});};for(let[t,o,n]of [["top",qe,j],["bottom",st,Y]]){let a=r.getPinnedRows(t);if(n.length+a.length===0){o.textContent="";continue}e(o,[...n,...a.map(l=>l.row)],t,a.map(l=>l.key));}}let An=e=>{let t=e.target.closest("[data-pinned-row-key]");if(!t)return;let o=t.getAttribute("data-pinned-row-key"),n=r.getPinnedRowKeys(),a=[...n.top,...n.bottom].find(u=>String(u)===o);if(a===void 0)return;let l=xr(a,false);if(l.length===0)return;e.preventDefault();let s=r.getPinnedRows(r.getRowPinSide(a)??"top").find(u=>u.key===a)?.row,i={row:s,node:{kind:"data",key:a,sourceIndex:-1,data:s},rowIndex:-1,columnId:e.target.closest("[data-column-id]")?.getAttribute("data-column-id")??null,selectedKeys:r.getSelectedKeys()};rt({left:e.clientX,top:e.clientY},u=>{u.setAttribute("role","menu"),Dn(u,l,i);},"kanuni-datagrid-context-menu");};qe.addEventListener("contextmenu",An),st.addEventListener("contextmenu",An);function xr(e,t){if(!r.isRowPinningEnabled()||!r.canPinRow(e))return [];let o=r.getRowPinSide(e),n=[];return o!=="top"&&n.push({id:"__dg-pin-top",label:v.pinRowTop,onSelect:()=>r.pinRow(e,"top")}),o!=="bottom"&&n.push({id:"__dg-pin-bottom",label:v.pinRowBottom,onSelect:()=>r.pinRow(e,"bottom")}),o&&n.push({id:"__dg-unpin",label:v.unpinRow,onSelect:()=>r.pinRow(e,null)}),t&&n.length>0?[{id:"__dg-sep-pin",separator:true},...n]:n}let At=null,rn=null,fo=null;function Me(e=true){rn?.(),rn=null,At?.remove(),At=null;let t=fo;fo=null,e&&t?.();}function mo(e){return Te.querySelector(`.kanuni-datagrid-header-cell[data-column-id="${CSS.escape(e)}"]`)}function Tr(e,t){e.addEventListener("keydown",o=>{let n=Array.from(e.querySelectorAll('[role="menuitem"]:not(:disabled)'));if(n.length===0)return;let a=n.indexOf(document.activeElement),l=n[a],s;switch(o.key){case "ArrowDown":s=n[(a+1)%n.length];break;case "ArrowUp":s=n[a<=0?n.length-1:a-1];break;case "Home":s=n[0];break;case "End":s=n[n.length-1];break;case "ArrowRight":case "Enter":case " ":if(l?.getAttribute("aria-haspopup")!=="menu")return;l.click(),s=At?.querySelector('.kanuni-datagrid-submenu [role="menuitem"]:not(:disabled)')??void 0;break;case "ArrowLeft":if(!t)return;t();break;case "Tab":Me();break;default:return}o.preventDefault(),o.stopPropagation(),s?.focus();});}function Sr(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 rt(e,t,o="kanuni-datagrid-filter-popup"){Me(false);let n=document.activeElement instanceof HTMLElement?document.activeElement:null,a=n&&Te.contains(n)?n.closest("[data-column-id]")?.getAttribute("data-column-id")??null:null;At=w(`${_n(p)} kanuni-datagrid-portal`);let l=w(o);l.style.position="fixed",l.style.left=`${e.left}px`,l.style.top=`${e.top}px`,l.style.zIndex="1000",t(l),At.appendChild(l),document.body.appendChild(At),Sr(l,e),fo=()=>{(n?.isConnected?n:a?mo(a):null)?.focus({preventScroll:true});},l.getAttribute("role")==="menu"&&(Tr(l),l.querySelector('[role="menuitem"]:not(:disabled)')?.focus({preventScroll:true}));let s=At,i=c=>{s.contains(c.target)||Me(false);},u=c=>{c.key==="Escape"&&Me();};document.addEventListener("pointerdown",i,true),document.addEventListener("keydown",u,true),rn=()=>{document.removeEventListener("pointerdown",i,true),document.removeEventListener("keydown",u,true);};}let Mt=25,Lr=8,Ar=new Map,Mr=0;function Dr(e,t){let o=t.getBoundingClientRect(),n=++Mr;if(r.getColumnModel().getDef(e)?.renderFilter){let a=null,l=null;rt({left:o.left,top:o.bottom+2},u=>{l=u,u.classList.add("kanuni-datagrid-filter-popup--custom"),u.setAttribute("role","dialog"),u.setAttribute("aria-label",`${r.getColumnModel().getDef(e)?.headerName??e} filter`),u.setAttribute("data-column-id",e),u.tabIndex=-1,a=kr(u,e,"popup",()=>Me());});let s=l;s&&(s.querySelector('input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), a[href], [tabindex]:not([tabindex="-1"])')??s).focus({preventScroll:true});let i=rn;rn=()=>{i?.(),a?.(),a=null;};return}rt({left:o.left,top:o.bottom+2},a=>{a.setAttribute("role","dialog"),a.setAttribute("aria-label",`${r.getColumnModel().getDef(e)?.headerName??e} filter`);let l=[],s=true,i=new Set,u=false,c=0,E="",m=[],H=null,L="",D=[],_=document.createElement("input");_.type="search",_.className="kanuni-datagrid-filter-search",_.placeholder=v.search,_.setAttribute("data-testid","dg-filter-search");let b=w("kanuni-datagrid-filter-actions"),y=document.createElement("button");y.type="button",y.textContent=v.filterSelectAll,y.addEventListener("click",()=>{u=true,i=new Set(l.map(O=>O.label)),Se();});let V=document.createElement("button");V.type="button",V.textContent=v.clear,V.addEventListener("click",()=>{u=true,i=new Set,Se();}),b.append(y,V);let q=w("kanuni-datagrid-filter-list");q.setAttribute("role","listbox"),q.setAttribute("aria-multiselectable","true");let pe=document.createElement("div");pe.style.position="relative";let fe=document.createElement("div");pe.appendChild(fe),q.appendChild(pe);let De=()=>{let O=datagridCore.foldText(E.trim());if(!O){m=l;return}H||(H=l.map(re=>datagridCore.foldText(re.label))),m=L!==""&&O.includes(L)?D.filter(re=>datagridCore.foldText(re.label).includes(O)):l.filter((re,Le)=>H[Le].includes(O)),L=O,D=m;},Se=()=>{if(q.setAttribute("aria-busy",String(s)),q.setAttribute("aria-setsize",String(m.length)),s){pe.style.height="",fe.textContent="";let _e=w("kanuni-datagrid-filter-empty");_e.textContent=v.filterLoading,fe.appendChild(_e);return}if(m.length===0){pe.style.height="",fe.style.transform="",fe.textContent="";let _e=w("kanuni-datagrid-filter-empty");_e.textContent=v.filterNoMatch,fe.appendChild(_e);return}let O=q.clientHeight||240,re=Math.max(0,Math.floor(q.scrollTop/Mt)-Lr),Le=Math.ceil(O/Mt)+Lr*2,Ve=Math.min(re,Math.max(0,m.length-1)),Ai=Math.min(m.length,Ve+Le);pe.style.height=`${m.length*Mt}px`,fe.style.transform=`translateY(${Ve*Mt}px)`,fe.textContent="";for(let _e=Ve;_e<Ai;_e++){let _t=m[_e],Ze=w("kanuni-datagrid-filter-item");Ze.setAttribute("role","option"),Ze.setAttribute("aria-selected",String(i.has(_t.label))),Ze.tabIndex=0,Ze.setAttribute("data-value",_t.label),Ze.setAttribute("data-index",String(_e)),_e===c&&Ze.classList.add("kanuni-datagrid-filter-item--active");let an=document.createElement("input");an.type="checkbox",an.readOnly=true,an.checked=i.has(_t.label),an.tabIndex=-1;let ua=document.createElement("span");ua.textContent=_t.label===""?v.filterBlank:_t.label,Ze.append(an,ua),Ze.addEventListener("click",()=>at(_t.label)),Ze.addEventListener("focus",()=>{c=_e;}),fe.appendChild(Ze);}},at=O=>{u=true,i.has(O)?i.delete(O):i.add(O);for(let re of fe.querySelectorAll(".kanuni-datagrid-filter-item")){if(re.getAttribute("data-value")!==O)continue;re.setAttribute("aria-selected",String(i.has(O)));let Le=re.querySelector("input");Le&&(Le.checked=i.has(O));}};q.addEventListener("scroll",()=>{Ar.set(e,q.scrollTop),Se();}),_.addEventListener("input",()=>{E=_.value,c=0,De(),Se();});let Qe=O=>{if(m.length===0)return;c=Math.max(0,Math.min(m.length-1,O));let re=c*Mt,Le=q.clientHeight||240;re<q.scrollTop?q.scrollTop=re:re+Mt>q.scrollTop+Le&&(q.scrollTop=re+Mt-Le),Se(),a.querySelector(`.kanuni-datagrid-filter-item[data-index="${c}"]`)?.focus();},yt=()=>{if(s)return;let O;if(i.size===l.length)O=null;else {let re=i.has(""),Le=l.filter(Ve=>Ve.label!==""&&i.has(Ve.label));Le.length===0?O=re?{columnId:e,operator:"isnull"}:null:re?O={logic:"or",nodes:[{columnId:e,operator:"in",value:Le.map(Ve=>Ve.value)},{columnId:e,operator:"isnull"}]}:O={columnId:e,operator:"in",value:Le.map(Ve=>Ve.value)};}r.setColumnFilter(e,O,datagridCore.FILTER_PART_SET),Me();};a.tabIndex=-1,a.addEventListener("keydown",O=>{let re=O.target===_;if(O.key==="Backspace"&&!re){O.preventDefault(),_.focus(),E=E.slice(0,-1),_.value=E,c=0,De(),Se();return}if(O.key==="ArrowDown"){O.preventDefault(),Qe(re?0:c+1);return}if(O.key==="ArrowUp"){O.preventDefault(),Qe(re?m.length-1:c-1);return}if(!re&&(O.key==="Home"||O.key==="End")){O.preventDefault(),Qe(O.key==="Home"?0:m.length-1);return}if(O.key===" "&&!re){O.preventDefault();let Le=m[c];Le&&at(Le.label);return}if(O.key==="Enter"){O.preventDefault(),yt();return}!re&&O.key.length===1&&O.key!==" "&&!O.ctrlKey&&!O.metaKey&&!O.altKey&&(O.preventDefault(),_.focus(),E+=O.key,_.value=E,c=0,De(),Se());});let Mo=w("kanuni-datagrid-filter-footer"),ht=document.createElement("button");ht.type="button",ht.textContent=v.cancel,ht.addEventListener("click",()=>Me());let ve=document.createElement("button");ve.type="button",ve.className="kanuni-datagrid-filter-primary",ve.setAttribute("data-testid","dg-filter-apply"),ve.textContent=v.apply,ve.disabled=true,ve.addEventListener("click",yt),Mo.append(ht,ve),a.append(_,b,q,Mo),Se(),queueMicrotask(()=>{_.isConnected&&_.focus();}),r.getDistinctValueSetAsync(e).then(O=>{if(Mr!==n||!a.isConnected)return;l=O.entries,H=null,L="",s=false,ve.disabled=false;let re=datagridCore.selectedLabelsFromFilter(r.getColumnFilter(e,datagridCore.FILTER_PART_SET)??r.getColumnFilter(e,datagridCore.FILTER_PART_DEFAULT),l);re?(u=true,i=new Set(re)):u||(i=new Set(l.map(Ve=>Ve.label))),De();let Le=Ar.get(e);Se(),Le&&(q.scrollTop=Le,Se());});});}function Mn(e={}){let t=r.getClipboardText(e);r.notifyClipboardGesture("copy",t?t.split(`
|
|
2
|
-
`).length:0,()=>r.writeClipboard(t,"copy"));}function ui(e){if(ie===false)return [];let t=ie===true?{}:ie,o=[],n=l=>{e&&o.length===0&&o.push({separator:true,id:"__dg-sep"}),o.push(l);};t.copy!==false&&n({id:"__dg-copy",label:v.menuCopy,shortcut:`${pi}C`,onSelect:()=>Mn()}),t.copyWithHeaders!==false&&n({id:"__dg-copy-headers",label:v.menuCopyWithHeaders,onSelect:()=>Mn({includeHeaders:true})}),t.copyWithGroupHeaders!==false&&ci()&&n({id:"__dg-copy-group-headers",label:v.menuCopyWithGroupHeaders,onSelect:()=>Mn({includeGroupHeaders:true})});let a=(t.export===false?[]:Array.isArray(t.export)?t.export:["csv","excel","excel-selected","pdf"]).filter(l=>l!=="csv"||r.canExportAll());if(a.length>0){let l=r.getSelectedCount()===0,s={csv:v.exportCsv,excel:v.exportExcel,"excel-selected":v.exportExcelSelected,pdf:v.exportPdf};n({id:"__dg-export",label:v.menuExport,items:a.map(i=>({id:`__dg-export-${i}`,label:s[i],disabled:i==="excel-selected"&&l,onSelect:()=>{No(r,i).then(u=>{u.error&&po(u.error);});}}))});}return o}function ci(){let e=r.getColumnModel();return r.getVisualColumnIds().some(t=>{let o=e.getDef(t)?.band;return typeof o=="string"?o!=="":Array.isArray(o)&&o.length>0})}let pi=/Mac|iPhone|iPad|iPod/.test(navigator.platform??"")?"\u2318":"Ctrl+";function Dn(e,t,o){let n=null,a=()=>{n?.remove(),n=null;};t.forEach((l,s)=>{if(l.separator){let m=w("kanuni-datagrid-menu-separator");m.setAttribute("role","separator"),e.appendChild(m);return}let i=w("kanuni-datagrid-menu-row"),u=document.createElement("button");if(u.type="button",u.className="kanuni-datagrid-menu-item",u.setAttribute("role","menuitem"),u.setAttribute("data-item-index",String(s)),l.disabled&&(u.disabled=true),l.icon!==void 0){let m=w("kanuni-datagrid-menu-icon","span");typeof l.icon=="string"?m.textContent=l.icon:m.appendChild(l.icon),u.appendChild(m);}let c=w("kanuni-datagrid-menu-label","span");if(c.textContent=l.label??"",u.appendChild(c),l.shortcut){let m=w("kanuni-datagrid-menu-shortcut","span");m.textContent=l.shortcut,u.appendChild(m);}let E=l.items??[];if(E.length>0){let m=w("kanuni-datagrid-menu-caret","span");m.textContent="\u203A",u.appendChild(m),u.setAttribute("aria-haspopup","menu"),u.setAttribute("aria-expanded","false");let H=()=>{a();let L=w("kanuni-datagrid-context-menu kanuni-datagrid-submenu");L.setAttribute("role","menu");let D=u.getBoundingClientRect();L.style.left=`${D.right}px`,L.style.top=`${Math.max(0,D.top-4)}px`;for(let _ of E){if(_.separator){let V=w("kanuni-datagrid-menu-separator");V.setAttribute("role","separator"),L.appendChild(V);continue}let b=document.createElement("button");b.type="button",b.className="kanuni-datagrid-menu-item",b.setAttribute("role","menuitem"),_.disabled&&(b.disabled=true);let y=w("kanuni-datagrid-menu-label","span");y.textContent=_.label??"",b.appendChild(y),b.addEventListener("click",()=>{_.onSelect?.(o),Me();}),L.appendChild(b);}e.parentElement?.appendChild(L),Sr(L,{left:D.right,top:Math.max(0,D.top-4)}),n=L,u.setAttribute("aria-expanded","true"),Tr(L,()=>{a(),u.setAttribute("aria-expanded","false"),u.focus();});};u.addEventListener("mouseenter",H),u.addEventListener("click",H);}else u.addEventListener("mouseenter",a),u.addEventListener("click",()=>{l.onSelect?.(o),Me();});i.appendChild(u),e.appendChild(i);});}let Nr=e=>{let o=e.target.closest(".kanuni-datagrid-row");if(!o||o.classList.contains("kanuni-datagrid-group-row"))return;let n=mt(e);if(n?.columnId&&r.notifyCell("cellContextMenu",n.node,n.rowIndex,n.columnId),!we&&!ie&&!r.isRowPinningEnabled()||!n||n.node.kind!=="data")return;e.preventDefault(),r.isRowSelected(n.node.key)||r.handleRowClick(n.node.key,{}),n.columnId&&r.focusCell(n.node.key,n.columnId);let a={row:n.node.data,node:n.node,rowIndex:n.rowIndex,columnId:n.columnId,selectedKeys:r.getSelectedKeys()},l=(typeof we=="function"?we(a):we)??[],s=[...l,...gi(a,l.length>0)],i=[...s,...xr(n.node.key,s.length>0)],u=ui(i.length>0);i.length===0&&u.length===0||rt({left:e.clientX,top:e.clientY},c=>{c.setAttribute("role","menu"),Dn(c,[...i,...u],a);},"kanuni-datagrid-context-menu");};function gi(e,t){if(!Et?.onChange||Et.menu===false)return [];let o=e.columnId;if(!o)return [];let n=e.node.key,a=so(n,o,e.row),l=[];return t&&l.push({separator:true,id:"__note-sep"}),l.push({id:"__note-edit",label:a?v.editNote:v.addNote,onSelect:()=>fi(n,o,e.row,a??"")}),a&&l.push({id:"__note-delete",label:v.deleteNote,onSelect:()=>Et.onChange?.({rowKey:n,columnId:o,row:e.row,text:null})}),l}function fi(e,t,o,n){let l=(G.querySelector(`[data-row-key="${CSS.escape(String(e))}"] [data-column-id="${CSS.escape(t)}"]`)??G).getBoundingClientRect();queueMicrotask(()=>{rt({left:l.left,top:l.bottom+2},s=>{s.setAttribute("aria-label",v.noteEditorAria);let i=document.createElement("textarea");i.className="kanuni-datagrid-note-input",i.rows=4,i.value=n,i.setAttribute("aria-label",v.noteEditorAria),i.placeholder=v.notePlaceholder,i.setAttribute("data-testid","dg-note-input");let u=()=>{let H=i.value.trim();Me(),Et?.onChange?.({rowKey:e,columnId:t,row:o,text:H===""?null:H});};i.addEventListener("keydown",H=>{H.key==="Enter"&&(H.ctrlKey||H.metaKey)&&(H.preventDefault(),u()),H.key==="Escape"&&(H.preventDefault(),Me());});let c=w("kanuni-datagrid-note-actions"),E=document.createElement("button");E.type="button",E.className="kanuni-datagrid-note-cancel",E.textContent=v.cancel,E.addEventListener("click",()=>Me());let m=document.createElement("button");m.type="button",m.className="kanuni-datagrid-note-save",m.setAttribute("data-testid","dg-note-save"),m.textContent=v.save,m.addEventListener("click",u),c.append(E,m),s.append(i,c),queueMicrotask(()=>{i.focus(),i.select();});},"kanuni-datagrid-filter-popup kanuni-datagrid-note-editor");});}function mi(e){Tt!==e&&(Tt=e,e?(G.insertBefore(Pe,oe),yo()):Pe.remove());}function bi(e){if(Ue!==e){if(Ue=e,e){if(et){let t=qe.isConnected?qe:Ke.isConnected?Ke:Ne;Ae.insertBefore(Ie,t);}else Ae.append(Ie);go();}else Ie.remove();qe.style.setProperty("--dg-pinned-gap",String(Rt+(Ue&&et?1:0))),Ke.style.setProperty("--dg-pinned-gap",String(Rt+(Ue&&et?1:0)));}}function bo(e){let t=Io(G,e);t!==null&&r.setColumnWidth(e,t);}function Ir(e,t){let o=r.getColumnModel().getDef(e),n={columnId:e,headerName:o?.headerName??e},a=Do(n,{controller:r,t:v,groupPanelVisible:Tt,footerVisible:Ue,onToggleGroupPanel:()=>mi(!Tt),onToggleFooter:()=>bi(!Ue),onOpenFieldChooser:()=>Hr(t),onBestFit:bo,onBestFitAll:()=>{for(let s of r.getColumnStates())s.visible&&!s.flex&&bo(s.id);},maxGroupLevels:lt?Number.POSITIVE_INFINITY:1}),l=typeof Ce=="function"?Ce(n,a):a;l.length!==0&&rt(t,s=>{s.setAttribute("role","menu"),Dn(s,l,n);},"kanuni-datagrid-context-menu");}function wi(e,t){let o=r.getColumnModel().getDef(e),n=r.getColumnSummary(e),a={columnId:e,headerName:o?.headerName??o?.field??e},l=[{id:"none",label:v.noTotal,disabled:n===null,onSelect:()=>r.setColumnSummary(e,null)},{id:"sep",separator:true},...datagridCore.allowedSummaryTypes(o?.dataType).map(s=>({id:s,label:jn[s],disabled:n?.type===s,onSelect:()=>r.setColumnSummary(e,s)}))];rt(t,s=>{s.setAttribute("role","menu"),Dn(s,l,a);},"kanuni-datagrid-context-menu");}function Hr(e){rt(e,t=>{t.setAttribute("role","dialog"),t.setAttribute("aria-label",v.columns);let o=w("kanuni-datagrid-chooser-title");o.textContent=v.columns,t.appendChild(o);let n=()=>r.getColumnStates().filter(m=>!datagridCore.isChromeColumn(m.id)),a=m=>r.getColumnModel().getDef(m)?.headerName??m,l="";if(n().length>8){let m=document.createElement("input");m.type="search",m.className="kanuni-datagrid-filter-search",m.placeholder=v.search,m.setAttribute("aria-label",v.search),m.addEventListener("input",()=>{l=m.value.trim().toLocaleLowerCase(),E();}),t.appendChild(m);}let s=w("kanuni-datagrid-filter-list");t.appendChild(s);let i=w("kanuni-datagrid-filter-footer"),u=document.createElement("button");u.type="button",u.textContent=v.showAll,u.addEventListener("click",()=>{for(let m of n())m.visible||r.setColumnVisible(m.id,true);E();});let c=document.createElement("button");c.type="button",c.className="kanuni-datagrid-filter-primary",c.textContent=v.ok,c.addEventListener("click",()=>Me()),i.append(u,c),t.appendChild(i);function E(){let m=n(),H=m.filter(D=>D.visible).length;s.textContent="";let L=l?m.filter(D=>a(D.id).toLocaleLowerCase().includes(l)):m;if(L.length===0){let D=w("kanuni-datagrid-chooser-empty");D.textContent=v.noData,s.appendChild(D);}for(let D of L){let _=document.createElement("label");_.className="kanuni-datagrid-filter-item";let b=document.createElement("input");b.type="checkbox",b.checked=D.visible,b.disabled=D.visible&&H===1,b.setAttribute("data-column-toggle",D.id),b.addEventListener("change",()=>{r.setColumnVisible(D.id,b.checked),E();});let y=document.createElement("span");y.textContent=a(D.id),_.append(b,y),s.appendChild(_);}u.disabled=H===m.length;}E();},"kanuni-datagrid-filter-popup kanuni-datagrid-column-chooser");}let Dt=null,wo=null,Nn=e=>{Pe.classList.toggle("kanuni-datagrid-group-panel--over",e);};function Fr(e,t,o){let n=r.getGroupLevels();if(e===t)return;let a=n.filter(i=>i!==e),l=a.indexOf(t);if(l<0)return;let s=o==="before"?l:l+1;wo=e,r.groupBy([...a.slice(0,s),e,...a.slice(s)]);}function Kr(e,t){let o=r.getGroupLevels(),n=o.indexOf(e),a=n+t;n<0||a<0||a>=o.length||Fr(e,o[a],t===-1?"before":"after");}function Pr(e,t){if(!e)return;let o=r.getGroupLevels();if(o.includes(e))return;let n=lt?Number.POSITIVE_INFINITY:1;if(o.length>=n){r.groupBy([...o.slice(0,n-1),e]);return}let a=t??o.length;r.groupBy([...o.slice(0,a),e,...o.slice(a)]);}function yo(){if(!Tt)return;Pe.textContent="";let e=r.getGroupLevels();if(e.length===0){let u=w("kanuni-datagrid-group-panel-hint","span");u.textContent=v.groupPanelHint??"Drag a column header here to group by it",Pe.appendChild(u);return}let t=u=>r.getColumnModel().getDef(u)?.headerName??u,o=w("kanuni-datagrid-group-levels"),n=(u,c)=>u<c.top+c.height/2?"before":"after",a=(u,c)=>{for(let E of Pe.querySelectorAll(".kanuni-datagrid-group-level"))E.classList.remove("kanuni-datagrid-group-level--drop-before","kanuni-datagrid-group-level--drop-after");u&&c&&u.classList.add(`kanuni-datagrid-group-level--drop-${c}`);};e.forEach((u,c)=>{let E=w("kanuni-datagrid-group-level");E.style.setProperty("--dg-group-level",String(c)),E.setAttribute("data-group-level",String(c));let m=w("kanuni-datagrid-group-chip");if(m.setAttribute("role","button"),m.tabIndex=0,e.length>1&&(m.draggable=true),m.setAttribute("aria-label",`${datagridCore.fillText(v.groupLevelAria,{n:c+1})}: ${t(u)}`),m.addEventListener("dragstart",D=>{Dt=u,D.dataTransfer&&(D.dataTransfer.effectAllowed="move",D.dataTransfer.setData("text/x-kanuni-column",u));}),m.addEventListener("dragend",()=>{Dt=null,a(null,null);}),m.addEventListener("keydown",D=>{let _=D.ctrlKey||D.metaKey;_&&(D.key==="ArrowUp"||D.key==="ArrowLeft")?(D.preventDefault(),Kr(u,-1)):_&&(D.key==="ArrowDown"||D.key==="ArrowRight")?(D.preventDefault(),Kr(u,1)):(D.key==="Delete"||D.key==="Backspace")&&(D.preventDefault(),r.groupBy(e.filter(b=>b!==u)));}),E.addEventListener("dragover",D=>{!Dt&&!(D.dataTransfer?.types.includes("text/x-kanuni-column")??false)||(D.preventDefault(),D.stopPropagation(),a(E,n(D.clientY,E.getBoundingClientRect())));}),E.addEventListener("drop",D=>{D.preventDefault(),D.stopPropagation();let _=n(D.clientY,E.getBoundingClientRect());a(null,null),Nn(false);let b=Dt;if(Dt=null,b){Fr(b,u,_);return}let y=D.dataTransfer?.getData("text/x-kanuni-column");y&&Pr(y,_==="before"?c:c+1);}),e.length>1){let D=w("kanuni-datagrid-group-chip-level","span");D.textContent=String(c+1),m.appendChild(D);}let H=document.createElement("span");H.textContent=t(u);let L=document.createElement("button");L.type="button",L.setAttribute("aria-label",datagridCore.fillText(v.groupRemoveAria,{column:t(u)})),L.textContent="\xD7",L.addEventListener("click",()=>{r.groupBy(e.filter(D=>D!==u));}),L.draggable=false,m.append(H,L),E.appendChild(m),o.appendChild(E),wo===u&&(wo=null,queueMicrotask(()=>m.focus()));}),Pe.appendChild(o);let l=w("kanuni-datagrid-group-panel-actions"),s=document.createElement("button");s.type="button",s.textContent=v.groupExpandAll,s.addEventListener("click",()=>r.expandAllGroups());let i=document.createElement("button");i.type="button",i.textContent=v.groupCollapseAll,i.addEventListener("click",()=>r.collapseAllGroups()),l.append(s,i),Pe.appendChild(l);}if(Tt){let e=t=>t.dataTransfer?.types.includes("text/x-kanuni-column")??false;Pe.addEventListener("dragover",t=>{e(t)&&(t.preventDefault(),Nn(true));}),Pe.addEventListener("dragleave",t=>{let o=t.relatedTarget;o&&Pe.contains(o)||Nn(false);}),Pe.addEventListener("drop",t=>{Nn(false);let o=t.dataTransfer?.getData("text/x-kanuni-column");if(o){if(t.preventDefault(),Dt){Dt=null;return}Pr(o);}});}let Gr="";function Or(){if(!T)return;let e=[datagridCore.fillText(v.announceRows,{n:r.getVisibleCount()})],t=r.getSort();if(t.length>0){let a=t.map(l=>{let s=r.getColumnModel().getDef(l.columnId),i=s?.headerName??s?.field??l.columnId,u=l.direction==="desc"?v.announceDescending:v.announceAscending;return `${i} ${u}`}).join(", ");e.push(datagridCore.fillText(v.announceSortedBy,{columns:a}));}let o=r.getSelectedCount();o>0&&e.push(datagridCore.fillText(v.announceSelected,{n:o}));let n=e.join(", ");n!==Gr&&(Gr=n,Xt.textContent=n);}function $r(){if(!ae)return;xt.textContent="";let e=datagridCore.describeFilter(r.getEffectiveFilter(),r.getColumnModel(),{...me,labels:{...datagridCore.filterLabels(v),...me?.labels}});if(!e&&ae!=="always"){xt.style.display="none";return}xt.style.display="";let t=r.isFilterEnabled();xt.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=v.filterRemove,o.setAttribute("aria-label",v.filterRemove),o.setAttribute("data-testid","dg-filter-panel-clear"),o.disabled=e===null,o.textContent="\xD7",o.addEventListener("click",()=>{r.setFilter(null),r.clearColumnFilters(),r.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=v.filterToggle,n.setAttribute("aria-label",v.filterToggle),n.setAttribute("data-testid","dg-filter-panel-toggle"),n.addEventListener("change",()=>r.setFilterEnabled(n.checked));let a=w("kanuni-datagrid-filter-panel-text","span");if(a.setAttribute("data-testid","dg-filter-panel-text"),a.textContent=e??v.filterNone,e&&(a.title=e),xt.append(o,n,a),J){let l=document.createElement("button");l.type="button",l.className="kanuni-datagrid-filter-panel-builder",l.title=v.filterEditBuilder,l.setAttribute("aria-label",v.filterEditBuilder),l.setAttribute("data-testid","dg-filter-panel-builder"),l.textContent="\u25BE",l.addEventListener("click",J),xt.appendChild(l);}}let ho=new Set,yi=r.events.on("cellsFlashed",({rowKeys:e,columnIds:t,duration:o})=>{let n=e.length?e.map(i=>`[data-row-key="${CSS.escape(String(i))}"]`).join(","):".kanuni-datagrid-row",a=t.length?t.map(i=>`[data-column-id="${CSS.escape(i)}"]`).join(","):"[data-column-id]",l=[];se.querySelectorAll(n).forEach(i=>{i.querySelectorAll(a).forEach(u=>l.push(u));});for(let i of l)i.classList.remove("kanuni-datagrid-cell--flash");G.offsetWidth;for(let i of l)i.classList.add("kanuni-datagrid-cell--flash");let s=setTimeout(()=>{for(let i of l)i.classList.remove("kanuni-datagrid-cell--flash");ho.delete(s);},o);ho.add(s);});function mt(e){let t=e.target,o=t.closest(".kanuni-datagrid-row");if(!o||!se.contains(o))return null;let n=o.getAttribute("data-row-key");if(n===null)return null;let a=r.getRows(),l=a.findIndex(i=>i!==void 0&&String(i.key)===n);if(l===-1)return null;let s=t.closest(".kanuni-datagrid-cell")?.getAttribute("data-column-id")??null;return {node:a[l],rowIndex:l,columnId:s}}let Br=e=>{let t=mt(e);t&&(K?.(t.node),r.notifyRow("rowClicked",t.node,t.rowIndex),t.columnId&&r.notifyCell("cellClicked",t.node,t.rowIndex,t.columnId));},Vr=e=>{let t=mt(e);if(t){if(Jo){let o=xo(t,true);o&&Jo(o);}he?.(t.node),r.notifyRow("rowDoubleClicked",t.node,t.rowIndex),t.columnId&&r.notifyCell("cellDoubleClicked",t.node,t.rowIndex,t.columnId);}};se.addEventListener("click",Br),se.addEventListener("dblclick",Vr);function hi(e){let t=0,o=Te.querySelector(`[data-column-id="${CSS.escape(e)}"]`);o&&(t=o.scrollWidth),se.querySelectorAll(`[data-column-id="${CSS.escape(e)}"]`).forEach(n=>{n.scrollWidth>t&&(t=n.scrollWidth);}),t>0&&r.setColumnWidth(e,t+12,true);}function Ci(){if(Ye)for(let e of Te.querySelectorAll('[role="columnheader"][data-column-id]')){let t=Ye(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 Ei(){if(P)for(let e of Te.querySelectorAll(".kanuni-datagrid-filter-button")){let t=e.parentElement?.getAttribute("data-column-id");t&&e.classList.toggle("kanuni-datagrid-filter-button--active",r.getColumnFilter(t)!==null);}}let Co=false,_r=false,Vt=null;function In(){Vt!==null&&(clearTimeout(Vt),Vt=null);}function Hn(e){jt.style.display=e?"":"none";}function Fn(){let e=r.getOverlay();if(mn.style.display=e==="noRows"?"":"none",Yn===false){In(),Hn(false);return}if(!(e==="loading"&&(Co||!_r))){In(),Hn(false);return}if(Co||jo<=0){In(),Hn(true);return}Vt!==null||jt.style.display===""||(Vt=setTimeout(()=>{Vt=null,Fe||Hn(true);},jo));}let Wr=false,Eo=false,vo=false,ko=false,Fe=false,Ro=new datagridCore.RowMotion;function vi(){if(Eo=false,!Fe){if(vo)vo=false,ko&&(ko=false,nt++),ro(),ao(),co(),Ln();else {let e=Ge;ro(),Ge!==e?(nt++,ao(),co(),Ln()):r.getPinnedRows("top").length+r.getPinnedRows("bottom").length>0&&Ln();}xn(),r.getAnimateRows()&&Ro.play(se),fr(),go(),Rr(),Ei(),Ci(),yo(),$r(),Or(),Fn();}}function Kn(e){Fe||(e&&(vo=true),!Eo&&(Eo=true,queueMicrotask(vi)));}let ki=[...Q?[r.events.on("focusedRowChanged",e=>Q({rowKey:e.rowKey,row:e.row}))]:[],...Fl.map(e=>r.events.on(e,()=>Kn(true))),...Kl.map(e=>r.events.on(e,()=>{ko=true;})),...Pl.map(e=>r.events.on(e,()=>Kn(false))),r.events.on("filterChanged",()=>ii()),...["sortChanged","filterChanged","groupChanged","dataUpdated"].map(e=>r.events.on(e,()=>{r.getAnimateRows()&&Ro.capture(se);})),r.events.on("rowPinningChanged",()=>{Fe||(di(),Kn(true));}),r.events.on("overlayChanged",e=>{Co=e.manual===true&&e.overlay==="loading",Fe||Fn();}),r.events.on("busyChanged",e=>{_r=e.background===true,Fe||Fn();}),r.events.on("paginationChanged",()=>{Fe||Kn(false);}),r.events.on("bodyScroll",()=>{Fe||vr();}),r.events.on("scrollRequested",e=>{if(Fe)return;e.scrollTop!==void 0&&(oe.scrollTop=e.scrollTop),e.scrollLeft!==void 0&&(oe.scrollLeft=e.scrollLeft),r.setScroll(oe.scrollTop,Math.abs(oe.scrollLeft));let t=e.scrollTop;t===void 0||Math.abs(oe.scrollTop-t)<=1||setTimeout(()=>{Fe||Math.abs(oe.scrollTop-t)<=1||(oe.scrollTop=t,r.setScroll(oe.scrollTop,Math.abs(oe.scrollLeft)));},0);}),...ke==="fitGrid"?[r.events.on("gridSizeChanged",()=>r.sizeColumnsToFit())]:[],...ke==="fitCells"?[r.events.on("firstDataRendered",()=>{Fe||Wr||(Wr=true,queueMicrotask(()=>{if(!Fe)for(let e of r.getColumnStates())e.visible&&!e.flex&&bo(e.id);}));})]:[]];ke==="fitGrid"&&r.sizeColumnsToFit();function xo(e,t=false){if(!e.columnId||e.node.kind!=="data"&&!(t&&e.node.kind==="group"))return null;let o=Je.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"?r.getColumnModel().getCellValue(e.node.data,o.id):void 0}:null}let qr=e=>{let t=e.target;if(Re){let i=mt(e),u=i?xo(i):null;u&&Re(u,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 a=r.getRows().find(i=>i!==void 0&&String(i.key)===n);if(!a||a.kind!=="data")return;r.handleRowClick(a.key,{ctrlKey:e.ctrlKey||_a&&!e.shiftKey,metaKey:e.metaKey,shiftKey:e.shiftKey});let l=t.closest(".kanuni-datagrid-cell"),s=l?Je.find(i=>l.id.endsWith(`-${i.id}`))?.id:void 0;s&&r.focusCell(a.key,s);},Ur=e=>{if(!ge)return;let o=e.target.closest(".kanuni-datagrid-cell");if(!o||!se.contains(o)||e.relatedTarget?.closest?.(".kanuni-datagrid-cell")===o)return;let a=mt(e),l=a?xo(a):null;l&&ge(l,e);};if(se.addEventListener("mousedown",qr),se.addEventListener("contextmenu",Nr),ge&&se.addEventListener("mouseover",Ur),Qt&&(Ne.addEventListener("dragstart",Wa),Ne.addEventListener("dragover",qa),Ne.addEventListener("drop",Ua),Ne.addEventListener("dragend",za),Ne.addEventListener("dragleave",Ya)),G.tabIndex=0,vt){dt=$o({controller:r,element:G},xe,v,{surfaceClass:()=>_n(p).replace("kanuni-datagrid-root","").trim(),barHost:G},{isColumnEditable:t=>Ea(r.getColumnModel().getDef(t),t)});let e=G.querySelector(':scope > [data-testid="dg-edit-bar"]');e&&G.insertBefore(e,G.firstChild);}let zr=e=>{let t=dt;if(!t||zt)return;let o=e.target;if(!o||!(o===G||o===oe||se.contains(o)))return;let n=o.tagName;n==="INPUT"||n==="TEXTAREA"||n==="SELECT"||o.isContentEditable||t.handleKeyDown(e)&&e.stopImmediatePropagation();};vt&&G.addEventListener("keydown",zr,true);let Yr=e=>{let t=e.target;if(t.tagName==="INPUT"||t.tagName==="TEXTAREA"||t.isContentEditable||ze.contains(t)||ct.contains(t)||t.closest?.('[data-testid="dg-edit-form"], [data-testid="dg-edit-bar"]')||Te.contains(t))return;if((we||ie||r.isRowPinningEnabled())&&(e.key==="ContextMenu"||e.key==="F10"&&e.shiftKey)){let l=r.getFocus(),s=l?se.querySelector(`[id="${CSS.escape(`${p.gridId}-cell-${String(l.rowKey)}-${l.columnId}`)}"]`):null;if(s){let i=s.getBoundingClientRect();s.dispatchEvent(new MouseEvent("contextmenu",{bubbles:true,cancelable:true,clientX:i.left+16,clientY:i.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"){Mn();return}if(o.type==="activate"){if(he){let l=r.getFocus(),s=l?r.getRows().find(i=>i!==void 0&&i.key===l.rowKey):void 0;s&&he(s);}o.preventDefault&&e.preventDefault();return}r.executeCommand(o),o.preventDefault&&e.preventDefault();let n=r.getFocusIndices();if(n){let s=r.getColumnLayout().center.findIndex(u=>u.state.id===r.getFocus()?.columnId),i=r.ensureVisible(n.rowIndex,s===-1?void 0:s);i&&(i.scrollTop!==void 0&&(oe.scrollTop=i.scrollTop),i.scrollLeft!==void 0&&(oe.scrollLeft=i.scrollLeft),r.setScroll(oe.scrollTop,Math.abs(oe.scrollLeft)));}let a=r.getFocus();G.setAttribute("aria-activedescendant",a?`${p.gridId}-cell-${String(a.rowKey)}-${a.columnId}`:"");};G.addEventListener("keydown",Yr);let Ri=Uo?datagridCore.attachStateStoring(r,Uo):null,jr=typeof We=="object"?We.delay??400:400,Xr=We!==false&&!(typeof We=="object"&&We.enabled===false),xi=typeof We=="object"?We.showOnTruncation!==false:true,Jr=typeof We=="object"?We.trigger??"hover":"hover",Qr=Xr&&Jr!=="focus",To=Xr&&Jr!=="hover",Pn=typeof We=="object"&&We.interactive===true,Zr=`${p.gridId}-tooltip`,Nt=null,Oe=null,$e=null,It=null,So=null;function bt(){Oe&&clearTimeout(Oe),Oe=null,It=null,Lo();}function Lo(){$e&&clearTimeout($e),$e=null,So?.removeAttribute("aria-describedby"),So=null,Nt?.remove(),Nt=null;}let Ti=e=>e.scrollWidth>e.clientWidth+1||e.scrollHeight>e.clientHeight+1;function Si(e){let o=e.closest(".kanuni-datagrid-row")?.getAttribute("data-row-key"),n=Je.find(c=>e.id.endsWith(`-${c.id}`));if(!o||!n)return null;let a=r.getRows().find(c=>c!==void 0&&String(c.key)===o);if(!a||a.kind!=="data")return null;let l=n.def,s=so(a.key,n.id,a.data);if(s)return s;let i={value:r.getColumnModel().getCellValue(a.data,n.id),row:a.data,node:a,column:l},u=l.renderTooltip;if(u){let c=u(i);return c===void 0||c===""?null:c}if(typeof l.tooltip=="function")return l.tooltip(i)??null;if(typeof l.tooltip=="string")return l.tooltip;if(l.tooltipField){let c=a.data[l.tooltipField];return c==null?null:String(c)}return xi&&Ti(e)?e.textContent??null:null}function ea(e,t){let o=Si(e);if(o===null||o==="")return;Lo();let n=e.getBoundingClientRect();Nt=w(`${_n(p)} kanuni-datagrid-portal`);let a=w(Pn?"kanuni-datagrid-tooltip kanuni-datagrid-tooltip--interactive":"kanuni-datagrid-tooltip");a.id=Zr,a.setAttribute("role","tooltip"),typeof o=="string"?a.textContent=o:a.appendChild(o),a.style.position="fixed",a.style.left=`${n.left}px`,a.style.top=`${n.bottom+4}px`,a.style.zIndex="1001",Pn&&(a.addEventListener("pointerenter",()=>{$e&&clearTimeout($e),$e=null,Oe&&clearTimeout(Oe),Oe=null;}),a.addEventListener("pointerleave",bt)),Nt.appendChild(a),document.body.appendChild(Nt),t&&(e.setAttribute("aria-describedby",Zr),So=e);}let ta=e=>{if(!Qr)return;let t=e.target.closest(".kanuni-datagrid-cell");if(t&&t===It){$e&&clearTimeout($e),$e=null;return}Pn&&Nt&&$e?(Oe&&clearTimeout(Oe),Oe=null):bt(),!(!t||!se.contains(t))&&(It=t,Oe=setTimeout(()=>{Oe=null,!(It!==t||!t.isConnected)&&ea(t,false);},jr));},na=e=>{if(!Qr)return;let t=e.relatedTarget;if(!(It&&t&&It.contains(t))){if(!Pn||!Nt){bt();return}$e&&clearTimeout($e),$e=setTimeout(Lo,150);}};G.addEventListener("pointerover",ta),G.addEventListener("pointerout",na),oe.addEventListener("scroll",bt,{passive:true});let oa=-1/0,ra=()=>{oa=Date.now();};To&&G.addEventListener("pointerdown",ra);let Li=To?r.events.on("focusChanged",()=>{bt();let e=r.getFocus();e&&(Oe=setTimeout(()=>{if(Oe=null,!G.contains(document.activeElement)&&Date.now()-oa>1500)return;let t=document.getElementById(`${p.gridId}-cell-${String(e.rowKey)}-${e.columnId}`);!t||!se.contains(t)||(It=t,ea(t,true));},jr));}):null,aa=e=>{e.key==="Escape"&&bt();};To&&G.addEventListener("keydown",aa);let ia=()=>{if(r.setScroll(oe.scrollTop,Math.abs(oe.scrollLeft)),wt)for(let e of la())e.scroller.scrollLeft!==oe.scrollLeft&&(e.scroller.scrollLeft=oe.scrollLeft);};oe.addEventListener("scroll",ia,{passive:true});let wt=null,la=()=>{if(!le||!wt)return [];let e=dn.get(le);return e?[...e].filter(t=>t!==wt):[]},da=null;if(le){wt={controller:r,scroller:oe};let e=dn.get(le)??new Set;e.add(wt),dn.set(le,e),da=r.events.on("columnStateChanged",()=>{if(qo.has(le))return;let t=la();if(t.length===0)return;let o=r.getColumnStates();qo.add(le);try{for(let n of t)n.controller.applyColumnStates(o);}finally{qo.delete(le);}});}let sa=()=>{r.setViewportSize(oe.clientWidth,oe.clientHeight),Ut&&Va(oe.clientWidth),oe.style.setProperty("--dg-viewport-width",`${oe.clientWidth}px`);let e=Ne.getBoundingClientRect(),t=Ae.getBoundingClientRect();r.setChromeOffsets(e.top-t.top,t.bottom-e.bottom),datagridCore.calibrateMaxScrollOffset(oe,r);};sa();let Gn=null;typeof ResizeObserver<"u"&&(Gn=new ResizeObserver(sa),Gn.observe(oe),Gn.observe(Ae)),ro(),ao(),co(),li(),Ln(),xn(),go(),Rr(),yo(),$r(),Or(),Fn(),en?.always&&no(true);let Ao=null;if(Ee){let e=null,t=()=>{let o=Te.offsetHeight,n=o>0?`${o}px`:null;n!==e&&(e=n,n?Ae.style.setProperty("--dg-header-actual",n):Ae.style.removeProperty("--dg-header-actual"));};t(),typeof ResizeObserver<"u"&&(Ao=new ResizeObserver(t),Ao.observe(Te));}return nr=true,{controller:r,element:G,setData:e=>r.setData(e),setColumns:e=>r.setColumns(e),destroy:()=>{if(!Fe){if(Fe=true,ki.forEach(e=>e()),nn.forEach(e=>e()),nn=[],Gn?.disconnect(),Ao?.disconnect(),gr?.(),Ot&&(Ot=false,Ft--,Ft<=0&&(Ft=0,document.documentElement.classList.remove("kanuni-datagrid-printing"))),da?.(),le&&wt){let e=dn.get(le);e?.delete(wt),e&&e.size===0&&dn.delete(le),wt=null;}oe.removeEventListener("scroll",ia),se.removeEventListener("mousedown",qr),se.removeEventListener("contextmenu",Nr),qe.removeEventListener("contextmenu",An),Ro.dispose(),st.removeEventListener("contextmenu",An),ge&&se.removeEventListener("mouseover",Ur),se.removeEventListener("click",Br),se.removeEventListener("dblclick",Vr),yi(),In();for(let e of ho)clearTimeout(e);G.removeEventListener("keydown",Yr),G.removeEventListener("keydown",zr,true),dt?.dispose(),dt=null,G.removeEventListener("pointerover",ta),G.removeEventListener("pointerout",na),G.removeEventListener("keydown",aa),G.removeEventListener("pointerdown",ra),Li?.(),oe.removeEventListener("scroll",bt),bt(),Ri?.(),Me(false),r.dispose(),G.remove();}}}}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=Wn;exports.DETAIL_COLUMN_WIDTH=un;exports.PRINT_MAX_ROWS=La;exports.ROW_DRAG_MIME=qn;exports.ROW_NUMBER_COLUMN_WIDTH=sn;exports.attachCellEditing=$o;exports.buildCellEditor=Ko;exports.buildDateEditor=Ht;exports.buildEditForm=Go;exports.buildHeaderMenu=Do;exports.createGrid=Wl;exports.measureBestFitWidth=Io;exports.openConfirmDialog=Po;
|
|
1
|
+
'use strict';var datagridCore=require('@kanunilabs/datagrid-core');function Ho(d,p){let{controller:f,maxGroupLevels:A,t:k}=p,h=d.columnId,N=f.getColumnModel().getDef(h),S=f.getSort(),x=S.find(P=>P.columnId===h),te=f.getGroupLevels(),U=te.includes(h),I=N?.sortable!==false,B=f.getColumnStates().find(P=>P.id===h)?.pinned??null,j=N?.groupable!==false,Y=f.canGroup(),ue=[{id:"sort-asc",label:k.sortAsc,disabled:!I||x?.direction==="asc",onSelect:()=>f.setSort([{columnId:h,direction:"asc"}])},{id:"sort-desc",label:k.sortDesc,disabled:!I||x?.direction==="desc",onSelect:()=>f.setSort([{columnId:h,direction:"desc"}])},{id:"sort-clear",label:k.clearSort,disabled:!x,onSelect:()=>f.setSort(S.filter(P=>P.columnId!==h))},{id:"sep-1",separator:true},{id:"group",label:U?k.ungroupColumn:k.groupByColumn,disabled:!j,onSelect:()=>{U?f.groupBy(te.filter(P=>P!==h)):f.groupBy([...te,h].slice(-A));}},{id:"group-panel",label:p.groupPanelVisible?k.hideGroupPanel:k.showGroupPanel,onSelect:p.onToggleGroupPanel},{id:"footer",label:p.footerVisible?k.hideFooter:k.showFooter,onSelect:p.onToggleFooter},{id:"sep-2",separator:true},{id:"hide-column",label:k.hideColumn,disabled:f.getColumnStates().filter(P=>P.visible).length<=1,onSelect:()=>f.setColumnVisible(h,false)},{id:"field-chooser",label:k.fieldChooser,onSelect:p.onOpenFieldChooser},{id:"sep-3",separator:true},{id:"best-fit",label:k.bestFit,disabled:N?.resizable===false,onSelect:()=>p.onBestFit(h)},{id:"best-fit-all",label:k.bestFitAll,onSelect:p.onBestFitAll}],ne=f.getColumnStates().filter(P=>P.visible&&P.pinned===B).map(P=>P.id),ve=ne.indexOf(h),R=N?.reorderable!==false&&ve>=0;return ue.push({id:"sep-4",separator:true},{id:"move-left",label:k.moveLeft,disabled:!R||ve<=0,onSelect:()=>f.moveColumn(h,ne[ve-1])},{id:"move-right",label:k.moveRight,disabled:!R||ve<0||ve>=ne.length-1,onSelect:()=>f.moveColumn(h,ne[ve+2])},{id:"fixed-position",label:k.fixedPosition,items:[{id:"pin-left",label:k.pinLeft,disabled:B==="left",onSelect:()=>f.setColumnPinned(h,"left")},{id:"pin-right",label:k.pinRight,disabled:B==="right",onSelect:()=>f.setColumnPinned(h,"right")},{id:"pin-sticky",label:k.pinSticky,disabled:B==="sticky",onSelect:()=>f.setColumnPinned(h,"sticky")}]},{id:"unpin",label:k.unpin,disabled:B===null,onSelect:()=>f.setColumnPinned(h,null)}),Y?ue:ue.filter(P=>P.id!=="group"&&P.id!=="group-panel")}async function Fo(d,p){try{let f=p==="csv"?await d.exportToCsv():p==="excel"?await d.exportToExcel():p==="excel-selected"?await d.exportToExcel({selectedOnly:!0}):await d.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 Cr=null;function Vi(){return typeof document>"u"?null:(Cr??=document.createElement("canvas"),Cr.getContext("2d"))}function vr(d){let p=getComputedStyle(d);return `${p.fontStyle} ${p.fontWeight} ${p.fontSize} ${p.fontFamily}`}function _i(d){for(let p=d.firstElementChild;p;p=p.nextElementSibling)if(p.tagName!=="MARK")return true;return false}function Wi(d){let p=d.map(A=>[A.style.width,A.style.minWidth,A.style.maxWidth]);for(let A of d)A.style.width="max-content",A.style.minWidth="0",A.style.maxWidth="none";let f=0;for(let A of d){let k=Math.ceil(A.getBoundingClientRect().width);k>f&&(f=k);}return d.forEach((A,k)=>{[A.style.width,A.style.minWidth,A.style.maxWidth]=p[k];}),f}function Ko(d,p){let f=Vi();if(!f)return null;let A=typeof CSS<"u"&&CSS.escape?CSS.escape(p):p.replace(/"/g,'\\"'),k=d.querySelector(`.kanuni-datagrid-header-cell[data-column-id="${A}"]`),h=d.querySelectorAll(`.kanuni-datagrid-cell[data-column-id="${A}"]`);if(!k&&h.length===0)return null;let N=0;if(k){let S=k.querySelector(".kanuni-datagrid-header-label")??k;f.font=vr(S),N=f.measureText(S.textContent??"").width+44;}if(h.length>0){f.font=vr(h[0]);let S=[];for(let x=0;x<h.length;x++){if(_i(h[x])){S.push(h[x]);continue}let te=h[x].textContent??"";if(te==="")continue;let U=f.measureText(te).width+20;U>N&&(N=U);}S.length>0&&(N=Math.max(N,Wi(S)));}return N===0?null:Math.round(Math.min(640,Math.max(48,N)))}function Rr(d){let p=Number(d.weekStartsOn);return Number.isInteger(p)&&p>=0&&p<=6?p:0}function Ji(d){let p=[d.weekdaySu,d.weekdayMo,d.weekdayTu,d.weekdayWe,d.weekdayTh,d.weekdayFr,d.weekdaySa],f=Rr(d);return [...p.slice(f),...p.slice(0,f)]}function Qi(d){return [d.monthJanuary,d.monthFebruary,d.monthMarch,d.monthApril,d.monthMay,d.monthJune,d.monthJuly,d.monthAugust,d.monthSeptember,d.monthOctober,d.monthNovember,d.monthDecember]}function Zi(d,p){return !d||!p?false:d.getFullYear()===p.getFullYear()&&d.getMonth()===p.getMonth()&&d.getDate()===p.getDate()}var kr="http://www.w3.org/2000/svg";function el(){let d=document.createElementNS(kr,"svg");d.setAttribute("width","14"),d.setAttribute("height","14"),d.setAttribute("viewBox","0 0 16 16"),d.setAttribute("aria-hidden","true"),d.setAttribute("focusable","false");let p=document.createElementNS(kr,"path");return p.setAttribute("d","M3 4h10v9H3z M3 6.5h10 M5.5 2.5v2 M10.5 2.5v2"),p.setAttribute("fill","none"),p.setAttribute("stroke","currentColor"),p.setAttribute("stroke-width","1.3"),p.setAttribute("stroke-linecap","round"),d.appendChild(p),d}function Ft(d){let{t:p,format:f=datagridCore.DEFAULT_DATE_FORMAT,autoFocus:A=true}=d,k=Qi(p),h=Ji(p),N=document.createElement("span");N.className="kanuni-datagrid-date-editor";let S=document.createElement("input");S.type="text",S.inputMode="numeric",S.autocomplete="off",S.placeholder=f,d.ariaLabel&&S.setAttribute("aria-label",d.ariaLabel),d.testId&&S.setAttribute("data-testid",d.testId),d.columnId&&S.setAttribute("data-column-id",d.columnId),d.disabled&&(S.disabled=true);let x=null,te=false,U=null,I=datagridCore.toDate(d.value),B=I??new Date,j=()=>x===null?datagridCore.formatDateValue(d.value,f):datagridCore.maskDate(x,f),Y=()=>x===null?null:datagridCore.parseDateValue(datagridCore.maskDate(x,f),f),ue=()=>x!==null&&x.length===datagridCore.dateDigitCount(f)&&Y()===null,ne=()=>{let K=ue()||!!d.invalid;S.className=`kanuni-datagrid-editor${K?" kanuni-datagrid-editor--invalid":""}`,K?S.setAttribute("aria-invalid","true"):S.removeAttribute("aria-invalid");};S.value=j(),ne();let ve=K=>{if(K===null){d.onChange(null);return}d.onChange(d.value instanceof Date?K:datagridCore.toIsoDate(K));},R=()=>{if(!U)return;if(!S.isConnected){J();return}let K=S.getBoundingClientRect(),he=datagridCore.placeAnchoredLayer({anchor:{left:K.left,top:K.top,bottom:K.bottom},width:U.offsetWidth,height:U.offsetHeight,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight});U.style.left=`${he.left}px`,U.style.top=`${he.top}px`;},P=()=>R();function X(){if(!U)return;U.textContent="";let K=document.createElement("div");K.className="kanuni-datagrid-date-popup-head";let he=document.createElement("button");he.type="button",he.setAttribute("aria-label",p.datePreviousMonth),he.setAttribute("data-testid","dg-date-prev"),he.textContent="\u2039",he.addEventListener("click",()=>{B=new Date(B.getFullYear(),B.getMonth()-1,1),X();});let xe=document.createElement("span");xe.setAttribute("data-testid","dg-date-title"),xe.textContent=`${k[B.getMonth()]} ${B.getFullYear()}`;let de=document.createElement("button");de.type="button",de.setAttribute("aria-label",p.dateNextMonth),de.setAttribute("data-testid","dg-date-next"),de.textContent="\u203A",de.addEventListener("click",()=>{B=new Date(B.getFullYear(),B.getMonth()+1,1),X();}),K.append(he,xe,de);let g=document.createElement("div");g.className="kanuni-datagrid-date-popup-grid",g.setAttribute("role","grid");for(let ce of h){let z=document.createElement("span");z.className="kanuni-datagrid-date-weekday",z.setAttribute("role","columnheader"),z.textContent=ce,g.appendChild(z);}let T=(new Date(B.getFullYear(),B.getMonth(),1).getDay()-Rr(p)+7)%7,fe=datagridCore.daysInMonth(B.getFullYear(),B.getMonth()+1);for(let ce=0;ce<42;ce++){let z=ce-T+1,ie=new Date(B.getFullYear(),B.getMonth(),z),be=z<1||z>fe,Ce=Zi(ie,Y()??I),V=document.createElement("button");V.type="button",V.setAttribute("role","gridcell"),V.className=`kanuni-datagrid-date-day${be?" kanuni-datagrid-date-day--outside":""}${Ce?" kanuni-datagrid-date-day--selected":""}`,V.setAttribute("aria-selected",String(Ce)),V.setAttribute("data-testid","dg-date-day"),V.setAttribute("data-date",datagridCore.toIsoDate(ie)),V.textContent=String(ie.getDate()),V.addEventListener("click",()=>W(ie)),g.appendChild(V);}U.append(K,g);}function re(){te||(te=true,Q.setAttribute("aria-expanded","true"),B=Y()??I??new Date,U=document.createElement("div"),U.className=`kanuni-datagrid-detached kanuni-datagrid-date-popup${d.surfaceClass?` ${d.surfaceClass}`:""}`,U.style.position="fixed",U.setAttribute("data-testid","dg-date-calendar"),U.setAttribute("role","dialog"),U.setAttribute("aria-label",d.ariaLabel?`${d.ariaLabel} ${p.dateCalendar}`:p.dateCalendar),U.addEventListener("mousedown",K=>K.preventDefault()),document.body.appendChild(U),window.addEventListener("scroll",P,true),window.addEventListener("resize",P),d.onPortalOpen?.(J),X(),R());}function J(){te&&(te=false,Q.setAttribute("aria-expanded","false"),window.removeEventListener("scroll",P,true),window.removeEventListener("resize",P),U?.remove(),U=null);}function W(K){x=null,J(),ve(K),S.value=datagridCore.formatDateValue(d.value instanceof Date?K:datagridCore.toIsoDate(K),f),ne(),S.focus({preventScroll:true});}function Z(){if(x===null)return;if(x.length===0){ve(null),x=null,S.value=j(),ne();return}let K=Y();K&&ve(K),x=null,S.value=j(),ne();}S.addEventListener("input",()=>{x=datagridCore.dateDigits(S.value,f),S.value=datagridCore.maskDate(x,f),ne();}),S.addEventListener("keydown",K=>{if(K.key==="Escape"){if(K.preventDefault(),K.stopPropagation(),te){J();return}x=null,d.onCancel();return}if(te){let he=K.key==="ArrowLeft"?-1:K.key==="ArrowRight"?1:K.key==="ArrowUp"?-7:K.key==="ArrowDown"?7:0;if(he!==0){K.preventDefault(),K.stopPropagation();let xe=Y()??I??new Date,de=new Date(xe.getFullYear(),xe.getMonth(),xe.getDate()+he);x=datagridCore.dateDigits(datagridCore.formatDateValue(de,f),f),S.value=datagridCore.maskDate(x,f),B=de,X(),ne();return}if(K.key==="Enter"){K.preventDefault(),K.stopPropagation();let xe=Y();J(),xe&&W(xe);return}}if(K.key==="Enter"){K.preventDefault(),K.stopPropagation(),Z(),d.onCommit();return}if(K.key==="Tab"){Z(),J(),d.onTab&&(K.preventDefault(),K.stopPropagation(),d.onTab(K.shiftKey));return}if(K.key.length===1&&!K.ctrlKey&&!K.metaKey&&!/\d/.test(K.key)){K.preventDefault();return}K.stopPropagation();}),S.addEventListener("blur",()=>{te||Z();});let Q=document.createElement("button");return Q.type="button",Q.className="kanuni-datagrid-date-button",Q.setAttribute("aria-label",d.ariaLabel?`${d.ariaLabel} \u2014 ${p.dateOpenCalendar}`:p.dateOpenCalendar),Q.setAttribute("aria-expanded","false"),Q.setAttribute("data-testid","dg-date-open"),d.disabled&&(Q.disabled=true),Q.tabIndex=-1,Q.addEventListener("mousedown",K=>K.preventDefault()),Q.addEventListener("click",()=>{te?J():re(),S.focus({preventScroll:true});}),Q.appendChild(el()),N.append(S,Q),A&&queueMicrotask(()=>{S.isConnected&&(S.focus({preventScroll:true}),S.select());}),N}function xr(d,p){return d==null?"":p==="date"&&d instanceof Date?d.toISOString().slice(0,10):String(d)}function Tr(d,p){if(p){let f=document.createElement("span");f.id="kanuni-datagrid-editor-error",f.setAttribute("role","alert"),f.className="kanuni-datagrid-editor-error",f.textContent=p,d.appendChild(f);}return d}function $o(d){let{value:p,dataType:f,error:A,seeded:k=false}=d,h=document.createDocumentFragment();if(d.options===null){let x=document.createElement("input");return x.type="text",x.value="\u2026",x.readOnly=true,x.disabled=true,x.className="kanuni-datagrid-editor",x.setAttribute("data-testid","dg-cell-editor"),h.appendChild(x),h}if(d.options&&d.options.length>0&&d.renderLookup)return h.appendChild(d.renderLookup({options:d.options,value:p,matchMode:d.matchMode,allowCustom:d.allowCustom,invalid:!!A,testId:"dg-cell-editor",ariaLabel:d.ariaLabel,surfaceClass:d.surfaceClass,onPortalOpen:d.onPortalOpen,noMatchText:d.t?.editNoMatch??"No match",onChange:d.onChange,onCommit:()=>d.onCommit("none"),onCancel:d.onCancel,onTab:x=>d.onTab(x?-1:1)})),Tr(h,A);if(f==="date"&&d.t)return h.appendChild(Ft({value:p,format:d.dateFormat,invalid:!!A,testId:"dg-cell-editor",ariaLabel:d.ariaLabel,surfaceClass:d.surfaceClass,onPortalOpen:d.onPortalOpen,t:d.t,onChange:d.onChange,onCommit:()=>d.onCommit("none"),onCancel:d.onCancel,onTab:x=>d.onTab(x?-1:1)})),Tr(h,A);let N=document.createElement("input");N.className=`kanuni-datagrid-editor${A?" kanuni-datagrid-editor--invalid":""}`,N.setAttribute("data-testid","dg-cell-editor"),N.setAttribute("aria-invalid",String(!!A)),A&&N.setAttribute("aria-errormessage","kanuni-datagrid-editor-error");let S=false;if(f==="boolean"?(N.type="checkbox",N.checked=p===true,N.addEventListener("change",()=>d.onChange(N.checked))):f==="number"?(N.type=Number.isNaN(Number(p))&&p!==null&&p!==void 0&&p!==""?"text":"number",N.value=xr(p,f),N.addEventListener("input",()=>d.onChange(N.value===""?null:Number(N.value)))):(N.type="text",N.value=xr(p,f),N.addEventListener("input",()=>d.onChange(N.value))),N.addEventListener("keydown",x=>{x.isComposing||x.keyCode===229||(x.key==="Enter"?(x.preventDefault(),x.stopPropagation(),d.onCommit(x.shiftKey?"none":"down")):x.key==="Tab"?(x.preventDefault(),x.stopPropagation(),S=true,d.onTab(x.shiftKey?-1:1)):x.key==="Escape"?(x.preventDefault(),x.stopPropagation(),d.onCancel()):x.stopPropagation());}),N.addEventListener("blur",()=>{S||d.onCommit("none");}),h.appendChild(N),A){let x=document.createElement("span");x.id="kanuni-datagrid-editor-error",x.setAttribute("role","alert"),x.className="kanuni-datagrid-editor-error",x.textContent=A,h.appendChild(x);}return queueMicrotask(()=>{if(N.isConnected&&(N.focus({preventScroll:true}),N.type!=="checkbox"))if(k){if(N.type==="text"||N.type==="search"){let x=N.value.length;N.setSelectionRange(x,x);}}else N.select();}),h}var tl=0;function Oo(d){return new Promise(p=>{let f=document.createElement("div");f.className=`kanuni-datagrid-detached kanuni-datagrid-dialog-root${d.surfaceClass?` ${d.surfaceClass}`:""}`,f.setAttribute("role","presentation");let A=document.activeElement,k=j=>{document.removeEventListener("keydown",h,true);let Y=f.contains(document.activeElement);f.remove(),Y&&A?.isConnected&&A.focus({preventScroll:true}),p(j);},h=j=>{if(j.key==="Escape"){j.stopPropagation(),k(false);return}if(j.key==="Tab"){let Y=Array.from(I.querySelectorAll("button:not([disabled])"));if(Y.length===0)return;let ue=Y.indexOf(document.activeElement),ne=j.shiftKey?ue<=0?Y.length-1:ue-1:ue===Y.length-1?0:ue+1;j.preventDefault(),j.stopPropagation(),Y[ne].focus();}};document.addEventListener("keydown",h,true);let N=document.createElement("div");N.className="kanuni-datagrid-dialog-overlay",N.addEventListener("mousedown",()=>k(false));let S=document.createElement("div");S.className="kanuni-datagrid-dialog",S.setAttribute("role","alertdialog"),S.setAttribute("aria-modal","true");let x=`dg-dialog-${++tl}`;S.setAttribute("aria-labelledby",`${x}-title`),S.setAttribute("aria-describedby",`${x}-message`),S.setAttribute("data-testid","dg-dialog");let te=document.createElement("div");te.className="kanuni-datagrid-dialog-title",te.id=`${x}-title`,te.textContent=d.title;let U=document.createElement("div");U.className="kanuni-datagrid-dialog-message",U.id=`${x}-message`,U.textContent=d.message;let I=document.createElement("div");if(I.className="kanuni-datagrid-dialog-actions",d.cancelLabel!==void 0){let j=document.createElement("button");j.type="button",j.setAttribute("data-testid","dg-dialog-cancel"),j.textContent=d.cancelLabel,j.addEventListener("click",()=>k(false)),I.appendChild(j);}let B=document.createElement("button");B.type="button",B.className=`kanuni-datagrid-dialog-primary${d.danger?" kanuni-datagrid-dialog-primary--danger":""}`,B.setAttribute("data-testid","dg-dialog-confirm"),B.textContent=d.confirmLabel,B.addEventListener("click",()=>k(true)),I.appendChild(B),S.append(te,U,I),f.append(N,S),document.body.appendChild(f),B.focus();})}function nl(d,p){switch(d){case "number":return p==null||p===""||!Number.isNaN(Number(p))?"number":"text";case "boolean":return "checkbox";default:return "text"}}function ol(d,p){if(p==="number"){if(d==="")return null;let f=Number(d);return Number.isNaN(f)?d:f}return d}function Bo(d){let{t:p,popup:f=false,inline:A=false}=d,k=document.createElement("div");k.className=`kanuni-datagrid-edit-form${A?" kanuni-datagrid-edit-form--inline":""}`,k.setAttribute("data-testid","dg-edit-form"),k.setAttribute("data-row-key",String(d.rowKey)),f&&k.setAttribute("data-popup",""),k.setAttribute("role",f?"dialog":"group"),f&&k.setAttribute("aria-modal","true"),k.setAttribute("aria-label",d.isNew?p.formAddTitle:p.formEditTitle);let h=document.createElement("div");h.className="kanuni-datagrid-edit-form-header";let N=document.createElement("strong");N.textContent=d.isNew?p.formAddTitle:p.formEditTitle,h.appendChild(N);let S=document.createElement("div");S.className="kanuni-datagrid-edit-form-error",S.setAttribute("role","alert"),S.setAttribute("data-testid","dg-form-error"),S.style.display="none";let x=document.createElement("div");x.className="kanuni-datagrid-edit-form-fields";let te=new Map,U=(R,P)=>{let X=d.getValue(R.columnId),re=d.getSaving()||!R.editable,J=`dg-field-${String(d.rowKey)}-${R.columnId}`;if(R.lookup&&!d.renderLookup){let Z=document.createElement("input");Z.id=J,Z.type="text",Z.className="kanuni-datagrid-edit-form-input",Z.setAttribute("data-testid",J),Z.disabled=true,Z.readOnly=true;let Q=R.lookup.options?.find(K=>Object.is(K.value,X));return Z.value=Q?Q.label:X==null?"":String(X),Z}if(R.lookup&&d.renderLookup){let Z=document.createElement("div");if(Z.className="kanuni-datagrid-edit-form-lookup",R.lookup.options===null){let Q=document.createElement("input");return Q.type="text",Q.value="\u2026",Q.readOnly=true,Q.disabled=true,Q.className="kanuni-datagrid-editor",Q.setAttribute("data-testid",J),Z.appendChild(Q),Z}return Z.appendChild(d.renderLookup({options:R.lookup.options,value:X,matchMode:R.lookup.matchMode,allowCustom:R.lookup.allowCustom,invalid:!!P,autoFocus:false,testId:J,columnId:R.columnId,ariaLabel:R.label,surfaceClass:d.surfaceClass,onPortalOpen:d.onPortalOpen,noMatchText:p.editNoMatch,onChange:Q=>d.onChange(R.columnId,Q),commitOnPick:false,onCommit:()=>d.onSave(),onCancel:d.onCancel})),Z}if(R.dataType==="date"){let Z=document.createElement("div");return Z.className="kanuni-datagrid-edit-form-lookup",Z.appendChild(Ft({value:X,format:R.dateFormat,invalid:!!P,disabled:re,autoFocus:false,testId:J,columnId:R.columnId,ariaLabel:R.label,surfaceClass:d.surfaceClass,onPortalOpen:d.onPortalOpen,t:p,onChange:Q=>d.onChange(R.columnId,Q),onCommit:()=>d.onSave(),onCancel:d.onCancel})),Z}let W=document.createElement("input");return W.id=J,W.className="kanuni-datagrid-edit-form-input",W.setAttribute("data-testid",J),W.disabled=re,R.dataType==="boolean"?(W.type="checkbox",W.checked=X===true,W.addEventListener("change",()=>d.onChange(R.columnId,W.checked)),W):(W.type=nl(R.dataType,X),P&&W.setAttribute("aria-invalid","true"),W.value=X==null?"":String(X),W.addEventListener("input",()=>d.onChange(R.columnId,ol(W.value,R.dataType))),W)},I=d.getErrors();for(let R of d.fields){let P=document.createElement("label");P.className="kanuni-datagrid-edit-form-field",P.setAttribute("data-field-id",R.columnId);let X=document.createElement("span");X.className="kanuni-datagrid-edit-form-label",X.textContent=R.label;let re=document.createElement("span");re.style.display="contents",re.appendChild(U(R,I[R.columnId]??null));let J=document.createElement("span");J.className="kanuni-datagrid-edit-form-message",J.setAttribute("role","alert"),J.style.display="none",P.append(X,re,J),x.appendChild(P),te.set(R.columnId,{wrap:P,message:J,controlHost:re,field:R});}let B=document.createElement("div");B.className="kanuni-datagrid-edit-form-footer";let j=typeof navigator<"u"&&/Mac|iP(hone|ad)/.test(navigator.platform??""),Y=document.createElement("span");Y.className="kanuni-datagrid-edit-form-hint",Y.textContent=p.formShortcut.replace("{key}",j?"\u2318":"Ctrl");let ue=document.createElement("button");ue.type="button",ue.setAttribute("data-testid","dg-form-cancel"),ue.textContent=p.cancel,ue.addEventListener("click",()=>d.onCancel());let ne=document.createElement("button");ne.type="button",ne.className="kanuni-datagrid-edit-form-save",ne.setAttribute("data-testid","dg-form-save"),ne.textContent=p.save,ne.addEventListener("click",()=>d.onSave()),B.append(Y,ue,ne),k.append(h,S,x,B),k.addEventListener("keydown",R=>{if(R.key==="Escape"){R.preventDefault(),R.stopPropagation(),d.onCancel();return}if(R.key==="Enter"&&(R.ctrlKey||R.metaKey)){R.preventDefault(),R.stopPropagation(),d.onSave();return}if(R.key==="Enter"&&!(R.target instanceof HTMLButtonElement)){R.preventDefault();return}if(R.key!=="Tab"||!f)return;let P=Array.from(k.querySelectorAll("input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled])"));if(P.length===0)return;let X=P[0],re=P[P.length-1];!R.shiftKey&&document.activeElement===re?(R.preventDefault(),X.focus()):R.shiftKey&&document.activeElement===X&&(R.preventDefault(),re.focus());});let ve=()=>{let R=d.getErrors(),P=d.getSaving(),X=d.getSaveError();S.textContent=X??"",S.style.display=X?"":"none",ne.disabled=P,ue.disabled=P,ne.textContent=P?p.editSaving:p.save;for(let[J,W]of te){let Z=R[J]??null;W.message.textContent=Z??"",W.message.style.display=Z?"":"none",Z?W.wrap.setAttribute("data-invalid",""):W.wrap.removeAttribute("data-invalid");let Q=W.controlHost.querySelector("input, .kanuni-datagrid-editor");Q&&Q.classList.toggle("kanuni-datagrid-editor--invalid",!!Z);}let re=Object.keys(R)[0];re&&te.get(re)?.wrap.querySelector("input:not([disabled])")?.focus();};return queueMicrotask(()=>{if(!k.isConnected)return;let R=k.querySelector("input:not([disabled]), select:not([disabled]), textarea:not([disabled])");R?.focus(),R instanceof HTMLInputElement&&R.type==="text"&&R.select(),d.onNaturalHeight&&d.onNaturalHeight(k.clientHeight-x.clientHeight+x.scrollHeight);}),{element:k,refresh:ve,setLookupOptions:(R,P)=>{let X=te.get(R);if(!X)return;X.field.lookup={...X.field.lookup,options:P};let re=d.getErrors();X.controlHost.textContent="",X.controlHost.appendChild(U(X.field,re[R]??null));},dispose:()=>k.remove()}}function Lr(d){let{grid:p,engine:f,mode:A,t:k,extension:h}=d,N=p.controller,S=datagridCore.isRowEditMode(A),x=null,te=async()=>{x=null;let C=await f.saveChanges();if(C.saved||C.superseded){V();return}x={message:C.error??k.editSaveFailed,rowKey:C.rowKey,columnId:C.columnId},V(),C.rowKey!==void 0&&C.columnId!==void 0&&(N.revealRow(C.rowKey),N.focusCell(C.rowKey,C.columnId));},U=()=>{x=null,f.cancelChanges();},I=null,B=null,j=null,Y=null,ue=null,ne=new Map,ve=0,R=C=>(I=null,f.beginRowEdit(C)),P=null,X=(C,F,ee)=>!S||f.isEditingRow()||!f.canEditRow(C)||(N.scrollToCell(C,F),!R(C))?false:(A==="row"&&ee!==void 0&&(P=F,f.setRowEditValue(F,ee)),true),re=async()=>{if(!f.getRowSession())return false;let F=await f.saveRowEdit(N.getVisualColumnIds());return I=F.saved?null:F.error??null,F.saved?d.focusGrid():le(),F.saved},J=()=>{I=null,f.cancelRowEdit(),d.focusGrid();},W=C=>{let F=N.getColumnLayout(),ee=N.getColumnModel(),Ee=++ve;return [...F.left,...F.center,...F.right].filter(we=>!datagridCore.isChromeColumn(we.state.id)).map(we=>{let me=we.state.id,Le=ee.getDef(me),dt=h.formLookup?h.formLookup(C,me,Fe=>{ve===Ee&&j?.setLookupOptions(me,Fe);}):Le?.lookup?{options:datagridCore.staticLookupItems(Le)??[]}:void 0;return {columnId:me,label:Le?.headerName??Le?.field??me,dataType:ee.getEditorDataType(me),editable:f.canUpdate(C,me),dateFormat:Le?.dateFormat,lookup:dt}})},Z=()=>ue??d.formHeight??datagridCore.DEFAULT_EDIT_FORM_HEIGHT,Q=(C,F)=>Bo({rowKey:C,fields:W(C),getValue:ee=>f.rowEditValue(ee),getErrors:()=>f.getRowSession()?.errors??{},getSaving:()=>f.getRowSession()?.saving??false,getSaveError:()=>I,isNew:f.getRowSession()?.isNew??false,popup:!F,inline:F,surfaceClass:d.surfaceClass(),renderLookup:h.renderLookup,onPortalOpen:d.trackPortal,t:k,onNaturalHeight:F?ee=>{let Ee=Math.ceil(ee);if(Ee>0&&Ee!==ue){ue=Ee;let we=f.getRowSession();we&&A==="form"&&N.setEditFormRow(we.rowKey,{height:Z(),atTop:we.isNew});}}:void 0,onChange:(ee,Ee)=>f.setRowEditValue(ee,Ee),onSave:()=>{re();},onCancel:J}),K=()=>{ne.clear(),j?.dispose(),j=null,Y?.remove(),Y=null;};function he(){if(!S)return;let C=f.getRowSession();if(C&&A!=="row"?p.element.setAttribute("data-row-session",A):p.element.removeAttribute("data-row-session"),!C){B!==null&&(B=null,ue=null,K(),A==="form"&&N.setEditFormRow(null));return}if(B===C.rowKey){j?.refresh();return}if(K(),B=C.rowKey,A==="form"){N.setEditFormRow(C.rowKey,{height:Z(),atTop:C.isNew}),N.revealRow(C.rowKey);return}if(A==="popup"){let F=d.surfaceClass();Y=document.createElement("div"),Y.className=`kanuni-datagrid-detached kanuni-datagrid-edit-popup${F?` ${F}`:""}`;let ee=document.createElement("div");ee.className="kanuni-datagrid-edit-popup-overlay",ee.addEventListener("mousedown",()=>J()),j=Q(C.rowKey,false),Y.append(ee,j.element),document.body.appendChild(Y);return}N.revealRow(C.rowKey),queueMicrotask(()=>{let F=f.getRowSession();if(!F||F.rowKey!==B)return;let ee=p.element.querySelectorAll('[data-testid="dg-row-editor"]');if(ee.length===0)return;let Ee=N.getFocus(),me=(Ee&&String(Ee.rowKey)===String(F.rowKey)?p.element.querySelector(`[data-testid="dg-row-editor"][data-column-id="${CSS.escape(Ee.columnId)}"]`):null)??ee[0],Le=P!==null&&me.getAttribute("data-column-id")===P;P=null,me.focus({preventScroll:true}),me instanceof HTMLInputElement&&(Le?me.setSelectionRange(me.value.length,me.value.length):me.select());});}let xe=C=>{let F=ne.get(C);if(F)return F;let ee=N.getColumnModel(),Ee=ee.getDef(C),we=ee.getEditorDataType(C),me=f.rowEditValue(C),Le=f.getRowSession()?.errors[C]??null,dt=Ee?.headerName??C,Fe,st=h.resolveLookup?.(B,C);if(st&&st.options!==void 0&&h.renderLookup)Fe=h.renderLookup({options:st.options??[],value:me,matchMode:st.matchMode,allowCustom:st.allowCustom,invalid:!!Le,autoFocus:false,testId:"dg-row-editor",columnId:C,ariaLabel:dt,surfaceClass:d.surfaceClass(),noMatchText:k.editNoMatch,onChange:ye=>f.setRowEditValue(C,ye),commitOnPick:false,onCommit:()=>{re();},onCancel:J});else if(we==="date")Fe=Ft({value:me,format:Ee?.dateFormat,invalid:!!Le,autoFocus:false,testId:"dg-row-editor",columnId:C,ariaLabel:dt,surfaceClass:d.surfaceClass(),onPortalOpen:d.trackPortal,t:k,onChange:ye=>f.setRowEditValue(C,ye),onCommit:()=>{re();},onCancel:J});else {let ye=document.createElement("input");ye.className=`kanuni-datagrid-editor${Le?" kanuni-datagrid-editor--invalid":""}`,ye.setAttribute("data-testid","dg-row-editor"),ye.setAttribute("data-column-id",C),ye.setAttribute("aria-label",dt),Le&&(ye.title=Le),we==="boolean"?(ye.type="checkbox",ye.checked=me===true,ye.addEventListener("change",()=>f.setRowEditValue(C,ye.checked))):(ye.type=we==="number"?"number":"text",ye.value=me==null?"":String(me),ye.addEventListener("input",()=>{let Ke=ye.value;f.setRowEditValue(C,we==="number"?Ke===""?null:Number(Ke):Ke);})),ye.addEventListener("keydown",Ke=>{Ke.key==="Enter"?(Ke.preventDefault(),Ke.stopPropagation(),re()):Ke.key==="Escape"?(Ke.preventDefault(),Ke.stopPropagation(),J()):Ke.stopPropagation();}),Fe=ye;}return ne.set(C,Fe),Fe},de=document.createElement("div");de.className="kanuni-datagrid-filter-bar kanuni-datagrid-edit-bar",de.setAttribute("data-testid","dg-edit-bar"),h.decorateBar?.(de);let g=(C,F,ee,Ee)=>{let we=document.createElement("button");return we.type="button",ee&&(we.className="kanuni-datagrid-filter-primary"),we.setAttribute("data-testid",C),we.textContent=F,we.addEventListener("click",Ee),we},M=C=>{let F=document.createElement("span");return F.className="kanuni-datagrid-edit-form-error",F.setAttribute("data-testid",C),F.style.display="none",F},T=null,fe=null,ce=null,z=null,ie=null,be=null,Ce=null;A==="batch"&&(T=g("dg-save-changes",k.editSaveChanges,true,()=>{te();}),fe=g("dg-discard-changes",k.editDiscardChanges,false,U),ce=M("dg-save-error"),de.append(T,fe,ce)),A==="row"&&(z=document.createElement("span"),z.setAttribute("data-testid","dg-row-editing"),z.className="kanuni-datagrid-filter-active",z.style.display="none",ie=g("dg-save-row",k.editSaveRow,true,()=>{re();}),ie.style.display="none",be=g("dg-cancel-row",k.cancel,false,J),be.style.display="none",Ce=M("dg-row-save-error"),de.append(z,ie,be,Ce)),de.childElementCount>0&&d.barHost?.appendChild(de);function V(){let C=f.hasChanges();if(T&&(T.style.display=C?"":"none",T.textContent=k.editSaveCount.replace("{n}",String(f.getChanges().length)),T.disabled=f.isSaving()),fe&&(fe.style.display=C?"":"none"),ce&&(ce.textContent=x?.message??"",ce.style.display=x?"":"none"),z&&ie&&be&&Ce){let F=f.getRowSession(),ee=F?"":"none";z.style.display=ee,ie.style.display=ee,be.style.display=ee,F&&(z.textContent=F.isNew?k.formAddTitle:k.editEditingRow.replace("{row}",String(F.rowKey)),ie.disabled=F.saving,ie.textContent=F.saving?k.editSaving:k.editSaveRow,be.disabled=F.saving),Ce.textContent=I??"",Ce.style.display=F&&I?"":"none";}de.style.display=Array.from(de.children).some(F=>F.style.display!=="none")?"":"none";}V();function le(){x=null,V(),he();}return {rowModeActive:S,beginRowEdit:R,openRowFromKeys:X,saveRowEdit:re,cancelRowEdit:J,saveChanges:te,cancelChanges:U,renderRowCell:C=>{if(!(A!=="row"||C.node.kind!=="data"||datagridCore.isChromeColumn(C.columnId))&&f.isEditingRow(C.node.key))return f.canUpdate(C.node.key,C.columnId)?xe(C.columnId):d.defaultContent(C,f.rowEditValue(C.columnId))},renderEditForm:C=>{if(A!=="form")return;let F=f.getRowSession();if(!(!F||F.rowKey!==C))return (!j||j.element.getAttribute("data-row-key")!==String(C))&&(j?.dispose(),j=Q(C,true)),j.element},onCellDoubleClick:C=>S?(C.node.kind==="data"&&!f.isEditingRow()&&f.canEditRow(C.node.key)&&R(C.node.key),true):false,handleRowKeys:C=>!f.isEditingRow()||C.target?.closest?.('[data-testid="dg-edit-form"]')?false:C.key==="Enter"?(C.preventDefault(),re(),true):C.key==="Escape"?(C.preventDefault(),J(),true):false,sync:le,dispose:()=>{K(),A==="form"&&B!==null&&N.setEditFormRow(null),B=null,p.element.removeAttribute("data-row-session"),de.remove();}}}function _o(d,p,f,A,k={}){let h=d.controller,N=p.mode??"cell";p.formLabels&&(f={...f,...p.formLabels});let S=k.isColumnEditable??(g=>h.getColumnModel().getDef(g)?.editable!==false),x=()=>{h.refreshCells(),W.sync(),k.onChange?.(),te.schedule("footer",()=>h.refreshSummaries());},te=datagridCore.createDebouncedCommit(150),U=g=>h.getRowByKey(g),I=new datagridCore.EditingEngine({mode:N,messages:f,onChange:x,onAutoSaveFailed:g=>ue(g),onCellValueChanged:g=>h.notifyCellValueChanged(g),onEditingStarted:g=>h.notifyEditingStarted(g),onEditingStopped:g=>h.notifyEditingStopped(g),onRowEditingStarted:g=>h.notifyRowEditingStarted(g),onRowEditingStopped:g=>h.notifyRowEditingStopped(g),editableColumns:g=>{let M=h.getColumnLayout();return [...M.left,...M.center,...M.right].map(T=>T.state.id).filter(T=>!datagridCore.isChromeColumn(T)&&I.canUpdate(g,T))},readValue:(g,M)=>{let T=U(g);return T?h.getColumnModel().getStoredValue(T,M):void 0},formatForEdit:(g,M,T)=>h.formatCellForEdit(M,T),parseFromEdit:(g,M,T)=>h.parseCellFromEdit(M,T,g),readRow:U,isColumnEditable:S,applyValue:(g,M,T)=>h.writeCellValue(g,M,T),storedValue:(g,M,T)=>h.valueAfterWrite(g,M,T),onSave:g=>p.onSave?.(g),...k.engine});h.setPendingValueReader({effectiveValue:(g,M,T)=>I.changes.effectiveValue(g,M,T),effectiveRow:(g,M)=>I.changes.applyPendingTo(g,M),hasPending:()=>I.changes.hasChanges()}),h.setEditingDelegate({startEditingCell:(g,M)=>(h.scrollToCell(g,M),I.beginEdit(g,M)),stopEditing:async g=>{if(I.isEditingRow())return g?(W.cancelRowEdit(),true):W.saveRowEdit();if(!I.getSession())return false;if(g)return I.cancelEdit(),Y(),true;let M=I.commitEdit();return M&&Y(),M},getEditingCells:()=>{let g=I.getRowSession();if(g)return h.getVisualColumnIds().filter(T=>!datagridCore.isChromeColumn(T)&&I.canUpdate(g.rowKey,T)).map(T=>({rowKey:g.rowKey,columnId:T}));let M=I.getSession();return M?[{rowKey:M.rowKey,columnId:M.columnId}]:[]}});let B=false,j=[h.events.on("rowsChanged",g=>{B=g.removed===0;}),h.events.on("dataUpdated",()=>{let g=B;B=false,!g&&I.retainKeys(new Set(h.getDataRows().map(M=>M.key)));})];function Y(){let g=d.element.querySelector(".kanuni-datagrid-scroller");(g&&g.tabIndex>=0?g:d.element).focus({preventScroll:true});}function ue(g){let M=g.columnId!==void 0?h.getColumnModel().getDef(g.columnId)?.headerName??g.columnId:null,T=g.error??f.editSaveFailed;Oo({title:f.editCannotSave,message:M?`${M}: ${T}`:T,confirmLabel:f.ok,surfaceClass:A.surfaceClass()}),g.rowKey!==void 0&&g.columnId!==void 0&&(h.revealRow(g.rowKey),h.focusCell(g.rowKey,g.columnId));}let ne=(g,M={})=>{let T=I.getSession(),fe=T?{rowKey:T.rowKey,columnId:T.columnId}:h.getFocus();if(!fe||!I.commitEdit())return false;let ce=h.getColumnModel().runtime().filter(V=>V.state.visible).map(V=>V.state.id);if(datagridCore.edgeEditableColumn(ce,S,1)===null)return false;let z=h.getRows(),ie=z.findIndex(V=>V.key===fe.rowKey);if(ie<0)return false;let be=datagridCore.nextEditableColumn(ce,S,fe.columnId,g);if(be===null){if(M.cycle===false)return false;let V=g;do ie+=V;while(ie>=0&&ie<z.length&&z[ie]?.kind!=="data");if(ie<0||ie>=z.length)return false;be=datagridCore.edgeEditableColumn(ce,S,g);}let Ce=z[ie];return !Ce||Ce.kind!=="data"?false:(h.focusCell(Ce.key,be),h.scrollToCell(Ce.key,be),M.open===true?I.beginEdit(Ce.key,be):(Y(),true))},ve=g=>{if(I.getSession())return false;let M=h.getFocus();if(!M||!S(M.columnId))return false;let T=h.getColumnModel().getEditorDataType(M.columnId);if(T==="boolean"||T==="date")return false;let fe=T==="number"?Number.isNaN(Number(g))?null:Number(g):g;return fe===null?false:W.rowModeActive?W.openRowFromKeys(M.rowKey,M.columnId,fe):(h.scrollToCell(M.rowKey,M.columnId),I.beginEdit(M.rowKey,M.columnId,fe))},R=null,P=new Set,X=g=>{let M=()=>{P.delete(M),g();};P.add(M);},re=()=>{for(let g of [...P])g();P.clear();},J=(g,M)=>{let T=h.getColumnModel().getDef(g.columnId),fe=g.node.data;if(T?.renderCell)return T.renderCell({value:M,row:fe,node:g.node,column:T});let ce=datagridCore.lookupLabel(T,M);if(ce!==null)return ce;if(T?.valueFormatter){let z=T.valueFormatter(M,fe);return typeof z=="string"?z:String(z??"")}return T?.dateFormat&&T.dataType==="date"?datagridCore.formatDateValue(M,T.dateFormat):M==null?"":String(M)},W=Lr({grid:d,engine:I,mode:N,t:f,formHeight:p.formHeight,surfaceClass:()=>A.surfaceClass(),barHost:A.barHost,focusGrid:Y,trackPortal:X,defaultContent:J,extension:k}),Z=g=>{if(g.node.kind!=="data")return;let M=W.renderRowCell(g);if(M!==void 0)return M;if(!I.isEditing(g.node.key,g.columnId)){R&&R.rowKey===g.node.key&&R.columnId===g.columnId&&(R=null);let V=I.getMode()==="cell"?void 0:I.changes.get(g.node.key,g.columnId),le=k.cellAdornment?.(g)??null;if(!V&&!le)return;let C=V?V.newValue:g.value,F=document.createElement("span");F.style.display="contents";let ee=J(g,C);return typeof ee=="string"?F.appendChild(document.createTextNode(ee)):F.appendChild(ee),le&&F.appendChild(le),F}let T=I.getSession();if(R&&R.rowKey===T.rowKey&&R.columnId===g.columnId)return R.setError(T.validation.message),R.container;let fe=h.getColumnModel().getDef(g.columnId),ce=k.resolveLookup?.(T.rowKey,g.columnId)??{options:void 0},z=document.createElement("span");z.style.display="contents";let ie=k.customEditors?fe?.renderEditor:void 0;if(ie){let V=new Set,le=ie({value:I.getSession()?.value??T.value,row:I.effectiveRow(T.rowKey),columnId:g.columnId,error:T.validation.message,onErrorChange:C=>(V.add(C),()=>V.delete(C)),setValue:C=>I.setEditValue(C),commit:()=>{I.commitEdit()&&Y();},cancel:()=>{I.cancelEdit(),Y();}});return z.appendChild(le),R={rowKey:T.rowKey,columnId:g.columnId,container:z,setError:C=>{for(let F of V)F(C);}},z}let be=V=>{z.textContent="",z.appendChild($o({value:I.getSession()?.value??T.value,dataType:h.getColumnModel().getEditorDataType(g.columnId),error:V,seeded:T.seeded,onPortalOpen:X,options:ce.options,allowCustom:ce.allowCustom,matchMode:ce.matchMode,renderLookup:k.renderLookup,dateFormat:fe?.dateFormat,ariaLabel:fe?.headerName??g.columnId,surfaceClass:A.surfaceClass(),t:f,onChange:le=>I.setEditValue(le),onCommit:le=>{I.commitEdit()&&(le==="down"&&h.moveFocus("down"),Y());},onTab:le=>{if(p.focusCellOnTab===false){I.commitEdit();return}ne(le,{open:k.keepEditingOnTab===true,cycle:p.focusCellOnCycle!==false});},onCancel:()=>{I.cancelEdit(),Y();}}));};be(T.validation.message);let Ce=T.validation.message;if(R={rowKey:T.rowKey,columnId:g.columnId,container:z,setError:V=>{if(V===Ce)return;Ce=V,z.querySelector(".kanuni-datagrid-editor")?.classList.toggle("kanuni-datagrid-editor--invalid",!!V);let C=z.querySelector(".kanuni-datagrid-editor-error");V&&!C&&(C=document.createElement("span"),C.id="kanuni-datagrid-editor-error",C.setAttribute("role","alert"),C.className="kanuni-datagrid-editor-error",z.appendChild(C)),C&&(C.textContent=V??"",V||C.remove());}},ce.options===null&&k.resolveLookup){let V=k.resolveLookup,le=()=>{let F=V(T.rowKey,g.columnId);F.options!==null&&R&&R.rowKey===T.rowKey&&R.columnId===g.columnId&&I.isEditing(T.rowKey,g.columnId)&&(ce.options=F.options,be(I.getSession()?.validation.message??null));},C=h.events.on("cellsRefreshed",()=>{le(),V(T.rowKey,g.columnId).options!==null&&C();});}return z},Q=g=>{if(g.node.kind!=="data")return;let M=[];return I.isEditing(g.node.key,g.columnId)&&M.push("kanuni-datagrid-cell--editing"),I.changes.isDirty(g.node.key,g.columnId)&&M.push("kanuni-datagrid-cell--dirty"),I.isRemoved(g.node.key)&&M.push("kanuni-datagrid-cell--removed"),M.length?M.join(" "):void 0},K=g=>{g.node.kind==="data"&&(W.onCellDoubleClick(g)||I.canUpdate(g.node.key,g.columnId)&&(h.scrollToCell(g.node.key,g.columnId),I.beginEdit(g.node.key,g.columnId)));},he=g=>{let M=g.target;return M?.closest?.('[data-testid="dg-edit-form"], [data-testid="dg-row-message"]')?true:(g.key==="Tab"||g.key==="Enter"||g.key===" ")&&!!M?.closest?.('[data-testid="dg-edit-bar"]')},xe=g=>he(g)?false:W.handleRowKeys(g)?true:g.key==="Escape"&&I.getSession()?(g.preventDefault(),I.cancelEdit(),true):g.key==="Tab"&&p.focusCellOnTab!==false&&!I.getSession()&&h.getFocus()&&ne(g.shiftKey?-1:1,{open:k.keepEditingOnTab===true,cycle:p.focusCellOnCycle!==false})?(g.preventDefault(),true):false,de=g=>{if(he(g))return false;let M=g.ctrlKey||g.metaKey;if(g.key==="F2"){let T=h.getFocus();if(T)return g.preventDefault(),W.rowModeActive?(W.openRowFromKeys(T.rowKey,T.columnId),true):(h.scrollToCell(T.rowKey,T.columnId),I.beginEdit(T.rowKey,T.columnId),true)}return p.editOnKeyPress!==false&&!M&&!g.altKey&&g.key.length===1&&g.key!==" "&&!I.getSession()&&ve(g.key)?(g.preventDefault(),true):false};return {engine:I,renderCellContent:Z,getCellClassName:Q,onCellDoubleClick:K,handleKeyDown:g=>xe(g)||de(g),handleSessionKeys:xe,handleOpenKeys:de,editAdjacentCell:ne,focusGrid:Y,trackPortal:X,defaultContent:J,renderEditForm:W.renderEditForm,beginRowEdit:W.beginRowEdit,saveRowEdit:W.saveRowEdit,cancelRowEdit:W.cancelRowEdit,saveChanges:W.saveChanges,cancelChanges:W.cancelChanges,dispose:()=>{re(),W.dispose(),I.dispose(),te.cancelAll(),j.forEach(g=>g()),h.setPendingValueReader(null),h.setEditingDelegate(null);}}}function Mr(d,p){return !d||datagridCore.isChromeColumn(p)?false:d.editable!==false&&d.lookup==null&&d.renderEditor==null&&d.allowFormulas!==true}var Dr=["rules","crud","allowAdding","allowUpdating","allowDeleting","onInitNewRow","onRowInserted","onRowUpdated","onRowRemoved","insertKey","appendOnArrowDown","newRowPosition","keepEditingOnTab","commandColumn","commandLabels","confirmDelete","confirmDeleteMessage","range"];var un=60,Yo=24,qn=36,cn=28,Un="application/x-kanuni-row",sn=new Map,jo=new Set,Pr=5e3,Kt=0,Jl=["columnStateChanged","sortChanged"],Ql=["columnStateChanged"],Zl=["contentReady","viewportChanged","filterChanged","selectionChanged","focusChanged","summariesChanged","cellsRefreshed","findChanged"],w=(d,p="div")=>{let f=document.createElement(p);return f.className=d,f},pn="http://www.w3.org/2000/svg";function ed(d,p){let f=k=>{p&&console.warn(`[datagrid] ${k} is an Enterprise feature \u2014 use createEnterpriseGrid from @kanunilabs/datagrid-enterprise to use it.`);};if(d.viewportDatasource)throw new Error("[datagrid] viewportDatasource is an Enterprise feature \u2014 use createEnterpriseGrid from @kanunilabs/datagrid-enterprise to use it.");let A={...d};if(A.dataSource!=null&&!Array.isArray(A.dataSource)&&A.grouping&&(f("grouping a server-side DataSource is"),delete A.grouping),A.columns?.some(k=>k.spanRows)&&(f("cell span/merge (spanRows) is"),A={...A,columns:A.columns.map(k=>k.spanRows?{...k,spanRows:void 0}:k)}),A.tree&&(f("tree data is"),delete A.tree),A.masterDetail&&(f("master-detail is"),delete A.masterDetail),A.grouping){let{groupBy:k,groupSummaries:h}=A.grouping,N=k==null?[]:typeof k=="string"?[k]:k;(N.length>1||h)&&(f("multi-level grouping and group summaries are"),A={...A,grouping:{...A.grouping,groupBy:N.slice(0,1),groupSummaries:false}});}return A}var td={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:""},zn=new Set;function nd(d){for(let p of Object.keys(d)){let f=td[p];f===void 0||f===""||zn.has(p)||(zn.add(p),console.warn(`[datagrid] \`${p}\` is a React-only option \u2014 ${f}.`));}}function od(){let d=document.createElementNS("http://www.w3.org/2000/svg","svg");d.setAttribute("width","14"),d.setAttribute("height","14"),d.setAttribute("viewBox","0 0 16 16"),d.setAttribute("aria-hidden","true"),d.setAttribute("focusable","false");let p=document.createElementNS("http://www.w3.org/2000/svg","path");return p.setAttribute("d","M8 1v8m0 0L5 6m3 3 3-3M2 11v2a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-2"),p.setAttribute("fill","none"),p.setAttribute("stroke","currentColor"),p.setAttribute("stroke-width","1.5"),p.setAttribute("stroke-linecap","round"),p.setAttribute("stroke-linejoin","round"),d.appendChild(p),d}function ad(){let d=document.createElementNS(pn,"svg");d.setAttribute("width","11"),d.setAttribute("height","11"),d.setAttribute("viewBox","0 0 16 16"),d.setAttribute("aria-hidden","true"),d.setAttribute("focusable","false");let p=document.createElementNS(pn,"path");return p.setAttribute("d","M1.5 2.5h13L9.5 8.6v4.3l-3 1.6V8.6L1.5 2.5Z"),p.setAttribute("fill","currentColor"),p.setAttribute("stroke","currentColor"),p.setAttribute("stroke-width","0.6"),p.setAttribute("stroke-linejoin","round"),d.appendChild(p),d}function rd(d){let p=document.createElementNS(pn,"svg");p.setAttribute("width","14"),p.setAttribute("height","14"),p.setAttribute("viewBox","0 0 16 16"),p.setAttribute("aria-hidden","true"),p.setAttribute("focusable","false");let f=document.createElementNS(pn,"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"),p.appendChild(f);let A=k=>{let h=document.createElementNS(pn,"path");h.setAttribute("d",k),h.setAttribute("fill","none"),h.setAttribute("stroke","currentColor"),h.setAttribute("stroke-width","1.3"),h.setAttribute("stroke-linecap","round"),p.appendChild(h);};return A("M5 8h6"),d&&A("M8 5v6"),p}function Kr(d,p){let f=d??(p==="number"||p==="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 Wn(d){let p="kanuni-datagrid-root";return d.dark&&(p+=" kanuni-datagrid-dark"),d.theme&&(p+=` kanuni-datagrid-theme-${d.theme}`),d.palette&&(p+=` kanuni-datagrid-palette-${d.palette}`),d.density&&(p+=` kanuni-datagrid-density-${d.density}`),p}function id(d,p){let{theme:f,palette:A,density:k,dark:h,striped:N=true,rowNumbers:S=false,locale:x="en",footer:te=false,footerMenu:U=true,footerPosition:I="bottom",notes:B,pinnedTopRows:j=[],pinnedBottomRows:Y=[],resizable:ue=true,reorderable:ne=true,autoHeaderHeight:ve=false,filterRow:R=false,headerFilter:P=false,filterIconMode:X="hover",filterPanel:re=false,onOpenFilterBuilder:J,focusedRow:W=false,focusedRowKey:Z,onFocusedRowChanged:Q,onRowClick:K,onRowActivate:he,autoSizeStrategy:xe="none",renderRow:de,cardView:g,onCardViewChange:M,announcements:T=true,filterPanelLabels:fe,showRowCount:ce=false,toolbarColumnChooser:z=false,cellMenu:ie=true,rowMenu:be,headerMenu:Ce,rowDrag:V,alignedGrids:le,printLayout:C,renderCellContent:F,getCellClassName:ee,getRowStatusSource:Ee,rowStatus:we,onCellPointerDown:me,onCellPointerEnter:Le,onCellDoubleClick:dt,editing:Fe,onHeaderClick:st,getHeaderClassName:ye,renderHeaderLabel:Ke,renderDetail:Xo,renderEditForm:Jo,enterpriseEdition:ut=false,stateStoring:Qo,tooltip:Ue=true,renderOverlay:Yn,filterDebounce:Gr,toolbar:Zo=false,highlightSearch:$r=true,sortable:ea=true,toolbarItemsAfter:Or,toolbarItemsBefore:Br,toolbarExcel:Vr=false,toolbarPdf:_r=false,searchDebounce:Wr=200,...qr}=p;nd(p),ce&&!zn.has("showRowCount:deprecated")&&(zn.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 v=datagridCore.getGridDictionary(x),{emptyText:Ur=v.noData,loadingText:zr=v.busy,loadingOverlay:jn=true,...Ve}=qr,ta=typeof jn=="number"?jn:300,Xn=datagridCore.summaryTypeLabels(v),na=datagridCore.datePeriodLabels(v);if((!Ve.columns||Ve.columns.length===0)&&p.autoColumns!==false){let e=Array.isArray(Ve.dataSource)?Ve.dataSource:[];Ve.columns=datagridCore.inferColumns(e,typeof p.autoColumns=="object"?p.autoColumns:{});}Ve.rowHeight===void 0&&(Ve.rowHeight=datagridCore.presetRowHeight(f,k,28));let Yr=ut?Ve:ed(Ve,!!p.debugMode),Et=ut?B:void 0;!ut&&B&&p.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(Yr);a.setEnterpriseEdition(ut);let kt=Fe!=null&&typeof Fe=="object"&&Fe.enabled!==false,_e=null;if(kt&&p.debugMode)for(let e of Dr)Fe[e]!==void 0&&console.warn(`[datagrid] editing.${e} is an Enterprise feature \u2014 use createEnterpriseGrid from @kanunilabs/datagrid-enterprise to use it.`);let Ut=kt?e=>_e?.renderCellContent(e)??F?.(e):F,Jn=kt?e=>{let t=_e?.getCellClassName(e),o=ee?.(e);return t&&o?`${t} ${o}`:t??o}:ee,oa=kt?e=>{dt?.(e),_e?.onCellDoubleClick(e);}:dt,jr=kt?(e,t)=>_e?.renderEditForm(e,t)??Jo?.(e,t)??"":Jo,Xe=datagridCore.normalizeRowStatus(we);Z!=null&&a.focusRow(Z);let $=w(Wn(p));$.style.height="100%",$.setAttribute("role","grid"),$.setAttribute("aria-label",p.ariaLabel??p.gridId),$.setAttribute("data-grid-id",p.gridId),datagridCore.isRtlLocale(x)&&$.setAttribute("dir","rtl"),f&&$.setAttribute("data-theme",f),ve&&$.setAttribute("data-auto-header-height",""),$.style.setProperty("--dg-row-height",`${a.getRowHeight()}px`);let oe=w("kanuni-datagrid-scroller"),Ae=w("kanuni-datagrid-canvas"),ke=w("kanuni-datagrid-header");ke.setAttribute("role","row");let Ne=w("kanuni-datagrid-rows");Ne.style.position="relative";let se=w("kanuni-datagrid-viewport");Ne.appendChild(se);let ze=w("kanuni-datagrid-pinned-rows kanuni-datagrid-pinned-rows--top"),ct=w("kanuni-datagrid-pinned-rows kanuni-datagrid-pinned-rows--bottom"),Rt=()=>j.length+a.getPinnedRows("top").length,aa=()=>Y.length+a.getPinnedRows("bottom").length,Pe=w("kanuni-datagrid-sticky-groups");Pe.setAttribute("aria-hidden","true");let Ye=te,nt=I==="top",Ie=w(`kanuni-datagrid-footer-row kanuni-datagrid-footer-row--${nt?"top":"bottom"}`);if(Ie.setAttribute("role","row"),Ie.setAttribute("aria-label",v.columnTotalsAria),U){let e=t=>{let n=t.target?.closest(".kanuni-datagrid-footer-cell")?.getAttribute("data-column-id");!n||datagridCore.isChromeColumn(n)||(t.preventDefault(),Si(n,{left:t.clientX,top:t.clientY}));};Ie.addEventListener("click",e),Ie.addEventListener("contextmenu",e);}let gn=w("kanuni-datagrid-bands-host");gn.style.display="contents";let pt=w("kanuni-datagrid-filter-row");pt.setAttribute("role","row"),Ae.append(gn,ke),R&&Ae.append(pt);let xt=R?2:1,Qn=0,Zn=()=>Qn+xt+Rt();Ie.style.setProperty("--dg-pinned-gap",String(nt?xt:0)),ze.style.setProperty("--dg-pinned-gap",String(xt+(Ye&&nt?1:0))),Ye&&nt&&Ae.append(Ie),Rt()>0&&Ae.append(ze),a.hasStickyGroupHeaders()&&(Pe.style.setProperty("--dg-pinned-gap",String(xt+(Ye&&nt?1:0))),Pe.style.setProperty("--dg-sticky-below",`${Rt()>0?Rt()*a.getRowHeight()+1:0}px`),Ae.append(Pe)),Ae.append(Ne),aa()>0&&Ae.append(ct),Ye&&!nt&&Ae.append(Ie),oe.appendChild(Ae);let gt=w("kanuni-datagrid-toolbar"),je=w("kanuni-datagrid-pager");je.setAttribute("role","navigation"),je.setAttribute("aria-label",v.pagerAria);let Tt=w("kanuni-datagrid-filter-panel"),St=!!Ve.grouping?.panel,Ge=w("kanuni-datagrid-group-panel"),zt=datagridCore.resolveCardView(g),Yt=false,fn=[],ft=de,jt=w("kanuni-datagrid-cardbar");jt.hidden=true;let ra=w("kanuni-datagrid-cardbar-label","label"),ia=w("","span");ia.textContent=v.cardSortBy;let Je=w("kanuni-datagrid-cardbar-select","select"),Lt=w("kanuni-datagrid-cardbar-dir","button");Lt.type="button",ra.append(ia,Je),jt.append(ra,Lt),Je.addEventListener("change",()=>{let e=a.getSort()[0];a.setSort(Je.value?[{columnId:Je.value,direction:e?.direction??"asc"}]:[]);}),Lt.addEventListener("click",()=>{let e=a.getSort()[0];e&&a.setSort([{columnId:e.columnId,direction:e.direction==="desc"?"asc":"desc"}]);});let Xr=e=>{let[t,...o]=datagridCore.cardFields(a.getColumnModel(),fn,e.row),n=w("kanuni-datagrid-card");n.setAttribute("role","gridcell");let r=w("kanuni-datagrid-card-title");if(r.textContent=t?.text??"",n.appendChild(r),o.length){let l=w("kanuni-datagrid-card-fields","dl");for(let s of o){let i=w("kanuni-datagrid-card-field"),u=w("","dt");u.textContent=s.label;let c=w("","dd");c.textContent=s.text,i.append(u,c),l.appendChild(i);}n.appendChild(l);}return n},la=()=>{if(!Yt||!zt)return;let e=a.getColumnModel(),t=datagridCore.cardColumnIds(e,zt);t.join("\0")!==fn.join("\0")&&(fn=t,a.setDataRowHeight(datagridCore.cardHeight(t.length)));let o=ea?e.getOrder().filter(s=>e.getState(s)?.visible!==false&&e.getDef(s)?.sortable!==false):[];jt.hidden=o.length===0;let n=["",...o].join("\0");if(Je.dataset.ids!==n){Je.dataset.ids=n,Je.replaceChildren();let s=document.createElement("option");s.value="",s.textContent=v.none,Je.appendChild(s);for(let i of o){let u=document.createElement("option");u.value=i,u.textContent=e.getDef(i)?.headerName??i,Je.appendChild(u);}}let r=a.getSort()[0];Je.value=r?.columnId??"",Lt.hidden=!r;let l=r?.direction==="desc";Lt.textContent=l?"\u2193":"\u2191",Lt.setAttribute("aria-label",l?v.sortAsc:v.sortDesc),Lt.title=l?v.sortAsc:v.sortDesc;},da=false,Jr=e=>{let t=datagridCore.showsCards(e,zt);if(t!==Yt){for(Yt=t,$.classList.toggle("kanuni-datagrid-cards",t),ft=t?Xr:de,fn=[],t?la():(jt.hidden=true,a.setDataRowHeight(null));rt.length;)rt.pop().root.remove();Tn(),da?M?.(t):queueMicrotask(()=>M?.(t));}};Zo&&$.appendChild(gt),St&&$.appendChild(Ge),zt&&$.appendChild(jt),$.appendChild(oe),re&&$.appendChild(Tt);let mn=Ve.pagination;mn&&mn.enabled!==false&&$.appendChild(je);let Xt=w("kanuni-datagrid-loading-overlay"),sa=w("kanuni-datagrid-loading-card"),ua=w("kanuni-datagrid-loading-spinner","span");ua.setAttribute("aria-hidden","true");let ca=w("kanuni-datagrid-loading-label","span");ca.textContent=zr,sa.append(ua,ca),Xt.appendChild(sa),Xt.style.display="none";let Jt=w("kanuni-datagrid-sr-only","div");Jt.setAttribute("role","status"),Jt.setAttribute("aria-live","polite"),Jt.setAttribute("aria-atomic","true");let bn=w("kanuni-datagrid-empty");bn.textContent=Ur,bn.style.display="none",$.append(Xt,bn),T&&$.appendChild(Jt),d.appendChild($);let Qt=Ve.selection,eo=a.getGroupDisplay()!=="fullWidth",pa=a.getGroupDisplay()==="column",Pt=(Qt?.mode??"none")!=="none"&&(Qt?.checkboxColumn??false),Qr=(Qt?.rowClick??(Pt?"toggle":"replace"))==="toggle",Gt=a.hasMasterDetail()&&!!Xo,to=()=>(S?1:0)+(Gt?1:0)+(Pt?1:0),no=Xe?.icons===true,ga=no?Yo:0,oo=ga,ao=oo+(S?un:0),fa=ao+(Gt?cn:0),Qe=ga+(S?un:0)+(Gt?cn:0)+(Pt?qn:0);a.setLeadWidth(Qe);let Zt=!!V?.enabled,en=V?.group??null,ma=V?.allowReordering??true,ba=V?.allowDropInsert??en!==null,ot=null,wn=null,yn=false,At=null,mt=null;function $t(e){At=e;for(let t of se.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 wa=(e,t)=>{let o=t.getBoundingClientRect();return e.clientY<o.top+o.height/2?"before":"after"},ya=e=>e.dataTransfer?.types.includes(Un)?ot!==null?ma:ba&&en!==null:false;function ha(e,t,o){let n=null;try{let r=e.dataTransfer?.getData(Un);n=r?JSON.parse(r):null;}catch{n=null;}if(n){if(n.gridId===a.gridId){if(!ma)return;if(V?.onReorder){V.onReorder({dragKey:n.rowKey,targetKey:t,position:o,row:a.getRowByKey(n.rowKey)});return}a.moveRow(n.rowKey,t,o);return}!ba||en===null||n.group!==en||V?.onAdd?.({row:n.row,rowKey:n.rowKey,otherGridId:n.gridId,targetKey:t,position:o});}}let Zr=e=>{let t=wt(e);if(!t||t.node.kind!=="data"||!e.dataTransfer)return;ot=t.node.key,wn=t.node.key,yn=false;let o={gridId:a.gridId,group:en,rowKey:t.node.key,row:t.node.data};e.dataTransfer.setData(Un,JSON.stringify(o)),e.dataTransfer.setData("text/plain",String(t.node.key)),e.dataTransfer.effectAllowed="move",a.notifyRowDrag("enter",{rowKey:t.node.key});},ei=e=>{if(!ya(e))return;e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect="move");let t=wt(e);if(!t||t.node.kind!=="data")return;if(ot===t.node.key){mt=null,$t(null);return}let o=e.target.closest(".kanuni-datagrid-row"),n=wa(e,o),r=At?.key!==t.node.key||At.side!==n;mt={key:t.node.key,side:n},$t({key:t.node.key,side:n}),r&&ot!==null&&a.notifyRowDrag("move",{rowKey:ot,overKey:t.node.key,position:n});},ti=e=>{if(!ya(e)){$t(null);return}e.preventDefault();let t=wt(e);if(yn=true,t&&t.node.kind==="data"){let o=e.target.closest(".kanuni-datagrid-row"),n=wa(e,o);mt={key:t.node.key,side:n},ha(e,t.node.key,n);}else mt=null,ha(e,null,"after");ot=null,$t(null);},ni=()=>{wn!==null&&a.notifyRowDragEnd({rowKey:wn,dropped:yn,overKey:mt?.key??null,position:mt?.side??null}),yn=false,wn=null,ot=null,mt=null,$t(null);},oi=e=>{let t=e.relatedTarget;t&&Ne.contains(t)||ot!==null&&(mt=null,$t(null),a.notifyRowDrag("leave",{rowKey:ot}));},tn=C===void 0||C===false?null:(()=>{let e=C===true?{}:C;return {always:e.always??false,maxRows:e.maxRows??Pr}})(),Ot=false;function ro(e){Ot!==e&&(Ot=e,$.classList.toggle("kanuni-datagrid-print",e),e?(Kt++,document.documentElement.classList.add("kanuni-datagrid-printing")):(Kt--,Kt<=0&&(Kt=0,document.documentElement.classList.remove("kanuni-datagrid-printing"))),Tn());}let Ca=null;if(tn&&!tn.always){let e=()=>{let o=a.getRows().length;if(o>tn.maxRows){a.isDebugMode()&&console.warn(`[datagrid] print layout skipped: ${o} rows exceeds maxRows (${tn.maxRows}). Printing the visible rows instead \u2014 use exportPdf() for the whole result.`);return}ro(true);},t=()=>ro(false);window.addEventListener("beforeprint",e),window.addEventListener("afterprint",t),Ca=()=>{window.removeEventListener("beforeprint",e),window.removeEventListener("afterprint",t);};}let at=0,Ze=[],$e=0,io=0;function lo(){let e=a.getColumnLayout(),t=a.getVirtualWindow().columns,o=[],n=(l,s,i,u)=>{let c=l.def;o.push({def:c,id:l.state.id,width:l.state.width,pinned:s,inset:i,className:Kr(c.align,c.dataType)+(s?" kanuni-datagrid-cell--pinned":"")+(c.autoHeight?" kanuni-datagrid-cell--wrap":""),visualIndex:u});};e.left.forEach((l,s)=>n(l,"left",e.leftOffsets[s]+Qe,s));for(let l=t.start;l<t.end&&l<e.center.length;l++)n(e.center[l],null,0,e.left.length+l);e.right.forEach((l,s)=>n(l,"right",e.rightOffsets[s],e.left.length+e.center.length+s)),Ze=o,$e=t.offsetX;let r=(e.centerOffsets[Math.min(t.end,e.center.length)]??0)-(e.centerOffsets[Math.min(t.start,e.center.length)]??0);io=Math.max(0,e.centerWidth-t.offsetX-r),Ae.style.minWidth=`${e.totalWidth+Qe}px`;}let hn=26;function ai(){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(Qn=n,gn.textContent="",ke.style.top=`${n*hn}px`,$.style.setProperty("--dg-band-offset",`${n*hn}px`),n===0)return;datagridCore.computeHeaderBands(o,n).forEach((l,s)=>{let i=w("kanuni-datagrid-band-row");if(i.style.top=`${s*hn}px`,i.style.height=`${hn}px`,Qe>0){let u=w("kanuni-datagrid-band-cell kanuni-datagrid-band-cell--spacer kanuni-datagrid-band-cell--pinned");u.style.width=`${Qe}px`,u.style.flex="none",u.style.insetInlineStart="0px",i.appendChild(u);}if($e>0){let u=w("kanuni-datagrid-spacer");u.style.width=`${$e}px`,u.style.flex="none",i.appendChild(u);}for(let u of l){let c=w(`kanuni-datagrid-band-cell${u.spacer?" kanuni-datagrid-band-cell--spacer":""}`);if(c.style.width=`${u.width}px`,c.style.flex="none",!u.spacer){if(u.columnIds.length>0){let m=datagridCore.bandPath(a.getColumnModel().getDef(u.columnIds[0])).slice(0,s+1);if(m.length===s+1&&a.isBandCollapsible(m)){let H=a.isBandCollapsed(m),L=document.createElement("button");L.type="button",L.className="kanuni-datagrid-band-toggle",L.setAttribute("aria-expanded",String(!H));let D=H?v.expandColumnGroup:v.collapseColumnGroup;L.setAttribute("aria-label",D),L.title=D,L.appendChild(rd(H)),L.addEventListener("click",_=>{_.stopPropagation(),a.toggleBand(m);}),c.appendChild(L);}}let E=w("kanuni-datagrid-band-label","span");E.textContent=u.label,c.appendChild(E);}i.appendChild(c);}gn.appendChild(i);});}let Bt=null,Cn=null;function vn(e,t){Cn&&Cn!==e&&Cn.classList.remove("kanuni-datagrid-header-cell--drop-before","kanuni-datagrid-header-cell--drop-after"),Cn=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 va(){if(!Bt)return;let e=a.getSelectedCount(),t=a.getSelectableCount(),o=t>0&&e>=t;Bt.checked=o,Bt.indeterminate=!o&&e>0,Bt.disabled=t===0&&e===0;}let nn=null;function Ea(e){nn=e;for(let t of Array.from(ke.querySelectorAll(".kanuni-datagrid-header-cell[data-column-id]")))t.tabIndex=t.getAttribute("data-column-id")===e?0:-1;}function so(){ai();let e=document.activeElement,t=e&&ke.contains(e)?e.closest("[data-column-id]")?.getAttribute("data-column-id")??null:null,o=a.getColumnLayout(),n=[...o.left,...o.center,...o.right].map(i=>i.state.id);(!nn||!n.includes(nn))&&(nn=n[0]??null);let r=a.getSort(),l=new Map(r.map((i,u)=>[i.columnId,{direction:i.direction,order:u}]));if(ke.textContent="",Bt=null,no){let i=w("kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-status-cell");i.setAttribute("role","presentation"),i.setAttribute("aria-hidden","true"),i.style.width=`${Yo}px`,i.style.flex="none",i.style.insetInlineStart="0px",ke.appendChild(i);}if(S){let i=w("kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-rownum-cell");i.setAttribute("role","columnheader"),i.style.width=`${un}px`,i.style.flex="none",i.style.insetInlineStart=`${oo}px`,ke.appendChild(i);}if(Gt){let i=w("kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-detail-toggle-cell");i.setAttribute("role","columnheader"),i.setAttribute("aria-label",v.detailsAria),i.style.width=`${cn}px`,i.style.flex="none",i.style.insetInlineStart=`${ao}px`,ke.appendChild(i);}if(Pt){let i=w("kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-select-cell");i.setAttribute("role","columnheader"),i.style.width=`${qn}px`,i.style.flex="none",i.style.insetInlineStart=`${fa}px`;let u=document.createElement("input");u.type="checkbox",u.setAttribute("aria-label",v.selectAllRows),u.addEventListener("change",()=>{a.getSelectedCount()>0?a.clearSelection():a.selectAll();}),i.appendChild(u),ke.appendChild(i),Bt=u,va();}let s=false;for(let i of Ze){if(!i.pinned&&!s){if($e>0){let y=document.createElement("div");y.style.flex=`0 0 ${$e}px`,ke.appendChild(y);}s=true;}let u=ea&&i.def.sortable!==false,c=i.id===datagridCore.GROUP_COLUMN_ID,E=l.get(c?a.getGroupLevels()[0]??i.id:i.id),m=w(`kanuni-datagrid-header-cell${u?" kanuni-datagrid-header-cell--sortable":""}${i.pinned?" kanuni-datagrid-header-cell--pinned":""}${i.def.wrapHeaderText?" kanuni-datagrid-header-cell--wrap":""}`);m.setAttribute("role","columnheader"),m.setAttribute("data-column-id",i.id),m.tabIndex=i.id===nn?0:-1,m.addEventListener("focus",()=>Ea(i.id)),m.setAttribute("aria-sort",E?E.direction==="asc"?"ascending":"descending":"none");let H=i.def.headerTooltip;H&&(m.title=H),m.style.width=`${i.width}px`,m.style.flex="none",i.pinned==="left"&&(m.style.insetInlineStart=`${i.inset}px`),i.pinned==="right"&&(m.style.insetInlineEnd=`${i.inset}px`);let L=w("kanuni-datagrid-header-label","span");L.id=`${encodeURIComponent(p.gridId)}-hdr-${encodeURIComponent(i.id)}`,m.setAttribute("aria-labelledby",L.id);let D=Ke?.(i.id);if(D)L.appendChild(D);else if(i.def.renderHeader){let y=i.def.renderHeader({column:i.def});typeof y=="string"?L.textContent=y:L.appendChild(y);}else L.textContent=i.def.headerName??i.id;if(m.appendChild(L),E){let y=w("kanuni-datagrid-sort-indicator","span");if(y.setAttribute("aria-hidden","true"),y.textContent=E.direction==="asc"?"\u25B2":"\u25BC",m.appendChild(y),r.length>1&&!c){let G=w("kanuni-datagrid-sort-order","span");G.setAttribute("aria-hidden","true"),G.textContent=String(E.order+1),m.appendChild(G);}}if(u||st){let y=i.id;m.addEventListener("click",G=>{st?.(y,G)||u&&a.toggleSort(y,G.shiftKey);});}let _=Ce!==false&&!datagridCore.isChromeColumn(i.id);if(_){let y=i.id;m.addEventListener("contextmenu",G=>{G.preventDefault(),Va(y,{left:G.clientX,top:G.clientY});});}let b=null;if(P&&i.def.filterable!==false){b=document.createElement("button"),b.type="button",b.tabIndex=-1;let y=a.getColumnFilter(i.id)!==null;b.className=`kanuni-datagrid-filter-button${y?" kanuni-datagrid-filter-button--active":""}${X==="always"?" kanuni-datagrid-filter-button--pinned":""}`,b.setAttribute("aria-haspopup","dialog"),b.setAttribute("aria-label",`${i.def.headerName??i.id} filter`),b.appendChild(ad());let G=b;b.addEventListener("click",q=>{q.stopPropagation(),Oa(i.id,G);}),m.appendChild(b);}if(m.addEventListener("keydown",y=>{let G=n.indexOf(i.id),q;if(y.key==="ArrowRight")q=n[Math.min(n.length-1,G+1)];else if(y.key==="ArrowLeft")q=n[Math.max(0,G-1)];else if(y.key==="Home")q=n[0];else if(y.key==="End")q=n[n.length-1];else if(b&&y.altKey&&y.key==="ArrowDown")Oa(i.id,b);else if(u&&(y.key==="Enter"||y.key===" "))a.toggleSort(i.id,y.shiftKey);else if(_&&(y.key==="ContextMenu"||y.key==="F10"&&y.shiftKey)){let pe=m.getBoundingClientRect();Va(i.id,{left:pe.left,top:pe.bottom});}else return;y.preventDefault(),y.stopPropagation(),q&&q!==i.id&&(Ea(q),yo(q)?.focus());}),ne&&i.def.reorderable!==false&&(m.draggable=true,m.addEventListener("dragstart",y=>{y.dataTransfer?.setData("text/x-kanuni-column",i.id),y.dataTransfer&&(y.dataTransfer.effectAllowed="move");}),m.addEventListener("dragover",y=>{if(!y.dataTransfer?.types.includes("text/x-kanuni-column"))return;y.preventDefault();let G=m.getBoundingClientRect(),q=y.clientX<G.left+G.width/2;vn(m,q?"before":"after");}),m.addEventListener("dragleave",y=>{let G=y.relatedTarget;(!G||!m.contains(G))&&vn(null,"before");}),m.addEventListener("drop",y=>{vn(null,"before");let G=y.dataTransfer?.getData("text/x-kanuni-column");if(!G||G===i.id)return;y.preventDefault();let q=m.getBoundingClientRect();if(y.clientX<q.left+q.width/2)a.moveColumn(G,i.id);else {let ge=Ze.findIndex(De=>De.id===i.id);a.moveColumn(G,Ze[ge+1]?.id);}}),m.addEventListener("dragend",()=>vn(null,"before"))),ue&&i.def.resizable!==false){let y=w("kanuni-datagrid-resize-handle","span");y.setAttribute("data-resize-handle",i.id),y.setAttribute("role","presentation"),y.addEventListener("click",G=>G.stopPropagation()),y.addEventListener("dblclick",G=>{G.stopPropagation(),Ai(i.id);}),y.addEventListener("pointerdown",G=>{G.preventDefault(),G.stopPropagation();let q=G.clientX,pe=i.width,ge=getComputedStyle(m).direction==="rtl"?-1:1;m.draggable=false;let De=pe,Te=false,lt=Ct=>{Te=true,De=pe+(Ct.clientX-q)*ge,a.setColumnWidth(i.id,De,false);},et=()=>{window.removeEventListener("pointermove",lt),window.removeEventListener("pointerup",et),window.removeEventListener("pointercancel",et),Te&&a.setColumnWidth(i.id,De,true),m.draggable=ne&&i.def.reorderable!==false;};window.addEventListener("pointermove",lt),window.addEventListener("pointerup",et),window.addEventListener("pointercancel",et);}),m.appendChild(y);}ke.appendChild(m);}t&&yo(t)?.focus({preventScroll:true});}let ka=null,En=null;function ri(e){if(e===ka)return;ka=e;let t=[];for(let o=0;o<e.length;o++){let n=e[o];n&&n.kind!=="data"&&t.push(o);}En=t.length>0?t:null;}function ii(e){if(!En)return e+1;let t=0,o=En.length;for(;t<o;){let n=t+o>>1;En[n]<=e?t=n+1:o=n;}return e+1-t}let rt=[];function kn(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 c=w("kanuni-datagrid-cell kanuni-datagrid-loading-cell");return c.setAttribute("role","gridcell"),c.setAttribute("aria-colindex","1"),c.appendChild(w("kanuni-datagrid-loading-bar","span")),t.appendChild(c),{kind:e,root:t,cells:[],rowNumberCell:null,selectInput:null,detailToggle:null,leadingSpacer:null,trailingSpacer:null,epoch:at}}if(e==="data"&&eo&&t.addEventListener("click",()=>{if(!t.classList.contains("kanuni-datagrid-group-row--aligned"))return;let c=t.getAttribute("data-group-key");c!==null&&a.toggleGroup(c);}),e==="panel"){let c=document.createElement("div");return c.setAttribute("role","gridcell"),c.setAttribute("aria-colindex","1"),t.appendChild(c),{kind:e,root:t,cells:[],rowNumberCell:null,selectInput:null,detailToggle:null,leadingSpacer:null,trailingSpacer:null,panelCell:c,epoch:at}}if(e==="group"){let c=w("kanuni-datagrid-group-cell");c.setAttribute("role","gridcell"),c.setAttribute("aria-colindex","1");let E=w("kanuni-datagrid-group-twisty","span");E.setAttribute("aria-hidden","true");let m=w("kanuni-datagrid-group-caption","span"),H=w("kanuni-datagrid-group-label","span"),L=w("kanuni-datagrid-group-count","span"),D=w("kanuni-datagrid-group-aggregates","span"),_=null;return Pt&&Qt?.mode==="multiple"&&(_=document.createElement("input"),_.type="checkbox",_.className="kanuni-datagrid-group-checkbox",_.tabIndex=-1,_.addEventListener("change",()=>{let b=t.getAttribute("data-group-key");b!==null&&a.toggleGroupSelection(b);}),_.addEventListener("click",b=>b.stopPropagation()),_.addEventListener("mousedown",b=>b.stopPropagation()),c.appendChild(_)),c.append(E,m,H,L,D),t.appendChild(c),t.addEventListener("click",()=>{let b=t.getAttribute("data-group-key");b!==null&&a.toggleGroup(b);}),{kind:e,root:t,cells:[],rowNumberCell:null,selectInput:null,detailToggle:null,leadingSpacer:null,trailingSpacer:null,group:{cell:c,check:_,twisty:E,caption:m,label:H,count:L,aggregates:D},epoch:at}}if(Zt){let c=w("kanuni-datagrid-row-grip","span");c.setAttribute("aria-hidden","true"),c.title=v.dragToReorder??"Drag to reorder",c.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>',c.addEventListener("mouseenter",()=>{t.draggable=true;}),c.addEventListener("mouseleave",()=>{t.draggable=false;}),t.appendChild(c);}if(ft)return {kind:e,root:t,cells:[],rowNumberCell:null,selectInput:null,detailToggle:null,leadingSpacer:null,trailingSpacer:null,epoch:at};if(no){let c=w("kanuni-datagrid-cell kanuni-datagrid-cell--pinned kanuni-datagrid-status-cell");c.setAttribute("role","presentation"),c.setAttribute("aria-hidden","true"),c.style.width=`${Yo}px`,c.style.flex="none",c.style.insetInlineStart="0px",c.appendChild(w("kanuni-datagrid-status-icon","span")),t.appendChild(c);}let o=null;S&&(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=`${un}px`,o.style.flex="none",o.style.insetInlineStart=`${oo}px`,t.appendChild(o));let n=null;if(Gt){let c=w("kanuni-datagrid-cell kanuni-datagrid-cell--center kanuni-datagrid-cell--pinned kanuni-datagrid-detail-toggle-cell");c.setAttribute("role","gridcell"),c.setAttribute("aria-colindex",String((S?1:0)+1)),c.style.width=`${cn}px`,c.style.flex="none",c.style.insetInlineStart=`${ao}px`;let E=document.createElement("button");E.type="button",E.className="kanuni-datagrid-detail-toggle",E.tabIndex=-1,E.addEventListener("click",m=>{m.stopPropagation();let H=t.getAttribute("data-row-key");if(H===null)return;let L=a.getRows().find(D=>D!==void 0&&String(D.key)===H);L&&L.kind==="data"&&a.toggleDetail(L.key);}),E.addEventListener("mousedown",m=>m.stopPropagation()),c.appendChild(E),t.appendChild(c),n=E;}let r=null;if(Pt){let c=w("kanuni-datagrid-cell kanuni-datagrid-cell--center kanuni-datagrid-cell--pinned kanuni-datagrid-select-cell");c.setAttribute("role","gridcell"),c.setAttribute("aria-colindex",String((S?1:0)+(Gt?1:0)+1)),c.style.width=`${qn}px`,c.style.flex="none",c.style.insetInlineStart=`${fa}px`;let E=document.createElement("input");E.type="checkbox",E.tabIndex=-1;let m=()=>{let H=t.getAttribute("data-row-key");if(H===null)return;let L=a.getRows().find(D=>D!==void 0&&String(D.key)===H);L?.kind==="group"?a.toggleGroupSelection(String(L.key)):L&&a.toggleRow(L.key);};c.addEventListener("mousedown",H=>H.stopPropagation()),c.addEventListener("click",H=>{H.target.tagName!=="INPUT"&&(H.stopPropagation(),m());}),E.addEventListener("change",m),E.addEventListener("click",H=>H.stopPropagation()),E.addEventListener("mousedown",H=>H.stopPropagation()),c.appendChild(E),t.appendChild(c),r=E;}let l=[],s=null,i=false;for(let c of Ze){!c.pinned&&!i&&(s=document.createElement("div"),s.style.flex=`0 0 ${$e}px`,t.appendChild(s),i=true);let E=w(c.className);E.setAttribute("role","gridcell"),E.setAttribute("data-column-id",c.id),E.style.width=`${c.width}px`,E.style.flex="none",c.pinned==="left"&&(E.style.insetInlineStart=`${c.inset}px`),c.pinned==="right"&&(E.style.insetInlineEnd=`${c.inset}px`),t.appendChild(E),l.push({el:E,slot:c});}let u=document.createElement("div");return u.style.flex=`0 0 ${io}px`,t.appendChild(u),{kind:e,root:t,cells:l,rowNumberCell:o,selectInput:r,detailToggle:n,leadingSpacer:s,trailingSpacer:u,epoch:at}}let Vt="";function Rn(e,t){if(Vt===""||t===""){e.textContent=t;return}let o=datagridCore.foldText(t),n=o.indexOf(Vt);if(n===-1){e.textContent=t;return}let r=[],l=0;for(;n!==-1;){n>l&&r.push(document.createTextNode(t.slice(l,n)));let i=document.createElement("mark");i.className="kanuni-datagrid-highlight",i.textContent=t.slice(n,n+Vt.length),r.push(i),l=n+Vt.length,n=o.indexOf(Vt,l);}l<t.length&&r.push(document.createTextNode(t.slice(l)));let s=document.createElement("span");s.className="kanuni-datagrid-cell-text",s.append(...r),e.replaceChildren(s);}function Ra(e,t,o){let n=a.getColumnModel().getCellValue(o.data,t.id),r=t.def;if(r.renderCell){let s=r.renderCell({value:n,row:o.data,node:o,column:r});typeof s=="string"?e.textContent=s:e.replaceChildren(s);return}let l=datagridCore.lookupLabel(r,n);if(l!==null){Rn(e,l);return}if(r.valueFormatter){let s=r.valueFormatter(n,o.data);Rn(e,typeof s=="string"?s:String(s??""));return}if(r.dateFormat&&r.dataType==="date"){Rn(e,datagridCore.formatDateValue(n,r.dateFormat));return}Rn(e,n==null?"":String(n));}function li(e,t){return e.kind==="group"&&!t.group}function di(e,t,o){let n=t?.lead??null;if(!n||!e.leadingSpacer||o.kind!=="data"){e.leadCell?.remove(),e.leadCell=null;return}let r=a.getColumnLayout(),l=n.column.def,s={def:l,id:n.column.state.id,width:n.width,className:Kr(l.align,l.dataType),visualIndex:r.left.length+r.center.indexOf(n.column)},i=e.leadCell??w(s.className);e.leadCell=i,i.className=s.className,i.setAttribute("role","gridcell"),i.setAttribute("data-column-id",s.id),i.setAttribute("aria-colspan",String(t.spans.get(s.id)??1)),i.setAttribute("aria-colindex",String(to()+s.visualIndex+1)),i.id=`${p.gridId}-cell-${String(o.key)}-${s.id}`,i.style.width=`${n.width}px`,i.style.flex="none",e.leadingSpacer.nextSibling!==i&&e.leadingSpacer.after(i),Ra(i,s,o);}function si(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=(r,l,s)=>{let i=document.createElement("button");i.type="button",i.className="kanuni-datagrid-row-message-button",i.setAttribute("data-testid",r),i.textContent=l,i.addEventListener("click",s),t.appendChild(i);};return e.retry&&n("dg-row-retry",v.rowStatusRetry,e.retry),e.remove&&n("dg-row-delete",v.rowStatusDelete,e.remove),t}function xa(){if(!Xe?.messages)return;let e=_e?.engine??Ee?.()??null,t=Xe.get,o=datagridCore.rowMessageKeys(Xe,e).filter(n=>{if(!t)return true;let r=a.getDataRowNode(n)?.data;if(r===void 0)return true;let l=t({row:r,rowKey:n});return l===void 0||l==="error"});a.setMessageRows(o,a.getRowHeight());}function Ta(e,t){let o=Xe&&t?.kind==="data"?datagridCore.resolveRowStatus(Xe,t.data,t.key,_e?.engine??Ee?.()??null):null,n=e.getAttribute("data-row-status");if(n!==null&&e.classList.remove(`kanuni-datagrid-row--status-${n}`,"kanuni-datagrid-row--status-tint"),!o){if(n===null)return;e.removeAttribute("data-row-status"),e.removeAttribute("aria-description"),e.removeAttribute("aria-busy"),e.removeAttribute("aria-invalid");return}e.setAttribute("data-row-status",o.status),e.classList.add(...datagridCore.rowStatusClassName(o.status,Xe.tint).split(" ")),e.setAttribute("aria-description",datagridCore.rowStatusDescription(o,v)),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 uo(e,t,o){let n=e.root;if(n.setAttribute("aria-rowindex",String(o+1+Zn())),n.setAttribute("data-row-key",String(t.key)),t.kind==="message"){let b=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"),b.className="kanuni-datagrid-message-cell";let y=Xe?datagridCore.rowMessageModel(Xe,t.parentKey,t.data,_e?.engine??Ee?.()??null,v):null,G=y?`${String(t.parentKey)}|${y.text}|${y.retry?1:0}${y.remove?1:0}`:"";n.getAttribute("data-message-sig")!==G&&(n.setAttribute("data-message-sig",G),b.textContent="",y&&b.appendChild(si(y)));return}if(n.removeAttribute("data-message-for"),n.removeAttribute("data-message-sig"),t.kind==="detail"||t.kind==="editform"){let b=e.panelCell,y=t.kind==="detail";n.className=`kanuni-datagrid-row ${y?"kanuni-datagrid-detail-row":"kanuni-datagrid-editform-row"}`,n.style.height=`${t.height}px`,y?(n.setAttribute("data-detail-for",String(t.parentKey)),n.removeAttribute("data-editform-for")):(n.setAttribute("data-editform-for",t.parentKey===null?"":String(t.parentKey)),n.removeAttribute("data-detail-for")),b.className=y?"kanuni-datagrid-detail-cell":"kanuni-datagrid-editform-cell";let G=`${t.kind}:${String(t.key)}`;if(n.getAttribute("data-panel-for")!==G){n.setAttribute("data-panel-for",G);let q=y?Xo?.(t.data):t.parentKey===null?void 0:jr?.(t.parentKey,t.data);b.textContent="",typeof q=="string"?b.textContent=q:q&&b.appendChild(q);}return}if(n.removeAttribute("data-panel-for"),n.removeAttribute("data-detail-for"),n.removeAttribute("data-editform-for"),t.kind==="filler"){n.style.display="none";return}n.style.display="";let r=t.kind==="data"?a.getDataRowHeight():null;n.style.height=Sa?"":`${r??a.getRowHeight()}px`;let l=t.kind==="group"&&!e.group?t:null;if(!e.group){n.classList.remove("kanuni-datagrid-group-row","kanuni-datagrid-group-row--aligned");for(let b of Array.from(n.classList))b.startsWith("kanuni-datagrid-group-row--level-")&&n.classList.remove(b);l?(n.classList.add("kanuni-datagrid-group-row","kanuni-datagrid-group-row--aligned",`kanuni-datagrid-group-row--level-${l.level}`),n.setAttribute("aria-expanded",String(l.expanded)),n.setAttribute("aria-level",String(l.level+1)),n.setAttribute("data-group-key",String(l.key)),n.setAttribute("data-group-level",String(l.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",N&&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 i=a.getFocus();n.classList.toggle("kanuni-datagrid-row--focused",W&&i!==null&&i.rowKey===t.key),Ta(n,t);let u=t.kind==="data"&&!li(t,e)?a.planRowColSpans(t,a.getVirtualWindow().columns):null;if(e.leadingSpacer&&(e.leadingSpacer.style.flex=`0 0 ${Math.max(0,$e-(u?.leadingDelta??0))}px`),e.trailingSpacer&&(e.trailingSpacer.style.flex=`0 0 ${Math.max(0,io-(u?.trailingDelta??0))}px`),di(e,u,t),Zt){let b=At!==null&&String(At.key)===String(t.key);n.classList.toggle("kanuni-datagrid-row--drop-before",b&&At.side==="before"),n.classList.toggle("kanuni-datagrid-row--drop-after",b&&At.side==="after");}let c=t.kind==="treePath",E=c||l!==null;if(n.classList.toggle("kanuni-datagrid-row--tree-path",c),e.rowNumberCell&&(e.rowNumberCell.textContent=E?"":String(ii(o))),e.detailToggle&&(e.detailToggle.hidden=E),e.selectInput){let b=l!==null&&Qt?.mode==="multiple";if(e.selectInput.hidden=c||l!==null&&!b,e.selectInput.classList.toggle("kanuni-datagrid-group-checkbox",b),b){let y=a.getGroupSelectionState(String(l.key));e.selectInput.checked=y==="all",e.selectInput.indeterminate=y==="some",e.selectInput.disabled=false,e.selectInput.setAttribute("aria-label",v.selectGroupAria.replace("{count}",String(l.count)).replace("{group}",l.display??l.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",v.selectRowAria.replace("{row}",String(t.key)));}if(e.detailToggle&&t.kind==="data"){let b=a.isDetailExpanded(t.key);e.detailToggle.textContent=b?"\u25BE":"\u25B8",e.detailToggle.setAttribute("aria-expanded",String(b)),e.detailToggle.setAttribute("aria-label",b?v.collapseDetails:v.expandDetails);}if(t.kind==="group"&&e.group){let b=t;n.className=`kanuni-datagrid-row kanuni-datagrid-group-row kanuni-datagrid-group-row--level-${b.level}`,n.setAttribute("aria-expanded",String(b.expanded)),n.setAttribute("aria-level",String(b.level+1)),n.setAttribute("data-group-key",String(b.key)),n.setAttribute("data-group-level",String(b.level)),e.group.cell.style.paddingLeft=b.level>0?`${8+b.level*18}px`:"",e.group.twisty.textContent=b.expanded?"\u25BE":"\u25B8";let y=a.getColumnModel().getDef(b.columnId),G=y?.headerName??b.columnId;if(e.group.caption.textContent=`${G}:`,e.group.label.textContent=datagridCore.lookupLabel(y,b.value)??b.display??(b.label===""?v.filterBlank:b.label),e.group.count.textContent=`(${b.count})`,e.group.check){let pe=a.getGroupSelectionState(String(b.key));e.group.check.checked=pe==="all",e.group.check.indeterminate=pe==="some",e.group.check.setAttribute("aria-label",v.selectGroupAria.replace("{count}",String(b.count)).replace("{group}",e.group.label.textContent??""));}e.group.aggregates.textContent="";let q=b.aggregates??null;if(q)for(let pe of a.getSummaryDefs()){let ge=w("kanuni-datagrid-group-aggregate","span"),De=w("kanuni-datagrid-group-aggregate-label","span"),Te=a.getColumnModel().getDef(pe.columnId);De.textContent=`${datagridCore.summaryLabel(pe,Xn)} ${Te?.headerName??pe.columnId}:`,ge.append(De,` ${datagridCore.formatSummaryValue(pe,q[datagridCore.summaryKey(pe.columnId,pe.type)],Te)}`),e.group.aggregates.appendChild(ge);}return}if(t.kind!=="data"&&!c&&!l){for(let{el:b}of e.cells)b.textContent="";return}if(ft&&E){let b=Zt?1:0;for(;n.childNodes.length>b;)n.removeChild(n.lastChild);let y=w("kanuni-datagrid-cell");l?y.appendChild(La(l)):(y.appendChild(Aa(t)),co(y,t,t.tree)),n.appendChild(y);return}if(ft){let b=Zt?1:0,y=ft({row:t.data,node:t,rowIndex:o,selected:a.isRowSelected(t.key),focused:W&&i!==null&&i.rowKey===t.key});if(y instanceof Node&&n.childNodes.length===b+1&&n.childNodes[b]===y)return;for(;n.childNodes.length>b;)n.removeChild(n.lastChild);typeof y=="string"?n.appendChild(document.createTextNode(y)):y&&n.appendChild(y);return}let m=i!==null&&i.rowKey===t.key?i.columnId:null,H=l?void 0:t.tree,L=l&&pa?datagridCore.GROUP_COLUMN_ID:H||l?(()=>{let b=a.getColumnLayout();return (b.left[0]??b.center[0]??b.right[0])?.state.id??null})():null,D=H?L:null,_=a.hasCellSpans();for(let{el:b,slot:y}of e.cells){b.style.display=u?.covered.has(y.id)?"none":"",b.style.width=`${u?.widths.get(y.id)??y.width}px`;let G=u?.spans.get(y.id);G?b.setAttribute("aria-colspan",String(G)):b.removeAttribute("aria-colspan");let q=(Ut||Jn)&&!E?{node:t,columnId:y.id,rowIndex:o,columnIndex:y.visualIndex,value:a.getColumnModel().getCellValue(t.data,y.id)}:null,pe=Ut&&l&&y.id!==L?{node:t,columnId:y.id,rowIndex:o,columnIndex:y.visualIndex,value:void 0}:null,ge=q&&Ut?Ut(q):pe?Ut(pe):void 0,De=false;if(ge!==void 0?ge instanceof Node&&b.childNodes.length===1&&b.firstChild===ge?De=true:typeof ge=="string"?b.textContent=ge:b.replaceChildren(ge):l?y.id===L?b.replaceChildren(La(l)):b.replaceChildren(...gi(l,y.id)):c?y.id===D?(b.replaceChildren(Aa(t)),co(b,t,H)):b.replaceChildren():(Ra(b,y,t),H&&y.id===D&&co(b,t,H)),_&&!De){let Re=ci(o,y.id);b.classList.toggle("kanuni-datagrid-cell--span",Re?.kind==="draw"),b.classList.toggle("kanuni-datagrid-cell--span-covered",Re?.kind==="covered");let O=ge!==void 0;if(Re?.kind==="covered"&&m!==y.id&&!O)b.replaceChildren();else if(Re?.kind==="draw"){let ae=w("kanuni-datagrid-span-box");ae.style.height=`${Re.height}px`,ae.append(...Array.from(b.childNodes)),b.appendChild(ae);}}else _||b.classList.remove("kanuni-datagrid-cell--span","kanuni-datagrid-cell--span-covered");if(Et){let Re=!E&&!!po(t.key,y.id,t.data);b.classList.toggle("kanuni-datagrid-cell--noted",Re);}b.id=`${p.gridId}-cell-${String(t.key)}-${y.id}`,b.setAttribute("aria-colindex",String(to()+y.visualIndex+1)),b.classList.toggle("kanuni-datagrid-cell--focused",m===y.id);let Te=t.kind==="data"?a.getFindMatchKind(t.key,y.id):null;b.classList.toggle("kanuni-datagrid-cell--find-match",Te!==null),b.classList.toggle("kanuni-datagrid-cell--find-active",Te==="active");let lt=b.getAttribute("data-slot-classes");if(lt)for(let Re of lt.split(" "))b.classList.remove(Re);let et=q&&Jn?Jn(q):void 0,Ct=y.def.cellClassName,vt=[E?void 0:typeof Ct=="function"?Ct({value:a.getColumnModel().getCellValue(t.data,y.id),row:t.data,node:t,column:y.def}):Ct,et].filter(Boolean).join(" ")||void 0;if(vt){for(let Re of vt.split(" "))b.classList.add(Re);b.setAttribute("data-slot-classes",vt);}else lt&&b.removeAttribute("data-slot-classes");}}let Sa=p.columns.some(e=>e.autoHeight);function ui(){if(!Sa)return;let e=a.getVirtualWindow(),t=a.getRows(),o=new Map(a.getMeasuredRowHeights()),n=false;for(let r=e.rows.start;r<e.rows.end&&r<t.length;r++){let l=t[r];if(!l||l.kind!=="data")continue;let s=r-e.rows.start,i=rt[s]?.root;if(!i)continue;let u=i.getBoundingClientRect().height;u>0&&o.get(l.key)!==u&&(o.set(l.key,u),n=true);}n&&a.setMeasuredRowHeights(o);}let xn={start:0,end:0};function ci(e,t){let o=a.getCellSpans(t);if(o.length===0)return null;let n=datagridCore.spanRoleAt(o,e,xn.start,xn.end);if(!n)return null;if(n.role==="covered")return {kind:"covered"};let r=a.getRowOffset(n.drawStart);return {kind:"draw",height:a.getRowOffset(n.drawEnd)+a.getRowHeightAt(n.drawEnd)-r}}function pi(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 r=e.firstElementChild;if(!o)r.replaceChildren(w("kanuni-datagrid-loading-bar","span"));else {let l=w("kanuni-datagrid-load-failed-text","span");l.textContent=v.rowsLoadFailed;let s=document.createElement("button");s.className="kanuni-datagrid-retry-button",s.type="button",s.setAttribute("data-retry-load",""),s.textContent=v.retryLoad,s.addEventListener("click",()=>a.retryFailedLoads()),r.replaceChildren(l,s);}}function La(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),r=w("kanuni-datagrid-group-caption","span");r.textContent=`${n?.headerName??e.columnId}:`;let l=w("kanuni-datagrid-group-label","span");l.textContent=datagridCore.lookupLabel(n,e.value)??e.display??(e.label===""?v.filterBlank:e.label);let s=w("kanuni-datagrid-group-count","span");return s.textContent=`(${e.count})`,pa?t.append(o,l,s):t.append(o,r,l,s),t}function gi(e,t){if(!e.aggregates)return [];let o=a.getSummaryDefs().find(r=>r.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 Aa(e){let t=w("kanuni-datagrid-tree-path-label","span");return t.textContent=e.label,t}function co(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 r=document.createElement("button");r.type="button",r.className="kanuni-datagrid-tree-toggle",r.setAttribute("data-tree-toggle",""),r.setAttribute("aria-expanded",String(o.expanded)),r.setAttribute("aria-label",o.expanded?v.collapseTreeRow:v.expandTreeRow),r.textContent=o.expanded?"\u25BE":"\u25B8",r.addEventListener("mousedown",l=>l.stopPropagation()),r.addEventListener("click",l=>{l.stopPropagation(),a.toggleTreeRow(t.key);}),n.appendChild(r);}else n.appendChild(w("kanuni-datagrid-tree-toggle kanuni-datagrid-tree-toggle--leaf","span"));n.append(...Array.from(e.childNodes)),e.appendChild(n);}let po=(e,t,o)=>Et?Et.get({rowKey:e,columnId:t,row:o})??null:null,Ma=null,bt=Yn?w("kanuni-datagrid-overlay"):null;bt&&(bt.style.position="absolute",bt.style.inset="0",bt.style.pointerEvents="none",Ne.appendChild(bt));function fi(){if(!Yn||!bt)return;let e=Yn();e!==Ma&&(Ma=e,e?bt.replaceChildren(e):bt.replaceChildren());}function mi(e){let t=a.getColumnLayout(),o=Array.from(ct.children);$.setAttribute("aria-rowcount",String(Zn()+e+o.length)),$.setAttribute("aria-colcount",String(to()+t.left.length+t.center.length+t.right.length)),a.getSelectionMode()==="multiple"?$.setAttribute("aria-multiselectable","true"):$.removeAttribute("aria-multiselectable"),o.forEach((n,r)=>n.setAttribute("aria-rowindex",String(Zn()+e+r+1)));}function Tn(){fi(),Yt&&la();let e=a.getVirtualWindow(),t=a.getRows(),o=Ot?{...e,rows:{...e.rows,start:0,end:t.length,offsetY:0,totalHeight:0}}:e;ri(t),mi(t.length),Ne.style.height=`${o.rows.totalHeight}px`,se.style.transform=`translateY(${o.rows.offsetY}px)`,Vt=a.getFindNeedle()||($r?datagridCore.normalizeSearch(a.getSearchText()):"");let n=Math.max(0,Math.min(o.rows.end,t.length)-o.rows.start);for(xn.start=o.rows.start,xn.end=Math.min(o.rows.end,t.length)-1;rt.length>n;)rt.pop().root.remove();for(let r=0;r<n;r++){let l=o.rows.start+r,s=t[l];if(!s){let c=rt[r];if(!c||c.kind!=="loading"){let E=kn("loading");c?se.replaceChild(E.root,c.root):se.appendChild(E.root),rt[r]=E,c=E;}c.root.setAttribute("aria-rowindex",String(l+2)),c.root.style.height=`${a.getDataRowHeight()??a.getRowHeight()}px`,pi(c.root,l);continue}let i=s.kind==="data"?"data":s.kind==="group"?eo?"data":"group":s.kind==="detail"||s.kind==="editform"||s.kind==="message"?"panel":"stub",u=rt[r];if(!u||u.epoch!==at||u.kind!==i){let c=kn(i);u?se.replaceChild(c.root,u.root):se.appendChild(c.root),rt[r]=c,u=c;}uo(u,s,l);}ui(),Da();}let Sn=[];function Da(){if(!a.hasStickyGroupHeaders())return;let e=Ot?[]:a.getStickyGroupRows();for(Pe.style.width=`${a.getColumnLayout().totalWidth}px`;Sn.length>e.length;)Sn.pop().wrap.remove();let t=eo?"data":"group";e.forEach((o,n)=>{let r=Sn[n];if(!r||r.rs.epoch!==at||r.rs.kind!==t){let l=kn(t),s=r?.wrap??w("kanuni-datagrid-sticky-group");s.textContent="",s.appendChild(l.root),r||Pe.appendChild(s),r={wrap:s,rs:l},Sn[n]=r;}uo(r.rs,o.node,o.index),r.rs.root.removeAttribute("aria-rowindex"),r.wrap.style.top=`${o.offset}px`,r.wrap.style.height=`${o.height}px`,r.wrap.style.zIndex=String(e.length-n),r.wrap.classList.toggle("kanuni-datagrid-sticky-group--last",n===e.length-1),r.wrap.querySelectorAll("button, input, select, textarea, a[href], [tabindex]").forEach(l=>l.setAttribute("tabindex","-1"));});}Pe.addEventListener("click",e=>{let o=e.target.closest("[data-group-key]")?.getAttribute("data-group-key");o&&a.scrollToRow(o);});let Ln=datagridCore.createDebouncedCommit(Gr??(a.isRemote()?200:0));function Na(e,t,o,n){let r=a.getColumnModel().getDef(t);if(!r?.renderFilter)return ()=>{};let l=()=>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,i=a.events.on("filterChanged",()=>{let c=l();s.forEach(E=>E(c));}),u=r.renderFilter(e,{columnId:t,column:r,surface:o,getValue:l,setValue:c=>a.setColumnFilter(t,c,o==="row"?datagridCore.FILTER_PART_ROW:datagridCore.FILTER_PART_SET),close:n,onValueChange:c=>(s.add(c),()=>s.delete(c))});return ()=>{i(),s.clear(),typeof u=="function"&&u();}}let on=[],an=new Map,go=false;function bi(){!R||go||pt.querySelectorAll("select[data-filter-operator-for]").forEach(e=>{let t=e.getAttribute("data-filter-operator-for");if(Ln.isPending(t))return;let o=a.getColumnModel().getDef(t),n=a.getColumnFilter(t,datagridCore.FILTER_PART_ROW),r=an.get(t)??"",l=e.parentElement?.querySelector("input.kanuni-datagrid-filter-input"),s=r;if(n){let i=datagridCore.customFilterInputFromNode(n,o);s=i?.operatorId??"",i&&l&&(l.value=i.text);}else datagridCore.findCustomFilterOperator(o,r)?.operandType==="none"&&(s="");an.set(t,s),e.value=s,l&&(l.disabled=datagridCore.findCustomFilterOperator(o,s)?.operandType==="none");});}function fo(){if(!R)return;if(on.forEach(n=>n()),on=[],pt.textContent="",Qe>0){let n=w("kanuni-datagrid-filter-cell kanuni-datagrid-filter-cell--pinned");n.setAttribute("role","gridcell"),n.style.width=`${Qe}px`,n.style.flex="none",n.style.insetInlineStart="0px",pt.appendChild(n);}let e=false,t=null,o=()=>{if(!t){t=document.createElement("datalist"),t.id=`${p.gridId}-filter-periods`;for(let n of datagridCore.periodSuggestionList(na)){let r=document.createElement("option");r.value=n,t.appendChild(r);}pt.appendChild(t);}return t.id};for(let n of Ze){if(!n.pinned&&!e){if($e>0){let s=w("kanuni-datagrid-spacer");s.style.width=`${$e}px`,s.style.flex="none",pt.appendChild(s);}e=true;}let r=w(`kanuni-datagrid-filter-cell${n.pinned?" kanuni-datagrid-filter-cell--pinned":""}`);r.setAttribute("role","gridcell"),r.style.width=`${n.width}px`,r.style.flex="none",n.pinned==="left"&&(r.style.insetInlineStart=`${n.inset}px`),n.pinned==="right"&&(r.style.insetInlineEnd=`${n.inset}px`);let l=n.def.renderFilter;if(n.def.filterable!==false&&l){let s=w("kanuni-datagrid-filter-custom");s.setAttribute("data-filter-for",n.id),r.appendChild(s),on.push(Na(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",`${n.def.headerName??n.id} filter`),s.setAttribute("data-filter-for",n.id);let i=datagridCore.customFilterOperators(n.def),u=()=>datagridCore.findCustomFilterOperator(n.def,an.get(n.id)??"");n.def.dataType==="date"&&!u()&&s.setAttribute("list",o());let c=()=>{let m=u();go=true;try{a.setColumnFilter(n.id,m?datagridCore.parseCustomFilterInput(n.id,s.value,m):datagridCore.parseFilterInput(n.id,s.value,n.def.dataType,na),datagridCore.FILTER_PART_ROW);}finally{go=false;}};if(i.length>0){let m=document.createElement("select");m.className="kanuni-datagrid-filter-operator",m.setAttribute("aria-label",datagridCore.fillText(v.filterOperatorAria,{column:n.def.headerName??n.id})),m.setAttribute("data-filter-operator-for",n.id);let H=[["",v.filterOperatorDefault],...i.map(D=>[D.id,D.label])];for(let[D,_]of H){let b=document.createElement("option");b.value=D,b.textContent=_,m.appendChild(b);}let L=datagridCore.customFilterInputFromNode(a.getColumnFilter(n.id,datagridCore.FILTER_PART_ROW),n.def);L&&(an.set(n.id,L.operatorId),s.value=L.text),m.value=u()?.id??"",s.disabled=u()?.operandType==="none",m.addEventListener("change",()=>{an.set(n.id,m.value),s.disabled=u()?.operandType==="none",u()?s.removeAttribute("list"):n.def.dataType==="date"&&s.setAttribute("list",o()),Ln.cancel(n.id),c();}),r.appendChild(m);}s.addEventListener("input",()=>Ln.schedule(n.id,c));let E=()=>{Ln.cancel(n.id),c();};s.addEventListener("keydown",m=>{m.key==="Enter"&&E();}),s.addEventListener("blur",E),r.appendChild(s);}pt.appendChild(r);}}let mo=()=>{};function wi(){if(!Zo)return;let e=document.createElement("input");e.type="search",e.className="kanuni-datagrid-toolbar-search",e.placeholder=v.toolbarSearch,e.setAttribute("aria-label",v.toolbarSearch);let t=null;e.addEventListener("input",()=>{t&&clearTimeout(t),t=setTimeout(()=>a.setSearchText(e.value),Wr);});let o=w("kanuni-datagrid-toolbar-spacer"),n=null;if(z){let c=document.createElement("button");c.type="button",datagridCore.setCommandContent(c,"columns",v.toolbarColumns??"Columns"),c.setAttribute("aria-haspopup","dialog"),c.addEventListener("click",()=>{let E=c.getBoundingClientRect();_a({left:E.left,top:E.bottom+2});}),n=c;}let r=ut&&Vr,l=ut&&_r,s=document.createElement("button");s.type="button",s.className="kanuni-datagrid-toolbar-icon-button",s.setAttribute("aria-haspopup","menu"),s.setAttribute("aria-label",v.exportMenu),s.setAttribute("data-testid","dg-export-menu"),s.title=v.exportMenu,s.appendChild(od());let i=null;s.addEventListener("click",()=>{if(i)return;let c=s.getBoundingClientRect();it({left:c.right-190,top:c.bottom+2},E=>{E.setAttribute("role","menu"),E.setAttribute("aria-label",v.exportMenu);let m=[{kind:"csv",label:v.exportCsv,testId:"dg-export-csv",on:a.canExportAll()},{kind:"excel",label:v.exportExcel,testId:"dg-export-excel",on:r},{kind:"excel-selected",label:v.exportExcelSelected,testId:"dg-export-excel-selected",on:r},{kind:"pdf",label:v.exportPdf,testId:"dg-export-pdf",on:l}];for(let H of m){if(!H.on)continue;let L=document.createElement("button");L.type="button",L.className="kanuni-datagrid-menu-item",L.setAttribute("role","menuitem"),L.setAttribute("data-testid",H.testId),L.textContent=H.label,H.kind==="excel-selected"&&a.getSelectedCount()===0&&(L.disabled=true),L.addEventListener("click",()=>{i=H.kind,s.disabled=true,Me(),Fo(a,H.kind).then(D=>{i=null,s.disabled=false,D.error&&mo(D.error);});}),E.appendChild(L);}},"kanuni-datagrid-filter-popup kanuni-datagrid-export-menu");});for(let c of Br??[])gt.append(c);gt.append(e,o),n&>.append(n),(a.canExportAll()||r||l)&>.append(s);for(let c of Or??[])gt.append(c);let u=w("kanuni-datagrid-toolbar-error","span");u.setAttribute("role","alert"),u.style.display="none",gt.append(u),mo=c=>{u.textContent=c,u.style.display="";};}function Ia(){if(!je.isConnected)return;let e=a.getPage(),t=a.getPageCount(),o=document.activeElement,n=o instanceof HTMLElement&&je.contains(o)?o.getAttribute("data-pager"):null;je.textContent="";let r=(u,c,E,m,H)=>{let L=document.createElement("button");return L.type="button",L.textContent=u,L.setAttribute("aria-label",c),L.setAttribute("data-pager",H),L.disabled=E,L.addEventListener("click",m),L},l=w("kanuni-datagrid-pager-buttons"),s=e<=0,i=e>=t-1;if(l.append(r("\xAB",v.pagerFirst??"First",s,()=>a.setPage(0),"first"),r("\u2039",v.pagerPrevious??"Previous",s,()=>a.setPage(e-1),"previous")),mn?.pageButtons)for(let u of datagridCore.pageButtonItems(e,t,mn.maxPageButtons)){if(typeof u!="number"){let m=w("kanuni-datagrid-pager-gap","span");m.textContent="\u2026",m.setAttribute("aria-hidden","true"),l.append(m);continue}let c=String(u+1),E=r(c,v.pagerPageButton.replace("{n}",c),false,()=>a.setPage(u),`page-${u}`);E.classList.add("kanuni-datagrid-pager-page"),u===e&&E.setAttribute("aria-current","page"),l.append(E);}else {let u=w("kanuni-datagrid-pager-current","span");u.textContent=`${e+1} / ${t}`,l.append(u);}if(l.append(r("\u203A",v.pagerNext??"Next",i,()=>a.setPage(e+1),"next"),r("\xBB",v.pagerLast??"Last",i,()=>a.setPage(t-1),"last")),je.appendChild(l),n!==null){let u=je.querySelector(`[data-pager="${n}"]`);(u&&!u.disabled?u:je.querySelector('[aria-current="page"]')??je.querySelector("button:not(:disabled)"))?.focus();}}function bo(){if(!Ye)return;let e=a.getColumnLayout(),t=a.getSummaries(),o=new Map(a.getSummaryDefs().map(r=>[r.columnId,r]));if(Ie.textContent="",Ie.style.width=`${e.totalWidth+Qe}px`,Qe>0){let r=w("kanuni-datagrid-footer-cell kanuni-datagrid-footer-cell--pinned");r.style.width=`${Qe}px`,r.style.insetInlineStart="0px",Ie.appendChild(r);}let n=false;for(let r of Ze){if(!r.pinned&&!n){if($e>0){let u=w("kanuni-datagrid-spacer");u.style.width=`${$e}px`,Ie.appendChild(u);}n=true;}let l=o.get(r.id),s=r.def.dataType==="number"||r.def.dataType==="bigint",i=w(`kanuni-datagrid-footer-cell${r.pinned?" kanuni-datagrid-footer-cell--pinned":""}${s?" kanuni-datagrid-footer-cell--number":""}${l?" kanuni-datagrid-footer-cell--active":""}`);if(i.setAttribute("role","gridcell"),i.setAttribute("data-column-id",r.id),i.setAttribute("data-summary-type",l?.type??""),i.style.width=`${r.width}px`,r.pinned==="left"&&(i.style.insetInlineStart=`${r.inset}px`),r.pinned==="right"&&(i.style.insetInlineEnd=`${r.inset}px`),l){i.title=`${datagridCore.summaryLabel(l,Xn)} \u2014 ${r.def.headerName??r.id}`;let u=w("kanuni-datagrid-footer-value","span");u.textContent=datagridCore.formatSummaryValue(l,t[datagridCore.summaryKey(l.columnId,l.type)],r.def),i.appendChild(u);}else {let u=w("kanuni-datagrid-footer-hint","span");u.textContent=U&&!datagridCore.isChromeColumn(r.id)?"\xB7":"",i.appendChild(u);}Ie.appendChild(i);}}function yi(){Rt()>0?ze.isConnected||Ae.insertBefore(ze,Pe.isConnected?Pe:Ne):ze.remove(),aa()>0?ct.isConnected||Ae.insertBefore(ct,Ne.nextSibling):ct.remove(),Pe.style.setProperty("--dg-sticky-below",`${Rt()>0?Rt()*a.getRowHeight()+1:0}px`);}function An(){let e=ft;ft=de;try{hi();}finally{ft=e;}}function hi(){let e=(t,o,n,r)=>{t.textContent="",o.forEach((l,s)=>{let i=kn("data");uo(i,{kind:"data",key:`__pinned-${n}-${s}`,sourceIndex:-1,data:l},s),i.root.classList.remove("kanuni-datagrid-row--odd"),i.root.setAttribute("aria-rowindex",String(Qn+xt+s+1)),i.root.removeAttribute("aria-selected"),Ta(i.root,null),i.rowNumberCell&&(i.rowNumberCell.textContent="");let u=r[s-(o.length-r.length)];u!==void 0?i.root.setAttribute("data-pinned-row-key",String(u)):i.root.removeAttribute("data-pinned-row-key"),t.appendChild(i.root);});};for(let[t,o,n]of [["top",ze,j],["bottom",ct,Y]]){let r=a.getPinnedRows(t);if(n.length+r.length===0){o.textContent="";continue}e(o,[...n,...r.map(l=>l.row)],t,r.map(l=>l.key));}}let Mn=e=>{let t=e.target.closest("[data-pinned-row-key]");if(!t)return;let o=t.getAttribute("data-pinned-row-key"),n=a.getPinnedRowKeys(),r=[...n.top,...n.bottom].find(u=>String(u)===o);if(r===void 0)return;let l=Ha(r,false);if(l.length===0)return;e.preventDefault();let s=a.getPinnedRows(a.getRowPinSide(r)??"top").find(u=>u.key===r)?.row,i={row:s,node:{kind:"data",key:r,sourceIndex:-1,data:s},rowIndex:-1,columnId:e.target.closest("[data-column-id]")?.getAttribute("data-column-id")??null,selectedKeys:a.getSelectedKeys()};it({left:e.clientX,top:e.clientY},u=>{u.setAttribute("role","menu"),Nn(u,l,i);},"kanuni-datagrid-context-menu");};ze.addEventListener("contextmenu",Mn),ct.addEventListener("contextmenu",Mn);function Ha(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:v.pinRowTop,onSelect:()=>a.pinRow(e,"top")}),o!=="bottom"&&n.push({id:"__dg-pin-bottom",label:v.pinRowBottom,onSelect:()=>a.pinRow(e,"bottom")}),o&&n.push({id:"__dg-unpin",label:v.unpinRow,onSelect:()=>a.pinRow(e,null)}),t&&n.length>0?[{id:"__dg-sep-pin",separator:true},...n]:n}let Mt=null,rn=null,wo=null;function Me(e=true){rn?.(),rn=null,Mt?.remove(),Mt=null;let t=wo;wo=null,e&&t?.();}function yo(e){return ke.querySelector(`.kanuni-datagrid-header-cell[data-column-id="${CSS.escape(e)}"]`)}function Fa(e,t){e.addEventListener("keydown",o=>{let n=Array.from(e.querySelectorAll('[role="menuitem"]:not(:disabled)'));if(n.length===0)return;let r=n.indexOf(document.activeElement),l=n[r],s;switch(o.key){case "ArrowDown":s=n[(r+1)%n.length];break;case "ArrowUp":s=n[r<=0?n.length-1:r-1];break;case "Home":s=n[0];break;case "End":s=n[n.length-1];break;case "ArrowRight":case "Enter":case " ":if(l?.getAttribute("aria-haspopup")!=="menu")return;l.click(),s=Mt?.querySelector('.kanuni-datagrid-submenu [role="menuitem"]:not(:disabled)')??void 0;break;case "ArrowLeft":if(!t)return;t();break;case "Tab":Me();break;default:return}o.preventDefault(),o.stopPropagation(),s?.focus();});}function Ka(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 it(e,t,o="kanuni-datagrid-filter-popup"){Me(false);let n=document.activeElement instanceof HTMLElement?document.activeElement:null,r=n&&ke.contains(n)?n.closest("[data-column-id]")?.getAttribute("data-column-id")??null:null;Mt=w(`${Wn(p)} kanuni-datagrid-portal`);let l=w(o);l.style.position="fixed",l.style.left=`${e.left}px`,l.style.top=`${e.top}px`,l.style.zIndex="1000",t(l),Mt.appendChild(l),document.body.appendChild(Mt),Ka(l,e),wo=()=>{(n?.isConnected?n:r?yo(r):null)?.focus({preventScroll:true});},l.getAttribute("role")==="menu"&&(Fa(l),l.querySelector('[role="menuitem"]:not(:disabled)')?.focus({preventScroll:true}));let s=Mt,i=c=>{s.contains(c.target)||Me(false);},u=c=>{c.key==="Escape"&&Me();};document.addEventListener("pointerdown",i,true),document.addEventListener("keydown",u,true),rn=()=>{document.removeEventListener("pointerdown",i,true),document.removeEventListener("keydown",u,true);};}let Dt=25,Pa=8,Ga=new Map,$a=0;function Oa(e,t){let o=t.getBoundingClientRect(),n=++$a;if(a.getColumnModel().getDef(e)?.renderFilter){let r=null,l=null;it({left:o.left,top:o.bottom+2},u=>{l=u,u.classList.add("kanuni-datagrid-filter-popup--custom"),u.setAttribute("role","dialog"),u.setAttribute("aria-label",`${a.getColumnModel().getDef(e)?.headerName??e} filter`),u.setAttribute("data-column-id",e),u.tabIndex=-1,r=Na(u,e,"popup",()=>Me());});let s=l;s&&(s.querySelector('input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), a[href], [tabindex]:not([tabindex="-1"])')??s).focus({preventScroll:true});let i=rn;rn=()=>{i?.(),r?.(),r=null;};return}it({left:o.left,top:o.bottom+2},r=>{r.setAttribute("role","dialog"),r.setAttribute("aria-label",`${a.getColumnModel().getDef(e)?.headerName??e} filter`);let l=[],s=true,i=new Set,u=false,c=0,E="",m=[],H=null,L="",D=[],_=document.createElement("input");_.type="search",_.className="kanuni-datagrid-filter-search",_.placeholder=v.search,_.setAttribute("data-testid","dg-filter-search");let b=w("kanuni-datagrid-filter-actions"),y=document.createElement("button");y.type="button",y.textContent=v.filterSelectAll,y.addEventListener("click",()=>{u=true,i=new Set(l.map(O=>O.label)),Te();});let G=document.createElement("button");G.type="button",G.textContent=v.clear,G.addEventListener("click",()=>{u=true,i=new Set,Te();}),b.append(y,G);let q=w("kanuni-datagrid-filter-list");q.setAttribute("role","listbox"),q.setAttribute("aria-multiselectable","true");let pe=document.createElement("div");pe.style.position="relative";let ge=document.createElement("div");pe.appendChild(ge),q.appendChild(pe);let De=()=>{let O=datagridCore.foldText(E.trim());if(!O){m=l;return}H||(H=l.map(ae=>datagridCore.foldText(ae.label))),m=L!==""&&O.includes(L)?D.filter(ae=>datagridCore.foldText(ae.label).includes(O)):l.filter((ae,Se)=>H[Se].includes(O)),L=O,D=m;},Te=()=>{if(q.setAttribute("aria-busy",String(s)),q.setAttribute("aria-setsize",String(m.length)),s){pe.style.height="",ge.textContent="";let qe=w("kanuni-datagrid-filter-empty");qe.textContent=v.filterLoading,ge.appendChild(qe);return}if(m.length===0){pe.style.height="",ge.style.transform="",ge.textContent="";let qe=w("kanuni-datagrid-filter-empty");qe.textContent=v.filterNoMatch,ge.appendChild(qe);return}let O=q.clientHeight||240,ae=Math.max(0,Math.floor(q.scrollTop/Dt)-Pa),Se=Math.ceil(O/Dt)+Pa*2,We=Math.min(ae,Math.max(0,m.length-1)),$i=Math.min(m.length,We+Se);pe.style.height=`${m.length*Dt}px`,ge.style.transform=`translateY(${We*Dt}px)`,ge.textContent="";for(let qe=We;qe<$i;qe++){let Wt=m[qe],tt=w("kanuni-datagrid-filter-item");tt.setAttribute("role","option"),tt.setAttribute("aria-selected",String(i.has(Wt.label))),tt.tabIndex=0,tt.setAttribute("data-value",Wt.label),tt.setAttribute("data-index",String(qe)),qe===c&&tt.classList.add("kanuni-datagrid-filter-item--active");let ln=document.createElement("input");ln.type="checkbox",ln.readOnly=true,ln.checked=i.has(Wt.label),ln.tabIndex=-1;let hr=document.createElement("span");hr.textContent=Wt.label===""?v.filterBlank:Wt.label,tt.append(ln,hr),tt.addEventListener("click",()=>lt(Wt.label)),tt.addEventListener("focus",()=>{c=qe;}),ge.appendChild(tt);}},lt=O=>{u=true,i.has(O)?i.delete(O):i.add(O);for(let ae of ge.querySelectorAll(".kanuni-datagrid-filter-item")){if(ae.getAttribute("data-value")!==O)continue;ae.setAttribute("aria-selected",String(i.has(O)));let Se=ae.querySelector("input");Se&&(Se.checked=i.has(O));}};q.addEventListener("scroll",()=>{Ga.set(e,q.scrollTop),Te();}),_.addEventListener("input",()=>{E=_.value,c=0,De(),Te();});let et=O=>{if(m.length===0)return;c=Math.max(0,Math.min(m.length-1,O));let ae=c*Dt,Se=q.clientHeight||240;ae<q.scrollTop?q.scrollTop=ae:ae+Dt>q.scrollTop+Se&&(q.scrollTop=ae+Dt-Se),Te(),r.querySelector(`.kanuni-datagrid-filter-item[data-index="${c}"]`)?.focus();},Ct=()=>{if(s)return;let O;if(i.size===l.length)O=null;else {let ae=i.has(""),Se=l.filter(We=>We.label!==""&&i.has(We.label));Se.length===0?O=ae?{columnId:e,operator:"isnull"}:null:ae?O={logic:"or",nodes:[{columnId:e,operator:"in",value:Se.map(We=>We.value)},{columnId:e,operator:"isnull"}]}:O={columnId:e,operator:"in",value:Se.map(We=>We.value)};}a.setColumnFilter(e,O,datagridCore.FILTER_PART_SET),Me();};r.tabIndex=-1,r.addEventListener("keydown",O=>{let ae=O.target===_;if(O.key==="Backspace"&&!ae){O.preventDefault(),_.focus(),E=E.slice(0,-1),_.value=E,c=0,De(),Te();return}if(O.key==="ArrowDown"){O.preventDefault(),et(ae?0:c+1);return}if(O.key==="ArrowUp"){O.preventDefault(),et(ae?m.length-1:c-1);return}if(!ae&&(O.key==="Home"||O.key==="End")){O.preventDefault(),et(O.key==="Home"?0:m.length-1);return}if(O.key===" "&&!ae){O.preventDefault();let Se=m[c];Se&<(Se.label);return}if(O.key==="Enter"){O.preventDefault(),Ct();return}!ae&&O.key.length===1&&O.key!==" "&&!O.ctrlKey&&!O.metaKey&&!O.altKey&&(O.preventDefault(),_.focus(),E+=O.key,_.value=E,c=0,De(),Te());});let Io=w("kanuni-datagrid-filter-footer"),vt=document.createElement("button");vt.type="button",vt.textContent=v.cancel,vt.addEventListener("click",()=>Me());let Re=document.createElement("button");Re.type="button",Re.className="kanuni-datagrid-filter-primary",Re.setAttribute("data-testid","dg-filter-apply"),Re.textContent=v.apply,Re.disabled=true,Re.addEventListener("click",Ct),Io.append(vt,Re),r.append(_,b,q,Io),Te(),queueMicrotask(()=>{_.isConnected&&_.focus();}),a.getDistinctValueSetAsync(e).then(O=>{if($a!==n||!r.isConnected)return;l=O.entries,H=null,L="",s=false,Re.disabled=false;let ae=datagridCore.selectedLabelsFromFilter(a.getColumnFilter(e,datagridCore.FILTER_PART_SET)??a.getColumnFilter(e,datagridCore.FILTER_PART_DEFAULT),l);ae?(u=true,i=new Set(ae)):u||(i=new Set(l.map(We=>We.label))),De();let Se=Ga.get(e);Te(),Se&&(q.scrollTop=Se,Te());});});}function Dn(e={}){let t=a.getClipboardText(e);a.notifyClipboardGesture("copy",t?t.split(`
|
|
2
|
+
`).length:0,()=>a.writeClipboard(t,"copy"));}function Ci(e){if(ie===false)return [];let t=ie===true?{}:ie,o=[],n=l=>{e&&o.length===0&&o.push({separator:true,id:"__dg-sep"}),o.push(l);};t.copy!==false&&n({id:"__dg-copy",label:v.menuCopy,shortcut:`${Ei}C`,onSelect:()=>Dn()}),t.copyWithHeaders!==false&&n({id:"__dg-copy-headers",label:v.menuCopyWithHeaders,onSelect:()=>Dn({includeHeaders:true})}),t.copyWithGroupHeaders!==false&&vi()&&n({id:"__dg-copy-group-headers",label:v.menuCopyWithGroupHeaders,onSelect:()=>Dn({includeGroupHeaders:true})});let r=(t.export===false?[]:Array.isArray(t.export)?t.export:["csv","excel","excel-selected","pdf"]).filter(l=>l!=="csv"||a.canExportAll());if(r.length>0){let l=a.getSelectedCount()===0,s={csv:v.exportCsv,excel:v.exportExcel,"excel-selected":v.exportExcelSelected,pdf:v.exportPdf};n({id:"__dg-export",label:v.menuExport,items:r.map(i=>({id:`__dg-export-${i}`,label:s[i],disabled:i==="excel-selected"&&l,onSelect:()=>{Fo(a,i).then(u=>{u.error&&mo(u.error);});}}))});}return o}function vi(){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 Ei=/Mac|iPhone|iPad|iPod/.test(navigator.platform??"")?"\u2318":"Ctrl+";function Nn(e,t,o){let n=null,r=()=>{n?.remove(),n=null;};t.forEach((l,s)=>{if(l.separator){let m=w("kanuni-datagrid-menu-separator");m.setAttribute("role","separator"),e.appendChild(m);return}let i=w("kanuni-datagrid-menu-row"),u=document.createElement("button");if(u.type="button",u.className="kanuni-datagrid-menu-item",u.setAttribute("role","menuitem"),u.setAttribute("data-item-index",String(s)),l.disabled&&(u.disabled=true),l.icon!==void 0){let m=w("kanuni-datagrid-menu-icon","span");typeof l.icon=="string"?m.textContent=l.icon:m.appendChild(l.icon),u.appendChild(m);}let c=w("kanuni-datagrid-menu-label","span");if(c.textContent=l.label??"",u.appendChild(c),l.shortcut){let m=w("kanuni-datagrid-menu-shortcut","span");m.textContent=l.shortcut,u.appendChild(m);}let E=l.items??[];if(E.length>0){let m=w("kanuni-datagrid-menu-caret","span");m.textContent="\u203A",u.appendChild(m),u.setAttribute("aria-haspopup","menu"),u.setAttribute("aria-expanded","false");let H=()=>{r();let L=w("kanuni-datagrid-context-menu kanuni-datagrid-submenu");L.setAttribute("role","menu");let D=u.getBoundingClientRect();L.style.left=`${D.right}px`,L.style.top=`${Math.max(0,D.top-4)}px`;for(let _ of E){if(_.separator){let G=w("kanuni-datagrid-menu-separator");G.setAttribute("role","separator"),L.appendChild(G);continue}let b=document.createElement("button");b.type="button",b.className="kanuni-datagrid-menu-item",b.setAttribute("role","menuitem"),_.disabled&&(b.disabled=true);let y=w("kanuni-datagrid-menu-label","span");y.textContent=_.label??"",b.appendChild(y),b.addEventListener("click",()=>{_.onSelect?.(o),Me();}),L.appendChild(b);}e.parentElement?.appendChild(L),Ka(L,{left:D.right,top:Math.max(0,D.top-4)}),n=L,u.setAttribute("aria-expanded","true"),Fa(L,()=>{r(),u.setAttribute("aria-expanded","false"),u.focus();});};u.addEventListener("mouseenter",H),u.addEventListener("click",H);}else u.addEventListener("mouseenter",r),u.addEventListener("click",()=>{l.onSelect?.(o),Me();});i.appendChild(u),e.appendChild(i);});}let Ba=e=>{let o=e.target.closest(".kanuni-datagrid-row");if(!o||o.classList.contains("kanuni-datagrid-group-row"))return;let n=wt(e);if(n?.columnId&&a.notifyCell("cellContextMenu",n.node,n.rowIndex,n.columnId),!be&&!ie&&!a.isRowPinningEnabled()||!n||n.node.kind!=="data")return;e.preventDefault(),a.isRowSelected(n.node.key)||a.handleRowClick(n.node.key,{}),n.columnId&&a.focusCell(n.node.key,n.columnId);let r={row:n.node.data,node:n.node,rowIndex:n.rowIndex,columnId:n.columnId,selectedKeys:a.getSelectedKeys()},l=(typeof be=="function"?be(r):be)??[],s=[...l,...ki(r,l.length>0)],i=[...s,...Ha(n.node.key,s.length>0)],u=Ci(i.length>0);i.length===0&&u.length===0||it({left:e.clientX,top:e.clientY},c=>{c.setAttribute("role","menu"),Nn(c,[...i,...u],r);},"kanuni-datagrid-context-menu");};function ki(e,t){if(!Et?.onChange||Et.menu===false)return [];let o=e.columnId;if(!o)return [];let n=e.node.key,r=po(n,o,e.row),l=[];return t&&l.push({separator:true,id:"__note-sep"}),l.push({id:"__note-edit",label:r?v.editNote:v.addNote,onSelect:()=>Ri(n,o,e.row,r??"")}),r&&l.push({id:"__note-delete",label:v.deleteNote,onSelect:()=>Et.onChange?.({rowKey:n,columnId:o,row:e.row,text:null})}),l}function Ri(e,t,o,n){let l=($.querySelector(`[data-row-key="${CSS.escape(String(e))}"] [data-column-id="${CSS.escape(t)}"]`)??$).getBoundingClientRect();queueMicrotask(()=>{it({left:l.left,top:l.bottom+2},s=>{s.setAttribute("aria-label",v.noteEditorAria);let i=document.createElement("textarea");i.className="kanuni-datagrid-note-input",i.rows=4,i.value=n,i.setAttribute("aria-label",v.noteEditorAria),i.placeholder=v.notePlaceholder,i.setAttribute("data-testid","dg-note-input");let u=()=>{let H=i.value.trim();Me(),Et?.onChange?.({rowKey:e,columnId:t,row:o,text:H===""?null:H});};i.addEventListener("keydown",H=>{H.key==="Enter"&&(H.ctrlKey||H.metaKey)&&(H.preventDefault(),u()),H.key==="Escape"&&(H.preventDefault(),Me());});let c=w("kanuni-datagrid-note-actions"),E=document.createElement("button");E.type="button",E.className="kanuni-datagrid-note-cancel",E.textContent=v.cancel,E.addEventListener("click",()=>Me());let m=document.createElement("button");m.type="button",m.className="kanuni-datagrid-note-save",m.setAttribute("data-testid","dg-note-save"),m.textContent=v.save,m.addEventListener("click",u),c.append(E,m),s.append(i,c),queueMicrotask(()=>{i.focus(),i.select();});},"kanuni-datagrid-filter-popup kanuni-datagrid-note-editor");});}function xi(e){St!==e&&(St=e,e?($.insertBefore(Ge,oe),vo()):Ge.remove());}function Ti(e){if(Ye!==e){if(Ye=e,e){if(nt){let t=ze.isConnected?ze:Pe.isConnected?Pe:Ne;Ae.insertBefore(Ie,t);}else Ae.append(Ie);bo();}else Ie.remove();ze.style.setProperty("--dg-pinned-gap",String(xt+(Ye&&nt?1:0))),Pe.style.setProperty("--dg-pinned-gap",String(xt+(Ye&&nt?1:0)));}}function ho(e){let t=Ko($,e);t!==null&&a.setColumnWidth(e,t);}function Va(e,t){let o=a.getColumnModel().getDef(e),n={columnId:e,headerName:o?.headerName??e},r=Ho(n,{controller:a,t:v,groupPanelVisible:St,footerVisible:Ye,onToggleGroupPanel:()=>xi(!St),onToggleFooter:()=>Ti(!Ye),onOpenFieldChooser:()=>_a(t),onBestFit:ho,onBestFitAll:()=>{for(let s of a.getColumnStates())s.visible&&!s.flex&&ho(s.id);},maxGroupLevels:ut?Number.POSITIVE_INFINITY:1}),l=typeof Ce=="function"?Ce(n,r):r;l.length!==0&&it(t,s=>{s.setAttribute("role","menu"),Nn(s,l,n);},"kanuni-datagrid-context-menu");}function Si(e,t){let o=a.getColumnModel().getDef(e),n=a.getColumnSummary(e),r={columnId:e,headerName:o?.headerName??o?.field??e},l=[{id:"none",label:v.noTotal,disabled:n===null,onSelect:()=>a.setColumnSummary(e,null)},{id:"sep",separator:true},...datagridCore.allowedSummaryTypes(o?.dataType).map(s=>({id:s,label:Xn[s],disabled:n?.type===s,onSelect:()=>a.setColumnSummary(e,s)}))];it(t,s=>{s.setAttribute("role","menu"),Nn(s,l,r);},"kanuni-datagrid-context-menu");}function _a(e){it(e,t=>{t.setAttribute("role","dialog"),t.setAttribute("aria-label",v.columns);let o=w("kanuni-datagrid-chooser-title");o.textContent=v.columns,t.appendChild(o);let n=()=>a.getColumnStates().filter(m=>!datagridCore.isChromeColumn(m.id)),r=m=>a.getColumnModel().getDef(m)?.headerName??m,l="";if(n().length>8){let m=document.createElement("input");m.type="search",m.className="kanuni-datagrid-filter-search",m.placeholder=v.search,m.setAttribute("aria-label",v.search),m.addEventListener("input",()=>{l=m.value.trim().toLocaleLowerCase(),E();}),t.appendChild(m);}let s=w("kanuni-datagrid-filter-list");t.appendChild(s);let i=w("kanuni-datagrid-filter-footer"),u=document.createElement("button");u.type="button",u.textContent=v.showAll,u.addEventListener("click",()=>{for(let m of n())m.visible||a.setColumnVisible(m.id,true);E();});let c=document.createElement("button");c.type="button",c.className="kanuni-datagrid-filter-primary",c.textContent=v.ok,c.addEventListener("click",()=>Me()),i.append(u,c),t.appendChild(i);function E(){let m=n(),H=m.filter(D=>D.visible).length;s.textContent="";let L=l?m.filter(D=>r(D.id).toLocaleLowerCase().includes(l)):m;if(L.length===0){let D=w("kanuni-datagrid-chooser-empty");D.textContent=v.noData,s.appendChild(D);}for(let D of L){let _=document.createElement("label");_.className="kanuni-datagrid-filter-item";let b=document.createElement("input");b.type="checkbox",b.checked=D.visible,b.disabled=D.visible&&H===1,b.setAttribute("data-column-toggle",D.id),b.addEventListener("change",()=>{a.setColumnVisible(D.id,b.checked),E();});let y=document.createElement("span");y.textContent=r(D.id),_.append(b,y),s.appendChild(_);}u.disabled=H===m.length;}E();},"kanuni-datagrid-filter-popup kanuni-datagrid-column-chooser");}let Nt=null,Co=null,In=e=>{Ge.classList.toggle("kanuni-datagrid-group-panel--over",e);};function Wa(e,t,o){let n=a.getGroupLevels();if(e===t)return;let r=n.filter(i=>i!==e),l=r.indexOf(t);if(l<0)return;let s=o==="before"?l:l+1;Co=e,a.groupBy([...r.slice(0,s),e,...r.slice(s)]);}function qa(e,t){let o=a.getGroupLevels(),n=o.indexOf(e),r=n+t;n<0||r<0||r>=o.length||Wa(e,o[r],t===-1?"before":"after");}function Ua(e,t){if(!e)return;let o=a.getGroupLevels();if(o.includes(e))return;let n=ut?Number.POSITIVE_INFINITY:1;if(o.length>=n){a.groupBy([...o.slice(0,n-1),e]);return}let r=t??o.length;a.groupBy([...o.slice(0,r),e,...o.slice(r)]);}function vo(){if(!St)return;Ge.textContent="";let e=a.getGroupLevels();if(e.length===0){let u=w("kanuni-datagrid-group-panel-hint","span");u.textContent=v.groupPanelHint??"Drag a column header here to group by it",Ge.appendChild(u);return}let t=u=>a.getColumnModel().getDef(u)?.headerName??u,o=w("kanuni-datagrid-group-levels"),n=(u,c)=>u<c.top+c.height/2?"before":"after",r=(u,c)=>{for(let E of Ge.querySelectorAll(".kanuni-datagrid-group-level"))E.classList.remove("kanuni-datagrid-group-level--drop-before","kanuni-datagrid-group-level--drop-after");u&&c&&u.classList.add(`kanuni-datagrid-group-level--drop-${c}`);};e.forEach((u,c)=>{let E=w("kanuni-datagrid-group-level");E.style.setProperty("--dg-group-level",String(c)),E.setAttribute("data-group-level",String(c));let m=w("kanuni-datagrid-group-chip");if(m.setAttribute("role","button"),m.tabIndex=0,e.length>1&&(m.draggable=true),m.setAttribute("aria-label",`${datagridCore.fillText(v.groupLevelAria,{n:c+1})}: ${t(u)}`),m.addEventListener("dragstart",D=>{Nt=u,D.dataTransfer&&(D.dataTransfer.effectAllowed="move",D.dataTransfer.setData("text/x-kanuni-column",u));}),m.addEventListener("dragend",()=>{Nt=null,r(null,null);}),m.addEventListener("keydown",D=>{let _=D.ctrlKey||D.metaKey;_&&(D.key==="ArrowUp"||D.key==="ArrowLeft")?(D.preventDefault(),qa(u,-1)):_&&(D.key==="ArrowDown"||D.key==="ArrowRight")?(D.preventDefault(),qa(u,1)):(D.key==="Delete"||D.key==="Backspace")&&(D.preventDefault(),a.groupBy(e.filter(b=>b!==u)));}),E.addEventListener("dragover",D=>{!Nt&&!(D.dataTransfer?.types.includes("text/x-kanuni-column")??false)||(D.preventDefault(),D.stopPropagation(),r(E,n(D.clientY,E.getBoundingClientRect())));}),E.addEventListener("drop",D=>{D.preventDefault(),D.stopPropagation();let _=n(D.clientY,E.getBoundingClientRect());r(null,null),In(false);let b=Nt;if(Nt=null,b){Wa(b,u,_);return}let y=D.dataTransfer?.getData("text/x-kanuni-column");y&&Ua(y,_==="before"?c:c+1);}),e.length>1){let D=w("kanuni-datagrid-group-chip-level","span");D.textContent=String(c+1),m.appendChild(D);}let H=document.createElement("span");H.textContent=t(u);let L=document.createElement("button");L.type="button",L.setAttribute("aria-label",datagridCore.fillText(v.groupRemoveAria,{column:t(u)})),L.textContent="\xD7",L.addEventListener("click",()=>{a.groupBy(e.filter(D=>D!==u));}),L.draggable=false,m.append(H,L),E.appendChild(m),o.appendChild(E),Co===u&&(Co=null,queueMicrotask(()=>m.focus()));}),Ge.appendChild(o);let l=w("kanuni-datagrid-group-panel-actions"),s=document.createElement("button");s.type="button",s.textContent=v.groupExpandAll,s.addEventListener("click",()=>a.expandAllGroups());let i=document.createElement("button");i.type="button",i.textContent=v.groupCollapseAll,i.addEventListener("click",()=>a.collapseAllGroups()),l.append(s,i),Ge.appendChild(l);}if(St){let e=t=>t.dataTransfer?.types.includes("text/x-kanuni-column")??false;Ge.addEventListener("dragover",t=>{e(t)&&(t.preventDefault(),In(true));}),Ge.addEventListener("dragleave",t=>{let o=t.relatedTarget;o&&Ge.contains(o)||In(false);}),Ge.addEventListener("drop",t=>{In(false);let o=t.dataTransfer?.getData("text/x-kanuni-column");if(o){if(t.preventDefault(),Nt){Nt=null;return}Ua(o);}});}let za="";function Ya(){if(!T)return;let e=[datagridCore.fillText(v.announceRows,{n:a.getVisibleCount()})],t=a.getSort();if(t.length>0){let r=t.map(l=>{let s=a.getColumnModel().getDef(l.columnId),i=s?.headerName??s?.field??l.columnId,u=l.direction==="desc"?v.announceDescending:v.announceAscending;return `${i} ${u}`}).join(", ");e.push(datagridCore.fillText(v.announceSortedBy,{columns:r}));}let o=a.getSelectedCount();o>0&&e.push(datagridCore.fillText(v.announceSelected,{n:o}));let n=e.join(", ");n!==za&&(za=n,Jt.textContent=n);}function ja(){if(!re)return;Tt.textContent="";let e=datagridCore.describeFilter(a.getEffectiveFilter(),a.getColumnModel(),{...fe,labels:{...datagridCore.filterLabels(v),...fe?.labels}});if(!e&&re!=="always"){Tt.style.display="none";return}Tt.style.display="";let t=a.isFilterEnabled();Tt.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=v.filterRemove,o.setAttribute("aria-label",v.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=v.filterToggle,n.setAttribute("aria-label",v.filterToggle),n.setAttribute("data-testid","dg-filter-panel-toggle"),n.addEventListener("change",()=>a.setFilterEnabled(n.checked));let r=w("kanuni-datagrid-filter-panel-text","span");if(r.setAttribute("data-testid","dg-filter-panel-text"),r.textContent=e??v.filterNone,e&&(r.title=e),Tt.append(o,n,r),J){let l=document.createElement("button");l.type="button",l.className="kanuni-datagrid-filter-panel-builder",l.title=v.filterEditBuilder,l.setAttribute("aria-label",v.filterEditBuilder),l.setAttribute("data-testid","dg-filter-panel-builder"),l.textContent="\u25BE",l.addEventListener("click",J),Tt.appendChild(l);}}let Eo=new Set,Li=a.events.on("cellsFlashed",({rowKeys:e,columnIds:t,duration:o})=>{let n=e.length?e.map(i=>`[data-row-key="${CSS.escape(String(i))}"]`).join(","):".kanuni-datagrid-row",r=t.length?t.map(i=>`[data-column-id="${CSS.escape(i)}"]`).join(","):"[data-column-id]",l=[];se.querySelectorAll(n).forEach(i=>{i.querySelectorAll(r).forEach(u=>l.push(u));});for(let i of l)i.classList.remove("kanuni-datagrid-cell--flash");$.offsetWidth;for(let i of l)i.classList.add("kanuni-datagrid-cell--flash");let s=setTimeout(()=>{for(let i of l)i.classList.remove("kanuni-datagrid-cell--flash");Eo.delete(s);},o);Eo.add(s);});function wt(e){let t=e.target,o=t.closest(".kanuni-datagrid-row");if(!o||!se.contains(o))return null;let n=o.getAttribute("data-row-key");if(n===null)return null;let r=a.getRows(),l=r.findIndex(i=>i!==void 0&&String(i.key)===n);if(l===-1)return null;let s=t.closest(".kanuni-datagrid-cell")?.getAttribute("data-column-id")??null;return {node:r[l],rowIndex:l,columnId:s}}let Xa=e=>{let t=wt(e);t&&(K?.(t.node),a.notifyRow("rowClicked",t.node,t.rowIndex),t.columnId&&a.notifyCell("cellClicked",t.node,t.rowIndex,t.columnId));},Ja=e=>{let t=wt(e);if(t){if(oa){let o=Lo(t,true);o&&oa(o);}he?.(t.node),a.notifyRow("rowDoubleClicked",t.node,t.rowIndex),t.columnId&&a.notifyCell("cellDoubleClicked",t.node,t.rowIndex,t.columnId);}};se.addEventListener("click",Xa),se.addEventListener("dblclick",Ja);function Ai(e){let t=0,o=ke.querySelector(`[data-column-id="${CSS.escape(e)}"]`);o&&(t=o.scrollWidth),se.querySelectorAll(`[data-column-id="${CSS.escape(e)}"]`).forEach(n=>{n.scrollWidth>t&&(t=n.scrollWidth);}),t>0&&a.setColumnWidth(e,t+12,true);}function Mi(){if(ye)for(let e of ke.querySelectorAll('[role="columnheader"][data-column-id]')){let t=ye(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 Di(){if(P)for(let e of ke.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 ko=false,Qa=false,_t=null;function Hn(){_t!==null&&(clearTimeout(_t),_t=null);}function Fn(e){Xt.style.display=e?"":"none";}function Kn(){let e=a.getOverlay();if(bn.style.display=e==="noRows"?"":"none",jn===false){Hn(),Fn(false);return}if(!(e==="loading"&&(ko||!Qa))){Hn(),Fn(false);return}if(ko||ta<=0){Hn(),Fn(true);return}_t!==null||Xt.style.display===""||(_t=setTimeout(()=>{_t=null,He||Fn(true);},ta));}let Za=false,Ro=false,xo=false,To=false,He=false,So=new datagridCore.RowMotion;function Ni(){if(Ro=false,!He){if(xo)xo=false,To&&(To=false,at++),lo(),so(),fo(),An();else {let e=$e;lo(),$e!==e?(at++,so(),fo(),An()):a.getPinnedRows("top").length+a.getPinnedRows("bottom").length>0&&An();}Tn(),a.getAnimateRows()&&So.play(se),va(),bo(),Ia(),Di(),Mi(),vo(),ja(),Ya(),Kn();}}function Pn(e){He||(e&&(xo=true),!Ro&&(Ro=true,queueMicrotask(Ni)));}let Ii=[...Q?[a.events.on("focusedRowChanged",e=>Q({rowKey:e.rowKey,row:e.row}))]:[],...Jl.map(e=>a.events.on(e,()=>Pn(true))),...Ql.map(e=>a.events.on(e,()=>{To=true;})),...Zl.map(e=>a.events.on(e,()=>Pn(false))),a.events.on("filterChanged",()=>bi()),...["sortChanged","filterChanged","groupChanged","dataUpdated"].map(e=>a.events.on(e,()=>{a.getAnimateRows()&&So.capture(se);})),a.events.on("rowPinningChanged",()=>{He||(yi(),Pn(true));}),a.events.on("overlayChanged",e=>{ko=e.manual===true&&e.overlay==="loading",He||Kn();}),a.events.on("busyChanged",e=>{Qa=e.background===true,He||Kn();}),a.events.on("paginationChanged",()=>{He||Pn(false);}),a.events.on("bodyScroll",()=>{He||Da();}),a.events.on("cellsRefreshed",()=>{He||xa();}),a.events.on("scrollRequested",e=>{if(He)return;e.scrollTop!==void 0&&(oe.scrollTop=e.scrollTop),e.scrollLeft!==void 0&&(oe.scrollLeft=e.scrollLeft),a.setScroll(oe.scrollTop,Math.abs(oe.scrollLeft));let t=e.scrollTop;t===void 0||Math.abs(oe.scrollTop-t)<=1||setTimeout(()=>{He||Math.abs(oe.scrollTop-t)<=1||(oe.scrollTop=t,a.setScroll(oe.scrollTop,Math.abs(oe.scrollLeft)));},0);}),...xe==="fitGrid"?[a.events.on("gridSizeChanged",()=>a.sizeColumnsToFit())]:[],...xe==="fitCells"?[a.events.on("firstDataRendered",()=>{He||Za||(Za=true,queueMicrotask(()=>{if(!He)for(let e of a.getColumnStates())e.visible&&!e.flex&&ho(e.id);}));})]:[]];xe==="fitGrid"&&a.sizeColumnsToFit();function Lo(e,t=false){if(!e.columnId||e.node.kind!=="data"&&!(t&&e.node.kind==="group"))return null;let o=Ze.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 er=e=>{let t=e.target;if(me){let i=wt(e),u=i?Lo(i):null;u&&me(u,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 r=a.getRows().find(i=>i!==void 0&&String(i.key)===n);if(!r||r.kind!=="data")return;a.handleRowClick(r.key,{ctrlKey:e.ctrlKey||Qr&&!e.shiftKey,metaKey:e.metaKey,shiftKey:e.shiftKey});let l=t.closest(".kanuni-datagrid-cell"),s=l?Ze.find(i=>l.id.endsWith(`-${i.id}`))?.id:void 0;s&&a.focusCell(r.key,s);},tr=e=>{if(!Le)return;let o=e.target.closest(".kanuni-datagrid-cell");if(!o||!se.contains(o)||e.relatedTarget?.closest?.(".kanuni-datagrid-cell")===o)return;let r=wt(e),l=r?Lo(r):null;l&&Le(l,e);};if(se.addEventListener("mousedown",er),se.addEventListener("contextmenu",Ba),Le&&se.addEventListener("mouseover",tr),Zt&&(Ne.addEventListener("dragstart",Zr),Ne.addEventListener("dragover",ei),Ne.addEventListener("drop",ti),Ne.addEventListener("dragend",ni),Ne.addEventListener("dragleave",oi)),$.tabIndex=0,kt){_e=_o({controller:a,element:$},Fe,v,{surfaceClass:()=>Wn(p).replace("kanuni-datagrid-root","").trim(),barHost:$},{isColumnEditable:t=>Mr(a.getColumnModel().getDef(t),t)});let e=$.querySelector(':scope > [data-testid="dg-edit-bar"]');e&&$.insertBefore(e,$.firstChild),_e.engine.setSavedDuration(Xe?.savedDuration??0);}xa();let nr=e=>{let t=_e;if(!t||Yt)return;let o=e.target;if(!o||!(o===$||o===oe||se.contains(o)))return;let n=o.tagName;n==="INPUT"||n==="TEXTAREA"||n==="SELECT"||o.isContentEditable||t.handleKeyDown(e)&&e.stopImmediatePropagation();};kt&&$.addEventListener("keydown",nr,true);let or=e=>{let t=e.target;if(t.tagName==="INPUT"||t.tagName==="TEXTAREA"||t.isContentEditable||je.contains(t)||gt.contains(t)||t.closest?.('[data-testid="dg-edit-form"], [data-testid="dg-edit-bar"], [data-testid="dg-row-message"]')||ke.contains(t))return;if((be||ie||a.isRowPinningEnabled())&&(e.key==="ContextMenu"||e.key==="F10"&&e.shiftKey)){let l=a.getFocus(),s=l?se.querySelector(`[id="${CSS.escape(`${p.gridId}-cell-${String(l.rowKey)}-${l.columnId}`)}"]`):null;if(s){let i=s.getBoundingClientRect();s.dispatchEvent(new MouseEvent("contextmenu",{bubbles:true,cancelable:true,clientX:i.left+16,clientY:i.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"){Dn();return}if(o.type==="activate"){if(he){let l=a.getFocus(),s=l?a.getRows().find(i=>i!==void 0&&i.key===l.rowKey):void 0;s&&he(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(u=>u.state.id===a.getFocus()?.columnId),i=a.ensureVisible(n.rowIndex,s===-1?void 0:s);i&&(i.scrollTop!==void 0&&(oe.scrollTop=i.scrollTop),i.scrollLeft!==void 0&&(oe.scrollLeft=i.scrollLeft),a.setScroll(oe.scrollTop,Math.abs(oe.scrollLeft)));}let r=a.getFocus();$.setAttribute("aria-activedescendant",r?`${p.gridId}-cell-${String(r.rowKey)}-${r.columnId}`:"");};$.addEventListener("keydown",or);let Hi=Qo?datagridCore.attachStateStoring(a,Qo):null,ar=typeof Ue=="object"?Ue.delay??400:400,rr=Ue!==false&&!(typeof Ue=="object"&&Ue.enabled===false),Fi=typeof Ue=="object"?Ue.showOnTruncation!==false:true,ir=typeof Ue=="object"?Ue.trigger??"hover":"hover",lr=rr&&ir!=="focus",Ao=rr&&ir!=="hover",Gn=typeof Ue=="object"&&Ue.interactive===true,dr=`${p.gridId}-tooltip`,It=null,Oe=null,Be=null,Ht=null,Mo=null;function yt(){Oe&&clearTimeout(Oe),Oe=null,Ht=null,Do();}function Do(){Be&&clearTimeout(Be),Be=null,Mo?.removeAttribute("aria-describedby"),Mo=null,It?.remove(),It=null;}let Ki=e=>e.scrollWidth>e.clientWidth+1||e.scrollHeight>e.clientHeight+1;function Pi(e){let o=e.closest(".kanuni-datagrid-row")?.getAttribute("data-row-key"),n=Ze.find(c=>e.id.endsWith(`-${c.id}`));if(!o||!n)return null;let r=a.getRows().find(c=>c!==void 0&&String(c.key)===o);if(!r||r.kind!=="data")return null;let l=n.def,s=po(r.key,n.id,r.data);if(s)return s;let i={value:a.getColumnModel().getCellValue(r.data,n.id),row:r.data,node:r,column:l},u=l.renderTooltip;if(u){let c=u(i);return c===void 0||c===""?null:c}if(typeof l.tooltip=="function")return l.tooltip(i)??null;if(typeof l.tooltip=="string")return l.tooltip;if(l.tooltipField){let c=r.data[l.tooltipField];return c==null?null:String(c)}return Fi&&Ki(e)?e.textContent??null:null}function sr(e,t){let o=Pi(e);if(o===null||o==="")return;Do();let n=e.getBoundingClientRect();It=w(`${Wn(p)} kanuni-datagrid-portal`);let r=w(Gn?"kanuni-datagrid-tooltip kanuni-datagrid-tooltip--interactive":"kanuni-datagrid-tooltip");r.id=dr,r.setAttribute("role","tooltip"),typeof o=="string"?r.textContent=o:r.appendChild(o),r.style.position="fixed",r.style.left=`${n.left}px`,r.style.top=`${n.bottom+4}px`,r.style.zIndex="1001",Gn&&(r.addEventListener("pointerenter",()=>{Be&&clearTimeout(Be),Be=null,Oe&&clearTimeout(Oe),Oe=null;}),r.addEventListener("pointerleave",yt)),It.appendChild(r),document.body.appendChild(It),t&&(e.setAttribute("aria-describedby",dr),Mo=e);}let ur=e=>{if(!lr)return;let t=e.target.closest(".kanuni-datagrid-cell");if(t&&t===Ht){Be&&clearTimeout(Be),Be=null;return}Gn&&It&&Be?(Oe&&clearTimeout(Oe),Oe=null):yt(),!(!t||!se.contains(t))&&(Ht=t,Oe=setTimeout(()=>{Oe=null,!(Ht!==t||!t.isConnected)&&sr(t,false);},ar));},cr=e=>{if(!lr)return;let t=e.relatedTarget;if(!(Ht&&t&&Ht.contains(t))){if(!Gn||!It){yt();return}Be&&clearTimeout(Be),Be=setTimeout(Do,150);}};$.addEventListener("pointerover",ur),$.addEventListener("pointerout",cr),oe.addEventListener("scroll",yt,{passive:true});let pr=-1/0,gr=()=>{pr=Date.now();};Ao&&$.addEventListener("pointerdown",gr);let Gi=Ao?a.events.on("focusChanged",()=>{yt();let e=a.getFocus();e&&(Oe=setTimeout(()=>{if(Oe=null,!$.contains(document.activeElement)&&Date.now()-pr>1500)return;let t=document.getElementById(`${p.gridId}-cell-${String(e.rowKey)}-${e.columnId}`);!t||!se.contains(t)||(Ht=t,sr(t,true));},ar));}):null,fr=e=>{e.key==="Escape"&&yt();};Ao&&$.addEventListener("keydown",fr);let mr=()=>{if(a.setScroll(oe.scrollTop,Math.abs(oe.scrollLeft)),ht)for(let e of br())e.scroller.scrollLeft!==oe.scrollLeft&&(e.scroller.scrollLeft=oe.scrollLeft);};oe.addEventListener("scroll",mr,{passive:true});let ht=null,br=()=>{if(!le||!ht)return [];let e=sn.get(le);return e?[...e].filter(t=>t!==ht):[]},wr=null;if(le){ht={controller:a,scroller:oe};let e=sn.get(le)??new Set;e.add(ht),sn.set(le,e),wr=a.events.on("columnStateChanged",()=>{if(jo.has(le))return;let t=br();if(t.length===0)return;let o=a.getColumnStates();jo.add(le);try{for(let n of t)n.controller.applyColumnStates(o);}finally{jo.delete(le);}});}let yr=()=>{a.setViewportSize(oe.clientWidth,oe.clientHeight),zt&&Jr(oe.clientWidth),oe.style.setProperty("--dg-viewport-width",`${oe.clientWidth}px`);let e=Ne.getBoundingClientRect(),t=Ae.getBoundingClientRect();a.setChromeOffsets(e.top-t.top,t.bottom-e.bottom),datagridCore.calibrateMaxScrollOffset(oe,a);};yr();let $n=null;typeof ResizeObserver<"u"&&($n=new ResizeObserver(yr),$n.observe(oe),$n.observe(Ae)),lo(),so(),fo(),wi(),An(),Tn(),bo(),Ia(),vo(),ja(),Ya(),Kn(),tn?.always&&ro(true);let No=null;if(ve){let e=null,t=()=>{let o=ke.offsetHeight,n=o>0?`${o}px`:null;n!==e&&(e=n,n?Ae.style.setProperty("--dg-header-actual",n):Ae.style.removeProperty("--dg-header-actual"));};t(),typeof ResizeObserver<"u"&&(No=new ResizeObserver(t),No.observe(ke));}return da=true,{controller:a,element:$,setData:e=>a.setData(e),setColumns:e=>a.setColumns(e),destroy:()=>{if(!He){if(He=true,Ii.forEach(e=>e()),on.forEach(e=>e()),on=[],$n?.disconnect(),No?.disconnect(),Ca?.(),Ot&&(Ot=false,Kt--,Kt<=0&&(Kt=0,document.documentElement.classList.remove("kanuni-datagrid-printing"))),wr?.(),le&&ht){let e=sn.get(le);e?.delete(ht),e&&e.size===0&&sn.delete(le),ht=null;}oe.removeEventListener("scroll",mr),se.removeEventListener("mousedown",er),se.removeEventListener("contextmenu",Ba),ze.removeEventListener("contextmenu",Mn),So.dispose(),ct.removeEventListener("contextmenu",Mn),Le&&se.removeEventListener("mouseover",tr),se.removeEventListener("click",Xa),se.removeEventListener("dblclick",Ja),Li(),Hn();for(let e of Eo)clearTimeout(e);$.removeEventListener("keydown",or),$.removeEventListener("keydown",nr,true),_e?.dispose(),_e=null,$.removeEventListener("pointerover",ur),$.removeEventListener("pointerout",cr),$.removeEventListener("keydown",fr),$.removeEventListener("pointerdown",gr),Gi?.(),oe.removeEventListener("scroll",yt),yt(),Hi?.(),Me(false),a.dispose(),$.remove();}}}}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=qn;exports.DETAIL_COLUMN_WIDTH=cn;exports.PRINT_MAX_ROWS=Pr;exports.ROW_DRAG_MIME=Un;exports.ROW_NUMBER_COLUMN_WIDTH=un;exports.attachCellEditing=_o;exports.buildCellEditor=$o;exports.buildDateEditor=Ft;exports.buildEditForm=Bo;exports.buildHeaderMenu=Ho;exports.createGrid=id;exports.measureBestFitWidth=Ko;exports.openConfirmDialog=Oo;
|