@alaarab/ogrid-vue 2.5.3 → 2.5.5

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,DEFAULT_MIN_COLUMN_WIDTH,CELL_PADDING,measureColumnContentWidth,resolveResponsiveConfig,applyResponsiveHiding,computeAggregations,getDataGridStatusBarConfig,getPinStateForColumn,validateVirtualScrollConfig,computeVisibleRange,computeTotalHeight,computeVisibleColumnRange,getScrollTopForRow,partitionColumnsForVirtualization,formatCellReference,buildHeaderRows,indexToColumnLetter,ROW_NUMBER_COLUMN_ID,ROW_NUMBER_COLUMN_WIDTH,getHeaderFilterConfig,getCellRenderDescriptor,buildInlineEditorProps,buildPopoverEditorProps,resolveCellDisplayContent,resolveCellStyle,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,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 hn=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),l=ref(null),t=0,u,m=computed(()=>e.copyRange??e.cutRange),f=()=>{let a=toValue(e.containerRef);if(!a){o.value=null,l.value=null;return}o.value=e.selectionRange?measureRange(a,e.selectionRange,e.colOffset):null,l.value=m.value?measureRange(a,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,l.value=null;return}t=requestAnimationFrame(f);let a=toValue(e.containerRef);a&&(u?.disconnect(),u=new ResizeObserver(f),u.observe(a));},{immediate:true}),onUnmounted(()=>{cancelAnimationFrame(t),u?.disconnect();});let s=computed(()=>{let a=e.selectionRange,g=m.value;return a!=null&&g!=null&&a.startRow===g.startRow&&a.startCol===g.startCol&&a.endRow===g.endRow&&a.endCol===g.endCol});return ()=>!o.value&&!l.value?null:h("div",{style:{position:"relative"}},[o.value&&!s.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,l.value?h("svg",{style:{position:"absolute",top:`${l.value.top}px`,left:`${l.value.left}px`,width:`${l.value.width}px`,height:`${l.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,l.value.width-2),height:Math.max(0,l.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 Rn=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((l,t)=>h("span",{key:l.key,style:{display:"inline-flex",alignItems:"center",gap:"4px",...t<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))"}},l.label),h("span",{style:{fontWeight:"600"}},l.value.toLocaleString())])))}}});var bn=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 l=ref(null);return watch(()=>e.isEditing,t=>{t&&l.value&&l.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:l,type:"text",style:FORMULA_BAR_STYLES.input,value:e.formulaText,readonly:!e.isEditing,onInput:t=>o("inputChange",t.target.value),onKeydown:t=>handleFormulaBarKeyDown(t.key,()=>t.preventDefault(),()=>o("commit"),()=>o("cancel")),onClick:()=>{e.isEditing||o("startEditing");},onDblclick:()=>{e.isEditing||o("startEditing");},"aria-label":"Formula input",spellcheck:false,autocomplete:"off"})])}});var Qo={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"},el={background:"none",border:"none",cursor:"pointer",padding:"4px 10px",fontSize:"16px",lineHeight:"22px",color:"var(--ogrid-fg-secondary, #666)",flexShrink:0},Zn={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"},tl={...Zn,fontWeight:600,borderBottomColor:"var(--ogrid-primary, #217346)",background:"var(--ogrid-bg, #fff)"},yn=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:Qo,role:"tablist","aria-label":"Sheet tabs"},[e.showAddButton?h("button",{type:"button",style:el,onClick:()=>o("sheetAdd"),title:"Add sheet","aria-label":"Add sheet"},"+"):null,...e.sheets.map(l=>{let t=l.id===e.activeSheet,u=t?tl:Zn,m=t&&l.color?{...u,borderBottomColor:l.color}:u;return h("button",{key:l.id,type:"button",role:"tab","aria-selected":t,style:m,onClick:()=>o("sheetChange",l.id)},l.name)})])}});function rl(e,o,l){let t=o.col+l,u=(o.endCol??o.col)+l,m=o.endRow??o.row,f=e.querySelector(`[data-row-index="${o.row}"][data-col-index="${t}"]`),s=e.querySelector(`[data-row-index="${m}"][data-col-index="${u}"]`);if(!f||!s)return null;let a=e.getBoundingClientRect(),g=f.getBoundingClientRect(),v=s.getBoundingClientRect();return {top:Math.round(g.top-a.top),left:Math.round(g.left-a.left),width:Math.round(v.right-g.left),height:Math.round(v.bottom-g.top),color:FORMULA_REF_COLORS[o.colorIndex%FORMULA_REF_COLORS.length]}}var wn=defineComponent({name:"FormulaRefOverlay",props:{containerEl:{type:Object,default:null},references:{type:Array,required:true},colOffset:{type:Number,required:true}},setup(e){let o=ref([]),l=0;function t(){let u=e.containerEl,m=e.references;if(!u||m.length===0){o.value=[];return}let f=[];for(let s of m){let a=rl(u,s,e.colOffset);a&&f.push(a);}o.value=f;}return watch(()=>[e.references,e.containerEl,e.colOffset],()=>{if(cancelAnimationFrame(l),!e.containerEl||e.references.length===0){o.value=[];return}l=requestAnimationFrame(t);},{immediate:true}),()=>o.value.length===0?null:o.value.map((u,m)=>h("svg",{key:m,style:{position:"absolute",top:`${u.top}px`,left:`${u.left}px`,width:`${u.width}px`,height:`${u.height}px`,pointerEvents:"none",zIndex:3,overflow:"visible"},"aria-hidden":"true"},[h("rect",{x:"1",y:"1",width:Math.max(0,u.width-2),height:Math.max(0,u.height-2),fill:"none",stroke:u.color,"stroke-width":"2",style:"shape-rendering: crispEdges"})]))}});function Pt(e,o){let l=ref({}),t=ref({}),u=computed(()=>[...o.value].sort().join(",")),m=async()=>{let f=e.value,s=o.value,a="fetchFilterOptions"in f&&typeof f.fetchFilterOptions=="function"?f.fetchFilterOptions.bind(f):void 0;if(!a){l.value={},t.value={};return}let g={};s.forEach(i=>{g[i]=true;}),t.value=g;let v={};await Promise.all(s.map(async i=>{try{v[i]=await a(i);}catch{v[i]=[];}})),l.value=v,t.value={};};return watch([e,u],()=>{m().catch(()=>{});},{immediate:true}),{filterOptions:l,loadingOptions:t}}function ze(e){let o=unref(e);return customRef((l,t)=>({get(){return isRef(e)&&(o=e.value),o},set(u){o=u,t();}}))}function to(e){let{formulas:o,items:l,flatColumns:t,initialFormulas:u,onFormulaRecalc:m,formulaFunctions:f,namedRanges:s,sheets:a}=e,g=ze(l),v=ze(t),i=ze(m),p=shallowRef(null),C=false,r=computed(()=>o?.value??false);function c(){return createGridDataAccessor(g.value,v.value)}watch(r,b=>{if(b&&!p.value){if(p.value=new FormulaEngine({customFunctions:f,namedRanges:s}),a)for(let[x,U]of Object.entries(a))p.value.registerSheet(x,U);if(u&&!C){C=true;let x=c(),U=p.value.loadFormulas(u,x);U.updatedCells.length>0&&i.value?.(U);}}else !b&&p.value&&(p.value=null);},{immediate:true});function d(b,x){return p.value?.getValue(b,x)}function R(b,x){return p.value?.hasFormula(b,x)??false}function w(b,x){return p.value?.getFormula(b,x)}function S(b,x,U){if(!p.value)return;let y=c(),j=p.value.setFormula(b,x,U,y);j.updatedCells.length>0&&i.value?.(j);}function D(b,x){if(!p.value)return;let U=c(),y=p.value.onCellChanged(b,x,U);y.updatedCells.length>0&&i.value?.(y);}function K(b,x){return p.value?.getPrecedents(b,x)??[]}function L(b,x){return p.value?.getDependents(b,x)??[]}function T(b,x){return p.value?.getAuditTrail(b,x)??null}return {enabled:r,getFormulaValue:d,hasFormula:R,getFormula:w,setFormula:S,onCellChanged:D,getPrecedents:K,getDependents:L,getAuditTrail:T}}function Et(e){let{activeCol:o,activeRow:l,activeCellRef:t,getFormula:u,getRawValue:m,setFormula:f,onCellValueChanged:s}=e,a=ref(false),g=ref(""),v=ref(false),i=computed(()=>deriveFormulaBarText(o.value,l.value,u,m));watch([o,l],()=>{a.value=false,v.value=false;});let p=()=>{g.value=i.value,a.value=true,v.value=true;},C=w=>{g.value=w;},r=()=>{let w=o.value,S=l.value;w==null||S==null||!f||(processFormulaBarCommit(g.value,w,S,f,s),a.value=false,v.value=false);},c=()=>{a.value=false,v.value=false,g.value="";},d=computed(()=>a.value?g.value:i.value),R=computed(()=>extractFormulaReferences(d.value));return {cellRef:t,formulaText:d,isEditing:a,onInputChange:C,onCommit:r,onCancel:c,startEditing:p,referencedCells:R,isFormulaBarEditing:v}}var no=["columns","filters"];function bt(e){let{config:o}=e,l=o!=null&&o!==false,t=(()=>{if(!l||o===true)return {panels:no,position:"right",defaultPanel:null};let g=o;return {panels:g.panels??no,position:g.position??"right",defaultPanel:g.defaultPanel??null}})(),u=ref(t.defaultPanel),m=g=>{u.value=g;},f=g=>{u.value=u.value===g?null:g;},s=()=>{u.value=null;},a=computed(()=>u.value!==null);return {isEnabled:l,activePanel:u,setActivePanel:m,panels:t.panels,position:t.position,isOpen:a,toggle:f,close:s}}var Al=25,kl={};function Ft(e){let o=computed(()=>{let n=e.value;return {columns:n.columns,columnOrder:n.columnOrder,onColumnOrderChange:n.onColumnOrderChange,onColumnResized:n.onColumnResized,onColumnPinned:n.onColumnPinned,columnChooser:n.columnChooser}}),l=computed(()=>{let n=e.value,F="data"in n?n.data:void 0,re="dataSource"in n?n.dataSource:void 0;return F&&re&&console.warn("[OGrid] Both data and dataSource provided. dataSource takes precedence."),{getRowId:n.getRowId,data:F,dataSource:re}}),t=computed(()=>{let n=e.value;return {page:n.page,pageSize:n.pageSize,sort:n.sort,filters:n.filters,visibleColumns:n.visibleColumns,isLoading:n.isLoading}}),u=computed(()=>{let n=e.value;return {onPageChange:n.onPageChange,onPageSizeChange:n.onPageSizeChange,onSortChange:n.onSortChange,onFiltersChange:n.onFiltersChange,onVisibleColumnsChange:n.onVisibleColumnsChange,onFirstDataRendered:n.onFirstDataRendered,onError:n.onError}}),m=computed(()=>{let n=e.value;return {defaultPageSize:n.defaultPageSize??Al,defaultSortBy:n.defaultSortBy,defaultSortDirection:n.defaultSortDirection??"asc",entityLabelPlural:n.entityLabelPlural??"items"}}),f=computed(()=>o.value.columnChooser===false?"none":o.value.columnChooser==="sidebar"?"sidebar":"toolbar"),s=computed(()=>flattenColumns(o.value.columns)),a=computed(()=>l.value.dataSource!=null),g=computed(()=>!a.value),v=ref([]),i=ref(false),p=computed(()=>l.value.data??v.value),C=computed(()=>t.value.isLoading??i.value),r=computed(()=>m.value.defaultSortBy??s.value[0]?.columnId??""),c=ref(1),d=ref(m.value.defaultPageSize),R=ref({field:r.value,direction:m.value.defaultSortDirection}),w=ref({}),S=ref((()=>{let n=s.value.filter(F=>F.defaultVisible!==false).map(F=>F.columnId);return new Set(n.length>0?n:s.value.map(F=>F.columnId))})()),D=ref({}),K={};for(let n of flattenColumns(e.value.columns))n.pinned&&(K[n.columnId]=n.pinned);let L=ref(K),T=computed(()=>t.value.page??c.value),b=computed(()=>t.value.pageSize??d.value),x=computed(()=>t.value.sort??R.value),U=computed(()=>t.value.filters??w.value),y=computed(()=>t.value.visibleColumns??S.value),j=n=>{t.value.page===void 0&&(c.value=n),u.value.onPageChange?.(n);},Q=n=>{t.value.pageSize===void 0&&(d.value=n),u.value.onPageSizeChange?.(n),j(1);},Z=n=>{t.value.sort===void 0&&(R.value=n),u.value.onSortChange?.(n),j(1);},h$1=n=>{t.value.filters===void 0&&(w.value=n),u.value.onFiltersChange?.(n),j(1);},I=n=>{t.value.visibleColumns===void 0&&(S.value=n),u.value.onVisibleColumnsChange?.(n);},E=(n,F)=>{Z(computeNextSortState(x.value,n,F));},H=(n,F)=>{h$1(mergeFilter(U.value,n,F));},P=(n,F)=>{let re=new Set(y.value);F?re.add(n):re.delete(n),I(re);},M=ref(new Set),A=computed(()=>e.value.selectedRows),O=computed(()=>A.value??M.value),V=n=>{A.value===void 0&&(M.value=new Set(n.selectedRowIds)),e.value.onSelectionChange?.(n);},z=computed(()=>getMultiSelectFilterFields(s.value)),oe=computed(()=>l.value.dataSource??{fetchFilterOptions:void 0}),{filterOptions:te,loadingOptions:k}=Pt(oe,z),J=computed(()=>l.value.dataSource?.fetchFilterOptions!=null),ee=computed(()=>J.value?te.value:deriveFilterOptionsFromData(p.value,s.value)),de=computed(()=>!!e.value.workerSort),he=computed(()=>{if(!g.value||de.value)return null;let n=processClientSideData(p.value,s.value,U.value,x.value.field,x.value.direction),F=n.length,re=(T.value-1)*b.value;return {items:n.slice(re,re+b.value),totalCount:F}}),Se=ref(null),ye=0;watch([g,de,p,s,U,()=>x.value.field,()=>x.value.direction,T,b],()=>{if(!g.value||!de.value)return;let n=p.value,F=s.value,re=U.value,Re=x.value.field,nt=x.value.direction,$e=T.value,qe=b.value,ot=++ye;processClientSideDataAsync(n,F,re,Re,nt).then(Ce=>{if(ot!==ye||Fe)return;let lt=Ce.length,Xe=($e-1)*qe,gt=Ce.slice(Xe,Xe+qe);Se.value={items:gt,totalCount:lt};}).catch(()=>{if(ot!==ye||Fe)return;let Ce=processClientSideData(n,F,re,Re,nt),lt=Ce.length,Xe=($e-1)*qe,gt=Ce.slice(Xe,Xe+qe);Se.value={items:gt,totalCount:lt};});},{immediate:true});let we=computed(()=>{let n=he.value;return n||Se.value}),Ye=ref([]),Oe=ref(0),De=ref(false),Be=0,Fe=false,Me=ref(0),_e=()=>{if(!a.value||!l.value.dataSource){a.value||(De.value=false);return}let n=++Be;De.value=true,l.value.dataSource.fetchPage({page:T.value,pageSize:b.value,sort:{field:x.value.field,direction:x.value.direction},filters:U.value}).then(F=>{n!==Be||Fe||(Ye.value=F.items,Oe.value=F.totalCount);}).catch(F=>{n!==Be||Fe||(u.value.onError?.(F),Ye.value=[],Oe.value=0);}).finally(()=>{n===Be&&!Fe&&(De.value=false);});};onMounted(()=>{validateColumns(s.value),_e();}),watch([()=>l.value.dataSource,T,b,()=>x.value.field,()=>x.value.direction,U,Me],()=>{_e();}),onUnmounted(()=>{Fe=true;});let ce=computed(()=>g.value&&we.value?we.value.items:Ye.value),He=computed(()=>g.value&&we.value?we.value.totalCount:Oe.value),ie=computed(()=>!!e.value.formulas),Ve=ref(0),Ze=n=>{Ve.value+=1,e.value.onFormulaRecalc?.(n);},se=to({formulas:ie,items:ce,flatColumns:s,initialFormulas:e.value.initialFormulas,onFormulaRecalc:Ze,formulaFunctions:e.value.formulaFunctions,namedRanges:e.value.namedRanges,sheets:e.value.sheets}),Je=false,Qe=false;watch(ce,n=>{!Je&&n.length>0&&(Je=true,u.value.onFirstDataRendered?.()),!Qe&&n.length>0&&(Qe=true,validateRowIds(n,l.value.getRowId));});let We=computed(()=>Object.values(U.value).some(n=>n!==void 0)),et=computed(()=>s.value.map(n=>({columnId:n.columnId,name:n.name,required:n.required===true}))),at=computed(()=>{let n=e.value.statusBar;if(!n)return;if(typeof n=="object")return n;let F=g.value?l.value.data?.length??0:Oe.value,re=He.value;return {totalCount:F,filteredCount:We.value?re:void 0,selectedCount:O.value.size,suppressRowCount:true}}),it=(n,F)=>{D.value={...D.value,[n]:F},o.value.onColumnResized?.(n,F);},st=(n,F)=>{if(F===null){let{[n]:re,...Re}=L.value;L.value=Re;}else L.value={...L.value,[n]:F};o.value.onColumnPinned?.(n,F);},Ke=shallowRef(bt({config:e.value.sideBar}));watch(()=>e.value.sideBar,n=>{Ke.value=bt({config:n});});let Ge=computed(()=>s.value.filter(n=>n.filterable&&n.filterable.type).map(n=>({columnId:n.columnId,name:n.name,filterField:n.filterable?.filterField??n.columnId,filterType:n.filterable?.type}))),ut=computed(()=>{let n=Ke.value;if(!n.isEnabled)return null;n.activePanel.value;n.isOpen.value;return {get activePanel(){return n.activePanel.value},onPanelChange:n.setActivePanel,panels:n.panels,position:n.position,get isOpen(){return n.isOpen.value},toggle:n.toggle,close:n.close,columns:et.value,visibleColumns:y.value,onVisibilityChange:P,onSetVisibleColumns:I,filterableColumns:Ge.value,filters:U.value,onFilterChange:H,filterOptions:ee.value}}),dt=()=>h$1({}),ct=computed(()=>a.value&&De.value||C.value),tt=ref(null),Pe=ref(null),mt=n=>{if(tt.value=n,n){let F=n.match(/^([A-Z]+)(\d+)$/);F?Pe.value={col:columnLetterToIndex(F[1]),row:parseInt(F[2],10)-1}:Pe.value=null;}else Pe.value=null;},ft=computed(()=>Pe.value?.col??null),pt=computed(()=>Pe.value?.row??null),vt=(n,F)=>{let re=ce.value,Re=s.value;if(!(F<0||F>=re.length||n<0||n>=Re.length))return getCellValue(re[F],Re[n])},G=Et({activeCol:ft,activeRow:pt,activeCellRef:tt,getFormula:se.enabled.value?se.getFormula:void 0,getRawValue:vt,setFormula:se.enabled.value?se.setFormula:void 0}),Y=computed(()=>{let n=e.value,F=l.value.dataSource;return {items:ce.value,columns:o.value.columns,getRowId:l.value.getRowId,sortBy:x.value.field,sortDirection:x.value.direction,onColumnSort:E,visibleColumns:y.value,columnOrder:o.value.columnOrder,onColumnOrderChange:o.value.onColumnOrderChange,onColumnResized:it,onColumnPinned:st,pinnedColumns:L.value,initialColumnWidths:D.value,editable:n.editable,cellSelection:n.cellSelection,onCellValueChanged:n.onCellValueChanged,onUndo:n.onUndo,onRedo:n.onRedo,canUndo:n.canUndo,canRedo:n.canRedo,rowSelection:n.rowSelection??"none",selectedRows:O.value,onSelectionChange:V,showRowNumbers:n.showRowNumbers||n.cellReferences||n.formulas,showColumnLetters:!!(n.cellReferences||n.formulas),showNameBox:!!(n.cellReferences&&!n.formulas),onActiveCellChange:n.cellReferences||n.formulas?mt:void 0,currentPage:T.value,pageSize:b.value,statusBar:at.value,isLoading:ct.value,filters:U.value,onFilterChange:H,filterOptions:ee.value,loadingFilterOptions:F?.fetchFilterOptions?k.value:kl,peopleSearch:F?.searchPeople,getUserByEmail:F?.getUserByEmail,layoutMode:n.layoutMode,suppressHorizontalScroll:n.suppressHorizontalScroll,stickyHeader:n.stickyHeader??true,columnReorder:n.columnReorder,responsiveColumns:n.responsiveColumns,virtualScroll:n.virtualScroll,rowHeight:n.rowHeight,density:n.density??"normal","aria-label":n["aria-label"],"aria-labelledby":n["aria-labelledby"],emptyState:{hasActiveFilters:We.value,onClearAll:dt,message:n.emptyState?.message,render:n.emptyState?.render},formulas:n.formulas,formulaVersion:Ve.value,...se.enabled.value?{getFormulaValue:se.getFormulaValue,hasFormula:se.hasFormula,getFormula:se.getFormula,setFormula:se.setFormula,onFormulaCellChanged:se.onCellChanged,getPrecedents:se.getPrecedents,getDependents:se.getDependents,getAuditTrail:se.getAuditTrail}:{},formulaReferences:G.referencedCells.value.length>0?G.referencedCells.value:void 0}}),le=computed(()=>({page:T.value,pageSize:b.value,displayTotalCount:He.value,setPage:j,setPageSize:Q,pageSizeOptions:e.value.pageSizeOptions,entityLabelPlural:m.value.entityLabelPlural})),ue=computed(()=>({columns:et.value,visibleColumns:y.value,onVisibilityChange:P,placement:f.value})),me=computed(()=>{let n=e.value,F=!!n.formulas,re=!!n.cellReferences&&!F,Re=n.toolbar;re&&(Re=[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"},tt.value??"\u2014"),Re]);let nt=F?h(bn,{cellRef:G.cellRef.value,formulaText:G.formulaText.value,isEditing:G.isEditing.value,onInputChange:G.onInputChange,onCommit:G.onCommit,onCancel:G.onCancel,onStartEditing:G.startEditing}):void 0,$e=n.sheetDefs&&n.sheetDefs.length>0&&n.activeSheet&&n.onSheetChange?h(yn,{sheets:n.sheetDefs,activeSheet:n.activeSheet,showAddButton:!!n.onSheetAdd,onSheetChange:n.onSheetChange,onSheetAdd:n.onSheetAdd??(()=>{})}):void 0;return {toolbar:Re,toolbarBelow:n.toolbarBelow,className:n.className,emptyState:n.emptyState,sideBarProps:ut.value,fullScreen:n.fullScreen,formulaBar:nt,sheetTabs:$e}}),xe=computed(()=>({hasActiveFilters:We.value,setFilters:h$1})),pe=computed(()=>({setRowData:n=>{a.value||(v.value=n);},setLoading:n=>{i.value=n;},getColumnState:()=>({visibleColumns:Array.from(y.value),sort:x.value,columnOrder:o.value.columnOrder??void 0,columnWidths:Object.keys(D.value).length>0?D.value:void 0,filters:Object.keys(U.value).length>0?U.value:void 0,pinnedColumns:Object.keys(L.value).length>0?L.value:void 0}),applyColumnState:n=>{n.visibleColumns&&I(new Set(n.visibleColumns)),n.sort&&Z(n.sort),n.columnOrder&&o.value.onColumnOrderChange&&o.value.onColumnOrderChange(n.columnOrder),n.columnWidths&&(D.value=n.columnWidths),n.filters&&h$1(n.filters),n.pinnedColumns&&(L.value=n.pinnedColumns);},setFilterModel:h$1,getSelectedRows:()=>Array.from(O.value),setSelectedRows:n=>{A.value===void 0&&(M.value=new Set(n));},selectAll:()=>{let n=new Set(ce.value.map(F=>l.value.getRowId(F)));A.value===void 0&&(M.value=n),e.value.onSelectionChange?.({selectedRowIds:Array.from(n),selectedItems:ce.value});},deselectAll:()=>{A.value===void 0&&(M.value=new Set),e.value.onSelectionChange?.({selectedRowIds:[],selectedItems:[]});},clearFilters:()=>h$1({}),clearSort:()=>Z({field:r.value,direction:m.value.defaultSortDirection}),resetGridState:n=>{h$1({}),Z({field:r.value,direction:m.value.defaultSortDirection}),n?.keepSelection||(A.value===void 0&&(M.value=new Set),e.value.onSelectionChange?.({selectedRowIds:[],selectedItems:[]}));},getDisplayedRows:()=>ce.value,refreshData:()=>{a.value&&Me.value++;},scrollToRow:()=>{},getColumnOrder:()=>o.value.columnOrder??s.value.map(n=>n.columnId),setColumnOrder:n=>{o.value.onColumnOrderChange?.(n);}}));return {dataGridProps:Y,pagination:le,columnChooser:ue,layout:me,filters:xe,api:pe}}function Ut(e){let{items:o,getRowId:l,rowSelection:t,controlledSelectedRows:u,onSelectionChange:m}=e,f=shallowRef(new Set),s=-1,a=computed(()=>{let r=u.value;return r!=null?r instanceof Set?r:new Set(r):f.value}),g=r=>{u.value!==void 0?isReadonly(u)||(u.value=r):f.value=r,m?.({selectedRowIds:Array.from(r),selectedItems:o.value.filter(c=>r.has(l(c)))});},v=(r,c,d,R)=>{if(t.value==="single"){g(c?new Set([r]):new Set),s=d;return}let w=o.value,S;R&&s>=0&&s!==d?S=applyRangeRowSelection(s,d,c,w,l,a.value):(S=new Set(a.value),c?S.add(r):S.delete(r)),s=d,g(S);},i=r=>{g(r?new Set(o.value.map(c=>l(c))):new Set);},p=computed(()=>computeRowSelectionState(a.value,o.value,l).allSelected),C=computed(()=>computeRowSelectionState(a.value,o.value,l).someSelected);return {selectedRowIds:a,updateSelection:g,handleRowCheckboxChange:v,handleSelectAll:i,allSelected:p,someSelected:C}}function Ot(e){let o=shallowRef(null),l=ref(void 0);return {editingCell:o,setEditingCell:m=>{if(m&&e?.scrollToRow&&e?.getRowIndex){let f=e.getRowIndex(m.rowId);f>=0&&e.scrollToRow(f,"center");}o.value=m;},pendingEditorValue:l,setPendingEditorValue:m=>{l.value=m;}}}function Mt(e,o){let l=shallowRef(null),t=0,u=m=>{let f=l.value;f!==m&&(f&&m&&f.rowIndex===m.rowIndex&&f.columnIndex===m.columnIndex||(l.value=m));};return watch([l,()=>o?.value],()=>{if(t&&(cancelAnimationFrame(t),t=0),l.value==null||!e?.value||o?.value!=null)return;let{rowIndex:m,columnIndex:f}=l.value;t=requestAnimationFrame(()=>{t=0;let s=e.value;if(!s)return;let a=l.value;if(!a||a.rowIndex!==m||a.columnIndex!==f)return;let g=`[data-row-index="${m}"][data-col-index="${f}"]`,v=s.querySelector(g);if(v){let i=s.querySelector("thead"),p=i?i.getBoundingClientRect().height:0,C=s.getBoundingClientRect(),r=v.getBoundingClientRect(),c=C.top+p;r.top<c?s.scrollTop-=c-r.top:r.bottom>C.bottom&&(s.scrollTop+=r.bottom-C.bottom),r.left<C.left?s.scrollLeft-=C.left-r.left:r.right>C.right&&(s.scrollLeft+=r.right-C.right),document.activeElement!==v&&typeof v.focus=="function"&&v.focus({preventScroll:true});}});},{flush:"post"}),onUnmounted(()=>{t&&(cancelAnimationFrame(t),t=0);}),{activeCell:l,setActiveCell:u}}var Fn="data-drag-range",St="data-drag-anchor",ge=40,jl=16;function At(e){let o=ze(e),{wrapperRef:l,setActiveCell:t}=e,u=()=>isRef(e.colOffset)?e.colOffset.value:e.colOffset,m=shallowRef(null),f=ref(false),s=ref(false),a=ref(false),g=false,v=null,i=0,p=null,C=null,r=null,c=h=>{rangesEqual(m.value,h)||(m.value=h);},d=(h,I,E)=>{if(h.button!==0)return;let H=u();if(E<H)return;h.preventDefault();let P=E-H,M=m.value;if(h.shiftKey&&M!=null)c(normalizeSelectionRange({startRow:M.startRow,startCol:M.startCol,endRow:I,endCol:P})),t({rowIndex:I,columnIndex:E});else {v={row:I,col:P},g=false;let A={startRow:I,startCol:P,endRow:I,endCol:P};c(A),p=A,t({rowIndex:I,columnIndex:E}),s.value=true,setTimeout(()=>L(A),0);}},R=()=>{let{rowCount:h,visibleColCount:I}=o.value;h.value===0||I.value===0||(c({startRow:0,startCol:0,endRow:h.value-1,endCol:I.value-1}),t({rowIndex:0,columnIndex:u()}));},w=new Set,S=null,D=(h,I,E,H,P,M,A,O)=>{h.hasAttribute(Fn)||h.setAttribute(Fn,""),O&&I===O.row&&E===O.col?h.hasAttribute(St)||h.setAttribute(St,""):h.hasAttribute(St)&&h.removeAttribute(St);let z=[];I===H&&z.push("inset 0 2px 0 0 var(--ogrid-selection, #217346)"),I===P&&z.push("inset 0 -2px 0 0 var(--ogrid-selection, #217346)"),E===M&&z.push("inset 2px 0 0 0 var(--ogrid-selection, #217346)"),E===A&&z.push("inset -2px 0 0 0 var(--ogrid-selection, #217346)"),h.style.boxShadow=z.length>0?z.join(", "):"",w.add(h);},K=h=>{h.removeAttribute(Fn),h.removeAttribute(St),h.style.boxShadow="";},L=h=>{if(!l.value)return;let E=Math.min(h.startRow,h.endRow),H=Math.max(h.startRow,h.endRow),P=Math.min(h.startCol,h.endCol),M=Math.max(h.startCol,h.endCol),A=v,O=u();for(let z of w){let oe=parseInt(z.getAttribute("data-row-index")??"",10),te=parseInt(z.getAttribute("data-col-index")??"",10)-O;oe>=E&&oe<=H&&te>=P&&te<=M||(K(z),w.delete(z));}S||(S=buildCellIndex(l.value));let V=false;for(let z=E;z<=H;z++)for(let oe=P;oe<=M;oe++){let te=`${z},${oe+O}`,k=S?.get(te);k&&!k.isConnected&&!V&&(V=true,S=buildCellIndex(l.value),k=S?.get(te)),k&&k.isConnected&&D(k,z,oe,E,H,P,M,A);}},T=()=>{for(let h of w)K(h);w.clear(),S=null;},b=(h,I)=>{if(!v)return null;let H=document.elementFromPoint(h,I)?.closest?.("[data-row-index][data-col-index]");if(!H)return null;let P=parseInt(H.getAttribute("data-row-index")??"",10),M=parseInt(H.getAttribute("data-col-index")??"",10),A=u();if(Number.isNaN(P)||Number.isNaN(M)||M<A)return null;let O=M-A;return normalizeSelectionRange({startRow:v.row,startCol:v.col,endRow:P,endCol:O})},x=()=>{C&&(clearInterval(C),C=null);},U=()=>{let h=l.value;if(!h||!r||!s.value){x();return}let I=h.getBoundingClientRect(),E=0,H=0;if(r.cy<I.top+ge?H=-computeAutoScrollSpeed(I.top+ge-r.cy):r.cy>I.bottom-ge&&(H=computeAutoScrollSpeed(r.cy-(I.bottom-ge))),r.cx<I.left+ge?E=-computeAutoScrollSpeed(I.left+ge-r.cx):r.cx>I.right-ge&&(E=computeAutoScrollSpeed(r.cx-(I.right-ge))),E===0&&H===0){x();return}C||(C=setInterval(()=>{let P=l.value,M=r;if(!P||!M||!s.value){x();return}let A=P.getBoundingClientRect(),O=0,V=0;if(M.cy<A.top+ge?V=-computeAutoScrollSpeed(A.top+ge-M.cy):M.cy>A.bottom-ge&&(V=computeAutoScrollSpeed(M.cy-(A.bottom-ge))),M.cx<A.left+ge?O=-computeAutoScrollSpeed(A.left+ge-M.cx):M.cx>A.right-ge&&(O=computeAutoScrollSpeed(M.cx-(A.right-ge))),O===0&&V===0){x();return}P.scrollTop+=V,P.scrollLeft+=O;let z=b(M.cx,M.cy);z&&(p=z,L(z));},jl));},y=h=>{!s.value||!v||(g||(g=true,f.value=true,S=buildCellIndex(l.value)),r={cx:h.clientX,cy:h.clientY},U(),i&&cancelAnimationFrame(i),i=requestAnimationFrame(()=>{if(i=0,!r)return;let I=b(r.cx,r.cy);if(!I)return;let E=p;E&&E.startRow===I.startRow&&E.startCol===I.startCol&&E.endRow===I.endRow&&E.endCol===I.endCol||(p=I,L(I));}));},j=()=>{if(!s.value)return;x(),i&&(cancelAnimationFrame(i),i=0),s.value=false;let h=g;if(h){if(r){let E=b(r.cx,r.cy);E&&(p=E);}let I=p;if(I){c(I);let E=v;E&&t({rowIndex:E.row,columnIndex:E.col+u()});}}T(),p=null,r=null,v=null,h&&(f.value=false);},Q=h=>{a.value||y(h);},Z=()=>{a.value||j();};return onMounted(()=>{window.addEventListener("pointermove",Q,true),window.addEventListener("pointerup",Z,true);}),onUnmounted(()=>{a.value=true,window.removeEventListener("pointermove",Q,true),window.removeEventListener("pointerup",Z,true),i&&cancelAnimationFrame(i),x();}),{selectionRange:m,setSelectionRange:c,handleCellMouseDown:d,handleSelectAllCells:R,isDragging:f}}function kt(){let e=shallowRef(null);return {contextMenuPosition:e,setContextMenuPosition:u=>{e.value=u;},handleCellContextMenu:u=>{u.preventDefault?.(),e.value={x:u.clientX,y:u.clientY};},closeContextMenu:()=>{e.value=null;}}}function Lt(e){let{items:o,visibleCols:l,selectionRange:t,activeCell:u,editable:m,onCellValueChanged:f,beginBatch:s,endBatch:a}=e,g=()=>isRef(e.colOffset)?e.colOffset.value:e.colOffset,v=shallowRef(null),i=shallowRef(null),p=ref(null),C=()=>{let w=t.value,S=u.value,D=g();return w??(S!=null?{startRow:S.rowIndex,startCol:S.columnIndex-D,endRow:S.rowIndex,endCol:S.columnIndex-D}:null)},r=()=>{let w=C();if(w==null)return;let S=normalizeSelectionRange(w),D=formatSelectionAsTsv(o.value,l.value,S);p.value=D,i.value=S,navigator.clipboard.writeText(D).catch(K=>{typeof console<"u"&&console.warn("[OGrid] Clipboard write failed:",K);});};return {handleCopy:r,handleCut:()=>{if(m.value===false)return;let w=C();if(w==null||f.value==null)return;let S=normalizeSelectionRange(w);v.value=S,i.value=null,r(),i.value=null;},handlePaste:async()=>{if(m.value===false)return;let w=f.value;if(w==null)return;let S;try{S=await navigator.clipboard.readText();}catch{S="";}if(!S.trim()&&p.value!=null&&(S=p.value),!S.trim())return;let D=C(),K=D?D.startRow:0,L=D?D.startCol:0,T=o.value,b=l.value,x=parseTsvClipboard(S);s?.();let U=applyPastedValues(x,K,L,T,b);for(let y of U)w(y);if(v.value){let y=applyCutClear(v.value,T,b);for(let j of y)w(j);v.value=null;}a?.(),i.value=null;},cutRange:v,copyRange:i,clearClipboardRanges:()=>{i.value=null,v.value=null;}}}function Bt(e){let o=ze(e);return {handleGridKeyDown:t=>{let{data:u,state:m,handlers:f,features:s}=o.value,a=u.items.value,g=u.visibleCols.value,{getRowId:v}=u,i=isRef(u.colOffset)?u.colOffset.value:u.colOffset,p=u.hasCheckboxCol.value,C=u.visibleColumnCount.value,r=m.activeCell.value,c=m.selectionRange.value,d=m.editingCell.value,R=m.selectedRowIds.value,{setActiveCell:w,setSelectionRange:S,setEditingCell:D,handleRowCheckboxChange:K,handleCopy:L,handleCut:T,handlePaste:b,setContextMenu:x,onUndo:U,onRedo:y,clearClipboardRanges:j}=f,Q=s.editable.value,Z=s.onCellValueChanged.value,h=s.rowSelection.value,I=s.wrapperRef,E=s.scrollToRow,{fillDown:H}=s,P=s.onKeyDown?.value;if(P&&(P(t),t.defaultPrevented))return;let M=a.length-1,A=C-1+i;if(a.length===0)return;if(r===null){["ArrowDown","ArrowUp","ArrowLeft","ArrowRight","Tab","Enter","Home","End","PageDown","PageUp"].includes(t.key)&&(w({rowIndex:0,columnIndex:i}),t.preventDefault());return}let{rowIndex:O,columnIndex:V}=r,z=V-i,oe=t.shiftKey,te=(k,J)=>{if(k<0||k>=a.length||J<0||J>=g.length)return true;let ee=getCellValue(a[k],g[J]);return ee==null||ee===""};switch(t.key){case "c":if(t.ctrlKey||t.metaKey){if(d!=null)break;t.preventDefault(),L();}break;case "x":if(t.ctrlKey||t.metaKey){if(d!=null)break;t.preventDefault(),T();}break;case "v":if(t.ctrlKey||t.metaKey){if(d!=null)break;t.preventDefault(),b();}break;case "d":if(t.ctrlKey||t.metaKey){if(d!=null)break;Q!==false&&H&&(t.preventDefault(),H());}break;case "ArrowDown":case "ArrowUp":case "ArrowRight":case "ArrowLeft":{if(d!=null)break;t.preventDefault();let{newRowIndex:k,newColumnIndex:J,newRange:ee}=computeArrowNavigation({direction:t.key,rowIndex:O,columnIndex:V,dataColIndex:z,colOffset:i,maxRowIndex:M,maxColIndex:A,visibleColCount:g.length,isCtrl:t.ctrlKey||t.metaKey,isShift:oe,selectionRange:c,isEmptyAt:te});S(ee),w({rowIndex:k,columnIndex:J}),(t.key==="ArrowDown"||t.key==="ArrowUp")&&E?.(k,"center");break}case "Tab":{t.preventDefault();let{rowIndex:k,columnIndex:J}=computeTabNavigation(O,V,M,A,i,t.shiftKey),ee=J-i;S({startRow:k,startCol:ee,endRow:k,endCol:ee}),w({rowIndex:k,columnIndex:J});break}case "Home":{t.preventDefault();let k=t.ctrlKey?0:O;S({startRow:k,startCol:0,endRow:k,endCol:0}),w({rowIndex:k,columnIndex:i});break}case "End":{t.preventDefault();let k=t.ctrlKey?M:O;S({startRow:k,startCol:C-1,endRow:k,endCol:C-1}),w({rowIndex:k,columnIndex:A});break}case "PageDown":case "PageUp":{t.preventDefault();let k=I.value,J=10;if(k){let he=k.querySelector("tbody tr");he&&he.offsetHeight>0&&(J=Math.max(1,Math.floor(k.clientHeight/he.offsetHeight)));}let ee=t.key==="PageDown"?1:-1,de=Math.max(0,Math.min(O+ee*J,M));S(oe?{startRow:c?.startRow??O,startCol:c?.startCol??z,endRow:de,endCol:c?.endCol??z}:{startRow:de,startCol:z,endRow:de,endCol:z}),w({rowIndex:de,columnIndex:V}),E?.(de,"center");break}case "Enter":case "F2":{if(t.preventDefault(),z>=0&&z<g.length){let k=g[z],J=a[O];if(J&&k){let ee=k.editable===true||typeof k.editable=="function"&&k.editable(J);Q!==false&&ee&&Z!=null&&D({rowId:v(J),columnId:k.columnId});}}break}case "Escape":t.preventDefault(),d!=null?D(null):(j?.(),w(null),S(null));break;case " ":if(h!=="none"&&V===0&&p){t.preventDefault();let k=a[O];if(k){let J=v(k),ee=R.has(J);K(J,!ee,O,t.shiftKey);}}break;case "z":(t.ctrlKey||t.metaKey)&&d==null&&(t.shiftKey&&y?(t.preventDefault(),y()):!t.shiftKey&&U&&(t.preventDefault(),U()));break;case "y":(t.ctrlKey||t.metaKey)&&d==null&&y&&(t.preventDefault(),y());break;case "a":if(t.ctrlKey||t.metaKey){if(d!=null)break;t.preventDefault(),a.length>0&&C>0&&(S({startRow:0,startCol:0,endRow:a.length-1,endCol:C-1}),w({rowIndex:0,columnIndex:i}));}break;case "Delete":case "Backspace":{if(d!=null||Q===false||Z==null)break;let k=c??(r!=null?{startRow:r.rowIndex,startCol:r.columnIndex-i,endRow:r.rowIndex,endCol:r.columnIndex-i}:null);if(k==null)break;t.preventDefault();let J=applyCellDeletion(k,a,g);for(let ee of J)Z(ee);break}case "F10":if(t.shiftKey)if(t.preventDefault(),r!=null&&I.value){let k=`[data-row-index="${r.rowIndex}"][data-col-index="${r.columnIndex}"]`,J=I.value.querySelector(k);if(J){let ee=J.getBoundingClientRect();x({x:ee.left+ee.width/2,y:ee.top+ee.height/2});}else x({x:100,y:100});}else x({x:100,y:100});break;}}}}var Ht="data-drag-range";function Vt(e){let{items:o,visibleCols:l,editable:t,onCellValueChanged:u,selectionRange:m,setSelectionRange:f,setActiveCell:s,wrapperRef:a,beginBatch:g,endBatch:v,visibleRange:i}=e,p=()=>isRef(e.colOffset)?e.colOffset.value:e.colOffset,C=shallowRef(null),r={endRow:0,endCol:0},c=0,d=null,R=null,w=null,S=T=>{C.value=T;},D=()=>{R&&(window.removeEventListener("pointermove",R,true),R=null),w&&(window.removeEventListener("pointerup",w,true),w=null),c&&(cancelAnimationFrame(c),c=0);};return watch(C,(T,b,x)=>{if(!T||t.value===false||!u.value||!a.value){D();return}r={endRow:T.startRow,endCol:T.startCol},d=null;let U=new Set,y=buildCellIndex(a.value),j=I=>{if(!a.value)return;let H=Math.min(I.startRow,I.endRow),P=Math.max(I.startRow,I.endRow),M=Math.min(I.startCol,I.endCol),A=Math.max(I.startCol,I.endCol),O=p();for(let V of U){let z=parseInt(V.getAttribute("data-row-index")??"",10),oe=parseInt(V.getAttribute("data-col-index")??"",10)-O;z>=H&&z<=P&&oe>=M&&oe<=A||(V.removeAttribute(Ht),U.delete(V));}for(let V=H;V<=P;V++)for(let z=M;z<=A;z++){let oe=`${V},${z+O}`,te=y?.get(oe);te&&!te.isConnected&&(y=buildCellIndex(a.value),te=y.get(oe)),te&&(te.hasAttribute(Ht)||te.setAttribute(Ht,""),U.add(te));}},Q=()=>{for(let I of U)I.removeAttribute(Ht);U.clear();},Z=null,h=(I,E)=>{let P=document.elementFromPoint(I,E)?.closest?.("[data-row-index][data-col-index]");if(!P||!a.value?.contains(P))return null;let M=parseInt(P.getAttribute("data-row-index")??"",10),A=parseInt(P.getAttribute("data-col-index")??"",10),O=p();if(Number.isNaN(M)||Number.isNaN(A)||A<O)return null;let V=A-O;return normalizeSelectionRange({startRow:T.startRow,startCol:T.startCol,endRow:M,endCol:V})};R=I=>{Z={cx:I.clientX,cy:I.clientY},c&&cancelAnimationFrame(c),c=requestAnimationFrame(()=>{if(c=0,!Z)return;let E=h(Z.cx,Z.cy);if(!E)return;let H=d;H&&H.startRow===E.startRow&&H.startCol===E.startCol&&H.endRow===E.endRow&&H.endCol===E.endCol||(d=E,r={endRow:E.endRow,endCol:E.endCol},j(E));});},w=()=>{if(c&&(cancelAnimationFrame(c),c=0),Z){let O=h(Z.cx,Z.cy);O&&(d=O,r={endRow:O.endRow,endCol:O.endCol});}Q();let I=r,E=normalizeSelectionRange({startRow:T.startRow,startCol:T.startCol,endRow:I.endRow,endCol:I.endCol}),H=i?.value;H&&(E.startRow=Math.max(E.startRow,H.startIndex),E.endRow=Math.min(E.endRow,H.endIndex)),f(E),s({rowIndex:T.startRow,columnIndex:T.startCol+p()});let P=o.value,M=l.value,A=u.value;if(A){let O=applyFillValues(E,T.startRow,T.startCol,P,M);if(O.length>0){g?.();for(let V of O)A(V);v?.();}}C.value=null,d=null,D();},window.addEventListener("pointermove",R,true),window.addEventListener("pointerup",w,true),x(()=>{D();});}),onUnmounted(()=>D()),{fillDrag:C,setFillDrag:S,handleFillHandleMouseDown:T=>{T.preventDefault(),T.stopPropagation();let b=m.value;b&&(C.value={startRow:b.startRow,startCol:b.startCol});},fillDown:()=>{let T=m.value;if(!T||t.value===false||!u.value)return;let b=normalizeSelectionRange(T),x=o.value,U=l.value,y=u.value,j=applyFillValues(b,b.startRow,b.startCol,x,U);if(j.length>0){g?.();for(let Q of j)y(Q);v?.();}}}}function Gt(e){let{onCellValueChanged:o,maxUndoDepth:l=100}=e,t=new UndoRedoStack(l),u=ref(false),m=ref(false),f=()=>{u.value=t.canUndo,m.value=t.canRedo;};return {onCellValueChanged:o?p=>{t.record(p),t.isBatching||f(),o(p);}:void 0,undo:()=>{if(!o)return;let p=t.undo();if(p){f();for(let C=p.length-1;C>=0;C--){let r=p[C];o({...r,oldValue:r.newValue,newValue:r.oldValue});}}},redo:()=>{if(!o)return;let p=t.redo();if(p){f();for(let C of p)o(C);}},canUndo:u,canRedo:m,beginBatch:()=>{t.beginBatch();},endBatch:()=>{t.endBatch(),f();},maxUndoDepth:l}}function zt(e){let{wrapperRef:o,visibleCols:l,flatColumns:t,hasCheckboxCol:u,initialColumnWidths:m,onColumnResized:f}=e,s=ref(0),a,g=()=>{let r=o.value;if(!r)return;let c=r.getBoundingClientRect(),d=window.getComputedStyle(r),R=(parseFloat(d.borderLeftWidth||"0")||0)+(parseFloat(d.borderRightWidth||"0")||0);s.value=Math.max(0,c.width-R);};onMounted(()=>{let r=o.value;r&&(typeof ResizeObserver<"u"&&(a=new ResizeObserver(g),a.observe(r)),g());}),onUnmounted(()=>{a?.disconnect();});let v=ref((()=>{if(!m)return {};let r={};for(let[c,d]of Object.entries(m))r[c]={widthPx:d};return r})()),i=r=>{v.value=r;},p=computed(()=>{let r=u.value?CHECKBOX_COLUMN_WIDTH:0;return l.value.reduce((c,d)=>c+(d.minWidth??DEFAULT_MIN_COLUMN_WIDTH)+CELL_PADDING,r)});watch(t,r=>{let c=new Set(r.map(S=>S.columnId)),d=v.value,R=Object.keys(d),w=R.filter(S=>c.has(S));if(w.length<R.length){let S={};for(let D of w)S[D]=d[D];v.value=S;}});let C=computed(()=>{let r=u.value?CHECKBOX_COLUMN_WIDTH:0;return l.value.reduce((c,d)=>{let R=v.value[d.columnId],w=R?R.widthPx:d.idealWidth??d.defaultWidth??d.minWidth??DEFAULT_MIN_COLUMN_WIDTH;return c+Math.max(d.minWidth??DEFAULT_MIN_COLUMN_WIDTH,w)+CELL_PADDING},r)});return {containerWidth:s,minTableWidth:p,desiredTableWidth:C,columnSizingOverrides:v,setColumnSizingOverrides:i,onColumnResized:f}}function Nt(e){let{columns:o,pinnedColumns:l,onColumnPinned:t}=e,u={};for(let p of o.value)p.pinned&&(u[p.columnId]=p.pinned);let m=ref(u),f=computed(()=>l?.value??m.value);return {pinnedColumns:f,pinColumn:(p,C)=>{let r={...f.value,[p]:C};m.value=r,t?.(p,C);},unpinColumn:p=>{let{[p]:C,...r}=f.value;m.value=r,t?.(p,null);},isPinned:p=>f.value[p],computeLeftOffsets:(p,C,r,c,d)=>{let R={},w=c?d:0;for(let S of p)f.value[S.columnId]==="left"&&(R[S.columnId]=w,w+=C[S.columnId]??r);return R},computeRightOffsets:(p,C,r)=>{let c={},d=0;for(let R=p.length-1;R>=0;R--){let w=p[R];f.value[w.columnId]==="right"&&(c[w.columnId]=d,d+=C[w.columnId]??r);}return c}}}function Wt(e){let{columns:o,pinnedColumns:l,onPinColumn:t,onUnpinColumn:u,onSort:m,onColumnResized:f,onAutosizeColumn:s,sortBy:a,sortDirection:g}=e,v=ref(false),i=ref(null),p=ref(null),C=(h,I)=>{i.value=h,p.value=I,v.value=true;},r=()=>{v.value=false,i.value=null,p.value=null;},c=computed(()=>i.value?o.value.find(h=>h.columnId===i.value):void 0),d=computed(()=>i.value?l.value[i.value]:void 0),R=computed(()=>d.value!=="left"),w=computed(()=>d.value!=="right"),S=computed(()=>!!d.value),D=computed(()=>!i.value||!a?.value||a.value!==i.value?null:g?.value??null),K=computed(()=>c.value?.sortable!==false),L=ref(true);return {isOpen:v,openForColumn:i,anchorElement:p,open:C,close:r,handlePinLeft:()=>{i.value&&R.value&&(t(i.value,"left"),r());},handlePinRight:()=>{i.value&&w.value&&(t(i.value,"right"),r());},handleUnpin:()=>{i.value&&S.value&&(u(i.value),r());},handleSortAsc:()=>{i.value&&m&&(m(i.value,"asc"),r());},handleSortDesc:()=>{i.value&&m&&(m(i.value,"desc"),r());},handleClearSort:()=>{i.value&&m&&(m(i.value,null),r());},handleAutosizeThis:()=>{let h=s??f;if(!i.value||!h||!L.value)return;let I=c.value;h(i.value,measureColumnContentWidth(i.value,I?.minWidth)),r();},handleAutosizeAll:()=>{let h=s??f;h&&(o.value.forEach(I=>{h(I.columnId,measureColumnContentWidth(I.columnId,I.minWidth));}),r());},canPinLeft:R,canPinRight:w,canUnpin:S,currentSort:D,isSortable:K,isResizable:L}}var ke=()=>{},Er=async()=>{},Dr=(e,o,l)=>{},Fr=e=>{},Ur=e=>{};function Kt(e){let{props:o,wrapperRef:l}=e,t=computed(()=>o.value.items),u=o.value.getRowId,m=computed(()=>o.value.rowSelection??"none"),f=computed(()=>o.value.selectedRows),s=computed(()=>o.value.editable),a=computed(()=>o.value.cellSelection!==false),g=computed(()=>o.value.pinnedColumns),v=Gt({onCellValueChanged:o.value.onCellValueChanged}),i=computed(()=>v.onCellValueChanged),p=computed(()=>flattenColumns(o.value.columns)),C=computed(()=>{let G=g.value;return !G||Object.keys(G).length===0?p.value:p.value.map(Y=>{let le=G[Y.columnId];return le&&Y.pinned!==le?{...Y,pinned:le}:Y})}),r=computed(()=>resolveResponsiveConfig(o.value.responsiveColumns)),c=computed(()=>{let G=o.value.visibleColumns,Y=o.value.columnOrder,le=G?C.value.filter(me=>G.has(me.columnId)):C.value;if(!Y?.length)return le;let ue=new Map;for(let me=0;me<Y.length;me++)ue.set(Y[me],me);return [...le].sort((me,xe)=>{let pe=ue.get(me.columnId)??-1,n=ue.get(xe.columnId)??-1;return pe===-1&&n===-1?0:pe===-1?1:n===-1?-1:pe-n})}),d=ref(0),R=computed(()=>applyResponsiveHiding(c.value,d.value,r.value)),w=computed(()=>R.value.length),S=computed(()=>m.value==="multiple"),D=computed(()=>!!o.value.showRowNumbers),K=computed(()=>(S.value?1:0)+(D.value?1:0)),L=computed(()=>w.value+K.value),T=K,b=shallowRef(new Map);watch(t,G=>{let Y=b.value;Y.clear(),G.forEach((le,ue)=>Y.set(u(le),ue)),triggerRef(b);},{immediate:true});let x=Ut({items:t,getRowId:u,rowSelection:m,controlledSelectedRows:f,onSelectionChange:o.value.onSelectionChange}),{editingCell:U,setEditingCell:y,pendingEditorValue:j,setPendingEditorValue:Q}=Ot(),{activeCell:Z,setActiveCell:h}=Mt(l,U),I=computed(()=>t.value.length),E=computed(()=>R.value.length),{selectionRange:H,setSelectionRange:P,handleCellMouseDown:M,handleSelectAllCells:A,isDragging:O}=At({colOffset:T,rowCount:I,visibleColCount:E,setActiveCell:h,wrapperRef:l}),{contextMenuPosition:V,setContextMenuPosition:z,handleCellContextMenu:oe,closeContextMenu:te}=kt(),{handleCopy:k,handleCut:J,handlePaste:ee,cutRange:de,copyRange:he,clearClipboardRanges:Se}=Lt({items:t,visibleCols:R,colOffset:T,selectionRange:H,activeCell:Z,editable:s,onCellValueChanged:i,beginBatch:v.beginBatch,endBatch:v.endBatch}),ye=(G,Y,le)=>{G.button===0&&(l.value?.focus({preventScroll:true}),Se(),M(G,Y,le));},{handleFillHandleMouseDown:we,fillDown:Ye}=Vt({items:t,visibleCols:R,editable:s,onCellValueChanged:i,selectionRange:H,setSelectionRange:P,setActiveCell:h,colOffset:T,wrapperRef:l,beginBatch:v.beginBatch,endBatch:v.endBatch}),{handleGridKeyDown:Oe}=Bt({data:{items:t,visibleCols:R,colOffset:T,hasCheckboxCol:S,visibleColumnCount:w,getRowId:u},state:{activeCell:Z,selectionRange:H,editingCell:U,selectedRowIds:x.selectedRowIds},handlers:{setActiveCell:h,setSelectionRange:P,setEditingCell:y,handleRowCheckboxChange:x.handleRowCheckboxChange,handleCopy:k,handleCut:J,handlePaste:ee,setContextMenu:z,onUndo:v.undo,onRedo:v.redo,clearClipboardRanges:Se},features:{editable:s,onCellValueChanged:i,rowSelection:m,wrapperRef:l,fillDown:Ye,onKeyDown:computed(()=>o.value.onKeyDown)}}),{containerWidth:De,minTableWidth:Be,desiredTableWidth:Fe,columnSizingOverrides:Me,setColumnSizingOverrides:_e}=zt({wrapperRef:l,visibleCols:c,flatColumns:C,hasCheckboxCol:S,initialColumnWidths:o.value.initialColumnWidths,onColumnResized:(G,Y)=>o.value.onColumnResized?.(G,Y)});watch(De,G=>{d.value=G;},{immediate:true});let ce=Nt({columns:C,pinnedColumns:g,onColumnPinned:o.value.onColumnPinned}),He=(G,Y)=>{_e({...Me.value,[G]:{widthPx:Y}}),o.value.onColumnResized?.(G,Y);},ie=Wt({columns:C,pinnedColumns:ce.pinnedColumns,onPinColumn:ce.pinColumn,onUnpinColumn:ce.unpinColumn,onSort:o.value.onColumnSort,onColumnResized:o.value.onColumnResized,onAutosizeColumn:He,sortBy:computed(()=>o.value.sortBy),sortDirection:computed(()=>o.value.sortDirection)}),Ve=ref({});watch([R,De,Me],()=>{nextTick(()=>{let G=l.value;if(!G)return;let Y=G.querySelectorAll("th[data-column-id]");if(Y.length===0)return;let le={};Y.forEach(pe=>{let n=pe.getAttribute("data-column-id");n&&(le[n]=pe.offsetWidth);});let ue=Ve.value,me=Object.keys(le),xe=me.length!==Object.keys(ue).length;if(!xe){for(let pe of me)if(ue[pe]!==le[pe]){xe=true;break}}xe&&(Ve.value=le);});},{flush:"post"});let Ze=computed(()=>{let G={};for(let Y of R.value){let le=Me.value[Y.columnId];G[Y.columnId]=le?le.widthPx:Y.idealWidth??Y.defaultWidth??Y.minWidth??DEFAULT_MIN_COLUMN_WIDTH;}return G}),se=computed(()=>ce.computeLeftOffsets(R.value,Ze.value,DEFAULT_MIN_COLUMN_WIDTH,S.value,CHECKBOX_COLUMN_WIDTH)),Je=computed(()=>ce.computeRightOffsets(R.value,Ze.value,DEFAULT_MIN_COLUMN_WIDTH)),Qe=computed(()=>computeAggregations(t.value,R.value,a.value?H.value:null)),We=computed(()=>{let G=getDataGridStatusBarConfig(o.value.statusBar,t.value.length,x.selectedRowIds.value.size);return G?{...G,aggregation:Qe.value??void 0}:null}),et=computed(()=>t.value.length===0&&!!o.value.emptyState&&!o.value.isLoading),at=computed(()=>H.value!=null||Z.value!=null),it=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})),st=computed(()=>({editingCell:U.value,activeCell:a.value?Z.value:null,selectionRange:a.value?H.value:null,cutRange:a.value?de.value:null,copyRange:a.value?he.value:null,colOffset:T.value,itemsLength:t.value.length,getRowId:u,editable:s.value,onCellValueChanged:i.value,isDragging:a.value?O.value:false,getFormulaValue:o.value.getFormulaValue,hasFormula:o.value.hasFormula,getFormula:o.value.getFormula,formulaVersion:o.value.formulaVersion})),Ke=ref(null),Ge=G=>{Ke.value=G;},ut=(G,Y,le,ue,me,xe)=>{let pe=R.value.find(n=>n.columnId===Y);if(pe){let n=parseValue(ue,le,G,pe);if(!n.valid){y(null),Ge(null),Q(void 0);return}ue=n.value;}if(i.value?.({item:G,columnId:Y,oldValue:le,newValue:ue,rowIndex:me}),y(null),Ge(null),Q(void 0),me<t.value.length-1){let n=me+1,F=xe-T.value;h({rowIndex:n,columnIndex:xe}),P({startRow:n,startCol:F,endRow:n,endCol:F});}},dt=()=>{y(null),Ge(null),Q(void 0);},ct=computed(()=>({flatColumns:C.value,visibleCols:R.value,visibleColumnCount:w.value,totalColCount:L.value,colOffset:T.value,hasCheckboxCol:S.value,hasRowNumbersCol:D.value,rowIndexByRowId:b.value,containerWidth:De.value,minTableWidth:Be.value,desiredTableWidth:Fe.value,columnSizingOverrides:Me.value,setColumnSizingOverrides:_e,onColumnResized:o.value.onColumnResized,measuredColumnWidths:Ve.value,stickyHeader:o.value.stickyHeader??true})),tt=computed(()=>({selectedRowIds:x.selectedRowIds.value,updateSelection:x.updateSelection,handleRowCheckboxChange:x.handleRowCheckboxChange,handleSelectAll:x.handleSelectAll,allSelected:x.allSelected.value,someSelected:x.someSelected.value})),Pe=computed(()=>({editingCell:U.value,setEditingCell:y,pendingEditorValue:j.value,setPendingEditorValue:Q,commitCellEdit:ut,cancelPopoverEdit:dt,popoverAnchorEl:Ke.value,setPopoverAnchorEl:Ge})),mt=computed(()=>({activeCell:a.value?Z.value:null,setActiveCell:a.value?h:ke,selectionRange:a.value?H.value:null,setSelectionRange:a.value?P:ke,handleCellMouseDown:a.value?ye:Dr,handleSelectAllCells:a.value?A:ke,hasCellSelection:a.value?at.value:false,handleGridKeyDown:a.value?Oe:Fr,handleFillHandleMouseDown:a.value?we:ke,handleCopy:a.value?k:ke,handleCut:a.value?J:ke,handlePaste:a.value?ee:Er,cutRange:a.value?de.value:null,copyRange:a.value?he.value:null,clearClipboardRanges:a.value?Se:ke,canUndo:v.canUndo.value,canRedo:v.canRedo.value,onUndo:v.undo,onRedo:v.redo,isDragging:a.value?O.value:false})),ft=computed(()=>({menuPosition:a.value?V.value:null,setMenuPosition:a.value?z:ke,handleCellContextMenu:a.value?oe:Ur,closeContextMenu:a.value?te:ke})),pt=computed(()=>({headerFilterInput:it.value,cellDescriptorInput:st.value,statusBarConfig:We.value,showEmptyInGrid:et.value,onCellError:o.value.onCellError})),vt=computed(()=>({pinnedColumns:ce.pinnedColumns.value,pinColumn:ce.pinColumn,unpinColumn:ce.unpinColumn,isPinned:ce.isPinned,leftOffsets:se.value,rightOffsets:Je.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:ct,rowSelection:tt,editing:Pe,interaction:mt,contextMenu:ft,viewModels:pt,pinning:vt}}function $t(e){let{columnSizingOverrides:o,setColumnSizingOverrides:l,minWidth:t=80,defaultWidth:u=120,onColumnResized:m}=e,f=0,s=null;return onUnmounted(()=>{s?.(),s=null;}),{handleResizeStart:(i,p)=>{i.preventDefault(),i.stopPropagation();let C=i.clientX,r=p.columnId,c=i.currentTarget.parentElement,d=c?c.getBoundingClientRect().width:o.value[r]?.widthPx??p.idealWidth??p.defaultWidth??u,R=d,w=document.body.style.cursor,S=document.body.style.userSelect;document.body.style.cursor="col-resize",document.body.style.userSelect="none";let D=()=>{l({...o.value,[r]:{widthPx:R}});},K=r===ROW_NUMBER_COLUMN_ID?ROW_NUMBER_COLUMN_MIN_WIDTH:t,L=x=>{let U=x.clientX-C;R=Math.max(K,d+U),f||(f=requestAnimationFrame(()=>{f=0,D();}));},T=()=>{document.removeEventListener("pointermove",L),document.removeEventListener("pointerup",b),s=null,document.body.style.cursor=w,document.body.style.userSelect=S,f&&(cancelAnimationFrame(f),f=0);},b=()=>{T(),D(),m?.(r,R);};document.addEventListener("pointermove",L),document.addEventListener("pointerup",b),s=T;},handleResizeDoubleClick:(i,p)=>{i.preventDefault(),i.stopPropagation();let C=p.columnId,c=(i.currentTarget.closest("th")??i.currentTarget.parentElement)?.closest("table")?.parentElement??void 0,d=measureColumnContentWidth(C,t,c);l({...o.value,[C]:{widthPx:d}}),m?.(C,d);},getColumnWidth:i=>o.value[i.columnId]?.widthPx??i.idealWidth??i.defaultWidth??u}}function qt(e,o){let l=ref(e.value),t;return watch(e,u=>{t!==void 0&&clearTimeout(t),t=setTimeout(()=>{l.value=u;},o);}),onUnmounted(()=>{t!==void 0&&clearTimeout(t);}),l}function Ro(e,o){let l,t=e,u,m=((...f)=>{t=e,u=f,l!==void 0&&clearTimeout(l),l=setTimeout(()=>{t(...f),u=void 0,l=void 0;},o);});return m.cancel=()=>{l!==void 0&&clearTimeout(l),l=void 0,u=void 0;},m.flush=()=>{if(l!==void 0&&u!==void 0){clearTimeout(l),l=void 0;let f=u;u=void 0,t(...f);}},onUnmounted(()=>{l!==void 0&&clearTimeout(l);}),m}function Xt(e){let{textValue:o="",onTextChange:l}=e,t=ref(o);return watch(e.isFilterOpen,s=>{s&&(t.value=e.textValue??"");}),{tempTextValue:t,setTempTextValue:s=>{t.value=s;},handleTextApply:()=>{l?.(t.value.trim());},handleTextClear:()=>{t.value="";}}}var Nr=150,Ln=[];function jt(e){let{onFilterChange:o}=e,l=ref(new Set(e.selectedValues??Ln)),t=ref(""),u=qt(t,Nr);watch(e.isFilterOpen,p=>{p&&(l.value=new Set(e.selectedValues??Ln),t.value="");});let m=computed(()=>{let p=e.options??Ln;if(!u.value.trim())return p;let C=u.value.toLowerCase().trim();return p.filter(r=>r.toLowerCase().includes(C))});return {tempSelected:l,setTempSelected:p=>{l.value=p;},searchText:t,setSearchText:p=>{t.value=p;},debouncedSearchText:u,filteredOptions:m,handleCheckboxChange:(p,C)=>{let r=new Set(l.value);C?r.add(p):r.delete(p),l.value=r;},handleSelectAll:()=>{l.value=new Set(m.value);},handleClearSelection:()=>{l.value=new Set;},handleApplyMultiSelect:()=>{o?.(Array.from(l.value));}}}var Wr=300;function Zt(e){let{onUserChange:o,filterType:l}=e,t=ref(null),u,m=ref([]),f=ref(false),s=ref(""),a=i=>{s.value=i;};return watch(e.isFilterOpen,i=>{i&&(s.value="",m.value=[],l==="people"&&setTimeout(()=>t.value?.focus(),50));}),watch([s,()=>e.peopleSearch,e.isFilterOpen],([i,p,C])=>{if(u&&clearTimeout(u),!(!p||!C||l!=="people")){if(!i.trim()){m.value=[];return}f.value=true,u=setTimeout(async()=>{try{let r=await p(i);m.value=r.slice(0,10);}catch{m.value=[];}finally{f.value=false;}},Wr);}}),onUnmounted(()=>{u&&clearTimeout(u);}),{peopleSuggestions:m,isPeopleLoading:f,peopleSearchText:s,setPeopleSearchText:a,peopleInputRef:t,handleUserSelect:i=>{o?.(i);},handleClearUser:()=>{o?.(void 0);}}}function Jt(e){let{onDateChange:o}=e,l=ref(e.dateValue?.from??""),t=ref(e.dateValue?.to??"");return watch(e.isFilterOpen,a=>{a&&(l.value=e.dateValue?.from??"",t.value=e.dateValue?.to??"");}),{tempDateFrom:l,setTempDateFrom:a=>{l.value=a;},tempDateTo:t,setTempDateTo:a=>{t.value=a;},handleDateApply:()=>{let a=l.value||void 0,g=t.value||void 0;o?.(a||g?{from:a,to:g}:void 0);},handleDateClear:()=>{l.value="",t.value="";}}}var Xr=[];function xo(e){let{filterType:o,onSort:l}=e,t=()=>e.selectedValues??Xr,u=ref(null),m=ref(null),f=ref(false),s=ref(null),a=h=>{f.value=h;},g=Xt({textValue:e.textValue,onTextChange:e.onTextChange,isFilterOpen:f}),v=jt({selectedValues:e.selectedValues,onFilterChange:e.onFilterChange,options:e.options,isFilterOpen:f}),i=Zt({selectedUser:e.selectedUser,onUserChange:e.onUserChange,peopleSearch:e.peopleSearch,isFilterOpen:f,filterType:o}),p=Jt({dateValue:e.dateValue,onDateChange:e.onDateChange,isFilterOpen:f});watch(f,h=>{h||(s.value=null);});let C=null,r=null,c,d=()=>{R(),C=h=>{let I=h.target;m.value&&!m.value.contains(I)&&u.value&&!u.value.contains(I)&&(f.value=false);},r=h=>{(h.key==="Escape"||h.key==="Esc")&&(h.preventDefault(),h.stopPropagation(),f.value=false);},c=setTimeout(()=>{C&&document.addEventListener("mousedown",C);},0),document.addEventListener("keydown",r,true);},R=()=>{c&&clearTimeout(c),C&&document.removeEventListener("mousedown",C),r&&document.removeEventListener("keydown",r,true),C=null,r=null;};watch(f,h=>{h?d():R();}),onUnmounted(()=>R());let w=h=>{if(h.stopPropagation(),h.preventDefault(),!f.value&&u.value){let I=u.value.getBoundingClientRect();s.value={top:I.bottom+4,left:I.left};}f.value=!f.value;},S=h=>{h.stopPropagation(),l?.();},D=()=>{v.handleApplyMultiSelect(),f.value=false;},K=()=>{g.handleTextApply(),f.value=false;},L=h=>{i.handleUserSelect(h),f.value=false;},T=()=>{i.handleClearUser(),f.value=false;},b=()=>{p.handleDateApply(),f.value=false;},x=h=>h.stopPropagation(),U=h=>h.stopPropagation(),y=h=>h.stopPropagation(),j=h=>h.stopPropagation(),Q=h=>{h.key!=="Escape"&&h.key!=="Esc"&&h.stopPropagation();},Z=computed(()=>o==="multiSelect"?t().length>0:o==="text"?!!(e.textValue??"").trim():o==="people"?!!e.selectedUser:o==="date"?!!(e.dateValue?.from||e.dateValue?.to):false);return {headerRef:u,popoverRef:m,peopleInputRef:i.peopleInputRef,isFilterOpen:f,setFilterOpen:a,tempSelected:v.tempSelected,setTempSelected:v.setTempSelected,tempTextValue:g.tempTextValue,setTempTextValue:g.setTempTextValue,searchText:v.searchText,setSearchText:v.setSearchText,debouncedSearchText:v.debouncedSearchText,filteredOptions:v.filteredOptions,peopleSuggestions:i.peopleSuggestions,isPeopleLoading:i.isPeopleLoading,peopleSearchText:i.peopleSearchText,setPeopleSearchText:i.setPeopleSearchText,tempDateFrom:p.tempDateFrom,setTempDateFrom:p.setTempDateFrom,tempDateTo:p.tempDateTo,setTempDateTo:p.setTempDateTo,hasActiveFilter:Z,popoverPosition:s,handlers:{handleFilterIconClick:w,handleApplyMultiSelect:D,handleTextApply:K,handleTextClear:g.handleTextClear,handleUserSelect:L,handleClearUser:T,handleCheckboxChange:v.handleCheckboxChange,handleSelectAll:v.handleSelectAll,handleClearSelection:v.handleClearSelection,handlePopoverClick:x,handleInputFocus:U,handleInputMouseDown:y,handleInputClick:j,handleInputKeyDown:Q,handleDateApply:b,handleDateClear:p.handleDateClear,handleSortClick:S}}}function To(e){let{columns:o,visibleColumns:l,onVisibilityChange:t}=e,u=ref(false),m=null,f=()=>{s(),m=d=>{d.key==="Escape"&&(d.preventDefault(),u.value=false);},document.addEventListener("keydown",m,true);},s=()=>{m&&(document.removeEventListener("keydown",m,true),m=null);};watch(u,d=>{d?f():s();}),onUnmounted(()=>s());let a=d=>{u.value=d;},g=()=>{u.value=!u.value;},v=()=>{u.value=false;},i=d=>R=>{t(d,R);},p=()=>{o.value.forEach(d=>{l.value.has(d.columnId)||t(d.columnId,true);});},C=()=>{o.value.forEach(d=>{!d.required&&l.value.has(d.columnId)&&t(d.columnId,false);});},r=computed(()=>l.value.size),c=computed(()=>o.value.length);return {open:u,setOpen:a,handleToggle:g,handleClose:v,handleCheckboxChange:i,handleSelectAll:p,handleClearAll:C,visibleCount:r,totalCount:c}}function Po(e){let{value:o,editorType:l,onCommit:t,onCancel:u}=e,m=ref((()=>{if(o==null)return "";if(l==="date"){let i=String(o);return i.match(/^\d{4}-\d{2}-\d{2}/)?i.substring(0,10):i}return String(o)})()),f=i=>{m.value=i;},s=i=>{t(i);},a=()=>{u();};return {localValue:m,setLocalValue:f,handleKeyDown:i=>{i.key==="Escape"&&(i.preventDefault(),i.stopPropagation(),a()),i.key==="Enter"&&(l==="text"||l==="date")&&(i.preventDefault(),i.stopPropagation(),s(m.value));},handleBlur:()=>{(l==="text"||l==="date")&&s(m.value);},commit:s,cancel:a}}function Do(e){let{values:o,formatValue:l,initialValue:t,onCommit:u,onCancel:m}=e,f=ref(""),s=o.findIndex(r=>String(r)===String(t)),a=ref(Math.max(s,0)),g=r=>{f.value=r;},v=r=>l?l(r):r!=null?String(r):"",i=computed(()=>{if(!f.value.trim())return o;let r=f.value.toLowerCase();return o.filter(c=>v(c).toLowerCase().includes(r))}),p=r=>{u(r);};return {searchText:f,setSearchText:g,filteredValues:i,highlightedIndex:a,handleKeyDown:r=>{switch(r.key){case "ArrowDown":r.preventDefault(),a.value=Math.min(a.value+1,i.value.length-1);break;case "ArrowUp":r.preventDefault(),a.value=Math.max(a.value-1,0);break;case "Enter":r.preventDefault(),r.stopPropagation(),i.value.length>0&&a.value<i.value.length&&p(i.value[a.value]);break;case "Escape":r.preventDefault(),r.stopPropagation(),m();break}},selectValue:p,getDisplayText:v}}var la=8,ra=5;function en(e){let{columnOrder:o,onColumnOrderChange:l,tableRef:t,pinnedColumns:u}=e,m=ref(false),f=ref(null),s=null,a="unpinned",g=0,v=null;return onUnmounted(()=>{v?.(),v=null;}),{isDragging:m,dropIndicatorX:f,handleHeaderMouseDown:(p,C)=>{if(C.button!==0)return;let r=C.target.closest("th");if(r){let x=r.getBoundingClientRect();if(C.clientX>x.right-la)return}if(C.preventDefault(),!t.value||!l.value)return;s=p,a=getPinStateForColumn(p,u?.value),f.value=null;let d=C.clientX,R=false,w=C.clientX,S=-1,D=document.body.style.cursor,K=document.body.style.userSelect;document.body.style.cursor="grabbing",document.body.style.userSelect="none";let L=x=>{!R&&Math.abs(x.clientX-d)<ra||(R||(R=true,m.value=true),w=x.clientX,g||(g=requestAnimationFrame(()=>{g=0;let U=t.value;if(!U||!s)return;let y=calculateDropTarget({mouseX:w,columnOrder:o.value,draggedColumnId:s,draggedPinState:a,tableElement:U,pinnedColumns:u?.value});y?(S=y.targetIndex,f.value=y.indicatorX):f.value=null;})));},T=()=>{window.removeEventListener("pointermove",L,true),window.removeEventListener("pointerup",b,true),v=null,document.body.style.cursor=D,document.body.style.userSelect=K,g&&(cancelAnimationFrame(g),g=0);},b=()=>{if(T(),R&&s&&S>=0&&l.value){let x=reorderColumnArray(o.value,s,S);l.value(x);}s=null,m.value=false,f.value=null,S=-1;};window.addEventListener("pointermove",L,true),window.addEventListener("pointerup",b,true),v=T;}}}var pa=100;function nn(e){let{totalRows:o,rowHeight:l,enabled:t,overscan:u=5,threshold:m=pa,columnsEnabled:f,columnWidths:s,columnOverscan:a=2}=e;onMounted(()=>{validateVirtualScrollConfig({enabled:t.value,rowHeight:l});});let g=ref(null),v=ref(0),i=ref(0),p=ref(0),C=ref(0),r=0,c,d=null,R=computed(()=>t.value&&o.value>=m),w=computed(()=>R.value?computeVisibleRange(v.value,l,p.value,o.value,u):{startIndex:0,endIndex:Math.max(0,o.value-1),offsetTop:0,offsetBottom:0}),S=computed(()=>t.value?computeTotalHeight(o.value,l):0),D=computed(()=>{if(!f?.value)return null;let b=s?.value;return !b||b.length===0?null:computeVisibleColumnRange(i.value,b,C.value,a)}),K=()=>{r||(r=requestAnimationFrame(()=>{r=0;let b=g.value;b&&(v.value=b.scrollTop,i.value=b.scrollLeft);}));},L=()=>{let b=g.value;b&&(p.value=b.clientHeight,C.value=b.clientWidth);};return watch(g,b=>{b!==d&&(d&&d.removeEventListener("scroll",K),c&&(c.disconnect(),c=void 0),d=b,b&&(b.addEventListener("scroll",K,{passive:true}),typeof ResizeObserver<"u"&&(c=new ResizeObserver(L),c.observe(b)),L(),v.value=b.scrollTop,i.value=b.scrollLeft));}),onUnmounted(()=>{let b=g.value;b&&b.removeEventListener("scroll",K),c?.disconnect(),r&&(cancelAnimationFrame(r),r=0);}),{containerRef:g,visibleRange:w,totalHeight:S,scrollToRow:(b,x="start")=>{let U=g.value;U&&(U.scrollTop=getScrollTopForRow(b,l,p.value,x));},columnRange:D,scrollLeft:i}}function ln(e){let{props:o}=e,l=ref(null),t=ref(null),u=ref(null),m=ref(false),f=Kt({props:o,wrapperRef:l}),s=computed(()=>{let L=o.value;return L.columnOrder?L.columnOrder:flattenColumns(L.columns).filter(T=>L.visibleColumns?.has(T.columnId)??true).map(T=>T.columnId)}),a=computed(()=>o.value.onColumnOrderChange),g=en({columnOrder:s,onColumnOrderChange:a,tableRef:u}),v=computed(()=>o.value.virtualScroll?.enabled??false),i=computed(()=>o.value.items.length),p=o.value.virtualScroll?.rowHeight??36,C=o.value.virtualScroll?.overscan??5,r=computed(()=>o.value.virtualScroll?.columns===true),c=o.value.virtualScroll?.columnOverscan??2,d=computed(()=>{let L=f.layout.value,{visibleCols:T,columnSizingOverrides:b}=L,x=o.value.pinnedColumns??{},U=[];for(let y of T){if(x[y.columnId]||y.pinned)continue;let j=b[y.columnId];U.push(j?j.widthPx:y.defaultWidth??y.minWidth??DEFAULT_MIN_COLUMN_WIDTH);}return U}),R=nn({totalRows:i,rowHeight:p,enabled:v,overscan:C,columnsEnabled:r,columnWidths:d,columnOverscan:c}),w=computed(()=>{if(!r.value)return null;let T=f.layout.value.visibleCols,b=R.columnRange.value,x=o.value.pinnedColumns;return partitionColumnsForVirtualization(T,b,x)}),S=computed(()=>{let T=f.layout.value.visibleCols,b=new Map;for(let x=0;x<T.length;x++)b.set(T[x].columnId,x);return b}),D=computed(()=>f.layout.value.columnSizingOverrides),K=$t({columnSizingOverrides:D,setColumnSizingOverrides:L=>f.layout.value.setColumnSizingOverrides(L)});return {wrapperRef:l,tableContainerRef:t,tableRef:u,lastMouseShift:m,state:f,columnReorder:g,virtualScroll:R,virtualScrollEnabled:v,columnResize:K,columnPartition:w,globalColIndexMap:S}}function rn(e,o,l){let t={"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:u=>l.handleCellMouseDown(u,e.rowIndex,e.globalColIndex),onClick:()=>l.setActiveCell({rowIndex:e.rowIndex,columnIndex:e.globalColIndex}),onContextmenu:u=>l.handleCellContextMenu(u)};return e.canEditAny&&(t.role="button",t.onDblclick=()=>l.setEditingCell({rowId:e.rowId,columnId:o})),t}var Uo=()=>{};function Ia(e){return defineComponent({name:"DataGridTable",props:{gridProps:{type:Object,required:true}},setup(o){let l=computed(()=>o.gridProps),{wrapperRef:t,tableContainerRef:u,tableRef:m,lastMouseShift:f,state:s,columnReorder:{isDragging:a,dropIndicatorX:g,handleHeaderMouseDown:v},virtualScroll:{containerRef:i,visibleRange:p,totalHeight:C,scrollToRow:r},virtualScrollEnabled:c,columnResize:{handleResizeStart:d,handleResizeDoubleClick:R,getColumnWidth:w},columnPartition:S,globalColIndexMap:D}=ln({props:l}),K=computed(()=>{let y=l.value;return y.showRowNumbers||y.showColumnLetters?((y.currentPage??1)-1)*(y.pageSize??25):0});watch([()=>s.interaction.value.activeCell,K],([y,j])=>{let Q=l.value.onActiveCellChange;Q&&Q(y?formatCellReference(y.columnIndex-s.layout.value.colOffset,j+y.rowIndex+1):null);},{immediate:true});let L=y=>{f.value=y.shiftKey;},T=y=>y.preventDefault(),b=y=>y.stopPropagation(),x=computed(()=>buildHeaderRows(l.value.columns,l.value.visibleColumns)),U=computed(()=>{let y=s.layout.value,j=s.pinning.value,{visibleCols:Q,columnSizingOverrides:Z,measuredColumnWidths:h}=y,{leftOffsets:I,rightOffsets:E}=j,H={},P={},M={},A={};for(let O=0;O<Q.length;O++){let V=Q[O],z=V.pinned==="left",oe=V.pinned==="right",te=w(V),k=!!Z[V.columnId],J=h[V.columnId],ee=V.minWidth??DEFAULT_MIN_COLUMN_WIDTH,de=k?te:Math.max(ee,J??0),he={minWidth:`${de}px`,width:`${te}px`,maxWidth:`${te}px`},Se={minWidth:`${de}px`,width:`${te}px`,maxWidth:`${te}px`},ye=["ogrid-data-cell"],we=["ogrid-header-cell"];z?(ye.push("ogrid-data-cell--pinned-left"),he.left=`${I[V.columnId]??0}px`,we.push("ogrid-header-cell--pinned-left"),Se.left=`${I[V.columnId]??0}px`):oe&&(ye.push("ogrid-data-cell--pinned-right"),he.right=`${E[V.columnId]??0}px`,we.push("ogrid-header-cell--pinned-right"),Se.right=`${E[V.columnId]??0}px`),H[V.columnId]=he,P[V.columnId]=ye.join(" "),M[V.columnId]=Se,A[V.columnId]=we.join(" ");}return {cellStyles:H,cellClasses:P,hdrStyles:M,hdrClasses:A}});return ()=>{let y=o.gridProps,j=s.layout.value,Q=s.rowSelection.value,Z=s.editing.value,h$1=s.interaction.value,I=s.contextMenu.value,E=s.viewModels.value,H=s.pinning.value,{headerMenu:P}=H,{visibleCols:M,hasCheckboxCol:A,hasRowNumbersCol:O,colOffset:V,containerWidth:z,minTableWidth:oe,desiredTableWidth:te}=j,k=y.currentPage??1,J=y.pageSize??25,ee=O?(k-1)*J:0,{selectedRowIds:de,handleRowCheckboxChange:he,handleSelectAll:Se,allSelected:ye,someSelected:we}=Q,{editingCell:Ye,setEditingCell:Oe,pendingEditorValue:De,setPendingEditorValue:Be,commitCellEdit:Fe,cancelPopoverEdit:Me,popoverAnchorEl:_e,setPopoverAnchorEl:ce}=Z,{setActiveCell:He,setSelectionRange:ie,handleCellMouseDown:Ve,handleSelectAllCells:Ze,selectionRange:se,hasCellSelection:Je,handleGridKeyDown:Qe,handleFillHandleMouseDown:We,handleCopy:et,handleCut:at,handlePaste:it,cutRange:st,copyRange:Ke,canUndo:Ge,canRedo:ut,onUndo:dt,onRedo:ct,isDragging:tt}=h$1,{menuPosition:Pe,handleCellContextMenu:mt,closeContextMenu:ft}=I,{headerFilterInput:pt,cellDescriptorInput:vt,statusBarConfig:G,showEmptyInGrid:Y,onCellError:le}=E,ue=y.items,me=y.getRowId,xe=y.layoutMode??"fill",pe=y.rowSelection??"none",n=y.suppressHorizontalScroll,F=y.stickyHeader??true,re=y.isLoading??false,Re=y.loadingMessage??"Loading\u2026",nt=y["aria-label"],$e=y["aria-labelledby"],qe=xe==="content",ot=!n&&z>0&&(oe>z||te>z),Ce=x.value,lt={commitCellEdit:Fe,setEditingCell:Oe,setPendingEditorValue:Be,cancelPopoverEdit:Me},Xe={handleCellMouseDown:Ve,setActiveCell:He,setEditingCell:Oe,handleCellContextMenu:mt},gt=q=>{if(pe!=="single")return;let ae=q.currentTarget.dataset.rowId;ae&&Q.updateSelection(de.has(ae)?new Set:new Set([ae]));},Ao=(q,W,ae,Ie)=>{try{return ko(q,W,ae,Ie)}catch($){return le&&le($ instanceof Error?$:new Error(String($)),void 0),""}},ko=(q,W,ae,Ie)=>{let $=getCellRenderDescriptor(q,W,ae,Ie,vt);if($.mode==="editing-inline"){let ve=buildInlineEditorProps(q,W,$,lt);return h("div",{class:"ogrid-editing-cell"},h(e.InlineCellEditor,{value:ve.value,item:ve.item,column:ve.column,rowIndex:ve.rowIndex,editorType:ve.editorType,onCommit:ve.onCommit,onCancel:ve.onCancel}))}if($.mode==="editing-popover"&&typeof W.cellEditor=="function"){let ve=buildPopoverEditorProps(q,W,$,De,lt),ne=W.cellEditor;return h("div",[h("div",{ref:_n=>{_n&&ce(_n);},class:"ogrid-popover-anchor","aria-hidden":"true"}),_e?h(ne,ve):null])}let Te=rn($,W.columnId,Xe),be=["ogrid-cell-content"];W.type==="numeric"?be.push("ogrid-cell-content--numeric"):W.type==="boolean"&&be.push("ogrid-cell-content--boolean"),$.canEditAny&&be.push("ogrid-cell-content--editable"),$.isActive&&be.push("ogrid-cell-content--active"),$.isActive&&$.isInRange&&be.push("ogrid-cell-content--active-in-range"),$.isInRange&&!$.isActive&&be.push("ogrid-cell-in-range"),$.isInCutRange&&be.push("ogrid-cell-cut");let Ae;if($.columnType==="boolean")Ae=h("input",{type:"checkbox",checked:!!$.displayValue,disabled:true,style:"margin:0;pointer-events:none","aria-label":$.displayValue?"True":"False"});else {let ve=resolveCellDisplayContent(W,q,$.displayValue),ne=resolveCellStyle(W,q,$.displayValue);Ae=ne?h("span",{style:ne},ve):ve;}return h("div",{...Te,class:be.join(" ")},[Ae,...$.canEditAny&&$.isSelectionEndCell?[h("div",{onPointerdown:We,"aria-label":"Fill handle",class:"ogrid-fill-handle"})]:[]])},{cellStyles:Lo,cellClasses:Bo,hdrStyles:Ho,hdrClasses:Vo}=U.value,Vn=M.map(q=>({col:q,tdClasses:Bo[q.columnId]||"ogrid-data-cell",tdDynamicStyle:Lo[q.columnId]||{}})),rt=S.value,Gn=Vn,Ct=0,ht=0;if(rt){let q=new Set;for(let W of rt.pinnedLeft)q.add(W.columnId);for(let W of rt.virtualizedUnpinned)q.add(W.columnId);for(let W of rt.pinnedRight)q.add(W.columnId);Gn=Vn.filter(W=>q.has(W.col.columnId)),Ct=rt.leftSpacerWidth,ht=rt.rightSpacerWidth;}let Go=D.value,zn=q=>{let W=Ho[q.columnId]||{};return {classes:Vo[q.columnId]||"ogrid-header-cell",style:{...W,cursor:a.value?"grabbing":"grab"}}},Nn={position:"relative",flex:"1",minHeight:re&&ue.length===0?"200px":"0",width:qe?"fit-content":"100%",maxWidth:"100%",overflowX:n?"hidden":ot?"auto":"hidden",overflowY:"auto",backgroundColor:"#fff",willChange:"scroll-position"};return y.rowHeight&&(Nn["--ogrid-row-height"]=`${y.rowHeight}px`),h("div",{class:"ogrid-outer-container"},[h("div",{ref:q=>{t.value=q,i.value=q;},tabindex:0,role:"region","aria-label":nt??($e?void 0:"Data grid"),"aria-labelledby":$e,onPointerdown:L,onKeydown:Qe,onContextmenu:T,"data-overflow-x":ot?"true":"false",style:Nn},[h("div",{class:"ogrid-scroll-wrapper"},[h("div",{style:{minWidth:ot?`${oe}px`:void 0,overflowX:"clip"}},[h("div",{ref:q=>{u.value=q;},class:["ogrid-table-container",re&&ue.length>0?"ogrid-table-container--loading":""]},[...a.value&&g.value!==null?[h("div",{class:"ogrid-drop-indicator",style:{left:`${g.value}px`}})]:[],h("table",{ref:q=>{m.value=q;},class:"ogrid-table",role:"grid",style:{minWidth:`${oe}px`},...c.value?{"data-virtual-scroll":""}:{}},[h("thead",{class:F?"ogrid-thead ogrid-sticky-header":"ogrid-thead"},[...y.showColumnLetters?[h("tr",{class:"ogrid-column-letter-row"},[...A?[h("th",{class:"ogrid-column-letter-cell"})]:[],...O?[h("th",{class:"ogrid-column-letter-cell"})]:[],...M.map((q,W)=>{let{classes:ae,style:Ie}=zn(q);return h("th",{key:q.columnId,class:`ogrid-column-letter-cell ${ae}`,style:Ie},indexToColumnLetter(W))})])]:[],...Ce.map((q,W)=>h("tr",{key:W,class:"ogrid-header-row"},[...W===Ce.length-1&&A?[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:ye,indeterminate:we&&!ye,ariaLabel:"Select all rows",onChange:ae=>Se(!!ae)}))]:[],...W===0&&W<Ce.length-1&&A?[h("th",{rowSpan:Ce.length-1,class:"ogrid-checkbox-spacer",style:{width:`${CHECKBOX_COLUMN_WIDTH}px`,minWidth:`${CHECKBOX_COLUMN_WIDTH}px`}})]:[],...W===Ce.length-1&&O?[(()=>{let ae=j.columnSizingOverrides[ROW_NUMBER_COLUMN_ID]?.widthPx??ROW_NUMBER_COLUMN_WIDTH;return h("th",{class:"ogrid-row-number-header",style:{width:`${ae}px`,minWidth:`${ae}px`,maxWidth:`${ae}px`,position:"sticky",left:A?`${CHECKBOX_COLUMN_WIDTH}px`:"0",zIndex:3}},["#",h("div",{onPointerdown:Ie=>{He(null),ie(null),t.value?.focus({preventScroll:true}),Ie.stopPropagation(),d(Ie,{columnId:ROW_NUMBER_COLUMN_ID,name:"#"});},class:"ogrid-resize-handle"})])})()]:[],...W===0&&W<Ce.length-1&&O?[(()=>{let ae=j.columnSizingOverrides[ROW_NUMBER_COLUMN_ID]?.widthPx??ROW_NUMBER_COLUMN_WIDTH;return h("th",{rowSpan:Ce.length-1,class:"ogrid-row-number-spacer",style:{width:`${ae}px`,position:"sticky",left:A?`${CHECKBOX_COLUMN_WIDTH}px`:"0",zIndex:3}})})()]:[],...q.map((ae,Ie)=>{if(ae.isGroup)return h("th",{key:Ie,colSpan:ae.colSpan,scope:"colgroup",class:"ogrid-column-group-header"},ae.label);if(!ae.columnDef)return null;let $=ae.columnDef,{classes:Te,style:be}=zn($),ve=y.sortBy===$.columnId?y.sortDirection==="asc"?"ascending":"descending":void 0;return h("th",{key:$.columnId,scope:"col","data-column-id":$.columnId,rowSpan:Ce.length>1?Ce.length-W:void 0,class:Te,style:be,"aria-sort":ve,onPointerdown:ne=>v($.columnId,ne)},[h("div",{class:"ogrid-header-content"},[h(e.ColumnHeaderFilter,getHeaderFilterConfig($,pt)),h("button",{onClick:ne=>{ne.stopPropagation(),P.isOpen&&P.openForColumn===$.columnId?P.close():P.open($.columnId,ne.currentTarget);},"aria-label":"Column options",title:"Column options",class:"ogrid-column-menu-btn"},"\u22EE")]),h("div",{onPointerdown:ne=>{He(null),ie(null),t.value?.focus({preventScroll:true}),ne.stopPropagation(),d(ne,$);},onDblclick:ne=>R(ne,$),class:"ogrid-resize-handle"})])})]))]),...Y?[]:[h("tbody",{},(()=>{let q=c.value,W=p.value,ae=q?W.startIndex:0,Ie=q?Math.min(W.endIndex,ue.length-1):ue.length-1,$=[];q&&W.offsetTop>0&&$.push(h("tr",{key:"__vs-top",style:{height:`${W.offsetTop}px`}}));for(let Te=ae;Te<=Ie;Te++){let be=ue[Te];if(!be)continue;let Ae=me(be),ve=de.has(Ae);$.push(h("tr",{key:Ae,"data-row-id":Ae,"aria-selected":ve||void 0,onClick:gt,style:{cursor:pe==="single"?"pointer":void 0}},[...A?[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":Te,"data-col-index":0,onClick:b,class:"ogrid-checkbox-wrapper"},e.renderCheckbox({modelValue:ve,ariaLabel:`Select row ${Te+1}`,onChange:ne=>he(Ae,ne,Te,f.value)})))]:[],...O?[(()=>{let ne=j.columnSizingOverrides[ROW_NUMBER_COLUMN_ID]?.widthPx??ROW_NUMBER_COLUMN_WIDTH;return h("td",{class:"ogrid-row-number-cell",style:{width:`${ne}px`,minWidth:`${ne}px`,maxWidth:`${ne}px`,padding:"6px",position:"sticky",left:A?`${CHECKBOX_COLUMN_WIDTH}px`:"0",zIndex:2}},String(ee+Te+1))})()]:[],...Ct>0?[h("td",{key:"__col-spacer-left",style:{width:`${Ct}px`,minWidth:`${Ct}px`,maxWidth:`${Ct}px`,padding:"0"}})]:[],...Gn.map(ne=>h("td",{key:ne.col.columnId,"data-column-id":ne.col.columnId,class:ne.tdClasses,style:ne.tdDynamicStyle},[Ao(be,ne.col,Te,Go.get(ne.col.columnId)??0)])),...ht>0?[h("td",{key:"__col-spacer-right",style:{width:`${ht}px`,minWidth:`${ht}px`,maxWidth:`${ht}px`,padding:"0"}})]:[]]));}return q&&W.offsetBottom>0&&$.push(h("tr",{key:"__vs-bottom",style:{height:`${W.offsetBottom}px`}})),$})())]]),...Y&&y.emptyState?[e.renderEmptyState(y.emptyState)]:[]])])])]),...Pe?[h(Teleport,{to:"body"},h(e.GridContextMenu,{x:Pe.x,y:Pe.y,hasSelection:Je,canUndo:Ge,canRedo:ut,onUndo:dt??Uo,onRedo:ct??Uo,onCopy:et,onCut:at,onPaste:()=>{it();},onSelectAll:Ze,onClose:ft}))]:[],h(hn,{containerRef:u,selectionRange:se,copyRange:Ke,cutRange:st,colOffset:V,items:ue,visibleColumns:y.visibleColumns instanceof Set?Array.from(y.visibleColumns):y.visibleColumns,columnSizingOverrides:j.columnSizingOverrides,columnOrder:y.columnOrder}),...y.formulaReferences&&y.formulaReferences.length>0?[h(wn,{containerEl:u.value,references:y.formulaReferences,colOffset:V})]:[],h(e.ColumnHeaderMenu,{isOpen:P.isOpen,anchorElement:P.anchorElement,onClose:P.close,onPinLeft:P.handlePinLeft,onPinRight:P.handlePinRight,onUnpin:P.handleUnpin,onSortAsc:P.handleSortAsc,onSortDesc:P.handleSortDesc,onClearSort:P.handleClearSort,onAutosizeThis:P.handleAutosizeThis,onAutosizeAll:P.handleAutosizeAll,canPinLeft:P.canPinLeft,canPinRight:P.canPinRight,canUnpin:P.canUnpin,currentSort:P.currentSort,isSortable:P.isSortable,isResizable:P.isResizable}),...G?[h(Rn,{totalCount:G.totalCount,filteredCount:G.filteredCount,selectedCount:G.selectedCount??de.size,selectedCellCount:se?(Math.abs(se.endRow-se.startRow)+1)*(Math.abs(se.endCol-se.startCol)+1):void 0,aggregation:G.aggregation,suppressRowCount:G.suppressRowCount})]:[],...re?[h("div",{class:"ogrid-loading-overlay"},e.renderSpinner(Re))]:[]])}}})}var vn={width:"100%",height:"100%",display:"flex",alignItems:"center",padding:"0 2px",boxSizing:"border-box"};function Fa(e){let{renderCheckbox:o,renderDatePicker:l}=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 u=ref(null),m=ref(null),f=ref(null),s=ref(t.value),a=ref(0),g=()=>{let c=m.value,d=f.value;if(!c||!d)return;let R=c.getBoundingClientRect(),w=200,S=window.innerHeight-R.bottom,D=S<w&&R.top>S;d.style.position="fixed",d.style.left=`${R.left}px`,d.style.width=`${R.width}px`,d.style.maxHeight=`${w}px`,d.style.zIndex="9999",d.style.right="auto",d.style.textAlign="left",D?(d.style.top="auto",d.style.bottom=`${window.innerHeight-R.top}px`):d.style.top=`${R.bottom}px`;},v=null;onMounted(()=>{nextTick(()=>{if(m.value){m.value.focus({preventScroll:true}),g();let c=m.value,d=c.closest(".ogrid-table-wrapper")??c.closest('[style*="overflow"]'),R=()=>{t.onCancel&&t.onCancel();},w=requestAnimationFrame(()=>{d&&d.addEventListener("scroll",R,{passive:true}),window.addEventListener("scroll",R,{passive:true});});v=()=>{cancelAnimationFrame(w),d&&d.removeEventListener("scroll",R),window.removeEventListener("scroll",R);};return}u.value?.focus({preventScroll:true}),u.value?.select();});}),onUnmounted(()=>{v?.();}),watch(()=>t.value,c=>{s.value=c;}),(()=>{let d=(t.column.cellEditorParams?.values??[]).findIndex(R=>String(R)===String(t.value));a.value=Math.max(d,0);})();let p=()=>{nextTick(()=>{let c=f.value;if(!c)return;c.children[a.value]?.scrollIntoView({block:"nearest"});});},C=c=>{let d=t.column.cellEditorParams?.formatValue;return d?d(c):c!=null?String(c):""},r=c=>{let d=t.column.cellEditorParams?.values??[];switch(c.key){case "ArrowDown":c.preventDefault(),a.value=Math.min(a.value+1,d.length-1),p();break;case "ArrowUp":c.preventDefault(),a.value=Math.max(a.value-1,0),p();break;case "Enter":c.preventDefault(),c.stopPropagation(),d.length>0&&a.value<d.length&&t.onCommit(d[a.value]);break;case "Tab":c.preventDefault(),d.length>0&&a.value<d.length&&t.onCommit(d[a.value]);break;case "Escape":c.preventDefault(),c.stopPropagation(),t.onCancel();break}};return ()=>{if(t.editorType==="checkbox"){let c=!!t.value;return h("div",{style:{...vn,justifyContent:"center"}},o({checked:c,onChange:d=>t.onCommit(d),onCancel:t.onCancel}))}if(t.editorType==="select"){let c=t.column.cellEditorParams?.values??[];return h("div",{ref:d=>{m.value=d;},tabindex:0,style:{...vn,position:"relative"},onKeydown:r},[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:d=>{f.value=d;},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"}},c.map((d,R)=>h("div",{key:String(d),role:"option","aria-selected":R===a.value,onClick:()=>t.onCommit(d),style:{padding:"6px 8px",cursor:"pointer",color:"var(--ogrid-fg, #242424)",...R===a.value?{background:"var(--ogrid-bg-hover, #e8f0fe)"}:{}}},C(d))))])}if(t.editorType==="date"){let c="";if(s.value){let d=new Date(String(s.value));Number.isNaN(d.getTime())||(c=d.toISOString().slice(0,10));}return h("div",{style:vn},l({value:c,onChange:d=>t.onCommit(d),onCancel:t.onCancel}))}return h("div",{style:vn},h("input",{ref:c=>{u.value=c;},type:"text",value:s.value!=null?String(s.value):"",style:{width:"100%",height:"100%",border:"none",outline:"none",padding:"0 4px",fontSize:"inherit",boxSizing:"border-box"},onInput:c=>{s.value=c.target.value;},onKeydown:c=>{c.key==="Enter"&&(c.preventDefault(),t.onCommit(s.value)),c.key==="Escape"&&(c.preventDefault(),t.onCancel()),c.key==="Tab"&&(c.preventDefault(),t.onCommit(s.value));},onBlur:()=>t.onCommit(s.value)}))}}})}var La=240,Hn=36,gn={columns:"Columns",filters:"Filters"},Ba={columns:"\u2261",filters:"\u2A65"};function Mo(e){let o=e.activePanel!==null,l=e.position??"right",t={display:"flex",flexDirection:"column",width:`${Hn}px`,background:"var(--ogrid-header-bg, #f5f5f5)",...l==="right"?{borderLeft:"1px solid var(--ogrid-border, #e0e0e0)"}:{borderRight:"1px solid var(--ogrid-border, #e0e0e0)"}},u=h("div",{style:t,role:"tablist","aria-label":"Side bar tabs"},e.panels.map(s=>h("button",{key:s,role:"tab","aria-selected":e.activePanel===s,"aria-label":gn[s],title:gn[s],onClick:()=>e.onPanelChange(e.activePanel===s?null:s),style:{width:`${Hn}px`,height:`${Hn}px`,border:"none",cursor:"pointer",color:"var(--ogrid-fg, #242424)",fontSize:"14px",display:"flex",alignItems:"center",justifyContent:"center",background:e.activePanel===s?"var(--ogrid-bg, #fff)":"transparent",fontWeight:e.activePanel===s?"bold":"normal"}},Ba[s]))),m=null;if(o&&e.activePanel){let s={width:`${La}px`,display:"flex",flexDirection:"column",overflow:"hidden",background:"var(--ogrid-bg, #fff)",color:"var(--ogrid-fg, #242424)",...l==="right"?{borderLeft:"1px solid var(--ogrid-border, #e0e0e0)"}:{borderRight:"1px solid var(--ogrid-border, #e0e0e0)"}},a=[];if(e.activePanel==="columns"){let g=e.columns.every(v=>e.visibleColumns.has(v.columnId));a.push(h("div",{style:{display:"flex",gap:"8px",marginBottom:"8px"}},[h("button",{disabled:g,onClick:()=>{let v=new Set(e.visibleColumns);e.columns.forEach(i=>v.add(i.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(i=>{i.required&&e.visibleColumns.has(i.columnId)&&v.add(i.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=>{a.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:i=>e.onVisibilityChange(v.columnId,i.target.checked)}),h("span",null,v.name)]));});}e.activePanel==="filters"&&(e.filterableColumns.length===0?a.push(h("div",{style:{color:"var(--ogrid-muted, #999)",fontStyle:"italic"}},"No filterable columns")):e.filterableColumns.forEach(g=>{let v=g.filterField,i=[h("div",{style:{fontWeight:"500",marginBottom:"4px",fontSize:"13px"}},g.name)];if(g.filterType==="text"){let p=e.filters[v],C=p?.type==="text"?p.value:"";i.push(h("input",{type:"text",value:C,onInput:r=>{let c=r.target.value;e.onFilterChange(v,c?{type:"text",value:c}:void 0);},placeholder:`Filter ${g.name}...`,"aria-label":`Filter ${g.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(g.filterType==="multiSelect"){let C=(e.filterOptions[v]??[]).map(r=>{let c=e.filters[v],d=c?.type==="multiSelect"?c.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:d,onChange:R=>{let w=e.filters[v],S=w?.type==="multiSelect"?w.value:[],D=R.target.checked?[...S,r]:S.filter(K=>K!==r);e.onFilterChange(v,D.length>0?{type:"multiSelect",value:D}:void 0);}}),h("span",null,r)])});i.push(h("div",{style:{maxHeight:"120px",overflowY:"auto"},role:"group","aria-label":`${g.name} options`},C));}if(g.filterType==="date"){let p=e.filters[v],C=p?.type==="date"?p.value:{from:void 0,to:void 0};i.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 c=r.target.value||void 0,d=C.to;e.onFilterChange(v,c||d?{type:"date",value:{from:c,to:d}}:void 0);},"aria-label":`${g.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 c=r.target.value||void 0,d=C.from;e.onFilterChange(v,d||c?{type:"date",value:{from:d,to:c}}:void 0);},"aria-label":`${g.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"}})])]));}a.push(h("div",{key:g.columnId,style:{marginBottom:"12px"}},i));})),m=h("div",{role:"tabpanel","aria-label":gn[e.activePanel],style:s},[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,gn[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"}},a)]);}let f=[];return l==="left"?(f.push(u),m&&f.push(m)):(m&&f.push(m),f.push(u)),h("div",{style:{display:"flex",flexDirection:"row",flexShrink:"0"},role:"complementary","aria-label":"Side bar"},f)}function Ha(e){return defineComponent({name:"OGrid",props:{gridProps:{type:Object,required:true}},setup(o,{expose:l}){let t=computed(()=>o.gridProps),{dataGridProps:u,pagination:m,columnChooser:f,layout:s,api:a}=Ft(t);l({api:a});let g=ref(false),v=()=>{g.value=!g.value;},i=p=>{p.key==="Escape"&&g.value&&(g.value=false);};return onMounted(()=>{document.addEventListener("keydown",i);}),onUnmounted(()=>{document.removeEventListener("keydown",i);}),()=>{let p=s.value.sideBarProps,C=p!=null,r=p?.position??"right",c=[];s.value.toolbar&&c.push(s.value.toolbar);let R=s.value.fullScreen===true?h("button",{type:"button",title:g.value?"Exit fullscreen":"Fullscreen","aria-label":g.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))"}},[g.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,w=f.value.placement==="toolbar"?h(e.ColumnChooser,{columns:f.value.columns,visibleColumns:f.value.visibleColumns,onVisibilityChange:f.value.onVisibilityChange}):null,S=h(e.PaginationControls,{currentPage:m.value.page,pageSize:m.value.pageSize,totalCount:m.value.displayTotalCount,onPageChange:m.value.setPage,onPageSizeChange:x=>{m.value.setPageSize(x);},pageSizeOptions:m.value.pageSizeOptions,entityLabelPlural:m.value.entityLabelPlural}),D=h("div",{style:{flex:"1",minWidth:"0",minHeight:"0",display:"flex",flexDirection:"column"}},[h(e.DataGridTable,{gridProps:u.value})]),K=[];C&&r==="left"&&K.push(Mo(p)),K.push(D),C&&r!=="left"&&K.push(Mo(p));let L=c.length>0||w!=null||R!=null,T=g.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"},b=g.value?{display:"flex",flexDirection:"column",flex:"1",minHeight:"0",overflow:"hidden",background:"var(--ogrid-bg, #fff)"}:void 0;return h("div",{class:s.value.className,style:T},[h("div",{style:b??{}},[...L?[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"}},c),h("div",{style:{display:"flex",alignItems:"center",gap:"8px"}},[...w?[w]:[],...R?[R]:[]])])]:[],...s.value.toolbarBelow?[h("div",{style:{padding:"8px 12px",borderBottom:"1px solid var(--ogrid-border, rgba(0,0,0,0.12))"}},[s.value.toolbarBelow])]:[],...s.value.formulaBar?[s.value.formulaBar]:[],h("div",{style:{display:"flex",flex:"1",minHeight:"0"}},K),...s.value.sheetTabs?[s.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{bn as FormulaBar,wn as FormulaRefOverlay,hn as MarchingAntsOverlay,yn as SheetTabs,Rn as StatusBar,Ia as createDataGridTable,Fa as createInlineCellEditor,Ha as createOGrid,rn as getCellInteractionProps,Mt as useActiveCell,Ot as useCellEditing,At as useCellSelection,Lt as useClipboard,To as useColumnChooserState,xo as useColumnHeaderFilterState,Wt as useColumnHeaderMenuState,Nt as useColumnPinning,en as useColumnReorder,$t as useColumnResize,kt as useContextMenu,Kt as useDataGridState,ln as useDataGridTableSetup,Jt as useDateFilterState,qt as useDebounce,Ro as useDebouncedCallback,Vt as useFillHandle,Pt as useFilterOptions,Et as useFormulaBar,Po as useInlineCellEditorState,Bt as useKeyboardNavigation,jt as useMultiSelectFilterState,Ft as useOGrid,Zt as usePeopleFilterState,Do as useRichSelectState,Ut as useRowSelection,bt as useSideBarState,zt as useTableLayout,Xt as useTextFilterState,Gt as useUndoRedo,nn as useVirtualScroll};
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,DEFAULT_MIN_COLUMN_WIDTH,CELL_PADDING,measureColumnContentWidth,resolveResponsiveConfig,applyResponsiveHiding,computeAggregations,getDataGridStatusBarConfig,getPinStateForColumn,validateVirtualScrollConfig,computeVisibleRange,computeTotalHeight,computeVisibleColumnRange,getScrollTopForRow,partitionColumnsForVirtualization,formatCellReference,buildHeaderRows,indexToColumnLetter,ROW_NUMBER_COLUMN_ID,ROW_NUMBER_COLUMN_WIDTH,getHeaderFilterConfig,getCellRenderDescriptor,buildInlineEditorProps,buildPopoverEditorProps,resolveCellDisplayContent,resolveCellStyle,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,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 hn=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),l=ref(null),t=0,u,m=computed(()=>e.copyRange??e.cutRange),f=()=>{let a=toValue(e.containerRef);if(!a){o.value=null,l.value=null;return}o.value=e.selectionRange?measureRange(a,e.selectionRange,e.colOffset):null,l.value=m.value?measureRange(a,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,l.value=null;return}t=requestAnimationFrame(f);let a=toValue(e.containerRef);a&&(u?.disconnect(),u=new ResizeObserver(f),u.observe(a));},{immediate:true}),onUnmounted(()=>{cancelAnimationFrame(t),u?.disconnect();});let s=computed(()=>{let a=e.selectionRange,g=m.value;return a!=null&&g!=null&&a.startRow===g.startRow&&a.startCol===g.startCol&&a.endRow===g.endRow&&a.endCol===g.endCol});return ()=>!o.value&&!l.value?null:h("div",{style:{position:"relative"}},[o.value&&!s.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,l.value?h("svg",{style:{position:"absolute",top:`${l.value.top}px`,left:`${l.value.left}px`,width:`${l.value.width}px`,height:`${l.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,l.value.width-2),height:Math.max(0,l.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 Rn=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((l,t)=>h("span",{key:l.key,style:{display:"inline-flex",alignItems:"center",gap:"4px",...t<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))"}},l.label),h("span",{style:{fontWeight:"600"}},l.value.toLocaleString())])))}}});var bn=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 l=ref(null);return watch(()=>e.isEditing,t=>{t&&l.value&&l.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:l,type:"text",style:FORMULA_BAR_STYLES.input,value:e.formulaText,readonly:!e.isEditing,onInput:t=>o("inputChange",t.target.value),onKeydown:t=>handleFormulaBarKeyDown(t.key,()=>t.preventDefault(),()=>o("commit"),()=>o("cancel")),onClick:()=>{e.isEditing||o("startEditing");},onDblclick:()=>{e.isEditing||o("startEditing");},"aria-label":"Formula input",spellcheck:false,autocomplete:"off"})])}});var Qo={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"},el={background:"none",border:"none",cursor:"pointer",padding:"4px 10px",fontSize:"16px",lineHeight:"22px",color:"var(--ogrid-fg-secondary, #666)",flexShrink:0},Zn={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"},tl={...Zn,fontWeight:600,borderBottomColor:"var(--ogrid-primary, #217346)",background:"var(--ogrid-bg, #fff)"},yn=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:Qo,role:"tablist","aria-label":"Sheet tabs"},[e.showAddButton?h("button",{type:"button",style:el,onClick:()=>o("sheetAdd"),title:"Add sheet","aria-label":"Add sheet"},"+"):null,...e.sheets.map(l=>{let t=l.id===e.activeSheet,u=t?tl:Zn,m=t&&l.color?{...u,borderBottomColor:l.color}:u;return h("button",{key:l.id,type:"button",role:"tab","aria-selected":t,style:m,onClick:()=>o("sheetChange",l.id)},l.name)})])}});function rl(e,o,l){let t=o.col+l,u=(o.endCol??o.col)+l,m=o.endRow??o.row,f=e.querySelector(`[data-row-index="${o.row}"][data-col-index="${t}"]`),s=e.querySelector(`[data-row-index="${m}"][data-col-index="${u}"]`);if(!f||!s)return null;let a=e.getBoundingClientRect(),g=f.getBoundingClientRect(),v=s.getBoundingClientRect();return {top:Math.round(g.top-a.top),left:Math.round(g.left-a.left),width:Math.round(v.right-g.left),height:Math.round(v.bottom-g.top),color:FORMULA_REF_COLORS[o.colorIndex%FORMULA_REF_COLORS.length]}}var wn=defineComponent({name:"FormulaRefOverlay",props:{containerEl:{type:Object,default:null},references:{type:Array,required:true},colOffset:{type:Number,required:true}},setup(e){let o=ref([]),l=0;function t(){let u=e.containerEl,m=e.references;if(!u||m.length===0){o.value=[];return}let f=[];for(let s of m){let a=rl(u,s,e.colOffset);a&&f.push(a);}o.value=f;}return watch(()=>[e.references,e.containerEl,e.colOffset],()=>{if(cancelAnimationFrame(l),!e.containerEl||e.references.length===0){o.value=[];return}l=requestAnimationFrame(t);},{immediate:true}),()=>o.value.length===0?null:o.value.map((u,m)=>h("svg",{key:m,style:{position:"absolute",top:`${u.top}px`,left:`${u.left}px`,width:`${u.width}px`,height:`${u.height}px`,pointerEvents:"none",zIndex:3,overflow:"visible"},"aria-hidden":"true"},[h("rect",{x:"1",y:"1",width:Math.max(0,u.width-2),height:Math.max(0,u.height-2),fill:"none",stroke:u.color,"stroke-width":"2",style:"shape-rendering: crispEdges"})]))}});function Tt(e,o){let l=ref({}),t=ref({}),u=computed(()=>[...o.value].sort().join(",")),m=async()=>{let f=e.value,s=o.value,a="fetchFilterOptions"in f&&typeof f.fetchFilterOptions=="function"?f.fetchFilterOptions.bind(f):void 0;if(!a){l.value={},t.value={};return}let g={};s.forEach(i=>{g[i]=true;}),t.value=g;let v={};await Promise.all(s.map(async i=>{try{v[i]=await a(i);}catch{v[i]=[];}})),l.value=v,t.value={};};return watch([e,u],()=>{m().catch(()=>{});},{immediate:true}),{filterOptions:l,loadingOptions:t}}function ze(e){let o=unref(e);return customRef((l,t)=>({get(){return isRef(e)&&(o=e.value),o},set(u){o=u,t();}}))}function to(e){let{formulas:o,items:l,flatColumns:t,initialFormulas:u,onFormulaRecalc:m,formulaFunctions:f,namedRanges:s,sheets:a}=e,g=ze(l),v=ze(t),i=ze(m),p=shallowRef(null),C=false,r=computed(()=>o?.value??false);function c(){return createGridDataAccessor(g.value,v.value)}watch(r,b=>{if(b&&!p.value){if(p.value=new FormulaEngine({customFunctions:f,namedRanges:s}),a)for(let[x,U]of Object.entries(a))p.value.registerSheet(x,U);if(u&&!C){C=true;let x=c(),U=p.value.loadFormulas(u,x);U.updatedCells.length>0&&i.value?.(U);}}else !b&&p.value&&(p.value=null);},{immediate:true});function d(b,x){return p.value?.getValue(b,x)}function R(b,x){return p.value?.hasFormula(b,x)??false}function w(b,x){return p.value?.getFormula(b,x)}function S(b,x,U){if(!p.value)return;let y=c(),j=p.value.setFormula(b,x,U,y);j.updatedCells.length>0&&i.value?.(j);}function D(b,x){if(!p.value)return;let U=c(),y=p.value.onCellChanged(b,x,U);y.updatedCells.length>0&&i.value?.(y);}function $(b,x){return p.value?.getPrecedents(b,x)??[]}function L(b,x){return p.value?.getDependents(b,x)??[]}function P(b,x){return p.value?.getAuditTrail(b,x)??null}return {enabled:r,getFormulaValue:d,hasFormula:R,getFormula:w,setFormula:S,onCellChanged:D,getPrecedents:$,getDependents:L,getAuditTrail:P}}function Et(e){let{activeCol:o,activeRow:l,activeCellRef:t,getFormula:u,getRawValue:m,setFormula:f,onCellValueChanged:s}=e,a=ref(false),g=ref(""),v=ref(false),i=computed(()=>deriveFormulaBarText(o.value,l.value,u,m));watch([o,l],()=>{a.value=false,v.value=false;});let p=()=>{g.value=i.value,a.value=true,v.value=true;},C=w=>{g.value=w;},r=()=>{let w=o.value,S=l.value;w==null||S==null||!f||(processFormulaBarCommit(g.value,w,S,f,s),a.value=false,v.value=false);},c=()=>{a.value=false,v.value=false,g.value="";},d=computed(()=>a.value?g.value:i.value),R=computed(()=>extractFormulaReferences(d.value));return {cellRef:t,formulaText:d,isEditing:a,onInputChange:C,onCommit:r,onCancel:c,startEditing:p,referencedCells:R,isFormulaBarEditing:v}}var no=["columns","filters"];function bt(e){let{config:o}=e,l=o!=null&&o!==false,t=(()=>{if(!l||o===true)return {panels:no,position:"right",defaultPanel:null};let g=o;return {panels:g.panels??no,position:g.position??"right",defaultPanel:g.defaultPanel??null}})(),u=ref(t.defaultPanel),m=g=>{u.value=g;},f=g=>{u.value=u.value===g?null:g;},s=()=>{u.value=null;},a=computed(()=>u.value!==null);return {isEnabled:l,activePanel:u,setActivePanel:m,panels:t.panels,position:t.position,isOpen:a,toggle:f,close:s}}var Al=25,kl={};function Ft(e){let o=computed(()=>{let n=e.value;return {columns:n.columns,columnOrder:n.columnOrder,onColumnOrderChange:n.onColumnOrderChange,onColumnResized:n.onColumnResized,onColumnPinned:n.onColumnPinned,columnChooser:n.columnChooser}}),l=computed(()=>{let n=e.value,F="data"in n?n.data:void 0,re="dataSource"in n?n.dataSource:void 0;return F&&re&&console.warn("[OGrid] Both data and dataSource provided. dataSource takes precedence."),{getRowId:n.getRowId,data:F,dataSource:re}}),t=computed(()=>{let n=e.value;return {page:n.page,pageSize:n.pageSize,sort:n.sort,filters:n.filters,visibleColumns:n.visibleColumns,isLoading:n.isLoading}}),u=computed(()=>{let n=e.value;return {onPageChange:n.onPageChange,onPageSizeChange:n.onPageSizeChange,onSortChange:n.onSortChange,onFiltersChange:n.onFiltersChange,onVisibleColumnsChange:n.onVisibleColumnsChange,onFirstDataRendered:n.onFirstDataRendered,onError:n.onError}}),m=computed(()=>{let n=e.value;return {defaultPageSize:n.defaultPageSize??Al,defaultSortBy:n.defaultSortBy,defaultSortDirection:n.defaultSortDirection??"asc",entityLabelPlural:n.entityLabelPlural??"items"}}),f=computed(()=>o.value.columnChooser===false?"none":o.value.columnChooser==="sidebar"?"sidebar":"toolbar"),s=computed(()=>flattenColumns(o.value.columns)),a=computed(()=>l.value.dataSource!=null),g=computed(()=>!a.value),v=ref([]),i=ref(false),p=computed(()=>l.value.data??v.value),C=computed(()=>t.value.isLoading??i.value),r=computed(()=>m.value.defaultSortBy??s.value[0]?.columnId??""),c=ref(1),d=ref(m.value.defaultPageSize),R=ref({field:r.value,direction:m.value.defaultSortDirection}),w=ref({}),S=ref((()=>{let n=s.value.filter(F=>F.defaultVisible!==false).map(F=>F.columnId);return new Set(n.length>0?n:s.value.map(F=>F.columnId))})()),D=ref({}),$={};for(let n of flattenColumns(e.value.columns))n.pinned&&($[n.columnId]=n.pinned);let L=ref($),P=computed(()=>t.value.page??c.value),b=computed(()=>t.value.pageSize??d.value),x=computed(()=>t.value.sort??R.value),U=computed(()=>t.value.filters??w.value),y=computed(()=>t.value.visibleColumns??S.value),j=n=>{t.value.page===void 0&&(c.value=n),u.value.onPageChange?.(n);},Q=n=>{t.value.pageSize===void 0&&(d.value=n),u.value.onPageSizeChange?.(n),j(1);},Z=n=>{t.value.sort===void 0&&(R.value=n),u.value.onSortChange?.(n),j(1);},h$1=n=>{t.value.filters===void 0&&(w.value=n),u.value.onFiltersChange?.(n),j(1);},I=n=>{t.value.visibleColumns===void 0&&(S.value=n),u.value.onVisibleColumnsChange?.(n);},E=(n,F)=>{Z(computeNextSortState(x.value,n,F));},H=(n,F)=>{h$1(mergeFilter(U.value,n,F));},T=(n,F)=>{let re=new Set(y.value);F?re.add(n):re.delete(n),I(re);},M=ref(new Set),A=computed(()=>e.value.selectedRows),O=computed(()=>A.value??M.value),V=n=>{A.value===void 0&&(M.value=new Set(n.selectedRowIds)),e.value.onSelectionChange?.(n);},z=computed(()=>getMultiSelectFilterFields(s.value)),oe=computed(()=>l.value.dataSource??{fetchFilterOptions:void 0}),{filterOptions:ne,loadingOptions:k}=Tt(oe,z),J=computed(()=>l.value.dataSource?.fetchFilterOptions!=null),ee=computed(()=>J.value?ne.value:deriveFilterOptionsFromData(p.value,s.value)),ce=computed(()=>!!e.value.workerSort),he=computed(()=>{if(!g.value||ce.value)return null;let n=processClientSideData(p.value,s.value,U.value,x.value.field,x.value.direction),F=n.length,re=(P.value-1)*b.value;return {items:n.slice(re,re+b.value),totalCount:F}}),Se=ref(null),ye=0;watch([g,ce,p,s,U,()=>x.value.field,()=>x.value.direction,P,b],()=>{if(!g.value||!ce.value)return;let n=p.value,F=s.value,re=U.value,Re=x.value.field,ot=x.value.direction,$e=P.value,qe=b.value,lt=++ye;processClientSideDataAsync(n,F,re,Re,ot).then(Ce=>{if(lt!==ye||Fe)return;let Xe=Ce.length,je=($e-1)*qe,gt=Ce.slice(je,je+qe);Se.value={items:gt,totalCount:Xe};}).catch(()=>{if(lt!==ye||Fe)return;let Ce=processClientSideData(n,F,re,Re,ot),Xe=Ce.length,je=($e-1)*qe,gt=Ce.slice(je,je+qe);Se.value={items:gt,totalCount:Xe};});},{immediate:true});let we=computed(()=>{let n=he.value;return n||Se.value}),Ze=ref([]),Oe=ref(0),De=ref(false),Be=0,Fe=false,Me=ref(0),_e=()=>{if(!a.value||!l.value.dataSource){a.value||(De.value=false);return}let n=++Be;De.value=true,l.value.dataSource.fetchPage({page:P.value,pageSize:b.value,sort:{field:x.value.field,direction:x.value.direction},filters:U.value}).then(F=>{n!==Be||Fe||(Ze.value=F.items,Oe.value=F.totalCount);}).catch(F=>{n!==Be||Fe||(u.value.onError?.(F),Ze.value=[],Oe.value=0);}).finally(()=>{n===Be&&!Fe&&(De.value=false);});};onMounted(()=>{validateColumns(s.value),_e();}),watch([()=>l.value.dataSource,P,b,()=>x.value.field,()=>x.value.direction,U,Me],()=>{_e();}),onUnmounted(()=>{Fe=true;});let me=computed(()=>g.value&&we.value?we.value.items:Ze.value),He=computed(()=>g.value&&we.value?we.value.totalCount:Oe.value),ie=computed(()=>!!e.value.formulas),Ve=ref(0),Je=n=>{Ve.value+=1,e.value.onFormulaRecalc?.(n);},se=to({formulas:ie,items:me,flatColumns:s,initialFormulas:e.value.initialFormulas,onFormulaRecalc:Je,formulaFunctions:e.value.formulaFunctions,namedRanges:e.value.namedRanges,sheets:e.value.sheets}),Qe=false,et=false;watch(me,n=>{!Qe&&n.length>0&&(Qe=true,u.value.onFirstDataRendered?.()),!et&&n.length>0&&(et=true,validateRowIds(n,l.value.getRowId));});let We=computed(()=>Object.values(U.value).some(n=>n!==void 0)),tt=computed(()=>s.value.map(n=>({columnId:n.columnId,name:n.name,required:n.required===true}))),at=computed(()=>{let n=e.value.statusBar;if(!n)return;if(typeof n=="object")return n;let F=g.value?l.value.data?.length??0:Oe.value,re=He.value;return {totalCount:F,filteredCount:We.value?re:void 0,selectedCount:O.value.size,suppressRowCount:true}}),it=(n,F)=>{D.value={...D.value,[n]:F},o.value.onColumnResized?.(n,F);},st=(n,F)=>{if(F===null){let{[n]:re,...Re}=L.value;L.value=Re;}else L.value={...L.value,[n]:F};o.value.onColumnPinned?.(n,F);},Ke=shallowRef(bt({config:e.value.sideBar}));watch(()=>e.value.sideBar,n=>{Ke.value=bt({config:n});});let Ge=computed(()=>s.value.filter(n=>n.filterable&&n.filterable.type).map(n=>({columnId:n.columnId,name:n.name,filterField:n.filterable?.filterField??n.columnId,filterType:n.filterable?.type}))),ut=computed(()=>{let n=Ke.value;if(!n.isEnabled)return null;n.activePanel.value;n.isOpen.value;return {get activePanel(){return n.activePanel.value},onPanelChange:n.setActivePanel,panels:n.panels,position:n.position,get isOpen(){return n.isOpen.value},toggle:n.toggle,close:n.close,columns:tt.value,visibleColumns:y.value,onVisibilityChange:T,onSetVisibleColumns:I,filterableColumns:Ge.value,filters:U.value,onFilterChange:H,filterOptions:ee.value}}),dt=()=>h$1({}),ct=computed(()=>a.value&&De.value||C.value),nt=ref(null),Te=ref(null),mt=n=>{if(nt.value=n,n){let F=n.match(/^([A-Z]+)(\d+)$/);F?Te.value={col:columnLetterToIndex(F[1]),row:parseInt(F[2],10)-1}:Te.value=null;}else Te.value=null;},ft=computed(()=>Te.value?.col??null),pt=computed(()=>Te.value?.row??null),vt=(n,F)=>{let re=me.value,Re=s.value;if(!(F<0||F>=re.length||n<0||n>=Re.length))return getCellValue(re[F],Re[n])},G=Et({activeCol:ft,activeRow:pt,activeCellRef:nt,getFormula:se.enabled.value?se.getFormula:void 0,getRawValue:vt,setFormula:se.enabled.value?se.setFormula:void 0}),Y=computed(()=>{let n=e.value,F=l.value.dataSource;return {items:me.value,columns:o.value.columns,getRowId:l.value.getRowId,sortBy:x.value.field,sortDirection:x.value.direction,onColumnSort:E,visibleColumns:y.value,columnOrder:o.value.columnOrder,onColumnOrderChange:o.value.onColumnOrderChange,onColumnResized:it,onColumnPinned:st,pinnedColumns:L.value,initialColumnWidths:D.value,editable:n.editable,cellSelection:n.cellSelection,onCellValueChanged:n.onCellValueChanged,onUndo:n.onUndo,onRedo:n.onRedo,canUndo:n.canUndo,canRedo:n.canRedo,rowSelection:n.rowSelection??"none",selectedRows:O.value,onSelectionChange:V,showRowNumbers:n.showRowNumbers||n.cellReferences||n.formulas,showColumnLetters:!!(n.cellReferences||n.formulas),showNameBox:!!(n.cellReferences&&!n.formulas),onActiveCellChange:n.cellReferences||n.formulas?mt:void 0,currentPage:P.value,pageSize:b.value,statusBar:at.value,isLoading:ct.value,filters:U.value,onFilterChange:H,filterOptions:ee.value,loadingFilterOptions:F?.fetchFilterOptions?k.value:kl,peopleSearch:F?.searchPeople,getUserByEmail:F?.getUserByEmail,layoutMode:n.layoutMode,suppressHorizontalScroll:n.suppressHorizontalScroll,stickyHeader:n.stickyHeader??true,columnReorder:n.columnReorder,responsiveColumns:n.responsiveColumns,virtualScroll:n.virtualScroll,rowHeight:n.rowHeight,density:n.density??"normal","aria-label":n["aria-label"],"aria-labelledby":n["aria-labelledby"],emptyState:{hasActiveFilters:We.value,onClearAll:dt,message:n.emptyState?.message,render:n.emptyState?.render},formulas:n.formulas,formulaVersion:Ve.value,...se.enabled.value?{getFormulaValue:se.getFormulaValue,hasFormula:se.hasFormula,getFormula:se.getFormula,setFormula:se.setFormula,onFormulaCellChanged:se.onCellChanged,getPrecedents:se.getPrecedents,getDependents:se.getDependents,getAuditTrail:se.getAuditTrail}:{},formulaReferences:G.referencedCells.value.length>0?G.referencedCells.value:void 0}}),le=computed(()=>({page:P.value,pageSize:b.value,displayTotalCount:He.value,setPage:j,setPageSize:Q,pageSizeOptions:e.value.pageSizeOptions,entityLabelPlural:m.value.entityLabelPlural})),de=computed(()=>({columns:tt.value,visibleColumns:y.value,onVisibilityChange:T,placement:f.value})),fe=computed(()=>{let n=e.value,F=!!n.formulas,re=!!n.cellReferences&&!F,Re=n.toolbar;re&&(Re=[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"},nt.value??"\u2014"),Re]);let ot=F?h(bn,{cellRef:G.cellRef.value,formulaText:G.formulaText.value,isEditing:G.isEditing.value,onInputChange:G.onInputChange,onCommit:G.onCommit,onCancel:G.onCancel,onStartEditing:G.startEditing}):void 0,$e=n.sheetDefs&&n.sheetDefs.length>0&&n.activeSheet&&n.onSheetChange?h(yn,{sheets:n.sheetDefs,activeSheet:n.activeSheet,showAddButton:!!n.onSheetAdd,onSheetChange:n.onSheetChange,onSheetAdd:n.onSheetAdd??(()=>{})}):void 0;return {toolbar:Re,toolbarBelow:n.toolbarBelow,className:n.className,emptyState:n.emptyState,sideBarProps:ut.value,fullScreen:n.fullScreen,formulaBar:ot,sheetTabs:$e}}),xe=computed(()=>({hasActiveFilters:We.value,setFilters:h$1})),ve=computed(()=>({setRowData:n=>{a.value||(v.value=n);},setLoading:n=>{i.value=n;},getColumnState:()=>({visibleColumns:Array.from(y.value),sort:x.value,columnOrder:o.value.columnOrder??void 0,columnWidths:Object.keys(D.value).length>0?D.value:void 0,filters:Object.keys(U.value).length>0?U.value:void 0,pinnedColumns:Object.keys(L.value).length>0?L.value:void 0}),applyColumnState:n=>{n.visibleColumns&&I(new Set(n.visibleColumns)),n.sort&&Z(n.sort),n.columnOrder&&o.value.onColumnOrderChange&&o.value.onColumnOrderChange(n.columnOrder),n.columnWidths&&(D.value=n.columnWidths),n.filters&&h$1(n.filters),n.pinnedColumns&&(L.value=n.pinnedColumns);},setFilterModel:h$1,getSelectedRows:()=>Array.from(O.value),setSelectedRows:n=>{A.value===void 0&&(M.value=new Set(n));},selectAll:()=>{let n=new Set(me.value.map(F=>l.value.getRowId(F)));A.value===void 0&&(M.value=n),e.value.onSelectionChange?.({selectedRowIds:Array.from(n),selectedItems:me.value});},deselectAll:()=>{A.value===void 0&&(M.value=new Set),e.value.onSelectionChange?.({selectedRowIds:[],selectedItems:[]});},clearFilters:()=>h$1({}),clearSort:()=>Z({field:r.value,direction:m.value.defaultSortDirection}),resetGridState:n=>{h$1({}),Z({field:r.value,direction:m.value.defaultSortDirection}),n?.keepSelection||(A.value===void 0&&(M.value=new Set),e.value.onSelectionChange?.({selectedRowIds:[],selectedItems:[]}));},getDisplayedRows:()=>me.value,refreshData:()=>{a.value&&Me.value++;},scrollToRow:()=>{},getColumnOrder:()=>o.value.columnOrder??s.value.map(n=>n.columnId),setColumnOrder:n=>{o.value.onColumnOrderChange?.(n);}}));return {dataGridProps:Y,pagination:le,columnChooser:de,layout:fe,filters:xe,api:ve}}function Ut(e){let{items:o,getRowId:l,rowSelection:t,controlledSelectedRows:u,onSelectionChange:m}=e,f=shallowRef(new Set),s=-1,a=computed(()=>{let r=u.value;return r!=null?r instanceof Set?r:new Set(r):f.value}),g=r=>{u.value!==void 0?isReadonly(u)||(u.value=r):f.value=r,m?.({selectedRowIds:Array.from(r),selectedItems:o.value.filter(c=>r.has(l(c)))});},v=(r,c,d,R)=>{if(t.value==="single"){g(c?new Set([r]):new Set),s=d;return}let w=o.value,S;R&&s>=0&&s!==d?S=applyRangeRowSelection(s,d,c,w,l,a.value):(S=new Set(a.value),c?S.add(r):S.delete(r)),s=d,g(S);},i=r=>{g(r?new Set(o.value.map(c=>l(c))):new Set);},p=computed(()=>computeRowSelectionState(a.value,o.value,l).allSelected),C=computed(()=>computeRowSelectionState(a.value,o.value,l).someSelected);return {selectedRowIds:a,updateSelection:g,handleRowCheckboxChange:v,handleSelectAll:i,allSelected:p,someSelected:C}}function Ot(e){let o=shallowRef(null),l=ref(void 0);return {editingCell:o,setEditingCell:m=>{if(m&&e?.scrollToRow&&e?.getRowIndex){let f=e.getRowIndex(m.rowId);f>=0&&e.scrollToRow(f,"center");}o.value=m;},pendingEditorValue:l,setPendingEditorValue:m=>{l.value=m;}}}function Mt(e,o){let l=shallowRef(null),t=0,u=m=>{let f=l.value;f!==m&&(f&&m&&f.rowIndex===m.rowIndex&&f.columnIndex===m.columnIndex||(l.value=m));};return watch([l,()=>o?.value],()=>{if(t&&(cancelAnimationFrame(t),t=0),l.value==null||!e?.value||o?.value!=null)return;let{rowIndex:m,columnIndex:f}=l.value;t=requestAnimationFrame(()=>{t=0;let s=e.value;if(!s)return;let a=l.value;if(!a||a.rowIndex!==m||a.columnIndex!==f)return;let g=`[data-row-index="${m}"][data-col-index="${f}"]`,v=s.querySelector(g);if(v){let i=s.querySelector("thead"),p=i?i.getBoundingClientRect().height:0,C=s.getBoundingClientRect(),r=v.getBoundingClientRect(),c=C.top+p;r.top<c?s.scrollTop-=c-r.top:r.bottom>C.bottom&&(s.scrollTop+=r.bottom-C.bottom),r.left<C.left?s.scrollLeft-=C.left-r.left:r.right>C.right&&(s.scrollLeft+=r.right-C.right),document.activeElement!==v&&typeof v.focus=="function"&&v.focus({preventScroll:true});}});},{flush:"post"}),onUnmounted(()=>{t&&(cancelAnimationFrame(t),t=0);}),{activeCell:l,setActiveCell:u}}var Fn="data-drag-range",St="data-drag-anchor",ge=40,jl=16;function At(e){let o=ze(e),{wrapperRef:l,setActiveCell:t}=e,u=()=>isRef(e.colOffset)?e.colOffset.value:e.colOffset,m=shallowRef(null),f=ref(false),s=ref(false),a=ref(false),g=false,v=null,i=0,p=null,C=null,r=null,c=h=>{rangesEqual(m.value,h)||(m.value=h);},d=(h,I,E)=>{if(h.button!==0)return;let H=u();if(E<H)return;h.preventDefault();let T=E-H,M=m.value;if(h.shiftKey&&M!=null)c(normalizeSelectionRange({startRow:M.startRow,startCol:M.startCol,endRow:I,endCol:T})),t({rowIndex:I,columnIndex:E});else {v={row:I,col:T},g=false;let A={startRow:I,startCol:T,endRow:I,endCol:T};c(A),p=A,t({rowIndex:I,columnIndex:E}),s.value=true,setTimeout(()=>L(A),0);}},R=()=>{let{rowCount:h,visibleColCount:I}=o.value;h.value===0||I.value===0||(c({startRow:0,startCol:0,endRow:h.value-1,endCol:I.value-1}),t({rowIndex:0,columnIndex:u()}));},w=new Set,S=null,D=(h,I,E,H,T,M,A,O)=>{h.hasAttribute(Fn)||h.setAttribute(Fn,""),O&&I===O.row&&E===O.col?h.hasAttribute(St)||h.setAttribute(St,""):h.hasAttribute(St)&&h.removeAttribute(St);let z=[];I===H&&z.push("inset 0 2px 0 0 var(--ogrid-selection, #217346)"),I===T&&z.push("inset 0 -2px 0 0 var(--ogrid-selection, #217346)"),E===M&&z.push("inset 2px 0 0 0 var(--ogrid-selection, #217346)"),E===A&&z.push("inset -2px 0 0 0 var(--ogrid-selection, #217346)"),h.style.boxShadow=z.length>0?z.join(", "):"",w.add(h);},$=h=>{h.removeAttribute(Fn),h.removeAttribute(St),h.style.boxShadow="";},L=h=>{if(!l.value)return;let E=Math.min(h.startRow,h.endRow),H=Math.max(h.startRow,h.endRow),T=Math.min(h.startCol,h.endCol),M=Math.max(h.startCol,h.endCol),A=v,O=u();for(let z of w){let oe=parseInt(z.getAttribute("data-row-index")??"",10),ne=parseInt(z.getAttribute("data-col-index")??"",10)-O;oe>=E&&oe<=H&&ne>=T&&ne<=M||($(z),w.delete(z));}S||(S=buildCellIndex(l.value));let V=false;for(let z=E;z<=H;z++)for(let oe=T;oe<=M;oe++){let ne=`${z},${oe+O}`,k=S?.get(ne);k&&!k.isConnected&&!V&&(V=true,S=buildCellIndex(l.value),k=S?.get(ne)),k&&k.isConnected&&D(k,z,oe,E,H,T,M,A);}},P=()=>{for(let h of w)$(h);w.clear(),S=null;},b=(h,I)=>{if(!v)return null;let H=document.elementFromPoint(h,I)?.closest?.("[data-row-index][data-col-index]");if(!H)return null;let T=parseInt(H.getAttribute("data-row-index")??"",10),M=parseInt(H.getAttribute("data-col-index")??"",10),A=u();if(Number.isNaN(T)||Number.isNaN(M)||M<A)return null;let O=M-A;return normalizeSelectionRange({startRow:v.row,startCol:v.col,endRow:T,endCol:O})},x=()=>{C&&(clearInterval(C),C=null);},U=()=>{let h=l.value;if(!h||!r||!s.value){x();return}let I=h.getBoundingClientRect(),E=0,H=0;if(r.cy<I.top+ge?H=-computeAutoScrollSpeed(I.top+ge-r.cy):r.cy>I.bottom-ge&&(H=computeAutoScrollSpeed(r.cy-(I.bottom-ge))),r.cx<I.left+ge?E=-computeAutoScrollSpeed(I.left+ge-r.cx):r.cx>I.right-ge&&(E=computeAutoScrollSpeed(r.cx-(I.right-ge))),E===0&&H===0){x();return}C||(C=setInterval(()=>{let T=l.value,M=r;if(!T||!M||!s.value){x();return}let A=T.getBoundingClientRect(),O=0,V=0;if(M.cy<A.top+ge?V=-computeAutoScrollSpeed(A.top+ge-M.cy):M.cy>A.bottom-ge&&(V=computeAutoScrollSpeed(M.cy-(A.bottom-ge))),M.cx<A.left+ge?O=-computeAutoScrollSpeed(A.left+ge-M.cx):M.cx>A.right-ge&&(O=computeAutoScrollSpeed(M.cx-(A.right-ge))),O===0&&V===0){x();return}T.scrollTop+=V,T.scrollLeft+=O;let z=b(M.cx,M.cy);z&&(p=z,L(z));},jl));},y=h=>{!s.value||!v||(g||(g=true,f.value=true,S=buildCellIndex(l.value)),r={cx:h.clientX,cy:h.clientY},U(),i&&cancelAnimationFrame(i),i=requestAnimationFrame(()=>{if(i=0,!r)return;let I=b(r.cx,r.cy);if(!I)return;let E=p;E&&E.startRow===I.startRow&&E.startCol===I.startCol&&E.endRow===I.endRow&&E.endCol===I.endCol||(p=I,L(I));}));},j=()=>{if(!s.value)return;x(),i&&(cancelAnimationFrame(i),i=0),s.value=false;let h=g;if(h){if(r){let E=b(r.cx,r.cy);E&&(p=E);}let I=p;if(I){c(I);let E=v;E&&t({rowIndex:E.row,columnIndex:E.col+u()});}}P(),p=null,r=null,v=null,h&&(f.value=false);},Q=h=>{a.value||y(h);},Z=()=>{a.value||j();};return onMounted(()=>{window.addEventListener("pointermove",Q,true),window.addEventListener("pointerup",Z,true);}),onUnmounted(()=>{a.value=true,window.removeEventListener("pointermove",Q,true),window.removeEventListener("pointerup",Z,true),i&&cancelAnimationFrame(i),x();}),{selectionRange:m,setSelectionRange:c,handleCellMouseDown:d,handleSelectAllCells:R,isDragging:f}}function kt(){let e=shallowRef(null);return {contextMenuPosition:e,setContextMenuPosition:u=>{e.value=u;},handleCellContextMenu:u=>{u.preventDefault?.(),e.value={x:u.clientX,y:u.clientY};},closeContextMenu:()=>{e.value=null;}}}function Lt(e){let{items:o,visibleCols:l,selectionRange:t,activeCell:u,editable:m,onCellValueChanged:f,beginBatch:s,endBatch:a}=e,g=()=>isRef(e.colOffset)?e.colOffset.value:e.colOffset,v=shallowRef(null),i=shallowRef(null),p=ref(null),C=()=>{let w=t.value,S=u.value,D=g();return w??(S!=null?{startRow:S.rowIndex,startCol:S.columnIndex-D,endRow:S.rowIndex,endCol:S.columnIndex-D}:null)},r=()=>{let w=C();if(w==null)return;let S=normalizeSelectionRange(w),D=formatSelectionAsTsv(o.value,l.value,S);p.value=D,i.value=S,navigator.clipboard.writeText(D).catch($=>{typeof console<"u"&&console.warn("[OGrid] Clipboard write failed:",$);});};return {handleCopy:r,handleCut:()=>{if(m.value===false)return;let w=C();if(w==null||f.value==null)return;let S=normalizeSelectionRange(w);v.value=S,i.value=null,r(),i.value=null;},handlePaste:async()=>{if(m.value===false)return;let w=f.value;if(w==null)return;let S;try{S=await navigator.clipboard.readText();}catch{S="";}if(!S.trim()&&p.value!=null&&(S=p.value),!S.trim())return;let D=C(),$=D?D.startRow:0,L=D?D.startCol:0,P=o.value,b=l.value,x=parseTsvClipboard(S);s?.();let U=applyPastedValues(x,$,L,P,b);for(let y of U)w(y);if(v.value){let y=applyCutClear(v.value,P,b);for(let j of y)w(j);v.value=null;}a?.(),i.value=null;},cutRange:v,copyRange:i,clearClipboardRanges:()=>{i.value=null,v.value=null;}}}function Bt(e){let o=ze(e);return {handleGridKeyDown:t=>{let{data:u,state:m,handlers:f,features:s}=o.value,a=u.items.value,g=u.visibleCols.value,{getRowId:v}=u,i=isRef(u.colOffset)?u.colOffset.value:u.colOffset,p=u.hasCheckboxCol.value,C=u.visibleColumnCount.value,r=m.activeCell.value,c=m.selectionRange.value,d=m.editingCell.value,R=m.selectedRowIds.value,{setActiveCell:w,setSelectionRange:S,setEditingCell:D,handleRowCheckboxChange:$,handleCopy:L,handleCut:P,handlePaste:b,setContextMenu:x,onUndo:U,onRedo:y,clearClipboardRanges:j}=f,Q=s.editable.value,Z=s.onCellValueChanged.value,h=s.rowSelection.value,I=s.wrapperRef,E=s.scrollToRow,{fillDown:H}=s,T=s.onKeyDown?.value;if(T&&(T(t),t.defaultPrevented))return;let M=a.length-1,A=C-1+i;if(a.length===0)return;if(r===null){["ArrowDown","ArrowUp","ArrowLeft","ArrowRight","Tab","Enter","Home","End","PageDown","PageUp"].includes(t.key)&&(w({rowIndex:0,columnIndex:i}),t.preventDefault());return}let{rowIndex:O,columnIndex:V}=r,z=V-i,oe=t.shiftKey,ne=(k,J)=>{if(k<0||k>=a.length||J<0||J>=g.length)return true;let ee=getCellValue(a[k],g[J]);return ee==null||ee===""};switch(t.key){case "c":if(t.ctrlKey||t.metaKey){if(d!=null)break;t.preventDefault(),L();}break;case "x":if(t.ctrlKey||t.metaKey){if(d!=null)break;t.preventDefault(),P();}break;case "v":if(t.ctrlKey||t.metaKey){if(d!=null)break;t.preventDefault(),b();}break;case "d":if(t.ctrlKey||t.metaKey){if(d!=null)break;Q!==false&&H&&(t.preventDefault(),H());}break;case "ArrowDown":case "ArrowUp":case "ArrowRight":case "ArrowLeft":{if(d!=null)break;t.preventDefault();let{newRowIndex:k,newColumnIndex:J,newRange:ee}=computeArrowNavigation({direction:t.key,rowIndex:O,columnIndex:V,dataColIndex:z,colOffset:i,maxRowIndex:M,maxColIndex:A,visibleColCount:g.length,isCtrl:t.ctrlKey||t.metaKey,isShift:oe,selectionRange:c,isEmptyAt:ne});S(ee),w({rowIndex:k,columnIndex:J}),(t.key==="ArrowDown"||t.key==="ArrowUp")&&E?.(k,"center");break}case "Tab":{t.preventDefault();let{rowIndex:k,columnIndex:J}=computeTabNavigation(O,V,M,A,i,t.shiftKey),ee=J-i;S({startRow:k,startCol:ee,endRow:k,endCol:ee}),w({rowIndex:k,columnIndex:J});break}case "Home":{t.preventDefault();let k=t.ctrlKey?0:O;S({startRow:k,startCol:0,endRow:k,endCol:0}),w({rowIndex:k,columnIndex:i});break}case "End":{t.preventDefault();let k=t.ctrlKey?M:O;S({startRow:k,startCol:C-1,endRow:k,endCol:C-1}),w({rowIndex:k,columnIndex:A});break}case "PageDown":case "PageUp":{t.preventDefault();let k=I.value,J=10;if(k){let he=k.querySelector("tbody tr");he&&he.offsetHeight>0&&(J=Math.max(1,Math.floor(k.clientHeight/he.offsetHeight)));}let ee=t.key==="PageDown"?1:-1,ce=Math.max(0,Math.min(O+ee*J,M));S(oe?{startRow:c?.startRow??O,startCol:c?.startCol??z,endRow:ce,endCol:c?.endCol??z}:{startRow:ce,startCol:z,endRow:ce,endCol:z}),w({rowIndex:ce,columnIndex:V}),E?.(ce,"center");break}case "Enter":case "F2":{if(t.preventDefault(),z>=0&&z<g.length){let k=g[z],J=a[O];if(J&&k){let ee=k.editable===true||typeof k.editable=="function"&&k.editable(J);Q!==false&&ee&&Z!=null&&D({rowId:v(J),columnId:k.columnId});}}break}case "Escape":t.preventDefault(),d!=null?D(null):(j?.(),w(null),S(null));break;case " ":if(h!=="none"&&V===0&&p){t.preventDefault();let k=a[O];if(k){let J=v(k),ee=R.has(J);$(J,!ee,O,t.shiftKey);}}break;case "z":(t.ctrlKey||t.metaKey)&&d==null&&(t.shiftKey&&y?(t.preventDefault(),y()):!t.shiftKey&&U&&(t.preventDefault(),U()));break;case "y":(t.ctrlKey||t.metaKey)&&d==null&&y&&(t.preventDefault(),y());break;case "a":if(t.ctrlKey||t.metaKey){if(d!=null)break;t.preventDefault(),a.length>0&&C>0&&(S({startRow:0,startCol:0,endRow:a.length-1,endCol:C-1}),w({rowIndex:0,columnIndex:i}));}break;case "Delete":case "Backspace":{if(d!=null||Q===false||Z==null)break;let k=c??(r!=null?{startRow:r.rowIndex,startCol:r.columnIndex-i,endRow:r.rowIndex,endCol:r.columnIndex-i}:null);if(k==null)break;t.preventDefault();let J=applyCellDeletion(k,a,g);for(let ee of J)Z(ee);break}case "F10":if(t.shiftKey)if(t.preventDefault(),r!=null&&I.value){let k=`[data-row-index="${r.rowIndex}"][data-col-index="${r.columnIndex}"]`,J=I.value.querySelector(k);if(J){let ee=J.getBoundingClientRect();x({x:ee.left+ee.width/2,y:ee.top+ee.height/2});}else x({x:100,y:100});}else x({x:100,y:100});break;}}}}var Ht="data-drag-range";function Vt(e){let{items:o,visibleCols:l,editable:t,onCellValueChanged:u,selectionRange:m,setSelectionRange:f,setActiveCell:s,wrapperRef:a,beginBatch:g,endBatch:v,visibleRange:i}=e,p=()=>isRef(e.colOffset)?e.colOffset.value:e.colOffset,C=shallowRef(null),r={endRow:0,endCol:0},c=0,d=null,R=null,w=null,S=P=>{C.value=P;},D=()=>{R&&(window.removeEventListener("pointermove",R,true),R=null),w&&(window.removeEventListener("pointerup",w,true),w=null),c&&(cancelAnimationFrame(c),c=0);};return watch(C,(P,b,x)=>{if(!P||t.value===false||!u.value||!a.value){D();return}r={endRow:P.startRow,endCol:P.startCol},d=null;let U=new Set,y=buildCellIndex(a.value),j=I=>{if(!a.value)return;let H=Math.min(I.startRow,I.endRow),T=Math.max(I.startRow,I.endRow),M=Math.min(I.startCol,I.endCol),A=Math.max(I.startCol,I.endCol),O=p();for(let V of U){let z=parseInt(V.getAttribute("data-row-index")??"",10),oe=parseInt(V.getAttribute("data-col-index")??"",10)-O;z>=H&&z<=T&&oe>=M&&oe<=A||(V.removeAttribute(Ht),U.delete(V));}for(let V=H;V<=T;V++)for(let z=M;z<=A;z++){let oe=`${V},${z+O}`,ne=y?.get(oe);ne&&!ne.isConnected&&(y=buildCellIndex(a.value),ne=y.get(oe)),ne&&(ne.hasAttribute(Ht)||ne.setAttribute(Ht,""),U.add(ne));}},Q=()=>{for(let I of U)I.removeAttribute(Ht);U.clear();},Z=null,h=(I,E)=>{let T=document.elementFromPoint(I,E)?.closest?.("[data-row-index][data-col-index]");if(!T||!a.value?.contains(T))return null;let M=parseInt(T.getAttribute("data-row-index")??"",10),A=parseInt(T.getAttribute("data-col-index")??"",10),O=p();if(Number.isNaN(M)||Number.isNaN(A)||A<O)return null;let V=A-O;return normalizeSelectionRange({startRow:P.startRow,startCol:P.startCol,endRow:M,endCol:V})};R=I=>{Z={cx:I.clientX,cy:I.clientY},c&&cancelAnimationFrame(c),c=requestAnimationFrame(()=>{if(c=0,!Z)return;let E=h(Z.cx,Z.cy);if(!E)return;let H=d;H&&H.startRow===E.startRow&&H.startCol===E.startCol&&H.endRow===E.endRow&&H.endCol===E.endCol||(d=E,r={endRow:E.endRow,endCol:E.endCol},j(E));});},w=()=>{if(c&&(cancelAnimationFrame(c),c=0),Z){let O=h(Z.cx,Z.cy);O&&(d=O,r={endRow:O.endRow,endCol:O.endCol});}Q();let I=r,E=normalizeSelectionRange({startRow:P.startRow,startCol:P.startCol,endRow:I.endRow,endCol:I.endCol}),H=i?.value;H&&(E.startRow=Math.max(E.startRow,H.startIndex),E.endRow=Math.min(E.endRow,H.endIndex)),f(E),s({rowIndex:P.startRow,columnIndex:P.startCol+p()});let T=o.value,M=l.value,A=u.value;if(A){let O=applyFillValues(E,P.startRow,P.startCol,T,M);if(O.length>0){g?.();for(let V of O)A(V);v?.();}}C.value=null,d=null,D();},window.addEventListener("pointermove",R,true),window.addEventListener("pointerup",w,true),x(()=>{D();});}),onUnmounted(()=>D()),{fillDrag:C,setFillDrag:S,handleFillHandleMouseDown:P=>{P.preventDefault(),P.stopPropagation();let b=m.value;b&&(C.value={startRow:b.startRow,startCol:b.startCol});},fillDown:()=>{let P=m.value;if(!P||t.value===false||!u.value)return;let b=normalizeSelectionRange(P),x=o.value,U=l.value,y=u.value,j=applyFillValues(b,b.startRow,b.startCol,x,U);if(j.length>0){g?.();for(let Q of j)y(Q);v?.();}}}}function Gt(e){let{onCellValueChanged:o,maxUndoDepth:l=100}=e,t=new UndoRedoStack(l),u=ref(false),m=ref(false),f=()=>{u.value=t.canUndo,m.value=t.canRedo;};return {onCellValueChanged:o?p=>{t.record(p),t.isBatching||f(),o(p);}:void 0,undo:()=>{if(!o)return;let p=t.undo();if(p){f();for(let C=p.length-1;C>=0;C--){let r=p[C];o({...r,oldValue:r.newValue,newValue:r.oldValue});}}},redo:()=>{if(!o)return;let p=t.redo();if(p){f();for(let C of p)o(C);}},canUndo:u,canRedo:m,beginBatch:()=>{t.beginBatch();},endBatch:()=>{t.endBatch(),f();},maxUndoDepth:l}}function zt(e){let{wrapperRef:o,visibleCols:l,flatColumns:t,hasCheckboxCol:u,initialColumnWidths:m,onColumnResized:f}=e,s=ref(0),a,g=()=>{let r=o.value;if(!r)return;let c=r.getBoundingClientRect(),d=window.getComputedStyle(r),R=(parseFloat(d.borderLeftWidth||"0")||0)+(parseFloat(d.borderRightWidth||"0")||0);s.value=Math.max(0,c.width-R);};onMounted(()=>{let r=o.value;r&&(typeof ResizeObserver<"u"&&(a=new ResizeObserver(g),a.observe(r)),g());}),onUnmounted(()=>{a?.disconnect();});let v=ref((()=>{if(!m)return {};let r={};for(let[c,d]of Object.entries(m))r[c]={widthPx:d};return r})()),i=r=>{v.value=r;},p=computed(()=>{let r=u.value?CHECKBOX_COLUMN_WIDTH:0;return l.value.reduce((c,d)=>c+(d.minWidth??DEFAULT_MIN_COLUMN_WIDTH)+CELL_PADDING,r)});watch(t,r=>{let c=new Set(r.map(S=>S.columnId)),d=v.value,R=Object.keys(d),w=R.filter(S=>c.has(S));if(w.length<R.length){let S={};for(let D of w)S[D]=d[D];v.value=S;}});let C=computed(()=>{let r=u.value?CHECKBOX_COLUMN_WIDTH:0;return l.value.reduce((c,d)=>{let R=v.value[d.columnId],w=R?R.widthPx:d.idealWidth??d.defaultWidth??d.minWidth??DEFAULT_MIN_COLUMN_WIDTH;return c+Math.max(d.minWidth??DEFAULT_MIN_COLUMN_WIDTH,w)+CELL_PADDING},r)});return {containerWidth:s,minTableWidth:p,desiredTableWidth:C,columnSizingOverrides:v,setColumnSizingOverrides:i,onColumnResized:f}}function Nt(e){let{columns:o,pinnedColumns:l,onColumnPinned:t}=e,u={};for(let p of o.value)p.pinned&&(u[p.columnId]=p.pinned);let m=ref(u),f=computed(()=>l?.value??m.value);return {pinnedColumns:f,pinColumn:(p,C)=>{let r={...f.value,[p]:C};m.value=r,t?.(p,C);},unpinColumn:p=>{let{[p]:C,...r}=f.value;m.value=r,t?.(p,null);},isPinned:p=>f.value[p],computeLeftOffsets:(p,C,r,c,d)=>{let R={},w=c?d:0;for(let S of p)f.value[S.columnId]==="left"&&(R[S.columnId]=w,w+=C[S.columnId]??r);return R},computeRightOffsets:(p,C,r)=>{let c={},d=0;for(let R=p.length-1;R>=0;R--){let w=p[R];f.value[w.columnId]==="right"&&(c[w.columnId]=d,d+=C[w.columnId]??r);}return c}}}function Wt(e){let{columns:o,pinnedColumns:l,onPinColumn:t,onUnpinColumn:u,onSort:m,onColumnResized:f,onAutosizeColumn:s,sortBy:a,sortDirection:g}=e,v=ref(false),i=ref(null),p=ref(null),C=(h,I)=>{i.value=h,p.value=I,v.value=true;},r=()=>{v.value=false,i.value=null,p.value=null;},c=computed(()=>i.value?o.value.find(h=>h.columnId===i.value):void 0),d=computed(()=>i.value?l.value[i.value]:void 0),R=computed(()=>d.value!=="left"),w=computed(()=>d.value!=="right"),S=computed(()=>!!d.value),D=computed(()=>!i.value||!a?.value||a.value!==i.value?null:g?.value??null),$=computed(()=>c.value?.sortable!==false),L=ref(true);return {isOpen:v,openForColumn:i,anchorElement:p,open:C,close:r,handlePinLeft:()=>{i.value&&R.value&&(t(i.value,"left"),r());},handlePinRight:()=>{i.value&&w.value&&(t(i.value,"right"),r());},handleUnpin:()=>{i.value&&S.value&&(u(i.value),r());},handleSortAsc:()=>{i.value&&m&&(m(i.value,"asc"),r());},handleSortDesc:()=>{i.value&&m&&(m(i.value,"desc"),r());},handleClearSort:()=>{i.value&&m&&(m(i.value,null),r());},handleAutosizeThis:()=>{let h=s??f;if(!i.value||!h||!L.value)return;let I=c.value;h(i.value,measureColumnContentWidth(i.value,I?.minWidth)),r();},handleAutosizeAll:()=>{let h=s??f;h&&(o.value.forEach(I=>{h(I.columnId,measureColumnContentWidth(I.columnId,I.minWidth));}),r());},canPinLeft:R,canPinRight:w,canUnpin:S,currentSort:D,isSortable:$,isResizable:L}}var ke=()=>{},Er=async()=>{},Dr=(e,o,l)=>{},Fr=e=>{},Ur=e=>{};function Kt(e){let{props:o,wrapperRef:l}=e,t=computed(()=>o.value.items),u=o.value.getRowId,m=computed(()=>o.value.rowSelection??"none"),f=computed(()=>o.value.selectedRows),s=computed(()=>o.value.editable),a=computed(()=>o.value.cellSelection!==false),g=computed(()=>o.value.pinnedColumns),v=Gt({onCellValueChanged:o.value.onCellValueChanged}),i=computed(()=>v.onCellValueChanged),p=computed(()=>flattenColumns(o.value.columns)),C=computed(()=>{let G=g.value;return !G||Object.keys(G).length===0?p.value:p.value.map(Y=>{let le=G[Y.columnId];return le&&Y.pinned!==le?{...Y,pinned:le}:Y})}),r=computed(()=>resolveResponsiveConfig(o.value.responsiveColumns)),c=computed(()=>{let G=o.value.visibleColumns,Y=o.value.columnOrder,le=G?C.value.filter(fe=>G.has(fe.columnId)):C.value;if(!Y?.length)return le;let de=new Map;for(let fe=0;fe<Y.length;fe++)de.set(Y[fe],fe);return [...le].sort((fe,xe)=>{let ve=de.get(fe.columnId)??-1,n=de.get(xe.columnId)??-1;return ve===-1&&n===-1?0:ve===-1?1:n===-1?-1:ve-n})}),d=ref(0),R=computed(()=>applyResponsiveHiding(c.value,d.value,r.value)),w=computed(()=>R.value.length),S=computed(()=>m.value==="multiple"),D=computed(()=>!!o.value.showRowNumbers),$=computed(()=>(S.value?1:0)+(D.value?1:0)),L=computed(()=>w.value+$.value),P=$,b=shallowRef(new Map);watch(t,G=>{let Y=b.value;Y.clear(),G.forEach((le,de)=>Y.set(u(le),de)),triggerRef(b);},{immediate:true});let x=Ut({items:t,getRowId:u,rowSelection:m,controlledSelectedRows:f,onSelectionChange:o.value.onSelectionChange}),{editingCell:U,setEditingCell:y,pendingEditorValue:j,setPendingEditorValue:Q}=Ot(),{activeCell:Z,setActiveCell:h}=Mt(l,U),I=computed(()=>t.value.length),E=computed(()=>R.value.length),{selectionRange:H,setSelectionRange:T,handleCellMouseDown:M,handleSelectAllCells:A,isDragging:O}=At({colOffset:P,rowCount:I,visibleColCount:E,setActiveCell:h,wrapperRef:l}),{contextMenuPosition:V,setContextMenuPosition:z,handleCellContextMenu:oe,closeContextMenu:ne}=kt(),{handleCopy:k,handleCut:J,handlePaste:ee,cutRange:ce,copyRange:he,clearClipboardRanges:Se}=Lt({items:t,visibleCols:R,colOffset:P,selectionRange:H,activeCell:Z,editable:s,onCellValueChanged:i,beginBatch:v.beginBatch,endBatch:v.endBatch}),ye=(G,Y,le)=>{G.button===0&&(l.value?.focus({preventScroll:true}),Se(),M(G,Y,le));},{handleFillHandleMouseDown:we,fillDown:Ze}=Vt({items:t,visibleCols:R,editable:s,onCellValueChanged:i,selectionRange:H,setSelectionRange:T,setActiveCell:h,colOffset:P,wrapperRef:l,beginBatch:v.beginBatch,endBatch:v.endBatch}),{handleGridKeyDown:Oe}=Bt({data:{items:t,visibleCols:R,colOffset:P,hasCheckboxCol:S,visibleColumnCount:w,getRowId:u},state:{activeCell:Z,selectionRange:H,editingCell:U,selectedRowIds:x.selectedRowIds},handlers:{setActiveCell:h,setSelectionRange:T,setEditingCell:y,handleRowCheckboxChange:x.handleRowCheckboxChange,handleCopy:k,handleCut:J,handlePaste:ee,setContextMenu:z,onUndo:v.undo,onRedo:v.redo,clearClipboardRanges:Se},features:{editable:s,onCellValueChanged:i,rowSelection:m,wrapperRef:l,fillDown:Ze,onKeyDown:computed(()=>o.value.onKeyDown)}}),{containerWidth:De,minTableWidth:Be,desiredTableWidth:Fe,columnSizingOverrides:Me,setColumnSizingOverrides:_e}=zt({wrapperRef:l,visibleCols:c,flatColumns:C,hasCheckboxCol:S,initialColumnWidths:o.value.initialColumnWidths,onColumnResized:(G,Y)=>o.value.onColumnResized?.(G,Y)});watch(De,G=>{d.value=G;},{immediate:true});let me=Nt({columns:C,pinnedColumns:g,onColumnPinned:o.value.onColumnPinned}),He=(G,Y)=>{_e({...Me.value,[G]:{widthPx:Y}}),o.value.onColumnResized?.(G,Y);},ie=Wt({columns:C,pinnedColumns:me.pinnedColumns,onPinColumn:me.pinColumn,onUnpinColumn:me.unpinColumn,onSort:o.value.onColumnSort,onColumnResized:o.value.onColumnResized,onAutosizeColumn:He,sortBy:computed(()=>o.value.sortBy),sortDirection:computed(()=>o.value.sortDirection)}),Ve=ref({});watch([R,De,Me],()=>{nextTick(()=>{let G=l.value;if(!G)return;let Y=G.querySelectorAll("th[data-column-id]");if(Y.length===0)return;let le={};Y.forEach(ve=>{let n=ve.getAttribute("data-column-id");n&&(le[n]=ve.offsetWidth);});let de=Ve.value,fe=Object.keys(le),xe=fe.length!==Object.keys(de).length;if(!xe){for(let ve of fe)if(de[ve]!==le[ve]){xe=true;break}}xe&&(Ve.value=le);});},{flush:"post"});let Je=computed(()=>{let G={};for(let Y of R.value){let le=Me.value[Y.columnId];G[Y.columnId]=le?le.widthPx:Y.idealWidth??Y.defaultWidth??Y.minWidth??DEFAULT_MIN_COLUMN_WIDTH;}return G}),se=computed(()=>me.computeLeftOffsets(R.value,Je.value,DEFAULT_MIN_COLUMN_WIDTH,S.value,CHECKBOX_COLUMN_WIDTH)),Qe=computed(()=>me.computeRightOffsets(R.value,Je.value,DEFAULT_MIN_COLUMN_WIDTH)),et=computed(()=>computeAggregations(t.value,R.value,a.value?H.value:null)),We=computed(()=>{let G=getDataGridStatusBarConfig(o.value.statusBar,t.value.length,x.selectedRowIds.value.size);return G?{...G,aggregation:et.value??void 0}:null}),tt=computed(()=>t.value.length===0&&!!o.value.emptyState&&!o.value.isLoading),at=computed(()=>H.value!=null||Z.value!=null),it=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})),st=computed(()=>({editingCell:U.value,activeCell:a.value?Z.value:null,selectionRange:a.value?H.value:null,cutRange:a.value?ce.value:null,copyRange:a.value?he.value:null,colOffset:P.value,itemsLength:t.value.length,getRowId:u,editable:s.value,onCellValueChanged:i.value,isDragging:a.value?O.value:false,getFormulaValue:o.value.getFormulaValue,hasFormula:o.value.hasFormula,getFormula:o.value.getFormula,formulaVersion:o.value.formulaVersion})),Ke=ref(null),Ge=G=>{Ke.value=G;},ut=(G,Y,le,de,fe,xe)=>{let ve=R.value.find(n=>n.columnId===Y);if(ve){let n=parseValue(de,le,G,ve);if(!n.valid){y(null),Ge(null),Q(void 0);return}de=n.value;}if(i.value?.({item:G,columnId:Y,oldValue:le,newValue:de,rowIndex:fe}),y(null),Ge(null),Q(void 0),fe<t.value.length-1){let n=fe+1,F=xe-P.value;h({rowIndex:n,columnIndex:xe}),T({startRow:n,startCol:F,endRow:n,endCol:F});}},dt=()=>{y(null),Ge(null),Q(void 0);},ct=computed(()=>({flatColumns:C.value,visibleCols:R.value,visibleColumnCount:w.value,totalColCount:L.value,colOffset:P.value,hasCheckboxCol:S.value,hasRowNumbersCol:D.value,rowIndexByRowId:b.value,containerWidth:De.value,minTableWidth:Be.value,desiredTableWidth:Fe.value,columnSizingOverrides:Me.value,setColumnSizingOverrides:_e,onColumnResized:o.value.onColumnResized,measuredColumnWidths:Ve.value,stickyHeader:o.value.stickyHeader??true})),nt=computed(()=>({selectedRowIds:x.selectedRowIds.value,updateSelection:x.updateSelection,handleRowCheckboxChange:x.handleRowCheckboxChange,handleSelectAll:x.handleSelectAll,allSelected:x.allSelected.value,someSelected:x.someSelected.value})),Te=computed(()=>({editingCell:U.value,setEditingCell:y,pendingEditorValue:j.value,setPendingEditorValue:Q,commitCellEdit:ut,cancelPopoverEdit:dt,popoverAnchorEl:Ke.value,setPopoverAnchorEl:Ge})),mt=computed(()=>({activeCell:a.value?Z.value:null,setActiveCell:a.value?h:ke,selectionRange:a.value?H.value:null,setSelectionRange:a.value?T:ke,handleCellMouseDown:a.value?ye:Dr,handleSelectAllCells:a.value?A:ke,hasCellSelection:a.value?at.value:false,handleGridKeyDown:a.value?Oe:Fr,handleFillHandleMouseDown:a.value?we:ke,handleCopy:a.value?k:ke,handleCut:a.value?J:ke,handlePaste:a.value?ee:Er,cutRange:a.value?ce.value:null,copyRange:a.value?he.value:null,clearClipboardRanges:a.value?Se:ke,canUndo:v.canUndo.value,canRedo:v.canRedo.value,onUndo:v.undo,onRedo:v.redo,isDragging:a.value?O.value:false})),ft=computed(()=>({menuPosition:a.value?V.value:null,setMenuPosition:a.value?z:ke,handleCellContextMenu:a.value?oe:Ur,closeContextMenu:a.value?ne:ke})),pt=computed(()=>({headerFilterInput:it.value,cellDescriptorInput:st.value,statusBarConfig:We.value,showEmptyInGrid:tt.value,onCellError:o.value.onCellError})),vt=computed(()=>({pinnedColumns:me.pinnedColumns.value,pinColumn:me.pinColumn,unpinColumn:me.unpinColumn,isPinned:me.isPinned,leftOffsets:se.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:ct,rowSelection:nt,editing:Te,interaction:mt,contextMenu:ft,viewModels:pt,pinning:vt}}function $t(e){let{columnSizingOverrides:o,setColumnSizingOverrides:l,minWidth:t=80,defaultWidth:u=120,onColumnResized:m}=e,f=0,s=null;return onUnmounted(()=>{s?.(),s=null;}),{handleResizeStart:(i,p)=>{i.preventDefault(),i.stopPropagation();let C=i.clientX,r=p.columnId,c=i.currentTarget.parentElement,d=c?c.getBoundingClientRect().width:o.value[r]?.widthPx??p.idealWidth??p.defaultWidth??u,R=d,w=document.body.style.cursor,S=document.body.style.userSelect;document.body.style.cursor="col-resize",document.body.style.userSelect="none";let D=()=>{l({...o.value,[r]:{widthPx:R}});},$=r===ROW_NUMBER_COLUMN_ID?ROW_NUMBER_COLUMN_MIN_WIDTH:t,L=x=>{let U=x.clientX-C;R=Math.max($,d+U),f||(f=requestAnimationFrame(()=>{f=0,D();}));},P=()=>{document.removeEventListener("pointermove",L),document.removeEventListener("pointerup",b),s=null,document.body.style.cursor=w,document.body.style.userSelect=S,f&&(cancelAnimationFrame(f),f=0);},b=()=>{P(),D(),m?.(r,R);};document.addEventListener("pointermove",L),document.addEventListener("pointerup",b),s=P;},handleResizeDoubleClick:(i,p)=>{i.preventDefault(),i.stopPropagation();let C=p.columnId,c=(i.currentTarget.closest("th")??i.currentTarget.parentElement)?.closest("table")?.parentElement??void 0,d=measureColumnContentWidth(C,t,c);l({...o.value,[C]:{widthPx:d}}),m?.(C,d);},getColumnWidth:i=>o.value[i.columnId]?.widthPx??i.idealWidth??i.defaultWidth??u}}function qt(e,o){let l=ref(e.value),t;return watch(e,u=>{t!==void 0&&clearTimeout(t),t=setTimeout(()=>{l.value=u;},o);}),onUnmounted(()=>{t!==void 0&&clearTimeout(t);}),l}function Ro(e,o){let l,t=e,u,m=((...f)=>{t=e,u=f,l!==void 0&&clearTimeout(l),l=setTimeout(()=>{t(...f),u=void 0,l=void 0;},o);});return m.cancel=()=>{l!==void 0&&clearTimeout(l),l=void 0,u=void 0;},m.flush=()=>{if(l!==void 0&&u!==void 0){clearTimeout(l),l=void 0;let f=u;u=void 0,t(...f);}},onUnmounted(()=>{l!==void 0&&clearTimeout(l);}),m}function Xt(e){let{textValue:o="",onTextChange:l}=e,t=ref(o);return watch(e.isFilterOpen,s=>{s&&(t.value=e.textValue??"");}),{tempTextValue:t,setTempTextValue:s=>{t.value=s;},handleTextApply:()=>{l?.(t.value.trim());},handleTextClear:()=>{t.value="";}}}var Nr=150,Ln=[];function jt(e){let{onFilterChange:o}=e,l=ref(new Set(e.selectedValues??Ln)),t=ref(""),u=qt(t,Nr);watch(e.isFilterOpen,p=>{p&&(l.value=new Set(e.selectedValues??Ln),t.value="");});let m=computed(()=>{let p=e.options??Ln;if(!u.value.trim())return p;let C=u.value.toLowerCase().trim();return p.filter(r=>r.toLowerCase().includes(C))});return {tempSelected:l,setTempSelected:p=>{l.value=p;},searchText:t,setSearchText:p=>{t.value=p;},debouncedSearchText:u,filteredOptions:m,handleCheckboxChange:(p,C)=>{let r=new Set(l.value);C?r.add(p):r.delete(p),l.value=r;},handleSelectAll:()=>{l.value=new Set(m.value);},handleClearSelection:()=>{l.value=new Set;},handleApplyMultiSelect:()=>{o?.(Array.from(l.value));}}}var Wr=300;function Zt(e){let{onUserChange:o,filterType:l}=e,t=ref(null),u,m=ref([]),f=ref(false),s=ref(""),a=i=>{s.value=i;};return watch(e.isFilterOpen,i=>{i&&(s.value="",m.value=[],l==="people"&&setTimeout(()=>t.value?.focus(),50));}),watch([s,()=>e.peopleSearch,e.isFilterOpen],([i,p,C])=>{if(u&&clearTimeout(u),!(!p||!C||l!=="people")){if(!i.trim()){m.value=[];return}f.value=true,u=setTimeout(async()=>{try{let r=await p(i);m.value=r.slice(0,10);}catch{m.value=[];}finally{f.value=false;}},Wr);}}),onUnmounted(()=>{u&&clearTimeout(u);}),{peopleSuggestions:m,isPeopleLoading:f,peopleSearchText:s,setPeopleSearchText:a,peopleInputRef:t,handleUserSelect:i=>{o?.(i);},handleClearUser:()=>{o?.(void 0);}}}function Jt(e){let{onDateChange:o}=e,l=ref(e.dateValue?.from??""),t=ref(e.dateValue?.to??"");return watch(e.isFilterOpen,a=>{a&&(l.value=e.dateValue?.from??"",t.value=e.dateValue?.to??"");}),{tempDateFrom:l,setTempDateFrom:a=>{l.value=a;},tempDateTo:t,setTempDateTo:a=>{t.value=a;},handleDateApply:()=>{let a=l.value||void 0,g=t.value||void 0;o?.(a||g?{from:a,to:g}:void 0);},handleDateClear:()=>{l.value="",t.value="";}}}var Xr=[];function xo(e){let{filterType:o,onSort:l}=e,t=()=>e.selectedValues??Xr,u=ref(null),m=ref(null),f=ref(false),s=ref(null),a=h=>{f.value=h;},g=Xt({textValue:e.textValue,onTextChange:e.onTextChange,isFilterOpen:f}),v=jt({selectedValues:e.selectedValues,onFilterChange:e.onFilterChange,options:e.options,isFilterOpen:f}),i=Zt({selectedUser:e.selectedUser,onUserChange:e.onUserChange,peopleSearch:e.peopleSearch,isFilterOpen:f,filterType:o}),p=Jt({dateValue:e.dateValue,onDateChange:e.onDateChange,isFilterOpen:f});watch(f,h=>{h||(s.value=null);});let C=null,r=null,c,d=()=>{R(),C=h=>{let I=h.target;m.value&&!m.value.contains(I)&&u.value&&!u.value.contains(I)&&(f.value=false);},r=h=>{(h.key==="Escape"||h.key==="Esc")&&(h.preventDefault(),h.stopPropagation(),f.value=false);},c=setTimeout(()=>{C&&document.addEventListener("mousedown",C);},0),document.addEventListener("keydown",r,true);},R=()=>{c&&clearTimeout(c),C&&document.removeEventListener("mousedown",C),r&&document.removeEventListener("keydown",r,true),C=null,r=null;};watch(f,h=>{h?d():R();}),onUnmounted(()=>R());let w=h=>{if(h.stopPropagation(),h.preventDefault(),!f.value&&u.value){let I=u.value.getBoundingClientRect();s.value={top:I.bottom+4,left:I.left};}f.value=!f.value;},S=h=>{h.stopPropagation(),l?.();},D=()=>{v.handleApplyMultiSelect(),f.value=false;},$=()=>{g.handleTextApply(),f.value=false;},L=h=>{i.handleUserSelect(h),f.value=false;},P=()=>{i.handleClearUser(),f.value=false;},b=()=>{p.handleDateApply(),f.value=false;},x=h=>h.stopPropagation(),U=h=>h.stopPropagation(),y=h=>h.stopPropagation(),j=h=>h.stopPropagation(),Q=h=>{h.key!=="Escape"&&h.key!=="Esc"&&h.stopPropagation();},Z=computed(()=>o==="multiSelect"?t().length>0:o==="text"?!!(e.textValue??"").trim():o==="people"?!!e.selectedUser:o==="date"?!!(e.dateValue?.from||e.dateValue?.to):false);return {headerRef:u,popoverRef:m,peopleInputRef:i.peopleInputRef,isFilterOpen:f,setFilterOpen:a,tempSelected:v.tempSelected,setTempSelected:v.setTempSelected,tempTextValue:g.tempTextValue,setTempTextValue:g.setTempTextValue,searchText:v.searchText,setSearchText:v.setSearchText,debouncedSearchText:v.debouncedSearchText,filteredOptions:v.filteredOptions,peopleSuggestions:i.peopleSuggestions,isPeopleLoading:i.isPeopleLoading,peopleSearchText:i.peopleSearchText,setPeopleSearchText:i.setPeopleSearchText,tempDateFrom:p.tempDateFrom,setTempDateFrom:p.setTempDateFrom,tempDateTo:p.tempDateTo,setTempDateTo:p.setTempDateTo,hasActiveFilter:Z,popoverPosition:s,handlers:{handleFilterIconClick:w,handleApplyMultiSelect:D,handleTextApply:$,handleTextClear:g.handleTextClear,handleUserSelect:L,handleClearUser:P,handleCheckboxChange:v.handleCheckboxChange,handleSelectAll:v.handleSelectAll,handleClearSelection:v.handleClearSelection,handlePopoverClick:x,handleInputFocus:U,handleInputMouseDown:y,handleInputClick:j,handleInputKeyDown:Q,handleDateApply:b,handleDateClear:p.handleDateClear,handleSortClick:S}}}function Po(e){let{columns:o,visibleColumns:l,onVisibilityChange:t}=e,u=ref(false),m=null,f=()=>{s(),m=d=>{d.key==="Escape"&&(d.preventDefault(),u.value=false);},document.addEventListener("keydown",m,true);},s=()=>{m&&(document.removeEventListener("keydown",m,true),m=null);};watch(u,d=>{d?f():s();}),onUnmounted(()=>s());let a=d=>{u.value=d;},g=()=>{u.value=!u.value;},v=()=>{u.value=false;},i=d=>R=>{t(d,R);},p=()=>{o.value.forEach(d=>{l.value.has(d.columnId)||t(d.columnId,true);});},C=()=>{o.value.forEach(d=>{!d.required&&l.value.has(d.columnId)&&t(d.columnId,false);});},r=computed(()=>l.value.size),c=computed(()=>o.value.length);return {open:u,setOpen:a,handleToggle:g,handleClose:v,handleCheckboxChange:i,handleSelectAll:p,handleClearAll:C,visibleCount:r,totalCount:c}}function To(e){let{value:o,editorType:l,onCommit:t,onCancel:u}=e,m=ref((()=>{if(o==null)return "";if(l==="date"){let i=String(o);return i.match(/^\d{4}-\d{2}-\d{2}/)?i.substring(0,10):i}return String(o)})()),f=i=>{m.value=i;},s=i=>{t(i);},a=()=>{u();};return {localValue:m,setLocalValue:f,handleKeyDown:i=>{i.key==="Escape"&&(i.preventDefault(),i.stopPropagation(),a()),i.key==="Enter"&&(l==="text"||l==="date")&&(i.preventDefault(),i.stopPropagation(),s(m.value));},handleBlur:()=>{(l==="text"||l==="date")&&s(m.value);},commit:s,cancel:a}}function Do(e){let{values:o,formatValue:l,initialValue:t,onCommit:u,onCancel:m}=e,f=ref(""),s=o.findIndex(r=>String(r)===String(t)),a=ref(Math.max(s,0)),g=r=>{f.value=r;},v=r=>l?l(r):r!=null?String(r):"",i=computed(()=>{if(!f.value.trim())return o;let r=f.value.toLowerCase();return o.filter(c=>v(c).toLowerCase().includes(r))}),p=r=>{u(r);};return {searchText:f,setSearchText:g,filteredValues:i,highlightedIndex:a,handleKeyDown:r=>{switch(r.key){case "ArrowDown":r.preventDefault(),a.value=Math.min(a.value+1,i.value.length-1);break;case "ArrowUp":r.preventDefault(),a.value=Math.max(a.value-1,0);break;case "Enter":r.preventDefault(),r.stopPropagation(),i.value.length>0&&a.value<i.value.length&&p(i.value[a.value]);break;case "Escape":r.preventDefault(),r.stopPropagation(),m();break}},selectValue:p,getDisplayText:v}}var la=8,ra=5;function en(e){let{columnOrder:o,onColumnOrderChange:l,tableRef:t,pinnedColumns:u}=e,m=ref(false),f=ref(null),s=null,a="unpinned",g=0,v=null;return onUnmounted(()=>{v?.(),v=null;}),{isDragging:m,dropIndicatorX:f,handleHeaderMouseDown:(p,C)=>{if(C.button!==0)return;let r=C.target.closest("th");if(r){let x=r.getBoundingClientRect();if(C.clientX>x.right-la)return}if(C.preventDefault(),!t.value||!l.value)return;s=p,a=getPinStateForColumn(p,u?.value),f.value=null;let d=C.clientX,R=false,w=C.clientX,S=-1,D=document.body.style.cursor,$=document.body.style.userSelect;document.body.style.cursor="grabbing",document.body.style.userSelect="none";let L=x=>{!R&&Math.abs(x.clientX-d)<ra||(R||(R=true,m.value=true),w=x.clientX,g||(g=requestAnimationFrame(()=>{g=0;let U=t.value;if(!U||!s)return;let y=calculateDropTarget({mouseX:w,columnOrder:o.value,draggedColumnId:s,draggedPinState:a,tableElement:U,pinnedColumns:u?.value});y?(S=y.targetIndex,f.value=y.indicatorX):f.value=null;})));},P=()=>{window.removeEventListener("pointermove",L,true),window.removeEventListener("pointerup",b,true),v=null,document.body.style.cursor=D,document.body.style.userSelect=$,g&&(cancelAnimationFrame(g),g=0);},b=()=>{if(P(),R&&s&&S>=0&&l.value){let x=reorderColumnArray(o.value,s,S);l.value(x);}s=null,m.value=false,f.value=null,S=-1;};window.addEventListener("pointermove",L,true),window.addEventListener("pointerup",b,true),v=P;}}}var pa=100;function nn(e){let{totalRows:o,rowHeight:l,enabled:t,overscan:u=5,threshold:m=pa,columnsEnabled:f,columnWidths:s,columnOverscan:a=2}=e;onMounted(()=>{validateVirtualScrollConfig({enabled:t.value,rowHeight:l});});let g=ref(null),v=ref(0),i=ref(0),p=ref(0),C=ref(0),r=0,c,d=null,R=computed(()=>t.value&&o.value>=m),w=computed(()=>R.value?computeVisibleRange(v.value,l,p.value,o.value,u):{startIndex:0,endIndex:Math.max(0,o.value-1),offsetTop:0,offsetBottom:0}),S=computed(()=>t.value?computeTotalHeight(o.value,l):0),D=computed(()=>{if(!f?.value)return null;let b=s?.value;return !b||b.length===0?null:computeVisibleColumnRange(i.value,b,C.value,a)}),$=()=>{r||(r=requestAnimationFrame(()=>{r=0;let b=g.value;b&&(v.value=b.scrollTop,i.value=b.scrollLeft);}));},L=()=>{let b=g.value;b&&(p.value=b.clientHeight,C.value=b.clientWidth);};return watch(g,b=>{b!==d&&(d&&d.removeEventListener("scroll",$),c&&(c.disconnect(),c=void 0),d=b,b&&(b.addEventListener("scroll",$,{passive:true}),typeof ResizeObserver<"u"&&(c=new ResizeObserver(L),c.observe(b)),L(),v.value=b.scrollTop,i.value=b.scrollLeft));}),onUnmounted(()=>{let b=g.value;b&&b.removeEventListener("scroll",$),c?.disconnect(),r&&(cancelAnimationFrame(r),r=0);}),{containerRef:g,visibleRange:w,totalHeight:S,scrollToRow:(b,x="start")=>{let U=g.value;U&&(U.scrollTop=getScrollTopForRow(b,l,p.value,x));},columnRange:D,scrollLeft:i}}function ln(e){let{props:o}=e,l=ref(null),t=ref(null),u=ref(null),m=ref(false),f=Kt({props:o,wrapperRef:l}),s=computed(()=>{let L=o.value;return L.columnOrder?L.columnOrder:flattenColumns(L.columns).filter(P=>L.visibleColumns?.has(P.columnId)??true).map(P=>P.columnId)}),a=computed(()=>o.value.onColumnOrderChange),g=en({columnOrder:s,onColumnOrderChange:a,tableRef:u}),v=computed(()=>o.value.virtualScroll?.enabled??false),i=computed(()=>o.value.items.length),p=o.value.virtualScroll?.rowHeight??36,C=o.value.virtualScroll?.overscan??5,r=computed(()=>o.value.virtualScroll?.columns===true),c=o.value.virtualScroll?.columnOverscan??2,d=computed(()=>{let L=f.layout.value,{visibleCols:P,columnSizingOverrides:b}=L,x=o.value.pinnedColumns??{},U=[];for(let y of P){if(x[y.columnId]||y.pinned)continue;let j=b[y.columnId];U.push(j?j.widthPx:y.defaultWidth??y.minWidth??DEFAULT_MIN_COLUMN_WIDTH);}return U}),R=nn({totalRows:i,rowHeight:p,enabled:v,overscan:C,columnsEnabled:r,columnWidths:d,columnOverscan:c}),w=computed(()=>{if(!r.value)return null;let P=f.layout.value.visibleCols,b=R.columnRange.value,x=o.value.pinnedColumns;return partitionColumnsForVirtualization(P,b,x)}),S=computed(()=>{let P=f.layout.value.visibleCols,b=new Map;for(let x=0;x<P.length;x++)b.set(P[x].columnId,x);return b}),D=computed(()=>f.layout.value.columnSizingOverrides),$=$t({columnSizingOverrides:D,setColumnSizingOverrides:L=>f.layout.value.setColumnSizingOverrides(L)});return {wrapperRef:l,tableContainerRef:t,tableRef:u,lastMouseShift:m,state:f,columnReorder:g,virtualScroll:R,virtualScrollEnabled:v,columnResize:$,columnPartition:w,globalColIndexMap:S}}function rn(e,o,l){let t={"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:u=>{l.setEditingCell(null),l.handleCellMouseDown(u,e.rowIndex,e.globalColIndex);},onClick:()=>l.setActiveCell({rowIndex:e.rowIndex,columnIndex:e.globalColIndex}),onContextmenu:u=>l.handleCellContextMenu(u)};return e.canEditAny&&(t.role="button",t.onDblclick=()=>l.setEditingCell({rowId:e.rowId,columnId:o})),t}var Uo=()=>{};function Ia(e){return defineComponent({name:"DataGridTable",props:{gridProps:{type:Object,required:true}},setup(o){let l=computed(()=>o.gridProps),{wrapperRef:t,tableContainerRef:u,tableRef:m,lastMouseShift:f,state:s,columnReorder:{isDragging:a,dropIndicatorX:g,handleHeaderMouseDown:v},virtualScroll:{containerRef:i,visibleRange:p,totalHeight:C,scrollToRow:r},virtualScrollEnabled:c,columnResize:{handleResizeStart:d,handleResizeDoubleClick:R,getColumnWidth:w},columnPartition:S,globalColIndexMap:D}=ln({props:l}),$=computed(()=>{let y=l.value;return y.showRowNumbers||y.showColumnLetters?((y.currentPage??1)-1)*(y.pageSize??25):0});watch([()=>s.interaction.value.activeCell,$],([y,j])=>{let Q=l.value.onActiveCellChange;Q&&Q(y?formatCellReference(y.columnIndex-s.layout.value.colOffset,j+y.rowIndex+1):null);},{immediate:true});let L=y=>{f.value=y.shiftKey;},P=y=>y.preventDefault(),b=y=>y.stopPropagation(),x=computed(()=>buildHeaderRows(l.value.columns,l.value.visibleColumns)),U=computed(()=>{let y=s.layout.value,j=s.pinning.value,{visibleCols:Q,columnSizingOverrides:Z,measuredColumnWidths:h}=y,{leftOffsets:I,rightOffsets:E}=j,H={},T={},M={},A={};for(let O=0;O<Q.length;O++){let V=Q[O],z=V.pinned==="left",oe=V.pinned==="right",ne=w(V),k=!!Z[V.columnId],J=h[V.columnId],ee=V.minWidth??DEFAULT_MIN_COLUMN_WIDTH,ce=k?ne:Math.max(ee,J??0),he={minWidth:`${ce}px`,width:`${ne}px`,maxWidth:`${ne}px`},Se={minWidth:`${ce}px`,width:`${ne}px`,maxWidth:`${ne}px`},ye=["ogrid-data-cell"],we=["ogrid-header-cell"];z?(ye.push("ogrid-data-cell--pinned-left"),he.left=`${I[V.columnId]??0}px`,we.push("ogrid-header-cell--pinned-left"),Se.left=`${I[V.columnId]??0}px`):oe&&(ye.push("ogrid-data-cell--pinned-right"),he.right=`${E[V.columnId]??0}px`,we.push("ogrid-header-cell--pinned-right"),Se.right=`${E[V.columnId]??0}px`),H[V.columnId]=he,T[V.columnId]=ye.join(" "),M[V.columnId]=Se,A[V.columnId]=we.join(" ");}return {cellStyles:H,cellClasses:T,hdrStyles:M,hdrClasses:A}});return ()=>{let y=o.gridProps,j=s.layout.value,Q=s.rowSelection.value,Z=s.editing.value,h$1=s.interaction.value,I=s.contextMenu.value,E=s.viewModels.value,H=s.pinning.value,{headerMenu:T}=H,{visibleCols:M,hasCheckboxCol:A,hasRowNumbersCol:O,colOffset:V,containerWidth:z,minTableWidth:oe,desiredTableWidth:ne}=j,k=y.currentPage??1,J=y.pageSize??25,ee=O?(k-1)*J:0,{selectedRowIds:ce,handleRowCheckboxChange:he,handleSelectAll:Se,allSelected:ye,someSelected:we}=Q,{editingCell:Ze,setEditingCell:Oe,pendingEditorValue:De,setPendingEditorValue:Be,commitCellEdit:Fe,cancelPopoverEdit:Me,popoverAnchorEl:_e,setPopoverAnchorEl:me}=Z,{setActiveCell:He,setSelectionRange:ie,handleCellMouseDown:Ve,handleSelectAllCells:Je,selectionRange:se,hasCellSelection:Qe,handleGridKeyDown:et,handleFillHandleMouseDown:We,handleCopy:tt,handleCut:at,handlePaste:it,cutRange:st,copyRange:Ke,canUndo:Ge,canRedo:ut,onUndo:dt,onRedo:ct,isDragging:nt}=h$1,{menuPosition:Te,handleCellContextMenu:mt,closeContextMenu:ft}=I,{headerFilterInput:pt,cellDescriptorInput:vt,statusBarConfig:G,showEmptyInGrid:Y,onCellError:le}=E,de=y.items,fe=y.getRowId,xe=y.layoutMode??"fill",ve=y.rowSelection??"none",n=y.suppressHorizontalScroll,F=y.stickyHeader??true,re=y.isLoading??false,Re=y.loadingMessage??"Loading\u2026",ot=y["aria-label"],$e=y["aria-labelledby"],qe=xe==="content",lt=!n&&z>0&&(oe>z||ne>z),Ce=x.value,Xe={commitCellEdit:Fe,setEditingCell:Oe,setPendingEditorValue:Be,cancelPopoverEdit:Me},je={handleCellMouseDown:Ve,setActiveCell:He,setEditingCell:Oe,handleCellContextMenu:mt},gt=q=>{if(ve!=="single")return;let ae=q.currentTarget.dataset.rowId;ae&&Q.updateSelection(ce.has(ae)?new Set:new Set([ae]));},Ao=(q,W,ae,Ie)=>{try{return ko(q,W,ae,Ie)}catch(N){return le&&le(N instanceof Error?N:new Error(String(N)),void 0),""}},ko=(q,W,ae,Ie)=>{let N=getCellRenderDescriptor(q,W,ae,Ie,vt);if(N.mode==="editing-inline"){let ue=buildInlineEditorProps(q,W,N,Xe);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(N.mode==="editing-popover"&&typeof W.cellEditor=="function"){let ue=buildPopoverEditorProps(q,W,N,De,Xe),te=W.cellEditor;return h("div",[h("div",{ref:_n=>{_n&&me(_n);},class:"ogrid-popover-anchor","aria-hidden":"true"}),_e?h(te,ue):null])}let Pe=rn(N,W.columnId,je),be=["ogrid-cell-content"];W.type==="numeric"?be.push("ogrid-cell-content--numeric"):W.type==="boolean"&&be.push("ogrid-cell-content--boolean"),N.canEditAny&&be.push("ogrid-cell-content--editable"),N.isActive&&be.push("ogrid-cell-content--active"),N.isActive&&N.isInRange&&be.push("ogrid-cell-content--active-in-range"),N.isInRange&&!N.isActive&&be.push("ogrid-cell-in-range"),N.isInCutRange&&be.push("ogrid-cell-cut");let Ae;if(N.columnType==="boolean"){let ue=!!N.displayValue;Ae=h("input",{type:"checkbox",checked:ue,disabled:!N.canEditAny,onChange:N.canEditAny?()=>{Xe.commitCellEdit(q,W.columnId,ue,!ue,N.rowIndex,N.globalColIndex);}:void 0,onClick:te=>te.stopPropagation(),style:`margin:0;cursor:${N.canEditAny?"pointer":"default"};outline:none`,"aria-label":ue?"Checked":"Unchecked"});}else {let ue=resolveCellDisplayContent(W,q,N.displayValue),te=resolveCellStyle(W,q,N.displayValue);Ae=te?h("span",{style:te},ue):ue;}return h("div",{...Pe,class:be.join(" ")},[Ae,...N.canEditAny&&N.isSelectionEndCell?[h("div",{onPointerdown:We,"aria-label":"Fill handle",class:"ogrid-fill-handle"})]:[]])},{cellStyles:Lo,cellClasses:Bo,hdrStyles:Ho,hdrClasses:Vo}=U.value,Vn=M.map(q=>({col:q,tdClasses:Bo[q.columnId]||"ogrid-data-cell",tdDynamicStyle:Lo[q.columnId]||{}})),rt=S.value,Gn=Vn,Ct=0,ht=0;if(rt){let q=new Set;for(let W of rt.pinnedLeft)q.add(W.columnId);for(let W of rt.virtualizedUnpinned)q.add(W.columnId);for(let W of rt.pinnedRight)q.add(W.columnId);Gn=Vn.filter(W=>q.has(W.col.columnId)),Ct=rt.leftSpacerWidth,ht=rt.rightSpacerWidth;}let Go=D.value,zn=q=>{let W=Ho[q.columnId]||{};return {classes:Vo[q.columnId]||"ogrid-header-cell",style:{...W,cursor:a.value?"grabbing":"grab"}}},Nn={position:"relative",flex:"1",minHeight:re&&de.length===0?"200px":"0",width:qe?"fit-content":"100%",maxWidth:"100%",overflowX:n?"hidden":lt?"auto":"hidden",overflowY:"auto",backgroundColor:"#fff",willChange:"scroll-position"};return y.rowHeight&&(Nn["--ogrid-row-height"]=`${y.rowHeight}px`),h("div",{class:"ogrid-outer-container"},[h("div",{ref:q=>{t.value=q,i.value=q;},tabindex:0,role:"region","aria-label":ot??($e?void 0:"Data grid"),"aria-labelledby":$e,onPointerdown:L,onKeydown:et,onContextmenu:P,"data-overflow-x":lt?"true":"false","data-ogrid-scroll-container":"",style:Nn},[h("div",{class:"ogrid-scroll-wrapper"},[h("div",{style:{minWidth:lt?`${oe}px`:void 0,overflowX:"clip"}},[h("div",{ref:q=>{u.value=q;},class:["ogrid-table-container",re&&de.length>0?"ogrid-table-container--loading":""]},[...a.value&&g.value!==null?[h("div",{class:"ogrid-drop-indicator",style:{left:`${g.value}px`}})]:[],h("table",{ref:q=>{m.value=q;},class:"ogrid-table",role:"grid",style:{minWidth:`${oe}px`},...c.value?{"data-virtual-scroll":""}:{}},[h("thead",{class:F?"ogrid-thead ogrid-sticky-header":"ogrid-thead"},[...y.showColumnLetters?[h("tr",{class:"ogrid-column-letter-row"},[...A?[h("th",{class:"ogrid-column-letter-cell"})]:[],...O?[h("th",{class:"ogrid-column-letter-cell"})]:[],...M.map((q,W)=>{let{classes:ae,style:Ie}=zn(q);return h("th",{key:q.columnId,class:`ogrid-column-letter-cell ${ae}`,style:Ie},indexToColumnLetter(W))})])]:[],...Ce.map((q,W)=>h("tr",{key:W,class:"ogrid-header-row"},[...W===Ce.length-1&&A?[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:ye,indeterminate:we&&!ye,ariaLabel:"Select all rows",onChange:ae=>Se(!!ae)}))]:[],...W===0&&W<Ce.length-1&&A?[h("th",{rowSpan:Ce.length-1,class:"ogrid-checkbox-spacer",style:{width:`${CHECKBOX_COLUMN_WIDTH}px`,minWidth:`${CHECKBOX_COLUMN_WIDTH}px`}})]:[],...W===Ce.length-1&&O?[(()=>{let ae=j.columnSizingOverrides[ROW_NUMBER_COLUMN_ID]?.widthPx??ROW_NUMBER_COLUMN_WIDTH;return h("th",{class:"ogrid-row-number-header",style:{width:`${ae}px`,minWidth:`${ae}px`,maxWidth:`${ae}px`,position:"sticky",left:A?`${CHECKBOX_COLUMN_WIDTH}px`:"0",zIndex:3}},["#",h("div",{onPointerdown:Ie=>{He(null),ie(null),t.value?.focus({preventScroll:true}),Ie.stopPropagation(),d(Ie,{columnId:ROW_NUMBER_COLUMN_ID,name:"#"});},class:"ogrid-resize-handle"})])})()]:[],...W===0&&W<Ce.length-1&&O?[(()=>{let ae=j.columnSizingOverrides[ROW_NUMBER_COLUMN_ID]?.widthPx??ROW_NUMBER_COLUMN_WIDTH;return h("th",{rowSpan:Ce.length-1,class:"ogrid-row-number-spacer",style:{width:`${ae}px`,position:"sticky",left:A?`${CHECKBOX_COLUMN_WIDTH}px`:"0",zIndex:3}})})()]:[],...q.map((ae,Ie)=>{if(ae.isGroup)return h("th",{key:Ie,colSpan:ae.colSpan,scope:"colgroup",class:"ogrid-column-group-header"},ae.label);if(!ae.columnDef)return null;let N=ae.columnDef,{classes:Pe,style:be}=zn(N),ue=y.sortBy===N.columnId?y.sortDirection==="asc"?"ascending":"descending":void 0;return h("th",{key:N.columnId,scope:"col","data-column-id":N.columnId,rowSpan:Ce.length>1?Ce.length-W:void 0,class:Pe,style:be,"aria-sort":ue,onPointerdown:te=>v(N.columnId,te)},[h("div",{class:"ogrid-header-content"},[h(e.ColumnHeaderFilter,getHeaderFilterConfig(N,pt)),h("button",{onClick:te=>{te.stopPropagation(),T.isOpen&&T.openForColumn===N.columnId?T.close():T.open(N.columnId,te.currentTarget);},"aria-label":"Column options",title:"Column options",class:"ogrid-column-menu-btn"},"\u22EE")]),h("div",{onPointerdown:te=>{He(null),ie(null),t.value?.focus({preventScroll:true}),te.stopPropagation(),d(te,N);},onDblclick:te=>R(te,N),class:"ogrid-resize-handle"})])})]))]),...Y?[]:[h("tbody",{},(()=>{let q=c.value,W=p.value,ae=q?W.startIndex:0,Ie=q?Math.min(W.endIndex,de.length-1):de.length-1,N=[];q&&W.offsetTop>0&&N.push(h("tr",{key:"__vs-top",style:{height:`${W.offsetTop}px`}}));for(let Pe=ae;Pe<=Ie;Pe++){let be=de[Pe];if(!be)continue;let Ae=fe(be),ue=ce.has(Ae);N.push(h("tr",{key:Ae,"data-row-id":Ae,"aria-selected":ue||void 0,onClick:gt,style:{cursor:ve==="single"?"pointer":void 0}},[...A?[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":Pe,"data-col-index":0,onClick:b,class:"ogrid-checkbox-wrapper"},e.renderCheckbox({modelValue:ue,ariaLabel:`Select row ${Pe+1}`,onChange:te=>he(Ae,te,Pe,f.value)})))]:[],...O?[(()=>{let te=j.columnSizingOverrides[ROW_NUMBER_COLUMN_ID]?.widthPx??ROW_NUMBER_COLUMN_WIDTH;return h("td",{class:"ogrid-row-number-cell",style:{width:`${te}px`,minWidth:`${te}px`,maxWidth:`${te}px`,padding:"6px",position:"sticky",left:A?`${CHECKBOX_COLUMN_WIDTH}px`:"0",zIndex:2}},String(ee+Pe+1))})()]:[],...Ct>0?[h("td",{key:"__col-spacer-left",style:{width:`${Ct}px`,minWidth:`${Ct}px`,maxWidth:`${Ct}px`,padding:"0"}})]:[],...Gn.map(te=>h("td",{key:te.col.columnId,"data-column-id":te.col.columnId,class:te.tdClasses,style:te.tdDynamicStyle},[Ao(be,te.col,Pe,Go.get(te.col.columnId)??0)])),...ht>0?[h("td",{key:"__col-spacer-right",style:{width:`${ht}px`,minWidth:`${ht}px`,maxWidth:`${ht}px`,padding:"0"}})]:[]]));}return q&&W.offsetBottom>0&&N.push(h("tr",{key:"__vs-bottom",style:{height:`${W.offsetBottom}px`}})),N})())]]),...Y&&y.emptyState?[e.renderEmptyState(y.emptyState)]:[]])])])]),...Te?[h(Teleport,{to:"body"},h(e.GridContextMenu,{x:Te.x,y:Te.y,hasSelection:Qe,canUndo:Ge,canRedo:ut,onUndo:dt??Uo,onRedo:ct??Uo,onCopy:tt,onCut:at,onPaste:()=>{it();},onSelectAll:Je,onClose:ft}))]:[],h(hn,{containerRef:u,selectionRange:se,copyRange:Ke,cutRange:st,colOffset:V,items:de,visibleColumns:y.visibleColumns instanceof Set?Array.from(y.visibleColumns):y.visibleColumns,columnSizingOverrides:j.columnSizingOverrides,columnOrder:y.columnOrder}),...y.formulaReferences&&y.formulaReferences.length>0?[h(wn,{containerEl:u.value,references:y.formulaReferences,colOffset:V})]:[],h(e.ColumnHeaderMenu,{isOpen:T.isOpen,anchorElement:T.anchorElement,onClose:T.close,onPinLeft:T.handlePinLeft,onPinRight:T.handlePinRight,onUnpin:T.handleUnpin,onSortAsc:T.handleSortAsc,onSortDesc:T.handleSortDesc,onClearSort:T.handleClearSort,onAutosizeThis:T.handleAutosizeThis,onAutosizeAll:T.handleAutosizeAll,canPinLeft:T.canPinLeft,canPinRight:T.canPinRight,canUnpin:T.canUnpin,currentSort:T.currentSort,isSortable:T.isSortable,isResizable:T.isResizable}),...G?[h(Rn,{totalCount:G.totalCount,filteredCount:G.filteredCount,selectedCount:G.selectedCount??ce.size,selectedCellCount:se?(Math.abs(se.endRow-se.startRow)+1)*(Math.abs(se.endCol-se.startCol)+1):void 0,aggregation:G.aggregation,suppressRowCount:G.suppressRowCount})]:[],...re?[h("div",{class:"ogrid-loading-overlay"},e.renderSpinner(Re))]:[]])}}})}var vn={width:"100%",height:"100%",display:"flex",alignItems:"center",padding:"0 2px",boxSizing:"border-box"};function Fa(e){let{renderCheckbox:o,renderDatePicker:l}=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 u=ref(null),m=ref(null),f=ref(null),s=ref(t.value),a=ref(0),g=()=>{let c=m.value,d=f.value;if(!c||!d)return;let R=c.getBoundingClientRect(),w=200,S=window.innerHeight-R.bottom,D=S<w&&R.top>S;d.style.position="fixed",d.style.left=`${R.left}px`,d.style.width=`${R.width}px`,d.style.maxHeight=`${w}px`,d.style.zIndex="9999",d.style.right="auto",d.style.textAlign="left",D?(d.style.top="auto",d.style.bottom=`${window.innerHeight-R.top}px`):d.style.top=`${R.bottom}px`;},v=null;onMounted(()=>{nextTick(()=>{if(m.value){m.value.focus({preventScroll:true}),g();let c=m.value,d=c.closest("[data-ogrid-scroll-container]")??c.closest('[style*="overflow"]'),R=()=>{t.onCancel&&t.onCancel();},w=requestAnimationFrame(()=>{d&&d.addEventListener("scroll",R,{passive:true}),window.addEventListener("scroll",R,{passive:true});});v=()=>{cancelAnimationFrame(w),d&&d.removeEventListener("scroll",R),window.removeEventListener("scroll",R);};return}u.value?.focus({preventScroll:true}),u.value?.select();});}),onUnmounted(()=>{v?.();}),watch(()=>t.value,c=>{s.value=c;}),(()=>{let d=(t.column.cellEditorParams?.values??[]).findIndex(R=>String(R)===String(t.value));a.value=Math.max(d,0);})();let p=()=>{nextTick(()=>{let c=f.value;if(!c)return;c.children[a.value]?.scrollIntoView({block:"nearest"});});},C=c=>{let d=t.column.cellEditorParams?.formatValue;return d?d(c):c!=null?String(c):""},r=c=>{let d=t.column.cellEditorParams?.values??[];switch(c.key){case "ArrowDown":c.preventDefault(),a.value=Math.min(a.value+1,d.length-1),p();break;case "ArrowUp":c.preventDefault(),a.value=Math.max(a.value-1,0),p();break;case "Enter":c.preventDefault(),c.stopPropagation(),d.length>0&&a.value<d.length&&t.onCommit(d[a.value]);break;case "Tab":c.preventDefault(),d.length>0&&a.value<d.length&&t.onCommit(d[a.value]);break;case "Escape":c.preventDefault(),c.stopPropagation(),t.onCancel();break}};return ()=>{if(t.editorType==="checkbox"){let c=!!t.value;return h("div",{style:{...vn,justifyContent:"center"}},o({checked:c,onChange:d=>t.onCommit(d),onCancel:t.onCancel}))}if(t.editorType==="select"){let c=t.column.cellEditorParams?.values??[];return h("div",{ref:d=>{m.value=d;},tabindex:0,style:{...vn,position:"relative"},onKeydown:r},[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:d=>{f.value=d;},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"}},c.map((d,R)=>h("div",{key:String(d),role:"option","aria-selected":R===a.value,onClick:()=>t.onCommit(d),style:{padding:"6px 8px",cursor:"pointer",color:"var(--ogrid-fg, #242424)",...R===a.value?{background:"var(--ogrid-bg-hover, #e8f0fe)"}:{}}},C(d))))])}if(t.editorType==="date"){let c="";if(s.value){let d=new Date(String(s.value));Number.isNaN(d.getTime())||(c=d.toISOString().slice(0,10));}return h("div",{style:vn},l({value:c,onChange:d=>t.onCommit(d),onCancel:t.onCancel}))}return h("div",{style:vn},h("input",{ref:c=>{u.value=c;},type:"text",value:s.value!=null?String(s.value):"",style:{width:"100%",height:"100%",border:"none",outline:"none",padding:"0 4px",fontSize:"inherit",boxSizing:"border-box"},onInput:c=>{s.value=c.target.value;},onKeydown:c=>{c.key==="Enter"&&(c.preventDefault(),t.onCommit(s.value)),c.key==="Escape"&&(c.preventDefault(),t.onCancel()),c.key==="Tab"&&(c.preventDefault(),t.onCommit(s.value));},onBlur:()=>t.onCommit(s.value)}))}}})}var La=240,Hn=36,gn={columns:"Columns",filters:"Filters"},Ba={columns:"\u2261",filters:"\u2A65"};function Mo(e){let o=e.activePanel!==null,l=e.position??"right",t={display:"flex",flexDirection:"column",width:`${Hn}px`,background:"var(--ogrid-header-bg, #f5f5f5)",...l==="right"?{borderLeft:"1px solid var(--ogrid-border, #e0e0e0)"}:{borderRight:"1px solid var(--ogrid-border, #e0e0e0)"}},u=h("div",{style:t,role:"tablist","aria-label":"Side bar tabs"},e.panels.map(s=>h("button",{key:s,role:"tab","aria-selected":e.activePanel===s,"aria-label":gn[s],title:gn[s],onClick:()=>e.onPanelChange(e.activePanel===s?null:s),style:{width:`${Hn}px`,height:`${Hn}px`,border:"none",cursor:"pointer",color:"var(--ogrid-fg, #242424)",fontSize:"14px",display:"flex",alignItems:"center",justifyContent:"center",background:e.activePanel===s?"var(--ogrid-bg, #fff)":"transparent",fontWeight:e.activePanel===s?"bold":"normal"}},Ba[s]))),m=null;if(o&&e.activePanel){let s={width:`${La}px`,display:"flex",flexDirection:"column",overflow:"hidden",background:"var(--ogrid-bg, #fff)",color:"var(--ogrid-fg, #242424)",...l==="right"?{borderLeft:"1px solid var(--ogrid-border, #e0e0e0)"}:{borderRight:"1px solid var(--ogrid-border, #e0e0e0)"}},a=[];if(e.activePanel==="columns"){let g=e.columns.every(v=>e.visibleColumns.has(v.columnId));a.push(h("div",{style:{display:"flex",gap:"8px",marginBottom:"8px"}},[h("button",{disabled:g,onClick:()=>{let v=new Set(e.visibleColumns);e.columns.forEach(i=>v.add(i.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(i=>{i.required&&e.visibleColumns.has(i.columnId)&&v.add(i.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=>{a.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:i=>e.onVisibilityChange(v.columnId,i.target.checked)}),h("span",null,v.name)]));});}e.activePanel==="filters"&&(e.filterableColumns.length===0?a.push(h("div",{style:{color:"var(--ogrid-muted, #999)",fontStyle:"italic"}},"No filterable columns")):e.filterableColumns.forEach(g=>{let v=g.filterField,i=[h("div",{style:{fontWeight:"500",marginBottom:"4px",fontSize:"13px"}},g.name)];if(g.filterType==="text"){let p=e.filters[v],C=p?.type==="text"?p.value:"";i.push(h("input",{type:"text",value:C,onInput:r=>{let c=r.target.value;e.onFilterChange(v,c?{type:"text",value:c}:void 0);},placeholder:`Filter ${g.name}...`,"aria-label":`Filter ${g.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(g.filterType==="multiSelect"){let C=(e.filterOptions[v]??[]).map(r=>{let c=e.filters[v],d=c?.type==="multiSelect"?c.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:d,onChange:R=>{let w=e.filters[v],S=w?.type==="multiSelect"?w.value:[],D=R.target.checked?[...S,r]:S.filter($=>$!==r);e.onFilterChange(v,D.length>0?{type:"multiSelect",value:D}:void 0);}}),h("span",null,r)])});i.push(h("div",{style:{maxHeight:"120px",overflowY:"auto"},role:"group","aria-label":`${g.name} options`},C));}if(g.filterType==="date"){let p=e.filters[v],C=p?.type==="date"?p.value:{from:void 0,to:void 0};i.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 c=r.target.value||void 0,d=C.to;e.onFilterChange(v,c||d?{type:"date",value:{from:c,to:d}}:void 0);},"aria-label":`${g.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 c=r.target.value||void 0,d=C.from;e.onFilterChange(v,d||c?{type:"date",value:{from:d,to:c}}:void 0);},"aria-label":`${g.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"}})])]));}a.push(h("div",{key:g.columnId,style:{marginBottom:"12px"}},i));})),m=h("div",{role:"tabpanel","aria-label":gn[e.activePanel],style:s},[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,gn[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"}},a)]);}let f=[];return l==="left"?(f.push(u),m&&f.push(m)):(m&&f.push(m),f.push(u)),h("div",{style:{display:"flex",flexDirection:"row",flexShrink:"0"},role:"complementary","aria-label":"Side bar"},f)}function Ha(e){return defineComponent({name:"OGrid",props:{gridProps:{type:Object,required:true}},setup(o,{expose:l}){let t=computed(()=>o.gridProps),{dataGridProps:u,pagination:m,columnChooser:f,layout:s,api:a}=Ft(t);l({api:a});let g=ref(false),v=()=>{g.value=!g.value;},i=p=>{p.key==="Escape"&&g.value&&(g.value=false);};return onMounted(()=>{document.addEventListener("keydown",i);}),onUnmounted(()=>{document.removeEventListener("keydown",i);}),()=>{let p=s.value.sideBarProps,C=p!=null,r=p?.position??"right",c=[];s.value.toolbar&&c.push(s.value.toolbar);let R=s.value.fullScreen===true?h("button",{type:"button",title:g.value?"Exit fullscreen":"Fullscreen","aria-label":g.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))"}},[g.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,w=f.value.placement==="toolbar"?h(e.ColumnChooser,{columns:f.value.columns,visibleColumns:f.value.visibleColumns,onVisibilityChange:f.value.onVisibilityChange}):null,S=h(e.PaginationControls,{currentPage:m.value.page,pageSize:m.value.pageSize,totalCount:m.value.displayTotalCount,onPageChange:m.value.setPage,onPageSizeChange:x=>{m.value.setPageSize(x);},pageSizeOptions:m.value.pageSizeOptions,entityLabelPlural:m.value.entityLabelPlural}),D=h("div",{style:{flex:"1",minWidth:"0",minHeight:"0",display:"flex",flexDirection:"column"}},[h(e.DataGridTable,{gridProps:u.value})]),$=[];C&&r==="left"&&$.push(Mo(p)),$.push(D),C&&r!=="left"&&$.push(Mo(p));let L=c.length>0||w!=null||R!=null,P=g.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"},b=g.value?{display:"flex",flexDirection:"column",flex:"1",minHeight:"0",overflow:"hidden",background:"var(--ogrid-bg, #fff)"}:void 0;return h("div",{class:s.value.className,style:P},[h("div",{style:b??{}},[...L?[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"}},c),h("div",{style:{display:"flex",alignItems:"center",gap:"8px"}},[...w?[w]:[],...R?[R]:[]])])]:[],...s.value.toolbarBelow?[h("div",{style:{padding:"8px 12px",borderBottom:"1px solid var(--ogrid-border, rgba(0,0,0,0.12))"}},[s.value.toolbarBelow])]:[],...s.value.formulaBar?[s.value.formulaBar]:[],h("div",{style:{display:"flex",flex:"1",minHeight:"0"}},$),...s.value.sheetTabs?[s.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{bn as FormulaBar,wn as FormulaRefOverlay,hn as MarchingAntsOverlay,yn as SheetTabs,Rn as StatusBar,Ia as createDataGridTable,Fa as createInlineCellEditor,Ha as createOGrid,rn as getCellInteractionProps,Mt as useActiveCell,Ot as useCellEditing,At as useCellSelection,Lt as useClipboard,Po as useColumnChooserState,xo as useColumnHeaderFilterState,Wt as useColumnHeaderMenuState,Nt as useColumnPinning,en as useColumnReorder,$t as useColumnResize,kt as useContextMenu,Kt as useDataGridState,ln as useDataGridTableSetup,Jt as useDateFilterState,qt as useDebounce,Ro as useDebouncedCallback,Vt as useFillHandle,Tt as useFilterOptions,Et as useFormulaBar,To as useInlineCellEditorState,Bt as useKeyboardNavigation,jt as useMultiSelectFilterState,Ft as useOGrid,Zt as usePeopleFilterState,Do as useRichSelectState,Ut as useRowSelection,bt as useSideBarState,zt as useTableLayout,Xt as useTextFilterState,Gt as useUndoRedo,nn as useVirtualScroll};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alaarab/ogrid-vue",
3
- "version": "2.5.3",
3
+ "version": "2.5.5",
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.5.3"
39
+ "@alaarab/ogrid-core": "2.5.5"
40
40
  },
41
41
  "peerDependencies": {
42
42
  "vue": "^3.3.0"