@kanunilabs/datagrid 1.9.3 → 1.9.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import {DEFAULT_DATE_FORMAT,toDate,dateDigits,maskDate,portalContainerFor,portalTarget,markPortal,createDebouncedCommit,EditingEngine,isChromeColumn,getGridDictionary,summaryTypeLabels,datePeriodLabels,inferColumns,presetRowHeight,DataGridController,normalizeRowStatus,registerPortalContainer,isRtlLocale,resolveCardView,RowMotion,attachStateStoring,edgeEditableColumn,nextEditableColumn,lookupLabel,formatDateValue,GROUP_COLUMN_ID,rowMessageKeys,normalizeSearch,FILTER_PART_ROW,customFilterInputFromNode,findCustomFilterOperator,customFilterOperators,fillText,resolveToolbar,setCommandContent,pageButtonItems,summaryLabel,formatSummaryValue,summaryKey,FILTER_PART_SET,selectedLabelsFromFilter,FILTER_PART_DEFAULT,allowedSummaryTypes,describeFilter,filterLabels,resolveGridCommand,calibrateMaxScrollOffset,isRowEditMode,periodSuggestionList,parseCustomFilterInput,parseFilterInput,dateDigitCount,parseDateValue,daysInMonth,toIsoDate,placeAnchoredLayer,bandDepth,computeHeaderBands,bandPath,foldText,rowMessageModel,showsCards,downloadBlob,ExportAbortedError,resolveRowStatus,rowStatusClassName,rowStatusDescription,spanRoleAt,cardFields,cardColumnIds,cardHeight,DEFAULT_EDIT_FORM_HEIGHT,staticLookupItems}from'@kanunilabs/datagrid-core';export{DENSITY_ROW_HEIGHT,GRID_COLOR_SCHEMES,THEME_ROW_HEIGHT,isPackagedTheme,presetRowHeight}from'@kanunilabs/datagrid-core';function Wo(d,u){let{controller:g,maxGroupLevels:M,t:C}=u,y=d.columnId,A=g.getColumnModel().getDef(y),L=g.getSort(),x=L.find($=>$.columnId===y),Q=g.getGroupLevels(),U=Q.includes(y),I=A?.sortable!==false,B=g.getColumnStates().find($=>$.id===y)?.pinned??null,se=A?.groupable!==false,_=g.canGroup(),le=[{id:"sort-asc",label:C.sortAsc,disabled:!I||x?.direction==="asc",onSelect:()=>g.setSort([{columnId:y,direction:"asc"}])},{id:"sort-desc",label:C.sortDesc,disabled:!I||x?.direction==="desc",onSelect:()=>g.setSort([{columnId:y,direction:"desc"}])},{id:"sort-clear",label:C.clearSort,disabled:!x,onSelect:()=>g.setSort(L.filter($=>$.columnId!==y))},{id:"sep-1",separator:true},{id:"group",label:U?C.ungroupColumn:C.groupByColumn,disabled:!se,onSelect:()=>{U?g.groupBy(Q.filter($=>$!==y)):g.groupBy([...Q,y].slice(-M));}},{id:"group-panel",label:u.groupPanelVisible?C.hideGroupPanel:C.showGroupPanel,onSelect:u.onToggleGroupPanel},{id:"footer",label:u.footerVisible?C.hideFooter:C.showFooter,onSelect:u.onToggleFooter},{id:"sep-2",separator:true},{id:"hide-column",label:C.hideColumn,disabled:g.getColumnStates().filter($=>$.visible).length<=1,onSelect:()=>g.setColumnVisible(y,false)},{id:"field-chooser",label:C.fieldChooser,onSelect:u.onOpenFieldChooser},{id:"sep-3",separator:true},{id:"best-fit",label:C.bestFit,disabled:A?.resizable===false,onSelect:()=>u.onBestFit(y)},{id:"best-fit-all",label:C.bestFitAll,onSelect:u.onBestFitAll}],Z=g.getColumnStates().filter($=>$.visible&&$.pinned===B).map($=>$.id),Ee=Z.indexOf(y),T=A?.reorderable!==false&&Ee>=0;return le.push({id:"sep-4",separator:true},{id:"move-left",label:C.moveLeft,disabled:!T||Ee<=0,onSelect:()=>g.moveColumn(y,Z[Ee-1])},{id:"move-right",label:C.moveRight,disabled:!T||Ee<0||Ee>=Z.length-1,onSelect:()=>g.moveColumn(y,Z[Ee+2])},{id:"fixed-position",label:C.fixedPosition,items:[{id:"pin-left",label:C.pinLeft,disabled:B==="left",onSelect:()=>g.setColumnPinned(y,"left")},{id:"pin-right",label:C.pinRight,disabled:B==="right",onSelect:()=>g.setColumnPinned(y,"right")},{id:"pin-sticky",label:C.pinSticky,disabled:B==="sticky",onSelect:()=>g.setColumnPinned(y,"sticky")}]},{id:"unpin",label:C.unpin,disabled:B===null,onSelect:()=>g.setColumnPinned(y,null)}),_?le:le.filter($=>$.id!=="group"&&$.id!=="group-panel")}async function qo(d,u){try{let g=u==="csv"?await d.exportToCsv():u==="excel"?await d.exportToExcel():u==="excel-selected"?await d.exportToExcel({selectedOnly:!0}):await d.exportToPdf();return downloadBlob(g.blob,g.fileName),{completed:!0}}catch(g){return g instanceof ExportAbortedError?{completed:false}:{completed:false,error:g instanceof Error?g.message:String(g)}}}var Dr=null;function el(){return typeof document>"u"?null:(Dr??=document.createElement("canvas"),Dr.getContext("2d"))}function Nr(d){let u=getComputedStyle(d);return `${u.fontStyle} ${u.fontWeight} ${u.fontSize} ${u.fontFamily}`}function tl(d){for(let u=d.firstElementChild;u;u=u.nextElementSibling)if(u.tagName!=="MARK")return true;return false}function nl(d){let u=d.map(M=>[M.style.width,M.style.minWidth,M.style.maxWidth]);for(let M of d)M.style.width="max-content",M.style.minWidth="0",M.style.maxWidth="none";let g=0;for(let M of d){let C=Math.ceil(M.getBoundingClientRect().width);C>g&&(g=C);}return d.forEach((M,C)=>{[M.style.width,M.style.minWidth,M.style.maxWidth]=u[C];}),g}function Uo(d,u){let g=el();if(!g)return null;let M=typeof CSS<"u"&&CSS.escape?CSS.escape(u):u.replace(/"/g,'\\"'),C=d.querySelector(`.kanuni-datagrid-header-cell[data-column-id="${M}"]`),y=d.querySelectorAll(`.kanuni-datagrid-cell[data-column-id="${M}"]`);if(!C&&y.length===0)return null;let A=0;if(C){let L=C.querySelector(".kanuni-datagrid-header-label")??C;g.font=Nr(L),A=g.measureText(L.textContent??"").width+44;}if(y.length>0){g.font=Nr(y[0]);let L=[];for(let x=0;x<y.length;x++){if(tl(y[x])){L.push(y[x]);continue}let Q=y[x].textContent??"";if(Q==="")continue;let U=g.measureText(Q).width+20;U>A&&(A=U);}L.length>0&&(A=Math.max(A,nl(L)));}return A===0?null:Math.round(Math.min(640,Math.max(48,A)))}function Fr(d){let u=Number(d.weekStartsOn);return Number.isInteger(u)&&u>=0&&u<=6?u:0}function pl(d){let u=[d.weekdaySu,d.weekdayMo,d.weekdayTu,d.weekdayWe,d.weekdayTh,d.weekdayFr,d.weekdaySa],g=Fr(d);return [...u.slice(g),...u.slice(0,g)]}function gl(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 fl(d,u){return !d||!u?false:d.getFullYear()===u.getFullYear()&&d.getMonth()===u.getMonth()&&d.getDate()===u.getDate()}var Hr="http://www.w3.org/2000/svg";function ml(){let d=document.createElementNS(Hr,"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 u=document.createElementNS(Hr,"path");return u.setAttribute("d","M3 4h10v9H3z M3 6.5h10 M5.5 2.5v2 M10.5 2.5v2"),u.setAttribute("fill","none"),u.setAttribute("stroke","currentColor"),u.setAttribute("stroke-width","1.3"),u.setAttribute("stroke-linecap","round"),d.appendChild(u),d}function _t(d){let{t:u,format:g=DEFAULT_DATE_FORMAT,autoFocus:M=true}=d,C=gl(u),y=pl(u),A=document.createElement("span");A.className="kanuni-datagrid-date-editor";let L=document.createElement("input");L.type="text",L.inputMode="numeric",L.autocomplete="off",L.placeholder=g,d.ariaLabel&&L.setAttribute("aria-label",d.ariaLabel),d.testId&&L.setAttribute("data-testid",d.testId),d.columnId&&L.setAttribute("data-column-id",d.columnId),d.disabled&&(L.disabled=true);let x=null,Q=false,U=null,I=toDate(d.value),B=I??new Date,se=()=>x===null?formatDateValue(d.value,g):maskDate(x,g),_=()=>x===null?null:parseDateValue(maskDate(x,g),g),le=()=>x!==null&&x.length===dateDigitCount(g)&&_()===null,Z=()=>{let P=le()||!!d.invalid;L.className=`kanuni-datagrid-editor${P?" kanuni-datagrid-editor--invalid":""}`,P?L.setAttribute("aria-invalid","true"):L.removeAttribute("aria-invalid");};L.value=se(),Z();let Ee=P=>{if(P===null){d.onChange(null);return}d.onChange(d.value instanceof Date?P:toIsoDate(P));},T=()=>{if(!U)return;if(!L.isConnected){j();return}let P=L.getBoundingClientRect(),he=placeAnchoredLayer({anchor:{left:P.left,top:P.top,bottom:P.bottom},width:U.offsetWidth,height:U.offsetHeight,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight});U.style.left=`${he.left}px`,U.style.top=`${he.top}px`;},$=()=>T();function Y(){if(!U)return;U.textContent="";let P=document.createElement("div");P.className="kanuni-datagrid-date-popup-head";let he=document.createElement("button");he.type="button",he.setAttribute("aria-label",u.datePreviousMonth),he.setAttribute("data-testid","dg-date-prev"),he.textContent="\u2039",he.addEventListener("click",()=>{B=new Date(B.getFullYear(),B.getMonth()-1,1),Y();});let Ae=document.createElement("span");Ae.setAttribute("data-testid","dg-date-title"),Ae.textContent=`${C[B.getMonth()]} ${B.getFullYear()}`;let ue=document.createElement("button");ue.type="button",ue.setAttribute("aria-label",u.dateNextMonth),ue.setAttribute("data-testid","dg-date-next"),ue.textContent="\u203A",ue.addEventListener("click",()=>{B=new Date(B.getFullYear(),B.getMonth()+1,1),Y();}),P.append(he,Ae,ue);let f=document.createElement("div");f.className="kanuni-datagrid-date-popup-grid",f.setAttribute("role","grid");for(let pe of y){let z=document.createElement("span");z.className="kanuni-datagrid-date-weekday",z.setAttribute("role","columnheader"),z.textContent=pe,f.appendChild(z);}let D=(new Date(B.getFullYear(),B.getMonth(),1).getDay()-Fr(u)+7)%7,fe=daysInMonth(B.getFullYear(),B.getMonth()+1);for(let pe=0;pe<42;pe++){let z=pe-D+1,ie=new Date(B.getFullYear(),B.getMonth(),z),ye=z<1||z>fe,Se=fl(ie,_()??I),V=document.createElement("button");V.type="button",V.setAttribute("role","gridcell"),V.className=`kanuni-datagrid-date-day${ye?" kanuni-datagrid-date-day--outside":""}${Se?" kanuni-datagrid-date-day--selected":""}`,V.setAttribute("aria-selected",String(Se)),V.setAttribute("data-testid","dg-date-day"),V.setAttribute("data-date",toIsoDate(ie)),V.textContent=String(ie.getDate()),V.addEventListener("click",()=>W(ie)),f.appendChild(V);}U.append(P,f);}function re(){if(Q)return;Q=true,X.setAttribute("aria-expanded","true"),B=_()??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} ${u.dateCalendar}`:u.dateCalendar),U.addEventListener("mousedown",he=>he.preventDefault());let P=portalContainerFor(A);portalTarget(P).appendChild(markPortal(U,P)),window.addEventListener("scroll",$,true),window.addEventListener("resize",$),d.onPortalOpen?.(j),Y(),T();}function j(){Q&&(Q=false,X.setAttribute("aria-expanded","false"),window.removeEventListener("scroll",$,true),window.removeEventListener("resize",$),U?.remove(),U=null);}function W(P){x=null,j(),Ee(P),L.value=formatDateValue(d.value instanceof Date?P:toIsoDate(P),g),Z(),L.focus({preventScroll:true});}function ee(){if(x===null)return;if(x.length===0){Ee(null),x=null,L.value=se(),Z();return}let P=_();P&&Ee(P),x=null,L.value=se(),Z();}L.addEventListener("input",()=>{x=dateDigits(L.value,g),L.value=maskDate(x,g),Z();}),L.addEventListener("keydown",P=>{if(P.key==="Escape"){if(P.preventDefault(),P.stopPropagation(),Q){j();return}x=null,d.onCancel();return}if(Q){let he=P.key==="ArrowLeft"?-1:P.key==="ArrowRight"?1:P.key==="ArrowUp"?-7:P.key==="ArrowDown"?7:0;if(he!==0){P.preventDefault(),P.stopPropagation();let Ae=_()??I??new Date,ue=new Date(Ae.getFullYear(),Ae.getMonth(),Ae.getDate()+he);x=dateDigits(formatDateValue(ue,g),g),L.value=maskDate(x,g),B=ue,Y(),Z();return}if(P.key==="Enter"){P.preventDefault(),P.stopPropagation();let Ae=_();j(),Ae&&W(Ae);return}}if(P.key==="Enter"){P.preventDefault(),P.stopPropagation(),ee(),d.onCommit();return}if(P.key==="Tab"){ee(),j(),d.onTab&&(P.preventDefault(),P.stopPropagation(),d.onTab(P.shiftKey));return}if(P.key.length===1&&!P.ctrlKey&&!P.metaKey&&!/\d/.test(P.key)){P.preventDefault();return}P.stopPropagation();}),L.addEventListener("blur",()=>{Q||ee();});let X=document.createElement("button");return X.type="button",X.className="kanuni-datagrid-date-button",X.setAttribute("aria-label",d.ariaLabel?`${d.ariaLabel} \u2014 ${u.dateOpenCalendar}`:u.dateOpenCalendar),X.setAttribute("aria-expanded","false"),X.setAttribute("data-testid","dg-date-open"),d.disabled&&(X.disabled=true),X.tabIndex=-1,X.addEventListener("mousedown",P=>P.preventDefault()),X.addEventListener("click",()=>{Q?j():re(),L.focus({preventScroll:true});}),X.appendChild(ml()),A.append(L,X),M&&queueMicrotask(()=>{L.isConnected&&(L.focus({preventScroll:true}),L.select());}),A}function Kr(d,u){return d==null?"":u==="date"&&d instanceof Date?d.toISOString().slice(0,10):String(d)}function Pr(d,u){if(u){let g=document.createElement("span");g.id="kanuni-datagrid-editor-error",g.setAttribute("role","alert"),g.className="kanuni-datagrid-editor-error",g.textContent=u,d.appendChild(g);}return d}function jo(d){let{value:u,dataType:g,error:M,seeded:C=false}=d,y=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"),y.appendChild(x),y}if(d.options&&d.options.length>0&&d.renderLookup)return y.appendChild(d.renderLookup({options:d.options,value:u,matchMode:d.matchMode,allowCustom:d.allowCustom,invalid:!!M,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)})),Pr(y,M);if(g==="date"&&d.t)return y.appendChild(_t({value:u,format:d.dateFormat,invalid:!!M,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)})),Pr(y,M);let A=document.createElement("input");A.className=`kanuni-datagrid-editor${M?" kanuni-datagrid-editor--invalid":""}`,A.setAttribute("data-testid","dg-cell-editor"),A.setAttribute("aria-invalid",String(!!M)),M&&A.setAttribute("aria-errormessage","kanuni-datagrid-editor-error");let L=false;if(g==="boolean"?(A.type="checkbox",A.checked=u===true,A.addEventListener("change",()=>d.onChange(A.checked))):g==="number"?(A.type=Number.isNaN(Number(u))&&u!==null&&u!==void 0&&u!==""?"text":"number",A.value=Kr(u,g),A.addEventListener("input",()=>d.onChange(A.value===""?null:Number(A.value)))):(A.type="text",A.value=Kr(u,g),A.addEventListener("input",()=>d.onChange(A.value))),A.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(),L=true,d.onTab(x.shiftKey?-1:1)):x.key==="Escape"?(x.preventDefault(),x.stopPropagation(),d.onCancel()):x.stopPropagation());}),A.addEventListener("blur",()=>{L||d.onCommit("none");}),y.appendChild(A),M){let x=document.createElement("span");x.id="kanuni-datagrid-editor-error",x.setAttribute("role","alert"),x.className="kanuni-datagrid-editor-error",x.textContent=M,y.appendChild(x);}return queueMicrotask(()=>{if(A.isConnected&&(A.focus({preventScroll:true}),A.type!=="checkbox"))if(C){if(A.type==="text"||A.type==="search"){let x=A.value.length;A.setSelectionRange(x,x);}}else A.select();}),y}var yl=0;function Xo(d){return new Promise(u=>{let g=document.createElement("div");g.className=`kanuni-datagrid-detached kanuni-datagrid-dialog-root${d.surfaceClass?` ${d.surfaceClass}`:""}`,g.setAttribute("role","presentation");let M=document.activeElement,C=_=>{document.removeEventListener("keydown",y,true);let le=g.contains(document.activeElement);g.remove(),le&&M?.isConnected&&M.focus({preventScroll:true}),u(_);},y=_=>{if(_.key==="Escape"){_.stopPropagation(),C(false);return}if(_.key==="Tab"){let le=Array.from(I.querySelectorAll("button:not([disabled])"));if(le.length===0)return;let Z=le.indexOf(document.activeElement),Ee=_.shiftKey?Z<=0?le.length-1:Z-1:Z===le.length-1?0:Z+1;_.preventDefault(),_.stopPropagation(),le[Ee].focus();}};document.addEventListener("keydown",y,true);let A=document.createElement("div");A.className="kanuni-datagrid-dialog-overlay",A.addEventListener("mousedown",()=>C(false));let L=document.createElement("div");L.className="kanuni-datagrid-dialog",L.setAttribute("role","alertdialog"),L.setAttribute("aria-modal","true");let x=`dg-dialog-${++yl}`;L.setAttribute("aria-labelledby",`${x}-title`),L.setAttribute("aria-describedby",`${x}-message`),L.setAttribute("data-testid","dg-dialog");let Q=document.createElement("div");Q.className="kanuni-datagrid-dialog-title",Q.id=`${x}-title`,Q.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 _=document.createElement("button");_.type="button",_.setAttribute("data-testid","dg-dialog-cancel"),_.textContent=d.cancelLabel,_.addEventListener("click",()=>C(false)),I.appendChild(_);}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",()=>C(true)),I.appendChild(B),L.append(Q,U,I),g.append(A,L);let se=portalContainerFor(d.anchor);portalTarget(se).appendChild(markPortal(g,se)),B.focus();})}function Cl(d,u){switch(d){case "number":return u==null||u===""||!Number.isNaN(Number(u))?"number":"text";case "boolean":return "checkbox";default:return "text"}}function vl(d,u){if(u==="number"){if(d==="")return null;let g=Number(d);return Number.isNaN(g)?d:g}return d}function Jo(d){let{t:u,popup:g=false,inline:M=false}=d,C=document.createElement("div");C.className=`kanuni-datagrid-edit-form${M?" kanuni-datagrid-edit-form--inline":""}`,C.setAttribute("data-testid","dg-edit-form"),C.setAttribute("data-row-key",String(d.rowKey)),g&&C.setAttribute("data-popup",""),C.setAttribute("role",g?"dialog":"group"),g&&C.setAttribute("aria-modal","true"),C.setAttribute("aria-label",d.isNew?u.formAddTitle:u.formEditTitle);let y=document.createElement("div");y.className="kanuni-datagrid-edit-form-header";let A=document.createElement("strong");A.textContent=d.isNew?u.formAddTitle:u.formEditTitle,y.appendChild(A);let L=document.createElement("div");L.className="kanuni-datagrid-edit-form-error",L.setAttribute("role","alert"),L.setAttribute("data-testid","dg-form-error"),L.style.display="none";let x=document.createElement("div");x.className="kanuni-datagrid-edit-form-fields";let Q=new Map,U=(T,$)=>{let Y=d.getValue(T.columnId),re=d.getSaving()||!T.editable,j=`dg-field-${String(d.rowKey)}-${T.columnId}`;if(T.lookup&&!d.renderLookup){let ee=document.createElement("input");ee.id=j,ee.type="text",ee.className="kanuni-datagrid-edit-form-input",ee.setAttribute("data-testid",j),ee.disabled=true,ee.readOnly=true;let X=T.lookup.options?.find(P=>Object.is(P.value,Y));return ee.value=X?X.label:Y==null?"":String(Y),ee}if(T.lookup&&d.renderLookup){let ee=document.createElement("div");if(ee.className="kanuni-datagrid-edit-form-lookup",T.lookup.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",j),ee.appendChild(X),ee}return ee.appendChild(d.renderLookup({options:T.lookup.options,value:Y,matchMode:T.lookup.matchMode,allowCustom:T.lookup.allowCustom,invalid:!!$,autoFocus:false,testId:j,columnId:T.columnId,ariaLabel:T.label,surfaceClass:d.surfaceClass,onPortalOpen:d.onPortalOpen,noMatchText:u.editNoMatch,onChange:X=>d.onChange(T.columnId,X),commitOnPick:false,onCommit:()=>d.onSave(),onCancel:d.onCancel})),ee}if(T.dataType==="date"){let ee=document.createElement("div");return ee.className="kanuni-datagrid-edit-form-lookup",ee.appendChild(_t({value:Y,format:T.dateFormat,invalid:!!$,disabled:re,autoFocus:false,testId:j,columnId:T.columnId,ariaLabel:T.label,surfaceClass:d.surfaceClass,onPortalOpen:d.onPortalOpen,t:u,onChange:X=>d.onChange(T.columnId,X),onCommit:()=>d.onSave(),onCancel:d.onCancel})),ee}let W=document.createElement("input");return W.id=j,W.className="kanuni-datagrid-edit-form-input",W.setAttribute("data-testid",j),W.disabled=re,T.dataType==="boolean"?(W.type="checkbox",W.checked=Y===true,W.addEventListener("change",()=>d.onChange(T.columnId,W.checked)),W):(W.type=Cl(T.dataType,Y),$&&W.setAttribute("aria-invalid","true"),W.value=Y==null?"":String(Y),W.addEventListener("input",()=>d.onChange(T.columnId,vl(W.value,T.dataType))),W)},I=d.getErrors();for(let T of d.fields){let $=document.createElement("label");$.className="kanuni-datagrid-edit-form-field",$.setAttribute("data-field-id",T.columnId);let Y=document.createElement("span");Y.className="kanuni-datagrid-edit-form-label",Y.textContent=T.label;let re=document.createElement("span");re.style.display="contents",re.appendChild(U(T,I[T.columnId]??null));let j=document.createElement("span");j.className="kanuni-datagrid-edit-form-message",j.setAttribute("role","alert"),j.style.display="none",$.append(Y,re,j),x.appendChild($),Q.set(T.columnId,{wrap:$,message:j,controlHost:re,field:T});}let B=document.createElement("div");B.className="kanuni-datagrid-edit-form-footer";let se=typeof navigator<"u"&&/Mac|iP(hone|ad)/.test(navigator.platform??""),_=document.createElement("span");_.className="kanuni-datagrid-edit-form-hint",_.textContent=u.formShortcut.replace("{key}",se?"\u2318":"Ctrl");let le=document.createElement("button");le.type="button",le.setAttribute("data-testid","dg-form-cancel"),le.textContent=u.cancel,le.addEventListener("click",()=>d.onCancel());let Z=document.createElement("button");Z.type="button",Z.className="kanuni-datagrid-edit-form-save",Z.setAttribute("data-testid","dg-form-save"),Z.textContent=u.save,Z.addEventListener("click",()=>d.onSave()),B.append(_,le,Z),C.append(y,L,x,B),C.addEventListener("keydown",T=>{if(T.key==="Escape"){T.preventDefault(),T.stopPropagation(),d.onCancel();return}if(T.key==="Enter"&&(T.ctrlKey||T.metaKey)){T.preventDefault(),T.stopPropagation(),d.onSave();return}if(T.key==="Enter"&&!(T.target instanceof HTMLButtonElement)){T.preventDefault();return}if(T.key!=="Tab"||!g)return;let $=Array.from(C.querySelectorAll("input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled])"));if($.length===0)return;let Y=$[0],re=$[$.length-1];!T.shiftKey&&document.activeElement===re?(T.preventDefault(),Y.focus()):T.shiftKey&&document.activeElement===Y&&(T.preventDefault(),re.focus());});let Ee=()=>{let T=d.getErrors(),$=d.getSaving(),Y=d.getSaveError();L.textContent=Y??"",L.style.display=Y?"":"none",Z.disabled=$,le.disabled=$,Z.textContent=$?u.editSaving:u.save;for(let[j,W]of Q){let ee=T[j]??null;W.message.textContent=ee??"",W.message.style.display=ee?"":"none",ee?W.wrap.setAttribute("data-invalid",""):W.wrap.removeAttribute("data-invalid");let X=W.controlHost.querySelector("input, .kanuni-datagrid-editor");X&&X.classList.toggle("kanuni-datagrid-editor--invalid",!!ee);}let re=Object.keys(T)[0];re&&Q.get(re)?.wrap.querySelector("input:not([disabled])")?.focus();};return queueMicrotask(()=>{if(!C.isConnected)return;let T=C.querySelector("input:not([disabled]), select:not([disabled]), textarea:not([disabled])");T?.focus(),T instanceof HTMLInputElement&&T.type==="text"&&T.select(),d.onNaturalHeight&&d.onNaturalHeight(C.clientHeight-x.clientHeight+x.scrollHeight);}),{element:C,refresh:Ee,setLookupOptions:(T,$)=>{let Y=Q.get(T);if(!Y)return;Y.field.lookup={...Y.field.lookup,options:$};let re=d.getErrors();Y.controlHost.textContent="",Y.controlHost.appendChild(U(Y.field,re[T]??null));},dispose:()=>C.remove()}}function $r(d){let{grid:u,engine:g,mode:M,t:C,extension:y}=d,A=u.controller,L=isRowEditMode(M),x=null,Q=async()=>{x=null;let E=await g.saveChanges();if(E.saved||E.superseded){V();return}x={message:E.error??C.editSaveFailed,rowKey:E.rowKey,columnId:E.columnId},V(),E.rowKey!==void 0&&E.columnId!==void 0&&(A.revealRow(E.rowKey),A.focusCell(E.rowKey,E.columnId));},U=()=>{x=null,g.cancelChanges();},I=null,B=null,se=null,_=null,le=null,Z=new Map,Ee=0,T=E=>(I=null,g.beginRowEdit(E)),$=null,Y=(E,G,ne)=>!L||g.isEditingRow()||!g.canEditRow(E)||(A.scrollToCell(E,G),!T(E))?false:(M==="row"&&ne!==void 0&&($=G,g.setRowEditValue(G,ne)),true),re=async()=>{if(!g.getRowSession())return false;let G=await g.saveRowEdit(A.getVisualColumnIds());return I=G.saved?null:G.error??null,G.saved?d.focusGrid():de(),G.saved},j=()=>{I=null,g.cancelRowEdit(),d.focusGrid();},W=E=>{let G=A.getColumnLayout(),ne=A.getColumnModel(),Ce=++Ee;return [...G.left,...G.center,...G.right].filter(ke=>!isChromeColumn(ke.state.id)).map(ke=>{let me=ke.state.id,De=ne.getDef(me),gt=y.formLookup?y.formLookup(E,me,Oe=>{Ee===Ce&&se?.setLookupOptions(me,Oe);}):De?.lookup?{options:staticLookupItems(De)??[]}:void 0;return {columnId:me,label:De?.headerName??De?.field??me,dataType:ne.getEditorDataType(me),editable:g.canUpdate(E,me),dateFormat:De?.dateFormat,lookup:gt}})},ee=()=>le??d.formHeight??DEFAULT_EDIT_FORM_HEIGHT,X=(E,G)=>Jo({rowKey:E,fields:W(E),getValue:ne=>g.rowEditValue(ne),getErrors:()=>g.getRowSession()?.errors??{},getSaving:()=>g.getRowSession()?.saving??false,getSaveError:()=>I,isNew:g.getRowSession()?.isNew??false,popup:!G,inline:G,surfaceClass:d.surfaceClass(),renderLookup:y.renderLookup,onPortalOpen:d.trackPortal,t:C,onNaturalHeight:G?ne=>{let Ce=Math.ceil(ne);if(Ce>0&&Ce!==le){le=Ce;let ke=g.getRowSession();ke&&M==="form"&&A.setEditFormRow(ke.rowKey,{height:ee(),atTop:ke.isNew});}}:void 0,onChange:(ne,Ce)=>g.setRowEditValue(ne,Ce),onSave:()=>{re();},onCancel:j}),P=()=>{Z.clear(),se?.dispose(),se=null,_?.remove(),_=null;};function he(){if(!L)return;let E=g.getRowSession();if(E&&M!=="row"?u.element.setAttribute("data-row-session",M):u.element.removeAttribute("data-row-session"),!E){B!==null&&(B=null,le=null,P(),M==="form"&&A.setEditFormRow(null));return}if(B===E.rowKey){se?.refresh();return}if(P(),B=E.rowKey,M==="form"){A.setEditFormRow(E.rowKey,{height:ee(),atTop:E.isNew}),A.revealRow(E.rowKey);return}if(M==="popup"){let G=d.surfaceClass();_=document.createElement("div"),_.className=`kanuni-datagrid-detached kanuni-datagrid-edit-popup${G?` ${G}`:""}`;let ne=document.createElement("div");ne.className="kanuni-datagrid-edit-popup-overlay",ne.addEventListener("mousedown",()=>j()),se=X(E.rowKey,false),_.append(ne,se.element);let Ce=portalContainerFor(d.barHost);portalTarget(Ce).appendChild(markPortal(_,Ce));return}A.revealRow(E.rowKey),queueMicrotask(()=>{let G=g.getRowSession();if(!G||G.rowKey!==B)return;let ne=u.element.querySelectorAll('[data-testid="dg-row-editor"]');if(ne.length===0)return;let Ce=A.getFocus(),me=(Ce&&String(Ce.rowKey)===String(G.rowKey)?u.element.querySelector(`[data-testid="dg-row-editor"][data-column-id="${CSS.escape(Ce.columnId)}"]`):null)??ne[0],De=$!==null&&me.getAttribute("data-column-id")===$;$=null,me.focus({preventScroll:true}),me instanceof HTMLInputElement&&(De?me.setSelectionRange(me.value.length,me.value.length):me.select());});}let Ae=E=>{let G=Z.get(E);if(G)return G;let ne=A.getColumnModel(),Ce=ne.getDef(E),ke=ne.getEditorDataType(E),me=g.rowEditValue(E),De=g.getRowSession()?.errors[E]??null,gt=Ce?.headerName??E,Oe,ft=y.resolveLookup?.(B,E);if(ft&&ft.options!==void 0&&y.renderLookup)Oe=y.renderLookup({options:ft.options??[],value:me,matchMode:ft.matchMode,allowCustom:ft.allowCustom,invalid:!!De,autoFocus:false,testId:"dg-row-editor",columnId:E,ariaLabel:gt,surfaceClass:d.surfaceClass(),noMatchText:C.editNoMatch,onChange:Re=>g.setRowEditValue(E,Re),commitOnPick:false,onCommit:()=>{re();},onCancel:j});else if(ke==="date")Oe=_t({value:me,format:Ce?.dateFormat,invalid:!!De,autoFocus:false,testId:"dg-row-editor",columnId:E,ariaLabel:gt,surfaceClass:d.surfaceClass(),onPortalOpen:d.trackPortal,t:C,onChange:Re=>g.setRowEditValue(E,Re),onCommit:()=>{re();},onCancel:j});else {let Re=document.createElement("input");Re.className=`kanuni-datagrid-editor${De?" kanuni-datagrid-editor--invalid":""}`,Re.setAttribute("data-testid","dg-row-editor"),Re.setAttribute("data-column-id",E),Re.setAttribute("aria-label",gt),De&&(Re.title=De),ke==="boolean"?(Re.type="checkbox",Re.checked=me===true,Re.addEventListener("change",()=>g.setRowEditValue(E,Re.checked))):(Re.type=ke==="number"?"number":"text",Re.value=me==null?"":String(me),Re.addEventListener("input",()=>{let Be=Re.value;g.setRowEditValue(E,ke==="number"?Be===""?null:Number(Be):Be);})),Re.addEventListener("keydown",Be=>{Be.key==="Enter"?(Be.preventDefault(),Be.stopPropagation(),re()):Be.key==="Escape"?(Be.preventDefault(),Be.stopPropagation(),j()):Be.stopPropagation();}),Oe=Re;}return Z.set(E,Oe),Oe},ue=document.createElement("div");ue.className="kanuni-datagrid-filter-bar kanuni-datagrid-edit-bar",ue.setAttribute("data-testid","dg-edit-bar"),y.decorateBar?.(ue);let f=(E,G,ne,Ce)=>{let ke=document.createElement("button");return ke.type="button",ne&&(ke.className="kanuni-datagrid-filter-primary"),ke.setAttribute("data-testid",E),ke.textContent=G,ke.addEventListener("click",Ce),ke},N=E=>{let G=document.createElement("span");return G.className="kanuni-datagrid-edit-form-error",G.setAttribute("data-testid",E),G.style.display="none",G},D=null,fe=null,pe=null,z=null,ie=null,ye=null,Se=null;M==="batch"&&(D=f("dg-save-changes",C.editSaveChanges,true,()=>{Q();}),fe=f("dg-discard-changes",C.editDiscardChanges,false,U),pe=N("dg-save-error"),ue.append(D,fe,pe)),M==="row"&&(z=document.createElement("span"),z.setAttribute("data-testid","dg-row-editing"),z.className="kanuni-datagrid-filter-active",z.style.display="none",ie=f("dg-save-row",C.editSaveRow,true,()=>{re();}),ie.style.display="none",ye=f("dg-cancel-row",C.cancel,false,j),ye.style.display="none",Se=N("dg-row-save-error"),ue.append(z,ie,ye,Se)),ue.childElementCount>0&&d.barHost?.appendChild(ue);function V(){let E=g.hasChanges();if(D&&(D.style.display=E?"":"none",D.textContent=C.editSaveCount.replace("{n}",String(g.getChanges().length)),D.disabled=g.isSaving()),fe&&(fe.style.display=E?"":"none"),pe&&(pe.textContent=x?.message??"",pe.style.display=x?"":"none"),z&&ie&&ye&&Se){let G=g.getRowSession(),ne=G?"":"none";z.style.display=ne,ie.style.display=ne,ye.style.display=ne,G&&(z.textContent=G.isNew?C.formAddTitle:C.editEditingRow.replace("{row}",String(G.rowKey)),ie.disabled=G.saving,ie.textContent=G.saving?C.editSaving:C.editSaveRow,ye.disabled=G.saving),Se.textContent=I??"",Se.style.display=G&&I?"":"none";}ue.style.display=Array.from(ue.children).some(G=>G.style.display!=="none")?"":"none";}V();function de(){x=null,V(),he();}return {rowModeActive:L,beginRowEdit:T,openRowFromKeys:Y,saveRowEdit:re,cancelRowEdit:j,saveChanges:Q,cancelChanges:U,renderRowCell:E=>{if(!(M!=="row"||E.node.kind!=="data"||isChromeColumn(E.columnId))&&g.isEditingRow(E.node.key))return g.canUpdate(E.node.key,E.columnId)?Ae(E.columnId):d.defaultContent(E,g.rowEditValue(E.columnId))},renderEditForm:E=>{if(M!=="form")return;let G=g.getRowSession();if(!(!G||G.rowKey!==E))return (!se||se.element.getAttribute("data-row-key")!==String(E))&&(se?.dispose(),se=X(E,true)),se.element},onCellDoubleClick:E=>L?(E.node.kind==="data"&&!g.isEditingRow()&&g.canEditRow(E.node.key)&&T(E.node.key),true):false,handleRowKeys:E=>!g.isEditingRow()||E.target?.closest?.('[data-testid="dg-edit-form"]')?false:E.key==="Enter"?(E.preventDefault(),re(),true):E.key==="Escape"?(E.preventDefault(),j(),true):false,sync:de,dispose:()=>{P(),M==="form"&&B!==null&&A.setEditFormRow(null),B=null,u.element.removeAttribute("data-row-session"),ue.remove();}}}function Zo(d,u,g,M,C={}){let y=d.controller,A=u.mode??"cell";u.formLabels&&(g={...g,...u.formLabels});let L=C.isColumnEditable??(f=>y.getColumnModel().getDef(f)?.editable!==false),x=()=>{y.refreshCells(),W.sync(),C.onChange?.(),Q.schedule("footer",()=>y.refreshSummaries());},Q=createDebouncedCommit(150),U=f=>y.getRowByKey(f),I=new EditingEngine({mode:A,messages:g,onChange:x,onAutoSaveFailed:f=>le(f),onCellValueChanged:f=>y.notifyCellValueChanged(f),onEditingStarted:f=>y.notifyEditingStarted(f),onEditingStopped:f=>y.notifyEditingStopped(f),onRowEditingStarted:f=>y.notifyRowEditingStarted(f),onRowEditingStopped:f=>y.notifyRowEditingStopped(f),editableColumns:f=>{let N=y.getColumnLayout();return [...N.left,...N.center,...N.right].map(D=>D.state.id).filter(D=>!isChromeColumn(D)&&I.canUpdate(f,D))},readValue:(f,N)=>{let D=U(f);return D?y.getColumnModel().getStoredValue(D,N):void 0},formatForEdit:(f,N,D)=>y.formatCellForEdit(N,D),parseFromEdit:(f,N,D)=>y.parseCellFromEdit(N,D,f),readRow:U,isColumnEditable:L,applyValue:(f,N,D)=>y.writeCellValue(f,N,D),storedValue:(f,N,D)=>y.valueAfterWrite(f,N,D),onSave:f=>u.onSave?.(f),...C.engine});y.setPendingValueReader({effectiveValue:(f,N,D)=>I.changes.effectiveValue(f,N,D),effectiveRow:(f,N)=>I.changes.applyPendingTo(f,N),hasPending:()=>I.changes.hasChanges()}),y.setEditingDelegate({startEditingCell:(f,N)=>(y.scrollToCell(f,N),I.beginEdit(f,N)),stopEditing:async f=>{if(I.isEditingRow())return f?(W.cancelRowEdit(),true):W.saveRowEdit();if(!I.getSession())return false;if(f)return I.cancelEdit(),_(),true;let N=I.commitEdit();return N&&_(),N},getEditingCells:()=>{let f=I.getRowSession();if(f)return y.getVisualColumnIds().filter(D=>!isChromeColumn(D)&&I.canUpdate(f.rowKey,D)).map(D=>({rowKey:f.rowKey,columnId:D}));let N=I.getSession();return N?[{rowKey:N.rowKey,columnId:N.columnId}]:[]}});let B=false,se=[y.events.on("rowsChanged",f=>{B=f.removed===0;}),y.events.on("dataUpdated",()=>{let f=B;B=false,!f&&I.retainKeys(new Set(y.getDataRows().map(N=>N.key)));})];function _(){let f=d.element.querySelector(".kanuni-datagrid-scroller");(f&&f.tabIndex>=0?f:d.element).focus({preventScroll:true});}function le(f){let N=f.columnId!==void 0?y.getColumnModel().getDef(f.columnId)?.headerName??f.columnId:null,D=f.error??g.editSaveFailed;Xo({title:g.editCannotSave,message:N?`${N}: ${D}`:D,confirmLabel:g.ok,surfaceClass:M.surfaceClass(),anchor:d.element}),f.rowKey!==void 0&&f.columnId!==void 0&&(y.revealRow(f.rowKey),y.focusCell(f.rowKey,f.columnId));}let Z=(f,N={})=>{let D=I.getSession(),fe=D?{rowKey:D.rowKey,columnId:D.columnId}:y.getFocus();if(!fe||!I.commitEdit())return false;let pe=y.getColumnModel().runtime().filter(V=>V.state.visible).map(V=>V.state.id);if(edgeEditableColumn(pe,L,1)===null)return false;let z=y.getRows(),ie=z.findIndex(V=>V.key===fe.rowKey);if(ie<0)return false;let ye=nextEditableColumn(pe,L,fe.columnId,f);if(ye===null){if(N.cycle===false)return false;let V=f;do ie+=V;while(ie>=0&&ie<z.length&&z[ie]?.kind!=="data");if(ie<0||ie>=z.length)return false;ye=edgeEditableColumn(pe,L,f);}let Se=z[ie];return !Se||Se.kind!=="data"?false:(y.focusCell(Se.key,ye),y.scrollToCell(Se.key,ye),N.open===true?I.beginEdit(Se.key,ye):(_(),true))},Ee=f=>{if(I.getSession())return false;let N=y.getFocus();if(!N||!L(N.columnId))return false;let D=y.getColumnModel().getEditorDataType(N.columnId);if(D==="boolean"||D==="date")return false;let fe=D==="number"?Number.isNaN(Number(f))?null:Number(f):f;return fe===null?false:W.rowModeActive?W.openRowFromKeys(N.rowKey,N.columnId,fe):(y.scrollToCell(N.rowKey,N.columnId),I.beginEdit(N.rowKey,N.columnId,fe))},T=null,$=new Set,Y=f=>{let N=()=>{$.delete(N),f();};$.add(N);},re=()=>{for(let f of [...$])f();$.clear();},j=(f,N)=>{let D=y.getColumnModel().getDef(f.columnId),fe=f.node.data;if(D?.renderCell)return D.renderCell({value:N,row:fe,node:f.node,column:D});let pe=lookupLabel(D,N);if(pe!==null)return pe;if(D?.valueFormatter){let z=D.valueFormatter(N,fe);return typeof z=="string"?z:String(z??"")}return D?.dateFormat&&D.dataType==="date"?formatDateValue(N,D.dateFormat):N==null?"":String(N)},W=$r({grid:d,engine:I,mode:A,t:g,formHeight:u.formHeight,surfaceClass:()=>M.surfaceClass(),barHost:M.barHost,focusGrid:_,trackPortal:Y,defaultContent:j,extension:C}),ee=f=>{if(f.node.kind!=="data")return;let N=W.renderRowCell(f);if(N!==void 0)return N;if(!I.isEditing(f.node.key,f.columnId)){T&&T.rowKey===f.node.key&&T.columnId===f.columnId&&(T=null);let V=I.getMode()==="cell"?void 0:I.changes.get(f.node.key,f.columnId),de=C.cellAdornment?.(f)??null;if(!V&&!de)return;let E=V?V.newValue:f.value,G=document.createElement("span");G.style.display="contents";let ne=j(f,E);return typeof ne=="string"?G.appendChild(document.createTextNode(ne)):G.appendChild(ne),de&&G.appendChild(de),G}let D=I.getSession();if(T&&T.rowKey===D.rowKey&&T.columnId===f.columnId)return T.setError(D.validation.message),T.container;let fe=y.getColumnModel().getDef(f.columnId),pe=C.resolveLookup?.(D.rowKey,f.columnId)??{options:void 0},z=document.createElement("span");z.style.display="contents";let ie=C.customEditors?fe?.renderEditor:void 0;if(ie){let V=new Set,de=ie({value:I.getSession()?.value??D.value,row:I.effectiveRow(D.rowKey),columnId:f.columnId,error:D.validation.message,onErrorChange:E=>(V.add(E),()=>V.delete(E)),setValue:E=>I.setEditValue(E),commit:()=>{I.commitEdit()&&_();},cancel:()=>{I.cancelEdit(),_();}});return z.appendChild(de),T={rowKey:D.rowKey,columnId:f.columnId,container:z,setError:E=>{for(let G of V)G(E);}},z}let ye=V=>{z.textContent="",z.appendChild(jo({value:I.getSession()?.value??D.value,dataType:y.getColumnModel().getEditorDataType(f.columnId),error:V,seeded:D.seeded,onPortalOpen:Y,options:pe.options,allowCustom:pe.allowCustom,matchMode:pe.matchMode,renderLookup:C.renderLookup,dateFormat:fe?.dateFormat,ariaLabel:fe?.headerName??f.columnId,surfaceClass:M.surfaceClass(),t:g,onChange:de=>I.setEditValue(de),onCommit:de=>{I.commitEdit()&&(de==="down"&&y.moveFocus("down"),_());},onTab:de=>{if(u.focusCellOnTab===false){I.commitEdit();return}Z(de,{open:C.keepEditingOnTab===true,cycle:u.focusCellOnCycle!==false});},onCancel:()=>{I.cancelEdit(),_();}}));};ye(D.validation.message);let Se=D.validation.message;if(T={rowKey:D.rowKey,columnId:f.columnId,container:z,setError:V=>{if(V===Se)return;Se=V,z.querySelector(".kanuni-datagrid-editor")?.classList.toggle("kanuni-datagrid-editor--invalid",!!V);let E=z.querySelector(".kanuni-datagrid-editor-error");V&&!E&&(E=document.createElement("span"),E.id="kanuni-datagrid-editor-error",E.setAttribute("role","alert"),E.className="kanuni-datagrid-editor-error",z.appendChild(E)),E&&(E.textContent=V??"",V||E.remove());}},pe.options===null&&C.resolveLookup){let V=C.resolveLookup,de=()=>{let G=V(D.rowKey,f.columnId);G.options!==null&&T&&T.rowKey===D.rowKey&&T.columnId===f.columnId&&I.isEditing(D.rowKey,f.columnId)&&(pe.options=G.options,ye(I.getSession()?.validation.message??null));},E=y.events.on("cellsRefreshed",()=>{de(),V(D.rowKey,f.columnId).options!==null&&E();});}return z},X=f=>{if(f.node.kind!=="data")return;let N=[];return I.isEditing(f.node.key,f.columnId)&&N.push("kanuni-datagrid-cell--editing"),I.changes.isDirty(f.node.key,f.columnId)&&N.push("kanuni-datagrid-cell--dirty"),I.isRemoved(f.node.key)&&N.push("kanuni-datagrid-cell--removed"),N.length?N.join(" "):void 0},P=f=>{f.node.kind==="data"&&(W.onCellDoubleClick(f)||I.canUpdate(f.node.key,f.columnId)&&(y.scrollToCell(f.node.key,f.columnId),I.beginEdit(f.node.key,f.columnId)));},he=f=>{let N=f.target;return N?.closest?.('[data-testid="dg-edit-form"], [data-testid="dg-row-message"]')?true:(f.key==="Tab"||f.key==="Enter"||f.key===" ")&&!!N?.closest?.('[data-testid="dg-edit-bar"]')},Ae=f=>he(f)?false:W.handleRowKeys(f)?true:f.key==="Escape"&&I.getSession()?(f.preventDefault(),I.cancelEdit(),true):f.key==="Tab"&&u.focusCellOnTab!==false&&!I.getSession()&&y.getFocus()&&Z(f.shiftKey?-1:1,{open:C.keepEditingOnTab===true,cycle:u.focusCellOnCycle!==false})?(f.preventDefault(),true):false,ue=f=>{if(he(f))return false;let N=f.ctrlKey||f.metaKey;if(f.key==="F2"){let D=y.getFocus();if(D)return f.preventDefault(),W.rowModeActive?(W.openRowFromKeys(D.rowKey,D.columnId),true):(y.scrollToCell(D.rowKey,D.columnId),I.beginEdit(D.rowKey,D.columnId),true)}return u.editOnKeyPress!==false&&!N&&!f.altKey&&f.key.length===1&&f.key!==" "&&!I.getSession()&&Ee(f.key)?(f.preventDefault(),true):false};return {engine:I,renderCellContent:ee,getCellClassName:X,onCellDoubleClick:P,handleKeyDown:f=>Ae(f)||ue(f),handleSessionKeys:Ae,handleOpenKeys:ue,editAdjacentCell:Z,focusGrid:_,trackPortal:Y,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(),Q.cancelAll(),se.forEach(f=>f()),y.setPendingValueReader(null),y.setEditingDelegate(null);}}}function Br(d,u){return !d||isChromeColumn(u)?false:d.editable!==false&&d.lookup==null&&d.renderEditor==null&&d.allowFormulas!==true}var Vr=["rules","crud","allowAdding","allowUpdating","allowDeleting","onInitNewRow","onRowInserted","onRowUpdated","onRowRemoved","insertKey","appendOnArrowDown","newRowPosition","keepEditingOnTab","commandColumn","commandLabels","confirmDelete","confirmDeleteMessage","range"];var hn=60,aa=24,Cd=0,Zn=36,yn=28,eo="application/x-kanuni-row",wn=new Map,ra=new Set,Xr=5e3,Wt=0,vd=["columnStateChanged","sortChanged"],Ed=["columnStateChanged"],kd=["contentReady","viewportChanged","filterChanged","selectionChanged","focusChanged","summariesChanged","cellsRefreshed","findChanged"],h=(d,u="div")=>{let g=document.createElement(u);return g.className=d,g},Cn="http://www.w3.org/2000/svg";function Rd(d,u){let g=C=>{u&&console.warn(`[datagrid] ${C} 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 M={...d};if(M.dataSource!=null&&!Array.isArray(M.dataSource)&&M.grouping&&(g("grouping a server-side DataSource is"),delete M.grouping),M.columns?.some(C=>C.spanRows)&&(g("cell span/merge (spanRows) is"),M={...M,columns:M.columns.map(C=>C.spanRows?{...C,spanRows:void 0}:C)}),M.tree&&(g("tree data is"),delete M.tree),M.masterDetail&&(g("master-detail is"),delete M.masterDetail),M.grouping){let{groupBy:C,groupSummaries:y}=M.grouping,A=C==null?[]:typeof C=="string"?[C]:C;(A.length>1||y)&&(g("multi-level grouping and group summaries are"),M={...M,grouping:{...M.grouping,groupBy:A.slice(0,1),groupSummaries:false}});}return M}var xd={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:""},to=new Set;function Td(d){for(let u of Object.keys(d)){let g=xd[u];g===void 0||g===""||to.has(u)||(to.add(u),console.warn(`[datagrid] \`${u}\` is a React-only option \u2014 ${g}.`));}}function Sd(){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 u=document.createElementNS("http://www.w3.org/2000/svg","path");return u.setAttribute("d","M8 1v8m0 0L5 6m3 3 3-3M2 11v2a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-2"),u.setAttribute("fill","none"),u.setAttribute("stroke","currentColor"),u.setAttribute("stroke-width","1.5"),u.setAttribute("stroke-linecap","round"),u.setAttribute("stroke-linejoin","round"),d.appendChild(u),d}function Ld(){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 u=document.createElementNS(Cn,"path");return u.setAttribute("d","M1.5 2.5h13L9.5 8.6v4.3l-3 1.6V8.6L1.5 2.5Z"),u.setAttribute("fill","currentColor"),u.setAttribute("stroke","currentColor"),u.setAttribute("stroke-width","0.6"),u.setAttribute("stroke-linejoin","round"),d.appendChild(u),d}function Ad(d){let u=document.createElementNS(Cn,"svg");u.setAttribute("width","14"),u.setAttribute("height","14"),u.setAttribute("viewBox","0 0 16 16"),u.setAttribute("aria-hidden","true"),u.setAttribute("focusable","false");let g=document.createElementNS(Cn,"rect");g.setAttribute("x","2"),g.setAttribute("y","2"),g.setAttribute("width","12"),g.setAttribute("height","12"),g.setAttribute("rx","2"),g.setAttribute("fill","none"),g.setAttribute("stroke","currentColor"),g.setAttribute("stroke-width","1.3"),u.appendChild(g);let M=C=>{let y=document.createElementNS(Cn,"path");y.setAttribute("d",C),y.setAttribute("fill","none"),y.setAttribute("stroke","currentColor"),y.setAttribute("stroke-width","1.3"),y.setAttribute("stroke-linecap","round"),u.appendChild(y);};return M("M5 8h6"),d&&M("M8 5v6"),u}function jr(d,u){let g=d??(u==="number"||u==="bigint"?"right":"left");return g==="right"?"kanuni-datagrid-cell kanuni-datagrid-cell--number":g==="center"?"kanuni-datagrid-cell kanuni-datagrid-cell--center":"kanuni-datagrid-cell"}function Qn(d){let u="kanuni-datagrid-root";return d.dark&&(u+=" kanuni-datagrid-dark"),d.theme&&(u+=` kanuni-datagrid-theme-${d.theme}`),d.palette&&(u+=` kanuni-datagrid-palette-${d.palette}`),d.density&&(u+=` kanuni-datagrid-density-${d.density}`),u}function Md(d,u){let{theme:g,palette:M,density:C,dark:y,striped:A=true,rowNumbers:L=false,locale:x="en",footer:Q=false,footerMenu:U=true,footerPosition:I="bottom",notes:B,pinnedTopRows:se=[],pinnedBottomRows:_=[],resizable:le=true,reorderable:Z=true,autoHeaderHeight:Ee=false,filterRow:T=false,headerFilter:$=false,filterIconMode:Y="hover",filterPanel:re=false,onOpenFilterBuilder:j,focusedRow:W=false,focusedRowKey:ee,onFocusedRowChanged:X,onRowClick:P,onRowActivate:he,autoSizeStrategy:Ae="none",renderRow:ue,cardView:f,onCardViewChange:N,announcements:D=true,filterPanelLabels:fe,showRowCount:pe=false,toolbarColumnChooser:z=false,cellMenu:ie=true,rowMenu:ye,headerMenu:Se,rowDrag:V,alignedGrids:de,printLayout:E,renderCellContent:G,getCellClassName:ne,getRowStatusSource:Ce,rowStatus:ke,onCellPointerDown:me,onCellPointerEnter:De,onCellDoubleClick:gt,editing:Oe,onHeaderClick:ft,getHeaderClassName:Re,renderHeaderLabel:Be,renderDetail:ia,renderEditForm:la,enterpriseEdition:mt=false,stateStoring:da,tooltip:Xe=true,renderOverlay:no,filterDebounce:Jr,toolbar:sa=false,highlightSearch:Qr=true,sortable:ua=true,toolbarItemsAfter:Zr,toolbarItemsBefore:ei,toolbarExcel:ti=false,toolbarPdf:ni=false,searchDebounce:oi=200,...ai}=u;Td(u),pe&&!to.has("showRowCount:deprecated")&&(to.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=getGridDictionary(x),{emptyText:ri=v.noData,loadingText:ii=v.busy,loadingOverlay:oo=true,...Ye}=ai,ca=typeof oo=="number"?oo:300,ao=summaryTypeLabels(v),pa=datePeriodLabels(v);if((!Ye.columns||Ye.columns.length===0)&&u.autoColumns!==false){let e=Array.isArray(Ye.dataSource)?Ye.dataSource:[];Ye.columns=inferColumns(e,typeof u.autoColumns=="object"?u.autoColumns:{});}Ye.rowHeight===void 0&&(Ye.rowHeight=presetRowHeight(g,C,28));let li=mt?Ye:Rd(Ye,!!u.debugMode),Lt=mt?B:void 0;!mt&&B&&u.debugMode&&console.warn("[datagrid] cell notes are an Enterprise feature \u2014 use createEnterpriseGrid from @kanunilabs/datagrid-enterprise to show them.");let a=new DataGridController(li);a.setEnterpriseEdition(mt);let At=Oe!=null&&typeof Oe=="object"&&Oe.enabled!==false,je=null;if(At&&u.debugMode)for(let e of Vr)Oe[e]!==void 0&&console.warn(`[datagrid] editing.${e} is an Enterprise feature \u2014 use createEnterpriseGrid from @kanunilabs/datagrid-enterprise to use it.`);let en=At?e=>je?.renderCellContent(e)??G?.(e):G,ro=At?e=>{let t=je?.getCellClassName(e),o=ne?.(e);return t&&o?`${t} ${o}`:t??o}:ne,ga=At?e=>{gt?.(e),je?.onCellDoubleClick(e);}:gt,di=At?(e,t)=>je?.renderEditForm(e,t)??la?.(e,t)??"":la,tt=normalizeRowStatus(ke);ee!=null&&a.focusRow(ee);let O=h(Qn(u));registerPortalContainer(O,u.portalContainer),O.style.height="100%",O.setAttribute("role","grid"),O.setAttribute("aria-label",u.ariaLabel??u.gridId),O.setAttribute("data-grid-id",u.gridId),isRtlLocale(x)&&O.setAttribute("dir","rtl"),g&&O.setAttribute("data-theme",g),Ee&&O.setAttribute("data-auto-header-height",""),O.style.setProperty("--dg-row-height",`${a.getRowHeight()}px`);let ae=h("kanuni-datagrid-scroller"),Ne=h("kanuni-datagrid-canvas"),Le=h("kanuni-datagrid-header");Le.setAttribute("role","row");let Ke=h("kanuni-datagrid-rows");Ke.style.position="relative";let ce=h("kanuni-datagrid-viewport");Ke.appendChild(ce);let Je=h("kanuni-datagrid-pinned-rows kanuni-datagrid-pinned-rows--top"),bt=h("kanuni-datagrid-pinned-rows kanuni-datagrid-pinned-rows--bottom"),Mt=()=>se.length+a.getPinnedRows("top").length,fa=()=>_.length+a.getPinnedRows("bottom").length,Ve=h("kanuni-datagrid-sticky-groups");Ve.setAttribute("aria-hidden","true");let Qe=Q,rt=I==="top",Pe=h(`kanuni-datagrid-footer-row kanuni-datagrid-footer-row--${rt?"top":"bottom"}`);if(Pe.setAttribute("role","row"),Pe.setAttribute("aria-label",v.columnTotalsAria),U){let e=t=>{let n=t.target?.closest(".kanuni-datagrid-footer-cell")?.getAttribute("data-column-id");!n||isChromeColumn(n)||(t.preventDefault(),Oi(n,{left:t.clientX,top:t.clientY}));};Pe.addEventListener("click",e),Pe.addEventListener("contextmenu",e);}let vn=h("kanuni-datagrid-bands-host");vn.style.display="contents";let wt=h("kanuni-datagrid-filter-row");wt.setAttribute("role","row"),Ne.append(vn,Le),T&&Ne.append(wt);let Dt=T?2:1,io=0,lo=()=>io+Dt+Mt();Pe.style.setProperty("--dg-pinned-gap",String(rt?Dt:0)),Je.style.setProperty("--dg-pinned-gap",String(Dt+(Qe&&rt?1:0))),Qe&&rt&&Ne.append(Pe),Mt()>0&&Ne.append(Je),a.hasStickyGroupHeaders()&&(Ve.style.setProperty("--dg-pinned-gap",String(Dt+(Qe&&rt?1:0))),Ve.style.setProperty("--dg-sticky-below",`${Mt()>0?Mt()*a.getRowHeight()+1:0}px`),Ne.append(Ve)),Ne.append(Ke),fa()>0&&Ne.append(bt),Qe&&!rt&&Ne.append(Pe),ae.appendChild(Ne);let it=h("kanuni-datagrid-toolbar"),Ze=h("kanuni-datagrid-pager");Ze.setAttribute("role","navigation"),Ze.setAttribute("aria-label",v.pagerAria);let Nt=h("kanuni-datagrid-filter-panel"),It=!!Ye.grouping?.panel,_e=h("kanuni-datagrid-group-panel"),tn=resolveCardView(f),nn=false,En=[],ht=ue,on=h("kanuni-datagrid-cardbar");on.hidden=true;let ma=h("kanuni-datagrid-cardbar-label","label"),ba=h("","span");ba.textContent=v.cardSortBy;let nt=h("kanuni-datagrid-cardbar-select","select"),Ht=h("kanuni-datagrid-cardbar-dir","button");Ht.type="button",ma.append(ba,nt),on.append(ma,Ht),nt.addEventListener("change",()=>{let e=a.getSort()[0];a.setSort(nt.value?[{columnId:nt.value,direction:e?.direction??"asc"}]:[]);}),Ht.addEventListener("click",()=>{let e=a.getSort()[0];e&&a.setSort([{columnId:e.columnId,direction:e.direction==="desc"?"asc":"desc"}]);});let si=e=>{let[t,...o]=cardFields(a.getColumnModel(),En,e.row),n=h("kanuni-datagrid-card");n.setAttribute("role","gridcell");let r=h("kanuni-datagrid-card-title");if(r.textContent=t?.text??"",n.appendChild(r),o.length){let l=h("kanuni-datagrid-card-fields","dl");for(let s of o){let i=h("kanuni-datagrid-card-field"),c=h("","dt");c.textContent=s.label;let p=h("","dd");p.textContent=s.text,i.append(c,p),l.appendChild(i);}n.appendChild(l);}return n},wa=()=>{if(!nn||!tn)return;let e=a.getColumnModel(),t=cardColumnIds(e,tn);t.join("\0")!==En.join("\0")&&(En=t,a.setDataRowHeight(cardHeight(t.length)));let o=ua?e.getOrder().filter(s=>e.getState(s)?.visible!==false&&e.getDef(s)?.sortable!==false):[];on.hidden=o.length===0;let n=["",...o].join("\0");if(nt.dataset.ids!==n){nt.dataset.ids=n,nt.replaceChildren();let s=document.createElement("option");s.value="",s.textContent=v.none,nt.appendChild(s);for(let i of o){let c=document.createElement("option");c.value=i,c.textContent=e.getDef(i)?.headerName??i,nt.appendChild(c);}}let r=a.getSort()[0];nt.value=r?.columnId??"",Ht.hidden=!r;let l=r?.direction==="desc";Ht.textContent=l?"\u2193":"\u2191",Ht.setAttribute("aria-label",l?v.sortAsc:v.sortDesc),Ht.title=l?v.sortAsc:v.sortDesc;},ha=false,ui=e=>{let t=showsCards(e,tn);if(t!==nn){for(nn=t,O.classList.toggle("kanuni-datagrid-cards",t),ht=t?si:ue,En=[],t?wa():(on.hidden=true,a.setDataRowHeight(null));st.length;)st.pop().root.remove();Hn(),ha?N?.(t):queueMicrotask(()=>N?.(t));}};sa&&O.appendChild(it),It&&O.appendChild(_e),tn&&O.appendChild(on),O.appendChild(ae),re&&O.appendChild(Nt);let kn=Ye.pagination;kn&&kn.enabled!==false&&O.appendChild(Ze);let an=h("kanuni-datagrid-loading-overlay"),ya=h("kanuni-datagrid-loading-card"),Ca=h("kanuni-datagrid-loading-spinner","span");Ca.setAttribute("aria-hidden","true");let va=h("kanuni-datagrid-loading-label","span");va.textContent=ii,ya.append(Ca,va),an.appendChild(ya),an.style.display="none";let rn=h("kanuni-datagrid-sr-only","div");rn.setAttribute("role","status"),rn.setAttribute("aria-live","polite"),rn.setAttribute("aria-atomic","true");let Rn=h("kanuni-datagrid-empty");Rn.textContent=ri,Rn.style.display="none",O.append(an,Rn),D&&O.appendChild(rn),d.appendChild(O);let ln=Ye.selection,so=a.getGroupDisplay()!=="fullWidth",Ea=a.getGroupDisplay()==="column",qt=(ln?.mode??"none")!=="none"&&(ln?.checkboxColumn??false),ci=(ln?.rowClick??(qt?"toggle":"replace"))==="toggle",Ut=a.hasMasterDetail()&&!!ia,uo=()=>(L?1:0)+(Ut?1:0)+(qt?1:0),co=tt?.icons===true,ka=co?aa:0,po=ka,go=po+(L?hn:0),Ra=go+(Ut?yn:0),ot=ka+(L?hn:0)+(Ut?yn:0)+(qt?Zn:0);a.setLeadWidth(ot);let dn=!!V?.enabled,sn=V?.group??null,xa=V?.allowReordering??true,Ta=V?.allowDropInsert??sn!==null,lt=null,xn=null,Tn=false,Ft=null,yt=null;function zt(e){Ft=e;for(let t of ce.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 Sa=(e,t)=>{let o=t.getBoundingClientRect();return e.clientY<o.top+o.height/2?"before":"after"},La=e=>e.dataTransfer?.types.includes(eo)?lt!==null?xa:Ta&&sn!==null:false;function Aa(e,t,o){let n=null;try{let r=e.dataTransfer?.getData(eo);n=r?JSON.parse(r):null;}catch{n=null;}if(n){if(n.gridId===a.gridId){if(!xa)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}!Ta||sn===null||n.group!==sn||V?.onAdd?.({row:n.row,rowKey:n.rowKey,otherGridId:n.gridId,targetKey:t,position:o});}}let pi=e=>{let t=Et(e);if(!t||t.node.kind!=="data"||!e.dataTransfer)return;lt=t.node.key,xn=t.node.key,Tn=false;let o={gridId:a.gridId,group:sn,rowKey:t.node.key,row:t.node.data};e.dataTransfer.setData(eo,JSON.stringify(o)),e.dataTransfer.setData("text/plain",String(t.node.key)),e.dataTransfer.effectAllowed="move",a.notifyRowDrag("enter",{rowKey:t.node.key});},gi=e=>{if(!La(e))return;e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect="move");let t=Et(e);if(!t||t.node.kind!=="data")return;if(lt===t.node.key){yt=null,zt(null);return}let o=e.target.closest(".kanuni-datagrid-row"),n=Sa(e,o),r=Ft?.key!==t.node.key||Ft.side!==n;yt={key:t.node.key,side:n},zt({key:t.node.key,side:n}),r&&lt!==null&&a.notifyRowDrag("move",{rowKey:lt,overKey:t.node.key,position:n});},fi=e=>{if(!La(e)){zt(null);return}e.preventDefault();let t=Et(e);if(Tn=true,t&&t.node.kind==="data"){let o=e.target.closest(".kanuni-datagrid-row"),n=Sa(e,o);yt={key:t.node.key,side:n},Aa(e,t.node.key,n);}else yt=null,Aa(e,null,"after");lt=null,zt(null);},mi=()=>{xn!==null&&a.notifyRowDragEnd({rowKey:xn,dropped:Tn,overKey:yt?.key??null,position:yt?.side??null}),Tn=false,xn=null,lt=null,yt=null,zt(null);},bi=e=>{let t=e.relatedTarget;t&&Ke.contains(t)||lt!==null&&(yt=null,zt(null),a.notifyRowDrag("leave",{rowKey:lt}));},un=E===void 0||E===false?null:(()=>{let e=E===true?{}:E;return {always:e.always??false,maxRows:e.maxRows??Xr}})(),Yt=false;function fo(e){Yt!==e&&(Yt=e,O.classList.toggle("kanuni-datagrid-print",e),e?(Wt++,document.documentElement.classList.add("kanuni-datagrid-printing")):(Wt--,Wt<=0&&(Wt=0,document.documentElement.classList.remove("kanuni-datagrid-printing"))),Hn());}let Ma=null;if(un&&!un.always){let e=()=>{let o=a.getRows().length;if(o>un.maxRows){a.isDebugMode()&&console.warn(`[datagrid] print layout skipped: ${o} rows exceeds maxRows (${un.maxRows}). Printing the visible rows instead \u2014 use exportPdf() for the whole result.`);return}fo(true);},t=()=>fo(false);window.addEventListener("beforeprint",e),window.addEventListener("afterprint",t),Ma=()=>{window.removeEventListener("beforeprint",e),window.removeEventListener("afterprint",t);};}let dt=0,at=[],We=0,mo=0;function bo(){let e=a.getColumnLayout(),t=a.getVirtualWindow().columns,o=[],n=(l,s,i,c)=>{let p=l.def;o.push({def:p,id:l.state.id,width:l.state.width,pinned:s,inset:i,className:jr(p.align,p.dataType)+(s?" kanuni-datagrid-cell--pinned":"")+(p.autoHeight?" kanuni-datagrid-cell--wrap":""),visualIndex:c});};e.left.forEach((l,s)=>n(l,"left",e.leftOffsets[s]+ot,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)),at=o,We=t.offsetX;let r=(e.centerOffsets[Math.min(t.end,e.center.length)]??0)-(e.centerOffsets[Math.min(t.start,e.center.length)]??0);mo=Math.max(0,e.centerWidth-t.offsetX-r),Ne.style.minWidth=`${e.totalWidth+ot}px`;}let Sn=26;function wi(){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=bandDepth(o);if(io=n,vn.textContent="",Le.style.top=`${n*Sn}px`,O.style.setProperty("--dg-band-offset",`${n*Sn}px`),n===0)return;computeHeaderBands(o,n).forEach((l,s)=>{let i=h("kanuni-datagrid-band-row");if(i.style.top=`${s*Sn}px`,i.style.height=`${Sn}px`,ot>0){let c=h("kanuni-datagrid-band-cell kanuni-datagrid-band-cell--spacer kanuni-datagrid-band-cell--pinned");c.style.width=`${ot}px`,c.style.flex="none",c.style.insetInlineStart="0px",i.appendChild(c);}if(We>0){let c=h("kanuni-datagrid-spacer");c.style.width=`${We}px`,c.style.flex="none",i.appendChild(c);}for(let c of l){let p=h(`kanuni-datagrid-band-cell${c.spacer?" kanuni-datagrid-band-cell--spacer":""}`);if(p.style.width=`${c.width}px`,p.style.flex="none",!c.spacer){if(c.columnIds.length>0){let m=bandPath(a.getColumnModel().getDef(c.columnIds[0])).slice(0,s+1);if(m.length===s+1&&a.isBandCollapsible(m)){let K=a.isBandCollapsed(m),S=document.createElement("button");S.type="button",S.className="kanuni-datagrid-band-toggle",S.setAttribute("aria-expanded",String(!K));let R=K?v.expandColumnGroup:v.collapseColumnGroup;S.setAttribute("aria-label",R),S.title=R,S.appendChild(Ad(K)),S.addEventListener("click",q=>{q.stopPropagation(),a.toggleBand(m);}),p.appendChild(S);}}let k=h("kanuni-datagrid-band-label","span");k.textContent=c.label,p.appendChild(k);}i.appendChild(p);}vn.appendChild(i);});}let jt=null,Ln=null;function An(e,t){Ln&&Ln!==e&&Ln.classList.remove("kanuni-datagrid-header-cell--drop-before","kanuni-datagrid-header-cell--drop-after"),Ln=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 Da(){if(!jt)return;let e=a.getSelectedCount(),t=a.getSelectableCount(),o=t>0&&e>=t;jt.checked=o,jt.indeterminate=!o&&e>0,jt.disabled=t===0&&e===0;}let cn=null;function Na(e){cn=e;for(let t of Array.from(Le.querySelectorAll(".kanuni-datagrid-header-cell[data-column-id]")))t.tabIndex=t.getAttribute("data-column-id")===e?0:-1;}function wo(){wi();let e=document.activeElement,t=e&&Le.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);(!cn||!n.includes(cn))&&(cn=n[0]??null);let r=a.getSort(),l=new Map(r.map((i,c)=>[i.columnId,{direction:i.direction,order:c}]));if(Le.textContent="",jt=null,co){let i=h("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=`${aa}px`,i.style.flex="none",i.style.insetInlineStart="0px",Le.appendChild(i);}if(L){let i=h("kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-rownum-cell");i.setAttribute("role","columnheader"),i.style.width=`${hn}px`,i.style.flex="none",i.style.insetInlineStart=`${po}px`,Le.appendChild(i);}if(Ut){let i=h("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=`${yn}px`,i.style.flex="none",i.style.insetInlineStart=`${go}px`,Le.appendChild(i);}if(qt){let i=h("kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-select-cell");i.setAttribute("role","columnheader"),i.style.width=`${Zn}px`,i.style.flex="none",i.style.insetInlineStart=`${Ra}px`;let c=document.createElement("input");c.type="checkbox",c.setAttribute("aria-label",v.selectAllRows),c.addEventListener("change",()=>{a.getSelectedCount()>0?a.clearSelection():a.selectAll();}),i.appendChild(c),Le.appendChild(i),jt=c,Da();}let s=false;for(let i of at){if(!i.pinned&&!s){if(We>0){let b=document.createElement("div");b.style.flex=`0 0 ${We}px`,Le.appendChild(b);}s=true;}let c=ua&&i.def.sortable!==false,p=i.id===GROUP_COLUMN_ID,k=l.get(p?a.getGroupLevels()[0]??i.id:i.id),m=h(`kanuni-datagrid-header-cell${c?" 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===cn?0:-1,m.addEventListener("focus",()=>Na(i.id)),m.setAttribute("aria-sort",k?k.direction==="asc"?"ascending":"descending":"none");let K=i.def.headerTooltip;K&&(m.title=K),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 S=h("kanuni-datagrid-header-label","span");S.id=`${encodeURIComponent(u.gridId)}-hdr-${encodeURIComponent(i.id)}`,m.setAttribute("aria-labelledby",S.id);let R=Be?.(i.id);if(R)S.appendChild(R);else if(i.def.renderHeader){let b=i.def.renderHeader({column:i.def});typeof b=="string"?S.textContent=b:S.appendChild(b);}else S.textContent=i.def.headerName??i.id;if(m.appendChild(S),k){let b=h("kanuni-datagrid-sort-indicator","span");if(b.setAttribute("aria-hidden","true"),b.textContent=k.direction==="asc"?"\u25B2":"\u25BC",m.appendChild(b),r.length>1&&!p){let F=h("kanuni-datagrid-sort-order","span");F.setAttribute("aria-hidden","true"),F.textContent=String(k.order+1),m.appendChild(F);}}if(c||ft){let b=i.id;m.addEventListener("click",F=>{ft?.(b,F)||c&&a.toggleSort(b,F.shiftKey);});}let q=Se!==false&&!isChromeColumn(i.id);if(q){let b=i.id;m.addEventListener("contextmenu",F=>{F.preventDefault(),Xa(b,{left:F.clientX,top:F.clientY});});}let w=null;if($&&i.def.filterable!==false){w=document.createElement("button"),w.type="button",w.tabIndex=-1;let b=a.getColumnFilter(i.id)!==null;w.className=`kanuni-datagrid-filter-button${b?" kanuni-datagrid-filter-button--active":""}${Y==="always"?" kanuni-datagrid-filter-button--pinned":""}`,w.setAttribute("aria-haspopup","dialog"),w.setAttribute("aria-label",`${i.def.headerName??i.id} filter`),w.appendChild(Ld());let F=w;w.addEventListener("click",te=>{te.stopPropagation(),Ya(i.id,F);}),m.appendChild(w);}if(m.addEventListener("keydown",b=>{let F=n.indexOf(i.id),te;if(b.key==="ArrowRight")te=n[Math.min(n.length-1,F+1)];else if(b.key==="ArrowLeft")te=n[Math.max(0,F-1)];else if(b.key==="Home")te=n[0];else if(b.key==="End")te=n[n.length-1];else if(w&&b.altKey&&b.key==="ArrowDown")Ya(i.id,w);else if(c&&(b.key==="Enter"||b.key===" "))a.toggleSort(i.id,b.shiftKey);else if(q&&(b.key==="ContextMenu"||b.key==="F10"&&b.shiftKey)){let be=m.getBoundingClientRect();Xa(i.id,{left:be.left,top:be.bottom});}else return;b.preventDefault(),b.stopPropagation(),te&&te!==i.id&&(Na(te),To(te)?.focus());}),Z&&i.def.reorderable!==false&&(m.draggable=true,m.addEventListener("dragstart",b=>{b.dataTransfer?.setData("text/x-kanuni-column",i.id),b.dataTransfer&&(b.dataTransfer.effectAllowed="move");}),m.addEventListener("dragover",b=>{if(!b.dataTransfer?.types.includes("text/x-kanuni-column"))return;b.preventDefault();let F=m.getBoundingClientRect(),te=b.clientX<F.left+F.width/2;An(m,te?"before":"after");}),m.addEventListener("dragleave",b=>{let F=b.relatedTarget;(!F||!m.contains(F))&&An(null,"before");}),m.addEventListener("drop",b=>{An(null,"before");let F=b.dataTransfer?.getData("text/x-kanuni-column");if(!F||F===i.id)return;b.preventDefault();let te=m.getBoundingClientRect();if(b.clientX<te.left+te.width/2)a.moveColumn(F,i.id);else {let Me=at.findIndex(J=>J.id===i.id);a.moveColumn(F,at[Me+1]?.id);}}),m.addEventListener("dragend",()=>An(null,"before"))),le&&i.def.resizable!==false){let b=h("kanuni-datagrid-resize-handle","span");b.setAttribute("data-resize-handle",i.id),b.setAttribute("role","presentation"),b.addEventListener("click",F=>F.stopPropagation()),b.addEventListener("dblclick",F=>{F.stopPropagation(),Vi(i.id);}),b.addEventListener("pointerdown",F=>{F.preventDefault(),F.stopPropagation();let te=F.clientX,be=i.width,Me=getComputedStyle(m).direction==="rtl"?-1:1;m.draggable=false;let J=be,Ie=false,we=Bt=>{Ie=true,J=be+(Bt.clientX-te)*Me,a.setColumnWidth(i.id,J,false);},ct=()=>{window.removeEventListener("pointermove",we),window.removeEventListener("pointerup",ct),window.removeEventListener("pointercancel",ct),Ie&&a.setColumnWidth(i.id,J,true),m.draggable=Z&&i.def.reorderable!==false;};window.addEventListener("pointermove",we),window.addEventListener("pointerup",ct),window.addEventListener("pointercancel",ct);}),m.appendChild(b);}Le.appendChild(m);}t&&To(t)?.focus({preventScroll:true});}let Ia=null,Mn=null;function hi(e){if(e===Ia)return;Ia=e;let t=[];for(let o=0;o<e.length;o++){let n=e[o];n&&n.kind!=="data"&&t.push(o);}Mn=t.length>0?t:null;}function yi(e){if(!Mn)return e+1;let t=0,o=Mn.length;for(;t<o;){let n=t+o>>1;Mn[n]<=e?t=n+1:o=n;}return e+1-t}let st=[];function Dn(e="data"){let t=h("kanuni-datagrid-row");if(t.setAttribute("role","row"),e==="loading"){t.classList.add("kanuni-datagrid-row--loading"),t.setAttribute("aria-busy","true");let p=h("kanuni-datagrid-cell kanuni-datagrid-loading-cell");return p.setAttribute("role","gridcell"),p.setAttribute("aria-colindex","1"),p.appendChild(h("kanuni-datagrid-loading-bar","span")),t.appendChild(p),{kind:e,root:t,cells:[],rowNumberCell:null,selectInput:null,detailToggle:null,leadingSpacer:null,trailingSpacer:null,epoch:dt}}if(e==="data"&&so&&t.addEventListener("click",()=>{if(!t.classList.contains("kanuni-datagrid-group-row--aligned"))return;let p=t.getAttribute("data-group-key");p!==null&&a.toggleGroup(p);}),e==="panel"){let p=document.createElement("div");return p.setAttribute("role","gridcell"),p.setAttribute("aria-colindex","1"),t.appendChild(p),{kind:e,root:t,cells:[],rowNumberCell:null,selectInput:null,detailToggle:null,leadingSpacer:null,trailingSpacer:null,panelCell:p,epoch:dt}}if(e==="group"){let p=h("kanuni-datagrid-group-cell");p.setAttribute("role","gridcell"),p.setAttribute("aria-colindex","1");let k=h("kanuni-datagrid-group-twisty","span");k.setAttribute("aria-hidden","true");let m=h("kanuni-datagrid-group-caption","span"),K=h("kanuni-datagrid-group-label","span"),S=h("kanuni-datagrid-group-count","span"),R=h("kanuni-datagrid-group-aggregates","span"),q=null;return qt&&ln?.mode==="multiple"&&(q=document.createElement("input"),q.type="checkbox",q.className="kanuni-datagrid-group-checkbox",q.tabIndex=-1,q.addEventListener("change",()=>{let w=t.getAttribute("data-group-key");w!==null&&a.toggleGroupSelection(w);}),q.addEventListener("click",w=>w.stopPropagation()),q.addEventListener("mousedown",w=>w.stopPropagation()),p.appendChild(q)),p.append(k,m,K,S,R),t.appendChild(p),t.addEventListener("click",()=>{let w=t.getAttribute("data-group-key");w!==null&&a.toggleGroup(w);}),{kind:e,root:t,cells:[],rowNumberCell:null,selectInput:null,detailToggle:null,leadingSpacer:null,trailingSpacer:null,group:{cell:p,check:q,twisty:k,caption:m,label:K,count:S,aggregates:R},epoch:dt}}if(dn){let p=h("kanuni-datagrid-row-grip","span");p.setAttribute("aria-hidden","true"),p.title=v.dragToReorder??"Drag to reorder",p.innerHTML='<svg width="10" height="14" viewBox="0 0 10 14" focusable="false"><g fill="currentColor"><circle cx="3" cy="3" r="1.2"/><circle cx="7" cy="3" r="1.2"/><circle cx="3" cy="7" r="1.2"/><circle cx="7" cy="7" r="1.2"/><circle cx="3" cy="11" r="1.2"/><circle cx="7" cy="11" r="1.2"/></g></svg>',p.addEventListener("mouseenter",()=>{t.draggable=true;}),p.addEventListener("mouseleave",()=>{t.draggable=false;}),t.appendChild(p);}if(ht)return {kind:e,root:t,cells:[],rowNumberCell:null,selectInput:null,detailToggle:null,leadingSpacer:null,trailingSpacer:null,epoch:dt};if(co){let p=h("kanuni-datagrid-cell kanuni-datagrid-cell--pinned kanuni-datagrid-status-cell");p.setAttribute("role","presentation"),p.setAttribute("aria-hidden","true"),p.style.width=`${aa}px`,p.style.flex="none",p.style.insetInlineStart="0px",p.appendChild(h("kanuni-datagrid-status-icon","span")),t.appendChild(p);}let o=null;L&&(o=h("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=`${hn}px`,o.style.flex="none",o.style.insetInlineStart=`${po}px`,t.appendChild(o));let n=null;if(Ut){let p=h("kanuni-datagrid-cell kanuni-datagrid-cell--center kanuni-datagrid-cell--pinned kanuni-datagrid-detail-toggle-cell");p.setAttribute("role","gridcell"),p.setAttribute("aria-colindex",String((L?1:0)+1)),p.style.width=`${yn}px`,p.style.flex="none",p.style.insetInlineStart=`${go}px`;let k=document.createElement("button");k.type="button",k.className="kanuni-datagrid-detail-toggle",k.tabIndex=-1,k.addEventListener("click",m=>{m.stopPropagation();let K=t.getAttribute("data-row-key");if(K===null)return;let S=a.getRows().find(R=>R!==void 0&&String(R.key)===K);S&&S.kind==="data"&&a.toggleDetail(S.key);}),k.addEventListener("mousedown",m=>m.stopPropagation()),p.appendChild(k),t.appendChild(p),n=k;}let r=null;if(qt){let p=h("kanuni-datagrid-cell kanuni-datagrid-cell--center kanuni-datagrid-cell--pinned kanuni-datagrid-select-cell");p.setAttribute("role","gridcell"),p.setAttribute("aria-colindex",String((L?1:0)+(Ut?1:0)+1)),p.style.width=`${Zn}px`,p.style.flex="none",p.style.insetInlineStart=`${Ra}px`;let k=document.createElement("input");k.type="checkbox",k.tabIndex=-1;let m=()=>{let K=t.getAttribute("data-row-key");if(K===null)return;let S=a.getRows().find(R=>R!==void 0&&String(R.key)===K);S?.kind==="group"?a.toggleGroupSelection(String(S.key)):S&&a.toggleRow(S.key);};p.addEventListener("mousedown",K=>K.stopPropagation()),p.addEventListener("click",K=>{K.target.tagName!=="INPUT"&&(K.stopPropagation(),m());}),k.addEventListener("change",m),k.addEventListener("click",K=>K.stopPropagation()),k.addEventListener("mousedown",K=>K.stopPropagation()),p.appendChild(k),t.appendChild(p),r=k;}let l=[],s=null,i=false;for(let p of at){!p.pinned&&!i&&(s=document.createElement("div"),s.style.flex=`0 0 ${We}px`,t.appendChild(s),i=true);let k=h(p.className);k.setAttribute("role","gridcell"),k.setAttribute("data-column-id",p.id),k.style.width=`${p.width}px`,k.style.flex="none",p.pinned==="left"&&(k.style.insetInlineStart=`${p.inset}px`),p.pinned==="right"&&(k.style.insetInlineEnd=`${p.inset}px`),t.appendChild(k),l.push({el:k,slot:p});}let c=document.createElement("div");return c.style.flex=`0 0 ${mo}px`,t.appendChild(c),{kind:e,root:t,cells:l,rowNumberCell:o,selectInput:r,detailToggle:n,leadingSpacer:s,trailingSpacer:c,epoch:dt}}let Xt="";function Nn(e,t){if(Xt===""||t===""){e.textContent=t;return}let o=foldText(t),n=o.indexOf(Xt);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+Xt.length),r.push(i),l=n+Xt.length,n=o.indexOf(Xt,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 Ha(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=lookupLabel(r,n);if(l!==null){Nn(e,l);return}if(r.valueFormatter){let s=r.valueFormatter(n,o.data);Nn(e,typeof s=="string"?s:String(s??""));return}if(r.dateFormat&&r.dataType==="date"){Nn(e,formatDateValue(n,r.dateFormat));return}Nn(e,n==null?"":String(n));}function Ci(e,t){return e.kind==="group"&&!t.group}function vi(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:jr(l.align,l.dataType),visualIndex:r.left.length+r.center.indexOf(n.column)},i=e.leadCell??h(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(uo()+s.visualIndex+1)),i.id=`${u.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),Ha(i,s,o);}function Ei(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 Fa(){if(!tt?.messages)return;let e=je?.engine??Ce?.()??null,t=tt.get,o=rowMessageKeys(tt,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 Ka(e,t){let o=tt&&t?.kind==="data"?resolveRowStatus(tt,t.data,t.key,je?.engine??Ce?.()??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(...rowStatusClassName(o.status,tt.tint).split(" ")),e.setAttribute("aria-description",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 ho(e,t,o){let n=e.root;if(n.setAttribute("aria-rowindex",String(o+1+lo())),n.setAttribute("data-row-key",String(t.key)),t.kind==="message"){let w=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"),w.className="kanuni-datagrid-message-cell";let b=tt?rowMessageModel(tt,t.parentKey,t.data,je?.engine??Ce?.()??null,v):null,F=b?`${String(t.parentKey)}|${b.text}|${b.retry?1:0}${b.remove?1:0}`:"";n.getAttribute("data-message-sig")!==F&&(n.setAttribute("data-message-sig",F),w.textContent="",b&&w.appendChild(Ei(b)));return}if(n.removeAttribute("data-message-for"),n.removeAttribute("data-message-sig"),t.kind==="detail"||t.kind==="editform"){let w=e.panelCell,b=t.kind==="detail";n.className=`kanuni-datagrid-row ${b?"kanuni-datagrid-detail-row":"kanuni-datagrid-editform-row"}`,n.style.height=`${t.height}px`,b?(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")),w.className=b?"kanuni-datagrid-detail-cell":"kanuni-datagrid-editform-cell";let F=`${t.kind}:${String(t.key)}`;if(n.getAttribute("data-panel-for")!==F){n.setAttribute("data-panel-for",F);let te=b?ia?.(t.data):t.parentKey===null?void 0:di?.(t.parentKey,t.data);w.textContent="",typeof te=="string"?w.textContent=te:te&&w.appendChild(te);}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=Pa?"":`${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 w of Array.from(n.classList))w.startsWith("kanuni-datagrid-group-row--level-")&&n.classList.remove(w);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",A&&o%2===1);let s=a.isRowSelected(t.key);n.classList.toggle("kanuni-datagrid-row--selected",s),t.kind==="data"&&a.getSelectionMode()!=="none"?n.setAttribute("aria-selected",String(s)):n.removeAttribute("aria-selected");let i=a.getFocus();n.classList.toggle("kanuni-datagrid-row--focused",W&&i!==null&&i.rowKey===t.key),Ka(n,t);let c=t.kind==="data"&&!Ci(t,e)?a.planRowColSpans(t,a.getVirtualWindow().columns):null;if(e.leadingSpacer&&(e.leadingSpacer.style.flex=`0 0 ${Math.max(0,We-(c?.leadingDelta??0))}px`),e.trailingSpacer&&(e.trailingSpacer.style.flex=`0 0 ${Math.max(0,mo-(c?.trailingDelta??0))}px`),vi(e,c,t),dn){let w=Ft!==null&&String(Ft.key)===String(t.key);n.classList.toggle("kanuni-datagrid-row--drop-before",w&&Ft.side==="before"),n.classList.toggle("kanuni-datagrid-row--drop-after",w&&Ft.side==="after");}let p=t.kind==="treePath",k=p||l!==null;if(n.classList.toggle("kanuni-datagrid-row--tree-path",p),e.rowNumberCell&&(e.rowNumberCell.textContent=k?"":String(yi(o))),e.detailToggle&&(e.detailToggle.hidden=k),e.selectInput){let w=l!==null&&ln?.mode==="multiple";if(e.selectInput.hidden=p||l!==null&&!w,e.selectInput.classList.toggle("kanuni-datagrid-group-checkbox",w),w){let b=a.getGroupSelectionState(String(l.key));e.selectInput.checked=b==="all",e.selectInput.indeterminate=b==="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 w=a.isDetailExpanded(t.key);e.detailToggle.textContent=w?"\u25BE":"\u25B8",e.detailToggle.setAttribute("aria-expanded",String(w)),e.detailToggle.setAttribute("aria-label",w?v.collapseDetails:v.expandDetails);}if(t.kind==="group"&&e.group){let w=t;n.className=`kanuni-datagrid-row kanuni-datagrid-group-row kanuni-datagrid-group-row--level-${w.level}`,n.setAttribute("aria-expanded",String(w.expanded)),n.setAttribute("aria-level",String(w.level+1)),n.setAttribute("data-group-key",String(w.key)),n.setAttribute("data-group-level",String(w.level)),e.group.cell.style.paddingLeft=w.level>0?`${8+w.level*18}px`:"",e.group.twisty.textContent=w.expanded?"\u25BE":"\u25B8";let b=a.getColumnModel().getDef(w.columnId),F=b?.headerName??w.columnId;if(e.group.caption.textContent=`${F}:`,e.group.label.textContent=lookupLabel(b,w.value)??w.display??(w.label===""?v.filterBlank:w.label),e.group.count.textContent=`(${w.count})`,e.group.check){let be=a.getGroupSelectionState(String(w.key));e.group.check.checked=be==="all",e.group.check.indeterminate=be==="some",e.group.check.setAttribute("aria-label",v.selectGroupAria.replace("{count}",String(w.count)).replace("{group}",e.group.label.textContent??""));}e.group.aggregates.textContent="";let te=w.aggregates??null;if(te)for(let be of a.getSummaryDefs()){let Me=h("kanuni-datagrid-group-aggregate","span"),J=h("kanuni-datagrid-group-aggregate-label","span"),Ie=a.getColumnModel().getDef(be.columnId);J.textContent=`${summaryLabel(be,ao)} ${Ie?.headerName??be.columnId}:`,Me.append(J,` ${formatSummaryValue(be,te[summaryKey(be.columnId,be.type)],Ie)}`),e.group.aggregates.appendChild(Me);}return}if(t.kind!=="data"&&!p&&!l){for(let{el:w}of e.cells)w.textContent="";return}if(ht&&k){let w=dn?1:0;for(;n.childNodes.length>w;)n.removeChild(n.lastChild);let b=h("kanuni-datagrid-cell");l?b.appendChild(Ga(l)):(b.appendChild($a(t)),yo(b,t,t.tree)),n.appendChild(b);return}if(ht){let w=dn?1:0,b=ht({row:t.data,node:t,rowIndex:o,selected:a.isRowSelected(t.key),focused:W&&i!==null&&i.rowKey===t.key});if(b instanceof Node&&n.childNodes.length===w+1&&n.childNodes[w]===b)return;for(;n.childNodes.length>w;)n.removeChild(n.lastChild);typeof b=="string"?n.appendChild(document.createTextNode(b)):b&&n.appendChild(b);return}let m=i!==null&&i.rowKey===t.key?i.columnId:null,K=l?void 0:t.tree,S=l&&Ea?GROUP_COLUMN_ID:K||l?(()=>{let w=a.getColumnLayout();return (w.left[0]??w.center[0]??w.right[0])?.state.id??null})():null,R=K?S:null,q=a.hasCellSpans();for(let{el:w,slot:b}of e.cells){w.style.display=c?.covered.has(b.id)?"none":"",w.style.width=`${c?.widths.get(b.id)??b.width}px`;let F=c?.spans.get(b.id);F?w.setAttribute("aria-colspan",String(F)):w.removeAttribute("aria-colspan");let te=(en||ro)&&!k?{node:t,columnId:b.id,rowIndex:o,columnIndex:b.visualIndex,value:a.getColumnModel().getCellValue(t.data,b.id)}:null,be=en&&l&&b.id!==S?{node:t,columnId:b.id,rowIndex:o,columnIndex:b.visualIndex,value:void 0}:null,Me=te&&en?en(te):be?en(be):void 0,J=false;if(Me!==void 0?Me instanceof Node&&w.childNodes.length===1&&w.firstChild===Me?J=true:typeof Me=="string"?w.textContent=Me:w.replaceChildren(Me):l?b.id===S?w.replaceChildren(Ga(l)):w.replaceChildren(...Ti(l,b.id)):p?b.id===R?(w.replaceChildren($a(t)),yo(w,t,K)):w.replaceChildren():(Ha(w,b,t),K&&b.id===R&&yo(w,t,K)),q&&!J){let Fe=Ri(o,b.id);w.classList.toggle("kanuni-datagrid-cell--span",Fe?.kind==="draw"),w.classList.toggle("kanuni-datagrid-cell--span-covered",Fe?.kind==="covered");let fn=Me!==void 0;if(Fe?.kind==="covered"&&m!==b.id&&!fn)w.replaceChildren();else if(Fe?.kind==="draw"){let Vt=h("kanuni-datagrid-span-box");Vt.style.height=`${Fe.height}px`,Vt.append(...Array.from(w.childNodes)),w.appendChild(Vt);}}else q||w.classList.remove("kanuni-datagrid-cell--span","kanuni-datagrid-cell--span-covered");if(Lt){let Fe=!k&&!!Co(t.key,b.id,t.data);w.classList.toggle("kanuni-datagrid-cell--noted",Fe);}w.id=`${u.gridId}-cell-${String(t.key)}-${b.id}`,w.setAttribute("aria-colindex",String(uo()+b.visualIndex+1)),w.classList.toggle("kanuni-datagrid-cell--focused",m===b.id);let Ie=t.kind==="data"?a.getFindMatchKind(t.key,b.id):null;w.classList.toggle("kanuni-datagrid-cell--find-match",Ie!==null),w.classList.toggle("kanuni-datagrid-cell--find-active",Ie==="active");let we=w.getAttribute("data-slot-classes");if(we)for(let Fe of we.split(" "))w.classList.remove(Fe);let ct=te&&ro?ro(te):void 0,Bt=b.def.cellClassName,Qt=[k?void 0:typeof Bt=="function"?Bt({value:a.getColumnModel().getCellValue(t.data,b.id),row:t.data,node:t,column:b.def}):Bt,ct].filter(Boolean).join(" ")||void 0;if(Qt){for(let Fe of Qt.split(" "))w.classList.add(Fe);w.setAttribute("data-slot-classes",Qt);}else we&&w.removeAttribute("data-slot-classes");}}let Pa=u.columns.some(e=>e.autoHeight);function ki(){if(!Pa)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=st[s]?.root;if(!i)continue;let c=i.getBoundingClientRect().height;c>0&&o.get(l.key)!==c&&(o.set(l.key,c),n=true);}n&&a.setMeasuredRowHeights(o);}let In={start:0,end:0};function Ri(e,t){let o=a.getCellSpans(t);if(o.length===0)return null;let n=spanRoleAt(o,e,In.start,In.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 xi(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(h("kanuni-datagrid-loading-bar","span"));else {let l=h("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 Ga(e){let t=h("kanuni-datagrid-group-inline","span");t.style.paddingInlineStart=`${e.level*16}px`;let o=h("kanuni-datagrid-group-twisty","span");o.setAttribute("aria-hidden","true"),o.textContent=e.expanded?"\u25BE":"\u25B8";let n=a.getColumnModel().getDef(e.columnId),r=h("kanuni-datagrid-group-caption","span");r.textContent=`${n?.headerName??e.columnId}:`;let l=h("kanuni-datagrid-group-label","span");l.textContent=lookupLabel(n,e.value)??e.display??(e.label===""?v.filterBlank:e.label);let s=h("kanuni-datagrid-group-count","span");return s.textContent=`(${e.count})`,Ea?t.append(o,l,s):t.append(o,r,l,s),t}function Ti(e,t){if(!e.aggregates)return [];let o=a.getSummaryDefs().find(r=>r.columnId===t);if(!o)return [];let n=h("kanuni-datagrid-group-aggregate-value","span");return n.textContent=formatSummaryValue(o,e.aggregates[summaryKey(o.columnId,o.type)],a.getColumnModel().getDef(t)),[n]}function $a(e){let t=h("kanuni-datagrid-tree-path-label","span");return t.textContent=e.label,t}function yo(e,t,o){let n=h(`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(h("kanuni-datagrid-tree-toggle kanuni-datagrid-tree-toggle--leaf","span"));n.append(...Array.from(e.childNodes)),e.appendChild(n);}let Co=(e,t,o)=>Lt?Lt.get({rowKey:e,columnId:t,row:o})??null:null,Oa=null,Ct=no?h("kanuni-datagrid-overlay"):null;Ct&&(Ct.style.position="absolute",Ct.style.inset="0",Ct.style.pointerEvents="none",Ke.appendChild(Ct));function Si(){if(!no||!Ct)return;let e=no();e!==Oa&&(Oa=e,e?Ct.replaceChildren(e):Ct.replaceChildren());}function Li(e){let t=a.getColumnLayout(),o=Array.from(bt.children);O.setAttribute("aria-rowcount",String(lo()+e+o.length)),O.setAttribute("aria-colcount",String(uo()+t.left.length+t.center.length+t.right.length)),a.getSelectionMode()==="multiple"?O.setAttribute("aria-multiselectable","true"):O.removeAttribute("aria-multiselectable"),o.forEach((n,r)=>n.setAttribute("aria-rowindex",String(lo()+e+r+1)));}function Hn(){Si(),nn&&wa();let e=a.getVirtualWindow(),t=a.getRows(),o=Yt?{...e,rows:{...e.rows,start:0,end:t.length,offsetY:0,totalHeight:0}}:e;hi(t),Li(t.length),Ke.style.height=`${o.rows.totalHeight}px`,ce.style.transform=`translateY(${o.rows.offsetY}px)`,Xt=a.getFindNeedle()||(Qr?normalizeSearch(a.getSearchText()):"");let n=Math.max(0,Math.min(o.rows.end,t.length)-o.rows.start);for(In.start=o.rows.start,In.end=Math.min(o.rows.end,t.length)-1;st.length>n;)st.pop().root.remove();for(let r=0;r<n;r++){let l=o.rows.start+r,s=t[l];if(!s){let p=st[r];if(!p||p.kind!=="loading"){let k=Dn("loading");p?ce.replaceChild(k.root,p.root):ce.appendChild(k.root),st[r]=k,p=k;}p.root.setAttribute("aria-rowindex",String(l+2)),p.root.style.height=`${a.getDataRowHeight()??a.getRowHeight()}px`,xi(p.root,l);continue}let i=s.kind==="data"?"data":s.kind==="group"?so?"data":"group":s.kind==="detail"||s.kind==="editform"||s.kind==="message"?"panel":"stub",c=st[r];if(!c||c.epoch!==dt||c.kind!==i){let p=Dn(i);c?ce.replaceChild(p.root,c.root):ce.appendChild(p.root),st[r]=p,c=p;}ho(c,s,l);}ki(),Ba();}let Fn=[];function Ba(){if(!a.hasStickyGroupHeaders())return;let e=Yt?[]:a.getStickyGroupRows();for(Ve.style.width=`${a.getColumnLayout().totalWidth}px`;Fn.length>e.length;)Fn.pop().wrap.remove();let t=so?"data":"group";e.forEach((o,n)=>{let r=Fn[n];if(!r||r.rs.epoch!==dt||r.rs.kind!==t){let l=Dn(t),s=r?.wrap??h("kanuni-datagrid-sticky-group");s.textContent="",s.appendChild(l.root),r||Ve.appendChild(s),r={wrap:s,rs:l},Fn[n]=r;}ho(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"));});}Ve.addEventListener("click",e=>{let o=e.target.closest("[data-group-key]")?.getAttribute("data-group-key");o&&a.scrollToRow(o);});let Kn=createDebouncedCommit(Jr??(a.isRemote()?200:0));function Va(e,t,o,n){let r=a.getColumnModel().getDef(t);if(!r?.renderFilter)return ()=>{};let l=()=>o==="row"?a.getColumnFilter(t,FILTER_PART_ROW):a.getColumnFilter(t,FILTER_PART_SET)??a.getColumnFilter(t,FILTER_PART_DEFAULT),s=new Set,i=a.events.on("filterChanged",()=>{let p=l();s.forEach(k=>k(p));}),c=r.renderFilter(e,{columnId:t,column:r,surface:o,getValue:l,setValue:p=>a.setColumnFilter(t,p,o==="row"?FILTER_PART_ROW:FILTER_PART_SET),close:n,onValueChange:p=>(s.add(p),()=>s.delete(p))});return ()=>{i(),s.clear(),typeof c=="function"&&c();}}let pn=[],gn=new Map,vo=false;function Ai(){!T||vo||wt.querySelectorAll("select[data-filter-operator-for]").forEach(e=>{let t=e.getAttribute("data-filter-operator-for");if(Kn.isPending(t))return;let o=a.getColumnModel().getDef(t),n=a.getColumnFilter(t,FILTER_PART_ROW),r=gn.get(t)??"",l=e.parentElement?.querySelector("input.kanuni-datagrid-filter-input"),s=r;if(n){let i=customFilterInputFromNode(n,o);s=i?.operatorId??"",i&&l&&(l.value=i.text);}else findCustomFilterOperator(o,r)?.operandType==="none"&&(s="");gn.set(t,s),e.value=s,l&&(l.disabled=findCustomFilterOperator(o,s)?.operandType==="none");});}function Eo(){if(!T)return;if(pn.forEach(n=>n()),pn=[],wt.textContent="",ot>0){let n=h("kanuni-datagrid-filter-cell kanuni-datagrid-filter-cell--pinned");n.setAttribute("role","gridcell"),n.style.width=`${ot}px`,n.style.flex="none",n.style.insetInlineStart="0px",wt.appendChild(n);}let e=false,t=null,o=()=>{if(!t){t=document.createElement("datalist"),t.id=`${u.gridId}-filter-periods`;for(let n of periodSuggestionList(pa)){let r=document.createElement("option");r.value=n,t.appendChild(r);}wt.appendChild(t);}return t.id};for(let n of at){if(!n.pinned&&!e){if(We>0){let s=h("kanuni-datagrid-spacer");s.style.width=`${We}px`,s.style.flex="none",wt.appendChild(s);}e=true;}let r=h(`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=h("kanuni-datagrid-filter-custom");s.setAttribute("data-filter-for",n.id),r.appendChild(s),pn.push(Va(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=customFilterOperators(n.def),c=()=>findCustomFilterOperator(n.def,gn.get(n.id)??"");n.def.dataType==="date"&&!c()&&s.setAttribute("list",o());let p=()=>{let m=c();vo=true;try{a.setColumnFilter(n.id,m?parseCustomFilterInput(n.id,s.value,m):parseFilterInput(n.id,s.value,n.def.dataType,pa),FILTER_PART_ROW);}finally{vo=false;}};if(i.length>0){let m=document.createElement("select");m.className="kanuni-datagrid-filter-operator",m.setAttribute("aria-label",fillText(v.filterOperatorAria,{column:n.def.headerName??n.id})),m.setAttribute("data-filter-operator-for",n.id);let K=[["",v.filterOperatorDefault],...i.map(R=>[R.id,R.label])];for(let[R,q]of K){let w=document.createElement("option");w.value=R,w.textContent=q,m.appendChild(w);}let S=customFilterInputFromNode(a.getColumnFilter(n.id,FILTER_PART_ROW),n.def);S&&(gn.set(n.id,S.operatorId),s.value=S.text),m.value=c()?.id??"",s.disabled=c()?.operandType==="none",m.addEventListener("change",()=>{gn.set(n.id,m.value),s.disabled=c()?.operandType==="none",c()?s.removeAttribute("list"):n.def.dataType==="date"&&s.setAttribute("list",o()),Kn.cancel(n.id),p();}),r.appendChild(m);}s.addEventListener("input",()=>Kn.schedule(n.id,p));let k=()=>{Kn.cancel(n.id),p();};s.addEventListener("keydown",m=>{m.key==="Enter"&&k();}),s.addEventListener("blur",k),r.appendChild(s);}wt.appendChild(r);}}let ko=()=>{};function Mi(){let e=resolveToolbar(sa);if(!e.show)return;let t=e.search,o=document.createElement("input");o.type="search",o.className="kanuni-datagrid-toolbar-search",o.placeholder=t?.placeholder??v.toolbarSearch,o.setAttribute("aria-label",v.toolbarSearch),o.setAttribute("data-testid","dg-toolbar-search"),t?.maxLength!==void 0&&(o.maxLength=t.maxLength);let n=h("kanuni-datagrid-toolbar-search-error","span");n.id=`kanuni-dg-search-error-${++Cd}`,n.setAttribute("role","alert"),n.setAttribute("data-testid","dg-toolbar-search-error"),n.style.display="none";let r=()=>{let R=t?.validate?.(o.value)??null;return n.textContent=R??"",n.style.display=R===null?"none":"",R===null?(o.removeAttribute("aria-invalid"),o.removeAttribute("aria-describedby")):(o.setAttribute("aria-invalid","true"),o.setAttribute("aria-describedby",n.id)),R===null},l=null,s=()=>{l&&clearTimeout(l),l=null,r()&&a.getSearchText()!==o.value&&a.setSearchText(o.value);};o.addEventListener("input",()=>{l&&clearTimeout(l),l=null,r()&&(l=setTimeout(s,t?.debounce??oi));}),t?.applyOnBlur!==false&&(o.addEventListener("blur",s),o.addEventListener("keydown",R=>{R.key==="Enter"&&s();}));let i=h("kanuni-datagrid-toolbar-spacer"),c=null;if(e.columns??z){let R=document.createElement("button");R.type="button",setCommandContent(R,"columns",v.toolbarColumns??"Columns"),R.setAttribute("aria-haspopup","dialog"),R.addEventListener("click",()=>{let q=R.getBoundingClientRect();Ja({left:q.left,top:q.bottom+2});}),c=R;}let p=mt&&ti,k=mt&&ni,m=document.createElement("button");m.type="button",m.className="kanuni-datagrid-toolbar-icon-button",m.setAttribute("aria-haspopup","menu"),m.setAttribute("aria-label",v.exportMenu),m.setAttribute("data-testid","dg-export-menu"),m.title=v.exportMenu,m.appendChild(Sd());let K=null;m.addEventListener("click",()=>{if(K)return;let R=m.getBoundingClientRect();ut({left:R.right-190,top:R.bottom+2},q=>{q.setAttribute("role","menu"),q.setAttribute("aria-label",v.exportMenu);let w=[{kind:"csv",label:v.exportCsv,testId:"dg-export-csv",on:a.canExportAll()},{kind:"excel",label:v.exportExcel,testId:"dg-export-excel",on:p},{kind:"excel-selected",label:v.exportExcelSelected,testId:"dg-export-excel-selected",on:p},{kind:"pdf",label:v.exportPdf,testId:"dg-export-pdf",on:k}];for(let b of w){if(!b.on)continue;let F=document.createElement("button");F.type="button",F.className="kanuni-datagrid-menu-item",F.setAttribute("role","menuitem"),F.setAttribute("data-testid",b.testId),F.textContent=b.label,b.kind==="excel-selected"&&a.getSelectedCount()===0&&(F.disabled=true),F.addEventListener("click",()=>{K=b.kind,m.disabled=true,He(),qo(a,b.kind).then(te=>{K=null,m.disabled=false,te.error&&ko(te.error);});}),q.appendChild(F);}},"kanuni-datagrid-filter-popup kanuni-datagrid-export-menu");});for(let R of ei??[])it.append(R);t&&it.append(o,n),it.append(i),c&&it.append(c),e.export&&(a.canExportAll()||p||k)&&it.append(m);for(let R of Zr??[])it.append(R);let S=h("kanuni-datagrid-toolbar-error","span");S.setAttribute("role","alert"),S.style.display="none",it.append(S),ko=R=>{S.textContent=R,S.style.display="";};}function _a(){if(!Ze.isConnected)return;let e=a.getPage(),t=a.getPageCount(),o=document.activeElement,n=o instanceof HTMLElement&&Ze.contains(o)?o.getAttribute("data-pager"):null;Ze.textContent="";let r=(c,p,k,m,K)=>{let S=document.createElement("button");return S.type="button",S.textContent=c,S.setAttribute("aria-label",p),S.setAttribute("data-pager",K),S.disabled=k,S.addEventListener("click",m),S},l=h("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")),kn?.pageButtons)for(let c of pageButtonItems(e,t,kn.maxPageButtons)){if(typeof c!="number"){let m=h("kanuni-datagrid-pager-gap","span");m.textContent="\u2026",m.setAttribute("aria-hidden","true"),l.append(m);continue}let p=String(c+1),k=r(p,v.pagerPageButton.replace("{n}",p),false,()=>a.setPage(c),`page-${c}`);k.classList.add("kanuni-datagrid-pager-page"),c===e&&k.setAttribute("aria-current","page"),l.append(k);}else {let c=h("kanuni-datagrid-pager-current","span");c.textContent=`${e+1} / ${t}`,l.append(c);}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")),Ze.appendChild(l),n!==null){let c=Ze.querySelector(`[data-pager="${n}"]`);(c&&!c.disabled?c:Ze.querySelector('[aria-current="page"]')??Ze.querySelector("button:not(:disabled)"))?.focus();}}function Ro(){if(!Qe)return;let e=a.getColumnLayout(),t=a.getSummaries(),o=new Map(a.getSummaryDefs().map(r=>[r.columnId,r]));if(Pe.textContent="",Pe.style.width=`${e.totalWidth+ot}px`,ot>0){let r=h("kanuni-datagrid-footer-cell kanuni-datagrid-footer-cell--pinned");r.style.width=`${ot}px`,r.style.insetInlineStart="0px",Pe.appendChild(r);}let n=false;for(let r of at){if(!r.pinned&&!n){if(We>0){let c=h("kanuni-datagrid-spacer");c.style.width=`${We}px`,Pe.appendChild(c);}n=true;}let l=o.get(r.id),s=r.def.dataType==="number"||r.def.dataType==="bigint",i=h(`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=`${summaryLabel(l,ao)} \u2014 ${r.def.headerName??r.id}`;let c=h("kanuni-datagrid-footer-value","span");c.textContent=formatSummaryValue(l,t[summaryKey(l.columnId,l.type)],r.def),i.appendChild(c);}else {let c=h("kanuni-datagrid-footer-hint","span");c.textContent=U&&!isChromeColumn(r.id)?"\xB7":"",i.appendChild(c);}Pe.appendChild(i);}}function Di(){Mt()>0?Je.isConnected||Ne.insertBefore(Je,Ve.isConnected?Ve:Ke):Je.remove(),fa()>0?bt.isConnected||Ne.insertBefore(bt,Ke.nextSibling):bt.remove(),Ve.style.setProperty("--dg-sticky-below",`${Mt()>0?Mt()*a.getRowHeight()+1:0}px`);}function Pn(){let e=ht;ht=ue;try{Ni();}finally{ht=e;}}function Ni(){let e=(t,o,n,r)=>{t.textContent="",o.forEach((l,s)=>{let i=Dn("data");ho(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(io+Dt+s+1)),i.root.removeAttribute("aria-selected"),Ka(i.root,null),i.rowNumberCell&&(i.rowNumberCell.textContent="");let c=r[s-(o.length-r.length)];c!==void 0?i.root.setAttribute("data-pinned-row-key",String(c)):i.root.removeAttribute("data-pinned-row-key"),t.appendChild(i.root);});};for(let[t,o,n]of [["top",Je,se],["bottom",bt,_]]){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 Gn=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(c=>String(c)===o);if(r===void 0)return;let l=Wa(r,false);if(l.length===0)return;e.preventDefault();let s=a.getPinnedRows(a.getRowPinSide(r)??"top").find(c=>c.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()};ut({left:e.clientX,top:e.clientY},c=>{c.setAttribute("role","menu"),On(c,l,i);},"kanuni-datagrid-context-menu");};Je.addEventListener("contextmenu",Gn),bt.addEventListener("contextmenu",Gn);function Wa(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 Kt=null,Pt=null,xo=null;function He(e=true){Pt?.(),Pt=null,Kt?.remove(),Kt=null;let t=xo;xo=null,e&&t?.();}function To(e){return Le.querySelector(`.kanuni-datagrid-header-cell[data-column-id="${CSS.escape(e)}"]`)}function qa(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=Kt?.querySelector('.kanuni-datagrid-submenu [role="menuitem"]:not(:disabled)')??void 0;break;case "ArrowLeft":if(!t)return;t();break;case "Tab":He();break;default:return}o.preventDefault(),o.stopPropagation(),s?.focus();});}function Ua(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 ut(e,t,o="kanuni-datagrid-filter-popup"){He(false);let n=document.activeElement instanceof HTMLElement?document.activeElement:null,r=n&&Le.contains(n)?n.closest("[data-column-id]")?.getAttribute("data-column-id")??null:null;Kt=h(`${Qn(u)} kanuni-datagrid-portal`);let l=h(o);l.style.position="fixed",l.style.left=`${e.left}px`,l.style.top=`${e.top}px`,l.style.zIndex="1000",t(l),Kt.appendChild(l),portalTarget(u.portalContainer).appendChild(markPortal(Kt,u.portalContainer)),Ua(l,e),xo=()=>{(n?.isConnected?n:r?To(r):null)?.focus({preventScroll:true});},l.getAttribute("role")==="menu"&&(qa(l),l.querySelector('[role="menuitem"]:not(:disabled)')?.focus({preventScroll:true}));let s=Kt,i=p=>{s.contains(p.target)||He(false);},c=p=>{p.key==="Escape"&&He();};document.addEventListener("pointerdown",i,true),document.addEventListener("keydown",c,true),Pt=()=>{document.removeEventListener("pointerdown",i,true),document.removeEventListener("keydown",c,true);};}let vt=25,za=8,So=new Map,Lo=0;function Ya(e,t){let o=t.getBoundingClientRect(),n=++Lo;if(a.getColumnModel().getDef(e)?.renderFilter){let s=null,i=null;ut({left:o.left,top:o.bottom+2},k=>{i=k,k.classList.add("kanuni-datagrid-filter-popup--custom"),k.setAttribute("role","dialog"),k.setAttribute("aria-label",`${a.getColumnModel().getDef(e)?.headerName??e} filter`),k.setAttribute("data-column-id",e),k.tabIndex=-1,s=Va(k,e,"popup",()=>He());});let c=i;c&&(c.querySelector('input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), a[href], [tabindex]:not([tabindex="-1"])')??c).focus({preventScroll:true});let p=Pt;Pt=()=>{p?.(),s?.(),s=null;};return}let r=null;ut({left:o.left,top:o.bottom+2},s=>{s.setAttribute("role","dialog"),s.setAttribute("aria-label",`${a.getColumnModel().getDef(e)?.headerName??e} filter`);let i=[],c=true,p=new Set,k=false,m=0,K="",S=[],R=null,q="",w=[],b=null,F=document.createElement("input");F.type="search",F.className="kanuni-datagrid-filter-search",F.placeholder=v.search,F.setAttribute("data-testid","dg-filter-search");let te=h("kanuni-datagrid-filter-actions"),be=document.createElement("button");be.type="button",be.textContent=v.filterSelectAll,be.addEventListener("click",()=>{if(b)return b.selectAll();if(k=true,K.trim()==="")p=new Set(i.map(H=>H.label));else for(let H of S)p.add(H.label);$e();});let Me=document.createElement("button");Me.type="button",Me.textContent=v.clear,Me.addEventListener("click",()=>{if(b)return b.clear();if(k=true,K.trim()==="")p=new Set;else for(let H of S)p.delete(H.label);$e();}),te.append(be,Me);let J=h("kanuni-datagrid-filter-list");J.setAttribute("role","listbox"),J.setAttribute("aria-multiselectable","true");let Ie=document.createElement("div");Ie.style.position="relative";let we=document.createElement("div");Ie.appendChild(we),J.appendChild(Ie);let ct=()=>{let H=foldText(K.trim());if(!H){S=i;return}R||(R=i.map(oe=>foldText(oe.label))),S=q!==""&&H.includes(q)?w.filter(oe=>foldText(oe.label).includes(H)):i.filter((oe,ve)=>R[ve].includes(H)),q=H,w=S;},Bt=H=>{let oe=H.getRowCount(),ve=H.isLoading();J.setAttribute("aria-busy",String(ve)),J.setAttribute("aria-setsize",String(oe));let xe=document.activeElement instanceof HTMLElement?document.activeElement.closest(".kanuni-datagrid-filter-item")?.getAttribute("data-index")??null:null;if(we.textContent="",ve||oe===0){Ie.style.height="",we.style.transform="";let Te=h("kanuni-datagrid-filter-empty");Te.textContent=ve?v.filterLoading:v.filterNoMatch,we.appendChild(Te);return}Ie.style.height=`${H.getWindow(J.scrollTop,240).totalHeight}px`;let et=H.getWindow(J.scrollTop,Math.max(J.clientHeight,150));Ie.style.height=`${et.totalHeight}px`,we.style.transform=`translateY(${et.offsetY}px)`;for(let Te=et.start;Te<et.end;Te++){let ze=H.getRow(Te),ge=h("kanuni-datagrid-filter-item");if(ge.setAttribute("role","option"),ge.setAttribute("data-index",String(Te)),!ze){ge.classList.add("kanuni-datagrid-filter-item--pending"),ge.setAttribute("aria-selected","false"),ge.setAttribute("aria-busy","true");let _o=document.createElement("span");_o.setAttribute("aria-hidden","true"),_o.textContent="\u2026",ge.appendChild(_o),we.appendChild(ge);continue}let Tt=H.isChecked(ze);ge.setAttribute("aria-selected",String(Tt)),ge.tabIndex=0,ge.setAttribute("data-value",ze.label),Te===m&&ge.classList.add("kanuni-datagrid-filter-item--active");let St=document.createElement("input");St.type="checkbox",St.readOnly=true,St.checked=Tt,St.tabIndex=-1;let Mr=document.createElement("span");Mr.textContent=ze.blank?v.filterBlank:ze.label,ge.append(St,Mr),ge.addEventListener("click",()=>H.toggle(ze)),ge.addEventListener("focus",()=>{m=Te;}),we.appendChild(ge);}H.ensure(et.start,et.end),xe!==null&&we.querySelector(`[data-index="${xe}"]`)?.focus({preventScroll:true});},$e=()=>{if(b&&!c)return Bt(b);if(J.setAttribute("aria-busy",String(c)),J.setAttribute("aria-setsize",String(S.length)),c){Ie.style.height="",we.textContent="";let Te=h("kanuni-datagrid-filter-empty");Te.textContent=v.filterLoading,we.appendChild(Te);return}if(S.length===0){Ie.style.height="",we.style.transform="",we.textContent="";let Te=h("kanuni-datagrid-filter-empty");Te.textContent=v.filterNoMatch,we.appendChild(Te);return}let H=J.clientHeight||240,oe=Math.max(0,Math.floor(J.scrollTop/vt)-za),ve=Math.ceil(H/vt)+za*2,xe=Math.min(oe,Math.max(0,S.length-1)),et=Math.min(S.length,xe+ve);Ie.style.height=`${S.length*vt}px`,we.style.transform=`translateY(${xe*vt}px)`,we.textContent="";for(let Te=xe;Te<et;Te++){let ze=S[Te],ge=h("kanuni-datagrid-filter-item");ge.setAttribute("role","option"),ge.setAttribute("aria-selected",String(p.has(ze.label))),ge.tabIndex=0,ge.setAttribute("data-value",ze.label),ge.setAttribute("data-index",String(Te)),Te===m&&ge.classList.add("kanuni-datagrid-filter-item--active");let Tt=document.createElement("input");Tt.type="checkbox",Tt.readOnly=true,Tt.checked=p.has(ze.label),Tt.tabIndex=-1;let St=document.createElement("span");St.textContent=ze.label===""?v.filterBlank:ze.label,ge.append(Tt,St),ge.addEventListener("click",()=>Qt(ze.label)),ge.addEventListener("focus",()=>{m=Te;}),we.appendChild(ge);}},Qt=H=>{k=true,p.has(H)?p.delete(H):p.add(H);for(let oe of we.querySelectorAll(".kanuni-datagrid-filter-item")){if(oe.getAttribute("data-value")!==H)continue;oe.setAttribute("aria-selected",String(p.has(H)));let ve=oe.querySelector("input");ve&&(ve.checked=p.has(H));}};J.addEventListener("scroll",()=>{So.set(e,J.scrollTop),$e();});let Fe=null,fn=()=>{if(m=0,b){let H=b;Fe&&clearTimeout(Fe),Fe=setTimeout(()=>{Fe=null,H.getSearch()!==K.trim()&&(H.setSearch(K),J.scrollTop=0,$e());},150);return}ct(),$e();};F.addEventListener("input",()=>{K=F.value,fn();});let Vt=H=>{if(b){let xe=b.getRowCount();if(xe===0)return;m=Math.max(0,Math.min(xe-1,H)),H<=0?J.scrollTop=0:H>=xe-1&&(J.scrollTop=J.scrollHeight),$e();let et=s.querySelector(`.kanuni-datagrid-filter-item[data-index="${m}"]`);et?.focus(),et?.scrollIntoView?.({block:"nearest"});return}if(S.length===0)return;m=Math.max(0,Math.min(S.length-1,H));let oe=m*vt,ve=J.clientHeight||240;oe<J.scrollTop?J.scrollTop=oe:oe+vt>J.scrollTop+ve&&(J.scrollTop=oe+vt-ve),$e(),s.querySelector(`.kanuni-datagrid-filter-item[data-index="${m}"]`)?.focus();},Sr=()=>{if(c)return;if(b){if(b.isLoading())return;a.setColumnFilter(e,b.buildFilter(e),FILTER_PART_SET),He();return}let H;if(p.size===i.length)H=null;else {let oe=p.has(""),ve=i.filter(xe=>xe.label!==""&&p.has(xe.label));ve.length===0?H=oe?{columnId:e,operator:"isnull"}:null:oe?H={logic:"or",nodes:[{columnId:e,operator:"in",value:ve.map(xe=>xe.value)},{columnId:e,operator:"isnull"}]}:H={columnId:e,operator:"in",value:ve.map(xe=>xe.value)};}a.setColumnFilter(e,H,FILTER_PART_SET),He();};s.tabIndex=-1,s.addEventListener("keydown",H=>{let oe=H.target===F;if(H.key==="Backspace"&&!oe){H.preventDefault(),F.focus(),K=K.slice(0,-1),F.value=K,fn();return}if(H.key==="ArrowDown"){H.preventDefault(),Vt(oe?0:m+1);return}if(H.key==="ArrowUp"){H.preventDefault(),Vt(oe?b?0:S.length-1:m-1);return}if(!oe&&(H.key==="Home"||H.key==="End")){H.preventDefault(),Vt(H.key==="Home"?0:(b?b.getRowCount():S.length)-1);return}if(H.key===" "&&!oe){if(H.preventDefault(),b){let xe=b.getRow(m);xe&&b.toggle(xe);return}let ve=S[m];ve&&Qt(ve.label);return}if(H.key==="Enter"){H.preventDefault(),Sr();return}!oe&&H.key.length===1&&H.key!==" "&&!H.ctrlKey&&!H.metaKey&&!H.altKey&&(H.preventDefault(),F.focus(),K+=H.key,F.value=K,fn());});let Lr=h("kanuni-datagrid-filter-footer"),Yn=document.createElement("button");Yn.type="button",Yn.textContent=v.cancel,Yn.addEventListener("click",()=>He());let pt=document.createElement("button");pt.type="button",pt.className="kanuni-datagrid-filter-primary",pt.setAttribute("data-testid","dg-filter-apply"),pt.textContent=v.apply,pt.disabled=true,pt.addEventListener("click",Sr),Lr.append(Yn,pt),s.append(F,te,J,Lr),$e(),queueMicrotask(()=>{F.isConnected&&F.focus();});let Ar=H=>{i=H,R=null,q="",c=false,pt.disabled=false;let oe=selectedLabelsFromFilter(a.getColumnFilter(e,FILTER_PART_SET)??a.getColumnFilter(e,FILTER_PART_DEFAULT),i);oe?(k=true,p=new Set(oe)):k||(p=new Set(i.map(xe=>xe.label))),ct();let ve=So.get(e);$e(),ve&&(J.scrollTop=ve,$e());},xt=a.openRemoteDistinct(e,vt);if(xt){b=xt,r=xt,xt.subscribe(()=>{s.isConnected&&b===xt&&$e();}),xt.start().then(H=>{if(Lo!==n||!s.isConnected){xt.dispose();return}if(H.kind==="paged"){c=false,pt.disabled=false;let oe=So.get(e);$e(),oe&&(J.scrollTop=oe,$e());return}xt.dispose(),b=null,r=null,Ar(a.sortDistinctEntries(H.values));});return}a.getDistinctValueSetAsync(e).then(H=>{Lo!==n||!s.isConnected||Ar(H.entries);});});let l=Pt;Pt=()=>{l?.(),r?.dispose(),r=null;};}function $n(e={}){let t=a.getClipboardText(e);a.notifyClipboardGesture("copy",t?t.split(`
2
- `).length:0,()=>a.writeClipboard(t,"copy"));}function Ii(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:`${Fi}C`,onSelect:()=>$n()}),t.copyWithHeaders!==false&&n({id:"__dg-copy-headers",label:v.menuCopyWithHeaders,onSelect:()=>$n({includeHeaders:true})}),t.copyWithGroupHeaders!==false&&Hi()&&n({id:"__dg-copy-group-headers",label:v.menuCopyWithGroupHeaders,onSelect:()=>$n({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:()=>{qo(a,i).then(c=>{c.error&&ko(c.error);});}}))});}return o}function Hi(){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 Fi=/Mac|iPhone|iPad|iPod/.test(navigator.platform??"")?"\u2318":"Ctrl+";function On(e,t,o){let n=null,r=()=>{n?.remove(),n=null;};t.forEach((l,s)=>{if(l.separator){let m=h("kanuni-datagrid-menu-separator");m.setAttribute("role","separator"),e.appendChild(m);return}let i=h("kanuni-datagrid-menu-row"),c=document.createElement("button");if(c.type="button",c.className="kanuni-datagrid-menu-item",c.setAttribute("role","menuitem"),c.setAttribute("data-item-index",String(s)),l.disabled&&(c.disabled=true),l.icon!==void 0){let m=h("kanuni-datagrid-menu-icon","span");typeof l.icon=="string"?m.textContent=l.icon:m.appendChild(l.icon),c.appendChild(m);}let p=h("kanuni-datagrid-menu-label","span");if(p.textContent=l.label??"",c.appendChild(p),l.shortcut){let m=h("kanuni-datagrid-menu-shortcut","span");m.textContent=l.shortcut,c.appendChild(m);}let k=l.items??[];if(k.length>0){let m=h("kanuni-datagrid-menu-caret","span");m.textContent="\u203A",c.appendChild(m),c.setAttribute("aria-haspopup","menu"),c.setAttribute("aria-expanded","false");let K=()=>{r();let S=h("kanuni-datagrid-context-menu kanuni-datagrid-submenu");S.setAttribute("role","menu");let R=c.getBoundingClientRect();S.style.left=`${R.right}px`,S.style.top=`${Math.max(0,R.top-4)}px`;for(let q of k){if(q.separator){let F=h("kanuni-datagrid-menu-separator");F.setAttribute("role","separator"),S.appendChild(F);continue}let w=document.createElement("button");w.type="button",w.className="kanuni-datagrid-menu-item",w.setAttribute("role","menuitem"),q.disabled&&(w.disabled=true);let b=h("kanuni-datagrid-menu-label","span");b.textContent=q.label??"",w.appendChild(b),w.addEventListener("click",()=>{q.onSelect?.(o),He();}),S.appendChild(w);}e.parentElement?.appendChild(S),Ua(S,{left:R.right,top:Math.max(0,R.top-4)}),n=S,c.setAttribute("aria-expanded","true"),qa(S,()=>{r(),c.setAttribute("aria-expanded","false"),c.focus();});};c.addEventListener("mouseenter",K),c.addEventListener("click",K);}else c.addEventListener("mouseenter",r),c.addEventListener("click",()=>{l.onSelect?.(o),He();});i.appendChild(c),e.appendChild(i);});}let ja=e=>{let o=e.target.closest(".kanuni-datagrid-row");if(!o||o.classList.contains("kanuni-datagrid-group-row"))return;let n=Et(e);if(n?.columnId&&a.notifyCell("cellContextMenu",n.node,n.rowIndex,n.columnId),!ye&&!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 ye=="function"?ye(r):ye)??[],s=[...l,...Ki(r,l.length>0)],i=[...s,...Wa(n.node.key,s.length>0)],c=Ii(i.length>0);i.length===0&&c.length===0||ut({left:e.clientX,top:e.clientY},p=>{p.setAttribute("role","menu"),On(p,[...i,...c],r);},"kanuni-datagrid-context-menu");};function Ki(e,t){if(!Lt?.onChange||Lt.menu===false)return [];let o=e.columnId;if(!o)return [];let n=e.node.key,r=Co(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:()=>Pi(n,o,e.row,r??"")}),r&&l.push({id:"__note-delete",label:v.deleteNote,onSelect:()=>Lt.onChange?.({rowKey:n,columnId:o,row:e.row,text:null})}),l}function Pi(e,t,o,n){let l=(O.querySelector(`[data-row-key="${CSS.escape(String(e))}"] [data-column-id="${CSS.escape(t)}"]`)??O).getBoundingClientRect();queueMicrotask(()=>{ut({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 c=()=>{let K=i.value.trim();He(),Lt?.onChange?.({rowKey:e,columnId:t,row:o,text:K===""?null:K});};i.addEventListener("keydown",K=>{K.key==="Enter"&&(K.ctrlKey||K.metaKey)&&(K.preventDefault(),c()),K.key==="Escape"&&(K.preventDefault(),He());});let p=h("kanuni-datagrid-note-actions"),k=document.createElement("button");k.type="button",k.className="kanuni-datagrid-note-cancel",k.textContent=v.cancel,k.addEventListener("click",()=>He());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",c),p.append(k,m),s.append(i,p),queueMicrotask(()=>{i.focus(),i.select();});},"kanuni-datagrid-filter-popup kanuni-datagrid-note-editor");});}function Gi(e){It!==e&&(It=e,e?(O.insertBefore(_e,ae),Do()):_e.remove());}function $i(e){if(Qe!==e){if(Qe=e,e){if(rt){let t=Je.isConnected?Je:Ve.isConnected?Ve:Ke;Ne.insertBefore(Pe,t);}else Ne.append(Pe);Ro();}else Pe.remove();Je.style.setProperty("--dg-pinned-gap",String(Dt+(Qe&&rt?1:0))),Ve.style.setProperty("--dg-pinned-gap",String(Dt+(Qe&&rt?1:0)));}}function Ao(e){let t=Uo(O,e);t!==null&&a.setColumnWidth(e,t);}function Xa(e,t){let o=a.getColumnModel().getDef(e),n={columnId:e,headerName:o?.headerName??e},r=Wo(n,{controller:a,t:v,groupPanelVisible:It,footerVisible:Qe,onToggleGroupPanel:()=>Gi(!It),onToggleFooter:()=>$i(!Qe),onOpenFieldChooser:()=>Ja(t),onBestFit:Ao,onBestFitAll:()=>{for(let s of a.getColumnStates())s.visible&&!s.flex&&Ao(s.id);},maxGroupLevels:mt?Number.POSITIVE_INFINITY:1}),l=typeof Se=="function"?Se(n,r):r;l.length!==0&&ut(t,s=>{s.setAttribute("role","menu"),On(s,l,n);},"kanuni-datagrid-context-menu");}function Oi(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},...allowedSummaryTypes(o?.dataType).map(s=>({id:s,label:ao[s],disabled:n?.type===s,onSelect:()=>a.setColumnSummary(e,s)}))];ut(t,s=>{s.setAttribute("role","menu"),On(s,l,r);},"kanuni-datagrid-context-menu");}function Ja(e){ut(e,t=>{t.setAttribute("role","dialog"),t.setAttribute("aria-label",v.columns);let o=h("kanuni-datagrid-chooser-title");o.textContent=v.columns,t.appendChild(o);let n=()=>a.getColumnStates().filter(m=>!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(),k();}),t.appendChild(m);}let s=h("kanuni-datagrid-filter-list");t.appendChild(s);let i=h("kanuni-datagrid-filter-footer"),c=document.createElement("button");c.type="button",c.textContent=v.showAll,c.addEventListener("click",()=>{for(let m of n())m.visible||a.setColumnVisible(m.id,true);k();});let p=document.createElement("button");p.type="button",p.className="kanuni-datagrid-filter-primary",p.textContent=v.ok,p.addEventListener("click",()=>He()),i.append(c,p),t.appendChild(i);function k(){let m=n(),K=m.filter(R=>R.visible).length;s.textContent="";let S=l?m.filter(R=>r(R.id).toLocaleLowerCase().includes(l)):m;if(S.length===0){let R=h("kanuni-datagrid-chooser-empty");R.textContent=v.noData,s.appendChild(R);}for(let R of S){let q=document.createElement("label");q.className="kanuni-datagrid-filter-item";let w=document.createElement("input");w.type="checkbox",w.checked=R.visible,w.disabled=R.visible&&K===1,w.setAttribute("data-column-toggle",R.id),w.addEventListener("change",()=>{a.setColumnVisible(R.id,w.checked),k();});let b=document.createElement("span");b.textContent=r(R.id),q.append(w,b),s.appendChild(q);}c.disabled=K===m.length;}k();},"kanuni-datagrid-filter-popup kanuni-datagrid-column-chooser");}let Gt=null,Mo=null,Bn=e=>{_e.classList.toggle("kanuni-datagrid-group-panel--over",e);};function Qa(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;Mo=e,a.groupBy([...r.slice(0,s),e,...r.slice(s)]);}function Za(e,t){let o=a.getGroupLevels(),n=o.indexOf(e),r=n+t;n<0||r<0||r>=o.length||Qa(e,o[r],t===-1?"before":"after");}function er(e,t){if(!e)return;let o=a.getGroupLevels();if(o.includes(e))return;let n=mt?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 Do(){if(!It)return;_e.textContent="";let e=a.getGroupLevels();if(e.length===0){let c=h("kanuni-datagrid-group-panel-hint","span");c.textContent=v.groupPanelHint??"Drag a column header here to group by it",_e.appendChild(c);return}let t=c=>a.getColumnModel().getDef(c)?.headerName??c,o=h("kanuni-datagrid-group-levels"),n=(c,p)=>c<p.top+p.height/2?"before":"after",r=(c,p)=>{for(let k of _e.querySelectorAll(".kanuni-datagrid-group-level"))k.classList.remove("kanuni-datagrid-group-level--drop-before","kanuni-datagrid-group-level--drop-after");c&&p&&c.classList.add(`kanuni-datagrid-group-level--drop-${p}`);};e.forEach((c,p)=>{let k=h("kanuni-datagrid-group-level");k.style.setProperty("--dg-group-level",String(p)),k.setAttribute("data-group-level",String(p));let m=h("kanuni-datagrid-group-chip");if(m.setAttribute("role","button"),m.tabIndex=0,e.length>1&&(m.draggable=true),m.setAttribute("aria-label",`${fillText(v.groupLevelAria,{n:p+1})}: ${t(c)}`),m.addEventListener("dragstart",R=>{Gt=c,R.dataTransfer&&(R.dataTransfer.effectAllowed="move",R.dataTransfer.setData("text/x-kanuni-column",c));}),m.addEventListener("dragend",()=>{Gt=null,r(null,null);}),m.addEventListener("keydown",R=>{let q=R.ctrlKey||R.metaKey;q&&(R.key==="ArrowUp"||R.key==="ArrowLeft")?(R.preventDefault(),Za(c,-1)):q&&(R.key==="ArrowDown"||R.key==="ArrowRight")?(R.preventDefault(),Za(c,1)):(R.key==="Delete"||R.key==="Backspace")&&(R.preventDefault(),a.groupBy(e.filter(w=>w!==c)));}),k.addEventListener("dragover",R=>{!Gt&&!(R.dataTransfer?.types.includes("text/x-kanuni-column")??false)||(R.preventDefault(),R.stopPropagation(),r(k,n(R.clientY,k.getBoundingClientRect())));}),k.addEventListener("drop",R=>{R.preventDefault(),R.stopPropagation();let q=n(R.clientY,k.getBoundingClientRect());r(null,null),Bn(false);let w=Gt;if(Gt=null,w){Qa(w,c,q);return}let b=R.dataTransfer?.getData("text/x-kanuni-column");b&&er(b,q==="before"?p:p+1);}),e.length>1){let R=h("kanuni-datagrid-group-chip-level","span");R.textContent=String(p+1),m.appendChild(R);}let K=document.createElement("span");K.textContent=t(c);let S=document.createElement("button");S.type="button",S.setAttribute("aria-label",fillText(v.groupRemoveAria,{column:t(c)})),S.textContent="\xD7",S.addEventListener("click",()=>{a.groupBy(e.filter(R=>R!==c));}),S.draggable=false,m.append(K,S),k.appendChild(m),o.appendChild(k),Mo===c&&(Mo=null,queueMicrotask(()=>m.focus()));}),_e.appendChild(o);let l=h("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),_e.appendChild(l);}if(It){let e=t=>t.dataTransfer?.types.includes("text/x-kanuni-column")??false;_e.addEventListener("dragover",t=>{e(t)&&(t.preventDefault(),Bn(true));}),_e.addEventListener("dragleave",t=>{let o=t.relatedTarget;o&&_e.contains(o)||Bn(false);}),_e.addEventListener("drop",t=>{Bn(false);let o=t.dataTransfer?.getData("text/x-kanuni-column");if(o){if(t.preventDefault(),Gt){Gt=null;return}er(o);}});}let tr="";function nr(){if(!D)return;let e=[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,c=l.direction==="desc"?v.announceDescending:v.announceAscending;return `${i} ${c}`}).join(", ");e.push(fillText(v.announceSortedBy,{columns:r}));}let o=a.getSelectedCount();o>0&&e.push(fillText(v.announceSelected,{n:o}));let n=e.join(", ");n!==tr&&(tr=n,rn.textContent=n);}function or(){if(!re)return;Nt.textContent="";let e=describeFilter(a.getEffectiveFilter(),a.getColumnModel(),{...fe,labels:{...filterLabels(v),...fe?.labels}});if(!e&&re!=="always"){Nt.style.display="none";return}Nt.style.display="";let t=a.isFilterEnabled();Nt.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=h("kanuni-datagrid-filter-panel-text","span");if(r.setAttribute("data-testid","dg-filter-panel-text"),r.textContent=e??v.filterNone,e&&(r.title=e),Nt.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),Nt.appendChild(l);}}let No=new Set,Bi=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=[];ce.querySelectorAll(n).forEach(i=>{i.querySelectorAll(r).forEach(c=>l.push(c));});for(let i of l)i.classList.remove("kanuni-datagrid-cell--flash");O.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");No.delete(s);},o);No.add(s);});function Et(e){let t=e.target,o=t.closest(".kanuni-datagrid-row");if(!o||!ce.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 ar=e=>{let t=Et(e);t&&(P?.(t.node),a.notifyRow("rowClicked",t.node,t.rowIndex),t.columnId&&a.notifyCell("cellClicked",t.node,t.rowIndex,t.columnId));},rr=e=>{let t=Et(e);if(t){if(ga){let o=Go(t,true);o&&ga(o);}he?.(t.node),a.notifyRow("rowDoubleClicked",t.node,t.rowIndex),t.columnId&&a.notifyCell("cellDoubleClicked",t.node,t.rowIndex,t.columnId);}};ce.addEventListener("click",ar),ce.addEventListener("dblclick",rr);function Vi(e){let t=0,o=Le.querySelector(`[data-column-id="${CSS.escape(e)}"]`);o&&(t=o.scrollWidth),ce.querySelectorAll(`[data-column-id="${CSS.escape(e)}"]`).forEach(n=>{n.scrollWidth>t&&(t=n.scrollWidth);}),t>0&&a.setColumnWidth(e,t+12,true);}function _i(){if(Re)for(let e of Le.querySelectorAll('[role="columnheader"][data-column-id]')){let t=Re(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 Wi(){if($)for(let e of Le.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 Io=false,ir=false,Jt=null;function Vn(){Jt!==null&&(clearTimeout(Jt),Jt=null);}function _n(e){an.style.display=e?"":"none";}function Wn(){let e=a.getOverlay();if(Rn.style.display=e==="noRows"?"":"none",oo===false){Vn(),_n(false);return}if(!(e==="loading"&&(Io||!ir))){Vn(),_n(false);return}if(Io||ca<=0){Vn(),_n(true);return}Jt!==null||an.style.display===""||(Jt=setTimeout(()=>{Jt=null,Ge||_n(true);},ca));}let lr=false,Ho=false,Fo=false,Ko=false,Ge=false,Po=new RowMotion;function qi(){if(Ho=false,!Ge){if(Fo)Fo=false,Ko&&(Ko=false,dt++),bo(),wo(),Eo(),Pn();else {let e=We;bo(),We!==e?(dt++,wo(),Eo(),Pn()):a.getPinnedRows("top").length+a.getPinnedRows("bottom").length>0&&Pn();}Hn(),a.getAnimateRows()&&Po.play(ce),Da(),Ro(),_a(),Wi(),_i(),Do(),or(),nr(),Wn();}}function qn(e){Ge||(e&&(Fo=true),!Ho&&(Ho=true,queueMicrotask(qi)));}let Ui=[...X?[a.events.on("focusedRowChanged",e=>X({rowKey:e.rowKey,row:e.row}))]:[],...vd.map(e=>a.events.on(e,()=>qn(true))),...Ed.map(e=>a.events.on(e,()=>{Ko=true;})),...kd.map(e=>a.events.on(e,()=>qn(false))),a.events.on("filterChanged",()=>Ai()),...["sortChanged","filterChanged","groupChanged","dataUpdated"].map(e=>a.events.on(e,()=>{a.getAnimateRows()&&Po.capture(ce);})),a.events.on("rowPinningChanged",()=>{Ge||(Di(),qn(true));}),a.events.on("overlayChanged",e=>{Io=e.manual===true&&e.overlay==="loading",Ge||Wn();}),a.events.on("busyChanged",e=>{ir=e.background===true,Ge||Wn();}),a.events.on("paginationChanged",()=>{Ge||qn(false);}),a.events.on("bodyScroll",()=>{Ge||Ba();}),a.events.on("cellsRefreshed",()=>{Ge||Fa();}),a.events.on("scrollRequested",e=>{if(Ge)return;e.scrollTop!==void 0&&(ae.scrollTop=e.scrollTop),e.scrollLeft!==void 0&&(ae.scrollLeft=e.scrollLeft),a.setScroll(ae.scrollTop,Math.abs(ae.scrollLeft));let t=e.scrollTop;t===void 0||Math.abs(ae.scrollTop-t)<=1||setTimeout(()=>{Ge||Math.abs(ae.scrollTop-t)<=1||(ae.scrollTop=t,a.setScroll(ae.scrollTop,Math.abs(ae.scrollLeft)));},0);}),...Ae==="fitGrid"?[a.events.on("gridSizeChanged",()=>a.sizeColumnsToFit())]:[],...Ae==="fitCells"?[a.events.on("firstDataRendered",()=>{Ge||lr||(lr=true,queueMicrotask(()=>{if(!Ge)for(let e of a.getColumnStates())e.visible&&!e.flex&&Ao(e.id);}));})]:[]];Ae==="fitGrid"&&a.sizeColumnsToFit();function Go(e,t=false){if(!e.columnId||e.node.kind!=="data"&&!(t&&e.node.kind==="group"))return null;let o=at.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 dr=e=>{let t=e.target;if(me){let i=Et(e),c=i?Go(i):null;c&&me(c,e);}let o=t.closest(".kanuni-datagrid-row");if(!o||o.classList.contains("kanuni-datagrid-group-row"))return;let n=o.getAttribute("data-row-key");if(n===null)return;let 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||ci&&!e.shiftKey,metaKey:e.metaKey,shiftKey:e.shiftKey});let l=t.closest(".kanuni-datagrid-cell"),s=l?at.find(i=>l.id.endsWith(`-${i.id}`))?.id:void 0;s&&a.focusCell(r.key,s);},sr=e=>{if(!De)return;let o=e.target.closest(".kanuni-datagrid-cell");if(!o||!ce.contains(o)||e.relatedTarget?.closest?.(".kanuni-datagrid-cell")===o)return;let r=Et(e),l=r?Go(r):null;l&&De(l,e);};if(ce.addEventListener("mousedown",dr),ce.addEventListener("contextmenu",ja),De&&ce.addEventListener("mouseover",sr),dn&&(Ke.addEventListener("dragstart",pi),Ke.addEventListener("dragover",gi),Ke.addEventListener("drop",fi),Ke.addEventListener("dragend",mi),Ke.addEventListener("dragleave",bi)),O.tabIndex=0,At){je=Zo({controller:a,element:O},Oe,v,{surfaceClass:()=>Qn(u).replace("kanuni-datagrid-root","").trim(),barHost:O},{isColumnEditable:t=>Br(a.getColumnModel().getDef(t),t)});let e=O.querySelector(':scope > [data-testid="dg-edit-bar"]');e&&O.insertBefore(e,O.firstChild),je.engine.setSavedDuration(tt?.savedDuration??0);}Fa();let ur=e=>{let t=je;if(!t||nn)return;let o=e.target;if(!o||!(o===O||o===ae||ce.contains(o)))return;let n=o.tagName;n==="INPUT"||n==="TEXTAREA"||n==="SELECT"||o.isContentEditable||t.handleKeyDown(e)&&e.stopImmediatePropagation();};At&&O.addEventListener("keydown",ur,true);let cr=e=>{let t=e.target;if(t.tagName==="INPUT"||t.tagName==="TEXTAREA"||t.isContentEditable||Ze.contains(t)||it.contains(t)||t.closest?.('[data-testid="dg-edit-form"], [data-testid="dg-edit-bar"], [data-testid="dg-row-message"]')||Le.contains(t))return;if((ye||ie||a.isRowPinningEnabled())&&(e.key==="ContextMenu"||e.key==="F10"&&e.shiftKey)){let l=a.getFocus(),s=l?ce.querySelector(`[id="${CSS.escape(`${u.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=resolveGridCommand({key:e.key,ctrlKey:e.ctrlKey,metaKey:e.metaKey,shiftKey:e.shiftKey,altKey:e.altKey});if(!o)return;if(o.type==="copy"){$n();return}if(o.type==="activate"){if(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(c=>c.state.id===a.getFocus()?.columnId),i=a.ensureVisible(n.rowIndex,s===-1?void 0:s);i&&(i.scrollTop!==void 0&&(ae.scrollTop=i.scrollTop),i.scrollLeft!==void 0&&(ae.scrollLeft=i.scrollLeft),a.setScroll(ae.scrollTop,Math.abs(ae.scrollLeft)));}let r=a.getFocus();O.setAttribute("aria-activedescendant",r?`${u.gridId}-cell-${String(r.rowKey)}-${r.columnId}`:"");};O.addEventListener("keydown",cr);let zi=da?attachStateStoring(a,da):null,pr=typeof Xe=="object"?Xe.delay??400:400,gr=Xe!==false&&!(typeof Xe=="object"&&Xe.enabled===false),Yi=typeof Xe=="object"?Xe.showOnTruncation!==false:true,fr=typeof Xe=="object"?Xe.trigger??"hover":"hover",mr=gr&&fr!=="focus",$o=gr&&fr!=="hover",Un=typeof Xe=="object"&&Xe.interactive===true,br=`${u.gridId}-tooltip`,$t=null,qe=null,Ue=null,Ot=null,Oo=null;function kt(){qe&&clearTimeout(qe),qe=null,Ot=null,Bo();}function Bo(){Ue&&clearTimeout(Ue),Ue=null,Oo?.removeAttribute("aria-describedby"),Oo=null,$t?.remove(),$t=null;}let ji=e=>e.scrollWidth>e.clientWidth+1||e.scrollHeight>e.clientHeight+1;function Xi(e){let o=e.closest(".kanuni-datagrid-row")?.getAttribute("data-row-key"),n=at.find(p=>e.id.endsWith(`-${p.id}`));if(!o||!n)return null;let r=a.getRows().find(p=>p!==void 0&&String(p.key)===o);if(!r||r.kind!=="data")return null;let l=n.def,s=Co(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},c=l.renderTooltip;if(c){let p=c(i);return p===void 0||p===""?null:p}if(typeof l.tooltip=="function")return l.tooltip(i)??null;if(typeof l.tooltip=="string")return l.tooltip;if(l.tooltipField){let p=r.data[l.tooltipField];return p==null?null:String(p)}return Yi&&ji(e)?e.textContent??null:null}function wr(e,t){let o=Xi(e);if(o===null||o==="")return;Bo();let n=e.getBoundingClientRect();$t=h(`${Qn(u)} kanuni-datagrid-portal`);let r=h(Un?"kanuni-datagrid-tooltip kanuni-datagrid-tooltip--interactive":"kanuni-datagrid-tooltip");r.id=br,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",Un&&(r.addEventListener("pointerenter",()=>{Ue&&clearTimeout(Ue),Ue=null,qe&&clearTimeout(qe),qe=null;}),r.addEventListener("pointerleave",kt)),$t.appendChild(r),portalTarget(u.portalContainer).appendChild(markPortal($t,u.portalContainer)),t&&(e.setAttribute("aria-describedby",br),Oo=e);}let hr=e=>{if(!mr)return;let t=e.target.closest(".kanuni-datagrid-cell");if(t&&t===Ot){Ue&&clearTimeout(Ue),Ue=null;return}Un&&$t&&Ue?(qe&&clearTimeout(qe),qe=null):kt(),!(!t||!ce.contains(t))&&(Ot=t,qe=setTimeout(()=>{qe=null,!(Ot!==t||!t.isConnected)&&wr(t,false);},pr));},yr=e=>{if(!mr)return;let t=e.relatedTarget;if(!(Ot&&t&&Ot.contains(t))){if(!Un||!$t){kt();return}Ue&&clearTimeout(Ue),Ue=setTimeout(Bo,150);}};O.addEventListener("pointerover",hr),O.addEventListener("pointerout",yr),ae.addEventListener("scroll",kt,{passive:true});let Cr=-1/0,vr=()=>{Cr=Date.now();};$o&&O.addEventListener("pointerdown",vr);let Ji=$o?a.events.on("focusChanged",()=>{kt();let e=a.getFocus();e&&(qe=setTimeout(()=>{if(qe=null,!O.contains(document.activeElement)&&Date.now()-Cr>1500)return;let t=document.getElementById(`${u.gridId}-cell-${String(e.rowKey)}-${e.columnId}`);!t||!ce.contains(t)||(Ot=t,wr(t,true));},pr));}):null,Er=e=>{e.key==="Escape"&&kt();};$o&&O.addEventListener("keydown",Er);let kr=()=>{if(a.setScroll(ae.scrollTop,Math.abs(ae.scrollLeft)),Rt)for(let e of Rr())e.scroller.scrollLeft!==ae.scrollLeft&&(e.scroller.scrollLeft=ae.scrollLeft);};ae.addEventListener("scroll",kr,{passive:true});let Rt=null,Rr=()=>{if(!de||!Rt)return [];let e=wn.get(de);return e?[...e].filter(t=>t!==Rt):[]},xr=null;if(de){Rt={controller:a,scroller:ae};let e=wn.get(de)??new Set;e.add(Rt),wn.set(de,e),xr=a.events.on("columnStateChanged",()=>{if(ra.has(de))return;let t=Rr();if(t.length===0)return;let o=a.getColumnStates();ra.add(de);try{for(let n of t)n.controller.applyColumnStates(o);}finally{ra.delete(de);}});}let Tr=()=>{a.setViewportSize(ae.clientWidth,ae.clientHeight),tn&&ui(ae.clientWidth),ae.style.setProperty("--dg-viewport-width",`${ae.clientWidth}px`);let e=Ke.getBoundingClientRect(),t=Ne.getBoundingClientRect();a.setChromeOffsets(e.top-t.top,t.bottom-e.bottom),calibrateMaxScrollOffset(ae,a);};Tr();let zn=null;typeof ResizeObserver<"u"&&(zn=new ResizeObserver(Tr),zn.observe(ae),zn.observe(Ne)),bo(),wo(),Eo(),Mi(),Pn(),Hn(),Ro(),_a(),Do(),or(),nr(),Wn(),un?.always&&fo(true);let Vo=null;if(Ee){let e=null,t=()=>{let o=Le.offsetHeight,n=o>0?`${o}px`:null;n!==e&&(e=n,n?Ne.style.setProperty("--dg-header-actual",n):Ne.style.removeProperty("--dg-header-actual"));};t(),typeof ResizeObserver<"u"&&(Vo=new ResizeObserver(t),Vo.observe(Le));}return ha=true,{controller:a,element:O,setData:e=>a.setData(e),setColumns:e=>a.setColumns(e),destroy:()=>{if(!Ge){if(Ge=true,Ui.forEach(e=>e()),pn.forEach(e=>e()),pn=[],zn?.disconnect(),Vo?.disconnect(),Ma?.(),Yt&&(Yt=false,Wt--,Wt<=0&&(Wt=0,document.documentElement.classList.remove("kanuni-datagrid-printing"))),xr?.(),de&&Rt){let e=wn.get(de);e?.delete(Rt),e&&e.size===0&&wn.delete(de),Rt=null;}ae.removeEventListener("scroll",kr),ce.removeEventListener("mousedown",dr),ce.removeEventListener("contextmenu",ja),Je.removeEventListener("contextmenu",Gn),Po.dispose(),bt.removeEventListener("contextmenu",Gn),De&&ce.removeEventListener("mouseover",sr),ce.removeEventListener("click",ar),ce.removeEventListener("dblclick",rr),Bi(),Vn();for(let e of No)clearTimeout(e);O.removeEventListener("keydown",cr),O.removeEventListener("keydown",ur,true),je?.dispose(),je=null,O.removeEventListener("pointerover",hr),O.removeEventListener("pointerout",yr),O.removeEventListener("keydown",Er),O.removeEventListener("pointerdown",vr),Ji?.(),ae.removeEventListener("scroll",kt),kt(),zi?.(),He(false),a.dispose(),O.remove();}}}}function Dd(d){let u=document.createElement("button");u.type="button";let g={...d},M=()=>{let{icon:C,label:y,shortcut:A,disabledReason:L,showLabel:x,testId:Q}=g;if(u.className=`kanuni-datagrid-app-button${x?"":" kanuni-datagrid-toolbar-icon-button"}`,u.textContent="",typeof C=="string"?u.insertAdjacentHTML("afterbegin",C):u.appendChild(C),x){let I=document.createElement("span");I.textContent=y,u.appendChild(I),u.removeAttribute("aria-label");}else u.setAttribute("aria-label",y);let U=A?`${y} (${A})`:y;u.title=L!==void 0?`${U} \u2014 ${L}`:U,A?u.setAttribute("aria-keyshortcuts",A):u.removeAttribute("aria-keyshortcuts"),L!==void 0?(u.setAttribute("aria-disabled","true"),u.setAttribute("aria-description",L)):(u.removeAttribute("aria-disabled"),u.removeAttribute("aria-description")),Q&&u.setAttribute("data-testid",Q);};return u.addEventListener("click",C=>{if(g.disabledReason!==void 0){C.preventDefault();return}g.onClick?.();}),u.update=C=>{g={...g,...C},M();},M(),u}export{Zn as CHECKBOX_COLUMN_WIDTH,yn as DETAIL_COLUMN_WIDTH,Xr as PRINT_MAX_ROWS,eo as ROW_DRAG_MIME,hn as ROW_NUMBER_COLUMN_WIDTH,Zo as attachCellEditing,jo as buildCellEditor,_t as buildDateEditor,Jo as buildEditForm,Wo as buildHeaderMenu,Md as createGrid,Uo as measureBestFitWidth,Xo as openConfirmDialog,Dd as toolbarButton};
1
+ import {DEFAULT_DATE_FORMAT,toDate,dateDigits,maskDate,portalContainerFor,portalTarget,markPortal,createDebouncedCommit,EditingEngine,isChromeColumn,getGridDictionary,summaryTypeLabels,datePeriodLabels,inferColumns,presetRowHeight,DataGridController,normalizeRowStatus,registerPortalContainer,isRtlLocale,resolveCardView,RowMotion,attachStateStoring,edgeEditableColumn,nextEditableColumn,lookupLabel,formatDateValue,GROUP_COLUMN_ID,fillText,rowMessageKeys,normalizeSearch,FILTER_PART_ROW,customFilterInputFromNode,findCustomFilterOperator,customFilterOperators,resolveToolbar,setCommandContent,pageButtonItems,summaryLabel,formatSummaryValue,summaryKey,distinctEntryKey,NONBLANK_KEY,distinctNonBlankTicked,BLANK_KEY,FILTER_PART_SET,selectedLabelsFromFilter,FILTER_PART_DEFAULT,allowedSummaryTypes,describeFilter,filterLabels,resolveGridCommand,calibrateMaxScrollOffset,isRowEditMode,periodSuggestionList,parseCustomFilterInput,parseFilterInput,dateDigitCount,parseDateValue,daysInMonth,toIsoDate,placeAnchoredLayer,bandDepth,computeHeaderBands,bandPath,distinctDisplayText,foldText,rowMessageModel,showsCards,downloadBlob,ExportAbortedError,resolveRowStatus,rowStatusClassName,rowStatusDescription,spanRoleAt,cardFields,cardColumnIds,cardHeight,DEFAULT_EDIT_FORM_HEIGHT,staticLookupItems}from'@kanunilabs/datagrid-core';export{DENSITY_ROW_HEIGHT,GRID_COLOR_SCHEMES,THEME_ROW_HEIGHT,isPackagedTheme,presetRowHeight}from'@kanunilabs/datagrid-core';function Jo(d,u){let{controller:f,maxGroupLevels:D,t:E}=u,C=d.columnId,M=f.getColumnModel().getDef(C),A=f.getSort(),x=A.find($=>$.columnId===C),Z=f.getGroupLevels(),U=Z.includes(C),F=M?.sortable!==false,V=f.getColumnStates().find($=>$.id===C)?.pinned??null,ce=M?.groupable!==false,W=f.canGroup(),se=[{id:"sort-asc",label:E.sortAsc,disabled:!F||x?.direction==="asc",onSelect:()=>f.setSort([{columnId:C,direction:"asc"}])},{id:"sort-desc",label:E.sortDesc,disabled:!F||x?.direction==="desc",onSelect:()=>f.setSort([{columnId:C,direction:"desc"}])},{id:"sort-clear",label:E.clearSort,disabled:!x,onSelect:()=>f.setSort(A.filter($=>$.columnId!==C))},{id:"sep-1",separator:true},{id:"group",label:U?E.ungroupColumn:E.groupByColumn,disabled:!ce,onSelect:()=>{U?f.groupBy(Z.filter($=>$!==C)):f.groupBy([...Z,C].slice(-D));}},{id:"group-panel",label:u.groupPanelVisible?E.hideGroupPanel:E.showGroupPanel,onSelect:u.onToggleGroupPanel},{id:"footer",label:u.footerVisible?E.hideFooter:E.showFooter,onSelect:u.onToggleFooter},{id:"sep-2",separator:true},{id:"hide-column",label:E.hideColumn,disabled:f.getColumnStates().filter($=>$.visible).length<=1,onSelect:()=>f.setColumnVisible(C,false)},{id:"field-chooser",label:E.fieldChooser,onSelect:u.onOpenFieldChooser},{id:"sep-3",separator:true},{id:"best-fit",label:E.bestFit,disabled:M?.resizable===false,onSelect:()=>u.onBestFit(C)},{id:"best-fit-all",label:E.bestFitAll,onSelect:u.onBestFitAll}],ee=f.getColumnStates().filter($=>$.visible&&$.pinned===V).map($=>$.id),Re=ee.indexOf(C),T=M?.reorderable!==false&&Re>=0;return se.push({id:"sep-4",separator:true},{id:"move-left",label:E.moveLeft,disabled:!T||Re<=0,onSelect:()=>f.moveColumn(C,ee[Re-1])},{id:"move-right",label:E.moveRight,disabled:!T||Re<0||Re>=ee.length-1,onSelect:()=>f.moveColumn(C,ee[Re+2])},{id:"fixed-position",label:E.fixedPosition,items:[{id:"pin-left",label:E.pinLeft,disabled:V==="left",onSelect:()=>f.setColumnPinned(C,"left")},{id:"pin-right",label:E.pinRight,disabled:V==="right",onSelect:()=>f.setColumnPinned(C,"right")},{id:"pin-sticky",label:E.pinSticky,disabled:V==="sticky",onSelect:()=>f.setColumnPinned(C,"sticky")}]},{id:"unpin",label:E.unpin,disabled:V===null,onSelect:()=>f.setColumnPinned(C,null)}),W?se:se.filter($=>$.id!=="group"&&$.id!=="group-panel")}async function Qo(d,u){try{let f=u==="csv"?await d.exportToCsv():u==="excel"?await d.exportToExcel():u==="excel-selected"?await d.exportToExcel({selectedOnly:!0}):await d.exportToPdf();return downloadBlob(f.blob,f.fileName),{completed:!0}}catch(f){return f instanceof ExportAbortedError?{completed:false}:{completed:false,error:f instanceof Error?f.message:String(f)}}}var Ga=null;function cl(){return typeof document>"u"?null:(Ga??=document.createElement("canvas"),Ga.getContext("2d"))}function $a(d){let u=getComputedStyle(d);return `${u.fontStyle} ${u.fontWeight} ${u.fontSize} ${u.fontFamily}`}function pl(d){for(let u=d.firstElementChild;u;u=u.nextElementSibling)if(u.tagName!=="MARK")return true;return false}function fl(d){let u=d.map(D=>[D.style.width,D.style.minWidth,D.style.maxWidth]);for(let D of d)D.style.width="max-content",D.style.minWidth="0",D.style.maxWidth="none";let f=0;for(let D of d){let E=Math.ceil(D.getBoundingClientRect().width);E>f&&(f=E);}return d.forEach((D,E)=>{[D.style.width,D.style.minWidth,D.style.maxWidth]=u[E];}),f}function Zo(d,u){let f=cl();if(!f)return null;let D=typeof CSS<"u"&&CSS.escape?CSS.escape(u):u.replace(/"/g,'\\"'),E=d.querySelector(`.kanuni-datagrid-header-cell[data-column-id="${D}"]`),C=d.querySelectorAll(`.kanuni-datagrid-cell[data-column-id="${D}"]`);if(!E&&C.length===0)return null;let M=0;if(E){let A=E.querySelector(".kanuni-datagrid-header-label")??E;f.font=$a(A),M=f.measureText(A.textContent??"").width+44;}if(C.length>0){f.font=$a(C[0]);let A=[];for(let x=0;x<C.length;x++){if(pl(C[x])){A.push(C[x]);continue}let Z=C[x].textContent??"";if(Z==="")continue;let U=f.measureText(Z).width+20;U>M&&(M=U);}A.length>0&&(M=Math.max(M,fl(A)));}return M===0?null:Math.round(Math.min(640,Math.max(48,M)))}function Va(d){let u=Number(d.weekStartsOn);return Number.isInteger(u)&&u>=0&&u<=6?u:0}function kl(d){let u=[d.weekdaySu,d.weekdayMo,d.weekdayTu,d.weekdayWe,d.weekdayTh,d.weekdayFr,d.weekdaySa],f=Va(d);return [...u.slice(f),...u.slice(0,f)]}function Rl(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 xl(d,u){return !d||!u?false:d.getFullYear()===u.getFullYear()&&d.getMonth()===u.getMonth()&&d.getDate()===u.getDate()}var Ba="http://www.w3.org/2000/svg";function Tl(){let d=document.createElementNS(Ba,"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 u=document.createElementNS(Ba,"path");return u.setAttribute("d","M3 4h10v9H3z M3 6.5h10 M5.5 2.5v2 M10.5 2.5v2"),u.setAttribute("fill","none"),u.setAttribute("stroke","currentColor"),u.setAttribute("stroke-width","1.3"),u.setAttribute("stroke-linecap","round"),d.appendChild(u),d}function qt(d){let{t:u,format:f=DEFAULT_DATE_FORMAT,autoFocus:D=true}=d,E=Rl(u),C=kl(u),M=document.createElement("span");M.className="kanuni-datagrid-date-editor";let A=document.createElement("input");A.type="text",A.inputMode="numeric",A.autocomplete="off",A.placeholder=f,d.ariaLabel&&A.setAttribute("aria-label",d.ariaLabel),d.testId&&A.setAttribute("data-testid",d.testId),d.columnId&&A.setAttribute("data-column-id",d.columnId),d.disabled&&(A.disabled=true);let x=null,Z=false,U=null,F=toDate(d.value),V=F??new Date,ce=()=>x===null?formatDateValue(d.value,f):maskDate(x,f),W=()=>x===null?null:parseDateValue(maskDate(x,f),f),se=()=>x!==null&&x.length===dateDigitCount(f)&&W()===null,ee=()=>{let K=se()||!!d.invalid;A.className=`kanuni-datagrid-editor${K?" kanuni-datagrid-editor--invalid":""}`,K?A.setAttribute("aria-invalid","true"):A.removeAttribute("aria-invalid");};A.value=ce(),ee();let Re=K=>{if(K===null){d.onChange(null);return}d.onChange(d.value instanceof Date?K:toIsoDate(K));},T=()=>{if(!U)return;if(!A.isConnected){z();return}let K=A.getBoundingClientRect(),Ce=placeAnchoredLayer({anchor:{left:K.left,top:K.top,bottom:K.bottom},width:U.offsetWidth,height:U.offsetHeight,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight});U.style.left=`${Ce.left}px`,U.style.top=`${Ce.top}px`;},$=()=>T();function X(){if(!U)return;U.textContent="";let K=document.createElement("div");K.className="kanuni-datagrid-date-popup-head";let Ce=document.createElement("button");Ce.type="button",Ce.setAttribute("aria-label",u.datePreviousMonth),Ce.setAttribute("data-testid","dg-date-prev"),Ce.textContent="\u2039",Ce.addEventListener("click",()=>{V=new Date(V.getFullYear(),V.getMonth()-1,1),X();});let Me=document.createElement("span");Me.setAttribute("data-testid","dg-date-title"),Me.textContent=`${E[V.getMonth()]} ${V.getFullYear()}`;let pe=document.createElement("button");pe.type="button",pe.setAttribute("aria-label",u.dateNextMonth),pe.setAttribute("data-testid","dg-date-next"),pe.textContent="\u203A",pe.addEventListener("click",()=>{V=new Date(V.getFullYear(),V.getMonth()+1,1),X();}),K.append(Ce,Me,pe);let g=document.createElement("div");g.className="kanuni-datagrid-date-popup-grid",g.setAttribute("role","grid");for(let be of C){let Y=document.createElement("span");Y.className="kanuni-datagrid-date-weekday",Y.setAttribute("role","columnheader"),Y.textContent=be,g.appendChild(Y);}let N=(new Date(V.getFullYear(),V.getMonth(),1).getDay()-Va(u)+7)%7,we=daysInMonth(V.getFullYear(),V.getMonth()+1);for(let be=0;be<42;be++){let Y=be-N+1,le=new Date(V.getFullYear(),V.getMonth(),Y),ve=Y<1||Y>we,Se=xl(le,W()??F),_=document.createElement("button");_.type="button",_.setAttribute("role","gridcell"),_.className=`kanuni-datagrid-date-day${ve?" kanuni-datagrid-date-day--outside":""}${Se?" kanuni-datagrid-date-day--selected":""}`,_.setAttribute("aria-selected",String(Se)),_.setAttribute("data-testid","dg-date-day"),_.setAttribute("data-date",toIsoDate(le)),_.textContent=String(le.getDate()),_.addEventListener("click",()=>q(le)),g.appendChild(_);}U.append(K,g);}function ae(){if(Z)return;Z=true,J.setAttribute("aria-expanded","true"),V=W()??F??new Date,U=document.createElement("div"),U.className=`kanuni-datagrid-detached kanuni-datagrid-date-popup${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} ${u.dateCalendar}`:u.dateCalendar),U.addEventListener("mousedown",Ce=>Ce.preventDefault());let K=portalContainerFor(M);portalTarget(K).appendChild(markPortal(U,K)),window.addEventListener("scroll",$,true),window.addEventListener("resize",$),d.onPortalOpen?.(z),X(),T();}function z(){Z&&(Z=false,J.setAttribute("aria-expanded","false"),window.removeEventListener("scroll",$,true),window.removeEventListener("resize",$),U?.remove(),U=null);}function q(K){x=null,z(),Re(K),A.value=formatDateValue(d.value instanceof Date?K:toIsoDate(K),f),ee(),A.focus({preventScroll:true});}function te(){if(x===null)return;if(x.length===0){Re(null),x=null,A.value=ce(),ee();return}let K=W();K&&Re(K),x=null,A.value=ce(),ee();}A.addEventListener("input",()=>{x=dateDigits(A.value,f),A.value=maskDate(x,f),ee();}),A.addEventListener("keydown",K=>{if(K.key==="Escape"){if(K.preventDefault(),K.stopPropagation(),Z){z();return}x=null,d.onCancel();return}if(Z){let Ce=K.key==="ArrowLeft"?-1:K.key==="ArrowRight"?1:K.key==="ArrowUp"?-7:K.key==="ArrowDown"?7:0;if(Ce!==0){K.preventDefault(),K.stopPropagation();let Me=W()??F??new Date,pe=new Date(Me.getFullYear(),Me.getMonth(),Me.getDate()+Ce);x=dateDigits(formatDateValue(pe,f),f),A.value=maskDate(x,f),V=pe,X(),ee();return}if(K.key==="Enter"){K.preventDefault(),K.stopPropagation();let Me=W();z(),Me&&q(Me);return}}if(K.key==="Enter"){K.preventDefault(),K.stopPropagation(),te(),d.onCommit();return}if(K.key==="Tab"){te(),z(),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();}),A.addEventListener("blur",()=>{Z||te();});let J=document.createElement("button");return J.type="button",J.className="kanuni-datagrid-date-button",J.setAttribute("aria-label",d.ariaLabel?`${d.ariaLabel} \u2014 ${u.dateOpenCalendar}`:u.dateOpenCalendar),J.setAttribute("aria-expanded","false"),J.setAttribute("data-testid","dg-date-open"),d.disabled&&(J.disabled=true),J.tabIndex=-1,J.addEventListener("mousedown",K=>K.preventDefault()),J.addEventListener("click",()=>{Z?z():ae(),A.focus({preventScroll:true});}),J.appendChild(Tl()),M.append(A,J),D&&queueMicrotask(()=>{A.isConnected&&(A.focus({preventScroll:true}),A.select());}),M}function _a(d,u){return d==null?"":u==="date"&&d instanceof Date?d.toISOString().slice(0,10):String(d)}function Wa(d,u){if(u){let f=document.createElement("span");f.id="kanuni-datagrid-editor-error",f.setAttribute("role","alert"),f.className="kanuni-datagrid-editor-error",f.textContent=u,d.appendChild(f);}return d}function nr(d){let{value:u,dataType:f,error:D,seeded:E=false}=d,C=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"),C.appendChild(x),C}if(d.options&&d.options.length>0&&d.renderLookup)return C.appendChild(d.renderLookup({options:d.options,value:u,matchMode:d.matchMode,allowCustom:d.allowCustom,invalid:!!D,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(C,D);if(f==="date"&&d.t)return C.appendChild(qt({value:u,format:d.dateFormat,invalid:!!D,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(C,D);let M=document.createElement("input");M.className=`kanuni-datagrid-editor${D?" kanuni-datagrid-editor--invalid":""}`,M.setAttribute("data-testid","dg-cell-editor"),M.setAttribute("aria-invalid",String(!!D)),D&&M.setAttribute("aria-errormessage","kanuni-datagrid-editor-error");let A=false;if(f==="boolean"?(M.type="checkbox",M.checked=u===true,M.addEventListener("change",()=>d.onChange(M.checked))):f==="number"?(M.type=Number.isNaN(Number(u))&&u!==null&&u!==void 0&&u!==""?"text":"number",M.value=_a(u,f),M.addEventListener("input",()=>d.onChange(M.value===""?null:Number(M.value)))):(M.type="text",M.value=_a(u,f),M.addEventListener("input",()=>d.onChange(M.value))),M.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(),A=true,d.onTab(x.shiftKey?-1:1)):x.key==="Escape"?(x.preventDefault(),x.stopPropagation(),d.onCancel()):x.stopPropagation());}),M.addEventListener("blur",()=>{A||d.onCommit("none");}),C.appendChild(M),D){let x=document.createElement("span");x.id="kanuni-datagrid-editor-error",x.setAttribute("role","alert"),x.className="kanuni-datagrid-editor-error",x.textContent=D,C.appendChild(x);}return queueMicrotask(()=>{if(M.isConnected&&(M.focus({preventScroll:true}),M.type!=="checkbox"))if(E){if(M.type==="text"||M.type==="search"){let x=M.value.length;M.setSelectionRange(x,x);}}else M.select();}),C}var Ml=0;function or(d){return new Promise(u=>{let f=document.createElement("div");f.className=`kanuni-datagrid-detached kanuni-datagrid-dialog-root${d.surfaceClass?` ${d.surfaceClass}`:""}`,f.setAttribute("role","presentation");let D=document.activeElement,E=W=>{document.removeEventListener("keydown",C,true);let se=f.contains(document.activeElement);f.remove(),se&&D?.isConnected&&D.focus({preventScroll:true}),u(W);},C=W=>{if(W.key==="Escape"){W.stopPropagation(),E(false);return}if(W.key==="Tab"){let se=Array.from(F.querySelectorAll("button:not([disabled])"));if(se.length===0)return;let ee=se.indexOf(document.activeElement),Re=W.shiftKey?ee<=0?se.length-1:ee-1:ee===se.length-1?0:ee+1;W.preventDefault(),W.stopPropagation(),se[Re].focus();}};document.addEventListener("keydown",C,true);let M=document.createElement("div");M.className="kanuni-datagrid-dialog-overlay",M.addEventListener("mousedown",()=>E(false));let A=document.createElement("div");A.className="kanuni-datagrid-dialog",A.setAttribute("role","alertdialog"),A.setAttribute("aria-modal","true");let x=`dg-dialog-${++Ml}`;A.setAttribute("aria-labelledby",`${x}-title`),A.setAttribute("aria-describedby",`${x}-message`),A.setAttribute("data-testid","dg-dialog");let Z=document.createElement("div");Z.className="kanuni-datagrid-dialog-title",Z.id=`${x}-title`,Z.textContent=d.title;let U=document.createElement("div");U.className="kanuni-datagrid-dialog-message",U.id=`${x}-message`,U.textContent=d.message;let F=document.createElement("div");if(F.className="kanuni-datagrid-dialog-actions",d.cancelLabel!==void 0){let W=document.createElement("button");W.type="button",W.setAttribute("data-testid","dg-dialog-cancel"),W.textContent=d.cancelLabel,W.addEventListener("click",()=>E(false)),F.appendChild(W);}let V=document.createElement("button");V.type="button",V.className=`kanuni-datagrid-dialog-primary${d.danger?" kanuni-datagrid-dialog-primary--danger":""}`,V.setAttribute("data-testid","dg-dialog-confirm"),V.textContent=d.confirmLabel,V.addEventListener("click",()=>E(true)),F.appendChild(V),A.append(Z,U,F),f.append(M,A);let ce=portalContainerFor(d.anchor);portalTarget(ce).appendChild(markPortal(f,ce)),V.focus();})}function Dl(d,u){switch(d){case "number":return u==null||u===""||!Number.isNaN(Number(u))?"number":"text";case "boolean":return "checkbox";default:return "text"}}function Nl(d,u){if(u==="number"){if(d==="")return null;let f=Number(d);return Number.isNaN(f)?d:f}return d}function rr(d){let{t:u,popup:f=false,inline:D=false}=d,E=document.createElement("div");E.className=`kanuni-datagrid-edit-form${D?" kanuni-datagrid-edit-form--inline":""}`,E.setAttribute("data-testid","dg-edit-form"),E.setAttribute("data-row-key",String(d.rowKey)),f&&E.setAttribute("data-popup",""),E.setAttribute("role",f?"dialog":"group"),f&&E.setAttribute("aria-modal","true"),E.setAttribute("aria-label",d.isNew?u.formAddTitle:u.formEditTitle);let C=document.createElement("div");C.className="kanuni-datagrid-edit-form-header";let M=document.createElement("strong");M.textContent=d.isNew?u.formAddTitle:u.formEditTitle,C.appendChild(M);let A=document.createElement("div");A.className="kanuni-datagrid-edit-form-error",A.setAttribute("role","alert"),A.setAttribute("data-testid","dg-form-error"),A.style.display="none";let x=document.createElement("div");x.className="kanuni-datagrid-edit-form-fields";let Z=new Map,U=(T,$)=>{let X=d.getValue(T.columnId),ae=d.getSaving()||!T.editable,z=`dg-field-${String(d.rowKey)}-${T.columnId}`;if(T.lookup&&!d.renderLookup){let te=document.createElement("input");te.id=z,te.type="text",te.className="kanuni-datagrid-edit-form-input",te.setAttribute("data-testid",z),te.disabled=true,te.readOnly=true;let J=T.lookup.options?.find(K=>Object.is(K.value,X));return te.value=J?J.label:X==null?"":String(X),te}if(T.lookup&&d.renderLookup){let te=document.createElement("div");if(te.className="kanuni-datagrid-edit-form-lookup",T.lookup.options===null){let J=document.createElement("input");return J.type="text",J.value="\u2026",J.readOnly=true,J.disabled=true,J.className="kanuni-datagrid-editor",J.setAttribute("data-testid",z),te.appendChild(J),te}return te.appendChild(d.renderLookup({options:T.lookup.options,value:X,matchMode:T.lookup.matchMode,allowCustom:T.lookup.allowCustom,invalid:!!$,autoFocus:false,testId:z,columnId:T.columnId,ariaLabel:T.label,surfaceClass:d.surfaceClass,onPortalOpen:d.onPortalOpen,noMatchText:u.editNoMatch,onChange:J=>d.onChange(T.columnId,J),commitOnPick:false,onCommit:()=>d.onSave(),onCancel:d.onCancel})),te}if(T.dataType==="date"){let te=document.createElement("div");return te.className="kanuni-datagrid-edit-form-lookup",te.appendChild(qt({value:X,format:T.dateFormat,invalid:!!$,disabled:ae,autoFocus:false,testId:z,columnId:T.columnId,ariaLabel:T.label,surfaceClass:d.surfaceClass,onPortalOpen:d.onPortalOpen,t:u,onChange:J=>d.onChange(T.columnId,J),onCommit:()=>d.onSave(),onCancel:d.onCancel})),te}let q=document.createElement("input");return q.id=z,q.className="kanuni-datagrid-edit-form-input",q.setAttribute("data-testid",z),q.disabled=ae,T.dataType==="boolean"?(q.type="checkbox",q.checked=X===true,q.addEventListener("change",()=>d.onChange(T.columnId,q.checked)),q):(q.type=Dl(T.dataType,X),$&&q.setAttribute("aria-invalid","true"),q.value=X==null?"":String(X),q.addEventListener("input",()=>d.onChange(T.columnId,Nl(q.value,T.dataType))),q)},F=d.getErrors();for(let T of d.fields){let $=document.createElement("label");$.className="kanuni-datagrid-edit-form-field",$.setAttribute("data-field-id",T.columnId);let X=document.createElement("span");X.className="kanuni-datagrid-edit-form-label",X.textContent=T.label;let ae=document.createElement("span");ae.style.display="contents",ae.appendChild(U(T,F[T.columnId]??null));let z=document.createElement("span");z.className="kanuni-datagrid-edit-form-message",z.setAttribute("role","alert"),z.style.display="none",$.append(X,ae,z),x.appendChild($),Z.set(T.columnId,{wrap:$,message:z,controlHost:ae,field:T});}let V=document.createElement("div");V.className="kanuni-datagrid-edit-form-footer";let ce=typeof navigator<"u"&&/Mac|iP(hone|ad)/.test(navigator.platform??""),W=document.createElement("span");W.className="kanuni-datagrid-edit-form-hint",W.textContent=u.formShortcut.replace("{key}",ce?"\u2318":"Ctrl");let se=document.createElement("button");se.type="button",se.setAttribute("data-testid","dg-form-cancel"),se.textContent=u.cancel,se.addEventListener("click",()=>d.onCancel());let ee=document.createElement("button");ee.type="button",ee.className="kanuni-datagrid-edit-form-save",ee.setAttribute("data-testid","dg-form-save"),ee.textContent=u.save,ee.addEventListener("click",()=>d.onSave()),V.append(W,se,ee),E.append(C,A,x,V),E.addEventListener("keydown",T=>{if(T.key==="Escape"){T.preventDefault(),T.stopPropagation(),d.onCancel();return}if(T.key==="Enter"&&(T.ctrlKey||T.metaKey)){T.preventDefault(),T.stopPropagation(),d.onSave();return}if(T.key==="Enter"&&!(T.target instanceof HTMLButtonElement)){T.preventDefault();return}if(T.key!=="Tab"||!f)return;let $=Array.from(E.querySelectorAll("input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled])"));if($.length===0)return;let X=$[0],ae=$[$.length-1];!T.shiftKey&&document.activeElement===ae?(T.preventDefault(),X.focus()):T.shiftKey&&document.activeElement===X&&(T.preventDefault(),ae.focus());});let Re=()=>{let T=d.getErrors(),$=d.getSaving(),X=d.getSaveError();A.textContent=X??"",A.style.display=X?"":"none",ee.disabled=$,se.disabled=$,ee.textContent=$?u.editSaving:u.save;for(let[z,q]of Z){let te=T[z]??null;q.message.textContent=te??"",q.message.style.display=te?"":"none",te?q.wrap.setAttribute("data-invalid",""):q.wrap.removeAttribute("data-invalid");let J=q.controlHost.querySelector("input, .kanuni-datagrid-editor");J&&J.classList.toggle("kanuni-datagrid-editor--invalid",!!te);}let ae=Object.keys(T)[0];ae&&Z.get(ae)?.wrap.querySelector("input:not([disabled])")?.focus();};return queueMicrotask(()=>{if(!E.isConnected)return;let T=E.querySelector("input:not([disabled]), select:not([disabled]), textarea:not([disabled])");T?.focus(),T instanceof HTMLInputElement&&T.type==="text"&&T.select(),d.onNaturalHeight&&d.onNaturalHeight(E.clientHeight-x.clientHeight+x.scrollHeight);}),{element:E,refresh:Re,setLookupOptions:(T,$)=>{let X=Z.get(T);if(!X)return;X.field.lookup={...X.field.lookup,options:$};let ae=d.getErrors();X.controlHost.textContent="",X.controlHost.appendChild(U(X.field,ae[T]??null));},dispose:()=>E.remove()}}function Ua(d){let{grid:u,engine:f,mode:D,t:E,extension:C}=d,M=u.controller,A=isRowEditMode(D),x=null,Z=async()=>{x=null;let k=await f.saveChanges();if(k.saved||k.superseded){_();return}x={message:k.error??E.editSaveFailed,rowKey:k.rowKey,columnId:k.columnId},_(),k.rowKey!==void 0&&k.columnId!==void 0&&(M.revealRow(k.rowKey),M.focusCell(k.rowKey,k.columnId));},U=()=>{x=null,f.cancelChanges();},F=null,V=null,ce=null,W=null,se=null,ee=new Map,Re=0,T=k=>(F=null,f.beginRowEdit(k)),$=null,X=(k,P,ne)=>!A||f.isEditingRow()||!f.canEditRow(k)||(M.scrollToCell(k,P),!T(k))?false:(D==="row"&&ne!==void 0&&($=P,f.setRowEditValue(P,ne)),true),ae=async()=>{if(!f.getRowSession())return false;let P=await f.saveRowEdit(M.getVisualColumnIds());return F=P.saved?null:P.error??null,P.saved?d.focusGrid():ue(),P.saved},z=()=>{F=null,f.cancelRowEdit(),d.focusGrid();},q=k=>{let P=M.getColumnLayout(),ne=M.getColumnModel(),Ee=++Re;return [...P.left,...P.center,...P.right].filter(xe=>!isChromeColumn(xe.state.id)).map(xe=>{let ye=xe.state.id,Ne=ne.getDef(ye),yt=C.formLookup?C.formLookup(k,ye,_e=>{Re===Ee&&ce?.setLookupOptions(ye,_e);}):Ne?.lookup?{options:staticLookupItems(Ne)??[]}:void 0;return {columnId:ye,label:Ne?.headerName??Ne?.field??ye,dataType:ne.getEditorDataType(ye),editable:f.canUpdate(k,ye),dateFormat:Ne?.dateFormat,lookup:yt}})},te=()=>se??d.formHeight??DEFAULT_EDIT_FORM_HEIGHT,J=(k,P)=>rr({rowKey:k,fields:q(k),getValue:ne=>f.rowEditValue(ne),getErrors:()=>f.getRowSession()?.errors??{},getSaving:()=>f.getRowSession()?.saving??false,getSaveError:()=>F,isNew:f.getRowSession()?.isNew??false,popup:!P,inline:P,surfaceClass:d.surfaceClass(),renderLookup:C.renderLookup,onPortalOpen:d.trackPortal,t:E,onNaturalHeight:P?ne=>{let Ee=Math.ceil(ne);if(Ee>0&&Ee!==se){se=Ee;let xe=f.getRowSession();xe&&D==="form"&&M.setEditFormRow(xe.rowKey,{height:te(),atTop:xe.isNew});}}:void 0,onChange:(ne,Ee)=>f.setRowEditValue(ne,Ee),onSave:()=>{ae();},onCancel:z}),K=()=>{ee.clear(),ce?.dispose(),ce=null,W?.remove(),W=null;};function Ce(){if(!A)return;let k=f.getRowSession();if(k&&D!=="row"?u.element.setAttribute("data-row-session",D):u.element.removeAttribute("data-row-session"),!k){V!==null&&(V=null,se=null,K(),D==="form"&&M.setEditFormRow(null));return}if(V===k.rowKey){ce?.refresh();return}if(K(),V=k.rowKey,D==="form"){M.setEditFormRow(k.rowKey,{height:te(),atTop:k.isNew}),M.revealRow(k.rowKey);return}if(D==="popup"){let P=d.surfaceClass();W=document.createElement("div"),W.className=`kanuni-datagrid-detached kanuni-datagrid-edit-popup${P?` ${P}`:""}`;let ne=document.createElement("div");ne.className="kanuni-datagrid-edit-popup-overlay",ne.addEventListener("mousedown",()=>z()),ce=J(k.rowKey,false),W.append(ne,ce.element);let Ee=portalContainerFor(d.barHost);portalTarget(Ee).appendChild(markPortal(W,Ee));return}M.revealRow(k.rowKey),queueMicrotask(()=>{let P=f.getRowSession();if(!P||P.rowKey!==V)return;let ne=u.element.querySelectorAll('[data-testid="dg-row-editor"]');if(ne.length===0)return;let Ee=M.getFocus(),ye=(Ee&&String(Ee.rowKey)===String(P.rowKey)?u.element.querySelector(`[data-testid="dg-row-editor"][data-column-id="${CSS.escape(Ee.columnId)}"]`):null)??ne[0],Ne=$!==null&&ye.getAttribute("data-column-id")===$;$=null,ye.focus({preventScroll:true}),ye instanceof HTMLInputElement&&(Ne?ye.setSelectionRange(ye.value.length,ye.value.length):ye.select());});}let Me=k=>{let P=ee.get(k);if(P)return P;let ne=M.getColumnModel(),Ee=ne.getDef(k),xe=ne.getEditorDataType(k),ye=f.rowEditValue(k),Ne=f.getRowSession()?.errors[k]??null,yt=Ee?.headerName??k,_e,ht=C.resolveLookup?.(V,k);if(ht&&ht.options!==void 0&&C.renderLookup)_e=C.renderLookup({options:ht.options??[],value:ye,matchMode:ht.matchMode,allowCustom:ht.allowCustom,invalid:!!Ne,autoFocus:false,testId:"dg-row-editor",columnId:k,ariaLabel:yt,surfaceClass:d.surfaceClass(),noMatchText:E.editNoMatch,onChange:Te=>f.setRowEditValue(k,Te),commitOnPick:false,onCommit:()=>{ae();},onCancel:z});else if(xe==="date")_e=qt({value:ye,format:Ee?.dateFormat,invalid:!!Ne,autoFocus:false,testId:"dg-row-editor",columnId:k,ariaLabel:yt,surfaceClass:d.surfaceClass(),onPortalOpen:d.trackPortal,t:E,onChange:Te=>f.setRowEditValue(k,Te),onCommit:()=>{ae();},onCancel:z});else {let Te=document.createElement("input");Te.className=`kanuni-datagrid-editor${Ne?" kanuni-datagrid-editor--invalid":""}`,Te.setAttribute("data-testid","dg-row-editor"),Te.setAttribute("data-column-id",k),Te.setAttribute("aria-label",yt),Ne&&(Te.title=Ne),xe==="boolean"?(Te.type="checkbox",Te.checked=ye===true,Te.addEventListener("change",()=>f.setRowEditValue(k,Te.checked))):(Te.type=xe==="number"?"number":"text",Te.value=ye==null?"":String(ye),Te.addEventListener("input",()=>{let We=Te.value;f.setRowEditValue(k,xe==="number"?We===""?null:Number(We):We);})),Te.addEventListener("keydown",We=>{We.key==="Enter"?(We.preventDefault(),We.stopPropagation(),ae()):We.key==="Escape"?(We.preventDefault(),We.stopPropagation(),z()):We.stopPropagation();}),_e=Te;}return ee.set(k,_e),_e},pe=document.createElement("div");pe.className="kanuni-datagrid-filter-bar kanuni-datagrid-edit-bar",pe.setAttribute("data-testid","dg-edit-bar"),C.decorateBar?.(pe);let g=(k,P,ne,Ee)=>{let xe=document.createElement("button");return xe.type="button",ne&&(xe.className="kanuni-datagrid-filter-primary"),xe.setAttribute("data-testid",k),xe.textContent=P,xe.addEventListener("click",Ee),xe},I=k=>{let P=document.createElement("span");return P.className="kanuni-datagrid-edit-form-error",P.setAttribute("data-testid",k),P.style.display="none",P},N=null,we=null,be=null,Y=null,le=null,ve=null,Se=null;D==="batch"&&(N=g("dg-save-changes",E.editSaveChanges,true,()=>{Z();}),we=g("dg-discard-changes",E.editDiscardChanges,false,U),be=I("dg-save-error"),pe.append(N,we,be)),D==="row"&&(Y=document.createElement("span"),Y.setAttribute("data-testid","dg-row-editing"),Y.className="kanuni-datagrid-filter-active",Y.style.display="none",le=g("dg-save-row",E.editSaveRow,true,()=>{ae();}),le.style.display="none",ve=g("dg-cancel-row",E.cancel,false,z),ve.style.display="none",Se=I("dg-row-save-error"),pe.append(Y,le,ve,Se)),pe.childElementCount>0&&d.barHost?.appendChild(pe);function _(){let k=f.hasChanges();if(N&&(N.style.display=k?"":"none",N.textContent=E.editSaveCount.replace("{n}",String(f.getChanges().length)),N.disabled=f.isSaving()),we&&(we.style.display=k?"":"none"),be&&(be.textContent=x?.message??"",be.style.display=x?"":"none"),Y&&le&&ve&&Se){let P=f.getRowSession(),ne=P?"":"none";Y.style.display=ne,le.style.display=ne,ve.style.display=ne,P&&(Y.textContent=P.isNew?E.formAddTitle:E.editEditingRow.replace("{row}",String(P.rowKey)),le.disabled=P.saving,le.textContent=P.saving?E.editSaving:E.editSaveRow,ve.disabled=P.saving),Se.textContent=F??"",Se.style.display=P&&F?"":"none";}pe.style.display=Array.from(pe.children).some(P=>P.style.display!=="none")?"":"none";}_();function ue(){x=null,_(),Ce();}return {rowModeActive:A,beginRowEdit:T,openRowFromKeys:X,saveRowEdit:ae,cancelRowEdit:z,saveChanges:Z,cancelChanges:U,renderRowCell:k=>{if(!(D!=="row"||k.node.kind!=="data"||isChromeColumn(k.columnId))&&f.isEditingRow(k.node.key))return f.canUpdate(k.node.key,k.columnId)?Me(k.columnId):d.defaultContent(k,f.rowEditValue(k.columnId))},renderEditForm:k=>{if(D!=="form")return;let P=f.getRowSession();if(!(!P||P.rowKey!==k))return (!ce||ce.element.getAttribute("data-row-key")!==String(k))&&(ce?.dispose(),ce=J(k,true)),ce.element},onCellDoubleClick:k=>A?(k.node.kind==="data"&&!f.isEditingRow()&&f.canEditRow(k.node.key)&&T(k.node.key),true):false,handleRowKeys:k=>!f.isEditingRow()||k.target?.closest?.('[data-testid="dg-edit-form"]')?false:k.key==="Enter"?(k.preventDefault(),ae(),true):k.key==="Escape"?(k.preventDefault(),z(),true):false,sync:ue,dispose:()=>{K(),D==="form"&&V!==null&&M.setEditFormRow(null),V=null,u.element.removeAttribute("data-row-session"),pe.remove();}}}function ir(d,u,f,D,E={}){let C=d.controller,M=u.mode??"cell";u.formLabels&&(f={...f,...u.formLabels});let A=E.isColumnEditable??(g=>C.getColumnModel().getDef(g)?.editable!==false),x=()=>{C.refreshCells(),q.sync(),E.onChange?.(),Z.schedule("footer",()=>C.refreshSummaries());},Z=createDebouncedCommit(150),U=g=>C.getRowByKey(g),F=new EditingEngine({mode:M,messages:f,onChange:x,onAutoSaveFailed:g=>se(g),onCellValueChanged:g=>C.notifyCellValueChanged(g),onEditingStarted:g=>C.notifyEditingStarted(g),onEditingStopped:g=>C.notifyEditingStopped(g),onRowEditingStarted:g=>C.notifyRowEditingStarted(g),onRowEditingStopped:g=>C.notifyRowEditingStopped(g),editableColumns:g=>{let I=C.getColumnLayout();return [...I.left,...I.center,...I.right].map(N=>N.state.id).filter(N=>!isChromeColumn(N)&&F.canUpdate(g,N))},readValue:(g,I)=>{let N=U(g);return N?C.getColumnModel().getStoredValue(N,I):void 0},formatForEdit:(g,I,N)=>C.formatCellForEdit(I,N),parseFromEdit:(g,I,N)=>C.parseCellFromEdit(I,N,g),readRow:U,isColumnEditable:A,applyValue:(g,I,N)=>C.writeCellValue(g,I,N),storedValue:(g,I,N)=>C.valueAfterWrite(g,I,N),onSave:g=>u.onSave?.(g),...E.engine});C.setPendingValueReader({effectiveValue:(g,I,N)=>F.changes.effectiveValue(g,I,N),effectiveRow:(g,I)=>F.changes.applyPendingTo(g,I),hasPending:()=>F.changes.hasChanges()}),C.setEditingDelegate({startEditingCell:(g,I)=>(C.scrollToCell(g,I),F.beginEdit(g,I)),stopEditing:async g=>{if(F.isEditingRow())return g?(q.cancelRowEdit(),true):q.saveRowEdit();if(!F.getSession())return false;if(g)return F.cancelEdit(),W(),true;let I=F.commitEdit();return I&&W(),I},getEditingCells:()=>{let g=F.getRowSession();if(g)return C.getVisualColumnIds().filter(N=>!isChromeColumn(N)&&F.canUpdate(g.rowKey,N)).map(N=>({rowKey:g.rowKey,columnId:N}));let I=F.getSession();return I?[{rowKey:I.rowKey,columnId:I.columnId}]:[]}});let V=false,ce=[C.events.on("rowsChanged",g=>{V=g.removed===0;}),C.events.on("dataUpdated",()=>{let g=V;V=false,!g&&F.retainKeys(new Set(C.getDataRows().map(I=>I.key)));})];function W(){let g=d.element.querySelector(".kanuni-datagrid-scroller");(g&&g.tabIndex>=0?g:d.element).focus({preventScroll:true});}function se(g){let I=g.columnId!==void 0?C.getColumnModel().getDef(g.columnId)?.headerName??g.columnId:null,N=g.error??f.editSaveFailed;or({title:f.editCannotSave,message:I?`${I}: ${N}`:N,confirmLabel:f.ok,surfaceClass:D.surfaceClass(),anchor:d.element}),g.rowKey!==void 0&&g.columnId!==void 0&&(C.revealRow(g.rowKey),C.focusCell(g.rowKey,g.columnId));}let ee=(g,I={})=>{let N=F.getSession(),we=N?{rowKey:N.rowKey,columnId:N.columnId}:C.getFocus();if(!we||!F.commitEdit())return false;let be=C.getColumnModel().runtime().filter(_=>_.state.visible).map(_=>_.state.id);if(edgeEditableColumn(be,A,1)===null)return false;let Y=C.getRows(),le=Y.findIndex(_=>_.key===we.rowKey);if(le<0)return false;let ve=nextEditableColumn(be,A,we.columnId,g);if(ve===null){if(I.cycle===false)return false;let _=g;do le+=_;while(le>=0&&le<Y.length&&Y[le]?.kind!=="data");if(le<0||le>=Y.length)return false;ve=edgeEditableColumn(be,A,g);}let Se=Y[le];return !Se||Se.kind!=="data"?false:(C.focusCell(Se.key,ve),C.scrollToCell(Se.key,ve),I.open===true?F.beginEdit(Se.key,ve):(W(),true))},Re=g=>{if(F.getSession())return false;let I=C.getFocus();if(!I||!A(I.columnId))return false;let N=C.getColumnModel().getEditorDataType(I.columnId);if(N==="boolean"||N==="date")return false;let we=N==="number"?Number.isNaN(Number(g))?null:Number(g):g;return we===null?false:q.rowModeActive?q.openRowFromKeys(I.rowKey,I.columnId,we):(C.scrollToCell(I.rowKey,I.columnId),F.beginEdit(I.rowKey,I.columnId,we))},T=null,$=new Set,X=g=>{let I=()=>{$.delete(I),g();};$.add(I);},ae=()=>{for(let g of [...$])g();$.clear();},z=(g,I)=>{let N=C.getColumnModel().getDef(g.columnId),we=g.node.data;if(N?.renderCell)return N.renderCell({value:I,row:we,node:g.node,column:N});let be=lookupLabel(N,I);if(be!==null)return be;if(N?.valueFormatter){let Y=N.valueFormatter(I,we);return typeof Y=="string"?Y:String(Y??"")}return N?.dateFormat&&N.dataType==="date"?formatDateValue(I,N.dateFormat):I==null?"":String(I)},q=Ua({grid:d,engine:F,mode:M,t:f,formHeight:u.formHeight,surfaceClass:()=>D.surfaceClass(),barHost:D.barHost,focusGrid:W,trackPortal:X,defaultContent:z,extension:E}),te=g=>{if(g.node.kind!=="data")return;let I=q.renderRowCell(g);if(I!==void 0)return I;if(!F.isEditing(g.node.key,g.columnId)){T&&T.rowKey===g.node.key&&T.columnId===g.columnId&&(T=null);let _=F.getMode()==="cell"?void 0:F.changes.get(g.node.key,g.columnId),ue=E.cellAdornment?.(g)??null;if(!_&&!ue)return;let k=_?_.newValue:g.value,P=document.createElement("span");P.style.display="contents";let ne=z(g,k);return typeof ne=="string"?P.appendChild(document.createTextNode(ne)):P.appendChild(ne),ue&&P.appendChild(ue),P}let N=F.getSession();if(T&&T.rowKey===N.rowKey&&T.columnId===g.columnId)return T.setError(N.validation.message),T.container;let we=C.getColumnModel().getDef(g.columnId),be=E.resolveLookup?.(N.rowKey,g.columnId)??{options:void 0},Y=document.createElement("span");Y.style.display="contents";let le=E.customEditors?we?.renderEditor:void 0;if(le){let _=new Set,ue=le({value:F.getSession()?.value??N.value,row:F.effectiveRow(N.rowKey),columnId:g.columnId,error:N.validation.message,onErrorChange:k=>(_.add(k),()=>_.delete(k)),setValue:k=>F.setEditValue(k),commit:()=>{F.commitEdit()&&W();},cancel:()=>{F.cancelEdit(),W();}});return Y.appendChild(ue),T={rowKey:N.rowKey,columnId:g.columnId,container:Y,setError:k=>{for(let P of _)P(k);}},Y}let ve=_=>{Y.textContent="",Y.appendChild(nr({value:F.getSession()?.value??N.value,dataType:C.getColumnModel().getEditorDataType(g.columnId),error:_,seeded:N.seeded,onPortalOpen:X,options:be.options,allowCustom:be.allowCustom,matchMode:be.matchMode,renderLookup:E.renderLookup,dateFormat:we?.dateFormat,ariaLabel:we?.headerName??g.columnId,surfaceClass:D.surfaceClass(),t:f,onChange:ue=>F.setEditValue(ue),onCommit:ue=>{F.commitEdit()&&(ue==="down"&&C.moveFocus("down"),W());},onTab:ue=>{if(u.focusCellOnTab===false){F.commitEdit();return}ee(ue,{open:E.keepEditingOnTab===true,cycle:u.focusCellOnCycle!==false});},onCancel:()=>{F.cancelEdit(),W();}}));};ve(N.validation.message);let Se=N.validation.message;if(T={rowKey:N.rowKey,columnId:g.columnId,container:Y,setError:_=>{if(_===Se)return;Se=_,Y.querySelector(".kanuni-datagrid-editor")?.classList.toggle("kanuni-datagrid-editor--invalid",!!_);let k=Y.querySelector(".kanuni-datagrid-editor-error");_&&!k&&(k=document.createElement("span"),k.id="kanuni-datagrid-editor-error",k.setAttribute("role","alert"),k.className="kanuni-datagrid-editor-error",Y.appendChild(k)),k&&(k.textContent=_??"",_||k.remove());}},be.options===null&&E.resolveLookup){let _=E.resolveLookup,ue=()=>{let P=_(N.rowKey,g.columnId);P.options!==null&&T&&T.rowKey===N.rowKey&&T.columnId===g.columnId&&F.isEditing(N.rowKey,g.columnId)&&(be.options=P.options,ve(F.getSession()?.validation.message??null));},k=C.events.on("cellsRefreshed",()=>{ue(),_(N.rowKey,g.columnId).options!==null&&k();});}return Y},J=g=>{if(g.node.kind!=="data")return;let I=[];return F.isEditing(g.node.key,g.columnId)&&I.push("kanuni-datagrid-cell--editing"),F.changes.isDirty(g.node.key,g.columnId)&&I.push("kanuni-datagrid-cell--dirty"),F.isRemoved(g.node.key)&&I.push("kanuni-datagrid-cell--removed"),I.length?I.join(" "):void 0},K=g=>{g.node.kind==="data"&&(q.onCellDoubleClick(g)||F.canUpdate(g.node.key,g.columnId)&&(C.scrollToCell(g.node.key,g.columnId),F.beginEdit(g.node.key,g.columnId)));},Ce=g=>{let I=g.target;return I?.closest?.('[data-testid="dg-edit-form"], [data-testid="dg-row-message"]')?true:(g.key==="Tab"||g.key==="Enter"||g.key===" ")&&!!I?.closest?.('[data-testid="dg-edit-bar"]')},Me=g=>Ce(g)?false:q.handleRowKeys(g)?true:g.key==="Escape"&&F.getSession()?(g.preventDefault(),F.cancelEdit(),true):g.key==="Tab"&&u.focusCellOnTab!==false&&!F.getSession()&&C.getFocus()&&ee(g.shiftKey?-1:1,{open:E.keepEditingOnTab===true,cycle:u.focusCellOnCycle!==false})?(g.preventDefault(),true):false,pe=g=>{if(Ce(g))return false;let I=g.ctrlKey||g.metaKey;if(g.key==="F2"){let N=C.getFocus();if(N)return g.preventDefault(),q.rowModeActive?(q.openRowFromKeys(N.rowKey,N.columnId),true):(C.scrollToCell(N.rowKey,N.columnId),F.beginEdit(N.rowKey,N.columnId),true)}return u.editOnKeyPress!==false&&!I&&!g.altKey&&g.key.length===1&&g.key!==" "&&!F.getSession()&&Re(g.key)?(g.preventDefault(),true):false};return {engine:F,renderCellContent:te,getCellClassName:J,onCellDoubleClick:K,handleKeyDown:g=>Me(g)||pe(g),handleSessionKeys:Me,handleOpenKeys:pe,editAdjacentCell:ee,focusGrid:W,trackPortal:X,defaultContent:z,renderEditForm:q.renderEditForm,beginRowEdit:q.beginRowEdit,saveRowEdit:q.saveRowEdit,cancelRowEdit:q.cancelRowEdit,saveChanges:q.saveChanges,cancelChanges:q.cancelChanges,dispose:()=>{ae(),q.dispose(),F.dispose(),Z.cancelAll(),ce.forEach(g=>g()),C.setPendingValueReader(null),C.setEditingDelegate(null);}}}function Ya(d,u){return !d||isChromeColumn(u)?false:d.editable!==false&&d.lookup==null&&d.renderEditor==null&&d.allowFormulas!==true}var ja=["rules","crud","allowAdding","allowUpdating","allowDeleting","onInitNewRow","onRowInserted","onRowUpdated","onRowRemoved","insertKey","appendOnArrowDown","newRowPosition","keepEditingOnTab","commandColumn","commandLabels","confirmDelete","confirmDeleteMessage","range"];var En=60,cr=24,Dd=0,ao=36,kn=28,io="application/x-kanuni-row",vn=new Map,pr=new Set,ii=5e3,zt=0,Nd=["columnStateChanged","sortChanged"],Id=["columnStateChanged"],Hd=["contentReady","viewportChanged","filterChanged","selectionChanged","focusChanged","summariesChanged","cellsRefreshed","findChanged"],y=(d,u="div")=>{let f=document.createElement(u);return f.className=d,f},Rn="http://www.w3.org/2000/svg";function Fd(d,u){let f=E=>{u&&console.warn(`[datagrid] ${E} 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 D={...d};if(D.dataSource!=null&&!Array.isArray(D.dataSource)&&D.grouping&&(f("grouping a server-side DataSource is"),delete D.grouping),D.columns?.some(E=>E.spanRows)&&(f("cell span/merge (spanRows) is"),D={...D,columns:D.columns.map(E=>E.spanRows?{...E,spanRows:void 0}:E)}),D.tree&&(f("tree data is"),delete D.tree),D.masterDetail&&(f("master-detail is"),delete D.masterDetail),D.grouping){let{groupBy:E,groupSummaries:C}=D.grouping,M=E==null?[]:typeof E=="string"?[E]:E;(M.length>1||C)&&(f("multi-level grouping and group summaries are"),D={...D,grouping:{...D.grouping,groupBy:M.slice(0,1),groupSummaries:false}});}return D}var Kd={columnResize:"use `resizable`",columnReorder:"use `reorderable`",groupPanel:"use `grouping: { panel: true }`",autoColumns:"",loadingOverlay:"",onReady:"the controller is returned directly \u2014 use `grid.controller`",className:"style the host element you pass in",style:"style the host element you pass in",toolbarItemsBefore:"",renderRow:"",cardView:"",onCardViewChange:"",announcements:"",filterPanelLabels:"",filterIconMode:"",autoSizeStrategy:"",footerMenu:"",showRowCount:"",onOpenFilterBuilder:"",renderOverlay:"",cellMenu:""},lo=new Set;function Pd(d){for(let u of Object.keys(d)){let f=Kd[u];f===void 0||f===""||lo.has(u)||(lo.add(u),console.warn(`[datagrid] \`${u}\` is a React-only option \u2014 ${f}.`));}}function Gd(){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 u=document.createElementNS("http://www.w3.org/2000/svg","path");return u.setAttribute("d","M8 1v8m0 0L5 6m3 3 3-3M2 11v2a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-2"),u.setAttribute("fill","none"),u.setAttribute("stroke","currentColor"),u.setAttribute("stroke-width","1.5"),u.setAttribute("stroke-linecap","round"),u.setAttribute("stroke-linejoin","round"),d.appendChild(u),d}function $d(){let d=document.createElementNS(Rn,"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 u=document.createElementNS(Rn,"path");return u.setAttribute("d","M1.5 2.5h13L9.5 8.6v4.3l-3 1.6V8.6L1.5 2.5Z"),u.setAttribute("fill","currentColor"),u.setAttribute("stroke","currentColor"),u.setAttribute("stroke-width","0.6"),u.setAttribute("stroke-linejoin","round"),d.appendChild(u),d}function Od(d){let u=document.createElementNS(Rn,"svg");u.setAttribute("width","14"),u.setAttribute("height","14"),u.setAttribute("viewBox","0 0 16 16"),u.setAttribute("aria-hidden","true"),u.setAttribute("focusable","false");let f=document.createElementNS(Rn,"rect");f.setAttribute("x","2"),f.setAttribute("y","2"),f.setAttribute("width","12"),f.setAttribute("height","12"),f.setAttribute("rx","2"),f.setAttribute("fill","none"),f.setAttribute("stroke","currentColor"),f.setAttribute("stroke-width","1.3"),u.appendChild(f);let D=E=>{let C=document.createElementNS(Rn,"path");C.setAttribute("d",E),C.setAttribute("fill","none"),C.setAttribute("stroke","currentColor"),C.setAttribute("stroke-width","1.3"),C.setAttribute("stroke-linecap","round"),u.appendChild(C);};return D("M5 8h6"),d&&D("M8 5v6"),u}function ai(d,u){let f=d??(u==="number"||u==="bigint"?"right":"left");return f==="right"?"kanuni-datagrid-cell kanuni-datagrid-cell--number":f==="center"?"kanuni-datagrid-cell kanuni-datagrid-cell--center":"kanuni-datagrid-cell"}function ro(d){let u="kanuni-datagrid-root";return d.dark&&(u+=" kanuni-datagrid-dark"),d.theme&&(u+=` kanuni-datagrid-theme-${d.theme}`),d.palette&&(u+=` kanuni-datagrid-palette-${d.palette}`),d.density&&(u+=` kanuni-datagrid-density-${d.density}`),u}function Bd(d,u){let{theme:f,palette:D,density:E,dark:C,striped:M=true,rowNumbers:A=false,locale:x="en",footer:Z=false,footerMenu:U=true,footerPosition:F="bottom",notes:V,pinnedTopRows:ce=[],pinnedBottomRows:W=[],resizable:se=true,reorderable:ee=true,autoHeaderHeight:Re=false,filterRow:T=false,headerFilter:$=false,filterIconMode:X="hover",filterPanel:ae=false,onOpenFilterBuilder:z,focusedRow:q=false,focusedRowKey:te,onFocusedRowChanged:J,onRowClick:K,onRowActivate:Ce,autoSizeStrategy:Me="none",renderRow:pe,cardView:g,onCardViewChange:I,announcements:N=true,filterPanelLabels:we,showRowCount:be=false,toolbarColumnChooser:Y=false,cellMenu:le=true,rowMenu:ve,headerMenu:Se,rowDrag:_,alignedGrids:ue,printLayout:k,renderCellContent:P,getCellClassName:ne,getRowStatusSource:Ee,rowStatus:xe,onCellPointerDown:ye,onCellPointerEnter:Ne,onCellDoubleClick:yt,editing:_e,onHeaderClick:ht,getHeaderClassName:Te,renderHeaderLabel:We,renderDetail:fr,renderEditForm:gr,enterpriseEdition:Ct=false,stateStoring:mr,tooltip:et=true,renderOverlay:so,filterDebounce:li,toolbar:br=false,highlightSearch:di=true,sortable:wr=true,toolbarItemsAfter:si,toolbarItemsBefore:ui,toolbarExcel:ci=false,toolbarPdf:pi=false,searchDebounce:fi=200,...gi}=u;Pd(u),be&&!lo.has("showRowCount:deprecated")&&(lo.add("showRowCount:deprecated"),console.warn("[datagrid] `showRowCount` was retired on 2026-08-15 and does nothing in either renderer. The row count lives in the status bar (Enterprise) or the pager."));let h=getGridDictionary(x),{emptyText:mi=h.noData,loadingText:bi=h.busy,loadingOverlay:uo=true,...Qe}=gi,yr=typeof uo=="number"?uo:300,co=summaryTypeLabels(h),hr=datePeriodLabels(h);if((!Qe.columns||Qe.columns.length===0)&&u.autoColumns!==false){let e=Array.isArray(Qe.dataSource)?Qe.dataSource:[];Qe.columns=inferColumns(e,typeof u.autoColumns=="object"?u.autoColumns:{});}Qe.rowHeight===void 0&&(Qe.rowHeight=presetRowHeight(f,E,28));let wi=Ct?Qe:Fd(Qe,!!u.debugMode),Nt=Ct?V:void 0;!Ct&&V&&u.debugMode&&console.warn("[datagrid] cell notes are an Enterprise feature \u2014 use createEnterpriseGrid from @kanunilabs/datagrid-enterprise to show them.");let r=new DataGridController(wi);r.setEnterpriseEdition(Ct);let It=_e!=null&&typeof _e=="object"&&_e.enabled!==false,Ze=null;if(It&&u.debugMode)for(let e of ja)_e[e]!==void 0&&console.warn(`[datagrid] editing.${e} is an Enterprise feature \u2014 use createEnterpriseGrid from @kanunilabs/datagrid-enterprise to use it.`);let on=It?e=>Ze?.renderCellContent(e)??P?.(e):P,po=It?e=>{let t=Ze?.getCellClassName(e),o=ne?.(e);return t&&o?`${t} ${o}`:t??o}:ne,Cr=It?e=>{yt?.(e),Ze?.onCellDoubleClick(e);}:yt,yi=It?(e,t)=>Ze?.renderEditForm(e,t)??gr?.(e,t)??"":gr,rt=normalizeRowStatus(xe);te!=null&&r.focusRow(te);let B=y(ro(u));registerPortalContainer(B,u.portalContainer),B.style.height="100%",B.setAttribute("role","grid"),B.setAttribute("aria-label",u.ariaLabel??u.gridId),B.setAttribute("data-grid-id",u.gridId),isRtlLocale(x)&&B.setAttribute("dir","rtl"),f&&B.setAttribute("data-theme",f),Re&&B.setAttribute("data-auto-header-height",""),B.style.setProperty("--dg-row-height",`${r.getRowHeight()}px`);let re=y("kanuni-datagrid-scroller"),Ie=y("kanuni-datagrid-canvas"),Ae=y("kanuni-datagrid-header");Ae.setAttribute("role","row");let $e=y("kanuni-datagrid-rows");$e.style.position="relative";let fe=y("kanuni-datagrid-viewport");$e.appendChild(fe);let tt=y("kanuni-datagrid-pinned-rows kanuni-datagrid-pinned-rows--top"),vt=y("kanuni-datagrid-pinned-rows kanuni-datagrid-pinned-rows--bottom"),Ht=()=>ce.length+r.getPinnedRows("top").length,vr=()=>W.length+r.getPinnedRows("bottom").length,qe=y("kanuni-datagrid-sticky-groups");qe.setAttribute("aria-hidden","true");let nt=Z,ut=F==="top",Oe=y(`kanuni-datagrid-footer-row kanuni-datagrid-footer-row--${ut?"top":"bottom"}`);if(Oe.setAttribute("role","row"),Oe.setAttribute("aria-label",h.columnTotalsAria),U){let e=t=>{let n=t.target?.closest(".kanuni-datagrid-footer-cell")?.getAttribute("data-column-id");!n||isChromeColumn(n)||(t.preventDefault(),Xi(n,{left:t.clientX,top:t.clientY}));};Oe.addEventListener("click",e),Oe.addEventListener("contextmenu",e);}let xn=y("kanuni-datagrid-bands-host");xn.style.display="contents";let Et=y("kanuni-datagrid-filter-row");Et.setAttribute("role","row"),Ie.append(xn,Ae),T&&Ie.append(Et);let Ft=T?2:1,fo=0,go=()=>fo+Ft+Ht();Oe.style.setProperty("--dg-pinned-gap",String(ut?Ft:0)),tt.style.setProperty("--dg-pinned-gap",String(Ft+(nt&&ut?1:0))),nt&&ut&&Ie.append(Oe),Ht()>0&&Ie.append(tt),r.hasStickyGroupHeaders()&&(qe.style.setProperty("--dg-pinned-gap",String(Ft+(nt&&ut?1:0))),qe.style.setProperty("--dg-sticky-below",`${Ht()>0?Ht()*r.getRowHeight()+1:0}px`),Ie.append(qe)),Ie.append($e),vr()>0&&Ie.append(vt),nt&&!ut&&Ie.append(Oe),re.appendChild(Ie);let ct=y("kanuni-datagrid-toolbar"),ot=y("kanuni-datagrid-pager");ot.setAttribute("role","navigation"),ot.setAttribute("aria-label",h.pagerAria);let Kt=y("kanuni-datagrid-filter-panel"),Pt=!!Qe.grouping?.panel,Ue=y("kanuni-datagrid-group-panel"),rn=resolveCardView(g),an=false,Tn=[],kt=pe,ln=y("kanuni-datagrid-cardbar");ln.hidden=true;let Er=y("kanuni-datagrid-cardbar-label","label"),kr=y("","span");kr.textContent=h.cardSortBy;let at=y("kanuni-datagrid-cardbar-select","select"),Gt=y("kanuni-datagrid-cardbar-dir","button");Gt.type="button",Er.append(kr,at),ln.append(Er,Gt),at.addEventListener("change",()=>{let e=r.getSort()[0];r.setSort(at.value?[{columnId:at.value,direction:e?.direction??"asc"}]:[]);}),Gt.addEventListener("click",()=>{let e=r.getSort()[0];e&&r.setSort([{columnId:e.columnId,direction:e.direction==="desc"?"asc":"desc"}]);});let hi=e=>{let[t,...o]=cardFields(r.getColumnModel(),Tn,e.row),n=y("kanuni-datagrid-card");n.setAttribute("role","gridcell");let i=y("kanuni-datagrid-card-title");if(i.textContent=t?.text??"",n.appendChild(i),o.length){let l=y("kanuni-datagrid-card-fields","dl");for(let s of o){let a=y("kanuni-datagrid-card-field"),p=y("","dt");p.textContent=s.label;let c=y("","dd");c.textContent=s.text,a.append(p,c),l.appendChild(a);}n.appendChild(l);}return n},Rr=()=>{if(!an||!rn)return;let e=r.getColumnModel(),t=cardColumnIds(e,rn);t.join("\0")!==Tn.join("\0")&&(Tn=t,r.setDataRowHeight(cardHeight(t.length)));let o=wr?e.getOrder().filter(s=>e.getState(s)?.visible!==false&&e.getDef(s)?.sortable!==false):[];ln.hidden=o.length===0;let n=["",...o].join("\0");if(at.dataset.ids!==n){at.dataset.ids=n,at.replaceChildren();let s=document.createElement("option");s.value="",s.textContent=h.none,at.appendChild(s);for(let a of o){let p=document.createElement("option");p.value=a,p.textContent=e.getDef(a)?.headerName??a,at.appendChild(p);}}let i=r.getSort()[0];at.value=i?.columnId??"",Gt.hidden=!i;let l=i?.direction==="desc";Gt.textContent=l?"\u2193":"\u2191",Gt.setAttribute("aria-label",l?h.sortAsc:h.sortDesc),Gt.title=l?h.sortAsc:h.sortDesc;},xr=false,Ci=e=>{let t=showsCards(e,rn);if(t!==an){for(an=t,B.classList.toggle("kanuni-datagrid-cards",t),kt=t?hi:pe,Tn=[],t?Rr():(ln.hidden=true,r.setDataRowHeight(null));gt.length;)gt.pop().root.remove();Gn(),xr?I?.(t):queueMicrotask(()=>I?.(t));}};br&&B.appendChild(ct),Pt&&B.appendChild(Ue),rn&&B.appendChild(ln),B.appendChild(re),ae&&B.appendChild(Kt);let Sn=Qe.pagination;Sn&&Sn.enabled!==false&&B.appendChild(ot);let dn=y("kanuni-datagrid-loading-overlay"),Tr=y("kanuni-datagrid-loading-card"),Sr=y("kanuni-datagrid-loading-spinner","span");Sr.setAttribute("aria-hidden","true");let Lr=y("kanuni-datagrid-loading-label","span");Lr.textContent=bi,Tr.append(Sr,Lr),dn.appendChild(Tr),dn.style.display="none";let sn=y("kanuni-datagrid-sr-only","div");sn.setAttribute("role","status"),sn.setAttribute("aria-live","polite"),sn.setAttribute("aria-atomic","true");let Ln=y("kanuni-datagrid-empty");Ln.textContent=mi,Ln.style.display="none",B.append(dn,Ln),N&&B.appendChild(sn),d.appendChild(B);let un=Qe.selection,mo=r.getGroupDisplay()!=="fullWidth",Ar=r.getGroupDisplay()==="column",Yt=(un?.mode??"none")!=="none"&&(un?.checkboxColumn??false),vi=(un?.rowClick??(Yt?"toggle":"replace"))==="toggle",jt=r.hasMasterDetail()&&!!fr,bo=()=>(A?1:0)+(jt?1:0)+(Yt?1:0),wo=rt?.icons===true,Mr=wo?cr:0,yo=Mr,ho=yo+(A?En:0),Dr=ho+(jt?kn:0),it=Mr+(A?En:0)+(jt?kn:0)+(Yt?ao:0);r.setLeadWidth(it);let cn=!!_?.enabled,pn=_?.group??null,Nr=_?.allowReordering??true,Ir=_?.allowDropInsert??pn!==null,pt=null,An=null,Mn=false,$t=null,Rt=null;function Xt(e){$t=e;for(let t of fe.querySelectorAll(".kanuni-datagrid-row")){let o=t.getAttribute("data-row-key"),n=e!==null&&o===String(e.key);t.classList.toggle("kanuni-datagrid-row--drop-before",n&&e.side==="before"),t.classList.toggle("kanuni-datagrid-row--drop-after",n&&e.side==="after");}}let Hr=(e,t)=>{let o=t.getBoundingClientRect();return e.clientY<o.top+o.height/2?"before":"after"},Fr=e=>e.dataTransfer?.types.includes(io)?pt!==null?Nr:Ir&&pn!==null:false;function Kr(e,t,o){let n=null;try{let i=e.dataTransfer?.getData(io);n=i?JSON.parse(i):null;}catch{n=null;}if(n){if(n.gridId===r.gridId){if(!Nr)return;if(_?.onReorder){_.onReorder({dragKey:n.rowKey,targetKey:t,position:o,row:r.getRowByKey(n.rowKey)});return}r.moveRow(n.rowKey,t,o);return}!Ir||pn===null||n.group!==pn||_?.onAdd?.({row:n.row,rowKey:n.rowKey,otherGridId:n.gridId,targetKey:t,position:o});}}let Ei=e=>{let t=St(e);if(!t||t.node.kind!=="data"||!e.dataTransfer)return;pt=t.node.key,An=t.node.key,Mn=false;let o={gridId:r.gridId,group:pn,rowKey:t.node.key,row:t.node.data};e.dataTransfer.setData(io,JSON.stringify(o)),e.dataTransfer.setData("text/plain",String(t.node.key)),e.dataTransfer.effectAllowed="move",r.notifyRowDrag("enter",{rowKey:t.node.key});},ki=e=>{if(!Fr(e))return;e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect="move");let t=St(e);if(!t||t.node.kind!=="data")return;if(pt===t.node.key){Rt=null,Xt(null);return}let o=e.target.closest(".kanuni-datagrid-row"),n=Hr(e,o),i=$t?.key!==t.node.key||$t.side!==n;Rt={key:t.node.key,side:n},Xt({key:t.node.key,side:n}),i&&pt!==null&&r.notifyRowDrag("move",{rowKey:pt,overKey:t.node.key,position:n});},Ri=e=>{if(!Fr(e)){Xt(null);return}e.preventDefault();let t=St(e);if(Mn=true,t&&t.node.kind==="data"){let o=e.target.closest(".kanuni-datagrid-row"),n=Hr(e,o);Rt={key:t.node.key,side:n},Kr(e,t.node.key,n);}else Rt=null,Kr(e,null,"after");pt=null,Xt(null);},xi=()=>{An!==null&&r.notifyRowDragEnd({rowKey:An,dropped:Mn,overKey:Rt?.key??null,position:Rt?.side??null}),Mn=false,An=null,pt=null,Rt=null,Xt(null);},Ti=e=>{let t=e.relatedTarget;t&&$e.contains(t)||pt!==null&&(Rt=null,Xt(null),r.notifyRowDrag("leave",{rowKey:pt}));},fn=k===void 0||k===false?null:(()=>{let e=k===true?{}:k;return {always:e.always??false,maxRows:e.maxRows??ii}})(),Jt=false;function Co(e){Jt!==e&&(Jt=e,B.classList.toggle("kanuni-datagrid-print",e),e?(zt++,document.documentElement.classList.add("kanuni-datagrid-printing")):(zt--,zt<=0&&(zt=0,document.documentElement.classList.remove("kanuni-datagrid-printing"))),Gn());}let Pr=null;if(fn&&!fn.always){let e=()=>{let o=r.getRows().length;if(o>fn.maxRows){r.isDebugMode()&&console.warn(`[datagrid] print layout skipped: ${o} rows exceeds maxRows (${fn.maxRows}). Printing the visible rows instead \u2014 use exportPdf() for the whole result.`);return}Co(true);},t=()=>Co(false);window.addEventListener("beforeprint",e),window.addEventListener("afterprint",t),Pr=()=>{window.removeEventListener("beforeprint",e),window.removeEventListener("afterprint",t);};}let ft=0,lt=[],ze=0,vo=0;function Eo(){let e=r.getColumnLayout(),t=r.getVirtualWindow().columns,o=[],n=(l,s,a,p)=>{let c=l.def;o.push({def:c,id:l.state.id,width:l.state.width,pinned:s,inset:a,className:ai(c.align,c.dataType)+(s?" kanuni-datagrid-cell--pinned":"")+(c.autoHeight?" kanuni-datagrid-cell--wrap":""),visualIndex:p});};e.left.forEach((l,s)=>n(l,"left",e.leftOffsets[s]+it,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)),lt=o,ze=t.offsetX;let i=(e.centerOffsets[Math.min(t.end,e.center.length)]??0)-(e.centerOffsets[Math.min(t.start,e.center.length)]??0);vo=Math.max(0,e.centerWidth-t.offsetX-i),Ie.style.minWidth=`${e.totalWidth+it}px`;}let Dn=26;function Si(){let e=r.getColumnLayout(),t=r.getVirtualWindow().columns,o=[...e.left,...e.center.slice(t.start,Math.min(t.end,e.center.length)),...e.right],n=bandDepth(o);if(fo=n,xn.textContent="",Ae.style.top=`${n*Dn}px`,B.style.setProperty("--dg-band-offset",`${n*Dn}px`),n===0)return;computeHeaderBands(o,n).forEach((l,s)=>{let a=y("kanuni-datagrid-band-row");if(a.style.top=`${s*Dn}px`,a.style.height=`${Dn}px`,it>0){let p=y("kanuni-datagrid-band-cell kanuni-datagrid-band-cell--spacer kanuni-datagrid-band-cell--pinned");p.style.width=`${it}px`,p.style.flex="none",p.style.insetInlineStart="0px",a.appendChild(p);}if(ze>0){let p=y("kanuni-datagrid-spacer");p.style.width=`${ze}px`,p.style.flex="none",a.appendChild(p);}for(let p of l){let c=y(`kanuni-datagrid-band-cell${p.spacer?" kanuni-datagrid-band-cell--spacer":""}`);if(c.style.width=`${p.width}px`,c.style.flex="none",!p.spacer){if(p.columnIds.length>0){let b=bandPath(r.getColumnModel().getDef(p.columnIds[0])).slice(0,s+1);if(b.length===s+1&&r.isBandCollapsible(b)){let S=r.isBandCollapsed(b),H=document.createElement("button");H.type="button",H.className="kanuni-datagrid-band-toggle",H.setAttribute("aria-expanded",String(!S));let R=S?h.expandColumnGroup:h.collapseColumnGroup;H.setAttribute("aria-label",R),H.title=R,H.appendChild(Od(S)),H.addEventListener("click",O=>{O.stopPropagation(),r.toggleBand(b);}),c.appendChild(H);}}let v=y("kanuni-datagrid-band-label","span");v.textContent=p.label,c.appendChild(v);}a.appendChild(c);}xn.appendChild(a);});}let Qt=null,Nn=null;function In(e,t){Nn&&Nn!==e&&Nn.classList.remove("kanuni-datagrid-header-cell--drop-before","kanuni-datagrid-header-cell--drop-after"),Nn=e,e&&(e.classList.toggle("kanuni-datagrid-header-cell--drop-before",t==="before"),e.classList.toggle("kanuni-datagrid-header-cell--drop-after",t==="after"));}function Gr(){if(!Qt)return;let e=r.getSelectedCount(),t=r.getSelectableCount(),o=t>0&&e>=t;Qt.checked=o,Qt.indeterminate=!o&&e>0,Qt.disabled=t===0&&e===0;}let gn=null;function $r(e){gn=e;for(let t of Array.from(Ae.querySelectorAll(".kanuni-datagrid-header-cell[data-column-id]")))t.tabIndex=t.getAttribute("data-column-id")===e?0:-1;}function ko(){Si();let e=document.activeElement,t=e&&Ae.contains(e)?e.closest("[data-column-id]")?.getAttribute("data-column-id")??null:null,o=r.getColumnLayout(),n=[...o.left,...o.center,...o.right].map(a=>a.state.id);(!gn||!n.includes(gn))&&(gn=n[0]??null);let i=r.getSort(),l=new Map(i.map((a,p)=>[a.columnId,{direction:a.direction,order:p}]));if(Ae.textContent="",Qt=null,wo){let a=y("kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-status-cell");a.setAttribute("role","presentation"),a.setAttribute("aria-hidden","true"),a.style.width=`${cr}px`,a.style.flex="none",a.style.insetInlineStart="0px",Ae.appendChild(a);}if(A){let a=y("kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-rownum-cell");a.setAttribute("role","columnheader"),a.style.width=`${En}px`,a.style.flex="none",a.style.insetInlineStart=`${yo}px`,Ae.appendChild(a);}if(jt){let a=y("kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-detail-toggle-cell");a.setAttribute("role","columnheader"),a.setAttribute("aria-label",h.detailsAria),a.style.width=`${kn}px`,a.style.flex="none",a.style.insetInlineStart=`${ho}px`,Ae.appendChild(a);}if(Yt){let a=y("kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-select-cell");a.setAttribute("role","columnheader"),a.style.width=`${ao}px`,a.style.flex="none",a.style.insetInlineStart=`${Dr}px`;let p=document.createElement("input");p.type="checkbox",p.setAttribute("aria-label",h.selectAllRows),p.addEventListener("change",()=>{r.getSelectedCount()>0?r.clearSelection():r.selectAll();}),a.appendChild(p),Ae.appendChild(a),Qt=p,Gr();}let s=false;for(let a of lt){if(!a.pinned&&!s){if(ze>0){let w=document.createElement("div");w.style.flex=`0 0 ${ze}px`,Ae.appendChild(w);}s=true;}let p=wr&&a.def.sortable!==false,c=a.id===GROUP_COLUMN_ID,v=l.get(c?r.getGroupLevels()[0]??a.id:a.id),b=y(`kanuni-datagrid-header-cell${p?" kanuni-datagrid-header-cell--sortable":""}${a.pinned?" kanuni-datagrid-header-cell--pinned":""}${a.def.wrapHeaderText?" kanuni-datagrid-header-cell--wrap":""}`);b.setAttribute("role","columnheader"),b.setAttribute("data-column-id",a.id),b.tabIndex=a.id===gn?0:-1,b.addEventListener("focus",()=>$r(a.id)),b.setAttribute("aria-sort",v?v.direction==="asc"?"ascending":"descending":"none");let S=a.def.headerTooltip;S&&(b.title=S),b.style.width=`${a.width}px`,b.style.flex="none",a.pinned==="left"&&(b.style.insetInlineStart=`${a.inset}px`),a.pinned==="right"&&(b.style.insetInlineEnd=`${a.inset}px`);let H=y("kanuni-datagrid-header-label","span");H.id=`${encodeURIComponent(u.gridId)}-hdr-${encodeURIComponent(a.id)}`,b.setAttribute("aria-labelledby",H.id);let R=We?.(a.id);if(R)H.appendChild(R);else if(a.def.renderHeader){let w=a.def.renderHeader({column:a.def});typeof w=="string"?H.textContent=w:H.appendChild(w);}else H.textContent=a.def.headerName??a.id;if(b.appendChild(H),v){let w=y("kanuni-datagrid-sort-indicator","span");if(w.setAttribute("aria-hidden","true"),w.textContent=v.direction==="asc"?"\u25B2":"\u25BC",b.appendChild(w),i.length>1&&!c){let G=y("kanuni-datagrid-sort-order","span");G.setAttribute("aria-hidden","true"),G.textContent=String(v.order+1),b.appendChild(G);}}if(p||ht){let w=a.id;b.addEventListener("click",G=>{ht?.(w,G)||p&&r.toggleSort(w,G.shiftKey);});}let O=Se!==false&&!isChromeColumn(a.id);if(O){let w=a.id;b.addEventListener("contextmenu",G=>{G.preventDefault(),oa(w,{left:G.clientX,top:G.clientY});});}let m=null;if($&&a.def.filterable!==false){m=document.createElement("button"),m.type="button",m.tabIndex=-1;let w=r.getColumnFilter(a.id)!==null;m.className=`kanuni-datagrid-filter-button${w?" kanuni-datagrid-filter-button--active":""}${X==="always"?" kanuni-datagrid-filter-button--pinned":""}`,m.setAttribute("aria-haspopup","dialog"),m.setAttribute("aria-label",fillText(h.filterPopupAria,{column:a.def.headerName??a.id})),m.appendChild($d());let G=m;m.addEventListener("click",Q=>{Q.stopPropagation(),ta(a.id,G);}),b.appendChild(m);}if(b.addEventListener("keydown",w=>{let G=n.indexOf(a.id),Q;if(w.key==="ArrowRight")Q=n[Math.min(n.length-1,G+1)];else if(w.key==="ArrowLeft")Q=n[Math.max(0,G-1)];else if(w.key==="Home")Q=n[0];else if(w.key==="End")Q=n[n.length-1];else if(m&&w.altKey&&w.key==="ArrowDown")ta(a.id,m);else if(p&&(w.key==="Enter"||w.key===" "))r.toggleSort(a.id,w.shiftKey);else if(O&&(w.key==="ContextMenu"||w.key==="F10"&&w.shiftKey)){let he=b.getBoundingClientRect();oa(a.id,{left:he.left,top:he.bottom});}else return;w.preventDefault(),w.stopPropagation(),Q&&Q!==a.id&&($r(Q),No(Q)?.focus());}),ee&&a.def.reorderable!==false&&(b.draggable=true,b.addEventListener("dragstart",w=>{w.dataTransfer?.setData("text/x-kanuni-column",a.id),w.dataTransfer&&(w.dataTransfer.effectAllowed="move");}),b.addEventListener("dragover",w=>{if(!w.dataTransfer?.types.includes("text/x-kanuni-column"))return;w.preventDefault();let G=b.getBoundingClientRect(),Q=w.clientX<G.left+G.width/2;In(b,Q?"before":"after");}),b.addEventListener("dragleave",w=>{let G=w.relatedTarget;(!G||!b.contains(G))&&In(null,"before");}),b.addEventListener("drop",w=>{In(null,"before");let G=w.dataTransfer?.getData("text/x-kanuni-column");if(!G||G===a.id)return;w.preventDefault();let Q=b.getBoundingClientRect();if(w.clientX<Q.left+Q.width/2)r.moveColumn(G,a.id);else {let Pe=lt.findIndex(oe=>oe.id===a.id);r.moveColumn(G,lt[Pe+1]?.id);}}),b.addEventListener("dragend",()=>In(null,"before"))),se&&a.def.resizable!==false){let w=y("kanuni-datagrid-resize-handle","span");w.setAttribute("data-resize-handle",a.id),w.setAttribute("role","presentation"),w.addEventListener("click",G=>G.stopPropagation()),w.addEventListener("dblclick",G=>{G.stopPropagation(),Qi(a.id);}),w.addEventListener("pointerdown",G=>{G.preventDefault(),G.stopPropagation();let Q=G.clientX,he=a.width,Pe=getComputedStyle(b).direction==="rtl"?-1:1;b.draggable=false;let oe=he,ke=false,Ve=dt=>{ke=true,oe=he+(dt.clientX-Q)*Pe,r.setColumnWidth(a.id,oe,false);},bt=()=>{window.removeEventListener("pointermove",Ve),window.removeEventListener("pointerup",bt),window.removeEventListener("pointercancel",bt),ke&&r.setColumnWidth(a.id,oe,true),b.draggable=ee&&a.def.reorderable!==false;};window.addEventListener("pointermove",Ve),window.addEventListener("pointerup",bt),window.addEventListener("pointercancel",bt);}),b.appendChild(w);}Ae.appendChild(b);}t&&No(t)?.focus({preventScroll:true});}let Or=null,Hn=null;function Li(e){if(e===Or)return;Or=e;let t=[];for(let o=0;o<e.length;o++){let n=e[o];n&&n.kind!=="data"&&t.push(o);}Hn=t.length>0?t:null;}function Ai(e){if(!Hn)return e+1;let t=0,o=Hn.length;for(;t<o;){let n=t+o>>1;Hn[n]<=e?t=n+1:o=n;}return e+1-t}let gt=[];function Fn(e="data"){let t=y("kanuni-datagrid-row");if(t.setAttribute("role","row"),e==="loading"){t.classList.add("kanuni-datagrid-row--loading"),t.setAttribute("aria-busy","true");let c=y("kanuni-datagrid-cell kanuni-datagrid-loading-cell");return c.setAttribute("role","gridcell"),c.setAttribute("aria-colindex","1"),c.appendChild(y("kanuni-datagrid-loading-bar","span")),t.appendChild(c),{kind:e,root:t,cells:[],rowNumberCell:null,selectInput:null,detailToggle:null,leadingSpacer:null,trailingSpacer:null,epoch:ft}}if(e==="data"&&mo&&t.addEventListener("click",()=>{if(!t.classList.contains("kanuni-datagrid-group-row--aligned"))return;let 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:ft}}if(e==="group"){let c=y("kanuni-datagrid-group-cell");c.setAttribute("role","gridcell"),c.setAttribute("aria-colindex","1");let v=y("kanuni-datagrid-group-twisty","span");v.setAttribute("aria-hidden","true");let b=y("kanuni-datagrid-group-caption","span"),S=y("kanuni-datagrid-group-label","span"),H=y("kanuni-datagrid-group-count","span"),R=y("kanuni-datagrid-group-aggregates","span"),O=null;return Yt&&un?.mode==="multiple"&&(O=document.createElement("input"),O.type="checkbox",O.className="kanuni-datagrid-group-checkbox",O.tabIndex=-1,O.addEventListener("change",()=>{let m=t.getAttribute("data-group-key");m!==null&&r.toggleGroupSelection(m);}),O.addEventListener("click",m=>m.stopPropagation()),O.addEventListener("mousedown",m=>m.stopPropagation()),c.appendChild(O)),c.append(v,b,S,H,R),t.appendChild(c),t.addEventListener("click",()=>{let m=t.getAttribute("data-group-key");m!==null&&r.toggleGroup(m);}),{kind:e,root:t,cells:[],rowNumberCell:null,selectInput:null,detailToggle:null,leadingSpacer:null,trailingSpacer:null,group:{cell:c,check:O,twisty:v,caption:b,label:S,count:H,aggregates:R},epoch:ft}}if(cn){let c=y("kanuni-datagrid-row-grip","span");c.setAttribute("aria-hidden","true"),c.title=h.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(kt)return {kind:e,root:t,cells:[],rowNumberCell:null,selectInput:null,detailToggle:null,leadingSpacer:null,trailingSpacer:null,epoch:ft};if(wo){let c=y("kanuni-datagrid-cell kanuni-datagrid-cell--pinned kanuni-datagrid-status-cell");c.setAttribute("role","presentation"),c.setAttribute("aria-hidden","true"),c.style.width=`${cr}px`,c.style.flex="none",c.style.insetInlineStart="0px",c.appendChild(y("kanuni-datagrid-status-icon","span")),t.appendChild(c);}let o=null;A&&(o=y("kanuni-datagrid-cell kanuni-datagrid-cell--number kanuni-datagrid-cell--pinned kanuni-datagrid-rownum-cell"),o.setAttribute("role","gridcell"),o.setAttribute("aria-colindex","1"),o.style.width=`${En}px`,o.style.flex="none",o.style.insetInlineStart=`${yo}px`,t.appendChild(o));let n=null;if(jt){let c=y("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((A?1:0)+1)),c.style.width=`${kn}px`,c.style.flex="none",c.style.insetInlineStart=`${ho}px`;let v=document.createElement("button");v.type="button",v.className="kanuni-datagrid-detail-toggle",v.tabIndex=-1,v.addEventListener("click",b=>{b.stopPropagation();let S=t.getAttribute("data-row-key");if(S===null)return;let H=r.getRows().find(R=>R!==void 0&&String(R.key)===S);H&&H.kind==="data"&&r.toggleDetail(H.key);}),v.addEventListener("mousedown",b=>b.stopPropagation()),c.appendChild(v),t.appendChild(c),n=v;}let i=null;if(Yt){let c=y("kanuni-datagrid-cell kanuni-datagrid-cell--center kanuni-datagrid-cell--pinned kanuni-datagrid-select-cell");c.setAttribute("role","gridcell"),c.setAttribute("aria-colindex",String((A?1:0)+(jt?1:0)+1)),c.style.width=`${ao}px`,c.style.flex="none",c.style.insetInlineStart=`${Dr}px`;let v=document.createElement("input");v.type="checkbox",v.tabIndex=-1;let b=()=>{let S=t.getAttribute("data-row-key");if(S===null)return;let H=r.getRows().find(R=>R!==void 0&&String(R.key)===S);H?.kind==="group"?r.toggleGroupSelection(String(H.key)):H&&r.toggleRow(H.key);};c.addEventListener("mousedown",S=>S.stopPropagation()),c.addEventListener("click",S=>{S.target.tagName!=="INPUT"&&(S.stopPropagation(),b());}),v.addEventListener("change",b),v.addEventListener("click",S=>S.stopPropagation()),v.addEventListener("mousedown",S=>S.stopPropagation()),c.appendChild(v),t.appendChild(c),i=v;}let l=[],s=null,a=false;for(let c of lt){!c.pinned&&!a&&(s=document.createElement("div"),s.style.flex=`0 0 ${ze}px`,t.appendChild(s),a=true);let v=y(c.className);v.setAttribute("role","gridcell"),v.setAttribute("data-column-id",c.id),v.style.width=`${c.width}px`,v.style.flex="none",c.pinned==="left"&&(v.style.insetInlineStart=`${c.inset}px`),c.pinned==="right"&&(v.style.insetInlineEnd=`${c.inset}px`),t.appendChild(v),l.push({el:v,slot:c});}let p=document.createElement("div");return p.style.flex=`0 0 ${vo}px`,t.appendChild(p),{kind:e,root:t,cells:l,rowNumberCell:o,selectInput:i,detailToggle:n,leadingSpacer:s,trailingSpacer:p,epoch:ft}}let Zt="";function Kn(e,t){if(Zt===""||t===""){e.textContent=t;return}let o=foldText(t),n=o.indexOf(Zt);if(n===-1){e.textContent=t;return}let i=[],l=0;for(;n!==-1;){n>l&&i.push(document.createTextNode(t.slice(l,n)));let a=document.createElement("mark");a.className="kanuni-datagrid-highlight",a.textContent=t.slice(n,n+Zt.length),i.push(a),l=n+Zt.length,n=o.indexOf(Zt,l);}l<t.length&&i.push(document.createTextNode(t.slice(l)));let s=document.createElement("span");s.className="kanuni-datagrid-cell-text",s.append(...i),e.replaceChildren(s);}function Br(e,t,o){let n=r.getColumnModel().getCellValue(o.data,t.id),i=t.def;if(i.renderCell){let s=i.renderCell({value:n,row:o.data,node:o,column:i});typeof s=="string"?e.textContent=s:e.replaceChildren(s);return}let l=lookupLabel(i,n);if(l!==null){Kn(e,l);return}if(i.valueFormatter){let s=i.valueFormatter(n,o.data);Kn(e,typeof s=="string"?s:String(s??""));return}if(i.dateFormat&&i.dataType==="date"){Kn(e,formatDateValue(n,i.dateFormat));return}Kn(e,n==null?"":String(n));}function Mi(e,t){return e.kind==="group"&&!t.group}function Di(e,t,o){let n=t?.lead??null;if(!n||!e.leadingSpacer||o.kind!=="data"){e.leadCell?.remove(),e.leadCell=null;return}let i=r.getColumnLayout(),l=n.column.def,s={def:l,id:n.column.state.id,width:n.width,className:ai(l.align,l.dataType),visualIndex:i.left.length+i.center.indexOf(n.column)},a=e.leadCell??y(s.className);e.leadCell=a,a.className=s.className,a.setAttribute("role","gridcell"),a.setAttribute("data-column-id",s.id),a.setAttribute("aria-colspan",String(t.spans.get(s.id)??1)),a.setAttribute("aria-colindex",String(bo()+s.visualIndex+1)),a.id=`${u.gridId}-cell-${String(o.key)}-${s.id}`,a.style.width=`${n.width}px`,a.style.flex="none",e.leadingSpacer.nextSibling!==a&&e.leadingSpacer.after(a),Br(a,s,o);}function Ni(e){let t=document.createElement("div");t.className="kanuni-datagrid-row-message",t.setAttribute("data-testid","dg-row-message"),t.innerHTML='<svg class="kanuni-datagrid-row-message-icon" viewBox="0 0 16 16" width="14" height="14" aria-hidden="true"><path d="M8 1.5 15 14H1z" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"/><path d="M8 6v3.5M8 11.6v.4" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/></svg>';let o=document.createElement("span");o.className="kanuni-datagrid-row-message-text",o.textContent=e.text,o.title=e.text,t.appendChild(o);let n=(i,l,s)=>{let a=document.createElement("button");a.type="button",a.className="kanuni-datagrid-row-message-button",a.setAttribute("data-testid",i),a.textContent=l,a.addEventListener("click",s),t.appendChild(a);};return e.retry&&n("dg-row-retry",h.rowStatusRetry,e.retry),e.remove&&n("dg-row-delete",h.rowStatusDelete,e.remove),t}function Vr(){if(!rt?.messages)return;let e=Ze?.engine??Ee?.()??null,t=rt.get,o=rowMessageKeys(rt,e).filter(n=>{if(!t)return true;let i=r.getDataRowNode(n)?.data;if(i===void 0)return true;let l=t({row:i,rowKey:n});return l===void 0||l==="error"});r.setMessageRows(o,r.getRowHeight());}function _r(e,t){let o=rt&&t?.kind==="data"?resolveRowStatus(rt,t.data,t.key,Ze?.engine??Ee?.()??null):null,n=e.getAttribute("data-row-status");if(n!==null&&e.classList.remove(`kanuni-datagrid-row--status-${n}`,"kanuni-datagrid-row--status-tint"),!o){if(n===null)return;e.removeAttribute("data-row-status"),e.removeAttribute("aria-description"),e.removeAttribute("aria-busy"),e.removeAttribute("aria-invalid");return}e.setAttribute("data-row-status",o.status),e.classList.add(...rowStatusClassName(o.status,rt.tint).split(" ")),e.setAttribute("aria-description",rowStatusDescription(o,h)),o.status==="saving"?e.setAttribute("aria-busy","true"):e.removeAttribute("aria-busy"),o.status==="error"?e.setAttribute("aria-invalid","true"):e.removeAttribute("aria-invalid");}function Ro(e,t,o){let n=e.root;if(n.setAttribute("aria-rowindex",String(o+1+go())),n.setAttribute("data-row-key",String(t.key)),t.kind==="message"){let m=e.panelCell;n.className="kanuni-datagrid-row kanuni-datagrid-message-row",n.style.height=`${t.height}px`,n.style.display="",n.setAttribute("data-message-for",String(t.parentKey)),n.removeAttribute("data-detail-for"),n.removeAttribute("data-editform-for"),n.removeAttribute("data-panel-for"),m.className="kanuni-datagrid-message-cell";let w=rt?rowMessageModel(rt,t.parentKey,t.data,Ze?.engine??Ee?.()??null,h):null,G=w?`${String(t.parentKey)}|${w.text}|${w.retry?1:0}${w.remove?1:0}`:"";n.getAttribute("data-message-sig")!==G&&(n.setAttribute("data-message-sig",G),m.textContent="",w&&m.appendChild(Ni(w)));return}if(n.removeAttribute("data-message-for"),n.removeAttribute("data-message-sig"),t.kind==="detail"||t.kind==="editform"){let m=e.panelCell,w=t.kind==="detail";n.className=`kanuni-datagrid-row ${w?"kanuni-datagrid-detail-row":"kanuni-datagrid-editform-row"}`,n.style.height=`${t.height}px`,w?(n.setAttribute("data-detail-for",String(t.parentKey)),n.removeAttribute("data-editform-for")):(n.setAttribute("data-editform-for",t.parentKey===null?"":String(t.parentKey)),n.removeAttribute("data-detail-for")),m.className=w?"kanuni-datagrid-detail-cell":"kanuni-datagrid-editform-cell";let G=`${t.kind}:${String(t.key)}`;if(n.getAttribute("data-panel-for")!==G){n.setAttribute("data-panel-for",G);let Q=w?fr?.(t.data):t.parentKey===null?void 0:yi?.(t.parentKey,t.data);m.textContent="",typeof Q=="string"?m.textContent=Q:Q&&m.appendChild(Q);}return}if(n.removeAttribute("data-panel-for"),n.removeAttribute("data-detail-for"),n.removeAttribute("data-editform-for"),t.kind==="filler"){n.style.display="none";return}n.style.display="";let i=t.kind==="data"?r.getDataRowHeight():null;n.style.height=Wr?"":`${i??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 m of Array.from(n.classList))m.startsWith("kanuni-datagrid-group-row--level-")&&n.classList.remove(m);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",M&&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 a=r.getFocus();n.classList.toggle("kanuni-datagrid-row--focused",q&&a!==null&&a.rowKey===t.key),_r(n,t);let p=t.kind==="data"&&!Mi(t,e)?r.planRowColSpans(t,r.getVirtualWindow().columns):null;if(e.leadingSpacer&&(e.leadingSpacer.style.flex=`0 0 ${Math.max(0,ze-(p?.leadingDelta??0))}px`),e.trailingSpacer&&(e.trailingSpacer.style.flex=`0 0 ${Math.max(0,vo-(p?.trailingDelta??0))}px`),Di(e,p,t),cn){let m=$t!==null&&String($t.key)===String(t.key);n.classList.toggle("kanuni-datagrid-row--drop-before",m&&$t.side==="before"),n.classList.toggle("kanuni-datagrid-row--drop-after",m&&$t.side==="after");}let c=t.kind==="treePath",v=c||l!==null;if(n.classList.toggle("kanuni-datagrid-row--tree-path",c),e.rowNumberCell&&(e.rowNumberCell.textContent=v?"":String(Ai(o))),e.detailToggle&&(e.detailToggle.hidden=v),e.selectInput){let m=l!==null&&un?.mode==="multiple";if(e.selectInput.hidden=c||l!==null&&!m,e.selectInput.classList.toggle("kanuni-datagrid-group-checkbox",m),m){let w=r.getGroupSelectionState(String(l.key));e.selectInput.checked=w==="all",e.selectInput.indeterminate=w==="some",e.selectInput.disabled=false,e.selectInput.setAttribute("aria-label",h.selectGroupAria.replace("{count}",String(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",h.selectRowAria.replace("{row}",String(t.key)));}if(e.detailToggle&&t.kind==="data"){let m=r.isDetailExpanded(t.key);e.detailToggle.textContent=m?"\u25BE":"\u25B8",e.detailToggle.setAttribute("aria-expanded",String(m)),e.detailToggle.setAttribute("aria-label",m?h.collapseDetails:h.expandDetails);}if(t.kind==="group"&&e.group){let m=t;n.className=`kanuni-datagrid-row kanuni-datagrid-group-row kanuni-datagrid-group-row--level-${m.level}`,n.setAttribute("aria-expanded",String(m.expanded)),n.setAttribute("aria-level",String(m.level+1)),n.setAttribute("data-group-key",String(m.key)),n.setAttribute("data-group-level",String(m.level)),e.group.cell.style.paddingLeft=m.level>0?`${8+m.level*18}px`:"",e.group.twisty.textContent=m.expanded?"\u25BE":"\u25B8";let w=r.getColumnModel().getDef(m.columnId),G=w?.headerName??m.columnId;if(e.group.caption.textContent=`${G}:`,e.group.label.textContent=lookupLabel(w,m.value)??m.display??(m.label===""?h.filterBlank:m.label),e.group.count.textContent=`(${m.count})`,e.group.check){let he=r.getGroupSelectionState(String(m.key));e.group.check.checked=he==="all",e.group.check.indeterminate=he==="some",e.group.check.setAttribute("aria-label",h.selectGroupAria.replace("{count}",String(m.count)).replace("{group}",e.group.label.textContent??""));}e.group.aggregates.textContent="";let Q=m.aggregates??null;if(Q)for(let he of r.getSummaryDefs()){let Pe=y("kanuni-datagrid-group-aggregate","span"),oe=y("kanuni-datagrid-group-aggregate-label","span"),ke=r.getColumnModel().getDef(he.columnId);oe.textContent=`${summaryLabel(he,co)} ${ke?.headerName??he.columnId}:`,Pe.append(oe,` ${formatSummaryValue(he,Q[summaryKey(he.columnId,he.type)],ke)}`),e.group.aggregates.appendChild(Pe);}return}if(t.kind!=="data"&&!c&&!l){for(let{el:m}of e.cells)m.textContent="";return}if(kt&&v){let m=cn?1:0;for(;n.childNodes.length>m;)n.removeChild(n.lastChild);let w=y("kanuni-datagrid-cell");l?w.appendChild(qr(l)):(w.appendChild(Ur(t)),xo(w,t,t.tree)),n.appendChild(w);return}if(kt){let m=cn?1:0,w=kt({row:t.data,node:t,rowIndex:o,selected:r.isRowSelected(t.key),focused:q&&a!==null&&a.rowKey===t.key});if(w instanceof Node&&n.childNodes.length===m+1&&n.childNodes[m]===w)return;for(;n.childNodes.length>m;)n.removeChild(n.lastChild);typeof w=="string"?n.appendChild(document.createTextNode(w)):w&&n.appendChild(w);return}let b=a!==null&&a.rowKey===t.key?a.columnId:null,S=l?void 0:t.tree,H=l&&Ar?GROUP_COLUMN_ID:S||l?(()=>{let m=r.getColumnLayout();return (m.left[0]??m.center[0]??m.right[0])?.state.id??null})():null,R=S?H:null,O=r.hasCellSpans();for(let{el:m,slot:w}of e.cells){m.style.display=p?.covered.has(w.id)?"none":"",m.style.width=`${p?.widths.get(w.id)??w.width}px`;let G=p?.spans.get(w.id);G?m.setAttribute("aria-colspan",String(G)):m.removeAttribute("aria-colspan");let Q=(on||po)&&!v?{node:t,columnId:w.id,rowIndex:o,columnIndex:w.visualIndex,value:r.getColumnModel().getCellValue(t.data,w.id)}:null,he=on&&l&&w.id!==H?{node:t,columnId:w.id,rowIndex:o,columnIndex:w.visualIndex,value:void 0}:null,Pe=Q&&on?on(Q):he?on(he):void 0,oe=false;if(Pe!==void 0?Pe instanceof Node&&m.childNodes.length===1&&m.firstChild===Pe?oe=true:typeof Pe=="string"?m.textContent=Pe:m.replaceChildren(Pe):l?w.id===H?m.replaceChildren(qr(l)):m.replaceChildren(...Ki(l,w.id)):c?w.id===R?(m.replaceChildren(Ur(t)),xo(m,t,S)):m.replaceChildren():(Br(m,w,t),S&&w.id===R&&xo(m,t,S)),O&&!oe){let Le=Hi(o,w.id);m.classList.toggle("kanuni-datagrid-cell--span",Le?.kind==="draw"),m.classList.toggle("kanuni-datagrid-cell--span-covered",Le?.kind==="covered");let De=Pe!==void 0;if(Le?.kind==="covered"&&b!==w.id&&!De)m.replaceChildren();else if(Le?.kind==="draw"){let tn=y("kanuni-datagrid-span-box");tn.style.height=`${Le.height}px`,tn.append(...Array.from(m.childNodes)),m.appendChild(tn);}}else O||m.classList.remove("kanuni-datagrid-cell--span","kanuni-datagrid-cell--span-covered");if(Nt){let Le=!v&&!!To(t.key,w.id,t.data);m.classList.toggle("kanuni-datagrid-cell--noted",Le);}m.id=`${u.gridId}-cell-${String(t.key)}-${w.id}`,m.setAttribute("aria-colindex",String(bo()+w.visualIndex+1)),m.classList.toggle("kanuni-datagrid-cell--focused",b===w.id);let ke=t.kind==="data"?r.getFindMatchKind(t.key,w.id):null;m.classList.toggle("kanuni-datagrid-cell--find-match",ke!==null),m.classList.toggle("kanuni-datagrid-cell--find-active",ke==="active");let Ve=m.getAttribute("data-slot-classes");if(Ve)for(let Le of Ve.split(" "))m.classList.remove(Le);let bt=Q&&po?po(Q):void 0,dt=w.def.cellClassName,de=[v?void 0:typeof dt=="function"?dt({value:r.getColumnModel().getCellValue(t.data,w.id),row:t.data,node:t,column:w.def}):dt,bt].filter(Boolean).join(" ")||void 0;if(de){for(let Le of de.split(" "))m.classList.add(Le);m.setAttribute("data-slot-classes",de);}else Ve&&m.removeAttribute("data-slot-classes");}}let Wr=u.columns.some(e=>e.autoHeight);function Ii(){if(!Wr)return;let e=r.getVirtualWindow(),t=r.getRows(),o=new Map(r.getMeasuredRowHeights()),n=false;for(let i=e.rows.start;i<e.rows.end&&i<t.length;i++){let l=t[i];if(!l||l.kind!=="data")continue;let s=i-e.rows.start,a=gt[s]?.root;if(!a)continue;let p=a.getBoundingClientRect().height;p>0&&o.get(l.key)!==p&&(o.set(l.key,p),n=true);}n&&r.setMeasuredRowHeights(o);}let Pn={start:0,end:0};function Hi(e,t){let o=r.getCellSpans(t);if(o.length===0)return null;let n=spanRoleAt(o,e,Pn.start,Pn.end);if(!n)return null;if(n.role==="covered")return {kind:"covered"};let i=r.getRowOffset(n.drawStart);return {kind:"draw",height:r.getRowOffset(n.drawEnd)+r.getRowHeightAt(n.drawEnd)-i}}function Fi(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 i=e.firstElementChild;if(!o)i.replaceChildren(y("kanuni-datagrid-loading-bar","span"));else {let l=y("kanuni-datagrid-load-failed-text","span");l.textContent=h.rowsLoadFailed;let s=document.createElement("button");s.className="kanuni-datagrid-retry-button",s.type="button",s.setAttribute("data-retry-load",""),s.textContent=h.retryLoad,s.addEventListener("click",()=>r.retryFailedLoads()),i.replaceChildren(l,s);}}function qr(e){let t=y("kanuni-datagrid-group-inline","span");t.style.paddingInlineStart=`${e.level*16}px`;let o=y("kanuni-datagrid-group-twisty","span");o.setAttribute("aria-hidden","true"),o.textContent=e.expanded?"\u25BE":"\u25B8";let n=r.getColumnModel().getDef(e.columnId),i=y("kanuni-datagrid-group-caption","span");i.textContent=`${n?.headerName??e.columnId}:`;let l=y("kanuni-datagrid-group-label","span");l.textContent=lookupLabel(n,e.value)??e.display??(e.label===""?h.filterBlank:e.label);let s=y("kanuni-datagrid-group-count","span");return s.textContent=`(${e.count})`,Ar?t.append(o,l,s):t.append(o,i,l,s),t}function Ki(e,t){if(!e.aggregates)return [];let o=r.getSummaryDefs().find(i=>i.columnId===t);if(!o)return [];let n=y("kanuni-datagrid-group-aggregate-value","span");return n.textContent=formatSummaryValue(o,e.aggregates[summaryKey(o.columnId,o.type)],r.getColumnModel().getDef(t)),[n]}function Ur(e){let t=y("kanuni-datagrid-tree-path-label","span");return t.textContent=e.label,t}function xo(e,t,o){let n=y(`kanuni-datagrid-tree-cell${o.ancestorOnly?" kanuni-datagrid-tree-cell--ancestor":""}`,"span");if(n.style.paddingInlineStart=`${o.depth*16}px`,o.hasChildren){let i=document.createElement("button");i.type="button",i.className="kanuni-datagrid-tree-toggle",i.setAttribute("data-tree-toggle",""),i.setAttribute("aria-expanded",String(o.expanded)),i.setAttribute("aria-label",o.expanded?h.collapseTreeRow:h.expandTreeRow),i.textContent=o.expanded?"\u25BE":"\u25B8",i.addEventListener("mousedown",l=>l.stopPropagation()),i.addEventListener("click",l=>{l.stopPropagation(),r.toggleTreeRow(t.key);}),n.appendChild(i);}else n.appendChild(y("kanuni-datagrid-tree-toggle kanuni-datagrid-tree-toggle--leaf","span"));n.append(...Array.from(e.childNodes)),e.appendChild(n);}let To=(e,t,o)=>Nt?Nt.get({rowKey:e,columnId:t,row:o})??null:null,zr=null,xt=so?y("kanuni-datagrid-overlay"):null;xt&&(xt.style.position="absolute",xt.style.inset="0",xt.style.pointerEvents="none",$e.appendChild(xt));function Pi(){if(!so||!xt)return;let e=so();e!==zr&&(zr=e,e?xt.replaceChildren(e):xt.replaceChildren());}function Gi(e){let t=r.getColumnLayout(),o=Array.from(vt.children);B.setAttribute("aria-rowcount",String(go()+e+o.length)),B.setAttribute("aria-colcount",String(bo()+t.left.length+t.center.length+t.right.length)),r.getSelectionMode()==="multiple"?B.setAttribute("aria-multiselectable","true"):B.removeAttribute("aria-multiselectable"),o.forEach((n,i)=>n.setAttribute("aria-rowindex",String(go()+e+i+1)));}function Gn(){Pi(),an&&Rr();let e=r.getVirtualWindow(),t=r.getRows(),o=Jt?{...e,rows:{...e.rows,start:0,end:t.length,offsetY:0,totalHeight:0}}:e;Li(t),Gi(t.length),$e.style.height=`${o.rows.totalHeight}px`,fe.style.transform=`translateY(${o.rows.offsetY}px)`,Zt=r.getFindNeedle()||(di?normalizeSearch(r.getSearchText()):"");let n=Math.max(0,Math.min(o.rows.end,t.length)-o.rows.start);for(Pn.start=o.rows.start,Pn.end=Math.min(o.rows.end,t.length)-1;gt.length>n;)gt.pop().root.remove();for(let i=0;i<n;i++){let l=o.rows.start+i,s=t[l];if(!s){let c=gt[i];if(!c||c.kind!=="loading"){let v=Fn("loading");c?fe.replaceChild(v.root,c.root):fe.appendChild(v.root),gt[i]=v,c=v;}c.root.setAttribute("aria-rowindex",String(l+2)),c.root.style.height=`${r.getDataRowHeight()??r.getRowHeight()}px`,Fi(c.root,l);continue}let a=s.kind==="data"?"data":s.kind==="group"?mo?"data":"group":s.kind==="detail"||s.kind==="editform"||s.kind==="message"?"panel":"stub",p=gt[i];if(!p||p.epoch!==ft||p.kind!==a){let c=Fn(a);p?fe.replaceChild(c.root,p.root):fe.appendChild(c.root),gt[i]=c,p=c;}Ro(p,s,l);}Ii(),Yr();}let $n=[];function Yr(){if(!r.hasStickyGroupHeaders())return;let e=Jt?[]:r.getStickyGroupRows();for(qe.style.width=`${r.getColumnLayout().totalWidth}px`;$n.length>e.length;)$n.pop().wrap.remove();let t=mo?"data":"group";e.forEach((o,n)=>{let i=$n[n];if(!i||i.rs.epoch!==ft||i.rs.kind!==t){let l=Fn(t),s=i?.wrap??y("kanuni-datagrid-sticky-group");s.textContent="",s.appendChild(l.root),i||qe.appendChild(s),i={wrap:s,rs:l},$n[n]=i;}Ro(i.rs,o.node,o.index),i.rs.root.removeAttribute("aria-rowindex"),i.wrap.style.top=`${o.offset}px`,i.wrap.style.height=`${o.height}px`,i.wrap.style.zIndex=String(e.length-n),i.wrap.classList.toggle("kanuni-datagrid-sticky-group--last",n===e.length-1),i.wrap.querySelectorAll("button, input, select, textarea, a[href], [tabindex]").forEach(l=>l.setAttribute("tabindex","-1"));});}qe.addEventListener("click",e=>{let o=e.target.closest("[data-group-key]")?.getAttribute("data-group-key");o&&r.scrollToRow(o);});let On=createDebouncedCommit(li??(r.isRemote()?200:0));function jr(e,t,o,n){let i=r.getColumnModel().getDef(t);if(!i?.renderFilter)return ()=>{};let l=()=>o==="row"?r.getColumnFilter(t,FILTER_PART_ROW):r.getColumnFilter(t,FILTER_PART_SET)??r.getColumnFilter(t,FILTER_PART_DEFAULT),s=new Set,a=r.events.on("filterChanged",()=>{let c=l();s.forEach(v=>v(c));}),p=i.renderFilter(e,{columnId:t,column:i,surface:o,getValue:l,setValue:c=>r.setColumnFilter(t,c,o==="row"?FILTER_PART_ROW:FILTER_PART_SET),close:n,onValueChange:c=>(s.add(c),()=>s.delete(c))});return ()=>{a(),s.clear(),typeof p=="function"&&p();}}let mn=[],bn=new Map,So=false;function $i(){!T||So||Et.querySelectorAll("select[data-filter-operator-for]").forEach(e=>{let t=e.getAttribute("data-filter-operator-for");if(On.isPending(t))return;let o=r.getColumnModel().getDef(t),n=r.getColumnFilter(t,FILTER_PART_ROW),i=bn.get(t)??"",l=e.parentElement?.querySelector("input.kanuni-datagrid-filter-input"),s=i;if(n){let a=customFilterInputFromNode(n,o);s=a?.operatorId??"",a&&l&&(l.value=a.text);}else findCustomFilterOperator(o,i)?.operandType==="none"&&(s="");bn.set(t,s),e.value=s,l&&(l.disabled=findCustomFilterOperator(o,s)?.operandType==="none");});}function Lo(){if(!T)return;if(mn.forEach(n=>n()),mn=[],Et.textContent="",it>0){let n=y("kanuni-datagrid-filter-cell kanuni-datagrid-filter-cell--pinned");n.setAttribute("role","gridcell"),n.style.width=`${it}px`,n.style.flex="none",n.style.insetInlineStart="0px",Et.appendChild(n);}let e=false,t=null,o=()=>{if(!t){t=document.createElement("datalist"),t.id=`${u.gridId}-filter-periods`;for(let n of periodSuggestionList(hr)){let i=document.createElement("option");i.value=n,t.appendChild(i);}Et.appendChild(t);}return t.id};for(let n of lt){if(!n.pinned&&!e){if(ze>0){let s=y("kanuni-datagrid-spacer");s.style.width=`${ze}px`,s.style.flex="none",Et.appendChild(s);}e=true;}let i=y(`kanuni-datagrid-filter-cell${n.pinned?" kanuni-datagrid-filter-cell--pinned":""}`);i.setAttribute("role","gridcell"),i.style.width=`${n.width}px`,i.style.flex="none",n.pinned==="left"&&(i.style.insetInlineStart=`${n.inset}px`),n.pinned==="right"&&(i.style.insetInlineEnd=`${n.inset}px`);let l=n.def.renderFilter;if(n.def.filterable!==false&&l){let s=y("kanuni-datagrid-filter-custom");s.setAttribute("data-filter-for",n.id),i.appendChild(s),mn.push(jr(s,n.id,"row",()=>{}));}else if(n.def.filterable!==false){let s=document.createElement("input");s.className="kanuni-datagrid-filter-input",s.setAttribute("aria-label",fillText(h.filterPopupAria,{column:n.def.headerName??n.id})),s.setAttribute("data-filter-for",n.id);let a=customFilterOperators(n.def),p=()=>findCustomFilterOperator(n.def,bn.get(n.id)??"");n.def.dataType==="date"&&!p()&&s.setAttribute("list",o());let c=()=>{let b=p();So=true;try{r.setColumnFilter(n.id,b?parseCustomFilterInput(n.id,s.value,b):parseFilterInput(n.id,s.value,n.def.dataType,hr),FILTER_PART_ROW);}finally{So=false;}};if(a.length>0){let b=document.createElement("select");b.className="kanuni-datagrid-filter-operator",b.setAttribute("aria-label",fillText(h.filterOperatorAria,{column:n.def.headerName??n.id})),b.setAttribute("data-filter-operator-for",n.id);let S=[["",h.filterOperatorDefault],...a.map(R=>[R.id,R.label])];for(let[R,O]of S){let m=document.createElement("option");m.value=R,m.textContent=O,b.appendChild(m);}let H=customFilterInputFromNode(r.getColumnFilter(n.id,FILTER_PART_ROW),n.def);H&&(bn.set(n.id,H.operatorId),s.value=H.text),b.value=p()?.id??"",s.disabled=p()?.operandType==="none",b.addEventListener("change",()=>{bn.set(n.id,b.value),s.disabled=p()?.operandType==="none",p()?s.removeAttribute("list"):n.def.dataType==="date"&&s.setAttribute("list",o()),On.cancel(n.id),c();}),i.appendChild(b);}s.addEventListener("input",()=>On.schedule(n.id,c));let v=()=>{On.cancel(n.id),c();};s.addEventListener("keydown",b=>{b.key==="Enter"&&v();}),s.addEventListener("blur",v),i.appendChild(s);}Et.appendChild(i);}}let Ao=()=>{};function Oi(){let e=resolveToolbar(br);if(!e.show)return;let t=e.search,o=document.createElement("input");o.type="search",o.className="kanuni-datagrid-toolbar-search",o.placeholder=t?.placeholder??h.toolbarSearch,o.setAttribute("aria-label",h.toolbarSearch),o.setAttribute("data-testid","dg-toolbar-search"),t?.maxLength!==void 0&&(o.maxLength=t.maxLength);let n=y("kanuni-datagrid-toolbar-search-error","span");n.id=`kanuni-dg-search-error-${++Dd}`,n.setAttribute("role","alert"),n.setAttribute("data-testid","dg-toolbar-search-error"),n.style.display="none";let i=()=>{let R=t?.validate?.(o.value)??null;return n.textContent=R??"",n.style.display=R===null?"none":"",R===null?(o.removeAttribute("aria-invalid"),o.removeAttribute("aria-describedby")):(o.setAttribute("aria-invalid","true"),o.setAttribute("aria-describedby",n.id)),R===null},l=null,s=()=>{l&&clearTimeout(l),l=null,i()&&r.getSearchText()!==o.value&&r.setSearchText(o.value);};o.addEventListener("input",()=>{l&&clearTimeout(l),l=null,i()&&(l=setTimeout(s,t?.debounce??fi));}),t?.applyOnBlur!==false&&(o.addEventListener("blur",s),o.addEventListener("keydown",R=>{R.key==="Enter"&&s();}));let a=y("kanuni-datagrid-toolbar-spacer"),p=null;if(e.columns??Y){let R=document.createElement("button");R.type="button",setCommandContent(R,"columns",h.toolbarColumns??"Columns"),R.setAttribute("aria-haspopup","dialog"),R.addEventListener("click",()=>{let O=R.getBoundingClientRect();ra({left:O.left,top:O.bottom+2});}),p=R;}let c=Ct&&ci,v=Ct&&pi,b=document.createElement("button");b.type="button",b.className="kanuni-datagrid-toolbar-icon-button",b.setAttribute("aria-haspopup","menu"),b.setAttribute("aria-label",h.exportMenu),b.setAttribute("data-testid","dg-export-menu"),b.title=h.exportMenu,b.appendChild(Gd());let S=null;b.addEventListener("click",()=>{if(S)return;let R=b.getBoundingClientRect();mt({left:R.right-190,top:R.bottom+2},O=>{O.setAttribute("role","menu"),O.setAttribute("aria-label",h.exportMenu);let m=[{kind:"csv",label:h.exportCsv,testId:"dg-export-csv",on:r.canExportAll()},{kind:"excel",label:h.exportExcel,testId:"dg-export-excel",on:c},{kind:"excel-selected",label:h.exportExcelSelected,testId:"dg-export-excel-selected",on:c},{kind:"pdf",label:h.exportPdf,testId:"dg-export-pdf",on:v}];for(let w of m){if(!w.on)continue;let G=document.createElement("button");G.type="button",G.className="kanuni-datagrid-menu-item",G.setAttribute("role","menuitem"),G.setAttribute("data-testid",w.testId),G.textContent=w.label,w.kind==="excel-selected"&&r.getSelectedCount()===0&&(G.disabled=true),G.addEventListener("click",()=>{S=w.kind,b.disabled=true,He(),Qo(r,w.kind).then(Q=>{S=null,b.disabled=false,Q.error&&Ao(Q.error);});}),O.appendChild(G);}},"kanuni-datagrid-filter-popup kanuni-datagrid-export-menu");});for(let R of ui??[])ct.append(R);t&&ct.append(o,n),ct.append(a),p&&ct.append(p),e.export&&(r.canExportAll()||c||v)&&ct.append(b);for(let R of si??[])ct.append(R);let H=y("kanuni-datagrid-toolbar-error","span");H.setAttribute("role","alert"),H.style.display="none",ct.append(H),Ao=R=>{H.textContent=R,H.style.display="";};}function Xr(){if(!ot.isConnected)return;let e=r.getPage(),t=r.getPageCount(),o=document.activeElement,n=o instanceof HTMLElement&&ot.contains(o)?o.getAttribute("data-pager"):null;ot.textContent="";let i=(p,c,v,b,S)=>{let H=document.createElement("button");return H.type="button",H.textContent=p,H.setAttribute("aria-label",c),H.setAttribute("data-pager",S),H.disabled=v,H.addEventListener("click",b),H},l=y("kanuni-datagrid-pager-buttons"),s=e<=0,a=e>=t-1;if(l.append(i("\xAB",h.pagerFirst??"First",s,()=>r.setPage(0),"first"),i("\u2039",h.pagerPrevious??"Previous",s,()=>r.setPage(e-1),"previous")),Sn?.pageButtons)for(let p of pageButtonItems(e,t,Sn.maxPageButtons)){if(typeof p!="number"){let b=y("kanuni-datagrid-pager-gap","span");b.textContent="\u2026",b.setAttribute("aria-hidden","true"),l.append(b);continue}let c=String(p+1),v=i(c,h.pagerPageButton.replace("{n}",c),false,()=>r.setPage(p),`page-${p}`);v.classList.add("kanuni-datagrid-pager-page"),p===e&&v.setAttribute("aria-current","page"),l.append(v);}else {let p=y("kanuni-datagrid-pager-current","span");p.textContent=`${e+1} / ${t}`,l.append(p);}if(l.append(i("\u203A",h.pagerNext??"Next",a,()=>r.setPage(e+1),"next"),i("\xBB",h.pagerLast??"Last",a,()=>r.setPage(t-1),"last")),ot.appendChild(l),n!==null){let p=ot.querySelector(`[data-pager="${n}"]`);(p&&!p.disabled?p:ot.querySelector('[aria-current="page"]')??ot.querySelector("button:not(:disabled)"))?.focus();}}function Mo(){if(!nt)return;let e=r.getColumnLayout(),t=r.getSummaries(),o=new Map(r.getSummaryDefs().map(i=>[i.columnId,i]));if(Oe.textContent="",Oe.style.width=`${e.totalWidth+it}px`,it>0){let i=y("kanuni-datagrid-footer-cell kanuni-datagrid-footer-cell--pinned");i.style.width=`${it}px`,i.style.insetInlineStart="0px",Oe.appendChild(i);}let n=false;for(let i of lt){if(!i.pinned&&!n){if(ze>0){let p=y("kanuni-datagrid-spacer");p.style.width=`${ze}px`,Oe.appendChild(p);}n=true;}let l=o.get(i.id),s=i.def.dataType==="number"||i.def.dataType==="bigint",a=y(`kanuni-datagrid-footer-cell${i.pinned?" kanuni-datagrid-footer-cell--pinned":""}${s?" kanuni-datagrid-footer-cell--number":""}${l?" kanuni-datagrid-footer-cell--active":""}`);if(a.setAttribute("role","gridcell"),a.setAttribute("data-column-id",i.id),a.setAttribute("data-summary-type",l?.type??""),a.style.width=`${i.width}px`,i.pinned==="left"&&(a.style.insetInlineStart=`${i.inset}px`),i.pinned==="right"&&(a.style.insetInlineEnd=`${i.inset}px`),l){a.title=`${summaryLabel(l,co)} \u2014 ${i.def.headerName??i.id}`;let p=y("kanuni-datagrid-footer-value","span");p.textContent=formatSummaryValue(l,t[summaryKey(l.columnId,l.type)],i.def),a.appendChild(p);}else {let p=y("kanuni-datagrid-footer-hint","span");p.textContent=U&&!isChromeColumn(i.id)?"\xB7":"",a.appendChild(p);}Oe.appendChild(a);}}function Bi(){Ht()>0?tt.isConnected||Ie.insertBefore(tt,qe.isConnected?qe:$e):tt.remove(),vr()>0?vt.isConnected||Ie.insertBefore(vt,$e.nextSibling):vt.remove(),qe.style.setProperty("--dg-sticky-below",`${Ht()>0?Ht()*r.getRowHeight()+1:0}px`);}function Bn(){let e=kt;kt=pe;try{Vi();}finally{kt=e;}}function Vi(){let e=(t,o,n,i)=>{t.textContent="",o.forEach((l,s)=>{let a=Fn("data");Ro(a,{kind:"data",key:`__pinned-${n}-${s}`,sourceIndex:-1,data:l},s),a.root.classList.remove("kanuni-datagrid-row--odd"),a.root.setAttribute("aria-rowindex",String(fo+Ft+s+1)),a.root.removeAttribute("aria-selected"),_r(a.root,null),a.rowNumberCell&&(a.rowNumberCell.textContent="");let p=i[s-(o.length-i.length)];p!==void 0?a.root.setAttribute("data-pinned-row-key",String(p)):a.root.removeAttribute("data-pinned-row-key"),t.appendChild(a.root);});};for(let[t,o,n]of [["top",tt,ce],["bottom",vt,W]]){let i=r.getPinnedRows(t);if(n.length+i.length===0){o.textContent="";continue}e(o,[...n,...i.map(l=>l.row)],t,i.map(l=>l.key));}}let Vn=e=>{let t=e.target.closest("[data-pinned-row-key]");if(!t)return;let o=t.getAttribute("data-pinned-row-key"),n=r.getPinnedRowKeys(),i=[...n.top,...n.bottom].find(p=>String(p)===o);if(i===void 0)return;let l=Jr(i,false);if(l.length===0)return;e.preventDefault();let s=r.getPinnedRows(r.getRowPinSide(i)??"top").find(p=>p.key===i)?.row,a={row:s,node:{kind:"data",key:i,sourceIndex:-1,data:s},rowIndex:-1,columnId:e.target.closest("[data-column-id]")?.getAttribute("data-column-id")??null,selectedKeys:r.getSelectedKeys()};mt({left:e.clientX,top:e.clientY},p=>{p.setAttribute("role","menu"),Wn(p,l,a);},"kanuni-datagrid-context-menu");};tt.addEventListener("contextmenu",Vn),vt.addEventListener("contextmenu",Vn);function Jr(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:h.pinRowTop,onSelect:()=>r.pinRow(e,"top")}),o!=="bottom"&&n.push({id:"__dg-pin-bottom",label:h.pinRowBottom,onSelect:()=>r.pinRow(e,"bottom")}),o&&n.push({id:"__dg-unpin",label:h.unpinRow,onSelect:()=>r.pinRow(e,null)}),t&&n.length>0?[{id:"__dg-sep-pin",separator:true},...n]:n}let Ot=null,Bt=null,Do=null;function He(e=true){Bt?.(),Bt=null,Ot?.remove(),Ot=null;let t=Do;Do=null,e&&t?.();}function No(e){return Ae.querySelector(`.kanuni-datagrid-header-cell[data-column-id="${CSS.escape(e)}"]`)}function Qr(e,t){e.addEventListener("keydown",o=>{let n=Array.from(e.querySelectorAll('[role="menuitem"]:not(:disabled)'));if(n.length===0)return;let i=n.indexOf(document.activeElement),l=n[i],s;switch(o.key){case "ArrowDown":s=n[(i+1)%n.length];break;case "ArrowUp":s=n[i<=0?n.length-1:i-1];break;case "Home":s=n[0];break;case "End":s=n[n.length-1];break;case "ArrowRight":case "Enter":case " ":if(l?.getAttribute("aria-haspopup")!=="menu")return;l.click(),s=Ot?.querySelector('.kanuni-datagrid-submenu [role="menuitem"]:not(:disabled)')??void 0;break;case "ArrowLeft":if(!t)return;t();break;case "Tab":He();break;default:return}o.preventDefault(),o.stopPropagation(),s?.focus();});}function Zr(e,t){let n=e.getBoundingClientRect();n.width===0&&n.height===0||(e.style.left=`${Math.max(8,Math.min(t.left,window.innerWidth-n.width-8))}px`,e.style.top=`${Math.max(8,Math.min(t.top,window.innerHeight-n.height-8))}px`);}function mt(e,t,o="kanuni-datagrid-filter-popup"){He(false);let n=document.activeElement instanceof HTMLElement?document.activeElement:null,i=n&&Ae.contains(n)?n.closest("[data-column-id]")?.getAttribute("data-column-id")??null:null;Ot=y(`${ro(u)} kanuni-datagrid-portal`);let l=y(o);l.style.position="fixed",l.style.left=`${e.left}px`,l.style.top=`${e.top}px`,l.style.zIndex="1000",t(l),Ot.appendChild(l),portalTarget(u.portalContainer).appendChild(markPortal(Ot,u.portalContainer)),Zr(l,e),Do=()=>{let c=i?No(i):null,v=n?.isConnected?n:c;v?.focus({preventScroll:true}),v&&document.activeElement!==v&&c&&c.focus({preventScroll:true});},l.getAttribute("role")==="menu"&&(Qr(l),l.querySelector('[role="menuitem"]:not(:disabled)')?.focus({preventScroll:true}));let s=Ot,a=c=>{s.contains(c.target)||He(false);},p=c=>{c.key==="Escape"&&He();};document.addEventListener("pointerdown",a,true),document.addEventListener("keydown",p,true),Bt=()=>{document.removeEventListener("pointerdown",a,true),document.removeEventListener("keydown",p,true);};}let Tt=25,ea=8,Io=new Map,Ho=0;function ta(e,t){let o=t.getBoundingClientRect(),n=++Ho;if(r.getColumnModel().getDef(e)?.renderFilter){let s=null,a=null;mt({left:o.left,top:o.bottom+2},v=>{a=v,v.classList.add("kanuni-datagrid-filter-popup--custom"),v.setAttribute("role","dialog"),v.setAttribute("aria-label",fillText(h.filterPopupAria,{column:r.getColumnModel().getDef(e)?.headerName??e})),v.setAttribute("data-column-id",e),v.tabIndex=-1,s=jr(v,e,"popup",()=>He());});let p=a;p&&(p.querySelector('input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), a[href], [tabindex]:not([tabindex="-1"])')??p).focus({preventScroll:true});let c=Bt;Bt=()=>{c?.(),s?.(),s=null;};return}let i=null;mt({left:o.left,top:o.bottom+2},s=>{s.setAttribute("role","dialog"),s.setAttribute("aria-label",fillText(h.filterPopupAria,{column:r.getColumnModel().getDef(e)?.headerName??e}));let a=[],p=true,c=new Set,v=false,b=0,S="",H=[],R={value:void 0,label:""},O=L=>L.value===null||L.value===void 0,m=[],w=L=>L===R?NONBLANK_KEY:distinctEntryKey(L),G=L=>L===R?h.filterNonBlank:distinctDisplayText(L,{filterBlank:h.filterBlank,filterEmptyText:h.filterEmptyText,filterSpace:h.filterSpace,filterSpaces:h.filterSpaces}),Q=null,he="",Pe=[],oe=null,ke=document.createElement("input");ke.type="search",ke.className="kanuni-datagrid-filter-search",ke.placeholder=h.search,ke.setAttribute("data-testid","dg-filter-search");let Ve=null;z&&(Ve=document.createElement("button"),Ve.type="button",Ve.className="kanuni-datagrid-filter-custom",Ve.setAttribute("data-testid","dg-filter-custom"),Ve.textContent=h.filterCustom,Ve.addEventListener("click",()=>{He(),z({columnId:e});}));let bt=y("kanuni-datagrid-filter-actions"),dt=document.createElement("button");dt.type="button",dt.textContent=h.filterSelectAll,dt.addEventListener("click",()=>{if(oe)return oe.selectAll();if(v=true,S.trim()==="")c=new Set(a.map(distinctEntryKey));else for(let L of H)c.add(distinctEntryKey(L));Xe();});let wn=document.createElement("button");wn.type="button",wn.textContent=h.clear,wn.addEventListener("click",()=>{if(oe)return oe.clear();if(v=true,S.trim()==="")c=new Set;else for(let L of H)c.delete(distinctEntryKey(L));Xe();}),bt.append(dt,wn);let de=y("kanuni-datagrid-filter-list");de.setAttribute("role","listbox"),de.setAttribute("aria-multiselectable","true");let Le=document.createElement("div");Le.style.position="relative";let De=document.createElement("div");Le.appendChild(De),de.appendChild(Le);let tn=()=>{let L=foldText(S.trim());if(!L){H=a;let j=a.findIndex(O);m=j<0?a:[...a.slice(0,j+1),R,...a.slice(j+1)];return}Q||(Q=a.map(j=>foldText(j.label))),H=he!==""&&L.includes(he)?Pe.filter(j=>foldText(j.label).includes(L)):a.filter((j,ie)=>Q[ie].includes(L)),he=L,Pe=H,m=H;},dl=L=>{let j=L.getRowCount(),ie=L.isLoading();de.setAttribute("aria-busy",String(ie)),de.setAttribute("aria-setsize",String(j));let ge=document.activeElement instanceof HTMLElement?document.activeElement.closest(".kanuni-datagrid-filter-item")?.getAttribute("data-index")??null:null;if(De.textContent="",ie||j===0){Le.style.height="",De.style.transform="";let me=y("kanuni-datagrid-filter-empty");me.textContent=ie?h.filterLoading:h.filterNoMatch,De.appendChild(me);return}Le.style.height=`${L.getWindow(de.scrollTop,240).totalHeight}px`;let Fe=L.getWindow(de.scrollTop,Math.max(de.clientHeight,150));Le.style.height=`${Fe.totalHeight}px`,De.style.transform=`translateY(${Fe.offsetY}px)`;for(let me=Fe.start;me<Fe.end;me++){let Je=L.getRow(me),Ke=y("kanuni-datagrid-filter-item");if(Ke.setAttribute("role","option"),Ke.setAttribute("data-index",String(me)),!Je){Ke.classList.add("kanuni-datagrid-filter-item--pending"),Ke.setAttribute("aria-selected","false"),Ke.setAttribute("aria-busy","true");let nn=document.createElement("span");nn.setAttribute("aria-hidden","true"),nn.textContent="\u2026",Ke.appendChild(nn),De.appendChild(Ke);continue}let yn=L.isChecked(Je);Ke.setAttribute("aria-selected",String(yn)),Ke.tabIndex=0,Ke.setAttribute("data-value",Je.label),me===b&&Ke.classList.add("kanuni-datagrid-filter-item--active");let Ge=document.createElement("input");Ge.type="checkbox",Ge.readOnly=true,Ge.checked=yn,Ge.tabIndex=-1;let Dt=document.createElement("span");Dt.textContent=Je.nonBlank?h.filterNonBlank:distinctDisplayText({value:Je.blank?null:Je.value,label:Je.label},{filterBlank:h.filterBlank,filterEmptyText:h.filterEmptyText,filterSpace:h.filterSpace,filterSpaces:h.filterSpaces}),Ke.append(Ge,Dt),Ke.addEventListener("click",()=>L.toggle(Je)),Ke.addEventListener("focus",()=>{b=me;}),De.appendChild(Ke);}L.ensure(Fe.start,Fe.end),ge!==null&&De.querySelector(`[data-index="${ge}"]`)?.focus({preventScroll:true});},Xe=()=>{if(oe&&!p)return dl(oe);if(de.setAttribute("aria-busy",String(p)),de.setAttribute("aria-setsize",String(m.length)),p){Le.style.height="",De.textContent="";let me=y("kanuni-datagrid-filter-empty");me.textContent=h.filterLoading,De.appendChild(me);return}if(m.length===0){Le.style.height="",De.style.transform="",De.textContent="";let me=y("kanuni-datagrid-filter-empty");me.textContent=h.filterNoMatch,De.appendChild(me);return}let L=de.clientHeight||240,j=Math.max(0,Math.floor(de.scrollTop/Tt)-ea),ie=Math.ceil(L/Tt)+ea*2,ge=Math.min(j,Math.max(0,m.length-1)),Fe=Math.min(m.length,ge+ie);Le.style.height=`${m.length*Tt}px`,De.style.transform=`translateY(${ge*Tt}px)`,De.textContent="";for(let me=ge;me<Fe;me++){let Je=m[me],Ke=w(Je),yn=Je===R?distinctNonBlankTicked(a,c):c.has(Ke),Ge=y("kanuni-datagrid-filter-item");Ge.setAttribute("role","option"),Ge.setAttribute("aria-selected",String(yn)),Ge.tabIndex=0,Ge.setAttribute("data-value",Je.label),Ge.setAttribute("data-index",String(me)),me===b&&Ge.classList.add("kanuni-datagrid-filter-item--active");let Dt=document.createElement("input");Dt.type="checkbox",Dt.readOnly=true,Dt.checked=yn,Dt.tabIndex=-1;let nn=document.createElement("span");nn.textContent=G(Je),Ge.append(Dt,nn),Ge.addEventListener("click",()=>Ha(Ke)),Ge.addEventListener("focus",()=>{b=me;}),De.appendChild(Ge);}},Ha=L=>{if(v=true,L===NONBLANK_KEY){let j=distinctNonBlankTicked(a,c);for(let ie of a)O(ie)&&!j?c.delete(BLANK_KEY):c.add(distinctEntryKey(ie));}else c.has(L)?c.delete(L):c.add(L);for(let j of De.querySelectorAll(".kanuni-datagrid-filter-item")){let ie=m[Number(j.getAttribute("data-index"))];if(!ie)continue;let ge=ie===R?distinctNonBlankTicked(a,c):c.has(w(ie));j.setAttribute("aria-selected",String(ge));let Fe=j.querySelector("input");Fe&&(Fe.checked=ge);}};de.addEventListener("scroll",()=>{Io.set(e,de.scrollTop),Xe();});let Qn=null,jo=()=>{if(b=0,oe){let L=oe;Qn&&clearTimeout(Qn),Qn=setTimeout(()=>{Qn=null,L.getSearch()!==S.trim()&&(L.setSearch(S),de.scrollTop=0,Xe());},150);return}tn(),Xe();};ke.addEventListener("input",()=>{S=ke.value,jo();});let Xo=L=>{if(oe){let ge=oe.getRowCount();if(ge===0)return;b=Math.max(0,Math.min(ge-1,L)),L<=0?de.scrollTop=0:L>=ge-1&&(de.scrollTop=de.scrollHeight),Xe();let Fe=s.querySelector(`.kanuni-datagrid-filter-item[data-index="${b}"]`);Fe?.focus(),Fe?.scrollIntoView?.({block:"nearest"});return}if(m.length===0)return;b=Math.max(0,Math.min(m.length-1,L));let j=b*Tt,ie=de.clientHeight||240;j<de.scrollTop?de.scrollTop=j:j+Tt>de.scrollTop+ie&&(de.scrollTop=j+Tt-ie),Xe(),s.querySelector(`.kanuni-datagrid-filter-item[data-index="${b}"]`)?.focus();},Fa=()=>{if(p)return;if(oe){if(oe.isLoading())return;r.setColumnFilter(e,oe.buildFilter(e),FILTER_PART_SET),He();return}let L;if(c.size===a.length)L=null;else if(distinctNonBlankTicked(a,c))L={columnId:e,operator:"isnotnull"};else {let j=c.has(BLANK_KEY),ie=a.filter(ge=>!O(ge)&&c.has(distinctEntryKey(ge)));ie.length===0?L=j?{columnId:e,operator:"isnull"}:null:j?L={logic:"or",nodes:[{columnId:e,operator:"in",value:ie.map(ge=>ge.value)},{columnId:e,operator:"isnull"}]}:L={columnId:e,operator:"in",value:ie.map(ge=>ge.value)};}r.setColumnFilter(e,L,FILTER_PART_SET),He();};s.tabIndex=-1,s.addEventListener("keydown",L=>{let j=L.target===ke;if(L.key==="Tab"){let ie=Array.from(s.querySelectorAll('input:not([disabled]), button:not([disabled]), [tabindex="0"]')),ge=ie[0],Fe=ie[ie.length-1],me=document.activeElement;ge&&Fe&&(!L.shiftKey&&(me===Fe||me===s)?(L.preventDefault(),ge.focus()):L.shiftKey&&(me===ge||me===s)&&(L.preventDefault(),Fe.focus()));return}if(L.key==="Backspace"&&!j){L.preventDefault(),ke.focus(),S=S.slice(0,-1),ke.value=S,jo();return}if(L.key==="ArrowDown"){L.preventDefault(),Xo(j?0:b+1);return}if(L.key==="ArrowUp"){L.preventDefault(),Xo(j?oe?0:m.length-1:b-1);return}if(!j&&(L.key==="Home"||L.key==="End")){L.preventDefault(),Xo(L.key==="Home"?0:(oe?oe.getRowCount():m.length)-1);return}if(L.key===" "&&!j){if(L.preventDefault(),oe){let ge=oe.getRow(b);ge&&oe.toggle(ge);return}let ie=m[b];ie&&Ha(w(ie));return}if(L.key==="Enter"){L.preventDefault(),Fa();return}!j&&L.key.length===1&&L.key!==" "&&!L.ctrlKey&&!L.metaKey&&!L.altKey&&(L.preventDefault(),ke.focus(),S+=L.key,ke.value=S,jo());});let Ka=y("kanuni-datagrid-filter-footer"),Zn=document.createElement("button");Zn.type="button",Zn.textContent=h.cancel,Zn.addEventListener("click",()=>He());let wt=document.createElement("button");wt.type="button",wt.className="kanuni-datagrid-filter-primary",wt.setAttribute("data-testid","dg-filter-apply"),wt.textContent=h.apply,wt.disabled=true,wt.addEventListener("click",Fa),Ka.append(Zn,wt),s.append(ke,...Ve?[Ve]:[],bt,de,Ka),Xe(),queueMicrotask(()=>{ke.isConnected&&ke.focus();});let Pa=L=>{a=L,Q=null,he="",p=false,wt.disabled=false;let j=selectedLabelsFromFilter(r.getColumnFilter(e,FILTER_PART_SET)??r.getColumnFilter(e,FILTER_PART_DEFAULT),a,{text:r.getColumnModel().getDataType(e)==="string"});j?(v=true,c=new Set(j)):v||(c=new Set(a.map(distinctEntryKey))),tn();let ie=Io.get(e);Xe(),ie&&(de.scrollTop=ie,Xe());},Mt=r.openRemoteDistinct(e,Tt);if(Mt){oe=Mt,i=Mt,Mt.subscribe(()=>{s.isConnected&&oe===Mt&&Xe();}),Mt.start().then(L=>{if(Ho!==n||!s.isConnected){Mt.dispose();return}if(L.kind==="paged"){p=false,wt.disabled=false;let j=Io.get(e);Xe(),j&&(de.scrollTop=j,Xe());return}Mt.dispose(),oe=null,i=null,Pa(r.sortDistinctEntries(L.values));});return}r.getDistinctValueSetAsync(e).then(L=>{Ho!==n||!s.isConnected||Pa(L.entries);});});let l=Bt;Bt=()=>{l?.(),i?.dispose(),i=null;};}function _n(e={}){let t=r.getClipboardText(e);r.notifyClipboardGesture("copy",t?t.split(`
2
+ `).length:0,()=>r.writeClipboard(t,"copy"));}function _i(e){if(le===false)return [];let t=le===true?{}:le,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:h.menuCopy,shortcut:`${qi}C`,onSelect:()=>_n()}),t.copyWithHeaders!==false&&n({id:"__dg-copy-headers",label:h.menuCopyWithHeaders,onSelect:()=>_n({includeHeaders:true})}),t.copyWithGroupHeaders!==false&&Wi()&&n({id:"__dg-copy-group-headers",label:h.menuCopyWithGroupHeaders,onSelect:()=>_n({includeGroupHeaders:true})});let i=(t.export===false?[]:Array.isArray(t.export)?t.export:["csv","excel","excel-selected","pdf"]).filter(l=>l!=="csv"||r.canExportAll());if(i.length>0){let l=r.getSelectedCount()===0,s={csv:h.exportCsv,excel:h.exportExcel,"excel-selected":h.exportExcelSelected,pdf:h.exportPdf};n({id:"__dg-export",label:h.menuExport,items:i.map(a=>({id:`__dg-export-${a}`,label:s[a],disabled:a==="excel-selected"&&l,onSelect:()=>{Qo(r,a).then(p=>{p.error&&Ao(p.error);});}}))});}return o}function Wi(){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 qi=/Mac|iPhone|iPad|iPod/.test(navigator.platform??"")?"\u2318":"Ctrl+";function Wn(e,t,o){let n=null,i=()=>{n?.remove(),n=null;};t.forEach((l,s)=>{if(l.separator){let b=y("kanuni-datagrid-menu-separator");b.setAttribute("role","separator"),e.appendChild(b);return}let a=y("kanuni-datagrid-menu-row"),p=document.createElement("button");if(p.type="button",p.className="kanuni-datagrid-menu-item",p.setAttribute("role","menuitem"),p.setAttribute("data-item-index",String(s)),l.disabled&&(p.disabled=true),l.icon!==void 0){let b=y("kanuni-datagrid-menu-icon","span");typeof l.icon=="string"?b.textContent=l.icon:b.appendChild(l.icon),p.appendChild(b);}let c=y("kanuni-datagrid-menu-label","span");if(c.textContent=l.label??"",p.appendChild(c),l.shortcut){let b=y("kanuni-datagrid-menu-shortcut","span");b.textContent=l.shortcut,p.appendChild(b);}let v=l.items??[];if(v.length>0){let b=y("kanuni-datagrid-menu-caret","span");b.textContent="\u203A",p.appendChild(b),p.setAttribute("aria-haspopup","menu"),p.setAttribute("aria-expanded","false");let S=()=>{i();let H=y("kanuni-datagrid-context-menu kanuni-datagrid-submenu");H.setAttribute("role","menu");let R=p.getBoundingClientRect();H.style.left=`${R.right}px`,H.style.top=`${Math.max(0,R.top-4)}px`;for(let O of v){if(O.separator){let G=y("kanuni-datagrid-menu-separator");G.setAttribute("role","separator"),H.appendChild(G);continue}let m=document.createElement("button");m.type="button",m.className="kanuni-datagrid-menu-item",m.setAttribute("role","menuitem"),O.disabled&&(m.disabled=true);let w=y("kanuni-datagrid-menu-label","span");w.textContent=O.label??"",m.appendChild(w),m.addEventListener("click",()=>{O.onSelect?.(o),He();}),H.appendChild(m);}e.parentElement?.appendChild(H),Zr(H,{left:R.right,top:Math.max(0,R.top-4)}),n=H,p.setAttribute("aria-expanded","true"),Qr(H,()=>{i(),p.setAttribute("aria-expanded","false"),p.focus();});};p.addEventListener("mouseenter",S),p.addEventListener("click",S);}else p.addEventListener("mouseenter",i),p.addEventListener("click",()=>{l.onSelect?.(o),He();});a.appendChild(p),e.appendChild(a);});}let na=e=>{let o=e.target.closest(".kanuni-datagrid-row");if(!o||o.classList.contains("kanuni-datagrid-group-row"))return;let n=St(e);if(n?.columnId&&r.notifyCell("cellContextMenu",n.node,n.rowIndex,n.columnId),!ve&&!le&&!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 i={row:n.node.data,node:n.node,rowIndex:n.rowIndex,columnId:n.columnId,selectedKeys:r.getSelectedKeys()},l=(typeof ve=="function"?ve(i):ve)??[],s=[...l,...Ui(i,l.length>0)],a=[...s,...Jr(n.node.key,s.length>0)],p=_i(a.length>0);a.length===0&&p.length===0||mt({left:e.clientX,top:e.clientY},c=>{c.setAttribute("role","menu"),Wn(c,[...a,...p],i);},"kanuni-datagrid-context-menu");};function Ui(e,t){if(!Nt?.onChange||Nt.menu===false)return [];let o=e.columnId;if(!o)return [];let n=e.node.key,i=To(n,o,e.row),l=[];return t&&l.push({separator:true,id:"__note-sep"}),l.push({id:"__note-edit",label:i?h.editNote:h.addNote,onSelect:()=>zi(n,o,e.row,i??"")}),i&&l.push({id:"__note-delete",label:h.deleteNote,onSelect:()=>Nt.onChange?.({rowKey:n,columnId:o,row:e.row,text:null})}),l}function zi(e,t,o,n){let l=(B.querySelector(`[data-row-key="${CSS.escape(String(e))}"] [data-column-id="${CSS.escape(t)}"]`)??B).getBoundingClientRect();queueMicrotask(()=>{mt({left:l.left,top:l.bottom+2},s=>{s.setAttribute("aria-label",h.noteEditorAria);let a=document.createElement("textarea");a.className="kanuni-datagrid-note-input",a.rows=4,a.value=n,a.setAttribute("aria-label",h.noteEditorAria),a.placeholder=h.notePlaceholder,a.setAttribute("data-testid","dg-note-input");let p=()=>{let S=a.value.trim();He(),Nt?.onChange?.({rowKey:e,columnId:t,row:o,text:S===""?null:S});};a.addEventListener("keydown",S=>{S.key==="Enter"&&(S.ctrlKey||S.metaKey)&&(S.preventDefault(),p()),S.key==="Escape"&&(S.preventDefault(),He());});let c=y("kanuni-datagrid-note-actions"),v=document.createElement("button");v.type="button",v.className="kanuni-datagrid-note-cancel",v.textContent=h.cancel,v.addEventListener("click",()=>He());let b=document.createElement("button");b.type="button",b.className="kanuni-datagrid-note-save",b.setAttribute("data-testid","dg-note-save"),b.textContent=h.save,b.addEventListener("click",p),c.append(v,b),s.append(a,c),queueMicrotask(()=>{a.focus(),a.select();});},"kanuni-datagrid-filter-popup kanuni-datagrid-note-editor");});}function Yi(e){Pt!==e&&(Pt=e,e?(B.insertBefore(Ue,re),Po()):Ue.remove());}function ji(e){if(nt!==e){if(nt=e,e){if(ut){let t=tt.isConnected?tt:qe.isConnected?qe:$e;Ie.insertBefore(Oe,t);}else Ie.append(Oe);Mo();}else Oe.remove();tt.style.setProperty("--dg-pinned-gap",String(Ft+(nt&&ut?1:0))),qe.style.setProperty("--dg-pinned-gap",String(Ft+(nt&&ut?1:0)));}}function Fo(e){let t=Zo(B,e);t!==null&&r.setColumnWidth(e,t);}function oa(e,t){let o=r.getColumnModel().getDef(e),n={columnId:e,headerName:o?.headerName??e},i=Jo(n,{controller:r,t:h,groupPanelVisible:Pt,footerVisible:nt,onToggleGroupPanel:()=>Yi(!Pt),onToggleFooter:()=>ji(!nt),onOpenFieldChooser:()=>ra(t),onBestFit:Fo,onBestFitAll:()=>{for(let s of r.getColumnStates())s.visible&&!s.flex&&Fo(s.id);},maxGroupLevels:Ct?Number.POSITIVE_INFINITY:1}),l=typeof Se=="function"?Se(n,i):i;l.length!==0&&mt(t,s=>{s.setAttribute("role","menu"),Wn(s,l,n);},"kanuni-datagrid-context-menu");}function Xi(e,t){let o=r.getColumnModel().getDef(e),n=r.getColumnSummary(e),i={columnId:e,headerName:o?.headerName??o?.field??e},l=[{id:"none",label:h.noTotal,disabled:n===null,onSelect:()=>r.setColumnSummary(e,null)},{id:"sep",separator:true},...allowedSummaryTypes(o?.dataType).map(s=>({id:s,label:co[s],disabled:n?.type===s,onSelect:()=>r.setColumnSummary(e,s)}))];mt(t,s=>{s.setAttribute("role","menu"),Wn(s,l,i);},"kanuni-datagrid-context-menu");}function ra(e){mt(e,t=>{t.setAttribute("role","dialog"),t.setAttribute("aria-label",h.columns);let o=y("kanuni-datagrid-chooser-title");o.textContent=h.columns,t.appendChild(o);let n=()=>r.getColumnStates().filter(S=>!isChromeColumn(S.id)),i=()=>n().filter(S=>!r.getColumnModel().getDef(S.id)?.hideInChooser),l=S=>r.getColumnModel().getDef(S)?.headerName??S,s="";if(i().length>8){let S=document.createElement("input");S.type="search",S.className="kanuni-datagrid-filter-search",S.placeholder=h.search,S.setAttribute("aria-label",h.search),S.addEventListener("input",()=>{s=S.value.trim().toLocaleLowerCase(),b();}),t.appendChild(S);}let a=y("kanuni-datagrid-filter-list");t.appendChild(a);let p=y("kanuni-datagrid-filter-footer"),c=document.createElement("button");c.type="button",c.textContent=h.showAll,c.addEventListener("click",()=>{for(let S of i())S.visible||r.setColumnVisible(S.id,true);b();});let v=document.createElement("button");v.type="button",v.className="kanuni-datagrid-filter-primary",v.textContent=h.ok,v.addEventListener("click",()=>He()),p.append(c,v),t.appendChild(p);function b(){let S=i(),H=n().filter(O=>O.visible).length;a.textContent="";let R=s?S.filter(O=>l(O.id).toLocaleLowerCase().includes(s)):S;if(R.length===0){let O=y("kanuni-datagrid-chooser-empty");O.textContent=h.noData,a.appendChild(O);}for(let O of R){let m=document.createElement("label");m.className="kanuni-datagrid-filter-item";let w=document.createElement("input");w.type="checkbox",w.checked=O.visible,w.disabled=O.visible&&H===1,w.setAttribute("data-column-toggle",O.id),w.addEventListener("change",()=>{r.setColumnVisible(O.id,w.checked),b();});let G=document.createElement("span");G.textContent=l(O.id),m.append(w,G),a.appendChild(m);}c.disabled=H===S.length;}b();},"kanuni-datagrid-filter-popup kanuni-datagrid-column-chooser");}let Vt=null,Ko=null,qn=e=>{Ue.classList.toggle("kanuni-datagrid-group-panel--over",e);};function aa(e,t,o){let n=r.getGroupLevels();if(e===t)return;let i=n.filter(a=>a!==e),l=i.indexOf(t);if(l<0)return;let s=o==="before"?l:l+1;Ko=e,r.groupBy([...i.slice(0,s),e,...i.slice(s)]);}function ia(e,t){let o=r.getGroupLevels(),n=o.indexOf(e),i=n+t;n<0||i<0||i>=o.length||aa(e,o[i],t===-1?"before":"after");}function la(e,t){if(!e)return;let o=r.getGroupLevels();if(o.includes(e))return;let n=Ct?Number.POSITIVE_INFINITY:1;if(o.length>=n){r.groupBy([...o.slice(0,n-1),e]);return}let i=t??o.length;r.groupBy([...o.slice(0,i),e,...o.slice(i)]);}function Po(){if(!Pt)return;Ue.textContent="";let e=r.getGroupLevels();if(e.length===0){let p=y("kanuni-datagrid-group-panel-hint","span");p.textContent=h.groupPanelHint??"Drag a column header here to group by it",Ue.appendChild(p);return}let t=p=>r.getColumnModel().getDef(p)?.headerName??p,o=y("kanuni-datagrid-group-levels"),n=(p,c)=>p<c.top+c.height/2?"before":"after",i=(p,c)=>{for(let v of Ue.querySelectorAll(".kanuni-datagrid-group-level"))v.classList.remove("kanuni-datagrid-group-level--drop-before","kanuni-datagrid-group-level--drop-after");p&&c&&p.classList.add(`kanuni-datagrid-group-level--drop-${c}`);};e.forEach((p,c)=>{let v=y("kanuni-datagrid-group-level");v.style.setProperty("--dg-group-level",String(c)),v.setAttribute("data-group-level",String(c));let b=y("kanuni-datagrid-group-chip");if(b.setAttribute("role","button"),b.tabIndex=0,e.length>1&&(b.draggable=true),b.setAttribute("aria-label",`${fillText(h.groupLevelAria,{n:c+1})}: ${t(p)}`),b.addEventListener("dragstart",R=>{Vt=p,R.dataTransfer&&(R.dataTransfer.effectAllowed="move",R.dataTransfer.setData("text/x-kanuni-column",p));}),b.addEventListener("dragend",()=>{Vt=null,i(null,null);}),b.addEventListener("keydown",R=>{let O=R.ctrlKey||R.metaKey;O&&(R.key==="ArrowUp"||R.key==="ArrowLeft")?(R.preventDefault(),ia(p,-1)):O&&(R.key==="ArrowDown"||R.key==="ArrowRight")?(R.preventDefault(),ia(p,1)):(R.key==="Delete"||R.key==="Backspace")&&(R.preventDefault(),r.groupBy(e.filter(m=>m!==p)));}),v.addEventListener("dragover",R=>{!Vt&&!(R.dataTransfer?.types.includes("text/x-kanuni-column")??false)||(R.preventDefault(),R.stopPropagation(),i(v,n(R.clientY,v.getBoundingClientRect())));}),v.addEventListener("drop",R=>{R.preventDefault(),R.stopPropagation();let O=n(R.clientY,v.getBoundingClientRect());i(null,null),qn(false);let m=Vt;if(Vt=null,m){aa(m,p,O);return}let w=R.dataTransfer?.getData("text/x-kanuni-column");w&&la(w,O==="before"?c:c+1);}),e.length>1){let R=y("kanuni-datagrid-group-chip-level","span");R.textContent=String(c+1),b.appendChild(R);}let S=document.createElement("span");S.textContent=t(p);let H=document.createElement("button");H.type="button",H.setAttribute("aria-label",fillText(h.groupRemoveAria,{column:t(p)})),H.textContent="\xD7",H.addEventListener("click",()=>{r.groupBy(e.filter(R=>R!==p));}),H.draggable=false,b.append(S,H),v.appendChild(b),o.appendChild(v),Ko===p&&(Ko=null,queueMicrotask(()=>b.focus()));}),Ue.appendChild(o);let l=y("kanuni-datagrid-group-panel-actions"),s=document.createElement("button");s.type="button",s.textContent=h.groupExpandAll,s.addEventListener("click",()=>r.expandAllGroups());let a=document.createElement("button");a.type="button",a.textContent=h.groupCollapseAll,a.addEventListener("click",()=>r.collapseAllGroups()),l.append(s,a),Ue.appendChild(l);}if(Pt){let e=t=>t.dataTransfer?.types.includes("text/x-kanuni-column")??false;Ue.addEventListener("dragover",t=>{e(t)&&(t.preventDefault(),qn(true));}),Ue.addEventListener("dragleave",t=>{let o=t.relatedTarget;o&&Ue.contains(o)||qn(false);}),Ue.addEventListener("drop",t=>{qn(false);let o=t.dataTransfer?.getData("text/x-kanuni-column");if(o){if(t.preventDefault(),Vt){Vt=null;return}la(o);}});}let da="";function sa(){if(!N)return;let e=[fillText(h.announceRows,{n:r.getVisibleCount()})],t=r.getSort();if(t.length>0){let i=t.map(l=>{let s=r.getColumnModel().getDef(l.columnId),a=s?.headerName??s?.field??l.columnId,p=l.direction==="desc"?h.announceDescending:h.announceAscending;return `${a} ${p}`}).join(", ");e.push(fillText(h.announceSortedBy,{columns:i}));}let o=r.getSelectedCount();o>0&&e.push(fillText(h.announceSelected,{n:o}));let n=e.join(", ");n!==da&&(da=n,sn.textContent=n);}function ua(){if(!ae)return;Kt.textContent="";let e=describeFilter(r.getEffectiveFilter(),r.getColumnModel(),{...we,labels:{...filterLabels(h),...we?.labels}});if(!e&&ae!=="always"){Kt.style.display="none";return}Kt.style.display="";let t=r.isFilterEnabled();Kt.className=`kanuni-datagrid-filter-panel${t?"":" kanuni-datagrid-filter-panel--suspended"}`;let o=document.createElement("button");o.type="button",o.className="kanuni-datagrid-filter-panel-clear",o.title=h.filterRemove,o.setAttribute("aria-label",h.filterRemove),o.setAttribute("data-testid","dg-filter-panel-clear"),o.disabled=e===null,o.textContent="\xD7",o.addEventListener("click",()=>{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=h.filterToggle,n.setAttribute("aria-label",h.filterToggle),n.setAttribute("data-testid","dg-filter-panel-toggle"),n.addEventListener("change",()=>r.setFilterEnabled(n.checked));let i=y("kanuni-datagrid-filter-panel-text","span");if(i.setAttribute("data-testid","dg-filter-panel-text"),i.textContent=e??h.filterNone,e&&(i.title=e),Kt.append(o,n,i),z){let l=document.createElement("button");l.type="button",l.className="kanuni-datagrid-filter-panel-builder",l.title=h.filterEditBuilder,l.setAttribute("aria-label",h.filterEditBuilder),l.setAttribute("data-testid","dg-filter-panel-builder"),l.textContent="\u25BE",l.addEventListener("click",()=>z()),Kt.appendChild(l);}}let Go=new Set,Ji=r.events.on("cellsFlashed",({rowKeys:e,columnIds:t,duration:o})=>{let n=e.length?e.map(a=>`[data-row-key="${CSS.escape(String(a))}"]`).join(","):".kanuni-datagrid-row",i=t.length?t.map(a=>`[data-column-id="${CSS.escape(a)}"]`).join(","):"[data-column-id]",l=[];fe.querySelectorAll(n).forEach(a=>{a.querySelectorAll(i).forEach(p=>l.push(p));});for(let a of l)a.classList.remove("kanuni-datagrid-cell--flash");B.offsetWidth;for(let a of l)a.classList.add("kanuni-datagrid-cell--flash");let s=setTimeout(()=>{for(let a of l)a.classList.remove("kanuni-datagrid-cell--flash");Go.delete(s);},o);Go.add(s);});function St(e){let t=e.target,o=t.closest(".kanuni-datagrid-row");if(!o||!fe.contains(o))return null;let n=o.getAttribute("data-row-key");if(n===null)return null;let i=r.getRows(),l=i.findIndex(a=>a!==void 0&&String(a.key)===n);if(l===-1)return null;let s=t.closest(".kanuni-datagrid-cell")?.getAttribute("data-column-id")??null;return {node:i[l],rowIndex:l,columnId:s}}let ca=e=>{let t=St(e);t&&(K?.(t.node),r.notifyRow("rowClicked",t.node,t.rowIndex),t.columnId&&r.notifyCell("cellClicked",t.node,t.rowIndex,t.columnId));},pa=e=>{let t=St(e);if(t){if(Cr){let o=Wo(t,true);o&&Cr(o);}Ce?.(t.node),r.notifyRow("rowDoubleClicked",t.node,t.rowIndex),t.columnId&&r.notifyCell("cellDoubleClicked",t.node,t.rowIndex,t.columnId);}};fe.addEventListener("click",ca),fe.addEventListener("dblclick",pa);function Qi(e){let t=0,o=Ae.querySelector(`[data-column-id="${CSS.escape(e)}"]`);o&&(t=o.scrollWidth),fe.querySelectorAll(`[data-column-id="${CSS.escape(e)}"]`).forEach(n=>{n.scrollWidth>t&&(t=n.scrollWidth);}),t>0&&r.setColumnWidth(e,t+12,true);}function Zi(){if(Te)for(let e of Ae.querySelectorAll('[role="columnheader"][data-column-id]')){let t=Te(e.getAttribute("data-column-id"))??"",o=e.dataset.slotClass??"";if(t!==o){for(let n of o.split(" "))n&&e.classList.remove(n);for(let n of t.split(" "))n&&e.classList.add(n);e.dataset.slotClass=t;}}}function el(){if($)for(let e of Ae.querySelectorAll(".kanuni-datagrid-filter-button")){let t=e.parentElement?.getAttribute("data-column-id");t&&e.classList.toggle("kanuni-datagrid-filter-button--active",r.getColumnFilter(t)!==null);}}let $o=false,fa=false,en=null;function Un(){en!==null&&(clearTimeout(en),en=null);}function zn(e){dn.style.display=e?"":"none";}function Yn(){let e=r.getOverlay();if(Ln.style.display=e==="noRows"?"":"none",uo===false){Un(),zn(false);return}if(!(e==="loading"&&($o||!fa))){Un(),zn(false);return}if($o||yr<=0){Un(),zn(true);return}en!==null||dn.style.display===""||(en=setTimeout(()=>{en=null,Be||zn(true);},yr));}let ga=false,Oo=false,Bo=false,Vo=false,Be=false,_o=new RowMotion;function tl(){if(Oo=false,!Be){if(Bo)Bo=false,Vo&&(Vo=false,ft++),Eo(),ko(),Lo(),Bn();else {let e=ze;Eo(),ze!==e?(ft++,ko(),Lo(),Bn()):r.getPinnedRows("top").length+r.getPinnedRows("bottom").length>0&&Bn();}Gn(),r.getAnimateRows()&&_o.play(fe),Gr(),Mo(),Xr(),el(),Zi(),Po(),ua(),sa(),Yn();}}function jn(e){Be||(e&&(Bo=true),!Oo&&(Oo=true,queueMicrotask(tl)));}let nl=[...J?[r.events.on("focusedRowChanged",e=>J({rowKey:e.rowKey,row:e.row}))]:[],...Nd.map(e=>r.events.on(e,()=>jn(true))),...Id.map(e=>r.events.on(e,()=>{Vo=true;})),...Hd.map(e=>r.events.on(e,()=>jn(false))),r.events.on("filterChanged",()=>$i()),...["sortChanged","filterChanged","groupChanged","dataUpdated"].map(e=>r.events.on(e,()=>{r.getAnimateRows()&&_o.capture(fe);})),r.events.on("rowPinningChanged",()=>{Be||(Bi(),jn(true));}),r.events.on("overlayChanged",e=>{$o=e.manual===true&&e.overlay==="loading",Be||Yn();}),r.events.on("busyChanged",e=>{fa=e.background===true,Be||Yn();}),r.events.on("paginationChanged",()=>{Be||jn(false);}),r.events.on("bodyScroll",()=>{Be||Yr();}),r.events.on("cellsRefreshed",()=>{Be||Vr();}),r.events.on("scrollRequested",e=>{if(Be)return;e.scrollTop!==void 0&&(re.scrollTop=e.scrollTop),e.scrollLeft!==void 0&&(re.scrollLeft=e.scrollLeft),r.setScroll(re.scrollTop,Math.abs(re.scrollLeft));let t=e.scrollTop;t===void 0||Math.abs(re.scrollTop-t)<=1||setTimeout(()=>{Be||Math.abs(re.scrollTop-t)<=1||(re.scrollTop=t,r.setScroll(re.scrollTop,Math.abs(re.scrollLeft)));},0);}),...Me==="fitGrid"?[r.events.on("gridSizeChanged",()=>r.sizeColumnsToFit())]:[],...Me==="fitCells"?[r.events.on("firstDataRendered",()=>{Be||ga||(ga=true,queueMicrotask(()=>{if(!Be)for(let e of r.getColumnStates())e.visible&&!e.flex&&Fo(e.id);}));})]:[]];Me==="fitGrid"&&r.sizeColumnsToFit();function Wo(e,t=false){if(!e.columnId||e.node.kind!=="data"&&!(t&&e.node.kind==="group"))return null;let o=lt.find(n=>n.id===e.columnId);return o?{node:e.node,columnId:e.columnId,rowIndex:e.rowIndex,columnIndex:o.visualIndex,value:e.node.kind==="data"?r.getColumnModel().getCellValue(e.node.data,o.id):void 0}:null}let ma=e=>{let t=e.target;if(ye){let a=St(e),p=a?Wo(a):null;p&&ye(p,e);}let o=t.closest(".kanuni-datagrid-row");if(!o||o.classList.contains("kanuni-datagrid-group-row"))return;let n=o.getAttribute("data-row-key");if(n===null)return;let i=r.getRows().find(a=>a!==void 0&&String(a.key)===n);if(!i||i.kind!=="data")return;r.handleRowClick(i.key,{ctrlKey:e.ctrlKey||vi&&!e.shiftKey,metaKey:e.metaKey,shiftKey:e.shiftKey});let l=t.closest(".kanuni-datagrid-cell"),s=l?lt.find(a=>l.id.endsWith(`-${a.id}`))?.id:void 0;s&&r.focusCell(i.key,s);},ba=e=>{if(!Ne)return;let o=e.target.closest(".kanuni-datagrid-cell");if(!o||!fe.contains(o)||e.relatedTarget?.closest?.(".kanuni-datagrid-cell")===o)return;let i=St(e),l=i?Wo(i):null;l&&Ne(l,e);};if(fe.addEventListener("mousedown",ma),fe.addEventListener("contextmenu",na),Ne&&fe.addEventListener("mouseover",ba),cn&&($e.addEventListener("dragstart",Ei),$e.addEventListener("dragover",ki),$e.addEventListener("drop",Ri),$e.addEventListener("dragend",xi),$e.addEventListener("dragleave",Ti)),B.tabIndex=0,It){Ze=ir({controller:r,element:B},_e,h,{surfaceClass:()=>ro(u).replace("kanuni-datagrid-root","").trim(),barHost:B},{isColumnEditable:t=>Ya(r.getColumnModel().getDef(t),t)});let e=B.querySelector(':scope > [data-testid="dg-edit-bar"]');e&&B.insertBefore(e,B.firstChild),Ze.engine.setSavedDuration(rt?.savedDuration??0);}Vr();let wa=e=>{let t=Ze;if(!t||an)return;let o=e.target;if(!o||!(o===B||o===re||fe.contains(o)))return;let n=o.tagName;n==="INPUT"||n==="TEXTAREA"||n==="SELECT"||o.isContentEditable||t.handleKeyDown(e)&&e.stopImmediatePropagation();};It&&B.addEventListener("keydown",wa,true);let ya=e=>{let t=e.target;if(t.tagName==="INPUT"||t.tagName==="TEXTAREA"||t.isContentEditable||ot.contains(t)||ct.contains(t)||t.closest?.('[data-testid="dg-edit-form"], [data-testid="dg-edit-bar"], [data-testid="dg-row-message"]')||Ae.contains(t))return;if((ve||le||r.isRowPinningEnabled())&&(e.key==="ContextMenu"||e.key==="F10"&&e.shiftKey)){let l=r.getFocus(),s=l?fe.querySelector(`[id="${CSS.escape(`${u.gridId}-cell-${String(l.rowKey)}-${l.columnId}`)}"]`):null;if(s){let a=s.getBoundingClientRect();s.dispatchEvent(new MouseEvent("contextmenu",{bubbles:true,cancelable:true,clientX:a.left+16,clientY:a.bottom})),e.preventDefault();}return}let o=resolveGridCommand({key:e.key,ctrlKey:e.ctrlKey,metaKey:e.metaKey,shiftKey:e.shiftKey,altKey:e.altKey});if(!o)return;if(o.type==="copy"){_n();return}if(o.type==="activate"){if(Ce){let l=r.getFocus(),s=l?r.getRows().find(a=>a!==void 0&&a.key===l.rowKey):void 0;s&&Ce(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(p=>p.state.id===r.getFocus()?.columnId),a=r.ensureVisible(n.rowIndex,s===-1?void 0:s);a&&(a.scrollTop!==void 0&&(re.scrollTop=a.scrollTop),a.scrollLeft!==void 0&&(re.scrollLeft=a.scrollLeft),r.setScroll(re.scrollTop,Math.abs(re.scrollLeft)));}let i=r.getFocus();B.setAttribute("aria-activedescendant",i?`${u.gridId}-cell-${String(i.rowKey)}-${i.columnId}`:"");};B.addEventListener("keydown",ya);let ol=mr?attachStateStoring(r,mr):null,ha=typeof et=="object"?et.delay??400:400,Ca=et!==false&&!(typeof et=="object"&&et.enabled===false),rl=typeof et=="object"?et.showOnTruncation!==false:true,va=typeof et=="object"?et.trigger??"hover":"hover",Ea=Ca&&va!=="focus",qo=Ca&&va!=="hover",Xn=typeof et=="object"&&et.interactive===true,ka=`${u.gridId}-tooltip`,_t=null,Ye=null,je=null,Wt=null,Uo=null;function Lt(){Ye&&clearTimeout(Ye),Ye=null,Wt=null,zo();}function zo(){je&&clearTimeout(je),je=null,Uo?.removeAttribute("aria-describedby"),Uo=null,_t?.remove(),_t=null;}let al=e=>e.scrollWidth>e.clientWidth+1||e.scrollHeight>e.clientHeight+1;function il(e){let o=e.closest(".kanuni-datagrid-row")?.getAttribute("data-row-key"),n=lt.find(c=>e.id.endsWith(`-${c.id}`));if(!o||!n)return null;let i=r.getRows().find(c=>c!==void 0&&String(c.key)===o);if(!i||i.kind!=="data")return null;let l=n.def,s=To(i.key,n.id,i.data);if(s)return s;let a={value:r.getColumnModel().getCellValue(i.data,n.id),row:i.data,node:i,column:l},p=l.renderTooltip;if(p){let c=p(a);return c===void 0||c===""?null:c}if(typeof l.tooltip=="function")return l.tooltip(a)??null;if(typeof l.tooltip=="string")return l.tooltip;if(l.tooltipField){let c=i.data[l.tooltipField];return c==null?null:String(c)}return rl&&al(e)?e.textContent??null:null}function Ra(e,t){let o=il(e);if(o===null||o==="")return;zo();let n=e.getBoundingClientRect();_t=y(`${ro(u)} kanuni-datagrid-portal`);let i=y(Xn?"kanuni-datagrid-tooltip kanuni-datagrid-tooltip--interactive":"kanuni-datagrid-tooltip");i.id=ka,i.setAttribute("role","tooltip"),typeof o=="string"?i.textContent=o:i.appendChild(o),i.style.position="fixed",i.style.left=`${n.left}px`,i.style.top=`${n.bottom+4}px`,i.style.zIndex="1001",Xn&&(i.addEventListener("pointerenter",()=>{je&&clearTimeout(je),je=null,Ye&&clearTimeout(Ye),Ye=null;}),i.addEventListener("pointerleave",Lt)),_t.appendChild(i),portalTarget(u.portalContainer).appendChild(markPortal(_t,u.portalContainer,"tooltip")),t&&(e.setAttribute("aria-describedby",ka),Uo=e);}let xa=e=>{if(!Ea)return;let t=e.target.closest(".kanuni-datagrid-cell");if(t&&t===Wt){je&&clearTimeout(je),je=null;return}Xn&&_t&&je?(Ye&&clearTimeout(Ye),Ye=null):Lt(),!(!t||!fe.contains(t))&&(Wt=t,Ye=setTimeout(()=>{Ye=null,!(Wt!==t||!t.isConnected)&&Ra(t,false);},ha));},Ta=e=>{if(!Ea)return;let t=e.relatedTarget;if(!(Wt&&t&&Wt.contains(t))){if(!Xn||!_t){Lt();return}je&&clearTimeout(je),je=setTimeout(zo,150);}};B.addEventListener("pointerover",xa),B.addEventListener("pointerout",Ta),re.addEventListener("scroll",Lt,{passive:true});let Sa=-1/0,La=()=>{Sa=Date.now();};qo&&B.addEventListener("pointerdown",La);let ll=qo?r.events.on("focusChanged",()=>{Lt();let e=r.getFocus();e&&(Ye=setTimeout(()=>{if(Ye=null,!B.contains(document.activeElement)&&Date.now()-Sa>1500)return;let t=document.getElementById(`${u.gridId}-cell-${String(e.rowKey)}-${e.columnId}`);!t||!fe.contains(t)||(Wt=t,Ra(t,true));},ha));}):null,Aa=e=>{e.key==="Escape"&&Lt();};qo&&B.addEventListener("keydown",Aa);let Ma=()=>{if(r.setScroll(re.scrollTop,Math.abs(re.scrollLeft)),At)for(let e of Da())e.scroller.scrollLeft!==re.scrollLeft&&(e.scroller.scrollLeft=re.scrollLeft);};re.addEventListener("scroll",Ma,{passive:true});let At=null,Da=()=>{if(!ue||!At)return [];let e=vn.get(ue);return e?[...e].filter(t=>t!==At):[]},Na=null;if(ue){At={controller:r,scroller:re};let e=vn.get(ue)??new Set;e.add(At),vn.set(ue,e),Na=r.events.on("columnStateChanged",()=>{if(pr.has(ue))return;let t=Da();if(t.length===0)return;let o=r.getColumnStates();pr.add(ue);try{for(let n of t)n.controller.applyColumnStates(o);}finally{pr.delete(ue);}});}let Ia=()=>{r.setViewportSize(re.clientWidth,re.clientHeight),rn&&Ci(re.clientWidth),re.style.setProperty("--dg-viewport-width",`${re.clientWidth}px`);let e=$e.getBoundingClientRect(),t=Ie.getBoundingClientRect();r.setChromeOffsets(e.top-t.top,t.bottom-e.bottom),calibrateMaxScrollOffset(re,r);};Ia();let Jn=null;typeof ResizeObserver<"u"&&(Jn=new ResizeObserver(Ia),Jn.observe(re),Jn.observe(Ie)),Eo(),ko(),Lo(),Oi(),Bn(),Gn(),Mo(),Xr(),Po(),ua(),sa(),Yn(),fn?.always&&Co(true);let Yo=null;if(Re){let e=null,t=()=>{let o=Ae.offsetHeight,n=o>0?`${o}px`:null;n!==e&&(e=n,n?Ie.style.setProperty("--dg-header-actual",n):Ie.style.removeProperty("--dg-header-actual"));};t(),typeof ResizeObserver<"u"&&(Yo=new ResizeObserver(t),Yo.observe(Ae));}return xr=true,{controller:r,element:B,setData:e=>r.setData(e),setColumns:e=>r.setColumns(e),destroy:()=>{if(!Be){if(Be=true,nl.forEach(e=>e()),mn.forEach(e=>e()),mn=[],Jn?.disconnect(),Yo?.disconnect(),Pr?.(),Jt&&(Jt=false,zt--,zt<=0&&(zt=0,document.documentElement.classList.remove("kanuni-datagrid-printing"))),Na?.(),ue&&At){let e=vn.get(ue);e?.delete(At),e&&e.size===0&&vn.delete(ue),At=null;}re.removeEventListener("scroll",Ma),fe.removeEventListener("mousedown",ma),fe.removeEventListener("contextmenu",na),tt.removeEventListener("contextmenu",Vn),_o.dispose(),vt.removeEventListener("contextmenu",Vn),Ne&&fe.removeEventListener("mouseover",ba),fe.removeEventListener("click",ca),fe.removeEventListener("dblclick",pa),Ji(),Un();for(let e of Go)clearTimeout(e);B.removeEventListener("keydown",ya),B.removeEventListener("keydown",wa,true),Ze?.dispose(),Ze=null,B.removeEventListener("pointerover",xa),B.removeEventListener("pointerout",Ta),B.removeEventListener("keydown",Aa),B.removeEventListener("pointerdown",La),ll?.(),re.removeEventListener("scroll",Lt),Lt(),ol?.(),He(false),r.dispose(),B.remove();}}}}function Vd(d){let u=document.createElement("button");u.type="button";let f={...d},D=()=>{let{icon:E,label:C,shortcut:M,disabledReason:A,showLabel:x,testId:Z}=f;if(u.className=`kanuni-datagrid-app-button${x?"":" kanuni-datagrid-toolbar-icon-button"}`,u.textContent="",typeof E=="string"?u.insertAdjacentHTML("afterbegin",E):u.appendChild(E),x){let F=document.createElement("span");F.textContent=C,u.appendChild(F),u.removeAttribute("aria-label");}else u.setAttribute("aria-label",C);let U=M?`${C} (${M})`:C;u.title=A!==void 0?`${U} \u2014 ${A}`:U,M?u.setAttribute("aria-keyshortcuts",M):u.removeAttribute("aria-keyshortcuts"),A!==void 0?(u.setAttribute("aria-disabled","true"),u.setAttribute("aria-description",A)):(u.removeAttribute("aria-disabled"),u.removeAttribute("aria-description")),Z&&u.setAttribute("data-testid",Z);};return u.addEventListener("click",E=>{if(f.disabledReason!==void 0){E.preventDefault();return}f.onClick?.();}),u.update=E=>{f={...f,...E},D();},D(),u}export{ao as CHECKBOX_COLUMN_WIDTH,kn as DETAIL_COLUMN_WIDTH,ii as PRINT_MAX_ROWS,io as ROW_DRAG_MIME,En as ROW_NUMBER_COLUMN_WIDTH,ir as attachCellEditing,nr as buildCellEditor,qt as buildDateEditor,rr as buildEditForm,Jo as buildHeaderMenu,Bd as createGrid,Zo as measureBestFitWidth,or as openConfirmDialog,Vd as toolbarButton};