@alaarab/ogrid-vue 2.6.0 → 2.6.1

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/esm/index.js CHANGED
@@ -1 +1 @@
1
- import {injectGlobalStyles,Z_INDEX,getStatusBarParts,measureRange,flattenColumns,getMultiSelectFilterFields,deriveFilterOptionsFromData,processClientSideData,processClientSideDataAsync,validateColumns,validateRowIds,computeRowSelectionState,parseTsvClipboard,applyPastedValues,applyCutClear,normalizeSelectionRange,applyCellDeletion,computeTabNavigation,computeArrowNavigation,buildCellIndex,applyFillValues,UndoRedoStack,CHECKBOX_COLUMN_WIDTH,estimateHeaderMinWidth,CELL_PADDING,measureColumnContentWidth,resolveResponsiveConfig,applyResponsiveHiding,DEFAULT_MIN_COLUMN_WIDTH,computeAggregations,getDataGridStatusBarConfig,formatDateForDisplay,DEFAULT_DATE_FORMAT,getPinStateForColumn,validateVirtualScrollConfig,computeVisibleRange,computeTotalHeight,computeVisibleColumnRange,getScrollTopForRow,partitionColumnsForVirtualization,buildGroupedRows,formatCellReference,buildHeaderRows,indexToColumnLetter,ROW_NUMBER_COLUMN_ID,ROW_NUMBER_COLUMN_WIDTH,getHeaderFilterConfig,isGroupHeader,getDateInputPlaceholder,getCellRenderDescriptor,buildInlineEditorProps,buildPopoverEditorProps,resolveCellDisplayContent,resolveCellStyle,handleBooleanCellPointerDown,parseUserInputDate,rangesEqual,formatSelectionAsTsv,calculateDropTarget,reorderColumnArray,parseValue,getCellValue,computeNextSortState,mergeFilter,columnLetterToIndex,applyRangeRowSelection,ROW_NUMBER_COLUMN_MIN_WIDTH,createGridDataAccessor,computeAutoScrollSpeed}from'@alaarab/ogrid-core';export{AUTOSIZE_EXTRA_PX,AUTOSIZE_MAX_PX,CELL_PADDING,CHECKBOX_COLUMN_WIDTH,COLUMN_HEADER_MENU_ITEMS,CellDescriptorCache,DEFAULT_DEBOUNCE_MS,DEFAULT_MIN_COLUMN_WIDTH,GRID_BORDER_RADIUS,GRID_CONTEXT_MENU_ITEMS,MAX_PAGE_BUTTONS,PAGE_SIZE_OPTIONS,PEOPLE_SEARCH_DEBOUNCE_MS,RESPONSIVE_BREAKPOINTS,ROW_NUMBER_COLUMN_ID,ROW_NUMBER_COLUMN_MIN_WIDTH,ROW_NUMBER_COLUMN_WIDTH,SIDEBAR_TRANSITION_MS,UndoRedoStack,Z_INDEX,applyCellDeletion,applyCutClear,applyFillValues,applyPastedValues,applyRangeRowSelection,applyResponsiveHiding,areGridRowPropsEqual,booleanParser,buildCellIndex,buildCsvHeader,buildCsvRows,buildGroupedRows,buildHeaderRows,buildInlineEditorProps,buildPopoverEditorProps,calculateDropTarget,clampSelectionToBounds,columnLetterToIndex,computeAggregations,computeArrowNavigation,computeAutoScrollSpeed,computeNextSortState,computeRowSelectionState,computeTabNavigation,computeTotalHeight,computeVisibleColumnRange,computeVisibleRange,createGridDataAccessor,createSortFilterWorker,currencyParser,dateParser,debounce,deriveFilterOptionsFromData,emailParser,escapeCsvValue,exportToCsv,extractValueMatrix,findCtrlArrowTarget,flattenColumns,formatCellReference,formatCellValueForTsv,formatSelectionAsTsv,formatShortcut,getCellRenderDescriptor,getCellValue,getColumnHeaderMenuItems,getContextMenuHandlers,getDataGridStatusBarConfig,getFilterField,getHeaderFilterConfig,getMultiSelectFilterFields,getPaginationViewModel,getPinStateForColumn,getResponsiveHiddenColumns,getScrollTopForRow,getStatusBarParts,handleBooleanCellPointerDown,indexToColumnLetter,injectGlobalStyles,isColumnEditable,isFilterConfig,isGroupHeader,isInSelectionRange,isRowInRange,measureColumnContentWidth,measureRange,mergeFilter,normalizeSelectionRange,numberParser,parseTsvClipboard,parseValue,partitionColumnsForVirtualization,processClientSideData,processClientSideDataAsync,rangesEqual,reorderColumnArray,resolveCellDisplayContent,resolveCellStyle,resolveResponsiveConfig,terminateSortFilterWorker,toUserLike,triggerCsvDownload,validateColumns,validateRowIds,validateVirtualScrollConfig}from'@alaarab/ogrid-core';import {FORMULA_BAR_STYLES,handleFormulaBarKeyDown,FORMULA_REF_COLORS,deriveFormulaBarText,extractFormulaReferences,processFormulaBarCommit,FormulaEngine}from'@alaarab/ogrid-core/formula';export{CIRC_ERROR,DIV_ZERO_ERROR,DependencyGraph,FORMULA_BAR_CSS,FORMULA_BAR_STYLES,FORMULA_REF_COLORS,FormulaEngine,FormulaError,FormulaEvaluator,GENERAL_ERROR,NAME_ERROR,NA_ERROR,REF_ERROR,VALUE_ERROR,adjustFormulaReferences,canInsertReference,createBuiltInFunctions,deriveFormulaBarText,extractFormulaReferences,flattenArgs,formatAddress,formulaToString,fromCellKey,handleFormulaBarKeyDown,insertReferenceAtCursor,isFormulaError,parse,parseCellRef,parseRange,processFormulaBarCommit,toBoolean,toCellKey,toNumber,tokenize}from'@alaarab/ogrid-core/formula';import {defineComponent,ref,computed,onMounted,watch,toValue,onUnmounted,h,shallowRef,isRef,triggerRef,nextTick,Teleport,isReadonly,unref,customRef}from'vue';var Vn=defineComponent({name:"MarchingAntsOverlay",props:{containerRef:{type:Object,required:true},selectionRange:{type:Object,default:null},copyRange:{type:Object,default:null},cutRange:{type:Object,default:null},colOffset:{type:Number,required:true},items:{type:Array,required:true},visibleColumns:{type:Array,default:void 0},columnSizingOverrides:{type:Object,required:true},columnOrder:{type:Array,default:void 0}},setup(e){let o=ref(null),t=ref(null),n=0,i,m=computed(()=>e.copyRange??e.cutRange),u=()=>{let d=toValue(e.containerRef);if(!d){o.value=null,t.value=null;return}o.value=e.selectionRange?measureRange(d,e.selectionRange,e.colOffset):null,t.value=m.value?measureRange(d,m.value,e.colOffset):null;};onMounted(()=>{injectGlobalStyles("ogrid-marching-ants-keyframes","@keyframes ogrid-marching-ants{to{stroke-dashoffset:-8}}");}),watch([()=>e.selectionRange,m,()=>toValue(e.containerRef),()=>e.items,()=>e.visibleColumns,()=>e.columnSizingOverrides,()=>e.columnOrder],()=>{if(!e.selectionRange&&!m.value){o.value=null,t.value=null;return}n=requestAnimationFrame(u);let d=toValue(e.containerRef);d&&(i?.disconnect(),i=new ResizeObserver(u),i.observe(d));},{immediate:true}),onUnmounted(()=>{cancelAnimationFrame(n),i?.disconnect();});let a=computed(()=>{let d=e.selectionRange,p=m.value;return d!=null&&p!=null&&d.startRow===p.startRow&&d.startCol===p.startCol&&d.endRow===p.endRow&&d.endCol===p.endCol});return ()=>!o.value&&!t.value?null:h("div",{style:{position:"relative"}},[o.value&&!a.value&&!(e.selectionRange&&e.selectionRange.startRow===e.selectionRange.endRow&&e.selectionRange.startCol===e.selectionRange.endCol)?h("svg",{style:{position:"absolute",top:`${o.value.top}px`,left:`${o.value.left}px`,width:`${o.value.width}px`,height:`${o.value.height}px`,pointerEvents:"none",zIndex:Z_INDEX.SELECTION_OVERLAY,overflow:"visible"},"aria-hidden":"true"},[h("rect",{x:1,y:1,width:Math.max(0,o.value.width-2),height:Math.max(0,o.value.height-2),fill:"none",stroke:"var(--ogrid-selection, #217346)","stroke-width":2})]):null,t.value?h("svg",{style:{position:"absolute",top:`${t.value.top}px`,left:`${t.value.left}px`,width:`${t.value.width}px`,height:`${t.value.height}px`,pointerEvents:"none",zIndex:Z_INDEX.CLIPBOARD_OVERLAY,overflow:"visible"},"aria-hidden":"true"},[h("rect",{x:1,y:1,width:Math.max(0,t.value.width-2),height:Math.max(0,t.value.height-2),fill:"none",stroke:"var(--ogrid-selection, #217346)","stroke-width":2,"stroke-dasharray":"4 4",style:{animation:"ogrid-marching-ants 0.5s linear infinite"}})]):null])}});var zn=defineComponent({name:"StatusBar",props:{totalCount:{type:Number,required:true},filteredCount:{type:Number,default:void 0},selectedCount:{type:Number,default:void 0},selectedCellCount:{type:Number,default:void 0},aggregation:{type:Object,default:void 0},suppressRowCount:{type:Boolean,default:false}},setup(e){return ()=>{let o=getStatusBarParts(e);return h("div",{role:"status","aria-live":"polite",style:{marginTop:"auto",padding:"6px 12px",borderTop:"1px solid var(--ogrid-border, rgba(0,0,0,0.12))",backgroundColor:"var(--ogrid-header-bg, rgba(0,0,0,0.04))",display:"flex",alignItems:"center",gap:"16px",fontSize:"0.875rem",lineHeight:"20px",minHeight:"33px",boxSizing:"border-box"}},o.map((t,n)=>h("span",{key:t.key,style:{display:"inline-flex",alignItems:"center",gap:"4px",...n<o.length-1?{marginRight:"16px",borderRight:"1px solid var(--ogrid-border, rgba(0,0,0,0.12))",paddingRight:"16px"}:{}}},[h("span",{style:{color:"var(--ogrid-fg-secondary, rgba(0,0,0,0.6))"}},t.label),h("span",{style:{fontWeight:"600"}},t.value.toLocaleString())])))}}});var Nn=defineComponent({name:"FormulaBar",props:{cellRef:{type:[String,null],default:null},formulaText:{type:String,required:true},isEditing:{type:Boolean,required:true}},emits:["inputChange","commit","cancel","startEditing"],setup(e,{emit:o}){let t=ref(null);return watch(()=>e.isEditing,n=>{n&&t.value&&t.value.focus();}),()=>h("div",{style:FORMULA_BAR_STYLES.bar,role:"toolbar","aria-label":"Formula bar"},[h("div",{style:FORMULA_BAR_STYLES.nameBox,"aria-label":"Active cell reference"},e.cellRef??"\u2014"),h("div",{style:FORMULA_BAR_STYLES.fxLabel,"aria-hidden":"true"},"fx"),h("input",{ref:t,type:"text",style:FORMULA_BAR_STYLES.input,value:e.formulaText,readonly:!e.isEditing,onInput:n=>o("inputChange",n.target.value),onKeydown:n=>handleFormulaBarKeyDown(n.key,()=>n.preventDefault(),()=>o("commit"),()=>o("cancel")),onClick:()=>{e.isEditing||o("startEditing");},onDblclick:()=>{e.isEditing||o("startEditing");},"aria-label":"Formula input",spellcheck:false,autocomplete:"off"})])}});var Cl={display:"flex",alignItems:"center",borderTop:"1px solid var(--ogrid-border, #e0e0e0)",background:"var(--ogrid-header-bg, #f5f5f5)",minHeight:"30px",overflowX:"auto",overflowY:"hidden",gap:"0",fontSize:"12px"},hl={background:"none",border:"none",cursor:"pointer",padding:"4px 10px",fontSize:"16px",lineHeight:"22px",color:"var(--ogrid-fg-secondary, #666)",flexShrink:0},ho={background:"none",border:"none",borderBottom:"2px solid transparent",cursor:"pointer",padding:"4px 16px",fontSize:"12px",lineHeight:"22px",color:"var(--ogrid-fg, #242424)",whiteSpace:"nowrap",position:"relative"},Rl={...ho,fontWeight:600,borderBottomColor:"var(--ogrid-primary, #217346)",background:"var(--ogrid-bg, #fff)"},Wn=defineComponent({name:"SheetTabs",props:{sheets:{type:Array,required:true},activeSheet:{type:String,required:true},showAddButton:{type:Boolean,default:false}},emits:["sheetChange","sheetAdd"],setup(e,{emit:o}){return ()=>h("div",{style:Cl,role:"tablist","aria-label":"Sheet tabs"},[e.showAddButton?h("button",{type:"button",style:hl,onClick:()=>o("sheetAdd"),title:"Add sheet","aria-label":"Add sheet"},"+"):null,...e.sheets.map(t=>{let n=t.id===e.activeSheet,i=n?Rl:ho,m=n&&t.color?{...i,borderBottomColor:t.color}:i;return h("button",{key:t.id,type:"button",role:"tab","aria-selected":n,style:m,onClick:()=>o("sheetChange",t.id)},t.name)})])}});function wl(e,o,t){let n=o.col+t,i=(o.endCol??o.col)+t,m=o.endRow??o.row,u=e.querySelector(`[data-row-index="${o.row}"][data-col-index="${n}"]`),a=e.querySelector(`[data-row-index="${m}"][data-col-index="${i}"]`);if(!u||!a)return null;let d=e.getBoundingClientRect(),p=u.getBoundingClientRect(),v=a.getBoundingClientRect();return {top:Math.round(p.top-d.top),left:Math.round(p.left-d.left),width:Math.round(v.right-p.left),height:Math.round(v.bottom-p.top),color:FORMULA_REF_COLORS[o.colorIndex%FORMULA_REF_COLORS.length]}}var Kn=defineComponent({name:"FormulaRefOverlay",props:{containerEl:{type:Object,default:null},references:{type:Array,required:true},colOffset:{type:Number,required:true}},setup(e){let o=ref([]),t=0;function n(){let i=e.containerEl,m=e.references;if(!i||m.length===0){o.value=[];return}let u=[];for(let a of m){let d=wl(i,a,e.colOffset);d&&u.push(d);}o.value=u;}return watch(()=>[e.references,e.containerEl,e.colOffset],()=>{if(cancelAnimationFrame(t),!e.containerEl||e.references.length===0){o.value=[];return}t=requestAnimationFrame(n);},{immediate:true}),()=>o.value.length===0?null:o.value.map((i,m)=>h("svg",{key:m,style:{position:"absolute",top:`${i.top}px`,left:`${i.left}px`,width:`${i.width}px`,height:`${i.height}px`,pointerEvents:"none",zIndex:3,overflow:"visible"},"aria-hidden":"true"},[h("rect",{x:"1",y:"1",width:Math.max(0,i.width-2),height:Math.max(0,i.height-2),fill:"none",stroke:i.color,"stroke-width":"2",style:"shape-rendering: crispEdges"})]))}});function $t(e,o){let t=ref({}),n=ref({}),i=computed(()=>[...o.value].sort().join(",")),m=async()=>{let u=e.value,a=o.value,d="fetchFilterOptions"in u&&typeof u.fetchFilterOptions=="function"?u.fetchFilterOptions.bind(u):void 0;if(!d){t.value={},n.value={};return}let p={};a.forEach(s=>{p[s]=true;}),n.value=p;let v={};await Promise.all(a.map(async s=>{try{v[s]=await d(s);}catch{v[s]=[];}})),t.value=v,n.value={};};return watch([e,i],()=>{m().catch(()=>{});},{immediate:true}),{filterOptions:t,loadingOptions:n}}function rt(e){let o=unref(e);return customRef((t,n)=>({get(){return isRef(e)&&(o=e.value),o},set(i){o=i,n();}}))}function yo(e){let{formulas:o,items:t,flatColumns:n,initialFormulas:i,onFormulaRecalc:m,formulaFunctions:u,namedRanges:a,sheets:d}=e,p=rt(t),v=rt(n),s=rt(m),c=shallowRef(null),C=false,r=computed(()=>o?.value??false);function g(){return createGridDataAccessor(p.value,v.value)}watch(r,S=>{if(S&&!c.value){if(c.value=new FormulaEngine({customFunctions:u,namedRanges:a}),d)for(let[w,E]of Object.entries(d))c.value.registerSheet(w,E);if(i&&!C){C=true;let w=g(),E=c.value.loadFormulas(i,w);E.updatedCells.length>0&&s.value?.(E);}}else !S&&c.value&&(c.value=null);},{immediate:true});function R(S,w){return c.value?.getValue(S,w)}function T(S,w){return c.value?.hasFormula(S,w)??false}function I(S,w){return c.value?.getFormula(S,w)}function y(S,w,E){if(!c.value)return;let O=g(),ee=c.value.setFormula(S,w,E,O);ee.updatedCells.length>0&&s.value?.(ee);}function h(S,w){if(!c.value)return;let E=g(),O=c.value.onCellChanged(S,w,E);O.updatedCells.length>0&&s.value?.(O);}function b(S,w){return c.value?.getPrecedents(S,w)??[]}function P(S,w){return c.value?.getDependents(S,w)??[]}function D(S,w){return c.value?.getAuditTrail(S,w)??null}return {enabled:r,getFormulaValue:R,hasFormula:T,getFormula:I,setFormula:y,onCellChanged:h,getPrecedents:b,getDependents:P,getAuditTrail:D}}function qt(e){let{activeCol:o,activeRow:t,activeCellRef:n,getFormula:i,getRawValue:m,setFormula:u,onCellValueChanged:a}=e,d=ref(false),p=ref(""),v=ref(false),s=computed(()=>deriveFormulaBarText(o.value,t.value,i,m));watch([o,t],()=>{d.value=false,v.value=false;});let c=()=>{p.value=s.value,d.value=true,v.value=true;},C=I=>{p.value=I;},r=()=>{let I=o.value,y=t.value;I==null||y==null||!u||(processFormulaBarCommit(p.value,I,y,u,a),d.value=false,v.value=false);},g=()=>{d.value=false,v.value=false,p.value="";},R=computed(()=>d.value?p.value:s.value),T=computed(()=>extractFormulaReferences(R.value));return {cellRef:n,formulaText:R,isEditing:d,onInputChange:C,onCommit:r,onCancel:g,startEditing:c,referencedCells:T,isFormulaBarEditing:v}}var wo=["columns","filters"];function At(e){let{config:o}=e,t=o!=null&&o!==false,n=(()=>{if(!t||o===true)return {panels:wo,position:"right",defaultPanel:null};let p=o;return {panels:p.panels??wo,position:p.position??"right",defaultPanel:p.defaultPanel??null}})(),i=ref(n.defaultPanel),m=p=>{i.value=p;},u=p=>{i.value=i.value===p?null:p;},a=()=>{i.value=null;},d=computed(()=>i.value!==null);return {isEnabled:t,activePanel:i,setActivePanel:m,panels:n.panels,position:n.position,isOpen:d,toggle:u,close:a}}var Jl=25,Ql={};function jt(e){let o=computed(()=>{let l=e.value;return {columns:l.columns,columnOrder:l.columnOrder,onColumnOrderChange:l.onColumnOrderChange,onColumnResized:l.onColumnResized,onColumnPinned:l.onColumnPinned,columnChooser:l.columnChooser}}),t=computed(()=>{let l=e.value,M="data"in l?l.data:void 0,ne="dataSource"in l?l.dataSource:void 0;return M&&ne&&console.warn("[OGrid] Both data and dataSource provided. dataSource takes precedence."),{getRowId:l.getRowId,data:M,dataSource:ne}}),n=computed(()=>{let l=e.value;return {page:l.page,pageSize:l.pageSize,sort:l.sort,filters:l.filters,visibleColumns:l.visibleColumns,isLoading:l.isLoading}}),i=computed(()=>{let l=e.value;return {onPageChange:l.onPageChange,onPageSizeChange:l.onPageSizeChange,onSortChange:l.onSortChange,onFiltersChange:l.onFiltersChange,onVisibleColumnsChange:l.onVisibleColumnsChange,onFirstDataRendered:l.onFirstDataRendered,onError:l.onError}}),m=computed(()=>{let l=e.value;return {defaultPageSize:l.defaultPageSize??Jl,defaultSortBy:l.defaultSortBy,defaultSortDirection:l.defaultSortDirection??"asc",entityLabelPlural:l.entityLabelPlural??"items"}}),u=computed(()=>o.value.columnChooser===false?"none":o.value.columnChooser==="sidebar"?"sidebar":"toolbar"),a=computed(()=>flattenColumns(o.value.columns)),d=computed(()=>t.value.dataSource!=null),p=computed(()=>!d.value),v=ref([]),s=ref(false),c=computed(()=>t.value.data??v.value),C=computed(()=>n.value.isLoading??s.value),r=computed(()=>m.value.defaultSortBy??a.value[0]?.columnId??""),g=ref(1),R=ref(m.value.defaultPageSize),T=ref({field:r.value,direction:m.value.defaultSortDirection}),I=ref({}),y=ref((()=>{let l=a.value.filter(M=>M.defaultVisible!==false).map(M=>M.columnId);return new Set(l.length>0?l:a.value.map(M=>M.columnId))})()),h$1=ref({}),b={};for(let l of flattenColumns(e.value.columns))l.pinned&&(b[l.columnId]=l.pinned);let P=ref(b),D=computed(()=>n.value.page??g.value),S=computed(()=>n.value.pageSize??R.value),w=computed(()=>n.value.sort??T.value),E=computed(()=>n.value.filters??I.value),O=computed(()=>n.value.visibleColumns??y.value),ee=l=>{n.value.page===void 0&&(g.value=l),i.value.onPageChange?.(l);},ae=l=>{n.value.pageSize===void 0&&(R.value=l),i.value.onPageSizeChange?.(l),ee(1);},Z=ref(0),f=l=>{n.value.sort===void 0&&(T.value=l),i.value.onSortChange?.(l),ee(1),Z.value++;},x=l=>{n.value.filters===void 0&&(I.value=l),i.value.onFiltersChange?.(l),ee(1);},F=l=>{n.value.visibleColumns===void 0&&(y.value=l),i.value.onVisibleColumnsChange?.(l);},G=(l,M)=>{f(computeNextSortState(w.value,l,M));},_=(l,M)=>{x(mergeFilter(E.value,l,M));},B=(l,M)=>{let ne=new Set(O.value);M?ne.add(l):ne.delete(l),F(ne);},V=ref(new Set),L=computed(()=>e.value.selectedRows),k=computed(()=>L.value??V.value),H=l=>{L.value===void 0&&(V.value=new Set(l.selectedRowIds)),e.value.onSelectionChange?.(l);},J=computed(()=>getMultiSelectFilterFields(a.value)),te=computed(()=>t.value.dataSource??{fetchFilterOptions:void 0}),{filterOptions:U,loadingOptions:j}=$t(te,J),Q=computed(()=>t.value.dataSource?.fetchFilterOptions!=null),pe=computed(()=>Q.value?U.value:deriveFilterOptionsFromData(c.value,a.value)),Te=computed(()=>!!e.value.workerSort),Le=null,Qe=-1,Be=null,We=null,Ke=-1,Oe=computed(()=>{if(!p.value||Te.value)return null;let l=c.value,M=a.value,ne=E.value,ge=Z.value,Se=w.value.field,je=w.value.direction,nt=ge!==Qe||ne!==Be||M!==We||l.length!==Ke,Ee;if(nt||Le===null){Qe=ge,Be=ne,We=M,Ke=l.length;let ye=processClientSideData(l,M,ne,Se,je),Ne=new Map;for(let Ce=0;Ce<l.length;Ce++)Ne.set(l[Ce],Ce);Le=ye.map(Ce=>{let Ue=Ne.get(Ce);return Ue!==void 0?Ue:-1}).filter(Ce=>Ce!==-1),Ee=ye;}else Ee=Le.map(ye=>l[ye]).filter(ye=>ye!==void 0);let xt=Ee.length,Ft=(D.value-1)*S.value;return {items:Ee.slice(Ft,Ft+S.value),totalCount:xt}}),Me=ref(null),vt=0,De=null,st=-1,Pe=null,gt=null,ie=-1;watch([p,Te,c,a,E,Z,D,S],()=>{if(!p.value||!Te.value)return;let l=c.value,M=a.value,ne=E.value,ge=Z.value,Se=w.value.field,je=w.value.direction,nt=D.value,Ee=S.value,xt=++vt;if(ge!==st||ne!==Pe||M!==gt||l.length!==ie||De===null)st=ge,Pe=ne,gt=M,ie=l.length,De=null,processClientSideDataAsync(l,M,ne,Se,je).then(Fe=>{if(xt!==vt||Xe)return;let ye=new Map;for(let ue=0;ue<l.length;ue++)ye.set(l[ue],ue);De=Fe.map(ue=>{let ot=ye.get(ue);return ot!==void 0?ot:-1}).filter(ue=>ue!==-1);let Ne=Fe.length,Ce=(nt-1)*Ee,Ue=Fe.slice(Ce,Ce+Ee);Me.value={items:Ue,totalCount:Ne};}).catch(()=>{if(xt!==vt||Xe)return;let Fe=processClientSideData(l,M,ne,Se,je),ye=new Map;for(let ue=0;ue<l.length;ue++)ye.set(l[ue],ue);De=Fe.map(ue=>{let ot=ye.get(ue);return ot!==void 0?ot:-1}).filter(ue=>ue!==-1);let Ne=Fe.length,Ce=(nt-1)*Ee,Ue=Fe.slice(Ce,Ce+Ee);Me.value={items:Ue,totalCount:Ne};});else {let Fe=De.map(Ue=>l[Ue]).filter(Ue=>Ue!==void 0),ye=Fe.length,Ne=(nt-1)*Ee,Ce=Fe.slice(Ne,Ne+Ee);Me.value={items:Ce,totalCount:ye};}},{immediate:true});let $e=computed(()=>{let l=Oe.value;return l||Me.value}),et=ref([]),He=ref(0),qe=ref(false),tt=0,Xe=false,Ge=ref(0),Ct=()=>{if(!d.value||!t.value.dataSource){d.value||(qe.value=false);return}let l=++tt;qe.value=true,t.value.dataSource.fetchPage({page:D.value,pageSize:S.value,sort:{field:w.value.field,direction:w.value.direction},filters:E.value}).then(M=>{l!==tt||Xe||(et.value=M.items,He.value=M.totalCount);}).catch(M=>{l!==tt||Xe||(i.value.onError?.(M),et.value=[],He.value=0);}).finally(()=>{l===tt&&!Xe&&(qe.value=false);});};onMounted(()=>{validateColumns(a.value),Ct();}),watch([()=>t.value.dataSource,D,S,()=>w.value.field,()=>w.value.direction,E,Ge],()=>{Ct();}),onUnmounted(()=>{Xe=true;});let Ve=computed(()=>p.value&&$e.value?$e.value.items:et.value),ht=computed(()=>p.value&&$e.value?$e.value.totalCount:He.value),Rt=computed(()=>!!e.value.formulas),Ye=ref(0),Pt=l=>{Ye.value+=1,e.value.onFormulaRecalc?.(l);},he=yo({formulas:Rt,items:Ve,flatColumns:a,initialFormulas:e.value.initialFormulas,onFormulaRecalc:Pt,formulaFunctions:e.value.formulaFunctions,namedRanges:e.value.namedRanges,sheets:e.value.sheets}),bt=false,St=false;watch(Ve,l=>{!bt&&l.length>0&&(bt=true,i.value.onFirstDataRendered?.()),!St&&l.length>0&&(St=true,validateRowIds(l,t.value.getRowId));});let ut=computed(()=>Object.values(E.value).some(l=>l!==void 0)),yt=computed(()=>a.value.map(l=>({columnId:l.columnId,name:l.name,required:l.required===true}))),Dt=computed(()=>{let l=e.value.statusBar;if(!l)return;if(typeof l=="object")return l;let M=p.value?t.value.data?.length??0:He.value,ne=ht.value;return {totalCount:M,filteredCount:ut.value?ne:void 0,selectedCount:k.value.size,suppressRowCount:true}}),Vt=(l,M)=>{h$1.value={...h$1.value,[l]:M},o.value.onColumnResized?.(l,M);},dt=(l,M)=>{if(M===null){let{[l]:ne,...ge}=P.value;P.value=ge;}else P.value={...P.value,[l]:M};o.value.onColumnPinned?.(l,M);},X=shallowRef(At({config:e.value.sideBar}));watch(()=>e.value.sideBar,l=>{X.value=At({config:l});});let Y=computed(()=>a.value.filter(l=>l.filterable&&l.filterable.type).map(l=>({columnId:l.columnId,name:l.name,filterField:l.filterable?.filterField??l.columnId,filterType:l.filterable?.type}))),le=computed(()=>{let l=X.value;if(!l.isEnabled)return null;l.activePanel.value;l.isOpen.value;return {get activePanel(){return l.activePanel.value},onPanelChange:l.setActivePanel,panels:l.panels,position:l.position,get isOpen(){return l.isOpen.value},toggle:l.toggle,close:l.close,columns:yt.value,visibleColumns:O.value,onVisibilityChange:B,onSetVisibleColumns:F,filterableColumns:Y.value,filters:E.value,onFilterChange:_,filterOptions:pe.value}}),Re=()=>x({}),se=computed(()=>d.value&&qe.value||C.value),Ie=ref(null),me=ref(null),be=l=>{if(Ie.value=l,l){let M=l.match(/^([A-Z]+)(\d+)$/);M?me.value={col:columnLetterToIndex(M[1]),row:parseInt(M[2],10)-1}:me.value=null;}else me.value=null;},ke=computed(()=>me.value?.col??null),wt=computed(()=>me.value?.row??null),kn=(l,M)=>{let ne=Ve.value,ge=a.value;if(!(M<0||M>=ne.length||l<0||l>=ge.length))return getCellValue(ne[M],ge[l])},ze=qt({activeCol:ke,activeRow:wt,activeCellRef:Ie,getFormula:he.enabled.value?he.getFormula:void 0,getRawValue:kn,setFormula:he.enabled.value?he.setFormula:void 0}),An=computed(()=>{let l=e.value,M=t.value.dataSource;return {items:Ve.value,columns:o.value.columns,getRowId:t.value.getRowId,sortBy:w.value.field,sortDirection:w.value.direction,onColumnSort:G,visibleColumns:O.value,columnOrder:o.value.columnOrder,onColumnOrderChange:o.value.onColumnOrderChange,onColumnResized:Vt,onColumnPinned:dt,pinnedColumns:P.value,initialColumnWidths:h$1.value,editable:l.editable,cellSelection:l.cellSelection,onCellValueChanged:l.onCellValueChanged,onUndo:l.onUndo,onRedo:l.onRedo,canUndo:l.canUndo,canRedo:l.canRedo,rowSelection:l.rowSelection??"none",selectedRows:k.value,onSelectionChange:H,showRowNumbers:l.showRowNumbers||l.cellReferences||l.formulas,showColumnLetters:!!(l.cellReferences||l.formulas),showNameBox:!!(l.cellReferences&&!l.formulas),onActiveCellChange:l.cellReferences||l.formulas?be:void 0,currentPage:D.value,pageSize:S.value,statusBar:Dt.value,isLoading:se.value,filters:E.value,onFilterChange:_,filterOptions:pe.value,loadingFilterOptions:M?.fetchFilterOptions?j.value:Ql,peopleSearch:M?.searchPeople,getUserByEmail:M?.getUserByEmail,layoutMode:l.layoutMode,suppressHorizontalScroll:l.suppressHorizontalScroll,stickyHeader:l.stickyHeader??true,columnReorder:l.columnReorder,responsiveColumns:l.responsiveColumns,virtualScroll:l.virtualScroll,rowHeight:l.rowHeight,density:l.density??"normal",groupBy:l.groupBy,"aria-label":l["aria-label"],"aria-labelledby":l["aria-labelledby"],emptyState:{hasActiveFilters:ut.value,onClearAll:Re,message:l.emptyState?.message,render:l.emptyState?.render},formulas:l.formulas,formulaVersion:Ye.value,...he.enabled.value?{getFormulaValue:he.getFormulaValue,hasFormula:he.hasFormula,getFormula:he.getFormula,setFormula:he.setFormula,onFormulaCellChanged:he.onCellChanged,getPrecedents:he.getPrecedents,getDependents:he.getDependents,getAuditTrail:he.getAuditTrail}:{},formulaReferences:ze.referencedCells.value.length>0?ze.referencedCells.value:void 0}}),zt=computed(()=>({page:D.value,pageSize:S.value,displayTotalCount:ht.value,setPage:ee,setPageSize:ae,pageSizeOptions:e.value.pageSizeOptions,entityLabelPlural:m.value.entityLabelPlural})),Nt=computed(()=>({columns:yt.value,visibleColumns:O.value,onVisibilityChange:B,placement:u.value})),Ln=computed(()=>{let l=e.value,M=!!l.formulas,ne=!!l.cellReferences&&!M,ge=l.toolbar;ne&&(ge=[h("div",{style:{display:"inline-flex",alignItems:"center",padding:"0 8px",fontFamily:"'Consolas', 'Courier New', monospace",fontSize:"12px",border:"1px solid rgba(0,0,0,0.12)",borderRadius:"3px",height:"24px",marginRight:"8px",background:"#fff",minWidth:"40px",color:"rgba(0,0,0,0.6)"},"aria-label":"Active cell reference"},Ie.value??"\u2014"),ge]);let Se=M?h(Nn,{cellRef:ze.cellRef.value,formulaText:ze.formulaText.value,isEditing:ze.isEditing.value,onInputChange:ze.onInputChange,onCommit:ze.onCommit,onCancel:ze.onCancel,onStartEditing:ze.startEditing}):void 0,je=l.sheetDefs&&l.sheetDefs.length>0&&l.activeSheet&&l.onSheetChange?h(Wn,{sheets:l.sheetDefs,activeSheet:l.activeSheet,showAddButton:!!l.onSheetAdd,onSheetChange:l.onSheetChange,onSheetAdd:l.onSheetAdd??(()=>{})}):void 0;return {toolbar:ge,toolbarBelow:l.toolbarBelow,className:l.className,emptyState:l.emptyState,sideBarProps:le.value,fullScreen:l.fullScreen,formulaBar:Se,sheetTabs:je}}),Et=computed(()=>({hasActiveFilters:ut.value,setFilters:x})),Bn=computed(()=>({setRowData:l=>{d.value||(v.value=l);},setLoading:l=>{s.value=l;},getColumnState:()=>({visibleColumns:Array.from(O.value),sort:w.value,columnOrder:o.value.columnOrder??void 0,columnWidths:Object.keys(h$1.value).length>0?h$1.value:void 0,filters:Object.keys(E.value).length>0?E.value:void 0,pinnedColumns:Object.keys(P.value).length>0?P.value:void 0}),applyColumnState:l=>{l.visibleColumns&&F(new Set(l.visibleColumns)),l.sort&&f(l.sort),l.columnOrder&&o.value.onColumnOrderChange&&o.value.onColumnOrderChange(l.columnOrder),l.columnWidths&&(h$1.value=l.columnWidths),l.filters&&x(l.filters),l.pinnedColumns&&(P.value=l.pinnedColumns);},setFilterModel:x,getSelectedRows:()=>Array.from(k.value),setSelectedRows:l=>{L.value===void 0&&(V.value=new Set(l));},selectAll:()=>{let l=new Set(Ve.value.map(M=>t.value.getRowId(M)));L.value===void 0&&(V.value=l),e.value.onSelectionChange?.({selectedRowIds:Array.from(l),selectedItems:Ve.value});},deselectAll:()=>{L.value===void 0&&(V.value=new Set),e.value.onSelectionChange?.({selectedRowIds:[],selectedItems:[]});},clearFilters:()=>x({}),clearSort:()=>f({field:r.value,direction:m.value.defaultSortDirection}),resetGridState:l=>{x({}),f({field:r.value,direction:m.value.defaultSortDirection}),l?.keepSelection||(L.value===void 0&&(V.value=new Set),e.value.onSelectionChange?.({selectedRowIds:[],selectedItems:[]}));},getDisplayedRows:()=>Ve.value,refreshData:()=>{d.value&&Ge.value++;},scrollToRow:()=>{},getColumnOrder:()=>o.value.columnOrder??a.value.map(l=>l.columnId),setColumnOrder:l=>{o.value.onColumnOrderChange?.(l);}}));return {dataGridProps:An,pagination:zt,columnChooser:Nt,layout:Ln,filters:Et,api:Bn}}function Yt(e){let{items:o,getRowId:t,rowSelection:n,controlledSelectedRows:i,onSelectionChange:m}=e,u=shallowRef(new Set),a=-1,d=computed(()=>{let r=i.value;return r!=null?r instanceof Set?r:new Set(r):u.value}),p=r=>{i.value!==void 0?isReadonly(i)||(i.value=r):u.value=r,m?.({selectedRowIds:Array.from(r),selectedItems:o.value.filter(g=>r.has(t(g)))});},v=(r,g,R,T)=>{if(n.value==="single"){p(g?new Set([r]):new Set),a=R;return}let I=o.value,y;T&&a>=0&&a!==R?y=applyRangeRowSelection(a,R,g,I,t,d.value):(y=new Set(d.value),g?y.add(r):y.delete(r)),a=R,p(y);},s=r=>{p(r?new Set(o.value.map(g=>t(g))):new Set);},c=computed(()=>computeRowSelectionState(d.value,o.value,t).allSelected),C=computed(()=>computeRowSelectionState(d.value,o.value,t).someSelected);return {selectedRowIds:d,updateSelection:p,handleRowCheckboxChange:v,handleSelectAll:s,allSelected:c,someSelected:C}}function Zt(e){let o=shallowRef(null),t=ref(void 0);return {editingCell:o,setEditingCell:m=>{if(m&&e?.scrollToRow&&e?.getRowIndex){let u=e.getRowIndex(m.rowId);u>=0&&e.scrollToRow(u,"center");}o.value=m;},pendingEditorValue:t,setPendingEditorValue:m=>{t.value=m;}}}function Jt(e,o){let t=shallowRef(null),n=0,i=m=>{let u=t.value;u!==m&&(u&&m&&u.rowIndex===m.rowIndex&&u.columnIndex===m.columnIndex||(t.value=m));};return watch([t,()=>o?.value],()=>{if(n&&(cancelAnimationFrame(n),n=0),t.value==null||!e?.value||o?.value!=null)return;let{rowIndex:m,columnIndex:u}=t.value;n=requestAnimationFrame(()=>{n=0;let a=e.value;if(!a)return;let d=t.value;if(!d||d.rowIndex!==m||d.columnIndex!==u)return;let p=`[data-row-index="${m}"][data-col-index="${u}"]`,v=a.querySelector(p);if(v){let s=a.querySelector("thead"),c=s?s.getBoundingClientRect().height:0,C=a.getBoundingClientRect(),r=v.getBoundingClientRect(),g=C.top+c;r.top<g?a.scrollTop-=g-r.top:r.bottom>C.bottom&&(a.scrollTop+=r.bottom-C.bottom),a.scrollWidth>a.clientWidth&&(r.left<C.left?a.scrollLeft-=C.left-r.left:r.right>C.right&&(a.scrollLeft+=r.right-C.right)),document.activeElement!==v&&typeof v.focus=="function"&&v.focus({preventScroll:true});}});},{flush:"post"}),onUnmounted(()=>{n&&(cancelAnimationFrame(n),n=0);}),{activeCell:t,setActiveCell:i}}var Jn="data-drag-range",Lt="data-drag-anchor",xe=40,fr=16;function Qt(e){let o=rt(e),{wrapperRef:t,setActiveCell:n}=e,i=()=>isRef(e.colOffset)?e.colOffset.value:e.colOffset,m=shallowRef(null),u=ref(false),a=ref(false),d=ref(false),p=false,v=null,s=0,c=null,C=null,r=null,g=f=>{rangesEqual(m.value,f)||(m.value=f);},R=(f,x,F)=>{if(f.button!==0)return;let G=i();if(F<G)return;f.preventDefault();let _=F-G,B=m.value;if(f.shiftKey&&B!=null)g(normalizeSelectionRange({startRow:B.startRow,startCol:B.startCol,endRow:x,endCol:_})),n({rowIndex:x,columnIndex:F});else {v={row:x,col:_},p=false;let V={startRow:x,startCol:_,endRow:x,endCol:_};g(V),c=V,n({rowIndex:x,columnIndex:F}),a.value=true,P(V);}},T=()=>{let{rowCount:f,visibleColCount:x}=o.value;f.value===0||x.value===0||(g({startRow:0,startCol:0,endRow:f.value-1,endCol:x.value-1}),n({rowIndex:0,columnIndex:i()}));},I=new Set,y=null,h=(f,x,F,G,_,B,V,L)=>{f.hasAttribute(Jn)||f.setAttribute(Jn,""),L&&x===L.row&&F===L.col?f.hasAttribute(Lt)||f.setAttribute(Lt,""):f.hasAttribute(Lt)&&f.removeAttribute(Lt);let H=[];x===G&&H.push("inset 0 2px 0 0 var(--ogrid-selection, #217346)"),x===_&&H.push("inset 0 -2px 0 0 var(--ogrid-selection, #217346)"),F===B&&H.push("inset 2px 0 0 0 var(--ogrid-selection, #217346)"),F===V&&H.push("inset -2px 0 0 0 var(--ogrid-selection, #217346)"),f.style.boxShadow=H.length>0?H.join(", "):"",I.add(f);},b=f=>{f.removeAttribute(Jn),f.removeAttribute(Lt),f.style.boxShadow="";},P=f=>{if(!t.value)return;let F=Math.min(f.startRow,f.endRow),G=Math.max(f.startRow,f.endRow),_=Math.min(f.startCol,f.endCol),B=Math.max(f.startCol,f.endCol),V=v,L=i();for(let H of I){let J=parseInt(H.getAttribute("data-row-index")??"",10),te=parseInt(H.getAttribute("data-col-index")??"",10)-L;J>=F&&J<=G&&te>=_&&te<=B||(b(H),I.delete(H));}y||(y=buildCellIndex(t.value));let k=false;for(let H=F;H<=G;H++)for(let J=_;J<=B;J++){let te=`${H},${J+L}`,U=y?.get(te);U&&!U.isConnected&&!k&&(k=true,y=buildCellIndex(t.value),U=y?.get(te)),U&&U.isConnected&&h(U,H,J,F,G,_,B,V);}},D=()=>{for(let f of I)b(f);I.clear(),y=null;},S=(f,x)=>{if(!v)return null;let G=document.elementFromPoint(f,x)?.closest?.("[data-row-index][data-col-index]");if(!G)return null;let _=parseInt(G.getAttribute("data-row-index")??"",10),B=parseInt(G.getAttribute("data-col-index")??"",10),V=i();if(Number.isNaN(_)||Number.isNaN(B)||B<V)return null;let L=B-V;return normalizeSelectionRange({startRow:v.row,startCol:v.col,endRow:_,endCol:L})},w=()=>{C&&(clearInterval(C),C=null);},E=()=>{let f=t.value;if(!f||!r||!a.value){w();return}let x=f.getBoundingClientRect(),F=0,G=0;if(r.cy<x.top+xe?G=-computeAutoScrollSpeed(x.top+xe-r.cy):r.cy>x.bottom-xe&&(G=computeAutoScrollSpeed(r.cy-(x.bottom-xe))),r.cx<x.left+xe?F=-computeAutoScrollSpeed(x.left+xe-r.cx):r.cx>x.right-xe&&(F=computeAutoScrollSpeed(r.cx-(x.right-xe))),F===0&&G===0){w();return}C||(C=setInterval(()=>{let _=t.value,B=r;if(!_||!B||!a.value){w();return}let V=_.getBoundingClientRect(),L=0,k=0;if(B.cy<V.top+xe?k=-computeAutoScrollSpeed(V.top+xe-B.cy):B.cy>V.bottom-xe&&(k=computeAutoScrollSpeed(B.cy-(V.bottom-xe))),B.cx<V.left+xe?L=-computeAutoScrollSpeed(V.left+xe-B.cx):B.cx>V.right-xe&&(L=computeAutoScrollSpeed(B.cx-(V.right-xe))),L===0&&k===0){w();return}_.scrollTop+=k,_.scrollLeft+=L;let H=S(B.cx,B.cy);H&&(c=H,P(H));},fr));},O=f=>{!a.value||!v||(p||(p=true,u.value=true,y=buildCellIndex(t.value)),r={cx:f.clientX,cy:f.clientY},E(),s&&cancelAnimationFrame(s),s=requestAnimationFrame(()=>{if(s=0,!r)return;let x=S(r.cx,r.cy);if(!x)return;let F=c;F&&F.startRow===x.startRow&&F.startCol===x.startCol&&F.endRow===x.endRow&&F.endCol===x.endCol||(c=x,P(x));}));},ee=()=>{if(!a.value)return;w(),s&&(cancelAnimationFrame(s),s=0),a.value=false;let f=p;if(f){if(r){let F=S(r.cx,r.cy);F&&(c=F);}let x=c;if(x){g(x);let F=v;F&&n({rowIndex:F.row,columnIndex:F.col+i()});}}D(),c=null,r=null,v=null,f&&(u.value=false);},ae=f=>{d.value||O(f);},Z=()=>{d.value||ee();};return onMounted(()=>{window.addEventListener("pointermove",ae,true),window.addEventListener("pointerup",Z,true);}),onUnmounted(()=>{d.value=true,window.removeEventListener("pointermove",ae,true),window.removeEventListener("pointerup",Z,true),s&&cancelAnimationFrame(s),w();}),{selectionRange:m,setSelectionRange:g,handleCellMouseDown:R,handleSelectAllCells:T,isDragging:u}}function en(){let e=shallowRef(null);return {contextMenuPosition:e,setContextMenuPosition:i=>{e.value=i;},handleCellContextMenu:i=>{i.preventDefault?.(),e.value={x:i.clientX,y:i.clientY};},closeContextMenu:()=>{e.value=null;}}}function tn(e){let{items:o,visibleCols:t,selectionRange:n,activeCell:i,editable:m,onCellValueChanged:u,beginBatch:a,endBatch:d}=e,p=()=>isRef(e.colOffset)?e.colOffset.value:e.colOffset,v=shallowRef(null),s=shallowRef(null),c=ref(null),C=()=>{let I=n.value,y=i.value,h=p();return I??(y!=null?{startRow:y.rowIndex,startCol:y.columnIndex-h,endRow:y.rowIndex,endCol:y.columnIndex-h}:null)},r=()=>{let I=C();if(I==null)return;let y=normalizeSelectionRange(I),h=formatSelectionAsTsv(o.value,t.value,y);c.value=h,s.value=y,navigator.clipboard.writeText(h).catch(b=>{typeof console<"u"&&console.warn("[OGrid] Clipboard write failed:",b);});};return {handleCopy:r,handleCut:()=>{if(m.value===false)return;let I=C();if(I==null||u.value==null)return;let y=normalizeSelectionRange(I);v.value=y,s.value=null,r(),s.value=null;},handlePaste:async()=>{if(m.value===false)return;let I=u.value;if(I==null)return;let y;try{y=await navigator.clipboard.readText();}catch{y="";}if(!y.trim()&&c.value!=null&&(y=c.value),!y.trim())return;let h=C(),b=h?h.startRow:0,P=h?h.startCol:0,D=o.value,S=t.value,w=parseTsvClipboard(y);a?.();let E=applyPastedValues(w,b,P,D,S);for(let O of E)I(O);if(v.value){let O=applyCutClear(v.value,D,S);for(let ee of O)I(ee);v.value=null;}d?.(),s.value=null;},cutRange:v,copyRange:s,clearClipboardRanges:()=>{s.value=null,v.value=null;}}}function nn(e){let o=rt(e);return {handleGridKeyDown:n=>{let{data:i,state:m,handlers:u,features:a}=o.value,d=i.items.value,p=i.visibleCols.value,{getRowId:v}=i,s=isRef(i.colOffset)?i.colOffset.value:i.colOffset,c=i.hasCheckboxCol.value,C=i.visibleColumnCount.value,r=m.activeCell.value,g=m.selectionRange.value,R=m.editingCell.value,T=m.selectedRowIds.value,{setActiveCell:I,setSelectionRange:y,setEditingCell:h,handleRowCheckboxChange:b,handleCopy:P,handleCut:D,handlePaste:S,setContextMenu:w,onUndo:E,onRedo:O,clearClipboardRanges:ee}=u,ae=a.editable.value,Z=a.onCellValueChanged.value,f=a.rowSelection.value,x=a.wrapperRef,F=a.scrollToRow,{fillDown:G}=a,_=a.onKeyDown?.value;if(_&&(_(n),n.defaultPrevented))return;let B=d.length-1,V=C-1+s;if(d.length===0)return;if(r===null){["ArrowDown","ArrowUp","ArrowLeft","ArrowRight","Tab","Enter","Home","End","PageDown","PageUp"].includes(n.key)&&(I({rowIndex:0,columnIndex:s}),n.preventDefault());return}let{rowIndex:L,columnIndex:k}=r,H=k-s,J=n.shiftKey,te=(U,j)=>{if(U<0||U>=d.length||j<0||j>=p.length)return true;let Q=getCellValue(d[U],p[j]);return Q==null||Q===""};switch(n.key){case "c":if(n.ctrlKey||n.metaKey){if(R!=null)break;n.preventDefault(),P();}break;case "x":if(n.ctrlKey||n.metaKey){if(R!=null)break;n.preventDefault(),D();}break;case "v":if(n.ctrlKey||n.metaKey){if(R!=null)break;n.preventDefault(),S();}break;case "d":if(n.ctrlKey||n.metaKey){if(R!=null)break;ae!==false&&G&&(n.preventDefault(),G());}break;case "ArrowDown":case "ArrowUp":case "ArrowRight":case "ArrowLeft":{if(R!=null)break;n.preventDefault();let{newRowIndex:U,newColumnIndex:j,newRange:Q}=computeArrowNavigation({direction:n.key,rowIndex:L,columnIndex:k,dataColIndex:H,colOffset:s,maxRowIndex:B,maxColIndex:V,visibleColCount:p.length,isCtrl:n.ctrlKey||n.metaKey,isShift:J,selectionRange:g,isEmptyAt:te});y(Q),I({rowIndex:U,columnIndex:j}),(n.key==="ArrowDown"||n.key==="ArrowUp")&&F?.(U,"center");break}case "Tab":{n.preventDefault();let{rowIndex:U,columnIndex:j}=computeTabNavigation(L,k,B,V,s,n.shiftKey),Q=j-s;y({startRow:U,startCol:Q,endRow:U,endCol:Q}),I({rowIndex:U,columnIndex:j});break}case "Home":{n.preventDefault();let U=n.ctrlKey?0:L;y({startRow:U,startCol:0,endRow:U,endCol:0}),I({rowIndex:U,columnIndex:s});break}case "End":{n.preventDefault();let U=n.ctrlKey?B:L;y({startRow:U,startCol:C-1,endRow:U,endCol:C-1}),I({rowIndex:U,columnIndex:V});break}case "PageDown":case "PageUp":{n.preventDefault();let U=x.value,j=10;if(U){let Te=U.querySelector("tbody tr");Te&&Te.offsetHeight>0&&(j=Math.max(1,Math.floor(U.clientHeight/Te.offsetHeight)));}let Q=n.key==="PageDown"?1:-1,pe=Math.max(0,Math.min(L+Q*j,B));y(J?{startRow:g?.startRow??L,startCol:g?.startCol??H,endRow:pe,endCol:g?.endCol??H}:{startRow:pe,startCol:H,endRow:pe,endCol:H}),I({rowIndex:pe,columnIndex:k}),F?.(pe,"center");break}case "Enter":case "F2":{if(n.preventDefault(),H>=0&&H<p.length){let U=p[H],j=d[L];if(j&&U){let Q=U.editable===true||typeof U.editable=="function"&&U.editable(j);ae!==false&&Q&&Z!=null&&h({rowId:v(j),columnId:U.columnId});}}break}case "Escape":n.preventDefault(),R!=null?h(null):(ee?.(),I(null),y(null));break;case " ":if(f!=="none"&&k===0&&c){n.preventDefault();let U=d[L];if(U){let j=v(U),Q=T.has(j);b(j,!Q,L,n.shiftKey);}}break;case "z":(n.ctrlKey||n.metaKey)&&R==null&&(n.shiftKey&&O?(n.preventDefault(),O()):!n.shiftKey&&E&&(n.preventDefault(),E()));break;case "y":(n.ctrlKey||n.metaKey)&&R==null&&O&&(n.preventDefault(),O());break;case "a":if(n.ctrlKey||n.metaKey){if(R!=null)break;n.preventDefault(),d.length>0&&C>0&&(y({startRow:0,startCol:0,endRow:d.length-1,endCol:C-1}),I({rowIndex:0,columnIndex:s}));}break;case "Delete":case "Backspace":{if(R!=null||ae===false||Z==null)break;let U=g??(r!=null?{startRow:r.rowIndex,startCol:r.columnIndex-s,endRow:r.rowIndex,endCol:r.columnIndex-s}:null);if(U==null)break;n.preventDefault();let j=applyCellDeletion(U,d,p);for(let Q of j)Z(Q);break}case "F10":if(n.shiftKey)if(n.preventDefault(),r!=null&&x.value){let U=`[data-row-index="${r.rowIndex}"][data-col-index="${r.columnIndex}"]`,j=x.value.querySelector(U);if(j){let Q=j.getBoundingClientRect();w({x:Q.left+Q.width/2,y:Q.top+Q.height/2});}else w({x:100,y:100});}else w({x:100,y:100});break;}}}}var on="data-drag-range";function ln(e){let{items:o,visibleCols:t,editable:n,onCellValueChanged:i,selectionRange:m,setSelectionRange:u,setActiveCell:a,wrapperRef:d,beginBatch:p,endBatch:v,visibleRange:s}=e,c=()=>isRef(e.colOffset)?e.colOffset.value:e.colOffset,C=shallowRef(null),r={endRow:0,endCol:0},g=0,R=null,T=null,I=null,y=D=>{C.value=D;},h=()=>{T&&(window.removeEventListener("pointermove",T,true),T=null),I&&(window.removeEventListener("pointerup",I,true),I=null),g&&(cancelAnimationFrame(g),g=0);};return watch(C,(D,S,w)=>{if(!D||n.value===false||!i.value||!d.value){h();return}r={endRow:D.startRow,endCol:D.startCol},R=null;let E=new Set,O=buildCellIndex(d.value),ee=x=>{if(!d.value)return;let G=Math.min(x.startRow,x.endRow),_=Math.max(x.startRow,x.endRow),B=Math.min(x.startCol,x.endCol),V=Math.max(x.startCol,x.endCol),L=c();for(let k of E){let H=parseInt(k.getAttribute("data-row-index")??"",10),J=parseInt(k.getAttribute("data-col-index")??"",10)-L;H>=G&&H<=_&&J>=B&&J<=V||(k.removeAttribute(on),E.delete(k));}for(let k=G;k<=_;k++)for(let H=B;H<=V;H++){let J=`${k},${H+L}`,te=O?.get(J);te&&!te.isConnected&&(O=buildCellIndex(d.value),te=O.get(J)),te&&(te.hasAttribute(on)||te.setAttribute(on,""),E.add(te));}},ae=()=>{for(let x of E)x.removeAttribute(on);E.clear();},Z=null,f=(x,F)=>{let _=document.elementFromPoint(x,F)?.closest?.("[data-row-index][data-col-index]");if(!_||!d.value?.contains(_))return null;let B=parseInt(_.getAttribute("data-row-index")??"",10),V=parseInt(_.getAttribute("data-col-index")??"",10),L=c();if(Number.isNaN(B)||Number.isNaN(V)||V<L)return null;let k=V-L;return normalizeSelectionRange({startRow:D.startRow,startCol:D.startCol,endRow:B,endCol:k})};T=x=>{Z={cx:x.clientX,cy:x.clientY},g&&cancelAnimationFrame(g),g=requestAnimationFrame(()=>{if(g=0,!Z)return;let F=f(Z.cx,Z.cy);if(!F)return;let G=R;G&&G.startRow===F.startRow&&G.startCol===F.startCol&&G.endRow===F.endRow&&G.endCol===F.endCol||(R=F,r={endRow:F.endRow,endCol:F.endCol},ee(F));});},I=()=>{if(g&&(cancelAnimationFrame(g),g=0),Z){let L=f(Z.cx,Z.cy);L&&(R=L,r={endRow:L.endRow,endCol:L.endCol});}ae();let x=r,F=normalizeSelectionRange({startRow:D.startRow,startCol:D.startCol,endRow:x.endRow,endCol:x.endCol}),G=s?.value;G&&(F.startRow=Math.max(F.startRow,G.startIndex),F.endRow=Math.min(F.endRow,G.endIndex)),u(F),a({rowIndex:D.startRow,columnIndex:D.startCol+c()});let _=o.value,B=t.value,V=i.value;if(V){let L=applyFillValues(F,D.startRow,D.startCol,_,B);if(L.length>0){p?.();for(let k of L)V(k);v?.();}}C.value=null,R=null,h();},window.addEventListener("pointermove",T,true),window.addEventListener("pointerup",I,true),w(()=>{h();});}),onUnmounted(()=>h()),{fillDrag:C,setFillDrag:y,handleFillHandleMouseDown:D=>{D.preventDefault(),D.stopPropagation();let S=m.value;S&&(C.value={startRow:S.startRow,startCol:S.startCol});},fillDown:()=>{let D=m.value;if(!D||n.value===false||!i.value)return;let S=normalizeSelectionRange(D),w=o.value,E=t.value,O=i.value,ee=applyFillValues(S,S.startRow,S.startCol,w,E);if(ee.length>0){p?.();for(let ae of ee)O(ae);v?.();}}}}function rn(e){let{onCellValueChanged:o,maxUndoDepth:t=100}=e,n=new UndoRedoStack(t),i=ref(false),m=ref(false),u=()=>{i.value=n.canUndo,m.value=n.canRedo;};return {onCellValueChanged:o?c=>{n.record(c),n.isBatching||u(),o(c);}:void 0,undo:()=>{if(!o)return;let c=n.undo();if(c){u();for(let C=c.length-1;C>=0;C--){let r=c[C];o({...r,oldValue:r.newValue,newValue:r.oldValue});}}},redo:()=>{if(!o)return;let c=n.redo();if(c){u();for(let C of c)o(C);}},canUndo:i,canRedo:m,beginBatch:()=>{n.beginBatch();},endBatch:()=>{n.endBatch(),u();},maxUndoDepth:t}}function an(e){let{wrapperRef:o,visibleCols:t,flatColumns:n,hasCheckboxCol:i,initialColumnWidths:m,onColumnResized:u}=e,a=ref(0),d,p=()=>{let r=o.value;if(!r)return;let g=r.getBoundingClientRect(),R=window.getComputedStyle(r),T=(parseFloat(R.borderLeftWidth||"0")||0)+(parseFloat(R.borderRightWidth||"0")||0);a.value=Math.max(0,g.width-T);};onMounted(()=>{let r=o.value;r&&(typeof ResizeObserver<"u"&&(d=new ResizeObserver(p),d.observe(r)),p());}),onUnmounted(()=>{d?.disconnect();});let v=ref((()=>{if(!m)return {};let r={};for(let[g,R]of Object.entries(m))r[g]={widthPx:R};return r})()),s=r=>{v.value=r;},c=computed(()=>{let r=i.value?CHECKBOX_COLUMN_WIDTH:0;return t.value.reduce((g,R)=>g+(R.minWidth??estimateHeaderMinWidth(R.name))+CELL_PADDING,r)});watch(n,r=>{let g=new Set(r.map(y=>y.columnId)),R=v.value,T=Object.keys(R),I=T.filter(y=>g.has(y));if(I.length<T.length){let y={};for(let h of I)y[h]=R[h];v.value=y;}});let C=computed(()=>{let r=i.value?CHECKBOX_COLUMN_WIDTH:0;return t.value.reduce((g,R)=>{let T=v.value[R.columnId],I=R.minWidth??estimateHeaderMinWidth(R.name),y=T?T.widthPx:R.idealWidth??R.defaultWidth??I;return g+Math.max(I,y)+CELL_PADDING},r)});return {containerWidth:a,minTableWidth:c,desiredTableWidth:C,columnSizingOverrides:v,setColumnSizingOverrides:s,onColumnResized:u}}function sn(e){let{columns:o,pinnedColumns:t,onColumnPinned:n}=e,i={};for(let c of o.value)c.pinned&&(i[c.columnId]=c.pinned);let m=ref(i),u=computed(()=>t?.value??m.value);return {pinnedColumns:u,pinColumn:(c,C)=>{let r={...u.value,[c]:C};m.value=r,n?.(c,C);},unpinColumn:c=>{let{[c]:C,...r}=u.value;m.value=r,n?.(c,null);},isPinned:c=>u.value[c],computeLeftOffsets:(c,C,r,g,R)=>{let T={},I=g?R:0;for(let y of c)u.value[y.columnId]==="left"&&(T[y.columnId]=I,I+=C[y.columnId]??r);return T},computeRightOffsets:(c,C,r)=>{let g={},R=0;for(let T=c.length-1;T>=0;T--){let I=c[T];u.value[I.columnId]==="right"&&(g[I.columnId]=R,R+=C[I.columnId]??r);}return g}}}function dn(e){let{columns:o,pinnedColumns:t,onPinColumn:n,onUnpinColumn:i,onSort:m,onColumnResized:u,onAutosizeColumn:a,sortBy:d,sortDirection:p}=e,v=ref(false),s=ref(null),c=ref(null),C=(f,x)=>{s.value=f,c.value=x,v.value=true;},r=()=>{v.value=false,s.value=null,c.value=null;},g=computed(()=>s.value?o.value.find(f=>f.columnId===s.value):void 0),R=computed(()=>s.value?t.value[s.value]:void 0),T=computed(()=>R.value!=="left"),I=computed(()=>R.value!=="right"),y=computed(()=>!!R.value),h=computed(()=>!s.value||!d?.value||d.value!==s.value?null:p?.value??null),b=computed(()=>g.value?.sortable!==false),P=ref(true);return {isOpen:v,openForColumn:s,anchorElement:c,open:C,close:r,handlePinLeft:()=>{s.value&&T.value&&(n(s.value,"left"),r());},handlePinRight:()=>{s.value&&I.value&&(n(s.value,"right"),r());},handleUnpin:()=>{s.value&&y.value&&(i(s.value),r());},handleSortAsc:()=>{s.value&&m&&(m(s.value,"asc"),r());},handleSortDesc:()=>{s.value&&m&&(m(s.value,"desc"),r());},handleClearSort:()=>{s.value&&m&&(m(s.value,null),r());},handleAutosizeThis:()=>{let f=a??u;if(!s.value||!f||!P.value)return;let x=g.value;f(s.value,measureColumnContentWidth(s.value,x?.minWidth)),r();},handleAutosizeAll:()=>{let f=a??u;f&&(o.value.forEach(x=>{f(x.columnId,measureColumnContentWidth(x.columnId,x.minWidth));}),r());},canPinLeft:T,canPinRight:I,canUnpin:y,currentSort:h,isSortable:b,isResizable:P}}var Ze=()=>{},$r=async()=>{},qr=(e,o,t)=>{},Xr=e=>{},jr=e=>{};function cn(e){let{props:o,wrapperRef:t}=e,n=computed(()=>o.value.items),i=o.value.getRowId,m=computed(()=>o.value.rowSelection??"none"),u=computed(()=>o.value.selectedRows),a=computed(()=>o.value.editable),d=computed(()=>o.value.cellSelection!==false),p=computed(()=>o.value.pinnedColumns),v=rn({onCellValueChanged:o.value.onCellValueChanged}),s=computed(()=>v.onCellValueChanged),c=computed(()=>flattenColumns(o.value.columns)),C=computed(()=>{let X=p.value;return !X||Object.keys(X).length===0?c.value:c.value.map(Y=>{let le=X[Y.columnId];return le&&Y.pinned!==le?{...Y,pinned:le}:Y})}),r=computed(()=>resolveResponsiveConfig(o.value.responsiveColumns)),g=computed(()=>{let X=o.value.visibleColumns,Y=o.value.columnOrder,le=X?C.value.filter(se=>X.has(se.columnId)):C.value;if(!Y?.length)return le;let Re=new Map;for(let se=0;se<Y.length;se++)Re.set(Y[se],se);return [...le].sort((se,Ie)=>{let me=Re.get(se.columnId)??-1,be=Re.get(Ie.columnId)??-1;return me===-1&&be===-1?0:me===-1?1:be===-1?-1:me-be})}),R=ref(0),T=computed(()=>applyResponsiveHiding(g.value,R.value,r.value)),I=computed(()=>T.value.length),y=computed(()=>m.value==="multiple"),h=computed(()=>!!o.value.showRowNumbers),b=computed(()=>(y.value?1:0)+(h.value?1:0)),P=computed(()=>I.value+b.value),D=b,S=shallowRef(new Map);watch(n,X=>{let Y=S.value;Y.clear(),X.forEach((le,Re)=>Y.set(i(le),Re)),triggerRef(S);},{immediate:true});let w=Yt({items:n,getRowId:i,rowSelection:m,controlledSelectedRows:u,onSelectionChange:o.value.onSelectionChange}),{editingCell:E,setEditingCell:O,pendingEditorValue:ee,setPendingEditorValue:ae}=Zt(),{activeCell:Z,setActiveCell:f}=Jt(t,E),x=computed(()=>n.value.length),F=computed(()=>T.value.length),{selectionRange:G,setSelectionRange:_,handleCellMouseDown:B,handleSelectAllCells:V,isDragging:L}=Qt({colOffset:D,rowCount:x,visibleColCount:F,setActiveCell:f,wrapperRef:t}),{contextMenuPosition:k,setContextMenuPosition:H,handleCellContextMenu:J,closeContextMenu:te}=en(),{handleCopy:U,handleCut:j,handlePaste:Q,cutRange:pe,copyRange:Te,clearClipboardRanges:Le}=tn({items:n,visibleCols:T,colOffset:D,selectionRange:G,activeCell:Z,editable:a,onCellValueChanged:s,beginBatch:v.beginBatch,endBatch:v.endBatch}),Qe=(X,Y,le)=>{X.button===0&&(t.value?.focus({preventScroll:true}),Le(),B(X,Y,le));},{handleFillHandleMouseDown:Be,fillDown:We}=ln({items:n,visibleCols:T,editable:a,onCellValueChanged:s,selectionRange:G,setSelectionRange:_,setActiveCell:f,colOffset:D,wrapperRef:t,beginBatch:v.beginBatch,endBatch:v.endBatch}),{handleGridKeyDown:Ke}=nn({data:{items:n,visibleCols:T,colOffset:D,hasCheckboxCol:y,visibleColumnCount:I,getRowId:i},state:{activeCell:Z,selectionRange:G,editingCell:E,selectedRowIds:w.selectedRowIds},handlers:{setActiveCell:f,setSelectionRange:_,setEditingCell:O,handleRowCheckboxChange:w.handleRowCheckboxChange,handleCopy:U,handleCut:j,handlePaste:Q,setContextMenu:H,onUndo:v.undo,onRedo:v.redo,clearClipboardRanges:Le},features:{editable:a,onCellValueChanged:s,rowSelection:m,wrapperRef:t,fillDown:We,onKeyDown:computed(()=>o.value.onKeyDown)}}),{containerWidth:Oe,minTableWidth:Me,desiredTableWidth:vt,columnSizingOverrides:De,setColumnSizingOverrides:st}=an({wrapperRef:t,visibleCols:g,flatColumns:C,hasCheckboxCol:y,initialColumnWidths:o.value.initialColumnWidths,onColumnResized:(X,Y)=>o.value.onColumnResized?.(X,Y)});watch(Oe,X=>{R.value=X;},{immediate:true});let Pe=sn({columns:C,pinnedColumns:p,onColumnPinned:o.value.onColumnPinned}),gt=(X,Y)=>{st({...De.value,[X]:{widthPx:Y}}),o.value.onColumnResized?.(X,Y);},ie=dn({columns:C,pinnedColumns:Pe.pinnedColumns,onPinColumn:Pe.pinColumn,onUnpinColumn:Pe.unpinColumn,onSort:o.value.onColumnSort,onColumnResized:o.value.onColumnResized,onAutosizeColumn:gt,sortBy:computed(()=>o.value.sortBy),sortDirection:computed(()=>o.value.sortDirection)}),$e=ref({});watch([T,Oe,De],()=>{nextTick(()=>{let X=t.value;if(!X)return;let Y=X.querySelectorAll("th[data-column-id]");if(Y.length===0)return;let le={};Y.forEach(me=>{let be=me.getAttribute("data-column-id");be&&(le[be]=me.offsetWidth);});let Re=$e.value,se=Object.keys(le),Ie=se.length!==Object.keys(Re).length;if(!Ie){for(let me of se)if(Re[me]!==le[me]){Ie=true;break}}Ie&&($e.value=le);});},{flush:"post"});let et=computed(()=>{let X={};for(let Y of T.value){let le=De.value[Y.columnId];X[Y.columnId]=le?le.widthPx:Y.idealWidth??Y.defaultWidth??Y.minWidth??DEFAULT_MIN_COLUMN_WIDTH;}return X}),He=computed(()=>Pe.computeLeftOffsets(T.value,et.value,DEFAULT_MIN_COLUMN_WIDTH,y.value,CHECKBOX_COLUMN_WIDTH)),qe=computed(()=>Pe.computeRightOffsets(T.value,et.value,DEFAULT_MIN_COLUMN_WIDTH)),tt=computed(()=>computeAggregations(n.value,T.value,d.value?G.value:null)),Xe=computed(()=>{let X=getDataGridStatusBarConfig(o.value.statusBar,n.value.length,w.selectedRowIds.value.size);return X?{...X,aggregation:tt.value??void 0}:null}),Ge=computed(()=>n.value.length===0&&!!o.value.emptyState&&!o.value.isLoading),Ct=computed(()=>G.value!=null||Z.value!=null),Ve=computed(()=>({sortBy:o.value.sortBy,sortDirection:o.value.sortDirection,onColumnSort:o.value.onColumnSort,filters:o.value.filters,onFilterChange:o.value.onFilterChange,filterOptions:o.value.filterOptions,loadingFilterOptions:o.value.loadingFilterOptions,peopleSearch:o.value.peopleSearch})),ht=computed(()=>({editingCell:E.value,activeCell:d.value?Z.value:null,selectionRange:d.value?G.value:null,cutRange:d.value?pe.value:null,copyRange:d.value?Te.value:null,colOffset:D.value,itemsLength:n.value.length,getRowId:i,editable:a.value,onCellValueChanged:s.value,isDragging:d.value?L.value:false,getFormulaValue:o.value.getFormulaValue,hasFormula:o.value.hasFormula,getFormula:o.value.getFormula,formulaVersion:o.value.formulaVersion})),Rt=ref(null),Ye=X=>{Rt.value=X;},Pt=(X,Y,le,Re,se,Ie,me)=>{let be=T.value.find(ke=>ke.columnId===Y);if(be){let ke=parseValue(Re,le,X,be);if(!ke.valid){O(null),Ye(null),ae(void 0);return}Re=ke.value;}if(s.value?.({item:X,columnId:Y,oldValue:le,newValue:Re,rowIndex:se}),O(null),Ye(null),ae(void 0),!me?.skipAdvance&&se<n.value.length-1){let ke=se+1,wt=Ie-D.value;f({rowIndex:ke,columnIndex:Ie}),_({startRow:ke,startCol:wt,endRow:ke,endCol:wt});}},he=()=>{O(null),Ye(null),ae(void 0);},bt=computed(()=>({flatColumns:C.value,visibleCols:T.value,visibleColumnCount:I.value,totalColCount:P.value,colOffset:D.value,hasCheckboxCol:y.value,hasRowNumbersCol:h.value,rowIndexByRowId:S.value,containerWidth:Oe.value,minTableWidth:Me.value,desiredTableWidth:vt.value,columnSizingOverrides:De.value,setColumnSizingOverrides:st,onColumnResized:o.value.onColumnResized,measuredColumnWidths:$e.value,stickyHeader:o.value.stickyHeader??true})),St=computed(()=>({selectedRowIds:w.selectedRowIds.value,updateSelection:w.updateSelection,handleRowCheckboxChange:w.handleRowCheckboxChange,handleSelectAll:w.handleSelectAll,allSelected:w.allSelected.value,someSelected:w.someSelected.value})),ut=computed(()=>({editingCell:E.value,setEditingCell:O,pendingEditorValue:ee.value,setPendingEditorValue:ae,commitCellEdit:Pt,cancelPopoverEdit:he,popoverAnchorEl:Rt.value,setPopoverAnchorEl:Ye})),yt=computed(()=>({activeCell:d.value?Z.value:null,setActiveCell:d.value?f:Ze,selectionRange:d.value?G.value:null,setSelectionRange:d.value?_:Ze,handleCellMouseDown:d.value?Qe:qr,handleSelectAllCells:d.value?V:Ze,hasCellSelection:d.value?Ct.value:false,handleGridKeyDown:d.value?Ke:Xr,handleFillHandleMouseDown:d.value?Be:Ze,handleCopy:d.value?U:Ze,handleCut:d.value?j:Ze,handlePaste:d.value?Q:$r,cutRange:d.value?pe.value:null,copyRange:d.value?Te.value:null,clearClipboardRanges:d.value?Le:Ze,canUndo:v.canUndo.value,canRedo:v.canRedo.value,onUndo:v.undo,onRedo:v.redo,isDragging:d.value?L.value:false})),Dt=computed(()=>({menuPosition:d.value?k.value:null,setMenuPosition:d.value?H:Ze,handleCellContextMenu:d.value?J:jr,closeContextMenu:d.value?te:Ze})),Vt=computed(()=>({headerFilterInput:Ve.value,cellDescriptorInput:ht.value,statusBarConfig:Xe.value,showEmptyInGrid:Ge.value,onCellError:o.value.onCellError})),dt=computed(()=>({pinnedColumns:Pe.pinnedColumns.value,pinColumn:Pe.pinColumn,unpinColumn:Pe.unpinColumn,isPinned:Pe.isPinned,leftOffsets:He.value,rightOffsets:qe.value,headerMenu:{isOpen:ie.isOpen.value,openForColumn:ie.openForColumn.value,anchorElement:ie.anchorElement.value,open:ie.open,close:ie.close,handlePinLeft:ie.handlePinLeft,handlePinRight:ie.handlePinRight,handleUnpin:ie.handleUnpin,handleSortAsc:ie.handleSortAsc,handleSortDesc:ie.handleSortDesc,handleClearSort:ie.handleClearSort,handleAutosizeThis:ie.handleAutosizeThis,handleAutosizeAll:ie.handleAutosizeAll,canPinLeft:ie.canPinLeft.value,canPinRight:ie.canPinRight.value,canUnpin:ie.canUnpin.value,currentSort:ie.currentSort.value,isSortable:ie.isSortable.value,isResizable:ie.isResizable.value}}));return {layout:bt,rowSelection:St,editing:ut,interaction:yt,contextMenu:Dt,viewModels:Vt,pinning:dt}}function mn(e){let{columnSizingOverrides:o,setColumnSizingOverrides:t,minWidth:n=80,defaultWidth:i=120,onColumnResized:m}=e,u=0,a=null;return onUnmounted(()=>{a?.(),a=null;}),{handleResizeStart:(s,c)=>{s.preventDefault(),s.stopPropagation();let C=s.clientX,r=c.columnId,g=s.currentTarget.parentElement,R=g?g.getBoundingClientRect().width:o.value[r]?.widthPx??c.idealWidth??c.defaultWidth??i,T=R,I=document.body.style.cursor,y=document.body.style.userSelect;document.body.style.cursor="col-resize",document.body.style.userSelect="none";let h=()=>{t({...o.value,[r]:{widthPx:T}});},b=r===ROW_NUMBER_COLUMN_ID?ROW_NUMBER_COLUMN_MIN_WIDTH:n,P=w=>{let E=w.clientX-C;T=Math.max(b,R+E),u||(u=requestAnimationFrame(()=>{u=0,h();}));},D=()=>{document.removeEventListener("pointermove",P),document.removeEventListener("pointerup",S),a=null,document.body.style.cursor=I,document.body.style.userSelect=y,u&&(cancelAnimationFrame(u),u=0);},S=()=>{D(),h(),m?.(r,T);};document.addEventListener("pointermove",P),document.addEventListener("pointerup",S),a=D;},handleResizeDoubleClick:(s,c)=>{s.preventDefault(),s.stopPropagation();let C=c.columnId,g=(s.currentTarget.closest("th")??s.currentTarget.parentElement)?.closest("table")?.parentElement??void 0,R=measureColumnContentWidth(C,n,g);t({...o.value,[C]:{widthPx:R}}),m?.(C,R);},getColumnWidth:s=>o.value[s.columnId]?.widthPx??s.idealWidth??s.defaultWidth??i}}function fn(e,o){let t=ref(e.value),n;return watch(e,i=>{n!==void 0&&clearTimeout(n),n=setTimeout(()=>{t.value=i;},o);}),onUnmounted(()=>{n!==void 0&&clearTimeout(n);}),t}function Vo(e,o){let t,n=e,i,m=((...u)=>{n=e,i=u,t!==void 0&&clearTimeout(t),t=setTimeout(()=>{n(...u),i=void 0,t=void 0;},o);});return m.cancel=()=>{t!==void 0&&clearTimeout(t),t=void 0,i=void 0;},m.flush=()=>{if(t!==void 0&&i!==void 0){clearTimeout(t),t=void 0;let u=i;i=void 0,n(...u);}},onUnmounted(()=>{t!==void 0&&clearTimeout(t);}),m}function pn(e){let{textValue:o="",onTextChange:t}=e,n=ref(o);return watch(e.isFilterOpen,a=>{a&&(n.value=e.textValue??"");}),{tempTextValue:n,setTempTextValue:a=>{n.value=a;},handleTextApply:()=>{t?.(n.value.trim());},handleTextClear:()=>{n.value="";}}}var aa=150,oo=[];function vn(e){let{onFilterChange:o}=e,t=ref(new Set(e.selectedValues??oo)),n=ref(""),i=fn(n,aa);watch(e.isFilterOpen,c=>{c&&(t.value=new Set(e.selectedValues??oo),n.value="");});let m=computed(()=>{let c=e.options??oo;if(!i.value.trim())return c;let C=i.value.toLowerCase().trim();return c.filter(r=>r.toLowerCase().includes(C))});return {tempSelected:t,setTempSelected:c=>{t.value=c;},searchText:n,setSearchText:c=>{n.value=c;},debouncedSearchText:i,filteredOptions:m,handleCheckboxChange:(c,C)=>{let r=new Set(t.value);C?r.add(c):r.delete(c),t.value=r;},handleSelectAll:()=>{t.value=new Set(m.value);},handleClearSelection:()=>{t.value=new Set;},handleApplyMultiSelect:()=>{o?.(Array.from(t.value));}}}var sa=300;function Cn(e){let{onUserChange:o,filterType:t}=e,n=ref(null),i,m=ref([]),u=ref(false),a=ref(""),d=s=>{a.value=s;};return watch(e.isFilterOpen,s=>{s&&(a.value="",m.value=[],t==="people"&&setTimeout(()=>n.value?.focus(),50));}),watch([a,()=>e.peopleSearch,e.isFilterOpen],([s,c,C])=>{if(i&&clearTimeout(i),!(!c||!C||t!=="people")){if(!s.trim()){m.value=[];return}u.value=true,i=setTimeout(async()=>{try{let r=await c(s);m.value=r.slice(0,10);}catch{m.value=[];}finally{u.value=false;}},sa);}}),onUnmounted(()=>{i&&clearTimeout(i);}),{peopleSuggestions:m,isPeopleLoading:u,peopleSearchText:a,setPeopleSearchText:d,peopleInputRef:n,handleUserSelect:s=>{o?.(s);},handleClearUser:()=>{o?.(void 0);}}}function hn(e){let{onDateChange:o}=e,t=ref(e.dateValue?.from??""),n=ref(e.dateValue?.to??"");return watch(e.isFilterOpen,d=>{d&&(t.value=e.dateValue?.from??"",n.value=e.dateValue?.to??"");}),{tempDateFrom:t,setTempDateFrom:d=>{t.value=d;},tempDateTo:n,setTempDateTo:d=>{n.value=d;},handleDateApply:()=>{let d=t.value||void 0,p=n.value||void 0;o?.(d||p?{from:d,to:p}:void 0);},handleDateClear:()=>{t.value="",n.value="";}}}var ma=[];function Ko(e){let{filterType:o,onSort:t}=e,n=()=>e.selectedValues??ma,i=ref(null),m=ref(null),u=ref(false),a=ref(null),d=f=>{u.value=f;},p=pn({textValue:e.textValue,onTextChange:e.onTextChange,isFilterOpen:u}),v=vn({selectedValues:e.selectedValues,onFilterChange:e.onFilterChange,options:e.options,isFilterOpen:u}),s=Cn({selectedUser:e.selectedUser,onUserChange:e.onUserChange,peopleSearch:e.peopleSearch,isFilterOpen:u,filterType:o}),c=hn({dateValue:e.dateValue,onDateChange:e.onDateChange,isFilterOpen:u});watch(u,f=>{f||(a.value=null);});let C=null,r=null,g,R=()=>{T(),C=f=>{let x=f.target;m.value&&!m.value.contains(x)&&i.value&&!i.value.contains(x)&&(u.value=false);},r=f=>{(f.key==="Escape"||f.key==="Esc")&&(f.preventDefault(),f.stopPropagation(),u.value=false);},g=setTimeout(()=>{C&&document.addEventListener("mousedown",C);},0),document.addEventListener("keydown",r,true);},T=()=>{g&&clearTimeout(g),C&&document.removeEventListener("mousedown",C),r&&document.removeEventListener("keydown",r,true),C=null,r=null;};watch(u,f=>{f?R():T();}),onUnmounted(()=>T());let I=f=>{if(f.stopPropagation(),f.preventDefault(),!u.value&&i.value){let x=i.value.getBoundingClientRect();a.value={top:x.bottom+4,left:x.left};}u.value=!u.value;},y=f=>{f.stopPropagation(),t?.();},h=()=>{v.handleApplyMultiSelect(),u.value=false;},b=()=>{p.handleTextApply(),u.value=false;},P=f=>{s.handleUserSelect(f),u.value=false;},D=()=>{s.handleClearUser(),u.value=false;},S=()=>{c.handleDateApply(),u.value=false;},w=f=>f.stopPropagation(),E=f=>f.stopPropagation(),O=f=>f.stopPropagation(),ee=f=>f.stopPropagation(),ae=f=>{f.key!=="Escape"&&f.key!=="Esc"&&f.stopPropagation();},Z=computed(()=>o==="multiSelect"?n().length>0:o==="text"?!!(e.textValue??"").trim():o==="people"?!!e.selectedUser:o==="date"?!!(e.dateValue?.from||e.dateValue?.to):false);return {headerRef:i,popoverRef:m,peopleInputRef:s.peopleInputRef,isFilterOpen:u,setFilterOpen:d,tempSelected:v.tempSelected,setTempSelected:v.setTempSelected,tempTextValue:p.tempTextValue,setTempTextValue:p.setTempTextValue,searchText:v.searchText,setSearchText:v.setSearchText,debouncedSearchText:v.debouncedSearchText,filteredOptions:v.filteredOptions,peopleSuggestions:s.peopleSuggestions,isPeopleLoading:s.isPeopleLoading,peopleSearchText:s.peopleSearchText,setPeopleSearchText:s.setPeopleSearchText,tempDateFrom:c.tempDateFrom,setTempDateFrom:c.setTempDateFrom,tempDateTo:c.tempDateTo,setTempDateTo:c.setTempDateTo,hasActiveFilter:Z,popoverPosition:a,handlers:{handleFilterIconClick:I,handleApplyMultiSelect:h,handleTextApply:b,handleTextClear:p.handleTextClear,handleUserSelect:P,handleClearUser:D,handleCheckboxChange:v.handleCheckboxChange,handleSelectAll:v.handleSelectAll,handleClearSelection:v.handleClearSelection,handlePopoverClick:w,handleInputFocus:E,handleInputMouseDown:O,handleInputClick:ee,handleInputKeyDown:ae,handleDateApply:S,handleDateClear:c.handleDateClear,handleSortClick:y}}}function qo(e){let{columns:o,visibleColumns:t,onVisibilityChange:n}=e,i=ref(false),m=null,u=()=>{a(),m=R=>{R.key==="Escape"&&(R.preventDefault(),i.value=false);},document.addEventListener("keydown",m,true);},a=()=>{m&&(document.removeEventListener("keydown",m,true),m=null);};watch(i,R=>{R?u():a();}),onUnmounted(()=>a());let d=R=>{i.value=R;},p=()=>{i.value=!i.value;},v=()=>{i.value=false;},s=R=>T=>{n(R,T);},c=()=>{o.value.forEach(R=>{t.value.has(R.columnId)||n(R.columnId,true);});},C=()=>{o.value.forEach(R=>{!R.required&&t.value.has(R.columnId)&&n(R.columnId,false);});},r=computed(()=>t.value.size),g=computed(()=>o.value.length);return {open:i,setOpen:d,handleToggle:p,handleClose:v,handleCheckboxChange:s,handleSelectAll:c,handleClearAll:C,visibleCount:r,totalCount:g}}function Xo(e){let{value:o,editorType:t,onCommit:n,onCancel:i,dateFormat:m,dateEditorType:u}=e,a=m??DEFAULT_DATE_FORMAT,d=ref((()=>{if(o==null)return "";if(t==="date"){if(u==="native"){let g=String(o);return g.match(/^\d{4}-\d{2}-\d{2}/)?g.substring(0,10):g}return formatDateForDisplay(o,a)??""}return String(o)})()),p=g=>{d.value=g;},v=g=>{if(t==="date"&&u!=="native"){if(!g||!g.trim()){n(null);return}let R=parseUserInputDate(g,a);if(R!==null){let T=R.getUTCFullYear().toString().padStart(4,"0"),I=(R.getUTCMonth()+1).toString().padStart(2,"0"),y=R.getUTCDate().toString().padStart(2,"0");n(`${T}-${I}-${y}`);}else n(null);}else n(g);},s=g=>{n(g);},c=()=>{i();};return {localValue:d,setLocalValue:p,handleKeyDown:g=>{g.key==="Escape"&&(g.preventDefault(),g.stopPropagation(),c()),g.key==="Enter"&&(t==="text"||t==="date")&&(g.preventDefault(),g.stopPropagation(),v(d.value));},handleBlur:()=>{(t==="text"||t==="date")&&v(d.value);},commit:s,cancel:c}}function Yo(e){let{values:o,formatValue:t,initialValue:n,onCommit:i,onCancel:m}=e,u=ref(""),a=o.findIndex(r=>String(r)===String(n)),d=ref(Math.max(a,0)),p=r=>{u.value=r;},v=r=>t?t(r):r!=null?String(r):"",s=computed(()=>{if(!u.value.trim())return o;let r=u.value.toLowerCase();return o.filter(g=>v(g).toLowerCase().includes(r))}),c=r=>{i(r);};return {searchText:u,setSearchText:p,filteredValues:s,highlightedIndex:d,handleKeyDown:r=>{switch(r.key){case "ArrowDown":r.preventDefault(),d.value=Math.min(d.value+1,s.value.length-1);break;case "ArrowUp":r.preventDefault(),d.value=Math.max(d.value-1,0);break;case "Enter":r.preventDefault(),r.stopPropagation(),s.value.length>0&&d.value<s.value.length&&c(s.value[d.value]);break;case "Escape":r.preventDefault(),r.stopPropagation(),m();break}},selectValue:c,getDisplayText:v}}var Ia=8,Ta=5;function bn(e){let{columnOrder:o,onColumnOrderChange:t,tableRef:n,pinnedColumns:i}=e,m=ref(false),u=ref(null),a=null,d="unpinned",p=0,v=null;return onUnmounted(()=>{v?.(),v=null;}),{isDragging:m,dropIndicatorX:u,handleHeaderMouseDown:(c,C)=>{if(C.button!==0)return;let r=C.target.closest("th");if(r){let w=r.getBoundingClientRect();if(C.clientX>w.right-Ia)return}if(C.preventDefault(),!n.value||!t.value)return;a=c,d=getPinStateForColumn(c,i?.value),u.value=null;let R=C.clientX,T=false,I=C.clientX,y=-1,h=document.body.style.cursor,b=document.body.style.userSelect;document.body.style.cursor="grabbing",document.body.style.userSelect="none";let P=w=>{!T&&Math.abs(w.clientX-R)<Ta||(T||(T=true,m.value=true),I=w.clientX,p||(p=requestAnimationFrame(()=>{p=0;let E=n.value;if(!E||!a)return;let O=calculateDropTarget({mouseX:I,columnOrder:o.value,draggedColumnId:a,draggedPinState:d,tableElement:E,pinnedColumns:i?.value});O?(y=O.targetIndex,u.value=O.indicatorX):u.value=null;})));},D=()=>{window.removeEventListener("pointermove",P,true),window.removeEventListener("pointerup",S,true),v=null,document.body.style.cursor=h,document.body.style.userSelect=b,p&&(cancelAnimationFrame(p),p=0);},S=()=>{if(D(),T&&a&&y>=0&&t.value){let w=reorderColumnArray(o.value,a,y);t.value(w);}a=null,m.value=false,u.value=null,y=-1;};window.addEventListener("pointermove",P,true),window.addEventListener("pointerup",S,true),v=D;}}}var Aa=100;function yn(e){let{totalRows:o,rowHeight:t,enabled:n,overscan:i=5,threshold:m=Aa,columnsEnabled:u,columnWidths:a,columnOverscan:d=2}=e;onMounted(()=>{validateVirtualScrollConfig({enabled:n.value,rowHeight:t});});let p=ref(null),v=ref(0),s=ref(0),c=ref(0),C=ref(0),r=0,g,R=null,T=computed(()=>n.value&&o.value>=m),I=computed(()=>T.value?computeVisibleRange(v.value,t,c.value,o.value,i):{startIndex:0,endIndex:Math.max(0,o.value-1),offsetTop:0,offsetBottom:0}),y=computed(()=>n.value?computeTotalHeight(o.value,t):0),h=computed(()=>{if(!u?.value)return null;let S=a?.value;return !S||S.length===0?null:computeVisibleColumnRange(s.value,S,C.value,d)}),b=()=>{r||(r=requestAnimationFrame(()=>{r=0;let S=p.value;S&&(v.value=S.scrollTop,s.value=S.scrollLeft);}));},P=()=>{let S=p.value;S&&(c.value=S.clientHeight,C.value=S.clientWidth);};return watch(p,S=>{S!==R&&(R&&R.removeEventListener("scroll",b),g&&(g.disconnect(),g=void 0),R=S,S&&(S.addEventListener("scroll",b,{passive:true}),typeof ResizeObserver<"u"&&(g=new ResizeObserver(P),g.observe(S)),P(),v.value=S.scrollTop,s.value=S.scrollLeft));}),onUnmounted(()=>{let S=p.value;S&&S.removeEventListener("scroll",b),g?.disconnect(),r&&(cancelAnimationFrame(r),r=0);}),{containerRef:p,visibleRange:I,totalHeight:y,scrollToRow:(S,w="start")=>{let E=p.value;E&&(E.scrollTop=getScrollTopForRow(S,t,c.value,w));},columnRange:h,scrollLeft:s}}function xn(e){let{props:o}=e,t=ref(null),n=ref(null),i=ref(null),m=ref(false),u=cn({props:o,wrapperRef:t}),a=computed(()=>{let P=o.value;return P.columnOrder?P.columnOrder:flattenColumns(P.columns).filter(D=>P.visibleColumns?.has(D.columnId)??true).map(D=>D.columnId)}),d=computed(()=>o.value.onColumnOrderChange),p=bn({columnOrder:a,onColumnOrderChange:d,tableRef:i}),v=computed(()=>o.value.virtualScroll?.enabled??false),s=computed(()=>o.value.items.length),c=o.value.virtualScroll?.rowHeight??36,C=o.value.virtualScroll?.overscan??5,r=computed(()=>o.value.virtualScroll?.columns===true),g=o.value.virtualScroll?.columnOverscan??2,R=computed(()=>{let P=u.layout.value,{visibleCols:D,columnSizingOverrides:S}=P,w=o.value.pinnedColumns??{},E=[];for(let O of D){if(w[O.columnId]||O.pinned)continue;let ee=S[O.columnId];E.push(ee?ee.widthPx:O.defaultWidth??O.minWidth??DEFAULT_MIN_COLUMN_WIDTH);}return E}),T=yn({totalRows:s,rowHeight:c,enabled:v,overscan:C,columnsEnabled:r,columnWidths:R,columnOverscan:g}),I=computed(()=>{if(!r.value)return null;let D=u.layout.value.visibleCols,S=T.columnRange.value,w=o.value.pinnedColumns;return partitionColumnsForVirtualization(D,S,w)}),y=computed(()=>{let D=u.layout.value.visibleCols,S=new Map;for(let w=0;w<D.length;w++)S.set(D[w].columnId,w);return S}),h=computed(()=>u.layout.value.columnSizingOverrides),b=mn({columnSizingOverrides:h,setColumnSizingOverrides:P=>u.layout.value.setColumnSizingOverrides(P)});return {wrapperRef:t,tableContainerRef:n,tableRef:i,lastMouseShift:m,state:u,columnReorder:p,virtualScroll:T,virtualScrollEnabled:v,columnResize:b,columnPartition:I,globalColIndexMap:y}}function Qo(e){let o=[];for(let t of e)o.push(t.groupKey),t.subGroups&&o.push(...Qo(t.subGroups));return o}function Tn({items:e,columns:o,groupBy:t}){let n=ref(new Set),i=computed(()=>flattenColumns(o.value)),m=computed(()=>!!t.value&&t.value.length>0),u=computed(()=>{if(!m.value)return [];let{groupTree:s}=buildGroupedRows(e.value,i.value,t.value,new Set);return s});return watch(()=>t.value?.join(",")??"",(s,c)=>{if(s!==c)if(m.value){let C=new Set(u.value.map(r=>r.groupKey));n.value=C;}else n.value=new Set;}),{displayRows:computed(()=>{if(!m.value)return e.value;let{displayRows:s}=buildGroupedRows(e.value,i.value,t.value,n.value);return s}),groupTree:u,expandedGroups:n,toggleGroup:s=>{let c=new Set(n.value);c.has(s)?c.delete(s):c.add(s),n.value=c;},expandAll:()=>{let s=Qo(u.value);n.value=new Set(s);},collapseAll:()=>{n.value=new Set;},isGroupingActive:m}}function Pn(e,o,t){let n={"data-row-index":e.rowIndex,"data-col-index":e.globalColIndex,...e.isActive?{"data-active-cell":"true"}:{},...e.isInRange?{"data-in-range":"true"}:{},tabindex:e.isActive?0:-1,onPointerdown:i=>{t.setEditingCell(null),t.handleCellMouseDown(i,e.rowIndex,e.globalColIndex);},onClick:()=>t.setActiveCell({rowIndex:e.rowIndex,columnIndex:e.globalColIndex}),onContextmenu:i=>t.handleCellContextMenu(i)};return e.canEditAny&&(n.role="button",n.onDblclick=()=>t.setEditingCell({rowId:e.rowId,columnId:o})),n}var el=()=>{};function Za(e){return defineComponent({name:"DataGridTable",props:{gridProps:{type:Object,required:true}},setup(o){let t=computed(()=>o.gridProps),{wrapperRef:n,tableContainerRef:i,tableRef:m,lastMouseShift:u,state:a,columnReorder:{isDragging:d,dropIndicatorX:p,handleHeaderMouseDown:v},virtualScroll:{containerRef:s,visibleRange:c,totalHeight:C,scrollToRow:r},virtualScrollEnabled:g,columnResize:{handleResizeStart:R,handleResizeDoubleClick:T,getColumnWidth:I},columnPartition:y,globalColIndexMap:h$1}=xn({props:t}),b=computed(()=>{let f=t.value;return f.showRowNumbers||f.showColumnLetters?((f.currentPage??1)-1)*(f.pageSize??25):0});watch([()=>a.interaction.value.activeCell,b],([f,x])=>{let F=t.value.onActiveCellChange;F&&F(f?formatCellReference(f.columnIndex-a.layout.value.colOffset,x+f.rowIndex+1):null);},{immediate:true});let P=computed(()=>t.value.items),D=computed(()=>t.value.columns),S=computed(()=>t.value.groupBy),w=Tn({items:P,columns:D,groupBy:S}),E=f=>{u.value=f.shiftKey;},O=f=>f.preventDefault(),ee=f=>f.stopPropagation(),ae=computed(()=>buildHeaderRows(t.value.columns,t.value.visibleColumns)),Z=computed(()=>{let f=a.layout.value,x=a.pinning.value,{visibleCols:F,columnSizingOverrides:G,measuredColumnWidths:_}=f,{leftOffsets:B,rightOffsets:V}=x,L={},k={},H={},J={};for(let te=0;te<F.length;te++){let U=F[te],j=U.pinned==="left",Q=U.pinned==="right",pe=I(U),Te=!!G[U.columnId],Le=_[U.columnId],Qe=U.minWidth??estimateHeaderMinWidth(U.name),Be=Te?pe:Math.max(Qe,Le??0),We={minWidth:`${Be}px`,width:`${pe}px`,maxWidth:`${pe}px`},Ke={minWidth:`${Be}px`,width:`${pe}px`,maxWidth:`${pe}px`},Oe=["ogrid-data-cell"],Me=["ogrid-header-cell"];j?(Oe.push("ogrid-data-cell--pinned-left"),We.left=`${B[U.columnId]??0}px`,Me.push("ogrid-header-cell--pinned-left"),Ke.left=`${B[U.columnId]??0}px`):Q&&(Oe.push("ogrid-data-cell--pinned-right"),We.right=`${V[U.columnId]??0}px`,Me.push("ogrid-header-cell--pinned-right"),Ke.right=`${V[U.columnId]??0}px`),L[U.columnId]=We,k[U.columnId]=Oe.join(" "),H[U.columnId]=Ke,J[U.columnId]=Me.join(" ");}return {cellStyles:L,cellClasses:k,hdrStyles:H,hdrClasses:J}});return ()=>{let f=o.gridProps,x=a.layout.value,F=a.rowSelection.value,G=a.editing.value,_=a.interaction.value,B=a.contextMenu.value,V=a.viewModels.value,L=a.pinning.value,{headerMenu:k}=L,{visibleCols:H,hasCheckboxCol:J,hasRowNumbersCol:te,colOffset:U,containerWidth:j,minTableWidth:Q,desiredTableWidth:pe}=x,Te=f.currentPage??1,Le=f.pageSize??25,Qe=te?(Te-1)*Le:0,{selectedRowIds:Be,handleRowCheckboxChange:We,handleSelectAll:Ke,allSelected:Oe,someSelected:Me}=F,{editingCell:vt,setEditingCell:De,pendingEditorValue:st,setPendingEditorValue:Pe,commitCellEdit:gt,cancelPopoverEdit:ie,popoverAnchorEl:$e,setPopoverAnchorEl:et}=G,{setActiveCell:He,setSelectionRange:qe,handleCellMouseDown:tt,handleSelectAllCells:Xe,selectionRange:Ge,hasCellSelection:Ct,handleGridKeyDown:Ve,handleFillHandleMouseDown:ht,handleCopy:Rt,handleCut:Ye,handlePaste:Pt,cutRange:he,copyRange:bt,canUndo:St,canRedo:ut,onUndo:yt,onRedo:Dt,isDragging:Vt}=_,{menuPosition:dt,handleCellContextMenu:X,closeContextMenu:Y}=B,{headerFilterInput:le,cellDescriptorInput:Re,statusBarConfig:se,showEmptyInGrid:Ie,onCellError:me}=V,be=f.items,ke=f.getRowId,wt=w.displayRows.value,kn=w.isGroupingActive.value,ze=w.expandedGroups.value,An=f.layoutMode??"fill",zt=f.rowSelection??"none",Nt=f.suppressHorizontalScroll,Ln=f.stickyHeader??true,Et=f.isLoading??false,Bn=f.loadingMessage??"Loading\u2026",l=f["aria-label"],M=f["aria-labelledby"],ne=An==="content",ge=!Nt&&j>0&&(Q>j||pe>j),Se=ae.value,je={commitCellEdit:gt,setEditingCell:De,setPendingEditorValue:Pe,cancelPopoverEdit:ie},nt={handleCellMouseDown:tt,setActiveCell:He,setEditingCell:De,handleCellContextMenu:X},Ee=$=>{if(zt!=="single")return;let oe=$.currentTarget.dataset.rowId;oe&&F.updateSelection(Be.has(oe)?new Set:new Set([oe]));},xt=($,z,oe,Ae)=>{try{return Ft($,z,oe,Ae)}catch(N){return me&&me(N instanceof Error?N:new Error(String(N)),void 0),""}},Ft=($,z,oe,Ae)=>{let N=getCellRenderDescriptor($,z,oe,Ae,Re);if(N.mode==="editing-inline"){let de=buildInlineEditorProps($,z,N,je);return h("div",{class:"ogrid-editing-cell"},h(e.InlineCellEditor,{value:de.value,item:de.item,column:de.column,rowIndex:de.rowIndex,editorType:de.editorType,onCommit:de.onCommit,onCancel:de.onCancel}))}if(N.mode==="editing-popover"&&typeof z.cellEditor=="function"){let de=buildPopoverEditorProps($,z,N,st,je),re=z.cellEditor,ct=resolveCellDisplayContent(z,$,N.displayValue),lt=resolveCellStyle(z,$,N.displayValue);return h("div",[h("div",{ref:mt=>{mt&&et(mt);},class:"ogrid-popover-anchor"},[lt?h("span",{style:lt},[ct]):ct]),$e?h(re,de):null])}let Mt=Pn(N,z.columnId,nt),we=["ogrid-cell-content"];z.type==="numeric"?we.push("ogrid-cell-content--numeric"):z.type==="boolean"&&we.push("ogrid-cell-content--boolean"),N.canEditAny&&we.push("ogrid-cell-content--editable"),N.isActive&&we.push("ogrid-cell-content--active"),N.isActive&&N.isInRange&&we.push("ogrid-cell-content--active-in-range"),N.isInRange&&!N.isActive&&we.push("ogrid-cell-in-range"),N.isInCutRange&&we.push("ogrid-cell-cut");let It;if(N.columnType==="boolean"){let de=!!N.displayValue;It=h("input",{type:"checkbox",checked:de,disabled:!N.canEditAny,onChange:N.canEditAny?()=>{let re=N.rowIndex,ct=N.globalColIndex;je.commitCellEdit($,z.columnId,de,!de,re,ct,{skipAdvance:true});}:void 0,onPointerdown:re=>handleBooleanCellPointerDown(re,N.rowIndex,N.globalColIndex,U,{setActiveCell:He,setSelectionRange:qe}),onClick:re=>re.stopPropagation(),style:`margin:0;cursor:${N.canEditAny?"pointer":"default"};outline:none`,"aria-label":de?"Checked":"Unchecked"});}else {let de=resolveCellDisplayContent(z,$,N.displayValue),re=resolveCellStyle(z,$,N.displayValue);It=re?h("span",{style:re},de):de;}return h("div",{...Mt,class:we.join(" ")},[It,...N.canEditAny&&N.isSelectionEndCell?[h("div",{onPointerdown:ht,"aria-label":"Fill handle",class:"ogrid-fill-handle"})]:[]])},{cellStyles:Fe,cellClasses:ye,hdrStyles:Ne,hdrClasses:Ce}=Z.value,Ue=H.map($=>({col:$,tdClasses:ye[$.columnId]||"ogrid-data-cell",tdDynamicStyle:Fe[$.columnId]||{}})),ue=y.value,ot=Ue,Ut=0,Ot=0;if(ue){let $=new Set;for(let z of ue.pinnedLeft)$.add(z.columnId);for(let z of ue.virtualizedUnpinned)$.add(z.columnId);for(let z of ue.pinnedRight)$.add(z.columnId);ot=Ue.filter(z=>$.has(z.col.columnId)),Ut=ue.leftSpacerWidth,Ot=ue.rightSpacerWidth;}let nl=h$1.value,io=$=>{let z=Ne[$.columnId]||{};return {classes:Ce[$.columnId]||"ogrid-header-cell",style:{...z,cursor:d.value?"grabbing":"grab"}}},ol=g.value,so={position:"relative",width:ne?"fit-content":"100%",maxWidth:"100%",overflowX:Nt?"hidden":ge?"auto":"hidden",overflowY:"auto",backgroundColor:"#fff",willChange:"scroll-position",...ol?{flex:"1",minHeight:"0"}:{minHeight:Et&&be.length===0?"200px":"auto"}};return f.rowHeight&&(so["--ogrid-row-height"]=`${f.rowHeight}px`),h("div",{class:"ogrid-outer-container"},[h("div",{ref:$=>{n.value=$,s.value=$;},tabindex:0,role:"region","aria-label":l??(M?void 0:"Data grid"),"aria-labelledby":M,onPointerdown:E,onKeydown:Ve,onContextmenu:O,"data-overflow-x":ge?"true":"false","data-ogrid-scroll-container":"",style:so},[h("div",{class:"ogrid-scroll-wrapper"},[h("div",{style:{minWidth:ge?`${Q}px`:void 0,overflowX:"clip"}},[h("div",{ref:$=>{i.value=$;},class:["ogrid-table-container",Et&&be.length>0?"ogrid-table-container--loading":""]},[...d.value&&p.value!==null?[h("div",{class:"ogrid-drop-indicator",style:{left:`${p.value}px`}})]:[],h("table",{ref:$=>{m.value=$;},class:"ogrid-table",role:"grid",style:{minWidth:`${Q}px`},...g.value?{"data-virtual-scroll":""}:{}},[h("thead",{class:Ln?"ogrid-thead ogrid-sticky-header":"ogrid-thead"},[...f.showColumnLetters?[h("tr",{class:"ogrid-column-letter-row"},[...J?[h("th",{class:"ogrid-column-letter-cell"})]:[],...te?[h("th",{class:"ogrid-column-letter-cell"})]:[],...H.map(($,z)=>{let{classes:oe,style:Ae}=io($);return h("th",{key:$.columnId,class:`ogrid-column-letter-cell ${oe}`,style:Ae},indexToColumnLetter(z))})])]:[],...Se.map(($,z)=>h("tr",{key:z,class:"ogrid-header-row"},[...z===Se.length-1&&J?[h("th",{class:"ogrid-checkbox-header",style:{width:`${CHECKBOX_COLUMN_WIDTH}px`,minWidth:`${CHECKBOX_COLUMN_WIDTH}px`,maxWidth:`${CHECKBOX_COLUMN_WIDTH}px`}},e.renderCheckbox({modelValue:Oe,indeterminate:Me&&!Oe,ariaLabel:"Select all rows",onChange:oe=>Ke(!!oe)}))]:[],...z===0&&z<Se.length-1&&J?[h("th",{rowSpan:Se.length-1,class:"ogrid-checkbox-spacer",style:{width:`${CHECKBOX_COLUMN_WIDTH}px`,minWidth:`${CHECKBOX_COLUMN_WIDTH}px`}})]:[],...z===Se.length-1&&te?[(()=>{let oe=x.columnSizingOverrides[ROW_NUMBER_COLUMN_ID]?.widthPx??ROW_NUMBER_COLUMN_WIDTH;return h("th",{class:"ogrid-row-number-header",style:{width:`${oe}px`,minWidth:`${oe}px`,maxWidth:`${oe}px`,position:"sticky",left:J?`${CHECKBOX_COLUMN_WIDTH}px`:"0",zIndex:3}},["#",h("div",{onPointerdown:Ae=>{He(null),qe(null),n.value?.focus({preventScroll:true}),Ae.stopPropagation(),R(Ae,{columnId:ROW_NUMBER_COLUMN_ID,name:"#"});},class:"ogrid-resize-handle"})])})()]:[],...z===0&&z<Se.length-1&&te?[(()=>{let oe=x.columnSizingOverrides[ROW_NUMBER_COLUMN_ID]?.widthPx??ROW_NUMBER_COLUMN_WIDTH;return h("th",{rowSpan:Se.length-1,class:"ogrid-row-number-spacer",style:{width:`${oe}px`,position:"sticky",left:J?`${CHECKBOX_COLUMN_WIDTH}px`:"0",zIndex:3}})})()]:[],...$.map((oe,Ae)=>{if(oe.isGroup)return h("th",{key:Ae,colSpan:oe.colSpan,scope:"colgroup",class:"ogrid-column-group-header"},oe.label);if(!oe.columnDef)return null;let N=oe.columnDef,{classes:Mt,style:we}=io(N),de=f.sortBy===N.columnId?f.sortDirection==="asc"?"ascending":"descending":void 0;return h("th",{key:N.columnId,scope:"col","data-column-id":N.columnId,rowSpan:Se.length>1?Se.length-z:void 0,class:Mt,style:we,"aria-sort":de,onPointerdown:re=>v(N.columnId,re)},[h("div",{class:"ogrid-header-content"},[h(e.ColumnHeaderFilter,getHeaderFilterConfig(N,le)),h("button",{onClick:re=>{re.stopPropagation(),k.isOpen&&k.openForColumn===N.columnId?k.close():k.open(N.columnId,re.currentTarget);},"aria-label":"Column options",title:"Column options",class:"ogrid-column-menu-btn"},"\u22EE")]),h("div",{onPointerdown:re=>{He(null),qe(null),n.value?.focus({preventScroll:true}),re.stopPropagation(),R(re,N);},onDblclick:re=>T(re,N),class:"ogrid-resize-handle"})])})]))]),...Ie?[]:[h("tbody",{},(()=>{let $=g.value,z=c.value,oe=kn?wt:be,Ae=$?z.startIndex:0,N=$?Math.min(z.endIndex,oe.length-1):oe.length-1,Mt=H.length+(J?1:0)+(te?1:0),we=[];$&&z.offsetTop>0&&we.push(h("tr",{key:"__vs-top",style:{height:`${z.offsetTop}px`}}));let It=0;for(let de=Ae;de<=N;de++){let re=oe[de];if(!re)continue;if(isGroupHeader(re)){let fe=re.group,ll=ze.has(fe.groupKey);we.push(h("tr",{key:`__group__${fe.groupKey}`,style:{background:"var(--ogrid-bg-row-group, var(--ogrid-bg-hover, #f5f5f5))",fontWeight:"500"}},[h("td",{colspan:Mt,style:{paddingLeft:`${fe.depth*16+8}px`}},[h("button",{onClick:()=>w.toggleGroup(fe.groupKey),onKeydown:Hn=>{(Hn.key==="Enter"||Hn.key===" ")&&(Hn.preventDefault(),w.toggleGroup(fe.groupKey));},tabindex:0,style:{background:"none",border:"none",cursor:"pointer",padding:"2px 6px",font:"inherit",display:"inline-flex",alignItems:"center",gap:"6px"}},[h("span",{style:{display:"inline-block",transition:"transform 0.15s",fontSize:"12px",transform:ll?"rotate(90deg)":"rotate(0deg)"}},"\u25B6"),h("span",{},`${fe.displayText} (${fe.itemCount})`)])])]));continue}let ct=re,lt=It++,mt=ke(ct),uo=Be.has(mt);we.push(h("tr",{key:mt,"data-row-id":mt,"aria-selected":uo||void 0,onClick:Ee,style:{cursor:zt==="single"?"pointer":void 0}},[...J?[h("td",{class:"ogrid-checkbox-cell",style:{width:`${CHECKBOX_COLUMN_WIDTH}px`,minWidth:`${CHECKBOX_COLUMN_WIDTH}px`,maxWidth:`${CHECKBOX_COLUMN_WIDTH}px`}},h("div",{"data-row-index":lt,"data-col-index":0,onClick:ee,class:"ogrid-checkbox-wrapper"},e.renderCheckbox({modelValue:uo,ariaLabel:`Select row ${lt+1}`,onChange:fe=>We(mt,fe,lt,u.value)})))]:[],...te?[(()=>{let fe=x.columnSizingOverrides[ROW_NUMBER_COLUMN_ID]?.widthPx??ROW_NUMBER_COLUMN_WIDTH;return h("td",{class:"ogrid-row-number-cell",style:{width:`${fe}px`,minWidth:`${fe}px`,maxWidth:`${fe}px`,padding:"6px",position:"sticky",left:J?`${CHECKBOX_COLUMN_WIDTH}px`:"0",zIndex:2}},String(Qe+lt+1))})()]:[],...Ut>0?[h("td",{key:"__col-spacer-left",style:{width:`${Ut}px`,minWidth:`${Ut}px`,maxWidth:`${Ut}px`,padding:"0"}})]:[],...ot.map(fe=>h("td",{key:fe.col.columnId,"data-column-id":fe.col.columnId,class:fe.tdClasses,style:fe.tdDynamicStyle},[xt(ct,fe.col,lt,nl.get(fe.col.columnId)??0)])),...Ot>0?[h("td",{key:"__col-spacer-right",style:{width:`${Ot}px`,minWidth:`${Ot}px`,maxWidth:`${Ot}px`,padding:"0"}})]:[]]));}return $&&z.offsetBottom>0&&we.push(h("tr",{key:"__vs-bottom",style:{height:`${z.offsetBottom}px`}})),we})())]]),...Ie&&f.emptyState?[e.renderEmptyState(f.emptyState)]:[]])])])]),...dt?[h(Teleport,{to:"body"},h(e.GridContextMenu,{x:dt.x,y:dt.y,hasSelection:Ct,canUndo:St,canRedo:ut,onUndo:yt??el,onRedo:Dt??el,onCopy:Rt,onCut:Ye,onPaste:()=>{Pt();},onSelectAll:Xe,onClose:Y}))]:[],h(Vn,{containerRef:i,selectionRange:Ge,copyRange:bt,cutRange:he,colOffset:U,items:be,visibleColumns:f.visibleColumns instanceof Set?Array.from(f.visibleColumns):f.visibleColumns,columnSizingOverrides:x.columnSizingOverrides,columnOrder:f.columnOrder}),...f.formulaReferences&&f.formulaReferences.length>0?[h(Kn,{containerEl:i.value,references:f.formulaReferences,colOffset:U})]:[],h(e.ColumnHeaderMenu,{isOpen:k.isOpen,anchorElement:k.anchorElement,onClose:k.close,onPinLeft:k.handlePinLeft,onPinRight:k.handlePinRight,onUnpin:k.handleUnpin,onSortAsc:k.handleSortAsc,onSortDesc:k.handleSortDesc,onClearSort:k.handleClearSort,onAutosizeThis:k.handleAutosizeThis,onAutosizeAll:k.handleAutosizeAll,canPinLeft:k.canPinLeft,canPinRight:k.canPinRight,canUnpin:k.canUnpin,currentSort:k.currentSort,isSortable:k.isSortable,isResizable:k.isResizable}),...se?[h(zn,{totalCount:se.totalCount,filteredCount:se.filteredCount,selectedCount:se.selectedCount??Be.size,selectedCellCount:Ge?(Math.abs(Ge.endRow-Ge.startRow)+1)*(Math.abs(Ge.endCol-Ge.startCol)+1):void 0,aggregation:se.aggregation,suppressRowCount:se.suppressRowCount})]:[],...Et?[h("div",{class:"ogrid-loading-overlay"},e.renderSpinner(Bn))]:[]])}}})}var Tt={width:"100%",height:"100%",display:"flex",alignItems:"center",paddingTop:"var(--ogrid-cell-padding-vertical, 6px)",paddingBottom:"var(--ogrid-cell-padding-vertical, 6px)",paddingLeft:"var(--ogrid-cell-padding-horizontal, 10px)",paddingRight:"var(--ogrid-cell-padding-horizontal, 10px)",boxSizing:"border-box",overflow:"hidden",minWidth:"0"};function ii(e){let{renderCheckbox:o}=e;return defineComponent({name:"InlineCellEditor",props:{value:{default:void 0},item:{type:Object,required:true},column:{type:Object,required:true},rowIndex:{type:Number,required:true},editorType:{type:String,required:true},onCommit:{type:Function,required:true},onCancel:{type:Function,required:true}},setup(t){let n=ref(null),i=ref(null),m=ref(null),u=ref(t.value),a=ref(0),d=()=>{let h=i.value,b=m.value;if(!h||!b)return;let P=h.getBoundingClientRect(),D=200,S=window.innerHeight-P.bottom,w=S<D&&P.top>S;b.style.position="fixed",b.style.left=`${P.left}px`,b.style.width=`${P.width}px`,b.style.maxHeight=`${D}px`,b.style.zIndex="9999",b.style.right="auto",b.style.textAlign="left",w?(b.style.top="auto",b.style.bottom=`${window.innerHeight-P.top}px`):b.style.top=`${P.bottom}px`;},p=null;onMounted(()=>{nextTick(()=>{if(i.value){t.editorType==="richSelect"&&g.value?g.value.focus({preventScroll:true}):i.value.focus({preventScroll:true}),d();let h=i.value,b=h.closest("[data-ogrid-scroll-container]")??h.closest('[style*="overflow"]'),P=()=>{t.onCancel&&t.onCancel();},D=requestAnimationFrame(()=>{b&&b.addEventListener("scroll",P,{passive:true}),window.addEventListener("scroll",P,{passive:true});});p=()=>{cancelAnimationFrame(D),b&&b.removeEventListener("scroll",P),window.removeEventListener("scroll",P);};return}n.value?.focus({preventScroll:true}),n.value?.select();});}),onUnmounted(()=>{p?.();}),watch(()=>t.value,h=>{u.value=h;}),(()=>{let b=(t.column.cellEditorParams?.values??[]).findIndex(P=>String(P)===String(t.value));a.value=Math.max(b,0);})();let s=()=>{nextTick(()=>{let h=m.value;if(!h)return;h.children[a.value]?.scrollIntoView({block:"nearest"});});},c=h=>{let b=t.column.cellEditorParams?.formatValue;return b?b(h):h!=null?String(h):""},C=h=>{let b=t.column.cellEditorParams?.values??[];switch(h.key){case "ArrowDown":h.preventDefault(),a.value=Math.min(a.value+1,b.length-1),s();break;case "ArrowUp":h.preventDefault(),a.value=Math.max(a.value-1,0),s();break;case "Enter":h.preventDefault(),h.stopPropagation(),b.length>0&&a.value<b.length&&t.onCommit(b[a.value]);break;case "Tab":h.preventDefault(),b.length>0&&a.value<b.length&&t.onCommit(b[a.value]);break;case "Escape":h.preventDefault(),h.stopPropagation(),t.onCancel();break}},r=ref(""),g=ref(null),R=ref(null),T=computed(()=>{let h=t.column.cellEditorParams?.values??[],b=r.value.trim().toLowerCase();return b?h.filter(P=>c(P).toLowerCase().includes(b)):h}),I=()=>{nextTick(()=>{let h=R.value;if(!h)return;h.children[a.value]?.scrollIntoView({block:"nearest"});});},y=h=>{let b=T.value;switch(h.key){case "ArrowDown":h.preventDefault(),a.value=Math.min(a.value+1,b.length-1),I();break;case "ArrowUp":h.preventDefault(),a.value=Math.max(a.value-1,0),I();break;case "Enter":h.preventDefault(),h.stopPropagation(),b.length>0&&a.value<b.length&&t.onCommit(b[a.value]);break;case "Escape":h.preventDefault(),h.stopPropagation(),t.onCancel();break}};return ()=>{if(t.editorType==="checkbox"){let h$1=!!t.value;return h("div",{style:{...Tt,justifyContent:"center"}},o({checked:h$1,onChange:b=>t.onCommit(b),onCancel:t.onCancel}))}if(t.editorType==="select"){let h$1=t.column.cellEditorParams?.values??[];return h("div",{ref:b=>{i.value=b;},tabindex:0,style:{...Tt,position:"relative"},onKeydown:C},[h("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",width:"100%",cursor:"pointer",fontSize:"13px",color:"inherit"}},[h("span",c(t.value)),h("span",{style:{marginLeft:"4px",fontSize:"10px",opacity:"0.5"}},"\u25BE")]),h("div",{ref:b=>{m.value=b;},role:"listbox",style:{position:"absolute",top:"100%",left:"0",right:"0",maxHeight:"200px",overflowY:"auto",background:"var(--ogrid-bg, #fff)",border:"1px solid var(--ogrid-border, rgba(0,0,0,0.12))",zIndex:"10",boxShadow:"0 4px 16px rgba(0,0,0,0.2)",textAlign:"left",fontSize:"13px",fontFamily:"inherit"}},[...h$1.map((b,P)=>h("div",{key:String(b),role:"option","aria-selected":P===a.value,onClick:()=>t.onCommit(b),style:{padding:"6px 8px",cursor:"pointer",color:"var(--ogrid-fg, #242424)",fontSize:"13px",...P===a.value?{background:"var(--ogrid-bg-hover, #e8f0fe)"}:{}}},c(b)))])])}if(t.editorType==="richSelect"){let h$1=T.value;return h("div",{ref:b=>{i.value=b;},style:{...Tt,position:"relative"}},[h("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",width:"100%",cursor:"pointer",fontSize:"13px",color:"inherit"}},[h("span",c(t.value)),h("span",{style:{marginLeft:"4px",fontSize:"10px",opacity:"0.5"}},"\u25BE")]),h("div",{ref:b=>{m.value=b;},role:"listbox",style:{position:"absolute",top:"100%",left:"0",right:"0",maxHeight:"200px",overflowY:"auto",background:"var(--ogrid-bg, #fff)",border:"1px solid var(--ogrid-border, rgba(0,0,0,0.12))",zIndex:"10",boxShadow:"0 4px 16px rgba(0,0,0,0.2)",textAlign:"left",fontSize:"13px",fontFamily:"inherit"}},[h("input",{ref:b=>{g.value=b;},type:"text",value:r.value,placeholder:"Search...",onInput:b=>{r.value=b.target.value,a.value=0;},onKeydown:y,style:{width:"100%",padding:"6px 8px",border:"none",borderBottom:"1px solid var(--ogrid-border, rgba(0,0,0,0.12))",background:"var(--ogrid-bg, #fff)",color:"inherit",font:"inherit",fontSize:"13px",outline:"none",boxSizing:"border-box",position:"sticky",top:"0",zIndex:"1"}}),h("div",{ref:b=>{R.value=b;}},h$1.map((b,P)=>h("div",{key:String(b),role:"option","aria-selected":P===a.value,onClick:()=>t.onCommit(b),style:{padding:"6px 8px",cursor:"pointer",color:"var(--ogrid-fg, #242424)",fontSize:"13px",...P===a.value?{background:"var(--ogrid-bg-hover, #e8f0fe)"}:{}}},c(b)))),...h$1.length===0?[h("div",{style:{padding:"6px 8px",color:"var(--ogrid-muted, #999)",fontSize:"13px"}},"No matches")]:[]])])}if(t.editorType==="date"){let h$1=t.column.cellEditorParams?.dateFormat??t.column.dateFormat??DEFAULT_DATE_FORMAT,b=t.column.cellEditorParams?.editorType??"text",P=E=>{if(b!=="native"){let O=parseUserInputDate(E,h$1);if(O!==null){let ee=O.getUTCFullYear().toString().padStart(4,"0"),ae=(O.getUTCMonth()+1).toString().padStart(2,"0"),Z=O.getUTCDate().toString().padStart(2,"0");t.onCommit(`${ee}-${ae}-${Z}`);}else t.onCommit(E||null);}else t.onCommit(E);},D=E=>{E.key==="Enter"&&(E.preventDefault(),P(String(u.value??""))),E.key==="Escape"&&(E.preventDefault(),t.onCancel()),E.key==="Tab"&&(E.preventDefault(),P(String(u.value??"")));};if(b==="native"){let E=(()=>{if(u.value==null)return "";let O=String(u.value);return O.match(/^\d{4}-\d{2}-\d{2}/)?O.substring(0,10):O})();return h("div",{style:Tt},h("input",{ref:O=>{n.value=O;},type:"date",value:E,style:{width:"100%",height:"100%",border:"none",outline:"none",padding:"0 4px",fontSize:"inherit",boxSizing:"border-box"},onInput:O=>{u.value=O.target.value;},onKeydown:D,onBlur:()=>P(String(u.value??""))}))}let S=formatDateForDisplay(t.value,h$1)??"";(u.value==null||u.value==="")&&(u.value=S);let w=getDateInputPlaceholder(h$1);return h("div",{style:Tt},h("input",{ref:E=>{n.value=E;},type:"text",value:u.value,placeholder:w,style:{width:"100%",height:"100%",border:"none",outline:"none",padding:"0 4px",fontSize:"inherit",boxSizing:"border-box"},onInput:E=>{u.value=E.target.value;},onKeydown:D,onBlur:()=>P(String(u.value??""))}))}return h("div",{style:Tt},h("input",{ref:h=>{n.value=h;},type:"text",value:u.value!=null?String(u.value):"",style:{width:"100%",height:"100%",border:"none",outline:"none",padding:"0 4px",fontSize:"inherit",boxSizing:"border-box"},onInput:h=>{u.value=h.target.value;},onKeydown:h=>{h.key==="Enter"&&(h.preventDefault(),t.onCommit(u.value)),h.key==="Escape"&&(h.preventDefault(),t.onCancel()),h.key==="Tab"&&(h.preventDefault(),t.onCommit(u.value));},onBlur:()=>t.onCommit(u.value)}))}}})}var fi=240,ao=36,Mn={columns:"Columns",filters:"Filters"},pi={columns:"\u2261",filters:"\u2A65"};function tl(e){let o=e.activePanel!==null,t=e.position??"right",n={display:"flex",flexDirection:"column",width:`${ao}px`,background:"var(--ogrid-header-bg, #f5f5f5)",...t==="right"?{borderLeft:"1px solid var(--ogrid-border, #e0e0e0)"}:{borderRight:"1px solid var(--ogrid-border, #e0e0e0)"}},i=h("div",{style:n,role:"tablist","aria-label":"Side bar tabs"},e.panels.map(a=>h("button",{key:a,role:"tab","aria-selected":e.activePanel===a,"aria-label":Mn[a],title:Mn[a],onClick:()=>e.onPanelChange(e.activePanel===a?null:a),style:{width:`${ao}px`,height:`${ao}px`,border:"none",cursor:"pointer",color:"var(--ogrid-fg, #242424)",fontSize:"14px",display:"flex",alignItems:"center",justifyContent:"center",background:e.activePanel===a?"var(--ogrid-bg, #fff)":"transparent",fontWeight:e.activePanel===a?"bold":"normal"}},pi[a]))),m=null;if(o&&e.activePanel){let a={width:`${fi}px`,display:"flex",flexDirection:"column",overflow:"hidden",background:"var(--ogrid-bg, #fff)",color:"var(--ogrid-fg, #242424)",...t==="right"?{borderLeft:"1px solid var(--ogrid-border, #e0e0e0)"}:{borderRight:"1px solid var(--ogrid-border, #e0e0e0)"}},d=[];if(e.activePanel==="columns"){let p=e.columns.every(v=>e.visibleColumns.has(v.columnId));d.push(h("div",{style:{display:"flex",gap:"8px",marginBottom:"8px"}},[h("button",{disabled:p,onClick:()=>{let v=new Set(e.visibleColumns);e.columns.forEach(s=>v.add(s.columnId)),e.onSetVisibleColumns(v);},style:{flex:"1",cursor:"pointer",background:"var(--ogrid-bg-subtle, #f3f2f1)",color:"var(--ogrid-fg, #242424)",border:"1px solid var(--ogrid-border, #e0e0e0)",borderRadius:"4px",padding:"4px 8px"}},"Select All"),h("button",{onClick:()=>{let v=new Set;e.columns.forEach(s=>{s.required&&e.visibleColumns.has(s.columnId)&&v.add(s.columnId);}),e.onSetVisibleColumns(v);},style:{flex:"1",cursor:"pointer",background:"var(--ogrid-bg-subtle, #f3f2f1)",color:"var(--ogrid-fg, #242424)",border:"1px solid var(--ogrid-border, #e0e0e0)",borderRadius:"4px",padding:"4px 8px"}},"Clear All")])),e.columns.forEach(v=>{d.push(h("label",{key:v.columnId,style:{display:"flex",alignItems:"center",gap:"6px",padding:"2px 0",cursor:"pointer"}},[h("input",{type:"checkbox",checked:e.visibleColumns.has(v.columnId),disabled:v.required,onChange:s=>e.onVisibilityChange(v.columnId,s.target.checked)}),h("span",null,v.name)]));});}e.activePanel==="filters"&&(e.filterableColumns.length===0?d.push(h("div",{style:{color:"var(--ogrid-muted, #999)",fontStyle:"italic"}},"No filterable columns")):e.filterableColumns.forEach(p=>{let v=p.filterField,s=[h("div",{style:{fontWeight:"500",marginBottom:"4px",fontSize:"13px"}},p.name)];if(p.filterType==="text"){let c=e.filters[v],C=c?.type==="text"?c.value:"";s.push(h("input",{type:"text",value:C,onInput:r=>{let g=r.target.value;e.onFilterChange(v,g?{type:"text",value:g}:void 0);},placeholder:`Filter ${p.name}...`,"aria-label":`Filter ${p.name}`,style:{width:"100%",boxSizing:"border-box",padding:"4px 6px",background:"var(--ogrid-bg, #fff)",color:"var(--ogrid-fg, #242424)",border:"1px solid var(--ogrid-border, #e0e0e0)",borderRadius:"4px"}}));}if(p.filterType==="multiSelect"){let C=(e.filterOptions[v]??[]).map(r=>{let g=e.filters[v],R=g?.type==="multiSelect"?g.value.includes(r):false;return h("label",{key:r,style:{display:"flex",alignItems:"center",gap:"4px",padding:"1px 0",cursor:"pointer",fontSize:"13px"}},[h("input",{type:"checkbox",checked:R,onChange:T=>{let I=e.filters[v],y=I?.type==="multiSelect"?I.value:[],h=T.target.checked?[...y,r]:y.filter(b=>b!==r);e.onFilterChange(v,h.length>0?{type:"multiSelect",value:h}:void 0);}}),h("span",null,r)])});s.push(h("div",{style:{maxHeight:"120px",overflowY:"auto"},role:"group","aria-label":`${p.name} options`},C));}if(p.filterType==="date"){let c=e.filters[v],C=c?.type==="date"?c.value:{from:void 0,to:void 0};s.push(h("div",{style:{display:"flex",flexDirection:"column",gap:"4px"}},[h("label",{style:{display:"flex",alignItems:"center",gap:"4px",fontSize:"12px"}},["From:",h("input",{type:"date",value:C.from??"",onInput:r=>{let g=r.target.value||void 0,R=C.to;e.onFilterChange(v,g||R?{type:"date",value:{from:g,to:R}}:void 0);},"aria-label":`${p.name} from date`,style:{flex:"1",padding:"2px 4px",background:"var(--ogrid-bg, #fff)",color:"var(--ogrid-fg, #242424)",border:"1px solid var(--ogrid-border, #e0e0e0)",borderRadius:"4px"}})]),h("label",{style:{display:"flex",alignItems:"center",gap:"4px",fontSize:"12px"}},["To:",h("input",{type:"date",value:C.to??"",onInput:r=>{let g=r.target.value||void 0,R=C.from;e.onFilterChange(v,R||g?{type:"date",value:{from:R,to:g}}:void 0);},"aria-label":`${p.name} to date`,style:{flex:"1",padding:"2px 4px",background:"var(--ogrid-bg, #fff)",color:"var(--ogrid-fg, #242424)",border:"1px solid var(--ogrid-border, #e0e0e0)",borderRadius:"4px"}})])]));}d.push(h("div",{key:p.columnId,style:{marginBottom:"12px"}},s));})),m=h("div",{role:"tabpanel","aria-label":Mn[e.activePanel],style:a},[h("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"8px 12px",borderBottom:"1px solid var(--ogrid-border, #e0e0e0)",fontWeight:"600"}},[h("span",null,Mn[e.activePanel]),h("button",{onClick:()=>e.onPanelChange(null),style:{border:"none",background:"transparent",cursor:"pointer",fontSize:"16px",color:"var(--ogrid-fg, #242424)"},"aria-label":"Close panel"},"\xD7")]),h("div",{style:{flex:"1",overflowY:"auto",padding:"8px 12px"}},d)]);}let u=[];return t==="left"?(u.push(i),m&&u.push(m)):(m&&u.push(m),u.push(i)),h("div",{style:{display:"flex",flexDirection:"row",flexShrink:"0"},role:"complementary","aria-label":"Side bar"},u)}function vi(e){return defineComponent({name:"OGrid",props:{gridProps:{type:Object,required:true}},setup(o,{expose:t}){let n=computed(()=>o.gridProps),{dataGridProps:i,pagination:m,columnChooser:u,layout:a,api:d}=jt(n);t({api:d});let p=ref(false),v=()=>{p.value=!p.value;},s=c=>{c.key==="Escape"&&p.value&&(p.value=false);};return onMounted(()=>{document.addEventListener("keydown",s);}),onUnmounted(()=>{document.removeEventListener("keydown",s);}),()=>{let c=a.value.sideBarProps,C=c!=null,r=c?.position??"right",g=[];a.value.toolbar&&g.push(a.value.toolbar);let T=a.value.fullScreen===true?h("button",{type:"button",title:p.value?"Exit fullscreen":"Fullscreen","aria-label":p.value?"Exit fullscreen":"Fullscreen",onClick:v,style:{background:"none",border:"1px solid var(--ogrid-border, rgba(0,0,0,0.12))",borderRadius:"4px",padding:"4px 6px",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--ogrid-fg, rgba(0,0,0,0.87))"}},[p.value?h("svg",{width:16,height:16,viewBox:"0 0 16 16",fill:"none",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round",innerHTML:'<polyline points="4 10 0 10 0 14"/><polyline points="12 6 16 6 16 2"/><line x1="0" y1="10" x2="4" y2="6"/><line x1="16" y1="6" x2="12" y2="10"/>'}):h("svg",{width:16,height:16,viewBox:"0 0 16 16",fill:"none",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round",innerHTML:'<polyline points="10 2 14 2 14 6"/><polyline points="6 14 2 14 2 10"/><line x1="14" y1="2" x2="10" y2="6"/><line x1="2" y1="14" x2="6" y2="10"/>'})]):null,I=u.value.placement==="toolbar"?h(e.ColumnChooser,{columns:u.value.columns,visibleColumns:u.value.visibleColumns,onVisibilityChange:u.value.onVisibilityChange}):null,y=h(e.PaginationControls,{currentPage:m.value.page,pageSize:m.value.pageSize,totalCount:m.value.displayTotalCount,onPageChange:m.value.setPage,onPageSizeChange:w=>{m.value.setPageSize(w);},pageSizeOptions:m.value.pageSizeOptions,entityLabelPlural:m.value.entityLabelPlural}),h$1=h("div",{style:{flex:"1",minWidth:"0",minHeight:"0",display:"flex",flexDirection:"column"}},[h(e.DataGridTable,{gridProps:i.value})]),b=[];C&&r==="left"&&b.push(tl(c)),b.push(h$1),C&&r!=="left"&&b.push(tl(c));let P=g.length>0||I!=null||T!=null,D=p.value?{position:"fixed",inset:"0",zIndex:9999,display:"flex",flexDirection:"column",background:"var(--ogrid-bg, #fff)"}:{display:"flex",flexDirection:"column",border:"1px solid var(--ogrid-border, rgba(0,0,0,0.12))",borderRadius:"4px",overflow:"hidden"},S=p.value?{display:"flex",flexDirection:"column",flex:"1",minHeight:"0",overflow:"hidden",background:"var(--ogrid-bg, #fff)"}:void 0;return h("div",{class:a.value.className,style:D},[h("div",{style:S??{}},[...P?[h("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"8px 12px",borderBottom:"1px solid var(--ogrid-border, rgba(0,0,0,0.12))",gap:"8px"}},[h("div",{style:{display:"flex",alignItems:"center",gap:"8px",flex:"1"}},g),h("div",{style:{display:"flex",alignItems:"center",gap:"8px"}},[...I?[I]:[],...T?[T]:[]])])]:[],...a.value.toolbarBelow?[h("div",{style:{padding:"8px 12px",borderBottom:"1px solid var(--ogrid-border, rgba(0,0,0,0.12))"}},[a.value.toolbarBelow])]:[],...a.value.formulaBar?[a.value.formulaBar]:[],h("div",{style:{display:"flex",flex:"1",minHeight:"0"}},b),...a.value.sheetTabs?[a.value.sheetTabs]:[],h("div",{style:{display:"flex",alignItems:"center",padding:"8px 0",borderTop:"1px solid var(--ogrid-border, rgba(0,0,0,0.12))"}},[y])])])}}})}export{Nn as FormulaBar,Kn as FormulaRefOverlay,Vn as MarchingAntsOverlay,Wn as SheetTabs,zn as StatusBar,Za as createDataGridTable,ii as createInlineCellEditor,vi as createOGrid,Pn as getCellInteractionProps,Jt as useActiveCell,Zt as useCellEditing,Qt as useCellSelection,tn as useClipboard,qo as useColumnChooserState,Ko as useColumnHeaderFilterState,dn as useColumnHeaderMenuState,sn as useColumnPinning,bn as useColumnReorder,mn as useColumnResize,en as useContextMenu,cn as useDataGridState,xn as useDataGridTableSetup,hn as useDateFilterState,fn as useDebounce,Vo as useDebouncedCallback,ln as useFillHandle,$t as useFilterOptions,qt as useFormulaBar,Xo as useInlineCellEditorState,nn as useKeyboardNavigation,vn as useMultiSelectFilterState,jt as useOGrid,Cn as usePeopleFilterState,Yo as useRichSelectState,Tn as useRowGrouping,Yt as useRowSelection,At as useSideBarState,an as useTableLayout,pn as useTextFilterState,rn as useUndoRedo,yn as useVirtualScroll};
1
+ import {injectGlobalStyles,Z_INDEX,getStatusBarParts,measureRange,flattenColumns,getMultiSelectFilterFields,deriveFilterOptionsFromData,shouldUseWorkerSort,processClientSideData,processClientSideDataAsync,validateColumns,validateRowIds,computeRowSelectionState,parseTsvClipboard,applyPastedValues,applyCutClear,normalizeSelectionRange,applyCellDeletion,computeTabNavigation,computeArrowNavigation,buildCellIndex,applyFillValues,UndoRedoStack,CHECKBOX_COLUMN_WIDTH,estimateHeaderMinWidth,CELL_PADDING,measureColumnContentWidth,resolveResponsiveConfig,applyResponsiveHiding,DEFAULT_MIN_COLUMN_WIDTH,computeAggregations,getDataGridStatusBarConfig,formatDateForDisplay,DEFAULT_DATE_FORMAT,getPinStateForColumn,validateVirtualScrollConfig,computeVisibleRange,computeTotalHeight,computeVisibleColumnRange,getScrollTopForRow,partitionColumnsForVirtualization,formatCellReference,buildHeaderRows,indexToColumnLetter,ROW_NUMBER_COLUMN_ID,ROW_NUMBER_COLUMN_WIDTH,getHeaderFilterConfig,getDateInputPlaceholder,getCellRenderDescriptor,buildInlineEditorProps,buildPopoverEditorProps,resolveCellDisplayContent,resolveCellStyle,handleBooleanCellPointerDown,parseUserInputDate,rangesEqual,formatSelectionAsTsv,calculateDropTarget,reorderColumnArray,parseValue,getCellValue,computeNextSortState,mergeFilter,columnLetterToIndex,applyRangeRowSelection,ROW_NUMBER_COLUMN_MIN_WIDTH,createGridDataAccessor,computeAutoScrollSpeed}from'@alaarab/ogrid-core';export{AUTOSIZE_EXTRA_PX,AUTOSIZE_MAX_PX,CELL_PADDING,CHECKBOX_COLUMN_WIDTH,COLUMN_HEADER_MENU_ITEMS,CellDescriptorCache,DEFAULT_DEBOUNCE_MS,DEFAULT_MIN_COLUMN_WIDTH,GRID_BORDER_RADIUS,GRID_CONTEXT_MENU_ITEMS,MAX_PAGE_BUTTONS,PAGE_SIZE_OPTIONS,PEOPLE_SEARCH_DEBOUNCE_MS,RESPONSIVE_BREAKPOINTS,ROW_NUMBER_COLUMN_ID,ROW_NUMBER_COLUMN_MIN_WIDTH,ROW_NUMBER_COLUMN_WIDTH,SIDEBAR_TRANSITION_MS,UndoRedoStack,Z_INDEX,applyCellDeletion,applyCutClear,applyFillValues,applyPastedValues,applyRangeRowSelection,applyResponsiveHiding,areGridRowPropsEqual,booleanParser,buildCellIndex,buildCsvHeader,buildCsvRows,buildHeaderRows,buildInlineEditorProps,buildPopoverEditorProps,calculateDropTarget,clampSelectionToBounds,columnLetterToIndex,computeAggregations,computeArrowNavigation,computeAutoScrollSpeed,computeNextSortState,computeRowSelectionState,computeTabNavigation,computeTotalHeight,computeVisibleColumnRange,computeVisibleRange,createGridDataAccessor,createSortFilterWorker,currencyParser,dateParser,debounce,deriveFilterOptionsFromData,emailParser,escapeCsvValue,exportToCsv,extractValueMatrix,findCtrlArrowTarget,flattenColumns,formatCellReference,formatCellValueForTsv,formatSelectionAsTsv,formatShortcut,getCellRenderDescriptor,getCellValue,getColumnHeaderMenuItems,getContextMenuHandlers,getDataGridStatusBarConfig,getFilterField,getHeaderFilterConfig,getMultiSelectFilterFields,getPaginationViewModel,getPinStateForColumn,getResponsiveHiddenColumns,getScrollTopForRow,getStatusBarParts,handleBooleanCellPointerDown,indexToColumnLetter,injectGlobalStyles,isColumnEditable,isFilterConfig,isInSelectionRange,isRowInRange,measureColumnContentWidth,measureRange,mergeFilter,normalizeSelectionRange,numberParser,parseTsvClipboard,parseValue,partitionColumnsForVirtualization,processClientSideData,processClientSideDataAsync,rangesEqual,reorderColumnArray,resolveCellDisplayContent,resolveCellStyle,resolveResponsiveConfig,terminateSortFilterWorker,toUserLike,triggerCsvDownload,validateColumns,validateRowIds,validateVirtualScrollConfig}from'@alaarab/ogrid-core';import {FORMULA_BAR_STYLES,handleFormulaBarKeyDown,FORMULA_REF_COLORS,deriveFormulaBarText,extractFormulaReferences,processFormulaBarCommit,FormulaEngine}from'@alaarab/ogrid-core/formula';export{CIRC_ERROR,DIV_ZERO_ERROR,DependencyGraph,FORMULA_BAR_CSS,FORMULA_BAR_STYLES,FORMULA_REF_COLORS,FormulaEngine,FormulaError,FormulaEvaluator,GENERAL_ERROR,NAME_ERROR,NA_ERROR,REF_ERROR,VALUE_ERROR,adjustFormulaReferences,canInsertReference,createBuiltInFunctions,deriveFormulaBarText,extractFormulaReferences,flattenArgs,formatAddress,formulaToString,fromCellKey,handleFormulaBarKeyDown,insertReferenceAtCursor,isFormulaError,parse,parseCellRef,parseRange,processFormulaBarCommit,toBoolean,toCellKey,toNumber,tokenize}from'@alaarab/ogrid-core/formula';import {defineComponent,ref,computed,onMounted,watch,toValue,onUnmounted,h,shallowRef,isRef,triggerRef,nextTick,Teleport,isReadonly,unref,customRef}from'vue';var On=defineComponent({name:"MarchingAntsOverlay",props:{containerRef:{type:Object,required:true},selectionRange:{type:Object,default:null},copyRange:{type:Object,default:null},cutRange:{type:Object,default:null},colOffset:{type:Number,required:true},items:{type:Array,required:true},visibleColumns:{type:Array,default:void 0},columnSizingOverrides:{type:Object,required:true},columnOrder:{type:Array,default:void 0}},setup(e){let o=ref(null),n=ref(null),l=0,i,m=computed(()=>e.copyRange??e.cutRange),d=()=>{let s=toValue(e.containerRef);if(!s){o.value=null,n.value=null;return}o.value=e.selectionRange?measureRange(s,e.selectionRange,e.colOffset):null,n.value=m.value?measureRange(s,m.value,e.colOffset):null;};onMounted(()=>{injectGlobalStyles("ogrid-marching-ants-keyframes","@keyframes ogrid-marching-ants{to{stroke-dashoffset:-8}}");}),watch([()=>e.selectionRange,m,()=>toValue(e.containerRef),()=>e.items,()=>e.visibleColumns,()=>e.columnSizingOverrides,()=>e.columnOrder],()=>{if(!e.selectionRange&&!m.value){o.value=null,n.value=null;return}l=requestAnimationFrame(d);let s=toValue(e.containerRef);s&&(i?.disconnect(),i=new ResizeObserver(d),i.observe(s));},{immediate:true}),onUnmounted(()=>{cancelAnimationFrame(l),i?.disconnect();});let a=computed(()=>{let s=e.selectionRange,f=m.value;return s!=null&&f!=null&&s.startRow===f.startRow&&s.startCol===f.startCol&&s.endRow===f.endRow&&s.endCol===f.endCol});return ()=>!o.value&&!n.value?null:h("div",{style:{position:"relative"}},[o.value&&!a.value&&!(e.selectionRange&&e.selectionRange.startRow===e.selectionRange.endRow&&e.selectionRange.startCol===e.selectionRange.endCol)?h("svg",{style:{position:"absolute",top:`${o.value.top}px`,left:`${o.value.left}px`,width:`${o.value.width}px`,height:`${o.value.height}px`,pointerEvents:"none",zIndex:Z_INDEX.SELECTION_OVERLAY,overflow:"visible"},"aria-hidden":"true"},[h("rect",{x:1,y:1,width:Math.max(0,o.value.width-2),height:Math.max(0,o.value.height-2),fill:"none",stroke:"var(--ogrid-selection, #217346)","stroke-width":2})]):null,n.value?h("svg",{style:{position:"absolute",top:`${n.value.top}px`,left:`${n.value.left}px`,width:`${n.value.width}px`,height:`${n.value.height}px`,pointerEvents:"none",zIndex:Z_INDEX.CLIPBOARD_OVERLAY,overflow:"visible"},"aria-hidden":"true"},[h("rect",{x:1,y:1,width:Math.max(0,n.value.width-2),height:Math.max(0,n.value.height-2),fill:"none",stroke:"var(--ogrid-selection, #217346)","stroke-width":2,"stroke-dasharray":"4 4",style:{animation:"ogrid-marching-ants 0.5s linear infinite"}})]):null])}});var Mn=defineComponent({name:"StatusBar",props:{totalCount:{type:Number,required:true},filteredCount:{type:Number,default:void 0},selectedCount:{type:Number,default:void 0},selectedCellCount:{type:Number,default:void 0},aggregation:{type:Object,default:void 0},suppressRowCount:{type:Boolean,default:false}},setup(e){return ()=>{let o=getStatusBarParts(e);return h("div",{role:"status","aria-live":"polite",style:{marginTop:"auto",padding:"6px 12px",borderTop:"1px solid var(--ogrid-border, rgba(0,0,0,0.12))",backgroundColor:"var(--ogrid-header-bg, rgba(0,0,0,0.04))",display:"flex",alignItems:"center",gap:"16px",fontSize:"0.875rem",lineHeight:"20px",minHeight:"33px",boxSizing:"border-box"}},o.map((n,l)=>h("span",{key:n.key,style:{display:"inline-flex",alignItems:"center",gap:"4px",...l<o.length-1?{marginRight:"16px",borderRight:"1px solid var(--ogrid-border, rgba(0,0,0,0.12))",paddingRight:"16px"}:{}}},[h("span",{style:{color:"var(--ogrid-fg-secondary, rgba(0,0,0,0.6))"}},n.label),h("span",{style:{fontWeight:"600"}},n.value.toLocaleString())])))}}});var kn=defineComponent({name:"FormulaBar",props:{cellRef:{type:[String,null],default:null},formulaText:{type:String,required:true},isEditing:{type:Boolean,required:true}},emits:["inputChange","commit","cancel","startEditing"],setup(e,{emit:o}){let n=ref(null);return watch(()=>e.isEditing,l=>{l&&n.value&&n.value.focus();}),()=>h("div",{style:FORMULA_BAR_STYLES.bar,role:"toolbar","aria-label":"Formula bar"},[h("div",{style:FORMULA_BAR_STYLES.nameBox,"aria-label":"Active cell reference"},e.cellRef??"\u2014"),h("div",{style:FORMULA_BAR_STYLES.fxLabel,"aria-hidden":"true"},"fx"),h("input",{ref:n,type:"text",style:FORMULA_BAR_STYLES.input,value:e.formulaText,readonly:!e.isEditing,onInput:l=>o("inputChange",l.target.value),onKeydown:l=>handleFormulaBarKeyDown(l.key,()=>l.preventDefault(),()=>o("commit"),()=>o("cancel")),onClick:()=>{e.isEditing||o("startEditing");},onDblclick:()=>{e.isEditing||o("startEditing");},"aria-label":"Formula input",spellcheck:false,autocomplete:"off"})])}});var ol={display:"flex",alignItems:"center",borderTop:"1px solid var(--ogrid-border, #e0e0e0)",background:"var(--ogrid-header-bg, #f5f5f5)",minHeight:"30px",overflowX:"auto",overflowY:"hidden",gap:"0",fontSize:"12px"},ll={background:"none",border:"none",cursor:"pointer",padding:"4px 10px",fontSize:"16px",lineHeight:"22px",color:"var(--ogrid-fg-secondary, #666)",flexShrink:0},io={background:"none",border:"none",borderBottom:"2px solid transparent",cursor:"pointer",padding:"4px 16px",fontSize:"12px",lineHeight:"22px",color:"var(--ogrid-fg, #242424)",whiteSpace:"nowrap",position:"relative"},rl={...io,fontWeight:600,borderBottomColor:"var(--ogrid-primary, #217346)",background:"var(--ogrid-bg, #fff)"},Ln=defineComponent({name:"SheetTabs",props:{sheets:{type:Array,required:true},activeSheet:{type:String,required:true},showAddButton:{type:Boolean,default:false}},emits:["sheetChange","sheetAdd"],setup(e,{emit:o}){return ()=>h("div",{style:ol,role:"tablist","aria-label":"Sheet tabs"},[e.showAddButton?h("button",{type:"button",style:ll,onClick:()=>o("sheetAdd"),title:"Add sheet","aria-label":"Add sheet"},"+"):null,...e.sheets.map(n=>{let l=n.id===e.activeSheet,i=l?rl:io,m=l&&n.color?{...i,borderBottomColor:n.color}:i;return h("button",{key:n.id,type:"button",role:"tab","aria-selected":l,style:m,onClick:()=>o("sheetChange",n.id)},n.name)})])}});function ul(e,o,n){let l=o.col+n,i=(o.endCol??o.col)+n,m=o.endRow??o.row,d=e.querySelector(`[data-row-index="${o.row}"][data-col-index="${l}"]`),a=e.querySelector(`[data-row-index="${m}"][data-col-index="${i}"]`);if(!d||!a)return null;let s=e.getBoundingClientRect(),f=d.getBoundingClientRect(),v=a.getBoundingClientRect();return {top:Math.round(f.top-s.top),left:Math.round(f.left-s.left),width:Math.round(v.right-f.left),height:Math.round(v.bottom-f.top),color:FORMULA_REF_COLORS[o.colorIndex%FORMULA_REF_COLORS.length]}}var Bn=defineComponent({name:"FormulaRefOverlay",props:{containerEl:{type:Object,default:null},references:{type:Array,required:true},colOffset:{type:Number,required:true}},setup(e){let o=ref([]),n=0;function l(){let i=e.containerEl,m=e.references;if(!i||m.length===0){o.value=[];return}let d=[];for(let a of m){let s=ul(i,a,e.colOffset);s&&d.push(s);}o.value=d;}return watch(()=>[e.references,e.containerEl,e.colOffset],()=>{if(cancelAnimationFrame(n),!e.containerEl||e.references.length===0){o.value=[];return}n=requestAnimationFrame(l);},{immediate:true}),()=>o.value.length===0?null:o.value.map((i,m)=>h("svg",{key:m,style:{position:"absolute",top:`${i.top}px`,left:`${i.left}px`,width:`${i.width}px`,height:`${i.height}px`,pointerEvents:"none",zIndex:3,overflow:"visible"},"aria-hidden":"true"},[h("rect",{x:"1",y:"1",width:Math.max(0,i.width-2),height:Math.max(0,i.height-2),fill:"none",stroke:i.color,"stroke-width":"2",style:"shape-rendering: crispEdges"})]))}});function Bt(e,o){let n=ref({}),l=ref({}),i=computed(()=>[...o.value].sort().join(",")),m=async()=>{let d=e.value,a=o.value,s="fetchFilterOptions"in d&&typeof d.fetchFilterOptions=="function"?d.fetchFilterOptions.bind(d):void 0;if(!s){n.value={},l.value={};return}let f={};a.forEach(c=>{f[c]=true;}),l.value=f;let v={};await Promise.all(a.map(async c=>{try{v[c]=await s(c);}catch{v[c]=[];}})),n.value=v,l.value={};};return watch([e,i],()=>{m().catch(()=>{});},{immediate:true}),{filterOptions:n,loadingOptions:l}}function et(e){let o=unref(e);return customRef((n,l)=>({get(){return isRef(e)&&(o=e.value),o},set(i){o=i,l();}}))}function mo(e){let{formulas:o,items:n,flatColumns:l,initialFormulas:i,onFormulaRecalc:m,formulaFunctions:d,namedRanges:a,sheets:s}=e,f=et(n),v=et(l),c=et(m),u=shallowRef(null),g=false,r=computed(()=>o?.value??false);function p(){return createGridDataAccessor(f.value,v.value)}watch(r,x=>{if(x&&!u.value){if(u.value=new FormulaEngine({customFunctions:d,namedRanges:a}),s)for(let[P,k]of Object.entries(s))u.value.registerSheet(P,k);if(i&&!g){g=true;let P=p(),k=u.value.loadFormulas(i,P);k.updatedCells.length>0&&c.value?.(k);}}else !x&&u.value&&(u.value=null);},{immediate:true});function h(x,P){return u.value?.getValue(x,P)}function E(x,P){return u.value?.hasFormula(x,P)??false}function T(x,P){return u.value?.getFormula(x,P)}function S(x,P,k){if(!u.value)return;let y=p(),R=u.value.setFormula(x,P,k,y);R.updatedCells.length>0&&c.value?.(R);}function A(x,P){if(!u.value)return;let k=p(),y=u.value.onCellChanged(x,P,k);y.updatedCells.length>0&&c.value?.(y);}function _(x,P){return u.value?.getPrecedents(x,P)??[]}function q(x,P){return u.value?.getDependents(x,P)??[]}function D(x,P){return u.value?.getAuditTrail(x,P)??null}return {enabled:r,getFormulaValue:h,hasFormula:E,getFormula:T,setFormula:S,onCellChanged:A,getPrecedents:_,getDependents:q,getAuditTrail:D}}function Ht(e){let{activeCol:o,activeRow:n,activeCellRef:l,getFormula:i,getRawValue:m,setFormula:d,onCellValueChanged:a}=e,s=ref(false),f=ref(""),v=ref(false),c=computed(()=>deriveFormulaBarText(o.value,n.value,i,m));watch([o,n],()=>{s.value=false,v.value=false;});let u=()=>{f.value=c.value,s.value=true,v.value=true;},g=T=>{f.value=T;},r=()=>{let T=o.value,S=n.value;T==null||S==null||!d||(processFormulaBarCommit(f.value,T,S,d,a),s.value=false,v.value=false);},p=()=>{s.value=false,v.value=false,f.value="";},h=computed(()=>s.value?f.value:c.value),E=computed(()=>extractFormulaReferences(h.value));return {cellRef:l,formulaText:h,isEditing:s,onInputChange:g,onCommit:r,onCancel:p,startEditing:u,referencedCells:E,isFormulaBarEditing:v}}var fo=["columns","filters"];function Tt(e){let{config:o}=e,n=o!=null&&o!==false,l=(()=>{if(!n||o===true)return {panels:fo,position:"right",defaultPanel:null};let f=o;return {panels:f.panels??fo,position:f.position??"right",defaultPanel:f.defaultPanel??null}})(),i=ref(l.defaultPanel),m=f=>{i.value=f;},d=f=>{i.value=i.value===f?null:f;},a=()=>{i.value=null;},s=computed(()=>i.value!==null);return {isEnabled:n,activePanel:i,setActivePanel:m,panels:l.panels,position:l.position,isOpen:s,toggle:d,close:a}}var Vl=25,zl={};function zt(e){let o=computed(()=>{let t=e.value;return {columns:t.columns,columnOrder:t.columnOrder,onColumnOrderChange:t.onColumnOrderChange,onColumnResized:t.onColumnResized,onAutosizeColumn:t.onAutosizeColumn,onColumnPinned:t.onColumnPinned,columnChooser:t.columnChooser}}),n=computed(()=>{let t=e.value,U="data"in t?t.data:void 0,te="dataSource"in t?t.dataSource:void 0;return U&&te&&console.warn("[OGrid] Both data and dataSource provided. dataSource takes precedence."),{getRowId:t.getRowId,data:U,dataSource:te}}),l=computed(()=>{let t=e.value;return {page:t.page,pageSize:t.pageSize,sort:t.sort,filters:t.filters,visibleColumns:t.visibleColumns,isLoading:t.isLoading}}),i=computed(()=>{let t=e.value;return {onPageChange:t.onPageChange,onPageSizeChange:t.onPageSizeChange,onSortChange:t.onSortChange,onFiltersChange:t.onFiltersChange,onVisibleColumnsChange:t.onVisibleColumnsChange,onFirstDataRendered:t.onFirstDataRendered,onError:t.onError}}),m=computed(()=>{let t=e.value;return {defaultPageSize:t.defaultPageSize??Vl,defaultSortBy:t.defaultSortBy,defaultSortDirection:t.defaultSortDirection??"asc",entityLabelPlural:t.entityLabelPlural??"items"}}),d=computed(()=>o.value.columnChooser===false?"none":o.value.columnChooser==="sidebar"?"sidebar":"toolbar"),a=computed(()=>flattenColumns(o.value.columns)),s=computed(()=>n.value.dataSource!=null),f=computed(()=>!s.value),v=ref([]),c=ref(false),u=computed(()=>n.value.data??v.value),g=computed(()=>l.value.isLoading??c.value),r=computed(()=>m.value.defaultSortBy??a.value[0]?.columnId??""),p=ref(1),h$1=ref(m.value.defaultPageSize),E=ref({field:r.value,direction:m.value.defaultSortDirection}),T=ref({}),S=ref(void 0),A=ref((()=>{let t=a.value.filter(U=>U.defaultVisible!==false).map(U=>U.columnId);return new Set(t.length>0?t:a.value.map(U=>U.columnId))})()),_=ref({}),q={};for(let t of flattenColumns(e.value.columns))t.pinned&&(q[t.columnId]=t.pinned);let D=ref(q),x=computed(()=>l.value.page??p.value),P=computed(()=>l.value.pageSize??h$1.value),k=computed(()=>l.value.sort??E.value),y=computed(()=>l.value.filters??T.value),R=computed(()=>o.value.columnOrder??S.value),b=computed(()=>l.value.visibleColumns??A.value),L=t=>{l.value.page===void 0&&(p.value=t),i.value.onPageChange?.(t);},C=t=>{l.value.pageSize===void 0&&(h$1.value=t),i.value.onPageSizeChange?.(t),L(1);},w=ref(0),I=t=>{l.value.sort===void 0&&(E.value=t),i.value.onSortChange?.(t),L(1),w.value++;},O=t=>{l.value.filters===void 0&&(T.value=t),i.value.onFiltersChange?.(t),L(1);},F=t=>{l.value.visibleColumns===void 0&&(A.value=t),i.value.onVisibleColumnsChange?.(t);},B=(t,U)=>{I(computeNextSortState(k.value,t,U));},z=(t,U)=>{O(mergeFilter(y.value,t,U));},G=(t,U)=>{let te=new Set(b.value);U?te.add(t):te.delete(t),F(te);},H=ref(new Set),N=computed(()=>e.value.selectedRows),re=computed(()=>N.value??H.value),ae=t=>{N.value===void 0&&(H.value=new Set(t.selectedRowIds)),e.value.onSelectionChange?.(t);},W=computed(()=>getMultiSelectFilterFields(a.value)),ne=computed(()=>n.value.dataSource??{fetchFilterOptions:void 0}),{filterOptions:le,loadingOptions:ve}=Bt(ne,W),Te=computed(()=>n.value.dataSource?.fetchFilterOptions!=null),Le=computed(()=>Te.value?le.value:deriveFilterOptionsFromData(u.value,a.value)),Ee=computed(()=>shouldUseWorkerSort(e.value.workerSort,u.value.length,{columns:a.value,filters:y.value,sortBy:k.value.field})),De=null,yt=-1,nt=null,st=null,ut=-1,ot=computed(()=>{if(!f.value||Ee.value)return null;let t=u.value,U=a.value,te=y.value,he=w.value,Ue=k.value.field,Ne=k.value.direction,ke=he!==yt||te!==nt||U!==st||t.length!==ut,Re;if(ke||De===null){yt=he,nt=te,st=U,ut=t.length;let be=processClientSideData(t,U,te,Ue,Ne),K=new Map;for(let M=0;M<t.length;M++)K.set(t[M],M);De=be.map(M=>{let Q=K.get(M);return Q!==void 0?Q:-1}).filter(M=>M!==-1),Re=be;}else Re=De.map(be=>t[be]).filter(be=>be!==void 0);let Rt=Re.length,bt=(x.value-1)*P.value;return {items:Re.slice(bt,bt+P.value),totalCount:Rt}}),qe=ref(null),lt=0,Me=null,Ve=-1,Se=null,dt=null,se=-1;watch([f,Ee,u,a,y,w,x,P],()=>{if(!f.value||!Ee.value)return;let t=u.value,U=a.value,te=y.value,he=w.value,Ue=k.value.field,Ne=k.value.direction,ke=x.value,Re=P.value,Rt=++lt;if(he!==Ve||te!==Se||U!==dt||t.length!==se||Me===null)Ve=he,Se=te,dt=U,se=t.length,Me=null,processClientSideDataAsync(t,U,te,Ue,Ne).then(Oe=>{if(Rt!==lt||ze)return;let be=new Map;for(let oe=0;oe<t.length;oe++)be.set(t[oe],oe);Me=Oe.map(oe=>{let V=be.get(oe);return V!==void 0?V:-1}).filter(oe=>oe!==-1);let K=Oe.length,M=(ke-1)*Re,Q=Oe.slice(M,M+Re);qe.value={items:Q,totalCount:K};}).catch(()=>{if(Rt!==lt||ze)return;let Oe=processClientSideData(t,U,te,Ue,Ne),be=new Map;for(let oe=0;oe<t.length;oe++)be.set(t[oe],oe);Me=Oe.map(oe=>{let V=be.get(oe);return V!==void 0?V:-1}).filter(oe=>oe!==-1);let K=Oe.length,M=(ke-1)*Re,Q=Oe.slice(M,M+Re);qe.value={items:Q,totalCount:K};});else {let Oe=Me.map(Q=>t[Q]).filter(Q=>Q!==void 0),be=Oe.length,K=(ke-1)*Re,M=Oe.slice(K,K+Re);qe.value={items:M,totalCount:be};}},{immediate:true});let xe=computed(()=>{let t=ot.value;return t||qe.value}),Xe=ref([]),je=ref(0),Ye=ref(false),Ze=0,Je=null,ze=false,ct=ref(0),mt=()=>{if(!s.value||!n.value.dataSource){s.value||(Ye.value=false);return}let t=++Ze;Je?.abort();let U=new AbortController;Je=U,Ye.value=true,n.value.dataSource.fetchPage({page:x.value,pageSize:P.value,sort:{field:k.value.field,direction:k.value.direction},filters:y.value,signal:U.signal}).then(te=>{t!==Ze||ze||U.signal.aborted||(Xe.value=te.items,je.value=te.totalCount);}).catch(te=>{t!==Ze||ze||U.signal.aborted||(i.value.onError?.(te),Xe.value=[],je.value=0);}).finally(()=>{t===Ze&&!ze&&!U.signal.aborted&&(Ye.value=false);});};onMounted(()=>{validateColumns(a.value),mt();}),watch([()=>n.value.dataSource,x,P,()=>k.value.field,()=>k.value.direction,y,ct],()=>{mt();}),onUnmounted(()=>{ze=true,Je?.abort(),Je=null;});let Be=computed(()=>f.value&&xe.value?xe.value.items:Xe.value),rt=computed(()=>f.value&&xe.value?xe.value.totalCount:je.value),Qe=computed(()=>!!e.value.formulas),ft=ref(0),Ut=t=>{ft.value+=1,e.value.onFormulaRecalc?.(t);},fe=mo({formulas:Qe,items:Be,flatColumns:a,initialFormulas:e.value.initialFormulas,onFormulaRecalc:Ut,formulaFunctions:e.value.formulaFunctions,namedRanges:e.value.namedRanges,sheets:e.value.sheets}),pt=false,vt=false;watch(Be,t=>{!pt&&t.length>0&&(pt=true,i.value.onFirstDataRendered?.()),!vt&&t.length>0&&(vt=true,validateRowIds(t,n.value.getRowId));});let at=computed(()=>Object.values(y.value).some(t=>t!==void 0)),gt=computed(()=>a.value.map(t=>({columnId:t.columnId,name:t.name,required:t.required===true}))),Ge=computed(()=>{let t=e.value.statusBar;if(!t)return;if(typeof t=="object")return t;let U=f.value?n.value.data?.length??0:je.value,te=rt.value;return {totalCount:U,filteredCount:at.value?te:void 0,selectedCount:re.value.size,suppressRowCount:true}}),Ct=(t,U)=>{_.value={..._.value,[t]:U},o.value.onColumnResized?.(t,U);},J=(t,U)=>{_.value={..._.value,[t]:U},(o.value.onAutosizeColumn??o.value.onColumnResized)?.(t,U);},Y=(t,U)=>{if(U===null){let{[t]:te,...he}=D.value;D.value=he;}else D.value={...D.value,[t]:U};o.value.onColumnPinned?.(t,U);},ie=shallowRef(Tt({config:e.value.sideBar}));watch(()=>e.value.sideBar,t=>{ie.value=Tt({config:t});});let ge=computed(()=>a.value.filter(t=>t.filterable&&t.filterable.type).map(t=>({columnId:t.columnId,name:t.name,filterField:t.filterable?.filterField??t.columnId,filterType:t.filterable?.type}))),ce=computed(()=>{let t=ie.value;if(!t.isEnabled)return null;t.activePanel.value;t.isOpen.value;return {get activePanel(){return t.activePanel.value},onPanelChange:t.setActivePanel,panels:t.panels,position:t.position,get isOpen(){return t.isOpen.value},toggle:t.toggle,close:t.close,columns:gt.value,visibleColumns:b.value,onVisibilityChange:G,onSetVisibleColumns:F,filterableColumns:ge.value,filters:y.value,onFilterChange:z,filterOptions:Le.value}}),Fe=()=>O({}),Ie=computed(()=>s.value&&Ye.value||g.value),Ce=ref(null),ye=ref(null),ht=t=>{if(Ce.value=t,t){let U=t.match(/^([A-Z]+)(\d+)$/);U?ye.value={col:columnLetterToIndex(U[1]),row:parseInt(U[2],10)-1}:ye.value=null;}else ye.value=null;},Ot=computed(()=>ye.value?.col??null),In=computed(()=>ye.value?.row??null),wt=(t,U)=>{let te=Be.value,he=a.value;if(!(U<0||U>=te.length||t<0||t>=he.length))return getCellValue(te[U],he[t])},pe=Ht({activeCol:Ot,activeRow:In,activeCellRef:Ce,getFormula:fe.enabled.value?fe.getFormula:void 0,getRawValue:wt,setFormula:fe.enabled.value?fe.setFormula:void 0}),xt=computed(()=>{let t=e.value,U=n.value.dataSource;return {items:Be.value,columns:o.value.columns,getRowId:n.value.getRowId,sortBy:k.value.field,sortDirection:k.value.direction,onColumnSort:B,visibleColumns:b.value,columnOrder:R.value,onColumnOrderChange:o.value.onColumnOrderChange,onColumnResized:Ct,onAutosizeColumn:J,onColumnPinned:Y,pinnedColumns:D.value,initialColumnWidths:_.value,editable:t.editable,cellSelection:t.cellSelection,onCellValueChanged:t.onCellValueChanged,onUndo:t.onUndo,onRedo:t.onRedo,canUndo:t.canUndo,canRedo:t.canRedo,rowSelection:t.rowSelection??"none",selectedRows:re.value,onSelectionChange:ae,showRowNumbers:t.showRowNumbers||t.cellReferences||t.formulas,showColumnLetters:!!(t.cellReferences||t.formulas),showNameBox:!!(t.cellReferences&&!t.formulas),onActiveCellChange:t.cellReferences||t.formulas?ht:void 0,currentPage:x.value,pageSize:P.value,statusBar:Ge.value,isLoading:Ie.value,filters:y.value,onFilterChange:z,filterOptions:Le.value,loadingFilterOptions:U?.fetchFilterOptions?ve.value:zl,peopleSearch:U?.searchPeople,getUserByEmail:U?.getUserByEmail,layoutMode:t.layoutMode,suppressHorizontalScroll:t.suppressHorizontalScroll,stickyHeader:t.stickyHeader??true,columnReorder:t.columnReorder,responsiveColumns:t.responsiveColumns,virtualScroll:t.virtualScroll,rowHeight:t.rowHeight,density:t.density??"normal","aria-label":t["aria-label"],"aria-labelledby":t["aria-labelledby"],emptyState:{hasActiveFilters:at.value,onClearAll:Fe,message:t.emptyState?.message,render:t.emptyState?.render},formulas:t.formulas,formulaVersion:ft.value,...fe.enabled.value?{getFormulaValue:fe.getFormulaValue,hasFormula:fe.hasFormula,getFormula:fe.getFormula,setFormula:fe.setFormula,onFormulaCellChanged:fe.onCellChanged,getPrecedents:fe.getPrecedents,getDependents:fe.getDependents,getAuditTrail:fe.getAuditTrail}:{},formulaReferences:pe.referencedCells.value.length>0?pe.referencedCells.value:void 0}}),Tn=computed(()=>({page:x.value,pageSize:P.value,displayTotalCount:rt.value,setPage:L,setPageSize:C,pageSizeOptions:e.value.pageSizeOptions,entityLabelPlural:m.value.entityLabelPlural})),Pn=computed(()=>({columns:gt.value,visibleColumns:b.value,onVisibilityChange:G,placement:d.value})),En=computed(()=>{let t=e.value,U=!!t.formulas,te=!!t.cellReferences&&!U,he=t.toolbar;te&&(he=[h("div",{style:{display:"inline-flex",alignItems:"center",padding:"0 8px",fontFamily:"'Consolas', 'Courier New', monospace",fontSize:"12px",border:"1px solid rgba(0,0,0,0.12)",borderRadius:"3px",height:"24px",marginRight:"8px",background:"#fff",minWidth:"40px",color:"rgba(0,0,0,0.6)"},"aria-label":"Active cell reference"},Ce.value??"\u2014"),he]);let Ue=U?h(kn,{cellRef:pe.cellRef.value,formulaText:pe.formulaText.value,isEditing:pe.isEditing.value,onInputChange:pe.onInputChange,onCommit:pe.onCommit,onCancel:pe.onCancel,onStartEditing:pe.startEditing}):void 0,Ne=t.sheetDefs&&t.sheetDefs.length>0&&t.activeSheet&&t.onSheetChange?h(Ln,{sheets:t.sheetDefs,activeSheet:t.activeSheet,showAddButton:!!t.onSheetAdd,onSheetChange:t.onSheetChange,onSheetAdd:t.onSheetAdd??(()=>{})}):void 0;return {toolbar:he,toolbarBelow:t.toolbarBelow,className:t.className,emptyState:t.emptyState,sideBarProps:ce.value,fullScreen:t.fullScreen,formulaBar:Ue,sheetTabs:Ne}}),Dn=computed(()=>({hasActiveFilters:at.value,setFilters:O})),Fn=computed(()=>({setRowData:t=>{s.value||(v.value=t);},setLoading:t=>{c.value=t;},getColumnState:()=>({visibleColumns:Array.from(b.value),sort:k.value,columnOrder:R.value??void 0,columnWidths:Object.keys(_.value).length>0?_.value:void 0,filters:Object.keys(y.value).length>0?y.value:void 0,pinnedColumns:Object.keys(D.value).length>0?D.value:void 0}),applyColumnState:t=>{t.visibleColumns&&F(new Set(t.visibleColumns)),t.sort&&I(t.sort),t.columnOrder&&(o.value.columnOrder===void 0&&(S.value=t.columnOrder),o.value.onColumnOrderChange?.(t.columnOrder)),t.columnWidths&&(_.value=t.columnWidths),t.filters&&O(t.filters),t.pinnedColumns&&(D.value=t.pinnedColumns);},setFilterModel:O,getSelectedRows:()=>Array.from(re.value),setSelectedRows:t=>{N.value===void 0&&(H.value=new Set(t));},selectAll:()=>{let t=new Set(Be.value.map(U=>n.value.getRowId(U)));N.value===void 0&&(H.value=t),e.value.onSelectionChange?.({selectedRowIds:Array.from(t),selectedItems:Be.value});},deselectAll:()=>{N.value===void 0&&(H.value=new Set),e.value.onSelectionChange?.({selectedRowIds:[],selectedItems:[]});},clearFilters:()=>O({}),clearSort:()=>I({field:r.value,direction:m.value.defaultSortDirection}),resetGridState:t=>{O({}),I({field:r.value,direction:m.value.defaultSortDirection}),t?.keepSelection||(N.value===void 0&&(H.value=new Set),e.value.onSelectionChange?.({selectedRowIds:[],selectedItems:[]}));},getDisplayedRows:()=>Be.value,refreshData:()=>{s.value&&ct.value++;},scrollToRow:()=>{},getColumnOrder:()=>R.value??a.value.map(t=>t.columnId),setColumnOrder:t=>{o.value.columnOrder===void 0&&(S.value=t),o.value.onColumnOrderChange?.(t);}}));return {dataGridProps:xt,pagination:Tn,columnChooser:Pn,layout:En,filters:Dn,api:Fn}}function Gt(e){let{items:o,getRowId:n,rowSelection:l,controlledSelectedRows:i,onSelectionChange:m}=e,d=shallowRef(new Set),a=-1,s=computed(()=>{let r=i.value;return r!=null?r instanceof Set?r:new Set(r):d.value}),f=r=>{i.value!==void 0?isReadonly(i)||(i.value=r):d.value=r,m?.({selectedRowIds:Array.from(r),selectedItems:o.value.filter(p=>r.has(n(p)))});},v=(r,p,h,E)=>{if(l.value==="single"){f(p?new Set([r]):new Set),a=h;return}let T=o.value,S;E&&a>=0&&a!==h?S=applyRangeRowSelection(a,h,p,T,n,s.value):(S=new Set(s.value),p?S.add(r):S.delete(r)),a=h,f(S);},c=r=>{f(r?new Set(o.value.map(p=>n(p))):new Set);},u=computed(()=>computeRowSelectionState(s.value,o.value,n).allSelected),g=computed(()=>computeRowSelectionState(s.value,o.value,n).someSelected);return {selectedRowIds:s,updateSelection:f,handleRowCheckboxChange:v,handleSelectAll:c,allSelected:u,someSelected:g}}function Nt(e){let o=shallowRef(null),n=ref(void 0);return {editingCell:o,setEditingCell:m=>{if(m&&e?.scrollToRow&&e?.getRowIndex){let d=e.getRowIndex(m.rowId);d>=0&&e.scrollToRow(d,"center");}o.value=m;},pendingEditorValue:n,setPendingEditorValue:m=>{n.value=m;}}}function Wt(e,o){let n=shallowRef(null),l=0,i=m=>{let d=n.value;d!==m&&(d&&m&&d.rowIndex===m.rowIndex&&d.columnIndex===m.columnIndex||(n.value=m));};return watch([n,()=>o?.value],()=>{if(l&&(cancelAnimationFrame(l),l=0),n.value==null||!e?.value||o?.value!=null)return;let{rowIndex:m,columnIndex:d}=n.value;l=requestAnimationFrame(()=>{l=0;let a=e.value;if(!a)return;let s=n.value;if(!s||s.rowIndex!==m||s.columnIndex!==d)return;let f=`[data-row-index="${m}"][data-col-index="${d}"]`,v=a.querySelector(f);if(v){let c=a.querySelector("thead"),u=c?c.getBoundingClientRect().height:0,g=a.getBoundingClientRect(),r=v.getBoundingClientRect(),p=g.top+u;r.top<p?a.scrollTop-=p-r.top:r.bottom>g.bottom&&(a.scrollTop+=r.bottom-g.bottom),a.scrollWidth>a.clientWidth&&(r.left<g.left?a.scrollLeft-=g.left-r.left:r.right>g.right&&(a.scrollLeft+=r.right-g.right)),document.activeElement!==v&&typeof v.focus=="function"&&v.focus({preventScroll:true});}});},{flush:"post"}),onUnmounted(()=>{l&&(cancelAnimationFrame(l),l=0);}),{activeCell:n,setActiveCell:i}}var _n="data-drag-range",Pt="data-drag-anchor",we=40,er=16;function _t(e){let o=et(e),{wrapperRef:n,setActiveCell:l}=e,i=()=>isRef(e.colOffset)?e.colOffset.value:e.colOffset,m=shallowRef(null),d=ref(false),a=ref(false),s=ref(false),f=false,v=null,c=0,u=null,g=null,r=null,p=C=>{rangesEqual(m.value,C)||(m.value=C);},h=(C,w,I)=>{if(C.button!==0)return;let O=i();if(I<O)return;C.preventDefault();let F=I-O,B=m.value;if(C.shiftKey&&B!=null)p(normalizeSelectionRange({startRow:B.startRow,startCol:B.startCol,endRow:w,endCol:F})),l({rowIndex:w,columnIndex:I});else {v={row:w,col:F},f=false;let z={startRow:w,startCol:F,endRow:w,endCol:F};p(z),u=z,l({rowIndex:w,columnIndex:I}),a.value=true,q(z);}},E=()=>{let{rowCount:C,visibleColCount:w}=o.value;C.value===0||w.value===0||(p({startRow:0,startCol:0,endRow:C.value-1,endCol:w.value-1}),l({rowIndex:0,columnIndex:i()}));},T=new Set,S=null,A=(C,w,I,O,F,B,z,G)=>{C.hasAttribute(_n)||C.setAttribute(_n,""),G&&w===G.row&&I===G.col?C.hasAttribute(Pt)||C.setAttribute(Pt,""):C.hasAttribute(Pt)&&C.removeAttribute(Pt);let N=[];w===O&&N.push("inset 0 2px 0 0 var(--ogrid-selection, #217346)"),w===F&&N.push("inset 0 -2px 0 0 var(--ogrid-selection, #217346)"),I===B&&N.push("inset 2px 0 0 0 var(--ogrid-selection, #217346)"),I===z&&N.push("inset -2px 0 0 0 var(--ogrid-selection, #217346)"),C.style.boxShadow=N.length>0?N.join(", "):"",T.add(C);},_=C=>{C.removeAttribute(_n),C.removeAttribute(Pt),C.style.boxShadow="";},q=C=>{if(!n.value)return;let I=Math.min(C.startRow,C.endRow),O=Math.max(C.startRow,C.endRow),F=Math.min(C.startCol,C.endCol),B=Math.max(C.startCol,C.endCol),z=v,G=i();for(let N of T){let re=parseInt(N.getAttribute("data-row-index")??"",10),ae=parseInt(N.getAttribute("data-col-index")??"",10)-G;re>=I&&re<=O&&ae>=F&&ae<=B||(_(N),T.delete(N));}S||(S=buildCellIndex(n.value));let H=false;for(let N=I;N<=O;N++)for(let re=F;re<=B;re++){let ae=`${N},${re+G}`,W=S?.get(ae);W&&!W.isConnected&&!H&&(H=true,S=buildCellIndex(n.value),W=S?.get(ae)),W&&W.isConnected&&A(W,N,re,I,O,F,B,z);}},D=()=>{for(let C of T)_(C);T.clear(),S=null;},x=(C,w)=>{if(!v)return null;let O=document.elementFromPoint(C,w)?.closest?.("[data-row-index][data-col-index]");if(!O)return null;let F=parseInt(O.getAttribute("data-row-index")??"",10),B=parseInt(O.getAttribute("data-col-index")??"",10),z=i();if(Number.isNaN(F)||Number.isNaN(B)||B<z)return null;let G=B-z;return normalizeSelectionRange({startRow:v.row,startCol:v.col,endRow:F,endCol:G})},P=()=>{g&&(clearInterval(g),g=null);},k=()=>{let C=n.value;if(!C||!r||!a.value){P();return}let w=C.getBoundingClientRect(),I=0,O=0;if(r.cy<w.top+we?O=-computeAutoScrollSpeed(w.top+we-r.cy):r.cy>w.bottom-we&&(O=computeAutoScrollSpeed(r.cy-(w.bottom-we))),r.cx<w.left+we?I=-computeAutoScrollSpeed(w.left+we-r.cx):r.cx>w.right-we&&(I=computeAutoScrollSpeed(r.cx-(w.right-we))),I===0&&O===0){P();return}g||(g=setInterval(()=>{let F=n.value,B=r;if(!F||!B||!a.value){P();return}let z=F.getBoundingClientRect(),G=0,H=0;if(B.cy<z.top+we?H=-computeAutoScrollSpeed(z.top+we-B.cy):B.cy>z.bottom-we&&(H=computeAutoScrollSpeed(B.cy-(z.bottom-we))),B.cx<z.left+we?G=-computeAutoScrollSpeed(z.left+we-B.cx):B.cx>z.right-we&&(G=computeAutoScrollSpeed(B.cx-(z.right-we))),G===0&&H===0){P();return}F.scrollTop+=H,F.scrollLeft+=G;let N=x(B.cx,B.cy);N&&(u=N,q(N));},er));},y=C=>{!a.value||!v||(f||(f=true,d.value=true,S=buildCellIndex(n.value)),r={cx:C.clientX,cy:C.clientY},k(),c&&cancelAnimationFrame(c),c=requestAnimationFrame(()=>{if(c=0,!r)return;let w=x(r.cx,r.cy);if(!w)return;let I=u;I&&I.startRow===w.startRow&&I.startCol===w.startCol&&I.endRow===w.endRow&&I.endCol===w.endCol||(u=w,q(w));}));},R=()=>{if(!a.value)return;P(),c&&(cancelAnimationFrame(c),c=0),a.value=false;let C=f;if(C){if(r){let I=x(r.cx,r.cy);I&&(u=I);}let w=u;if(w){p(w);let I=v;I&&l({rowIndex:I.row,columnIndex:I.col+i()});}}D(),u=null,r=null,v=null,C&&(d.value=false);},b=C=>{s.value||y(C);},L=()=>{s.value||R();};return onMounted(()=>{window.addEventListener("pointermove",b,true),window.addEventListener("pointerup",L,true);}),onUnmounted(()=>{s.value=true,window.removeEventListener("pointermove",b,true),window.removeEventListener("pointerup",L,true),c&&cancelAnimationFrame(c),P();}),{selectionRange:m,setSelectionRange:p,handleCellMouseDown:h,handleSelectAllCells:E,isDragging:d}}function Kt(){let e=shallowRef(null);return {contextMenuPosition:e,setContextMenuPosition:i=>{e.value=i;},handleCellContextMenu:i=>{i.preventDefault?.(),e.value={x:i.clientX,y:i.clientY};},closeContextMenu:()=>{e.value=null;}}}function $t(e){let{items:o,visibleCols:n,selectionRange:l,activeCell:i,editable:m,onCellValueChanged:d,beginBatch:a,endBatch:s}=e,f=()=>isRef(e.colOffset)?e.colOffset.value:e.colOffset,v=shallowRef(null),c=shallowRef(null),u=ref(null),g=()=>{let T=l.value,S=i.value,A=f();return T??(S!=null?{startRow:S.rowIndex,startCol:S.columnIndex-A,endRow:S.rowIndex,endCol:S.columnIndex-A}:null)},r=()=>{let T=g();if(T==null)return;let S=normalizeSelectionRange(T),A=formatSelectionAsTsv(o.value,n.value,S);u.value=A,c.value=S,navigator.clipboard.writeText(A).catch(_=>{typeof console<"u"&&console.warn("[OGrid] Clipboard write failed:",_);});};return {handleCopy:r,handleCut:()=>{if(m.value===false)return;let T=g();if(T==null||d.value==null)return;let S=normalizeSelectionRange(T);v.value=S,c.value=null,r(),c.value=null;},handlePaste:async()=>{if(m.value===false)return;let T=d.value;if(T==null)return;let S;try{S=await navigator.clipboard.readText();}catch{S="";}if(!S.trim()&&u.value!=null&&(S=u.value),!S.trim())return;let A=g(),_=A?A.startRow:0,q=A?A.startCol:0,D=o.value,x=n.value,P=parseTsvClipboard(S);a?.();let k=applyPastedValues(P,_,q,D,x);for(let y of k)T(y);if(v.value){let y=applyCutClear(v.value,D,x);for(let R of y)T(R);v.value=null;}s?.(),c.value=null;},cutRange:v,copyRange:c,clearClipboardRanges:()=>{c.value=null,v.value=null;}}}function qt(e){let o=et(e);return {handleGridKeyDown:l=>{let{data:i,state:m,handlers:d,features:a}=o.value,s=i.items.value,f=i.visibleCols.value,{getRowId:v}=i,c=isRef(i.colOffset)?i.colOffset.value:i.colOffset,u=i.hasCheckboxCol.value,g=i.visibleColumnCount.value,r=m.activeCell.value,p=m.selectionRange.value,h=m.editingCell.value,E=m.selectedRowIds.value,{setActiveCell:T,setSelectionRange:S,setEditingCell:A,handleRowCheckboxChange:_,handleCopy:q,handleCut:D,handlePaste:x,setContextMenu:P,onUndo:k,onRedo:y,clearClipboardRanges:R}=d,b=a.editable.value,L=a.onCellValueChanged.value,C=a.rowSelection.value,w=a.wrapperRef,I=a.scrollToRow,{fillDown:O}=a,F=a.onKeyDown?.value;if(F&&(F(l),l.defaultPrevented))return;let B=s.length-1,z=g-1+c;if(s.length===0)return;if(r===null){["ArrowDown","ArrowUp","ArrowLeft","ArrowRight","Tab","Enter","Home","End","PageDown","PageUp"].includes(l.key)&&(T({rowIndex:0,columnIndex:c}),l.preventDefault());return}let{rowIndex:G,columnIndex:H}=r,N=H-c,re=l.shiftKey,ae=(W,ne)=>{if(W<0||W>=s.length||ne<0||ne>=f.length)return true;let le=getCellValue(s[W],f[ne]);return le==null||le===""};switch(l.key){case "c":if(l.ctrlKey||l.metaKey){if(h!=null)break;l.preventDefault(),q();}break;case "x":if(l.ctrlKey||l.metaKey){if(h!=null)break;l.preventDefault(),D();}break;case "v":if(l.ctrlKey||l.metaKey){if(h!=null)break;l.preventDefault(),x();}break;case "d":if(l.ctrlKey||l.metaKey){if(h!=null)break;b!==false&&O&&(l.preventDefault(),O());}break;case "ArrowDown":case "ArrowUp":case "ArrowRight":case "ArrowLeft":{if(h!=null)break;l.preventDefault();let{newRowIndex:W,newColumnIndex:ne,newRange:le}=computeArrowNavigation({direction:l.key,rowIndex:G,columnIndex:H,dataColIndex:N,colOffset:c,maxRowIndex:B,maxColIndex:z,visibleColCount:f.length,isCtrl:l.ctrlKey||l.metaKey,isShift:re,selectionRange:p,isEmptyAt:ae});S(le),T({rowIndex:W,columnIndex:ne}),(l.key==="ArrowDown"||l.key==="ArrowUp")&&I?.(W,"center");break}case "Tab":{l.preventDefault();let{rowIndex:W,columnIndex:ne}=computeTabNavigation(G,H,B,z,c,l.shiftKey),le=ne-c;S({startRow:W,startCol:le,endRow:W,endCol:le}),T({rowIndex:W,columnIndex:ne});break}case "Home":{l.preventDefault();let W=l.ctrlKey?0:G;S({startRow:W,startCol:0,endRow:W,endCol:0}),T({rowIndex:W,columnIndex:c});break}case "End":{l.preventDefault();let W=l.ctrlKey?B:G;S({startRow:W,startCol:g-1,endRow:W,endCol:g-1}),T({rowIndex:W,columnIndex:z});break}case "PageDown":case "PageUp":{l.preventDefault();let W=w.value,ne=10;if(W){let Te=W.querySelector("tbody tr");Te&&Te.offsetHeight>0&&(ne=Math.max(1,Math.floor(W.clientHeight/Te.offsetHeight)));}let le=l.key==="PageDown"?1:-1,ve=Math.max(0,Math.min(G+le*ne,B));S(re?{startRow:p?.startRow??G,startCol:p?.startCol??N,endRow:ve,endCol:p?.endCol??N}:{startRow:ve,startCol:N,endRow:ve,endCol:N}),T({rowIndex:ve,columnIndex:H}),I?.(ve,"center");break}case "Enter":case "F2":{if(l.preventDefault(),N>=0&&N<f.length){let W=f[N],ne=s[G];if(ne&&W){let le=W.editable===true||typeof W.editable=="function"&&W.editable(ne);b!==false&&le&&L!=null&&A({rowId:v(ne),columnId:W.columnId});}}break}case "Escape":l.preventDefault(),h!=null?A(null):(R?.(),T(null),S(null));break;case " ":if(C!=="none"&&H===0&&u){l.preventDefault();let W=s[G];if(W){let ne=v(W),le=E.has(ne);_(ne,!le,G,l.shiftKey);}}break;case "z":(l.ctrlKey||l.metaKey)&&h==null&&(l.shiftKey&&y?(l.preventDefault(),y()):!l.shiftKey&&k&&(l.preventDefault(),k()));break;case "y":(l.ctrlKey||l.metaKey)&&h==null&&y&&(l.preventDefault(),y());break;case "a":if(l.ctrlKey||l.metaKey){if(h!=null)break;l.preventDefault(),s.length>0&&g>0&&(S({startRow:0,startCol:0,endRow:s.length-1,endCol:g-1}),T({rowIndex:0,columnIndex:c}));}break;case "Delete":case "Backspace":{if(h!=null||b===false||L==null)break;let W=p??(r!=null?{startRow:r.rowIndex,startCol:r.columnIndex-c,endRow:r.rowIndex,endCol:r.columnIndex-c}:null);if(W==null)break;l.preventDefault();let ne=applyCellDeletion(W,s,f);for(let le of ne)L(le);break}case "F10":if(l.shiftKey)if(l.preventDefault(),r!=null&&w.value){let W=`[data-row-index="${r.rowIndex}"][data-col-index="${r.columnIndex}"]`,ne=w.value.querySelector(W);if(ne){let le=ne.getBoundingClientRect();P({x:le.left+le.width/2,y:le.top+le.height/2});}else P({x:100,y:100});}else P({x:100,y:100});break;}}}}var Xt="data-drag-range";function jt(e){let{items:o,visibleCols:n,editable:l,onCellValueChanged:i,selectionRange:m,setSelectionRange:d,setActiveCell:a,wrapperRef:s,beginBatch:f,endBatch:v,visibleRange:c}=e,u=()=>isRef(e.colOffset)?e.colOffset.value:e.colOffset,g=shallowRef(null),r={endRow:0,endCol:0},p=0,h=null,E=null,T=null,S=D=>{g.value=D;},A=()=>{E&&(window.removeEventListener("pointermove",E,true),E=null),T&&(window.removeEventListener("pointerup",T,true),T=null),p&&(cancelAnimationFrame(p),p=0);};return watch(g,(D,x,P)=>{if(!D||l.value===false||!i.value||!s.value){A();return}r={endRow:D.startRow,endCol:D.startCol},h=null;let k=new Set,y=buildCellIndex(s.value),R=w=>{if(!s.value)return;let O=Math.min(w.startRow,w.endRow),F=Math.max(w.startRow,w.endRow),B=Math.min(w.startCol,w.endCol),z=Math.max(w.startCol,w.endCol),G=u();for(let H of k){let N=parseInt(H.getAttribute("data-row-index")??"",10),re=parseInt(H.getAttribute("data-col-index")??"",10)-G;N>=O&&N<=F&&re>=B&&re<=z||(H.removeAttribute(Xt),k.delete(H));}for(let H=O;H<=F;H++)for(let N=B;N<=z;N++){let re=`${H},${N+G}`,ae=y?.get(re);ae&&!ae.isConnected&&(y=buildCellIndex(s.value),ae=y.get(re)),ae&&(ae.hasAttribute(Xt)||ae.setAttribute(Xt,""),k.add(ae));}},b=()=>{for(let w of k)w.removeAttribute(Xt);k.clear();},L=null,C=(w,I)=>{let F=document.elementFromPoint(w,I)?.closest?.("[data-row-index][data-col-index]");if(!F||!s.value?.contains(F))return null;let B=parseInt(F.getAttribute("data-row-index")??"",10),z=parseInt(F.getAttribute("data-col-index")??"",10),G=u();if(Number.isNaN(B)||Number.isNaN(z)||z<G)return null;let H=z-G;return normalizeSelectionRange({startRow:D.startRow,startCol:D.startCol,endRow:B,endCol:H})};E=w=>{L={cx:w.clientX,cy:w.clientY},p&&cancelAnimationFrame(p),p=requestAnimationFrame(()=>{if(p=0,!L)return;let I=C(L.cx,L.cy);if(!I)return;let O=h;O&&O.startRow===I.startRow&&O.startCol===I.startCol&&O.endRow===I.endRow&&O.endCol===I.endCol||(h=I,r={endRow:I.endRow,endCol:I.endCol},R(I));});},T=()=>{if(p&&(cancelAnimationFrame(p),p=0),L){let G=C(L.cx,L.cy);G&&(h=G,r={endRow:G.endRow,endCol:G.endCol});}b();let w=r,I=normalizeSelectionRange({startRow:D.startRow,startCol:D.startCol,endRow:w.endRow,endCol:w.endCol}),O=c?.value;O&&(I.startRow=Math.max(I.startRow,O.startIndex),I.endRow=Math.min(I.endRow,O.endIndex)),d(I),a({rowIndex:D.startRow,columnIndex:D.startCol+u()});let F=o.value,B=n.value,z=i.value;if(z){let G=applyFillValues(I,D.startRow,D.startCol,F,B);if(G.length>0){f?.();for(let H of G)z(H);v?.();}}g.value=null,h=null,A();},window.addEventListener("pointermove",E,true),window.addEventListener("pointerup",T,true),P(()=>{A();});}),onUnmounted(()=>A()),{fillDrag:g,setFillDrag:S,handleFillHandleMouseDown:D=>{D.preventDefault(),D.stopPropagation();let x=m.value;x&&(g.value={startRow:x.startRow,startCol:x.startCol});},fillDown:()=>{let D=m.value;if(!D||l.value===false||!i.value)return;let x=normalizeSelectionRange(D),P=o.value,k=n.value,y=i.value,R=applyFillValues(x,x.startRow,x.startCol,P,k);if(R.length>0){f?.();for(let b of R)y(b);v?.();}}}}function Yt(e){let{onCellValueChanged:o,maxUndoDepth:n=100,afterChange:l}=e,i=new UndoRedoStack(n),m=ref(false),d=ref(false),a=()=>{m.value=i.canUndo,d.value=i.canRedo;};return {onCellValueChanged:o?g=>{i.record(g),i.isBatching||a(),o(g),i.isBatching||l?.();}:void 0,undo:()=>{if(!o)return;let g=i.undo();if(g){a();for(let r=g.length-1;r>=0;r--){let p=g[r];o({...p,oldValue:p.newValue,newValue:p.oldValue});}l?.();}},redo:()=>{if(!o)return;let g=i.redo();if(g){a();for(let r of g)o(r);l?.();}},canUndo:m,canRedo:d,beginBatch:()=>{i.beginBatch();},endBatch:()=>{i.endBatch(),a(),l?.();},maxUndoDepth:n}}function Zt(e){let{wrapperRef:o,visibleCols:n,flatColumns:l,hasCheckboxCol:i,initialColumnWidths:m,onColumnResized:d}=e,a=ref(0),s,f=()=>{let r=o.value;if(!r)return;let p=r.getBoundingClientRect(),h=window.getComputedStyle(r),E=(parseFloat(h.borderLeftWidth||"0")||0)+(parseFloat(h.borderRightWidth||"0")||0);a.value=Math.max(0,p.width-E);};onMounted(()=>{let r=o.value;r&&(typeof ResizeObserver<"u"&&(s=new ResizeObserver(f),s.observe(r)),f());}),onUnmounted(()=>{s?.disconnect();});let v=ref((()=>{if(!m)return {};let r={};for(let[p,h]of Object.entries(m))r[p]={widthPx:h};return r})()),c=r=>{v.value=r;},u=computed(()=>{let r=i.value?CHECKBOX_COLUMN_WIDTH:0;return n.value.reduce((p,h)=>p+(h.minWidth??estimateHeaderMinWidth(h.name))+CELL_PADDING,r)});watch(l,r=>{let p=new Set(r.map(S=>S.columnId)),h=v.value,E=Object.keys(h),T=E.filter(S=>p.has(S));if(T.length<E.length){let S={};for(let A of T)S[A]=h[A];v.value=S;}});let g=computed(()=>{let r=i.value?CHECKBOX_COLUMN_WIDTH:0;return n.value.reduce((p,h)=>{let E=v.value[h.columnId],T=h.minWidth??estimateHeaderMinWidth(h.name),S=E?E.widthPx:h.idealWidth??h.defaultWidth??T;return p+Math.max(T,S)+CELL_PADDING},r)});return {containerWidth:a,minTableWidth:u,desiredTableWidth:g,columnSizingOverrides:v,setColumnSizingOverrides:c,onColumnResized:d}}function Jt(e){let{columns:o,pinnedColumns:n,onColumnPinned:l}=e,i={};for(let u of o.value)u.pinned&&(i[u.columnId]=u.pinned);let m=ref(i),d=computed(()=>n?.value??m.value);return {pinnedColumns:d,pinColumn:(u,g)=>{let r={...d.value,[u]:g};m.value=r,l?.(u,g);},unpinColumn:u=>{let{[u]:g,...r}=d.value;m.value=r,l?.(u,null);},isPinned:u=>d.value[u],computeLeftOffsets:(u,g,r,p,h)=>{let E={},T=p?h:0;for(let S of u)d.value[S.columnId]==="left"&&(E[S.columnId]=T,T+=g[S.columnId]??r);return E},computeRightOffsets:(u,g,r)=>{let p={},h=0;for(let E=u.length-1;E>=0;E--){let T=u[E];d.value[T.columnId]==="right"&&(p[T.columnId]=h,h+=g[T.columnId]??r);}return p}}}function en(e){let{columns:o,pinnedColumns:n,onPinColumn:l,onUnpinColumn:i,onSort:m,onColumnResized:d,onAutosizeColumn:a,sortBy:s,sortDirection:f}=e,v=ref(false),c=ref(null),u=ref(null),g=(C,w)=>{c.value=C,u.value=w,v.value=true;},r=()=>{v.value=false,c.value=null,u.value=null;},p=computed(()=>c.value?o.value.find(C=>C.columnId===c.value):void 0),h=computed(()=>c.value?n.value[c.value]:void 0),E=computed(()=>h.value!=="left"),T=computed(()=>h.value!=="right"),S=computed(()=>!!h.value),A=computed(()=>!c.value||!s?.value||s.value!==c.value?null:f?.value??null),_=computed(()=>p.value?.sortable!==false),q=ref(true);return {isOpen:v,openForColumn:c,anchorElement:u,open:g,close:r,handlePinLeft:()=>{c.value&&E.value&&(l(c.value,"left"),r());},handlePinRight:()=>{c.value&&T.value&&(l(c.value,"right"),r());},handleUnpin:()=>{c.value&&S.value&&(i(c.value),r());},handleSortAsc:()=>{c.value&&m&&(m(c.value,"asc"),r());},handleSortDesc:()=>{c.value&&m&&(m(c.value,"desc"),r());},handleClearSort:()=>{c.value&&m&&(m(c.value,null),r());},handleAutosizeThis:()=>{let C=a??d;if(!c.value||!C||!q.value)return;let w=p.value;C(c.value,measureColumnContentWidth(c.value,w?.minWidth)),r();},handleAutosizeAll:()=>{let C=a??d;C&&(o.value.forEach(w=>{C(w.columnId,measureColumnContentWidth(w.columnId,w.minWidth));}),r());},canPinLeft:E,canPinRight:T,canUnpin:S,currentSort:A,isSortable:_,isResizable:q}}var _e=()=>{},Mr=async()=>{},kr=(e,o,n)=>{},Ar=e=>{},Lr=e=>{};function nn(e){let{props:o,wrapperRef:n}=e,l=computed(()=>o.value.items),i=o.value.getRowId,m=computed(()=>o.value.rowSelection??"none"),d=computed(()=>o.value.selectedRows),a=computed(()=>o.value.editable),s=computed(()=>o.value.cellSelection!==false),f=computed(()=>o.value.pinnedColumns),v=ref(0),c=()=>{v.value++;},u=Yt({onCellValueChanged:o.value.onCellValueChanged,afterChange:c}),g=computed(()=>u.onCellValueChanged),r=computed(()=>flattenColumns(o.value.columns)),p=computed(()=>{let J=f.value;return !J||Object.keys(J).length===0?r.value:r.value.map(Y=>{let ie=J[Y.columnId];return ie&&Y.pinned!==ie?{...Y,pinned:ie}:Y})}),h=computed(()=>resolveResponsiveConfig(o.value.responsiveColumns)),E=computed(()=>{let J=o.value.visibleColumns,Y=o.value.columnOrder,ie=J?p.value.filter(ce=>J.has(ce.columnId)):p.value;if(!Y?.length)return ie;let ge=new Map;for(let ce=0;ce<Y.length;ce++)ge.set(Y[ce],ce);return [...ie].sort((ce,Fe)=>{let Ie=ge.get(ce.columnId)??-1,Ce=ge.get(Fe.columnId)??-1;return Ie===-1&&Ce===-1?0:Ie===-1?1:Ce===-1?-1:Ie-Ce})}),T=ref(0),S=computed(()=>applyResponsiveHiding(E.value,T.value,h.value)),A=computed(()=>S.value.length),_=computed(()=>m.value==="multiple"),q=computed(()=>!!o.value.showRowNumbers),D=computed(()=>(_.value?1:0)+(q.value?1:0)),x=computed(()=>A.value+D.value),P=D,k=shallowRef(new Map);watch(l,J=>{let Y=k.value;Y.clear(),J.forEach((ie,ge)=>Y.set(i(ie),ge)),triggerRef(k);},{immediate:true});let y=Gt({items:l,getRowId:i,rowSelection:m,controlledSelectedRows:d,onSelectionChange:o.value.onSelectionChange}),{editingCell:R,setEditingCell:b,pendingEditorValue:L,setPendingEditorValue:C}=Nt(),{activeCell:w,setActiveCell:I}=Wt(n,R),O=computed(()=>l.value.length),F=computed(()=>S.value.length),{selectionRange:B,setSelectionRange:z,handleCellMouseDown:G,handleSelectAllCells:H,isDragging:N}=_t({colOffset:P,rowCount:O,visibleColCount:F,setActiveCell:I,wrapperRef:n}),{contextMenuPosition:re,setContextMenuPosition:ae,handleCellContextMenu:W,closeContextMenu:ne}=Kt(),{handleCopy:le,handleCut:ve,handlePaste:Te,cutRange:Le,copyRange:Ee,clearClipboardRanges:De}=$t({items:l,visibleCols:S,colOffset:P,selectionRange:B,activeCell:w,editable:a,onCellValueChanged:g,beginBatch:u.beginBatch,endBatch:u.endBatch}),yt=(J,Y,ie)=>{J.button===0&&(n.value?.focus({preventScroll:true}),De(),G(J,Y,ie));},{handleFillHandleMouseDown:nt,fillDown:st}=jt({items:l,visibleCols:S,editable:a,onCellValueChanged:g,selectionRange:B,setSelectionRange:z,setActiveCell:I,colOffset:P,wrapperRef:n,beginBatch:u.beginBatch,endBatch:u.endBatch}),{handleGridKeyDown:ut}=qt({data:{items:l,visibleCols:S,colOffset:P,hasCheckboxCol:_,visibleColumnCount:A,getRowId:i},state:{activeCell:w,selectionRange:B,editingCell:R,selectedRowIds:y.selectedRowIds},handlers:{setActiveCell:I,setSelectionRange:z,setEditingCell:b,handleRowCheckboxChange:y.handleRowCheckboxChange,handleCopy:le,handleCut:ve,handlePaste:Te,setContextMenu:ae,onUndo:u.undo,onRedo:u.redo,clearClipboardRanges:De},features:{editable:a,onCellValueChanged:g,rowSelection:m,wrapperRef:n,fillDown:st,onKeyDown:computed(()=>o.value.onKeyDown)}}),{containerWidth:ot,minTableWidth:qe,desiredTableWidth:lt,columnSizingOverrides:Me,setColumnSizingOverrides:Ve}=Zt({wrapperRef:n,visibleCols:E,flatColumns:p,hasCheckboxCol:_,initialColumnWidths:o.value.initialColumnWidths,onColumnResized:(J,Y)=>o.value.onColumnResized?.(J,Y)});watch(ot,J=>{T.value=J;},{immediate:true});let Se=Jt({columns:p,pinnedColumns:f,onColumnPinned:o.value.onColumnPinned}),dt=(J,Y)=>{Ve({...Me.value,[J]:{widthPx:Y}}),o.value.onColumnResized?.(J,Y);},se=en({columns:p,pinnedColumns:Se.pinnedColumns,onPinColumn:Se.pinColumn,onUnpinColumn:Se.unpinColumn,onSort:o.value.onColumnSort,onColumnResized:o.value.onColumnResized,onAutosizeColumn:dt,sortBy:computed(()=>o.value.sortBy),sortDirection:computed(()=>o.value.sortDirection)}),xe=ref({});watch([S,ot,Me],()=>{nextTick(()=>{let J=n.value;if(!J)return;let Y=J.querySelectorAll("th[data-column-id]");if(Y.length===0)return;let ie={};Y.forEach(Ie=>{let Ce=Ie.getAttribute("data-column-id");Ce&&(ie[Ce]=Ie.offsetWidth);});let ge=xe.value,ce=Object.keys(ie),Fe=ce.length!==Object.keys(ge).length;if(!Fe){for(let Ie of ce)if(ge[Ie]!==ie[Ie]){Fe=true;break}}Fe&&(xe.value=ie);});},{flush:"post"});let Xe=computed(()=>{let J={};for(let Y of S.value){let ie=Me.value[Y.columnId];J[Y.columnId]=ie?ie.widthPx:Y.idealWidth??Y.defaultWidth??Y.minWidth??DEFAULT_MIN_COLUMN_WIDTH;}return J}),je=computed(()=>Se.computeLeftOffsets(S.value,Xe.value,DEFAULT_MIN_COLUMN_WIDTH,_.value,CHECKBOX_COLUMN_WIDTH)),Ye=computed(()=>Se.computeRightOffsets(S.value,Xe.value,DEFAULT_MIN_COLUMN_WIDTH)),Ze=computed(()=>computeAggregations(l.value,S.value,s.value?B.value:null)),Je=computed(()=>{let J=getDataGridStatusBarConfig(o.value.statusBar,l.value.length,y.selectedRowIds.value.size);return J?{...J,aggregation:Ze.value??void 0}:null}),ze=computed(()=>l.value.length===0&&!!o.value.emptyState&&!o.value.isLoading),ct=computed(()=>B.value!=null||w.value!=null),mt=computed(()=>({sortBy:o.value.sortBy,sortDirection:o.value.sortDirection,onColumnSort:o.value.onColumnSort,filters:o.value.filters,onFilterChange:o.value.onFilterChange,filterOptions:o.value.filterOptions,loadingFilterOptions:o.value.loadingFilterOptions,peopleSearch:o.value.peopleSearch})),Be=computed(()=>({editingCell:R.value,activeCell:s.value?w.value:null,selectionRange:s.value?B.value:null,cutRange:s.value?Le.value:null,copyRange:s.value?Ee.value:null,colOffset:P.value,itemsLength:l.value.length,getRowId:i,editable:a.value,onCellValueChanged:g.value,isDragging:s.value?N.value:false,getFormulaValue:o.value.getFormulaValue,hasFormula:o.value.hasFormula,getFormula:o.value.getFormula,formulaVersion:o.value.formulaVersion})),rt=ref(null),Qe=J=>{rt.value=J;},ft=(J,Y,ie,ge,ce,Fe,Ie)=>{let Ce=S.value.find(ye=>ye.columnId===Y);if(Ce){let ye=parseValue(ge,ie,J,Ce);if(!ye.valid){b(null),Qe(null),C(void 0);return}ge=ye.value;}if(b(null),Qe(null),C(void 0),Object.is(ge,ie)||g.value?.({item:J,columnId:Y,oldValue:ie,newValue:ge,rowIndex:ce}),!Ie?.skipAdvance&&ce<l.value.length-1){let ye=ce+1,ht=Fe-P.value;I({rowIndex:ye,columnIndex:Fe}),z({startRow:ye,startCol:ht,endRow:ye,endCol:ht});}},Ut=()=>{b(null),Qe(null),C(void 0);},fe=computed(()=>({flatColumns:p.value,visibleCols:S.value,visibleColumnCount:A.value,totalColCount:x.value,colOffset:P.value,hasCheckboxCol:_.value,hasRowNumbersCol:q.value,rowIndexByRowId:k.value,containerWidth:ot.value,minTableWidth:qe.value,desiredTableWidth:lt.value,columnSizingOverrides:Me.value,setColumnSizingOverrides:Ve,onColumnResized:o.value.onColumnResized,measuredColumnWidths:xe.value,stickyHeader:o.value.stickyHeader??true})),pt=computed(()=>({selectedRowIds:y.selectedRowIds.value,updateSelection:y.updateSelection,handleRowCheckboxChange:y.handleRowCheckboxChange,handleSelectAll:y.handleSelectAll,allSelected:y.allSelected.value,someSelected:y.someSelected.value})),vt=computed(()=>({editingCell:R.value,setEditingCell:b,pendingEditorValue:L.value,setPendingEditorValue:C,commitCellEdit:ft,cancelPopoverEdit:Ut,popoverAnchorEl:rt.value,setPopoverAnchorEl:Qe})),at=computed(()=>(v.value,{activeCell:s.value?w.value:null,setActiveCell:s.value?I:_e,selectionRange:s.value?B.value:null,setSelectionRange:s.value?z:_e,handleCellMouseDown:s.value?yt:kr,handleSelectAllCells:s.value?H:_e,hasCellSelection:s.value?ct.value:false,handleGridKeyDown:s.value?ut:Ar,handleFillHandleMouseDown:s.value?nt:_e,handleCopy:s.value?le:_e,handleCut:s.value?ve:_e,handlePaste:s.value?Te:Mr,cutRange:s.value?Le.value:null,copyRange:s.value?Ee.value:null,clearClipboardRanges:s.value?De:_e,canUndo:u.canUndo.value,canRedo:u.canRedo.value,onUndo:u.undo,onRedo:u.redo,isDragging:s.value?N.value:false})),gt=computed(()=>({menuPosition:s.value?re.value:null,setMenuPosition:s.value?ae:_e,handleCellContextMenu:s.value?W:Lr,closeContextMenu:s.value?ne:_e})),Ge=computed(()=>({headerFilterInput:mt.value,cellDescriptorInput:Be.value,statusBarConfig:Je.value,showEmptyInGrid:ze.value,onCellError:o.value.onCellError})),Ct=computed(()=>({pinnedColumns:Se.pinnedColumns.value,pinColumn:Se.pinColumn,unpinColumn:Se.unpinColumn,isPinned:Se.isPinned,leftOffsets:je.value,rightOffsets:Ye.value,headerMenu:{isOpen:se.isOpen.value,openForColumn:se.openForColumn.value,anchorElement:se.anchorElement.value,open:se.open,close:se.close,handlePinLeft:se.handlePinLeft,handlePinRight:se.handlePinRight,handleUnpin:se.handleUnpin,handleSortAsc:se.handleSortAsc,handleSortDesc:se.handleSortDesc,handleClearSort:se.handleClearSort,handleAutosizeThis:se.handleAutosizeThis,handleAutosizeAll:se.handleAutosizeAll,canPinLeft:se.canPinLeft.value,canPinRight:se.canPinRight.value,canUnpin:se.canUnpin.value,currentSort:se.currentSort.value,isSortable:se.isSortable.value,isResizable:se.isResizable.value}}));return {layout:fe,rowSelection:pt,editing:vt,interaction:at,contextMenu:gt,viewModels:Ge,pinning:Ct}}function on(e){let{columnSizingOverrides:o,setColumnSizingOverrides:n,minWidth:l=80,defaultWidth:i=120,onColumnResized:m}=e,d=0,a=null;return onUnmounted(()=>{a?.(),a=null;}),{handleResizeStart:(c,u)=>{c.preventDefault(),c.stopPropagation();let g=c.clientX,r=u.columnId,p=c.currentTarget.parentElement,h=p?p.getBoundingClientRect().width:o.value[r]?.widthPx??u.idealWidth??u.defaultWidth??i,E=h,T=document.body.style.cursor,S=document.body.style.userSelect;document.body.style.cursor="col-resize",document.body.style.userSelect="none";let A=()=>{n({...o.value,[r]:{widthPx:E}});},_=r===ROW_NUMBER_COLUMN_ID?ROW_NUMBER_COLUMN_MIN_WIDTH:l,q=P=>{let k=P.clientX-g;E=Math.max(_,h+k),d||(d=requestAnimationFrame(()=>{d=0,A();}));},D=()=>{document.removeEventListener("pointermove",q),document.removeEventListener("pointerup",x),a=null,document.body.style.cursor=T,document.body.style.userSelect=S,d&&(cancelAnimationFrame(d),d=0);},x=()=>{D(),A(),m?.(r,E);};document.addEventListener("pointermove",q),document.addEventListener("pointerup",x),a=D;},handleResizeDoubleClick:(c,u)=>{c.preventDefault(),c.stopPropagation();let g=u.columnId,p=(c.currentTarget.closest("th")??c.currentTarget.parentElement)?.closest("table")?.parentElement??void 0,h=measureColumnContentWidth(g,l,p);n({...o.value,[g]:{widthPx:h}}),m?.(g,h);},getColumnWidth:c=>o.value[c.columnId]?.widthPx??c.idealWidth??c.defaultWidth??i}}function ln(e,o){let n=ref(e.value),l;return watch(e,i=>{l!==void 0&&clearTimeout(l),l=setTimeout(()=>{n.value=i;},o);}),onUnmounted(()=>{l!==void 0&&clearTimeout(l);}),n}function Fo(e,o){let n,l=e,i,m=((...d)=>{l=e,i=d,n!==void 0&&clearTimeout(n),n=setTimeout(()=>{l(...d),i=void 0,n=void 0;},o);});return m.cancel=()=>{n!==void 0&&clearTimeout(n),n=void 0,i=void 0;},m.flush=()=>{if(n!==void 0&&i!==void 0){clearTimeout(n),n=void 0;let d=i;i=void 0,l(...d);}},onUnmounted(()=>{n!==void 0&&clearTimeout(n);}),m}function rn(e){let{textValue:o="",onTextChange:n}=e,l=ref(o);return watch(e.isFilterOpen,a=>{a&&(l.value=e.textValue??"");}),{tempTextValue:l,setTempTextValue:a=>{l.value=a;},handleTextApply:()=>{n?.(l.value.trim());},handleTextClear:()=>{l.value="";}}}var qr=150,Xn=[];function an(e){let{onFilterChange:o}=e,n=ref(new Set(e.selectedValues??Xn)),l=ref(""),i=ln(l,qr);watch(e.isFilterOpen,u=>{u&&(n.value=new Set(e.selectedValues??Xn),l.value="");});let m=computed(()=>{let u=e.options??Xn;if(!i.value.trim())return u;let g=i.value.toLowerCase().trim();return u.filter(r=>r.toLowerCase().includes(g))});return {tempSelected:n,setTempSelected:u=>{n.value=u;},searchText:l,setSearchText:u=>{l.value=u;},debouncedSearchText:i,filteredOptions:m,handleCheckboxChange:(u,g)=>{let r=new Set(n.value);g?r.add(u):r.delete(u),n.value=r;},handleSelectAll:()=>{n.value=new Set(m.value);},handleClearSelection:()=>{n.value=new Set;},handleApplyMultiSelect:()=>{o?.(Array.from(n.value));}}}var jr=300;function un(e){let{onUserChange:o,filterType:n}=e,l=ref(null),i,m=ref([]),d=ref(false),a=ref(""),s=c=>{a.value=c;};return watch(e.isFilterOpen,c=>{c&&(a.value="",m.value=[],n==="people"&&setTimeout(()=>l.value?.focus(),50));}),watch([a,()=>e.peopleSearch,e.isFilterOpen],([c,u,g])=>{if(i&&clearTimeout(i),!(!u||!g||n!=="people")){if(!c.trim()){m.value=[];return}d.value=true,i=setTimeout(async()=>{try{let r=await u(c);m.value=r.slice(0,10);}catch{m.value=[];}finally{d.value=false;}},jr);}}),onUnmounted(()=>{i&&clearTimeout(i);}),{peopleSuggestions:m,isPeopleLoading:d,peopleSearchText:a,setPeopleSearchText:s,peopleInputRef:l,handleUserSelect:c=>{o?.(c);},handleClearUser:()=>{o?.(void 0);}}}function dn(e){let{onDateChange:o}=e,n=ref(e.dateValue?.from??""),l=ref(e.dateValue?.to??"");return watch(e.isFilterOpen,s=>{s&&(n.value=e.dateValue?.from??"",l.value=e.dateValue?.to??"");}),{tempDateFrom:n,setTempDateFrom:s=>{n.value=s;},tempDateTo:l,setTempDateTo:s=>{l.value=s;},handleDateApply:()=>{let s=n.value||void 0,f=l.value||void 0;o?.(s||f?{from:s,to:f}:void 0);},handleDateClear:()=>{n.value="",l.value="";}}}var Qr=[];function Ao(e){let{filterType:o,onSort:n}=e,l=()=>e.selectedValues??Qr,i=ref(null),m=ref(null),d=ref(false),a=ref(null),s=C=>{d.value=C;},f=rn({textValue:e.textValue,onTextChange:e.onTextChange,isFilterOpen:d}),v=an({selectedValues:e.selectedValues,onFilterChange:e.onFilterChange,options:e.options,isFilterOpen:d}),c=un({selectedUser:e.selectedUser,onUserChange:e.onUserChange,peopleSearch:e.peopleSearch,isFilterOpen:d,filterType:o}),u=dn({dateValue:e.dateValue,onDateChange:e.onDateChange,isFilterOpen:d});watch(d,C=>{C||(a.value=null);});let g=null,r=null,p,h=()=>{E(),g=C=>{let w=C.target;m.value&&!m.value.contains(w)&&i.value&&!i.value.contains(w)&&(d.value=false);},r=C=>{(C.key==="Escape"||C.key==="Esc")&&(C.preventDefault(),C.stopPropagation(),d.value=false);},p=setTimeout(()=>{g&&document.addEventListener("mousedown",g);},0),document.addEventListener("keydown",r,true);},E=()=>{p&&clearTimeout(p),g&&document.removeEventListener("mousedown",g),r&&document.removeEventListener("keydown",r,true),g=null,r=null;};watch(d,C=>{C?h():E();}),onUnmounted(()=>E());let T=C=>{if(C.stopPropagation(),C.preventDefault(),!d.value&&i.value){let w=i.value.getBoundingClientRect();a.value={top:w.bottom+4,left:w.left};}d.value=!d.value;},S=C=>{C.stopPropagation(),n?.();},A=()=>{v.handleApplyMultiSelect(),d.value=false;},_=()=>{f.handleTextApply(),d.value=false;},q=C=>{c.handleUserSelect(C),d.value=false;},D=()=>{c.handleClearUser(),d.value=false;},x=()=>{u.handleDateApply(),d.value=false;},P=C=>C.stopPropagation(),k=C=>C.stopPropagation(),y=C=>C.stopPropagation(),R=C=>C.stopPropagation(),b=C=>{C.key!=="Escape"&&C.key!=="Esc"&&C.stopPropagation();},L=computed(()=>o==="multiSelect"?l().length>0:o==="text"?!!(e.textValue??"").trim():o==="people"?!!e.selectedUser:o==="date"?!!(e.dateValue?.from||e.dateValue?.to):false);return {headerRef:i,popoverRef:m,peopleInputRef:c.peopleInputRef,isFilterOpen:d,setFilterOpen:s,tempSelected:v.tempSelected,setTempSelected:v.setTempSelected,tempTextValue:f.tempTextValue,setTempTextValue:f.setTempTextValue,searchText:v.searchText,setSearchText:v.setSearchText,debouncedSearchText:v.debouncedSearchText,filteredOptions:v.filteredOptions,peopleSuggestions:c.peopleSuggestions,isPeopleLoading:c.isPeopleLoading,peopleSearchText:c.peopleSearchText,setPeopleSearchText:c.setPeopleSearchText,tempDateFrom:u.tempDateFrom,setTempDateFrom:u.setTempDateFrom,tempDateTo:u.tempDateTo,setTempDateTo:u.setTempDateTo,hasActiveFilter:L,popoverPosition:a,handlers:{handleFilterIconClick:T,handleApplyMultiSelect:A,handleTextApply:_,handleTextClear:f.handleTextClear,handleUserSelect:q,handleClearUser:D,handleCheckboxChange:v.handleCheckboxChange,handleSelectAll:v.handleSelectAll,handleClearSelection:v.handleClearSelection,handlePopoverClick:P,handleInputFocus:k,handleInputMouseDown:y,handleInputClick:R,handleInputKeyDown:b,handleDateApply:x,handleDateClear:u.handleDateClear,handleSortClick:S}}}function Bo(e){let{columns:o,visibleColumns:n,onVisibilityChange:l}=e,i=ref(false),m=null,d=()=>{a(),m=h=>{h.key==="Escape"&&(h.preventDefault(),i.value=false);},document.addEventListener("keydown",m,true);},a=()=>{m&&(document.removeEventListener("keydown",m,true),m=null);};watch(i,h=>{h?d():a();}),onUnmounted(()=>a());let s=h=>{i.value=h;},f=()=>{i.value=!i.value;},v=()=>{i.value=false;},c=h=>E=>{l(h,E);},u=()=>{o.value.forEach(h=>{n.value.has(h.columnId)||l(h.columnId,true);});},g=()=>{o.value.forEach(h=>{!h.required&&n.value.has(h.columnId)&&l(h.columnId,false);});},r=computed(()=>n.value.size),p=computed(()=>o.value.length);return {open:i,setOpen:s,handleToggle:f,handleClose:v,handleCheckboxChange:c,handleSelectAll:u,handleClearAll:g,visibleCount:r,totalCount:p}}function Ho(e){let{value:o,editorType:n,onCommit:l,onCancel:i,dateFormat:m,dateEditorType:d}=e,a=m??DEFAULT_DATE_FORMAT,s=ref((()=>{if(o==null)return "";if(n==="date"){if(d==="native"){let p=String(o);return p.match(/^\d{4}-\d{2}-\d{2}/)?p.substring(0,10):p}return formatDateForDisplay(o,a)??""}return String(o)})()),f=p=>{s.value=p;},v=p=>{if(n==="date"&&d!=="native"){if(!p||!p.trim()){l(null);return}let h=parseUserInputDate(p,a);if(h!==null){let E=h.getUTCFullYear().toString().padStart(4,"0"),T=(h.getUTCMonth()+1).toString().padStart(2,"0"),S=h.getUTCDate().toString().padStart(2,"0");l(`${E}-${T}-${S}`);}else l(null);}else l(p);},c=p=>{l(p);},u=()=>{i();};return {localValue:s,setLocalValue:f,handleKeyDown:p=>{p.key==="Escape"&&(p.preventDefault(),p.stopPropagation(),u()),p.key==="Enter"&&(n==="text"||n==="date")&&(p.preventDefault(),p.stopPropagation(),v(s.value));},handleBlur:()=>{(n==="text"||n==="date")&&v(s.value);},commit:c,cancel:u}}function zo(e){let{values:o,formatValue:n,initialValue:l,onCommit:i,onCancel:m}=e,d=ref(""),a=o.findIndex(r=>String(r)===String(l)),s=ref(Math.max(a,0)),f=r=>{d.value=r;},v=r=>n?n(r):r!=null?String(r):"",c=computed(()=>{if(!d.value.trim())return o;let r=d.value.toLowerCase();return o.filter(p=>v(p).toLowerCase().includes(r))}),u=r=>{i(r);};return {searchText:d,setSearchText:f,filteredValues:c,highlightedIndex:s,handleKeyDown:r=>{switch(r.key){case "ArrowDown":r.preventDefault(),s.value=Math.min(s.value+1,c.value.length-1);break;case "ArrowUp":r.preventDefault(),s.value=Math.max(s.value-1,0);break;case "Enter":r.preventDefault(),r.stopPropagation(),c.value.length>0&&s.value<c.value.length&&u(c.value[s.value]);break;case "Escape":r.preventDefault(),r.stopPropagation(),m();break}},selectValue:u,getDisplayText:v}}var ma=8,fa=5;function mn(e){let{columnOrder:o,onColumnOrderChange:n,tableRef:l,pinnedColumns:i}=e,m=ref(false),d=ref(null),a=null,s="unpinned",f=0,v=null;return onUnmounted(()=>{v?.(),v=null;}),{isDragging:m,dropIndicatorX:d,handleHeaderMouseDown:(u,g)=>{if(g.button!==0)return;let r=g.target.closest("th");if(r){let P=r.getBoundingClientRect();if(g.clientX>P.right-ma)return}if(g.preventDefault(),!l.value||!n.value)return;a=u,s=getPinStateForColumn(u,i?.value),d.value=null;let h=g.clientX,E=false,T=g.clientX,S=-1,A=document.body.style.cursor,_=document.body.style.userSelect;document.body.style.cursor="grabbing",document.body.style.userSelect="none";let q=P=>{!E&&Math.abs(P.clientX-h)<fa||(E||(E=true,m.value=true),T=P.clientX,f||(f=requestAnimationFrame(()=>{f=0;let k=l.value;if(!k||!a)return;let y=calculateDropTarget({mouseX:T,columnOrder:o.value,draggedColumnId:a,draggedPinState:s,tableElement:k,pinnedColumns:i?.value});y?(S=y.targetIndex,d.value=y.indicatorX):d.value=null;})));},D=()=>{window.removeEventListener("pointermove",q,true),window.removeEventListener("pointerup",x,true),v=null,document.body.style.cursor=A,document.body.style.userSelect=_,f&&(cancelAnimationFrame(f),f=0);},x=()=>{if(D(),E&&a&&S>=0&&n.value){let P=reorderColumnArray(o.value,a,S);n.value(P);}a=null,m.value=false,d.value=null,S=-1;};window.addEventListener("pointermove",q,true),window.addEventListener("pointerup",x,true),v=D;}}}var ya=100;function pn(e){let{totalRows:o,rowHeight:n,enabled:l,overscan:i=5,threshold:m=ya,columnsEnabled:d,columnWidths:a,columnOverscan:s=2}=e;onMounted(()=>{validateVirtualScrollConfig({enabled:l.value,rowHeight:n});});let f=ref(null),v=ref(0),c=ref(0),u=ref(0),g=ref(0),r=0,p,h=null,E=computed(()=>l.value&&o.value>=m),T=computed(()=>E.value?computeVisibleRange(v.value,n,u.value,o.value,i):{startIndex:0,endIndex:Math.max(0,o.value-1),offsetTop:0,offsetBottom:0}),S=computed(()=>l.value?computeTotalHeight(o.value,n):0),A=computed(()=>{if(!d?.value)return null;let x=a?.value;return !x||x.length===0?null:computeVisibleColumnRange(c.value,x,g.value,s)}),_=()=>{r||(r=requestAnimationFrame(()=>{r=0;let x=f.value;x&&(v.value=x.scrollTop,c.value=x.scrollLeft);}));},q=()=>{let x=f.value;x&&(u.value=x.clientHeight,g.value=x.clientWidth);};return watch(f,x=>{x!==h&&(h&&h.removeEventListener("scroll",_),p&&(p.disconnect(),p=void 0),h=x,x&&(x.addEventListener("scroll",_,{passive:true}),typeof ResizeObserver<"u"&&(p=new ResizeObserver(q),p.observe(x)),q(),v.value=x.scrollTop,c.value=x.scrollLeft));}),onUnmounted(()=>{let x=f.value;x&&x.removeEventListener("scroll",_),p?.disconnect(),r&&(cancelAnimationFrame(r),r=0);}),{containerRef:f,visibleRange:T,totalHeight:S,scrollToRow:(x,P="start")=>{let k=f.value;k&&(k.scrollTop=getScrollTopForRow(x,n,u.value,P));},columnRange:A,scrollLeft:c}}function gn(e){let{props:o}=e,n=ref(null),l=ref(null),i=ref(null),m=ref(false),d=nn({props:o,wrapperRef:n}),a=computed(()=>{let q=o.value;return q.columnOrder?q.columnOrder:flattenColumns(q.columns).filter(D=>q.visibleColumns?.has(D.columnId)??true).map(D=>D.columnId)}),s=computed(()=>o.value.onColumnOrderChange),f=mn({columnOrder:a,onColumnOrderChange:s,tableRef:i}),v=computed(()=>o.value.virtualScroll?.enabled??false),c=computed(()=>o.value.items.length),u=o.value.virtualScroll?.rowHeight??36,g=o.value.virtualScroll?.overscan??5,r=computed(()=>o.value.virtualScroll?.columns===true),p=o.value.virtualScroll?.columnOverscan??2,h=computed(()=>{let q=d.layout.value,{visibleCols:D,columnSizingOverrides:x}=q,P=o.value.pinnedColumns??{},k=[];for(let y of D){if(P[y.columnId]||y.pinned)continue;let R=x[y.columnId];k.push(R?R.widthPx:y.defaultWidth??y.minWidth??DEFAULT_MIN_COLUMN_WIDTH);}return k}),E=pn({totalRows:c,rowHeight:u,enabled:v,overscan:g,columnsEnabled:r,columnWidths:h,columnOverscan:p}),T=computed(()=>{if(!r.value)return null;let D=d.layout.value.visibleCols,x=E.columnRange.value,P=o.value.pinnedColumns;return partitionColumnsForVirtualization(D,x,P)}),S=computed(()=>{let D=d.layout.value.visibleCols,x=new Map;for(let P=0;P<D.length;P++)x.set(D[P].columnId,P);return x}),A=computed(()=>d.layout.value.columnSizingOverrides),_=on({columnSizingOverrides:A,setColumnSizingOverrides:q=>d.layout.value.setColumnSizingOverrides(q)});return {wrapperRef:n,tableContainerRef:l,tableRef:i,lastMouseShift:m,state:d,columnReorder:f,virtualScroll:E,virtualScrollEnabled:v,columnResize:_,columnPartition:T,globalColIndexMap:S}}function Cn(e,o,n){let l={"data-row-index":e.rowIndex,"data-col-index":e.globalColIndex,...e.isActive?{"data-active-cell":"true"}:{},...e.isInRange?{"data-in-range":"true"}:{},tabindex:e.isActive?0:-1,onPointerdown:i=>{n.setEditingCell(null),n.handleCellMouseDown(i,e.rowIndex,e.globalColIndex);},onClick:()=>n.setActiveCell({rowIndex:e.rowIndex,columnIndex:e.globalColIndex}),onContextmenu:i=>n.handleCellContextMenu(i)};return e.canEditAny&&(l.role="button",l.onDblclick=()=>n.setEditingCell({rowId:e.rowId,columnId:o})),l}var No=()=>{};function ka(e){return defineComponent({name:"DataGridTable",props:{gridProps:{type:Object,required:true}},setup(o){let n=computed(()=>o.gridProps),{wrapperRef:l,tableContainerRef:i,tableRef:m,lastMouseShift:d,state:a,columnReorder:{isDragging:s,dropIndicatorX:f,handleHeaderMouseDown:v},virtualScroll:{containerRef:c,visibleRange:u,totalHeight:g,scrollToRow:r},virtualScrollEnabled:p,columnResize:{handleResizeStart:h$1,handleResizeDoubleClick:E,getColumnWidth:T},columnPartition:S,globalColIndexMap:A}=gn({props:n}),_=computed(()=>{let y=n.value;return y.showRowNumbers||y.showColumnLetters?((y.currentPage??1)-1)*(y.pageSize??25):0});watch([()=>a.interaction.value.activeCell,_],([y,R])=>{let b=n.value.onActiveCellChange;b&&b(y?formatCellReference(y.columnIndex-a.layout.value.colOffset,R+y.rowIndex+1):null);},{immediate:true});let q=y=>{d.value=y.shiftKey;},D=y=>y.preventDefault(),x=y=>y.stopPropagation(),P=computed(()=>buildHeaderRows(n.value.columns,n.value.visibleColumns)),k=computed(()=>{let y=a.layout.value,R=a.pinning.value,{visibleCols:b,columnSizingOverrides:L,measuredColumnWidths:C}=y,{leftOffsets:w,rightOffsets:I}=R,O={},F={},B={},z={};for(let G=0;G<b.length;G++){let H=b[G],N=H.pinned==="left",re=H.pinned==="right",ae=T(H),W=!!L[H.columnId],ne=C[H.columnId],le=H.minWidth??estimateHeaderMinWidth(H.name),ve=W?ae:Math.max(le,ne??0),Te={minWidth:`${ve}px`,width:`${ae}px`,maxWidth:`${ae}px`},Le={minWidth:`${ve}px`,width:`${ae}px`,maxWidth:`${ae}px`},Ee=["ogrid-data-cell"],De=["ogrid-header-cell"];N?(Ee.push("ogrid-data-cell--pinned-left"),Te.left=`${w[H.columnId]??0}px`,De.push("ogrid-header-cell--pinned-left"),Le.left=`${w[H.columnId]??0}px`):re&&(Ee.push("ogrid-data-cell--pinned-right"),Te.right=`${I[H.columnId]??0}px`,De.push("ogrid-header-cell--pinned-right"),Le.right=`${I[H.columnId]??0}px`),O[H.columnId]=Te,F[H.columnId]=Ee.join(" "),B[H.columnId]=Le,z[H.columnId]=De.join(" ");}return {cellStyles:O,cellClasses:F,hdrStyles:B,hdrClasses:z}});return ()=>{let y=o.gridProps,R=a.layout.value,b=a.rowSelection.value,L=a.editing.value,C=a.interaction.value,w=a.contextMenu.value,I=a.viewModels.value,O=a.pinning.value,{headerMenu:F}=O,{visibleCols:B,hasCheckboxCol:z,hasRowNumbersCol:G,colOffset:H,containerWidth:N,minTableWidth:re,desiredTableWidth:ae}=R,W=y.currentPage??1,ne=y.pageSize??25,le=G?(W-1)*ne:0,{selectedRowIds:ve,handleRowCheckboxChange:Te,handleSelectAll:Le,allSelected:Ee,someSelected:De}=b,{editingCell:yt,setEditingCell:nt,pendingEditorValue:st,setPendingEditorValue:ut,commitCellEdit:ot,cancelPopoverEdit:qe,popoverAnchorEl:lt,setPopoverAnchorEl:Me}=L,{setActiveCell:Ve,setSelectionRange:Se,handleCellMouseDown:dt,handleSelectAllCells:se,selectionRange:xe,hasCellSelection:Xe,handleGridKeyDown:je,handleFillHandleMouseDown:Ye,handleCopy:Ze,handleCut:Je,handlePaste:ze,cutRange:ct,copyRange:mt,canUndo:Be,canRedo:rt,onUndo:Qe,onRedo:ft,isDragging:Ut}=C,{menuPosition:fe,handleCellContextMenu:pt,closeContextMenu:vt}=w,{headerFilterInput:at,cellDescriptorInput:gt,statusBarConfig:Ge,showEmptyInGrid:Ct,onCellError:J}=I,Y=y.items,ie=y.getRowId,ge=y.layoutMode??"fill",ce=y.rowSelection??"none",Fe=y.suppressHorizontalScroll,Ie=y.stickyHeader??true,Ce=y.isLoading??false,ye=y.loadingMessage??"Loading\u2026",ht=y["aria-label"],Ot=y["aria-labelledby"],In=ge==="content",wt=!Fe&&N>0&&(re>N||ae>N),pe=P.value,xt={commitCellEdit:ot,setEditingCell:nt,setPendingEditorValue:ut,cancelPopoverEdit:qe},Tn={handleCellMouseDown:dt,setActiveCell:Ve,setEditingCell:nt,handleCellContextMenu:pt},Pn=K=>{if(ce!=="single")return;let Q=K.currentTarget.dataset.rowId;Q&&b.updateSelection(ve.has(Q)?new Set:new Set([Q]));},En=(K,M,Q,oe)=>{try{return Dn(K,M,Q,oe)}catch(V){return J&&J(V instanceof Error?V:new Error(String(V)),void 0),""}},Dn=(K,M,Q,oe)=>{let V=getCellRenderDescriptor(K,M,Q,oe,gt);if(V.mode==="editing-inline"){let ue=buildInlineEditorProps(K,M,V,xt);return h("div",{class:"ogrid-editing-cell"},h(e.InlineCellEditor,{value:ue.value,item:ue.item,column:ue.column,rowIndex:ue.rowIndex,editorType:ue.editorType,onCommit:ue.onCommit,onCancel:ue.onCancel}))}if(V.mode==="editing-popover"&&typeof M.cellEditor=="function"){let ue=buildPopoverEditorProps(K,M,V,st,xt),ee=M.cellEditor,Mt=resolveCellDisplayContent(M,K,V.displayValue),Jn=resolveCellStyle(M,K,V.displayValue);return h("div",[h("div",{ref:Qn=>{Qn&&Me(Qn);},class:"ogrid-popover-anchor"},[Jn?h("span",{style:Jn},[Mt]):Mt]),lt?h(ee,ue):null])}let Ae=Cn(V,M.columnId,Tn),Pe=["ogrid-cell-content"];M.type==="numeric"?Pe.push("ogrid-cell-content--numeric"):M.type==="boolean"&&Pe.push("ogrid-cell-content--boolean"),V.canEditAny&&Pe.push("ogrid-cell-content--editable"),V.isActive&&Pe.push("ogrid-cell-content--active"),V.isActive&&V.isInRange&&Pe.push("ogrid-cell-content--active-in-range"),V.isInRange&&!V.isActive&&Pe.push("ogrid-cell-in-range"),V.isInCutRange&&Pe.push("ogrid-cell-cut");let We;if(V.columnType==="boolean"){let ue=!!V.displayValue;We=h("input",{type:"checkbox",checked:ue,disabled:!V.canEditAny,onChange:V.canEditAny?()=>{let ee=V.rowIndex,Mt=V.globalColIndex;xt.commitCellEdit(K,M.columnId,ue,!ue,ee,Mt,{skipAdvance:true});}:void 0,onPointerdown:ee=>handleBooleanCellPointerDown(ee,V.rowIndex,V.globalColIndex,H,{setActiveCell:Ve,setSelectionRange:Se}),onClick:ee=>ee.stopPropagation(),style:`margin:0;cursor:${V.canEditAny?"pointer":"default"};outline:none`,"aria-label":ue?"Checked":"Unchecked"});}else {let ue=resolveCellDisplayContent(M,K,V.displayValue),ee=resolveCellStyle(M,K,V.displayValue);We=ee?h("span",{style:ee},ue):ue;}return h("div",{...Ae,class:Pe.join(" ")},[We,...V.canEditAny&&V.isSelectionEndCell?[h("div",{onPointerdown:Ye,"aria-label":"Fill handle",class:"ogrid-fill-handle"})]:[]])},{cellStyles:Fn,cellClasses:t,hdrStyles:U,hdrClasses:te}=k.value,he=B.map(K=>({col:K,tdClasses:t[K.columnId]||"ogrid-data-cell",tdDynamicStyle:Fn[K.columnId]||{}})),Ue=S.value,Ne=he,ke=0,Re=0;if(Ue){let K=new Set;for(let M of Ue.pinnedLeft)K.add(M.columnId);for(let M of Ue.virtualizedUnpinned)K.add(M.columnId);for(let M of Ue.pinnedRight)K.add(M.columnId);Ne=he.filter(M=>K.has(M.col.columnId)),ke=Ue.leftSpacerWidth,Re=Ue.rightSpacerWidth;}let Rt=A.value,bt=K=>{let M=U[K.columnId]||{};return {classes:te[K.columnId]||"ogrid-header-cell",style:{...M,cursor:s.value?"grabbing":"grab"}}},Oe=p.value,be={position:"relative",width:In?"fit-content":"100%",maxWidth:"100%",overflowX:Fe?"hidden":wt?"auto":"hidden",overflowY:"auto",backgroundColor:"#fff",willChange:"scroll-position",...Oe?{flex:"1",minHeight:"0"}:{minHeight:Ce&&Y.length===0?"200px":"auto"}};return y.rowHeight&&(be["--ogrid-row-height"]=`${y.rowHeight}px`),h("div",{class:"ogrid-outer-container"},[h("div",{ref:K=>{l.value=K,c.value=K;},tabindex:0,role:"region","aria-label":ht??(Ot?void 0:"Data grid"),"aria-labelledby":Ot,onPointerdown:q,onKeydown:je,onContextmenu:D,"data-overflow-x":wt?"true":"false","data-ogrid-scroll-container":"",style:be},[h("div",{class:"ogrid-scroll-wrapper"},[h("div",{style:{minWidth:wt?`${re}px`:void 0,overflowX:"clip"}},[h("div",{ref:K=>{i.value=K;},class:["ogrid-table-container",Ce&&Y.length>0?"ogrid-table-container--loading":""]},[...s.value&&f.value!==null?[h("div",{class:"ogrid-drop-indicator",style:{left:`${f.value}px`}})]:[],h("table",{ref:K=>{m.value=K;},class:"ogrid-table",role:"grid",style:{minWidth:`${re}px`},...p.value?{"data-virtual-scroll":""}:{}},[h("thead",{class:Ie?"ogrid-thead ogrid-sticky-header":"ogrid-thead"},[...y.showColumnLetters?[h("tr",{class:"ogrid-column-letter-row"},[...z?[h("th",{class:"ogrid-column-letter-cell"})]:[],...G?[h("th",{class:"ogrid-column-letter-cell"})]:[],...B.map((K,M)=>{let{classes:Q,style:oe}=bt(K);return h("th",{key:K.columnId,class:`ogrid-column-letter-cell ${Q}`,style:oe},indexToColumnLetter(M))})])]:[],...pe.map((K,M)=>h("tr",{key:M,class:"ogrid-header-row"},[...M===pe.length-1&&z?[h("th",{class:"ogrid-checkbox-header",style:{width:`${CHECKBOX_COLUMN_WIDTH}px`,minWidth:`${CHECKBOX_COLUMN_WIDTH}px`,maxWidth:`${CHECKBOX_COLUMN_WIDTH}px`}},e.renderCheckbox({modelValue:Ee,indeterminate:De&&!Ee,ariaLabel:"Select all rows",onChange:Q=>Le(!!Q)}))]:[],...M===0&&M<pe.length-1&&z?[h("th",{rowSpan:pe.length-1,class:"ogrid-checkbox-spacer",style:{width:`${CHECKBOX_COLUMN_WIDTH}px`,minWidth:`${CHECKBOX_COLUMN_WIDTH}px`}})]:[],...M===pe.length-1&&G?[(()=>{let Q=R.columnSizingOverrides[ROW_NUMBER_COLUMN_ID]?.widthPx??ROW_NUMBER_COLUMN_WIDTH;return h("th",{class:"ogrid-row-number-header",style:{width:`${Q}px`,minWidth:`${Q}px`,maxWidth:`${Q}px`,position:"sticky",left:z?`${CHECKBOX_COLUMN_WIDTH}px`:"0",zIndex:3}},["#",h("div",{onPointerdown:oe=>{Ve(null),Se(null),l.value?.focus({preventScroll:true}),oe.stopPropagation(),h$1(oe,{columnId:ROW_NUMBER_COLUMN_ID,name:"#"});},class:"ogrid-resize-handle",role:"separator","aria-label":"Resize row numbers"})])})()]:[],...M===0&&M<pe.length-1&&G?[(()=>{let Q=R.columnSizingOverrides[ROW_NUMBER_COLUMN_ID]?.widthPx??ROW_NUMBER_COLUMN_WIDTH;return h("th",{rowSpan:pe.length-1,class:"ogrid-row-number-spacer",style:{width:`${Q}px`,position:"sticky",left:z?`${CHECKBOX_COLUMN_WIDTH}px`:"0",zIndex:3}})})()]:[],...K.map((Q,oe)=>{if(Q.isGroup)return h("th",{key:oe,colSpan:Q.colSpan,scope:"colgroup",class:"ogrid-column-group-header"},Q.label);if(!Q.columnDef)return null;let V=Q.columnDef,{classes:Ae,style:Pe}=bt(V),ue=y.sortBy===V.columnId?y.sortDirection==="asc"?"ascending":"descending":void 0;return h("th",{key:V.columnId,scope:"col","data-column-id":V.columnId,rowSpan:pe.length>1?pe.length-M:void 0,class:Ae,style:Pe,"aria-sort":ue,onPointerdown:ee=>v(V.columnId,ee)},[h("div",{class:"ogrid-header-content"},[h(e.ColumnHeaderFilter,getHeaderFilterConfig(V,at)),h("button",{onClick:ee=>{ee.stopPropagation(),F.isOpen&&F.openForColumn===V.columnId?F.close():F.open(V.columnId,ee.currentTarget);},"aria-label":"Column options",title:"Column options",class:"ogrid-column-menu-btn"},"\u22EE")]),h("div",{onPointerdown:ee=>{Ve(null),Se(null),l.value?.focus({preventScroll:true}),ee.stopPropagation(),h$1(ee,V);},onDblclick:ee=>E(ee,V),class:"ogrid-resize-handle",role:"separator","aria-label":`Resize ${V.name??V.columnId}`})])})]))]),...Ct?[]:[h("tbody",{},(()=>{let K=p.value,M=u.value,Q=K?M.startIndex:0,oe=K?Math.min(M.endIndex,Y.length-1):Y.length-1,V=[];K&&M.offsetTop>0&&V.push(h("tr",{key:"__vs-top",style:{height:`${M.offsetTop}px`}}));for(let Ae=Q;Ae<=oe;Ae++){let Pe=Y[Ae];if(!Pe)continue;let We=ie(Pe),ue=ve.has(We);V.push(h("tr",{key:We,"data-row-id":We,"aria-selected":ue||void 0,onClick:Pn,style:{cursor:ce==="single"?"pointer":void 0}},[...z?[h("td",{class:"ogrid-checkbox-cell",style:{width:`${CHECKBOX_COLUMN_WIDTH}px`,minWidth:`${CHECKBOX_COLUMN_WIDTH}px`,maxWidth:`${CHECKBOX_COLUMN_WIDTH}px`}},h("div",{"data-row-index":Ae,"data-col-index":0,onClick:x,class:"ogrid-checkbox-wrapper"},e.renderCheckbox({modelValue:ue,ariaLabel:`Select row ${Ae+1}`,onChange:ee=>Te(We,ee,Ae,d.value)})))]:[],...G?[(()=>{let ee=R.columnSizingOverrides[ROW_NUMBER_COLUMN_ID]?.widthPx??ROW_NUMBER_COLUMN_WIDTH;return h("td",{class:"ogrid-row-number-cell",style:{width:`${ee}px`,minWidth:`${ee}px`,maxWidth:`${ee}px`,padding:"6px",position:"sticky",left:z?`${CHECKBOX_COLUMN_WIDTH}px`:"0",zIndex:2}},String(le+Ae+1))})()]:[],...ke>0?[h("td",{key:"__col-spacer-left",style:{width:`${ke}px`,minWidth:`${ke}px`,maxWidth:`${ke}px`,padding:"0"}})]:[],...Ne.map(ee=>h("td",{key:ee.col.columnId,"data-column-id":ee.col.columnId,class:ee.tdClasses,style:ee.tdDynamicStyle},[En(Pe,ee.col,Ae,Rt.get(ee.col.columnId)??0)])),...Re>0?[h("td",{key:"__col-spacer-right",style:{width:`${Re}px`,minWidth:`${Re}px`,maxWidth:`${Re}px`,padding:"0"}})]:[]]));}return K&&M.offsetBottom>0&&V.push(h("tr",{key:"__vs-bottom",style:{height:`${M.offsetBottom}px`}})),V})())]]),...Ct&&y.emptyState?[e.renderEmptyState(y.emptyState)]:[]])])])]),...fe?[h(Teleport,{to:"body"},h(e.GridContextMenu,{x:fe.x,y:fe.y,hasSelection:Xe,canUndo:Be,canRedo:rt,onUndo:Qe??No,onRedo:ft??No,onCopy:Ze,onCut:Je,onPaste:()=>{ze();},onSelectAll:se,onClose:vt}))]:[],h(On,{containerRef:i,selectionRange:xe,copyRange:mt,cutRange:ct,colOffset:H,items:Y,visibleColumns:y.visibleColumns instanceof Set?Array.from(y.visibleColumns):y.visibleColumns,columnSizingOverrides:R.columnSizingOverrides,columnOrder:y.columnOrder}),...y.formulaReferences&&y.formulaReferences.length>0?[h(Bn,{containerEl:i.value,references:y.formulaReferences,colOffset:H})]:[],h(e.ColumnHeaderMenu,{isOpen:F.isOpen,anchorElement:F.anchorElement,onClose:F.close,onPinLeft:F.handlePinLeft,onPinRight:F.handlePinRight,onUnpin:F.handleUnpin,onSortAsc:F.handleSortAsc,onSortDesc:F.handleSortDesc,onClearSort:F.handleClearSort,onAutosizeThis:F.handleAutosizeThis,onAutosizeAll:F.handleAutosizeAll,canPinLeft:F.canPinLeft,canPinRight:F.canPinRight,canUnpin:F.canUnpin,currentSort:F.currentSort,isSortable:F.isSortable,isResizable:F.isResizable}),...Ge?[h(Mn,{totalCount:Ge.totalCount,filteredCount:Ge.filteredCount,selectedCount:Ge.selectedCount??ve.size,selectedCellCount:xe?(Math.abs(xe.endRow-xe.startRow)+1)*(Math.abs(xe.endCol-xe.startCol)+1):void 0,aggregation:Ge.aggregation,suppressRowCount:Ge.suppressRowCount})]:[],...Ce?[h("div",{class:"ogrid-loading-overlay"},e.renderSpinner(ye))]:[]])}}})}var St={width:"100%",height:"100%",display:"flex",alignItems:"center",paddingTop:"var(--ogrid-cell-padding-vertical, 6px)",paddingBottom:"var(--ogrid-cell-padding-vertical, 6px)",paddingLeft:"var(--ogrid-cell-padding-horizontal, 10px)",paddingRight:"var(--ogrid-cell-padding-horizontal, 10px)",boxSizing:"border-box",overflow:"hidden",minWidth:"0"};function Wa(e){let{renderCheckbox:o}=e;return defineComponent({name:"InlineCellEditor",props:{value:{default:void 0},item:{type:Object,required:true},column:{type:Object,required:true},rowIndex:{type:Number,required:true},editorType:{type:String,required:true},onCommit:{type:Function,required:true},onCancel:{type:Function,required:true}},setup(n){let l=ref(null),i=ref(null),m=ref(null),d=ref(n.value),a=ref(0),s=ref(false),f=R=>{d.value=R.target.value;},v=R=>R?.target?.value??String(d.value??""),c=R=>{if(n.editorType==="date"){let b=n.column.cellEditorParams?.dateFormat??n.column.dateFormat??DEFAULT_DATE_FORMAT;if((n.column.cellEditorParams?.editorType??"text")==="native"){if(R==null){d.value="";return}let C=String(R);d.value=C.match(/^\d{4}-\d{2}-\d{2}/)?C.substring(0,10):C;return}d.value=formatDateForDisplay(R,b)??"";return}d.value=R;};c(n.value);let u=R=>{s.value=true,n.onCommit(R);},g=()=>{s.value=true,n.onCancel();},r=()=>s.value?(s.value=false,true):false,p=()=>{let R=i.value,b=m.value;if(!R||!b)return;let L=R.getBoundingClientRect(),C=200,w=window.innerHeight-L.bottom,I=w<C&&L.top>w;b.style.position="fixed",b.style.left=`${L.left}px`,b.style.width=`${L.width}px`,b.style.maxHeight=`${C}px`,b.style.zIndex="9999",b.style.right="auto",b.style.textAlign="left",I?(b.style.top="auto",b.style.bottom=`${window.innerHeight-L.top}px`):b.style.top=`${L.bottom}px`;},h$1=null,E=null;onMounted(()=>{let R=b=>{b.key==="Escape"&&(b.preventDefault(),b.stopPropagation(),g());};document.addEventListener("keydown",R,true),E=()=>{document.removeEventListener("keydown",R,true);},nextTick(()=>{if(i.value){n.editorType==="richSelect"&&D.value?D.value.focus({preventScroll:true}):i.value.focus({preventScroll:true}),p();let b=i.value,L=b.closest("[data-ogrid-scroll-container]")??b.closest('[style*="overflow"]'),C=()=>{n.onCancel&&n.onCancel();},w=requestAnimationFrame(()=>{L&&L.addEventListener("scroll",C,{passive:true}),window.addEventListener("scroll",C,{passive:true});});h$1=()=>{cancelAnimationFrame(w),L&&L.removeEventListener("scroll",C),window.removeEventListener("scroll",C);};return}l.value?.focus({preventScroll:true}),l.value?.select();});}),onUnmounted(()=>{h$1?.(),E?.();}),watch(()=>n.value,c),(()=>{let b=(n.column.cellEditorParams?.values??[]).findIndex(L=>String(L)===String(n.value));a.value=Math.max(b,0);})();let S=()=>{nextTick(()=>{let R=m.value;if(!R)return;R.children[a.value]?.scrollIntoView({block:"nearest"});});},A=R=>{let b=n.column.cellEditorParams?.formatValue;return b?b(R):R!=null?String(R):""},_=R=>{let b=n.column.cellEditorParams?.values??[];switch(R.key){case "ArrowDown":R.preventDefault(),a.value=Math.min(a.value+1,b.length-1),S();break;case "ArrowUp":R.preventDefault(),a.value=Math.max(a.value-1,0),S();break;case "Enter":R.preventDefault(),R.stopPropagation(),b.length>0&&a.value<b.length&&u(b[a.value]);break;case "Tab":R.preventDefault(),b.length>0&&a.value<b.length&&u(b[a.value]);break;case "Escape":R.preventDefault(),R.stopPropagation(),g();break}},q=ref(""),D=ref(null),x=ref(null),P=computed(()=>{let R=n.column.cellEditorParams?.values??[],b=q.value.trim().toLowerCase();return b?R.filter(L=>A(L).toLowerCase().includes(b)):R}),k=()=>{nextTick(()=>{let R=x.value;if(!R)return;R.children[a.value]?.scrollIntoView({block:"nearest"});});},y=R=>{let b=P.value;switch(R.key){case "ArrowDown":R.preventDefault(),a.value=Math.min(a.value+1,b.length-1),k();break;case "ArrowUp":R.preventDefault(),a.value=Math.max(a.value-1,0),k();break;case "Enter":R.preventDefault(),R.stopPropagation(),b.length>0&&a.value<b.length&&u(b[a.value]);break;case "Escape":R.preventDefault(),R.stopPropagation(),g();break}};return ()=>{if(n.editorType==="checkbox"){let R=!!n.value;return h("div",{style:{...St,justifyContent:"center"}},o({checked:R,onChange:b=>u(b),onCancel:g}))}if(n.editorType==="select"){let R=n.column.cellEditorParams?.values??[];return h("div",{ref:b=>{i.value=b;},tabindex:0,style:{...St,position:"relative"},onKeydown:_},[h("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",width:"100%",cursor:"pointer",fontSize:"13px",color:"inherit"}},[h("span",A(n.value)),h("span",{style:{marginLeft:"4px",fontSize:"10px",opacity:"0.5"}},"\u25BE")]),h("div",{ref:b=>{m.value=b;},role:"listbox",style:{position:"absolute",top:"100%",left:"0",right:"0",maxHeight:"200px",overflowY:"auto",background:"var(--ogrid-bg, #fff)",border:"1px solid var(--ogrid-border, rgba(0,0,0,0.12))",zIndex:"10",boxShadow:"0 4px 16px rgba(0,0,0,0.2)",textAlign:"left",fontSize:"13px",fontFamily:"inherit"}},[...R.map((b,L)=>h("div",{key:String(b),role:"option","aria-selected":L===a.value,onClick:()=>u(b),style:{padding:"6px 8px",cursor:"pointer",color:"var(--ogrid-fg, #242424)",fontSize:"13px",...L===a.value?{background:"var(--ogrid-bg-hover, #e8f0fe)"}:{}}},A(b)))])])}if(n.editorType==="richSelect"){let R=P.value;return h("div",{ref:b=>{i.value=b;},style:{...St,position:"relative"}},[h("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",width:"100%",cursor:"pointer",fontSize:"13px",color:"inherit"}},[h("span",A(n.value)),h("span",{style:{marginLeft:"4px",fontSize:"10px",opacity:"0.5"}},"\u25BE")]),h("div",{ref:b=>{m.value=b;},role:"listbox",style:{position:"absolute",top:"100%",left:"0",right:"0",maxHeight:"200px",overflowY:"auto",background:"var(--ogrid-bg, #fff)",border:"1px solid var(--ogrid-border, rgba(0,0,0,0.12))",zIndex:"10",boxShadow:"0 4px 16px rgba(0,0,0,0.2)",textAlign:"left",fontSize:"13px",fontFamily:"inherit"}},[h("input",{ref:b=>{D.value=b;},type:"text",value:q.value,placeholder:"Search...",onInput:b=>{q.value=b.target.value,a.value=0;},onKeydown:y,style:{width:"100%",padding:"6px 8px",border:"none",borderBottom:"1px solid var(--ogrid-border, rgba(0,0,0,0.12))",background:"var(--ogrid-bg, #fff)",color:"inherit",font:"inherit",fontSize:"13px",outline:"none",boxSizing:"border-box",position:"sticky",top:"0",zIndex:"1"}}),h("div",{ref:b=>{x.value=b;}},R.map((b,L)=>h("div",{key:String(b),role:"option","aria-selected":L===a.value,onClick:()=>u(b),style:{padding:"6px 8px",cursor:"pointer",color:"var(--ogrid-fg, #242424)",fontSize:"13px",...L===a.value?{background:"var(--ogrid-bg-hover, #e8f0fe)"}:{}}},A(b)))),...R.length===0?[h("div",{style:{padding:"6px 8px",color:"var(--ogrid-muted, #999)",fontSize:"13px"}},"No matches")]:[]])])}if(n.editorType==="date"){let R=n.column.cellEditorParams?.dateFormat??n.column.dateFormat??DEFAULT_DATE_FORMAT,b=n.column.cellEditorParams?.editorType??"text",L=I=>{if(b!=="native"){let O=parseUserInputDate(I,R);if(O!==null){let F=O.getUTCFullYear().toString().padStart(4,"0"),B=(O.getUTCMonth()+1).toString().padStart(2,"0"),z=O.getUTCDate().toString().padStart(2,"0");u(`${F}-${B}-${z}`);}else u(I||null);}else u(I);},C=I=>{I.stopPropagation(),I.key==="Enter"&&(I.preventDefault(),L(v(I))),I.key==="Escape"&&(I.preventDefault(),g()),I.key==="Tab"&&(I.preventDefault(),L(v(I)));};if(b==="native"){let I=(()=>{if(d.value==null)return "";let O=String(d.value);return O.match(/^\d{4}-\d{2}-\d{2}/)?O.substring(0,10):O})();return h("div",{style:St},h("input",{ref:O=>{l.value=O;},type:"date",value:I,style:{width:"100%",height:"100%",border:"none",outline:"none",padding:"0 4px",fontSize:"inherit",boxSizing:"border-box"},onInput:f,onChange:f,onKeyup:f,onKeydown:C,onBlur:O=>{r()||L(v(O));}}))}let w=getDateInputPlaceholder(R);return h("div",{style:St},h("input",{ref:I=>{l.value=I;},type:"text",value:String(d.value??""),placeholder:w,style:{width:"100%",height:"100%",border:"none",outline:"none",padding:"0 4px",fontSize:"inherit",boxSizing:"border-box"},onInput:f,onChange:f,onKeyup:f,onKeydown:C,onBlur:I=>{r()||L(v(I));}}))}return h("div",{style:St},h("input",{ref:R=>{l.value=R;},type:"text",value:d.value!=null?String(d.value):"",style:{width:"100%",height:"100%",border:"none",outline:"none",padding:"0 4px",fontSize:"inherit",boxSizing:"border-box"},onInput:f,onChange:f,onKeyup:f,onKeydown:R=>{R.stopPropagation(),R.key==="Enter"&&(R.preventDefault(),u(v(R))),R.key==="Escape"&&(R.preventDefault(),g()),R.key==="Tab"&&(R.preventDefault(),u(v(R)));},onBlur:R=>{r()||u(v(R));}}))}}})}var ja=240,Zn=36,xn={columns:"Columns",filters:"Filters"},Ya={columns:"\u2261",filters:"\u2A65"};function _o(e){let o=e.activePanel!==null,n=e.position??"right",l={display:"flex",flexDirection:"column",width:`${Zn}px`,background:"var(--ogrid-header-bg, #f5f5f5)",...n==="right"?{borderLeft:"1px solid var(--ogrid-border, #e0e0e0)"}:{borderRight:"1px solid var(--ogrid-border, #e0e0e0)"}},i=h("div",{style:l,role:"tablist","aria-label":"Side bar tabs"},e.panels.map(a=>h("button",{key:a,role:"tab","aria-selected":e.activePanel===a,"aria-label":xn[a],title:xn[a],onClick:()=>e.onPanelChange(e.activePanel===a?null:a),style:{width:`${Zn}px`,height:`${Zn}px`,border:"none",cursor:"pointer",color:"var(--ogrid-fg, #242424)",fontSize:"14px",display:"flex",alignItems:"center",justifyContent:"center",background:e.activePanel===a?"var(--ogrid-bg, #fff)":"transparent",fontWeight:e.activePanel===a?"bold":"normal"}},Ya[a]))),m=null;if(o&&e.activePanel){let a={width:`${ja}px`,display:"flex",flexDirection:"column",overflow:"hidden",background:"var(--ogrid-bg, #fff)",color:"var(--ogrid-fg, #242424)",...n==="right"?{borderLeft:"1px solid var(--ogrid-border, #e0e0e0)"}:{borderRight:"1px solid var(--ogrid-border, #e0e0e0)"}},s=[];if(e.activePanel==="columns"){let f=e.columns.every(v=>e.visibleColumns.has(v.columnId));s.push(h("div",{style:{display:"flex",gap:"8px",marginBottom:"8px"}},[h("button",{disabled:f,onClick:()=>{let v=new Set(e.visibleColumns);e.columns.forEach(c=>v.add(c.columnId)),e.onSetVisibleColumns(v);},style:{flex:"1",cursor:"pointer",background:"var(--ogrid-bg-subtle, #f3f2f1)",color:"var(--ogrid-fg, #242424)",border:"1px solid var(--ogrid-border, #e0e0e0)",borderRadius:"4px",padding:"4px 8px"}},"Select All"),h("button",{onClick:()=>{let v=new Set;e.columns.forEach(c=>{c.required&&e.visibleColumns.has(c.columnId)&&v.add(c.columnId);}),e.onSetVisibleColumns(v);},style:{flex:"1",cursor:"pointer",background:"var(--ogrid-bg-subtle, #f3f2f1)",color:"var(--ogrid-fg, #242424)",border:"1px solid var(--ogrid-border, #e0e0e0)",borderRadius:"4px",padding:"4px 8px"}},"Clear All")])),e.columns.forEach(v=>{s.push(h("label",{key:v.columnId,style:{display:"flex",alignItems:"center",gap:"6px",padding:"2px 0",cursor:"pointer"}},[h("input",{type:"checkbox",checked:e.visibleColumns.has(v.columnId),disabled:v.required,onChange:c=>e.onVisibilityChange(v.columnId,c.target.checked)}),h("span",null,v.name)]));});}e.activePanel==="filters"&&(e.filterableColumns.length===0?s.push(h("div",{style:{color:"var(--ogrid-muted, #999)",fontStyle:"italic"}},"No filterable columns")):e.filterableColumns.forEach(f=>{let v=f.filterField,c=[h("div",{style:{fontWeight:"500",marginBottom:"4px",fontSize:"13px"}},f.name)];if(f.filterType==="text"){let u=e.filters[v],g=u?.type==="text"?u.value:"";c.push(h("input",{type:"text",value:g,onInput:r=>{let p=r.target.value;e.onFilterChange(v,p?{type:"text",value:p}:void 0);},placeholder:`Filter ${f.name}...`,"aria-label":`Filter ${f.name}`,style:{width:"100%",boxSizing:"border-box",padding:"4px 6px",background:"var(--ogrid-bg, #fff)",color:"var(--ogrid-fg, #242424)",border:"1px solid var(--ogrid-border, #e0e0e0)",borderRadius:"4px"}}));}if(f.filterType==="multiSelect"){let g=(e.filterOptions[v]??[]).map(r=>{let p=e.filters[v],h$1=p?.type==="multiSelect"?p.value.includes(r):false;return h("label",{key:r,style:{display:"flex",alignItems:"center",gap:"4px",padding:"1px 0",cursor:"pointer",fontSize:"13px"}},[h("input",{type:"checkbox",checked:h$1,onChange:E=>{let T=e.filters[v],S=T?.type==="multiSelect"?T.value:[],A=E.target.checked?[...S,r]:S.filter(_=>_!==r);e.onFilterChange(v,A.length>0?{type:"multiSelect",value:A}:void 0);}}),h("span",null,r)])});c.push(h("div",{style:{maxHeight:"120px",overflowY:"auto"},role:"group","aria-label":`${f.name} options`},g));}if(f.filterType==="date"){let u=e.filters[v],g=u?.type==="date"?u.value:{from:void 0,to:void 0};c.push(h("div",{style:{display:"flex",flexDirection:"column",gap:"4px"}},[h("label",{style:{display:"flex",alignItems:"center",gap:"4px",fontSize:"12px"}},["From:",h("input",{type:"date",value:g.from??"",onInput:r=>{let p=r.target.value||void 0,h=g.to;e.onFilterChange(v,p||h?{type:"date",value:{from:p,to:h}}:void 0);},"aria-label":`${f.name} from date`,style:{flex:"1",padding:"2px 4px",background:"var(--ogrid-bg, #fff)",color:"var(--ogrid-fg, #242424)",border:"1px solid var(--ogrid-border, #e0e0e0)",borderRadius:"4px"}})]),h("label",{style:{display:"flex",alignItems:"center",gap:"4px",fontSize:"12px"}},["To:",h("input",{type:"date",value:g.to??"",onInput:r=>{let p=r.target.value||void 0,h=g.from;e.onFilterChange(v,h||p?{type:"date",value:{from:h,to:p}}:void 0);},"aria-label":`${f.name} to date`,style:{flex:"1",padding:"2px 4px",background:"var(--ogrid-bg, #fff)",color:"var(--ogrid-fg, #242424)",border:"1px solid var(--ogrid-border, #e0e0e0)",borderRadius:"4px"}})])]));}s.push(h("div",{key:f.columnId,style:{marginBottom:"12px"}},c));})),m=h("div",{role:"tabpanel","aria-label":xn[e.activePanel],style:a},[h("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"8px 12px",borderBottom:"1px solid var(--ogrid-border, #e0e0e0)",fontWeight:"600"}},[h("span",null,xn[e.activePanel]),h("button",{onClick:()=>e.onPanelChange(null),style:{border:"none",background:"transparent",cursor:"pointer",fontSize:"16px",color:"var(--ogrid-fg, #242424)"},"aria-label":"Close panel"},"\xD7")]),h("div",{style:{flex:"1",overflowY:"auto",padding:"8px 12px"}},s)]);}let d=[];return n==="left"?(d.push(i),m&&d.push(m)):(m&&d.push(m),d.push(i)),h("div",{style:{display:"flex",flexDirection:"row",flexShrink:"0"},role:"complementary","aria-label":"Side bar"},d)}function Za(e){return defineComponent({name:"OGrid",props:{gridProps:{type:Object,required:true}},setup(o,{expose:n}){let l=computed(()=>o.gridProps),{dataGridProps:i,pagination:m,columnChooser:d,layout:a,api:s}=zt(l);n({api:s});let f=ref(false),v=()=>{f.value=!f.value;},c=u=>{u.key==="Escape"&&f.value&&(f.value=false);};return onMounted(()=>{document.addEventListener("keydown",c);}),onUnmounted(()=>{document.removeEventListener("keydown",c);}),()=>{let u=a.value.sideBarProps,g=u!=null,r=u?.position??"right",p=[];a.value.toolbar&&p.push(a.value.toolbar);let E=a.value.fullScreen===true?h("button",{type:"button",title:f.value?"Exit fullscreen":"Fullscreen","aria-label":f.value?"Exit fullscreen":"Fullscreen",onClick:v,style:{background:"none",border:"1px solid var(--ogrid-border, rgba(0,0,0,0.12))",borderRadius:"4px",padding:"4px 6px",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--ogrid-fg, rgba(0,0,0,0.87))"}},[f.value?h("svg",{width:16,height:16,viewBox:"0 0 16 16",fill:"none",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round",innerHTML:'<polyline points="4 10 0 10 0 14"/><polyline points="12 6 16 6 16 2"/><line x1="0" y1="10" x2="4" y2="6"/><line x1="16" y1="6" x2="12" y2="10"/>'}):h("svg",{width:16,height:16,viewBox:"0 0 16 16",fill:"none",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round",innerHTML:'<polyline points="10 2 14 2 14 6"/><polyline points="6 14 2 14 2 10"/><line x1="14" y1="2" x2="10" y2="6"/><line x1="2" y1="14" x2="6" y2="10"/>'})]):null,T=d.value.placement==="toolbar"?h(e.ColumnChooser,{columns:d.value.columns,visibleColumns:d.value.visibleColumns,onVisibilityChange:d.value.onVisibilityChange}):null,S=h(e.PaginationControls,{currentPage:m.value.page,pageSize:m.value.pageSize,totalCount:m.value.displayTotalCount,onPageChange:m.value.setPage,onPageSizeChange:P=>{m.value.setPageSize(P);},pageSizeOptions:m.value.pageSizeOptions,entityLabelPlural:m.value.entityLabelPlural}),A=h("div",{style:{flex:"1",minWidth:"0",minHeight:"0",display:"flex",flexDirection:"column"}},[h(e.DataGridTable,{gridProps:i.value})]),_=[];g&&r==="left"&&_.push(_o(u)),_.push(A),g&&r!=="left"&&_.push(_o(u));let q=p.length>0||T!=null||E!=null,D=f.value?{position:"fixed",inset:"0",zIndex:9999,display:"flex",flexDirection:"column",background:"var(--ogrid-bg, #fff)"}:{display:"flex",flexDirection:"column",border:"1px solid var(--ogrid-border, rgba(0,0,0,0.12))",borderRadius:"4px",overflow:"hidden"},x=f.value?{display:"flex",flexDirection:"column",flex:"1",minHeight:"0",overflow:"hidden",background:"var(--ogrid-bg, #fff)"}:void 0;return h("div",{class:a.value.className,style:D},[h("div",{style:x??{}},[...q?[h("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"8px 12px",borderBottom:"1px solid var(--ogrid-border, rgba(0,0,0,0.12))",gap:"8px"}},[h("div",{style:{display:"flex",alignItems:"center",gap:"8px",flex:"1"}},p),h("div",{style:{display:"flex",alignItems:"center",gap:"8px"}},[...T?[T]:[],...E?[E]:[]])])]:[],...a.value.toolbarBelow?[h("div",{style:{padding:"8px 12px",borderBottom:"1px solid var(--ogrid-border, rgba(0,0,0,0.12))"}},[a.value.toolbarBelow])]:[],...a.value.formulaBar?[a.value.formulaBar]:[],h("div",{style:{display:"flex",flex:"1",minHeight:"0"}},_),...a.value.sheetTabs?[a.value.sheetTabs]:[],h("div",{style:{display:"flex",alignItems:"center",padding:"8px 0",borderTop:"1px solid var(--ogrid-border, rgba(0,0,0,0.12))"}},[S])])])}}})}export{kn as FormulaBar,Bn as FormulaRefOverlay,On as MarchingAntsOverlay,Ln as SheetTabs,Mn as StatusBar,ka as createDataGridTable,Wa as createInlineCellEditor,Za as createOGrid,Cn as getCellInteractionProps,Wt as useActiveCell,Nt as useCellEditing,_t as useCellSelection,$t as useClipboard,Bo as useColumnChooserState,Ao as useColumnHeaderFilterState,en as useColumnHeaderMenuState,Jt as useColumnPinning,mn as useColumnReorder,on as useColumnResize,Kt as useContextMenu,nn as useDataGridState,gn as useDataGridTableSetup,dn as useDateFilterState,ln as useDebounce,Fo as useDebouncedCallback,jt as useFillHandle,Bt as useFilterOptions,Ht as useFormulaBar,Ho as useInlineCellEditorState,qt as useKeyboardNavigation,an as useMultiSelectFilterState,zt as useOGrid,un as usePeopleFilterState,zo as useRichSelectState,Gt as useRowSelection,Tt as useSideBarState,Zt as useTableLayout,rn as useTextFilterState,Yt as useUndoRedo,pn as useVirtualScroll};
@@ -62,5 +62,3 @@ export { useColumnHeaderMenuState } from './useColumnHeaderMenuState';
62
62
  export type { UseColumnHeaderMenuStateParams, UseColumnHeaderMenuStateResult } from './useColumnHeaderMenuState';
63
63
  export { useDataGridTableSetup } from './useDataGridTableSetup';
64
64
  export type { UseDataGridTableSetupParams, UseDataGridTableSetupResult } from './useDataGridTableSetup';
65
- export { useRowGrouping } from './useRowGrouping';
66
- export type { UseRowGroupingParams, UseRowGroupingResult } from './useRowGrouping';
@@ -3,6 +3,7 @@ import type { ICellValueChangedEvent } from '../types';
3
3
  export interface UseUndoRedoParams<T> {
4
4
  onCellValueChanged: ((event: ICellValueChangedEvent<T>) => void) | undefined;
5
5
  maxUndoDepth?: number;
6
+ afterChange?: () => void;
6
7
  }
7
8
  export interface UseUndoRedoResult<T> {
8
9
  onCellValueChanged: ((event: ICellValueChangedEvent<T>) => void) | undefined;
@@ -1,6 +1,4 @@
1
1
  export type { ISheetDef, IColumnReorderConfig, CsvColumn, FormulaExportOptions, StatusBarPart, StatusBarPartsInput, PaginationViewModel, GridContextMenuItem, IColumnHeaderMenuItem, GridContextMenuHandlerProps, ColumnHeaderMenuInput, ColumnHeaderMenuHandlers, ParseValueResult, AggregationResult, GridRowComparatorProps, ColumnPinState, IDropTarget, ICalculateDropTargetParams, IVisibleRange, IVisibleColumnRange, SortFilterRequest, SortFilterResponse, OverlayRect, ISortState, ArrowNavigationContext, ArrowNavigationResult, IFillFormulaOptions, FormulaReference, IResponsiveColumnsConfig, ZIndexKey, ICellAddress, ICellRange, CellKey, FormulaErrorType, TokenType, Token, ASTNode, BinaryOp, IFormulaContext, IFormulaFunction, IEvaluator, IRecalcResult, IFormulaEngineConfig, IGridDataAccessor, INamedRange, IAuditEntry, IAuditTrail, BooleanCellSelectHandlers, } from '@alaarab/ogrid-core';
2
- export { isGroupHeader, buildGroupedRows } from '@alaarab/ogrid-core';
3
- export type { IRowGroup, IRowGroupingConfig, RowGroupingDisplayRow } from '@alaarab/ogrid-core';
4
2
  export { escapeCsvValue, buildCsvHeader, buildCsvRows, exportToCsv, triggerCsvDownload, getCellValue, isColumnEditable, createGridDataAccessor, flattenColumns, buildHeaderRows, isFilterConfig, getFilterField, mergeFilter, deriveFilterOptionsFromData, getMultiSelectFilterFields, getStatusBarParts, getDataGridStatusBarConfig, getPaginationViewModel, PAGE_SIZE_OPTIONS, MAX_PAGE_BUTTONS, GRID_CONTEXT_MENU_ITEMS, COLUMN_HEADER_MENU_ITEMS, getContextMenuHandlers, getColumnHeaderMenuItems, formatShortcut, parseValue, numberParser, currencyParser, dateParser, emailParser, booleanParser, computeAggregations, processClientSideData, areGridRowPropsEqual, isRowInRange, getPinStateForColumn, reorderColumnArray, calculateDropTarget, computeVisibleRange, computeTotalHeight, getScrollTopForRow, computeVisibleColumnRange, partitionColumnsForVirtualization, createSortFilterWorker, terminateSortFilterWorker, extractValueMatrix, processClientSideDataAsync, CellDescriptorCache, debounce, measureRange, buildCellIndex, injectGlobalStyles, computeNextSortState, measureColumnContentWidth, AUTOSIZE_EXTRA_PX, AUTOSIZE_MAX_PX, findCtrlArrowTarget, computeTabNavigation, computeArrowNavigation, applyCellDeletion, rangesEqual, clampSelectionToBounds, computeAutoScrollSpeed, applyRangeRowSelection, computeRowSelectionState, formatCellValueForTsv, formatSelectionAsTsv, parseTsvClipboard, applyPastedValues, applyCutClear, applyFillValues, UndoRedoStack, validateColumns, validateRowIds, validateVirtualScrollConfig, indexToColumnLetter, columnLetterToIndex, formatCellReference, getResponsiveHiddenColumns, RESPONSIVE_BREAKPOINTS, resolveResponsiveConfig, applyResponsiveHiding, handleBooleanCellPointerDown, } from '@alaarab/ogrid-core';
5
3
  export { CHECKBOX_COLUMN_WIDTH, ROW_NUMBER_COLUMN_WIDTH, ROW_NUMBER_COLUMN_ID, ROW_NUMBER_COLUMN_MIN_WIDTH, DEFAULT_MIN_COLUMN_WIDTH, CELL_PADDING, GRID_BORDER_RADIUS, DEFAULT_DEBOUNCE_MS, PEOPLE_SEARCH_DEBOUNCE_MS, SIDEBAR_TRANSITION_MS, Z_INDEX, } from '@alaarab/ogrid-core';
6
4
  export { FormulaError, FormulaEngine, FormulaEvaluator, DependencyGraph, tokenize, parse, createBuiltInFunctions, parseCellRef, parseRange, formatAddress, toCellKey, fromCellKey, adjustFormulaReferences, toNumber, formulaToString, toBoolean, flattenArgs, isFormulaError, REF_ERROR, DIV_ZERO_ERROR, VALUE_ERROR, NAME_ERROR, CIRC_ERROR, GENERAL_ERROR, NA_ERROR, extractFormulaReferences, processFormulaBarCommit, deriveFormulaBarText, handleFormulaBarKeyDown, canInsertReference, insertReferenceAtCursor, FORMULA_REF_COLORS, FORMULA_BAR_CSS, FORMULA_BAR_STYLES, } from '@alaarab/ogrid-core/formula';
@@ -12,8 +10,8 @@ export { StatusBar, type StatusBarProps } from './components/StatusBar';
12
10
  export { FormulaBar, type FormulaBarProps } from './components/FormulaBar';
13
11
  export { SheetTabs, type SheetTabsProps } from './components/SheetTabs';
14
12
  export { FormulaRefOverlay } from './components/FormulaRefOverlay';
15
- export { useOGrid, useDataGridState, useActiveCell, useCellEditing, useCellSelection, useClipboard, useRowSelection, useKeyboardNavigation, useFillHandle, useUndoRedo, useContextMenu, useColumnResize, useColumnReorder, useVirtualScroll, useFilterOptions, useDebounce, useDebouncedCallback, useTableLayout, useColumnHeaderFilterState, useTextFilterState, useMultiSelectFilterState, usePeopleFilterState, useDateFilterState, useColumnChooserState, useInlineCellEditorState, useRichSelectState, useSideBarState, useColumnPinning, useColumnHeaderMenuState, useDataGridTableSetup, useFormulaBar, useRowGrouping, } from './composables';
16
- export type { UseOGridResult, UseOGridPagination, UseOGridColumnChooser, UseOGridLayout, UseOGridFilters, ColumnChooserPlacement, UseDataGridStateParams, UseDataGridStateResult, DataGridLayoutState, DataGridRowSelectionState, DataGridEditingState, DataGridCellInteractionState, DataGridContextMenuState, DataGridViewModelState, DataGridPinningState, UseActiveCellResult, EditingCell, UseCellEditingParams, UseCellEditingResult, UseCellSelectionParams, UseCellSelectionResult, UseClipboardParams, UseClipboardResult, UseRowSelectionParams, UseRowSelectionResult, UseKeyboardNavigationParams, UseKeyboardNavigationResult, UseFillHandleParams, UseFillHandleResult, UseUndoRedoParams, UseUndoRedoResult, ContextMenuPosition, UseContextMenuResult, UseColumnResizeParams, UseColumnResizeResult, UseColumnReorderParams, UseColumnReorderResult, UseVirtualScrollParams, UseVirtualScrollResult, UseFilterOptionsResult, UseTableLayoutParams, UseTableLayoutResult, UseColumnHeaderFilterStateParams, UseColumnHeaderFilterStateResult, UseTextFilterStateParams, UseTextFilterStateResult, UseMultiSelectFilterStateParams, UseMultiSelectFilterStateResult, UsePeopleFilterStateParams, UsePeopleFilterStateResult, UseDateFilterStateParams, UseDateFilterStateResult, UseColumnChooserStateParams, UseColumnChooserStateResult, InlineCellEditorType, UseInlineCellEditorStateParams, UseInlineCellEditorStateResult, UseRichSelectStateParams, UseRichSelectStateResult, UseSideBarStateParams, UseSideBarStateResult, DebouncedFn, UseColumnPinningParams, UseColumnPinningResult, UseColumnHeaderMenuStateParams, UseColumnHeaderMenuStateResult, UseDataGridTableSetupParams, UseDataGridTableSetupResult, MaybeShallowRef, UseFormulaBarParams, UseFormulaBarResult, UseRowGroupingParams, UseRowGroupingResult, } from './composables';
13
+ export { useOGrid, useDataGridState, useActiveCell, useCellEditing, useCellSelection, useClipboard, useRowSelection, useKeyboardNavigation, useFillHandle, useUndoRedo, useContextMenu, useColumnResize, useColumnReorder, useVirtualScroll, useFilterOptions, useDebounce, useDebouncedCallback, useTableLayout, useColumnHeaderFilterState, useTextFilterState, useMultiSelectFilterState, usePeopleFilterState, useDateFilterState, useColumnChooserState, useInlineCellEditorState, useRichSelectState, useSideBarState, useColumnPinning, useColumnHeaderMenuState, useDataGridTableSetup, useFormulaBar, } from './composables';
14
+ export type { UseOGridResult, UseOGridPagination, UseOGridColumnChooser, UseOGridLayout, UseOGridFilters, ColumnChooserPlacement, UseDataGridStateParams, UseDataGridStateResult, DataGridLayoutState, DataGridRowSelectionState, DataGridEditingState, DataGridCellInteractionState, DataGridContextMenuState, DataGridViewModelState, DataGridPinningState, UseActiveCellResult, EditingCell, UseCellEditingParams, UseCellEditingResult, UseCellSelectionParams, UseCellSelectionResult, UseClipboardParams, UseClipboardResult, UseRowSelectionParams, UseRowSelectionResult, UseKeyboardNavigationParams, UseKeyboardNavigationResult, UseFillHandleParams, UseFillHandleResult, UseUndoRedoParams, UseUndoRedoResult, ContextMenuPosition, UseContextMenuResult, UseColumnResizeParams, UseColumnResizeResult, UseColumnReorderParams, UseColumnReorderResult, UseVirtualScrollParams, UseVirtualScrollResult, UseFilterOptionsResult, UseTableLayoutParams, UseTableLayoutResult, UseColumnHeaderFilterStateParams, UseColumnHeaderFilterStateResult, UseTextFilterStateParams, UseTextFilterStateResult, UseMultiSelectFilterStateParams, UseMultiSelectFilterStateResult, UsePeopleFilterStateParams, UsePeopleFilterStateResult, UseDateFilterStateParams, UseDateFilterStateResult, UseColumnChooserStateParams, UseColumnChooserStateResult, InlineCellEditorType, UseInlineCellEditorStateParams, UseInlineCellEditorStateResult, UseRichSelectStateParams, UseRichSelectStateResult, UseSideBarStateParams, UseSideBarStateResult, DebouncedFn, UseColumnPinningParams, UseColumnPinningResult, UseColumnHeaderMenuStateParams, UseColumnHeaderMenuStateResult, UseDataGridTableSetupParams, UseDataGridTableSetupResult, MaybeShallowRef, UseFormulaBarParams, UseFormulaBarResult, } from './composables';
17
15
  export { getHeaderFilterConfig, getCellRenderDescriptor, resolveCellDisplayContent, resolveCellStyle, buildInlineEditorProps, buildPopoverEditorProps, getCellInteractionProps, } from './utils';
18
16
  export type { HeaderFilterConfigInput, HeaderFilterConfig, CellRenderDescriptorInput, CellRenderDescriptor, CellRenderMode, CellInteractionHandlers, CellInteractionProps, } from './utils';
19
17
  export { createDataGridTable, type IDataGridTableUIBindings } from './components/createDataGridTable';
@@ -27,6 +27,8 @@ interface IOGridBaseProps<T> {
27
27
  onColumnOrderChange?: (order: string[]) => void;
28
28
  /** Called when a column is resized by the user. */
29
29
  onColumnResized?: (columnId: string, width: number) => void;
30
+ /** Called when user requests autosize for a single column (with measured width). */
31
+ onAutosizeColumn?: (columnId: string, width: number) => void;
30
32
  /** Called when a column is pinned or unpinned. */
31
33
  onColumnPinned?: (columnId: string, pinned: 'left' | 'right' | null) => void;
32
34
  editable?: boolean;
@@ -42,8 +44,6 @@ interface IOGridBaseProps<T> {
42
44
  onSelectionChange?: (event: IRowSelectionChangeEvent<T>) => void;
43
45
  /** Show Excel-style row numbers column at the start of the grid (1, 2, 3...). Default: false. */
44
46
  showRowNumbers?: boolean;
45
- /** Column IDs to group rows by. When non-empty, rows are grouped and group header rows are inserted. */
46
- groupBy?: string[];
47
47
  /** Enable Excel-style cell references: column letter headers, row numbers, and name box. Implies showRowNumbers. */
48
48
  cellReferences?: boolean;
49
49
  statusBar?: boolean | IStatusBarProps;
@@ -92,8 +92,14 @@ interface IOGridBaseProps<T> {
92
92
  responsiveColumns?: boolean | IResponsiveColumnsConfig;
93
93
  /** Virtual scrolling configuration. Set `enabled: true` with a fixed `rowHeight` to virtualize large datasets. */
94
94
  virtualScroll?: IVirtualScrollConfig;
95
- /** Offload sort/filter to a Web Worker for large datasets. Falls back to sync when sort column has a custom compare. */
96
- workerSort?: boolean;
95
+ /**
96
+ * Offload sort/filter to a Web Worker for large datasets.
97
+ * - `true`: always use worker sort
98
+ * - `'auto'`: use worker sort when data.length > 5000
99
+ * - `false` (default): use synchronous sort
100
+ * Falls back to sync when the sort column has a custom compare.
101
+ */
102
+ workerSort?: boolean | 'auto';
97
103
  /** Fixed row height in pixels. Overrides default row height (36px). */
98
104
  rowHeight?: number;
99
105
  /** Cell spacing/density preset. Controls cell padding throughout the grid. Default: 'normal'. */
@@ -214,8 +220,6 @@ export interface IOGridDataGridProps<T> {
214
220
  density?: 'compact' | 'normal' | 'comfortable';
215
221
  'aria-label'?: string;
216
222
  'aria-labelledby'?: string;
217
- /** Column IDs to group rows by. Groups are nested in the order provided. */
218
- groupBy?: string[];
219
223
  /** Custom keydown handler. Called before grid's built-in handling. Call event.preventDefault() to suppress grid default. */
220
224
  onKeyDown?: (event: KeyboardEvent) => void;
221
225
  /** Enable formula support. When true, cell values starting with '=' are treated as formulas. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alaarab/ogrid-vue",
3
- "version": "2.6.0",
3
+ "version": "2.6.1",
4
4
  "description": "OGrid Vue – Vue 3 composables, headless components, and utilities for OGrid data grids.",
5
5
  "main": "dist/esm/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -36,7 +36,7 @@
36
36
  "node": ">=18"
37
37
  },
38
38
  "dependencies": {
39
- "@alaarab/ogrid-core": "2.6.0"
39
+ "@alaarab/ogrid-core": "2.6.1"
40
40
  },
41
41
  "peerDependencies": {
42
42
  "vue": "^3.3.0"
@@ -1,18 +0,0 @@
1
- import { type Ref } from 'vue';
2
- import type { IRowGroup, RowGroupingDisplayRow } from '@alaarab/ogrid-core';
3
- import type { IColumnDef, IColumnGroupDef } from '../types';
4
- export interface UseRowGroupingParams<T> {
5
- items: Ref<T[]>;
6
- columns: Ref<(IColumnDef<T> | IColumnGroupDef<T>)[]>;
7
- groupBy: Ref<string[] | undefined>;
8
- }
9
- export interface UseRowGroupingResult<T> {
10
- displayRows: Ref<RowGroupingDisplayRow<T>[]>;
11
- groupTree: Ref<IRowGroup<T>[]>;
12
- expandedGroups: Ref<Set<string>>;
13
- toggleGroup: (groupKey: string) => void;
14
- expandAll: () => void;
15
- collapseAll: () => void;
16
- isGroupingActive: Ref<boolean>;
17
- }
18
- export declare function useRowGrouping<T>({ items, columns, groupBy, }: UseRowGroupingParams<T>): UseRowGroupingResult<T>;