@alaarab/ogrid-vue 2.7.1 → 2.7.3
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,shouldUseWorkerSort,processClientSideData,processClientSideDataAsync,validateColumns,validateRowIds,computeRowSelectionState,parseTsvClipboard,applyPastedValues,applyCutClear,normalizeSelectionRange,applyCellDeletion,computeTabNavigation,computeArrowNavigation,buildCellIndex,applyFillValues,UndoRedoStack,CHECKBOX_COLUMN_WIDTH,estimateHeaderMinWidth,CELL_PADDING,measureColumnContentWidth,resolveResponsiveConfig,applyResponsiveHiding,DEFAULT_MIN_COLUMN_WIDTH,computeAggregations,getDataGridStatusBarConfig,formatDateForDisplay,DEFAULT_DATE_FORMAT,getPinStateForColumn,validateVirtualScrollConfig,computeVisibleRange,computeTotalHeight,computeVisibleColumnRange,getScrollTopForRow,partitionColumnsForVirtualization,formatCellReference,buildHeaderRows,indexToColumnLetter,ROW_NUMBER_COLUMN_ID,ROW_NUMBER_COLUMN_WIDTH,getHeaderFilterConfig,getDateInputPlaceholder,getCellRenderDescriptor,buildInlineEditorProps,buildPopoverEditorProps,resolveCellDisplayContent,resolveCellStyle,handleBooleanCellPointerDown,parseUserInputDate,rangesEqual,formatSelectionAsTsv,calculateDropTarget,reorderColumnArray,parseValue,getCellValue,computeNextSortState,mergeFilter,columnLetterToIndex,applyRangeRowSelection,ROW_NUMBER_COLUMN_MIN_WIDTH,createGridDataAccessor,computeAutoScrollSpeed}from'@alaarab/ogrid-core';export{AUTOSIZE_EXTRA_PX,AUTOSIZE_MAX_PX,CELL_PADDING,CHECKBOX_COLUMN_WIDTH,COLUMN_HEADER_MENU_ITEMS,CellDescriptorCache,DEFAULT_DEBOUNCE_MS,DEFAULT_MIN_COLUMN_WIDTH,GRID_BORDER_RADIUS,GRID_CONTEXT_MENU_ITEMS,MAX_PAGE_BUTTONS,PAGE_SIZE_OPTIONS,PEOPLE_SEARCH_DEBOUNCE_MS,RESPONSIVE_BREAKPOINTS,ROW_NUMBER_COLUMN_ID,ROW_NUMBER_COLUMN_MIN_WIDTH,ROW_NUMBER_COLUMN_WIDTH,SIDEBAR_TRANSITION_MS,UndoRedoStack,Z_INDEX,applyCellDeletion,applyCutClear,applyFillValues,applyPastedValues,applyRangeRowSelection,applyResponsiveHiding,areGridRowPropsEqual,booleanParser,buildCellIndex,buildCsvHeader,buildCsvRows,buildHeaderRows,buildInlineEditorProps,buildPopoverEditorProps,calculateDropTarget,clampSelectionToBounds,columnLetterToIndex,computeAggregations,computeArrowNavigation,computeAutoScrollSpeed,computeNextSortState,computeRowSelectionState,computeTabNavigation,computeTotalHeight,computeVisibleColumnRange,computeVisibleRange,createGridDataAccessor,createSortFilterWorker,currencyParser,dateParser,debounce,deriveFilterOptionsFromData,emailParser,escapeCsvValue,exportToCsv,extractValueMatrix,findCtrlArrowTarget,flattenColumns,formatCellReference,formatCellValueForTsv,formatSelectionAsTsv,formatShortcut,getCellRenderDescriptor,getCellValue,getColumnHeaderMenuItems,getContextMenuHandlers,getDataGridStatusBarConfig,getFilterField,getHeaderFilterConfig,getMultiSelectFilterFields,getPaginationViewModel,getPinStateForColumn,getResponsiveHiddenColumns,getScrollTopForRow,getStatusBarParts,handleBooleanCellPointerDown,indexToColumnLetter,injectGlobalStyles,isColumnEditable,isFilterConfig,isInSelectionRange,isRowInRange,measureColumnContentWidth,measureRange,mergeFilter,normalizeSelectionRange,numberParser,parseTsvClipboard,parseValue,partitionColumnsForVirtualization,processClientSideData,processClientSideDataAsync,rangesEqual,reorderColumnArray,resolveCellDisplayContent,resolveCellStyle,resolveResponsiveConfig,terminateSortFilterWorker,toUserLike,triggerCsvDownload,validateColumns,validateRowIds,validateVirtualScrollConfig}from'@alaarab/ogrid-core';import {FORMULA_BAR_STYLES,handleFormulaBarKeyDown,FORMULA_REF_COLORS,deriveFormulaBarText,extractFormulaReferences,processFormulaBarCommit,FormulaEngine}from'@alaarab/ogrid-core/formula';export{CIRC_ERROR,DIV_ZERO_ERROR,DependencyGraph,FORMULA_BAR_CSS,FORMULA_BAR_STYLES,FORMULA_REF_COLORS,FormulaEngine,FormulaError,FormulaEvaluator,GENERAL_ERROR,NAME_ERROR,NA_ERROR,REF_ERROR,VALUE_ERROR,adjustFormulaReferences,canInsertReference,createBuiltInFunctions,deriveFormulaBarText,extractFormulaReferences,flattenArgs,formatAddress,formulaToString,fromCellKey,handleFormulaBarKeyDown,insertReferenceAtCursor,isFormulaError,parse,parseCellRef,parseRange,processFormulaBarCommit,toBoolean,toCellKey,toNumber,tokenize}from'@alaarab/ogrid-core/formula';import {defineComponent,ref,computed,onMounted,watch,toValue,onUnmounted,h,shallowRef,isRef,triggerRef,nextTick,Teleport,isReadonly,unref,customRef}from'vue';var An=defineComponent({name:"MarchingAntsOverlay",props:{containerRef:{type:Object,required:true},selectionRange:{type:Object,default:null},copyRange:{type:Object,default:null},cutRange:{type:Object,default:null},colOffset:{type:Number,required:true},items:{type:Array,required:true},visibleColumns:{type:Array,default:void 0},columnSizingOverrides:{type:Object,required:true},columnOrder:{type:Array,default:void 0}},setup(e){let o=ref(null),n=ref(null),l=0,i,m=computed(()=>e.copyRange??e.cutRange),d=()=>{let s=toValue(e.containerRef);if(!s){o.value=null,n.value=null;return}o.value=e.selectionRange?measureRange(s,e.selectionRange,e.colOffset):null,n.value=m.value?measureRange(s,m.value,e.colOffset):null;};onMounted(()=>{injectGlobalStyles("ogrid-marching-ants-keyframes","@keyframes ogrid-marching-ants{to{stroke-dashoffset:-8}}");}),watch([()=>e.selectionRange,m,()=>toValue(e.containerRef),()=>e.items,()=>e.visibleColumns,()=>e.columnSizingOverrides,()=>e.columnOrder],()=>{if(!e.selectionRange&&!m.value){o.value=null,n.value=null;return}l=requestAnimationFrame(d);let s=toValue(e.containerRef);s&&(i?.disconnect(),i=new ResizeObserver(d),i.observe(s));},{immediate:true}),onUnmounted(()=>{cancelAnimationFrame(l),i?.disconnect();});let a=computed(()=>{let s=e.selectionRange,f=m.value;return s!=null&&f!=null&&s.startRow===f.startRow&&s.startCol===f.startCol&&s.endRow===f.endRow&&s.endCol===f.endCol});return ()=>!o.value&&!n.value?null:h("div",{style:{position:"relative"}},[o.value&&!a.value&&!(e.selectionRange&&e.selectionRange.startRow===e.selectionRange.endRow&&e.selectionRange.startCol===e.selectionRange.endCol)?h("svg",{style:{position:"absolute",top:`${o.value.top}px`,left:`${o.value.left}px`,width:`${o.value.width}px`,height:`${o.value.height}px`,pointerEvents:"none",zIndex:Z_INDEX.SELECTION_OVERLAY,overflow:"visible"},"aria-hidden":"true"},[h("rect",{x:1,y:1,width:Math.max(0,o.value.width-2),height:Math.max(0,o.value.height-2),fill:"none",stroke:"var(--ogrid-selection, #217346)","stroke-width":2})]):null,n.value?h("svg",{style:{position:"absolute",top:`${n.value.top}px`,left:`${n.value.left}px`,width:`${n.value.width}px`,height:`${n.value.height}px`,pointerEvents:"none",zIndex:Z_INDEX.CLIPBOARD_OVERLAY,overflow:"visible"},"aria-hidden":"true"},[h("rect",{x:1,y:1,width:Math.max(0,n.value.width-2),height:Math.max(0,n.value.height-2),fill:"none",stroke:"var(--ogrid-selection, #217346)","stroke-width":2,"stroke-dasharray":"4 4",style:{animation:"ogrid-marching-ants 0.5s linear infinite"}})]):null])}});var Ln=defineComponent({name:"StatusBar",props:{totalCount:{type:Number,required:true},filteredCount:{type:Number,default:void 0},selectedCount:{type:Number,default:void 0},selectedCellCount:{type:Number,default:void 0},aggregation:{type:Object,default:void 0},suppressRowCount:{type:Boolean,default:false}},setup(e){return ()=>{let o=getStatusBarParts(e);return h("div",{role:"status","aria-live":"polite",style:{marginTop:"auto",padding:"6px 12px",borderTop:"1px solid var(--ogrid-border, rgba(0,0,0,0.12))",backgroundColor:"var(--ogrid-header-bg, rgba(0,0,0,0.04))",display:"flex",alignItems:"center",gap:"16px",fontSize:"0.875rem",lineHeight:"20px",minHeight:"33px",boxSizing:"border-box"}},o.map((n,l)=>h("span",{key:n.key,style:{display:"inline-flex",alignItems:"center",gap:"4px",...l<o.length-1?{marginRight:"16px",borderRight:"1px solid var(--ogrid-border, rgba(0,0,0,0.12))",paddingRight:"16px"}:{}}},[h("span",{style:{color:"var(--ogrid-fg-secondary, rgba(0,0,0,0.6))"}},n.label),h("span",{style:{fontWeight:"600"}},n.value.toLocaleString())])))}}});var 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 n=ref(null);return watch(()=>e.isEditing,l=>{l&&n.value&&n.value.focus();}),()=>h("div",{style:FORMULA_BAR_STYLES.bar,role:"toolbar","aria-label":"Formula bar"},[h("div",{style:FORMULA_BAR_STYLES.nameBox,"aria-label":"Active cell reference"},e.cellRef??"\u2014"),h("div",{style:FORMULA_BAR_STYLES.fxLabel,"aria-hidden":"true"},"fx"),h("input",{ref:n,type:"text",style:FORMULA_BAR_STYLES.input,value:e.formulaText,readonly:!e.isEditing,onInput:l=>o("inputChange",l.target.value),onKeydown:l=>handleFormulaBarKeyDown(l.key,()=>l.preventDefault(),()=>o("commit"),()=>o("cancel")),onClick:()=>{e.isEditing||o("startEditing");},onDblclick:()=>{e.isEditing||o("startEditing");},"aria-label":"Formula input",spellcheck:false,autocomplete:"off"})])}});var al={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"},il={background:"none",border:"none",cursor:"pointer",padding:"4px 10px",fontSize:"16px",lineHeight:"22px",color:"var(--ogrid-fg-secondary, #666)",flexShrink:0},co={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"},sl={...co,fontWeight:600,borderBottomColor:"var(--ogrid-primary, #217346)",background:"var(--ogrid-bg, #fff)"},Vn=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:al,role:"tablist","aria-label":"Sheet tabs"},[e.showAddButton?h("button",{type:"button",style:il,onClick:()=>o("sheetAdd"),title:"Add sheet","aria-label":"Add sheet"},"+"):null,...e.sheets.map(n=>{let l=n.id===e.activeSheet,i=l?sl:co,m=l&&n.color?{...i,borderBottomColor:n.color}:i;return h("button",{key:n.id,type:"button",role:"tab","aria-selected":l,style:m,onClick:()=>o("sheetChange",n.id)},n.name)})])}});function ml(e,o,n){let l=o.col+n,i=(o.endCol??o.col)+n,m=o.endRow??o.row,d=e.querySelector(`[data-row-index="${o.row}"][data-col-index="${l}"]`),a=e.querySelector(`[data-row-index="${m}"][data-col-index="${i}"]`);if(!d||!a)return null;let s=e.getBoundingClientRect(),f=d.getBoundingClientRect(),v=a.getBoundingClientRect();return {top:Math.round(f.top-s.top),left:Math.round(f.left-s.left),width:Math.round(v.right-f.left),height:Math.round(v.bottom-f.top),color:FORMULA_REF_COLORS[o.colorIndex%FORMULA_REF_COLORS.length]}}var zn=defineComponent({name:"FormulaRefOverlay",props:{containerEl:{type:Object,default:null},references:{type:Array,required:true},colOffset:{type:Number,required:true}},setup(e){let o=ref([]),n=0;function l(){let i=e.containerEl,m=e.references;if(!i||m.length===0){o.value=[];return}let d=[];for(let a of m){let s=ml(i,a,e.colOffset);s&&d.push(s);}o.value=d;}return watch(()=>[e.references,e.containerEl,e.colOffset],()=>{if(cancelAnimationFrame(n),!e.containerEl||e.references.length===0){o.value=[];return}n=requestAnimationFrame(l);},{immediate:true}),()=>o.value.length===0?null:o.value.map((i,m)=>h("svg",{key:m,style:{position:"absolute",top:`${i.top}px`,left:`${i.left}px`,width:`${i.width}px`,height:`${i.height}px`,pointerEvents:"none",zIndex:3,overflow:"visible"},"aria-hidden":"true"},[h("rect",{x:"1",y:"1",width:Math.max(0,i.width-2),height:Math.max(0,i.height-2),fill:"none",stroke:i.color,"stroke-width":"2",style:"shape-rendering: crispEdges"})]))}});function Gt(e,o){let n=ref({}),l=ref({}),i=computed(()=>[...o.value].sort().join(",")),m=async()=>{let d=e.value,a=o.value,s="fetchFilterOptions"in d&&typeof d.fetchFilterOptions=="function"?d.fetchFilterOptions.bind(d):void 0;if(!s){n.value={},l.value={};return}let f={};a.forEach(c=>{f[c]=true;}),l.value=f;let v={};await Promise.all(a.map(async c=>{try{v[c]=await s(c);}catch{v[c]=[];}})),n.value=v,l.value={};};return watch([e,i],()=>{m().catch(()=>{});},{immediate:true}),{filterOptions:n,loadingOptions:l}}function ut(e){let o=unref(e);return customRef((n,l)=>({get(){return isRef(e)&&(o=e.value),o},set(i){o=i,l();}}))}function vo(e){let{formulas:o,items:n,flatColumns:l,initialFormulas:i,onFormulaRecalc:m,formulaFunctions:d,namedRanges:a,sheets:s}=e,f=ut(n),v=ut(l),c=ut(m),u=shallowRef(null),C=false,r=computed(()=>o?.value??false);function p(){return createGridDataAccessor(f.value,v.value)}watch(r,x=>{if(x&&!u.value){if(u.value=new FormulaEngine({customFunctions:d,namedRanges:a}),s)for(let[P,M]of Object.entries(s))u.value.registerSheet(P,M);if(i&&!C){C=true;let P=p(),M=u.value.loadFormulas(i,P);M.updatedCells.length>0&&c.value?.(M);}}else !x&&u.value&&(u.value=null);},{immediate:true});function h(x,P){return u.value?.getValue(x,P)}function E(x,P){return u.value?.hasFormula(x,P)??false}function T(x,P){return u.value?.getFormula(x,P)}function R(x,P,M){if(!u.value)return;let O=p(),S=u.value.setFormula(x,P,M,O);S.updatedCells.length>0&&c.value?.(S);}function L(x,P){if(!u.value)return;let M=p(),O=u.value.onCellChanged(x,P,M);O.updatedCells.length>0&&c.value?.(O);}function z(x,P){return u.value?.getPrecedents(x,P)??[]}function W(x,P){return u.value?.getDependents(x,P)??[]}function D(x,P){return u.value?.getAuditTrail(x,P)??null}return {enabled:r,getFormulaValue:h,hasFormula:E,getFormula:T,setFormula:R,onCellChanged:L,getPrecedents:z,getDependents:W,getAuditTrail:D}}function Nt(e){let{activeCol:o,activeRow:n,activeCellRef:l,getFormula:i,getRawValue:m,setFormula:d,onCellValueChanged:a}=e,s=ref(false),f=ref(""),v=ref(false),c=computed(()=>deriveFormulaBarText(o.value,n.value,i,m));watch([o,n],()=>{s.value=false,v.value=false;});let u=()=>{f.value=c.value,s.value=true,v.value=true;},C=T=>{f.value=T;},r=()=>{let T=o.value,R=n.value;T==null||R==null||!d||(processFormulaBarCommit(f.value,T,R,d,a),s.value=false,v.value=false);},p=()=>{s.value=false,v.value=false,f.value="";},h=computed(()=>s.value?f.value:c.value),E=computed(()=>extractFormulaReferences(h.value));return {cellRef:l,formulaText:h,isEditing:s,onInputChange:C,onCommit:r,onCancel:p,startEditing:u,referencedCells:E,isFormulaBarEditing:v}}var go=["columns","filters"];function Ot(e){let{config:o}=e,n=o!=null&&o!==false,l=(()=>{if(!n||o===true)return {panels:go,position:"right",defaultPanel:null};let f=o;return {panels:f.panels??go,position:f.position??"right",defaultPanel:f.defaultPanel??null}})(),i=ref(l.defaultPanel),m=f=>{i.value=f;},d=f=>{i.value=i.value===f?null:f;},a=()=>{i.value=null;},s=computed(()=>i.value!==null);return {isEnabled:n,activePanel:i,setActivePanel:m,panels:l.panels,position:l.position,isOpen:s,toggle:d,close:a}}var Nl=25,Wl={};function _t(e){let o=computed(()=>{let t=e.value;return {columns:t.columns,columnOrder:t.columnOrder,onColumnOrderChange:t.onColumnOrderChange,onColumnResized:t.onColumnResized,onAutosizeColumn:t.onAutosizeColumn,onColumnPinned:t.onColumnPinned,columnChooser:t.columnChooser}}),n=computed(()=>{let t=e.value,U="data"in t?t.data:void 0,le="dataSource"in t?t.dataSource:void 0;return U&&le&&console.warn("[OGrid] Both data and dataSource provided. dataSource takes precedence."),{getRowId:t.getRowId,data:U,dataSource:le}}),l=computed(()=>{let t=e.value;return {page:t.page,pageSize:t.pageSize,sort:t.sort,filters:t.filters,visibleColumns:t.visibleColumns,isLoading:t.isLoading}}),i=computed(()=>{let t=e.value;return {onPageChange:t.onPageChange,onPageSizeChange:t.onPageSizeChange,onSortChange:t.onSortChange,onFiltersChange:t.onFiltersChange,onVisibleColumnsChange:t.onVisibleColumnsChange,onFirstDataRendered:t.onFirstDataRendered,onError:t.onError}}),m=computed(()=>{let t=e.value;return {defaultPageSize:t.defaultPageSize??Nl,defaultSortBy:t.defaultSortBy,defaultSortDirection:t.defaultSortDirection??"asc",entityLabelPlural:t.entityLabelPlural??"items"}}),d=computed(()=>o.value.columnChooser===false?"none":o.value.columnChooser==="sidebar"?"sidebar":"toolbar"),a=computed(()=>flattenColumns(o.value.columns)),s=computed(()=>n.value.dataSource!=null),f=computed(()=>!s.value),v=ref([]),c=ref(false),u=computed(()=>n.value.data??v.value),C=computed(()=>l.value.isLoading??c.value),r=computed(()=>m.value.defaultSortBy??a.value[0]?.columnId??""),p=ref(1),h$1=ref(m.value.defaultPageSize),E=ref({field:r.value,direction:m.value.defaultSortDirection}),T=ref({}),R=ref(void 0),L=ref((()=>{let t=a.value.filter(U=>U.defaultVisible!==false).map(U=>U.columnId);return new Set(t.length>0?t:a.value.map(U=>U.columnId))})()),z=ref({}),W={};for(let t of flattenColumns(e.value.columns))t.pinned&&(W[t.columnId]=t.pinned);let D=ref(W),x=computed(()=>l.value.page??p.value),P=computed(()=>l.value.pageSize??h$1.value),M=computed(()=>l.value.sort??E.value),O=computed(()=>l.value.filters??T.value),S=computed(()=>o.value.columnOrder??R.value),w=computed(()=>l.value.visibleColumns??L.value),b=t=>{l.value.page===void 0&&(p.value=t),i.value.onPageChange?.(t);},g=t=>{l.value.pageSize===void 0&&(h$1.value=t),i.value.onPageSizeChange?.(t),b(1);},y=ref(0),I=t=>{l.value.sort===void 0&&(E.value=t),i.value.onSortChange?.(t),b(1),y.value++;},k=t=>{l.value.filters===void 0&&(T.value=t),i.value.onFiltersChange?.(t),b(1);},$=t=>{l.value.visibleColumns===void 0&&(L.value=t),i.value.onVisibleColumnsChange?.(t);},H=(t,U)=>{I(computeNextSortState(M.value,t,U));},K=(t,U)=>{k(mergeFilter(O.value,t,U));},F=(t,U)=>{let le=new Set(w.value);U?le.add(t):le.delete(t),$(le);},X=ref(new Set),B=computed(()=>e.value.selectedRows),oe=computed(()=>B.value??X.value),Y=t=>{B.value===void 0&&(X.value=new Set(t.selectedRowIds)),e.value.onSelectionChange?.(t);},V=computed(()=>getMultiSelectFilterFields(a.value)),ee=computed(()=>n.value.dataSource??{fetchFilterOptions:void 0}),{filterOptions:te,loadingOptions:we}=Gt(ee,V),Fe=computed(()=>n.value.dataSource?.fetchFilterOptions!=null),Ke=computed(()=>Fe.value?te.value:deriveFilterOptionsFromData(u.value,a.value)),Pe=computed(()=>shouldUseWorkerSort(e.value.workerSort,u.value.length,{columns:a.value,filters:O.value,sortBy:M.value.field})),xe=null,Ne=-1,He=null,We=null,$e=-1,et=computed(()=>{if(!f.value||Pe.value)return null;let t=u.value,U=a.value,le=O.value,Re=y.value,it=M.value.field,st=M.value.direction,Xe=Re!==Ne||le!==He||U!==We||t.length!==$e,fe;if(Xe||xe===null){Ne=Re,He=le,We=U,$e=t.length;let be=processClientSideData(t,U,le,it,st),Ae=new Map;for(let pe=0;pe<t.length;pe++)Ae.set(t[pe],pe);xe=be.map(pe=>{let De=Ae.get(pe);return De!==void 0?De:-1}).filter(pe=>pe!==-1),fe=be;}else fe=xe.map(be=>t[be]).filter(be=>be!==void 0);let pt=fe.length,je=(x.value-1)*P.value;return {items:fe.slice(je,je+P.value),totalCount:pt}}),tt=ref(null),ct=0,Ue=null,mt=-1,Ie=null,gt=null,ae=-1;watch([f,Pe,u,a,O,y,x,P],()=>{if(!f.value||!Pe.value)return;let t=u.value,U=a.value,le=O.value,Re=y.value,it=M.value.field,st=M.value.direction,Xe=x.value,fe=P.value,pt=++ct;if(Re!==mt||le!==Ie||U!==gt||t.length!==ae||Ue===null)mt=Re,Ie=le,gt=U,ae=t.length,Ue=null,processClientSideDataAsync(t,U,le,it,st).then(Ce=>{if(pt!==ct||_e)return;let be=new Map;for(let A=0;A<t.length;A++)be.set(t[A],A);Ue=Ce.map(A=>{let G=be.get(A);return G!==void 0?G:-1}).filter(A=>A!==-1);let Ae=Ce.length,pe=(Xe-1)*fe,De=Ce.slice(pe,pe+fe);tt.value={items:De,totalCount:Ae};}).catch(()=>{if(pt!==ct||_e)return;let Ce=processClientSideData(t,U,le,it,st),be=new Map;for(let A=0;A<t.length;A++)be.set(t[A],A);Ue=Ce.map(A=>{let G=be.get(A);return G!==void 0?G:-1}).filter(A=>A!==-1);let Ae=Ce.length,pe=(Xe-1)*fe,De=Ce.slice(pe,pe+fe);tt.value={items:De,totalCount:Ae};});else {let Ce=Ue.map(De=>t[De]).filter(De=>De!==void 0),be=Ce.length,Ae=(Xe-1)*fe,pe=Ce.slice(Ae,Ae+fe);tt.value={items:pe,totalCount:be};}},{immediate:true});let Oe=computed(()=>{let t=et.value;return t||tt.value}),nt=ref([]),ot=ref(0),Ee=ref(false),lt=0,rt=null,_e=false,Ct=ref(0),ht=()=>{if(!s.value||!n.value.dataSource){s.value||(Ee.value=false);return}let t=++lt;rt?.abort();let U=new AbortController;rt=U,Ee.value=true,n.value.dataSource.fetchPage({page:x.value,pageSize:P.value,sort:{field:M.value.field,direction:M.value.direction},filters:O.value,signal:U.signal}).then(le=>{t!==lt||_e||U.signal.aborted||(nt.value=le.items,ot.value=le.totalCount);}).catch(le=>{t!==lt||_e||U.signal.aborted||(i.value.onError?.(le),nt.value=[],ot.value=0);}).finally(()=>{t===lt&&!_e&&!U.signal.aborted&&(Ee.value=false);});};onMounted(()=>{validateColumns(a.value),ht();}),watch([()=>n.value.dataSource,x,P,()=>M.value.field,()=>M.value.direction,O,Ct],()=>{ht();}),onUnmounted(()=>{_e=true,rt?.abort(),rt=null;});let Ve=computed(()=>f.value&&Oe.value?Oe.value.items:nt.value),ft=computed(()=>f.value&&Oe.value?Oe.value.totalCount:ot.value),at=computed(()=>!!e.value.formulas),Rt=ref(0),xt=t=>{Rt.value+=1,e.value.onFormulaRecalc?.(t);},ve=vo({formulas:at,items:Ve,flatColumns:a,initialFormulas:e.value.initialFormulas,onFormulaRecalc:xt,formulaFunctions:e.value.formulaFunctions,namedRanges:e.value.namedRanges,sheets:e.value.sheets}),bt=false,It=false;watch(Ve,t=>{!bt&&t.length>0&&(bt=true,i.value.onFirstDataRendered?.()),!It&&t.length>0&&(It=true,validateRowIds(t,n.value.getRowId));});let qe=computed(()=>Object.values(O.value).some(t=>t!==void 0)),St=computed(()=>a.value.map(t=>({columnId:t.columnId,name:t.name,required:t.required===true}))),Tt=computed(()=>{let t=e.value.statusBar;if(!t)return;if(typeof t=="object")return t;let U=f.value?n.value.data?.length??0:ot.value,le=ft.value;return {totalCount:U,filteredCount:qe.value?le:void 0,selectedCount:oe.value.size,suppressRowCount:true}}),Pt=(t,U)=>{z.value={...z.value,[t]:U},o.value.onColumnResized?.(t,U);},Q=(t,U)=>{z.value={...z.value,[t]:U},(o.value.onAutosizeColumn??o.value.onColumnResized)?.(t,U);},Z=(t,U)=>{if(U===null){let{[t]:le,...Re}=D.value;D.value=Re;}else D.value={...D.value,[t]:U};o.value.onColumnPinned?.(t,U);},re=shallowRef(Ot({config:e.value.sideBar}));watch(()=>e.value.sideBar,t=>{re.value=Ot({config:t});});let me=computed(()=>a.value.filter(t=>t.filterable&&t.filterable.type).map(t=>({columnId:t.columnId,name:t.name,filterField:t.filterable?.filterField??t.columnId,filterType:t.filterable?.type}))),se=computed(()=>{let t=re.value;if(!t.isEnabled)return null;t.activePanel.value;t.isOpen.value;return {get activePanel(){return t.activePanel.value},onPanelChange:t.setActivePanel,panels:t.panels,position:t.position,get isOpen(){return t.isOpen.value},toggle:t.toggle,close:t.close,columns:St.value,visibleColumns:w.value,onVisibilityChange:F,onSetVisibleColumns:$,filterableColumns:me.value,filters:O.value,onFilterChange:K,filterOptions:Ke.value}}),Me=()=>k({}),ye=computed(()=>s.value&&Ee.value||C.value),he=ref(null),ge=ref(null),yt=t=>{if(he.value=t,t){let U=t.match(/^([A-Z]+)(\d+)$/);U?ge.value={col:columnLetterToIndex(U[1]),row:parseInt(U[2],10)-1}:ge.value=null;}else ge.value=null;},Et=computed(()=>ge.value?.col??null),Dn=computed(()=>ge.value?.row??null),Fn=(t,U)=>{let le=Ve.value,Re=a.value;if(!(U<0||U>=le.length||t<0||t>=Re.length))return getCellValue(le[U],Re[t])},ke=Nt({activeCol:Et,activeRow:Dn,activeCellRef:he,getFormula:ve.enabled.value?ve.getFormula:void 0,getRawValue:Fn,setFormula:ve.enabled.value?ve.setFormula:void 0}),Un=computed(()=>{let t=e.value,U=n.value.dataSource;return {items:Ve.value,columns:o.value.columns,getRowId:n.value.getRowId,sortBy:M.value.field,sortDirection:M.value.direction,onColumnSort:H,visibleColumns:w.value,columnOrder:S.value,onColumnOrderChange:o.value.onColumnOrderChange,onColumnResized:Pt,onAutosizeColumn:Q,onColumnPinned:Z,pinnedColumns:D.value,initialColumnWidths:z.value,editable:t.editable,cellSelection:t.cellSelection,onCellValueChanged:t.onCellValueChanged,onUndo:t.onUndo,onRedo:t.onRedo,canUndo:t.canUndo,canRedo:t.canRedo,rowSelection:t.rowSelection??"none",selectedRows:oe.value,onSelectionChange:Y,showRowNumbers:t.showRowNumbers||t.cellReferences||t.formulas,showColumnLetters:!!(t.cellReferences||t.formulas),showNameBox:!!(t.cellReferences&&!t.formulas),onActiveCellChange:t.cellReferences||t.formulas?yt:void 0,currentPage:x.value,pageSize:P.value,statusBar:Tt.value,isLoading:ye.value,filters:O.value,onFilterChange:K,filterOptions:Ke.value,loadingFilterOptions:U?.fetchFilterOptions?we.value:Wl,peopleSearch:U?.searchPeople,getUserByEmail:U?.getUserByEmail,layoutMode:t.layoutMode,suppressHorizontalScroll:t.suppressHorizontalScroll,stickyHeader:t.stickyHeader??true,columnReorder:t.columnReorder,responsiveColumns:t.responsiveColumns,virtualScroll:t.virtualScroll,rowHeight:t.rowHeight,density:t.density??"normal","aria-label":t["aria-label"],"aria-labelledby":t["aria-labelledby"],emptyState:{hasActiveFilters:qe.value,onClearAll:Me,message:t.emptyState?.message,render:t.emptyState?.render},formulas:t.formulas,formulaVersion:Rt.value,...ve.enabled.value?{getFormulaValue:ve.getFormulaValue,hasFormula:ve.hasFormula,getFormula:ve.getFormula,setFormula:ve.setFormula,onFormulaCellChanged:ve.onCellChanged,getPrecedents:ve.getPrecedents,getDependents:ve.getDependents,getAuditTrail:ve.getAuditTrail}:{},formulaReferences:ke.referencedCells.value.length>0?ke.referencedCells.value:void 0}}),Dt=computed(()=>({page:x.value,pageSize:P.value,displayTotalCount:ft.value,setPage:b,setPageSize:g,pageSizeOptions:e.value.pageSizeOptions,entityLabelPlural:m.value.entityLabelPlural})),ze=computed(()=>({columns:St.value,visibleColumns:w.value,onVisibilityChange:F,placement:d.value})),Ft=computed(()=>{let t=e.value,U=!!t.formulas,le=!!t.cellReferences&&!U,Re=t.toolbar;le&&(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"},he.value??"\u2014"),Re]);let it=U?h(Bn,{cellRef:ke.cellRef.value,formulaText:ke.formulaText.value,isEditing:ke.isEditing.value,onInputChange:ke.onInputChange,onCommit:ke.onCommit,onCancel:ke.onCancel,onStartEditing:ke.startEditing}):void 0,st=t.sheetDefs&&t.sheetDefs.length>0&&t.activeSheet&&t.onSheetChange?h(Vn,{sheets:t.sheetDefs,activeSheet:t.activeSheet,showAddButton:!!t.onSheetAdd,onSheetChange:t.onSheetChange,onSheetAdd:t.onSheetAdd??(()=>{})}):void 0;return {toolbar:Re,toolbarBelow:t.toolbarBelow,className:t.className,emptyState:t.emptyState,sideBarProps:se.value,fullScreen:t.fullScreen,formulaBar:it,sheetTabs:st}}),On=computed(()=>({hasActiveFilters:qe.value,setFilters:k})),Mn=computed(()=>({setRowData:t=>{s.value||(v.value=t);},setLoading:t=>{c.value=t;},getColumnState:()=>({visibleColumns:Array.from(w.value),sort:M.value,columnOrder:S.value??void 0,columnWidths:Object.keys(z.value).length>0?z.value:void 0,filters:Object.keys(O.value).length>0?O.value:void 0,pinnedColumns:Object.keys(D.value).length>0?D.value:void 0}),applyColumnState:t=>{t.visibleColumns&&$(new Set(t.visibleColumns)),t.sort&&I(t.sort),t.columnOrder&&(o.value.columnOrder===void 0&&(R.value=t.columnOrder),o.value.onColumnOrderChange?.(t.columnOrder)),t.columnWidths&&(z.value=t.columnWidths),t.filters&&k(t.filters),t.pinnedColumns&&(D.value=t.pinnedColumns);},setFilterModel:k,getSelectedRows:()=>Array.from(oe.value),setSelectedRows:t=>{B.value===void 0&&(X.value=new Set(t));},selectAll:()=>{let t=new Set(Ve.value.map(U=>n.value.getRowId(U)));B.value===void 0&&(X.value=t),e.value.onSelectionChange?.({selectedRowIds:Array.from(t),selectedItems:Ve.value});},deselectAll:()=>{B.value===void 0&&(X.value=new Set),e.value.onSelectionChange?.({selectedRowIds:[],selectedItems:[]});},clearFilters:()=>k({}),clearSort:()=>I({field:r.value,direction:m.value.defaultSortDirection}),resetGridState:t=>{k({}),I({field:r.value,direction:m.value.defaultSortDirection}),t?.keepSelection||(B.value===void 0&&(X.value=new Set),e.value.onSelectionChange?.({selectedRowIds:[],selectedItems:[]}));},getDisplayedRows:()=>Ve.value,refreshData:()=>{s.value&&Ct.value++;},scrollToRow:()=>{},getColumnOrder:()=>S.value??a.value.map(t=>t.columnId),setColumnOrder:t=>{o.value.columnOrder===void 0&&(R.value=t),o.value.onColumnOrderChange?.(t);}}));return {dataGridProps:Un,pagination:Dt,columnChooser:ze,layout:Ft,filters:On,api:Mn}}function Kt(e){let{items:o,getRowId:n,rowSelection:l,controlledSelectedRows:i,onSelectionChange:m}=e,d=shallowRef(new Set),a=-1,s=computed(()=>{let r=i.value;return r!=null?r instanceof Set?r:new Set(r):d.value}),f=r=>{i.value!==void 0?isReadonly(i)||(i.value=r):d.value=r,m?.({selectedRowIds:Array.from(r),selectedItems:o.value.filter(p=>r.has(n(p)))});},v=(r,p,h,E)=>{if(l.value==="single"){f(p?new Set([r]):new Set),a=h;return}let T=o.value,R;E&&a>=0&&a!==h?R=applyRangeRowSelection(a,h,p,T,n,s.value):(R=new Set(s.value),p?R.add(r):R.delete(r)),a=h,f(R);},c=r=>{f(r?new Set(o.value.map(p=>n(p))):new Set);},u=computed(()=>computeRowSelectionState(s.value,o.value,n).allSelected),C=computed(()=>computeRowSelectionState(s.value,o.value,n).someSelected);return {selectedRowIds:s,updateSelection:f,handleRowCheckboxChange:v,handleSelectAll:c,allSelected:u,someSelected:C}}function $t(e){let o=shallowRef(null),n=ref(void 0);return {editingCell:o,setEditingCell:m=>{if(m&&e?.scrollToRow&&e?.getRowIndex){let d=e.getRowIndex(m.rowId);d>=0&&e.scrollToRow(d,"center");}o.value=m;},pendingEditorValue:n,setPendingEditorValue:m=>{n.value=m;}}}function qt(e,o){let n=shallowRef(null),l=0,i=m=>{let d=n.value;d!==m&&(d&&m&&d.rowIndex===m.rowIndex&&d.columnIndex===m.columnIndex||(n.value=m));};return watch([n,()=>o?.value],()=>{if(l&&(cancelAnimationFrame(l),l=0),n.value==null||!e?.value||o?.value!=null)return;let{rowIndex:m,columnIndex:d}=n.value;l=requestAnimationFrame(()=>{l=0;let a=e.value;if(!a)return;let s=n.value;if(!s||s.rowIndex!==m||s.columnIndex!==d)return;let f=`[data-row-index="${m}"][data-col-index="${d}"]`,v=a.querySelector(f);if(v){let c=a.querySelector("thead"),u=c?c.getBoundingClientRect().height:0,C=a.getBoundingClientRect(),r=v.getBoundingClientRect(),p=C.top+u;r.top<p?a.scrollTop-=p-r.top:r.bottom>C.bottom&&(a.scrollTop+=r.bottom-C.bottom),a.scrollWidth>a.clientWidth&&(r.left<C.left?a.scrollLeft-=C.left-r.left:r.right>C.right&&(a.scrollLeft+=r.right-C.right)),document.activeElement!==v&&typeof v.focus=="function"&&v.focus({preventScroll:true});}});},{flush:"post"}),onUnmounted(()=>{l&&(cancelAnimationFrame(l),l=0);}),{activeCell:n,setActiveCell:i}}var qn="data-drag-range",Mt="data-drag-anchor",Se=40,or=16;function Xt(e){let o=ut(e),{wrapperRef:n,setActiveCell:l}=e,i=()=>isRef(e.colOffset)?e.colOffset.value:e.colOffset,m=shallowRef(null),d=ref(false),a=ref(false),s=ref(false),f=false,v=null,c=0,u=null,C=null,r=null,p=g=>{rangesEqual(m.value,g)||(m.value=g);},h=(g,y,I)=>{if(g.button!==0)return;let k=i();if(I<k)return;g.preventDefault();let $=I-k,H=m.value;if(g.shiftKey&&H!=null)p(normalizeSelectionRange({startRow:H.startRow,startCol:H.startCol,endRow:y,endCol:$})),l({rowIndex:y,columnIndex:I});else {v={row:y,col:$},f=false;let K={startRow:y,startCol:$,endRow:y,endCol:$};p(K),u=K,l({rowIndex:y,columnIndex:I}),a.value=true,W(K);}},E=()=>{let{rowCount:g,visibleColCount:y}=o.value;g.value===0||y.value===0||(p({startRow:0,startCol:0,endRow:g.value-1,endCol:y.value-1}),l({rowIndex:0,columnIndex:i()}));},T=new Set,R=null,L=(g,y,I,k,$,H,K,F)=>{g.hasAttribute(qn)||g.setAttribute(qn,""),F&&y===F.row&&I===F.col?g.hasAttribute(Mt)||g.setAttribute(Mt,""):g.hasAttribute(Mt)&&g.removeAttribute(Mt);let B=[];y===k&&B.push("inset 0 2px 0 0 var(--ogrid-selection, #217346)"),y===$&&B.push("inset 0 -2px 0 0 var(--ogrid-selection, #217346)"),I===H&&B.push("inset 2px 0 0 0 var(--ogrid-selection, #217346)"),I===K&&B.push("inset -2px 0 0 0 var(--ogrid-selection, #217346)"),g.style.boxShadow=B.length>0?B.join(", "):"",T.add(g);},z=g=>{g.removeAttribute(qn),g.removeAttribute(Mt),g.style.boxShadow="";},W=g=>{if(!n.value)return;let I=Math.min(g.startRow,g.endRow),k=Math.max(g.startRow,g.endRow),$=Math.min(g.startCol,g.endCol),H=Math.max(g.startCol,g.endCol),K=v,F=i();for(let B of T){let oe=parseInt(B.getAttribute("data-row-index")??"",10),Y=parseInt(B.getAttribute("data-col-index")??"",10)-F;oe>=I&&oe<=k&&Y>=$&&Y<=H||(z(B),T.delete(B));}R||(R=buildCellIndex(n.value));let X=false;for(let B=I;B<=k;B++)for(let oe=$;oe<=H;oe++){let Y=`${B},${oe+F}`,V=R?.get(Y);V&&!V.isConnected&&!X&&(X=true,R=buildCellIndex(n.value),V=R?.get(Y)),V&&V.isConnected&&L(V,B,oe,I,k,$,H,K);}},D=()=>{for(let g of T)z(g);T.clear(),R=null;},x=(g,y)=>{if(!v)return null;let k=document.elementFromPoint(g,y)?.closest?.("[data-row-index][data-col-index]");if(!k)return null;let $=parseInt(k.getAttribute("data-row-index")??"",10),H=parseInt(k.getAttribute("data-col-index")??"",10),K=i();if(Number.isNaN($)||Number.isNaN(H)||H<K)return null;let F=H-K;return normalizeSelectionRange({startRow:v.row,startCol:v.col,endRow:$,endCol:F})},P=()=>{C&&(clearInterval(C),C=null);},M=()=>{let g=n.value;if(!g||!r||!a.value){P();return}let y=g.getBoundingClientRect(),I=0,k=0;if(r.cy<y.top+Se?k=-computeAutoScrollSpeed(y.top+Se-r.cy):r.cy>y.bottom-Se&&(k=computeAutoScrollSpeed(r.cy-(y.bottom-Se))),r.cx<y.left+Se?I=-computeAutoScrollSpeed(y.left+Se-r.cx):r.cx>y.right-Se&&(I=computeAutoScrollSpeed(r.cx-(y.right-Se))),I===0&&k===0){P();return}C||(C=setInterval(()=>{let $=n.value,H=r;if(!$||!H||!a.value){P();return}let K=$.getBoundingClientRect(),F=0,X=0;if(H.cy<K.top+Se?X=-computeAutoScrollSpeed(K.top+Se-H.cy):H.cy>K.bottom-Se&&(X=computeAutoScrollSpeed(H.cy-(K.bottom-Se))),H.cx<K.left+Se?F=-computeAutoScrollSpeed(K.left+Se-H.cx):H.cx>K.right-Se&&(F=computeAutoScrollSpeed(H.cx-(K.right-Se))),F===0&&X===0){P();return}$.scrollTop+=X,$.scrollLeft+=F;let B=x(H.cx,H.cy);B&&(u=B,W(B));},or));},O=g=>{!a.value||!v||(f||(f=true,d.value=true,R=buildCellIndex(n.value)),r={cx:g.clientX,cy:g.clientY},M(),c&&cancelAnimationFrame(c),c=requestAnimationFrame(()=>{if(c=0,!r)return;let y=x(r.cx,r.cy);if(!y)return;let I=u;I&&I.startRow===y.startRow&&I.startCol===y.startCol&&I.endRow===y.endRow&&I.endCol===y.endCol||(u=y,W(y));}));},S=()=>{if(!a.value)return;P(),c&&(cancelAnimationFrame(c),c=0),a.value=false;let g=f;if(g){if(r){let I=x(r.cx,r.cy);I&&(u=I);}let y=u;if(y){p(y);let I=v;I&&l({rowIndex:I.row,columnIndex:I.col+i()});}}D(),u=null,r=null,v=null,g&&(d.value=false);},w=g=>{s.value||O(g);},b=()=>{s.value||S();};return onMounted(()=>{window.addEventListener("pointermove",w,true),window.addEventListener("pointerup",b,true);}),onUnmounted(()=>{s.value=true,window.removeEventListener("pointermove",w,true),window.removeEventListener("pointerup",b,true),c&&cancelAnimationFrame(c),P();}),{selectionRange:m,setSelectionRange:p,handleCellMouseDown:h,handleSelectAllCells:E,isDragging:d}}function jt(){let e=shallowRef(null);return {contextMenuPosition:e,setContextMenuPosition:i=>{e.value=i;},handleCellContextMenu:i=>{i.preventDefault?.(),e.value={x:i.clientX,y:i.clientY};},closeContextMenu:()=>{e.value=null;}}}function Yt(e){let{items:o,visibleCols:n,selectionRange:l,activeCell:i,editable:m,onCellValueChanged:d,beginBatch:a,endBatch:s}=e,f=()=>isRef(e.colOffset)?e.colOffset.value:e.colOffset,v=shallowRef(null),c=shallowRef(null),u=ref(null),C=()=>{let T=l.value,R=i.value,L=f();return T??(R!=null?{startRow:R.rowIndex,startCol:R.columnIndex-L,endRow:R.rowIndex,endCol:R.columnIndex-L}:null)},r=()=>{let T=C();if(T==null)return;let R=normalizeSelectionRange(T),L=formatSelectionAsTsv(o.value,n.value,R);u.value=L,c.value=R,navigator.clipboard.writeText(L).catch(z=>{typeof console<"u"&&console.warn("[OGrid] Clipboard write failed:",z);});};return {handleCopy:r,handleCut:()=>{if(m.value===false)return;let T=C();if(T==null||d.value==null)return;let R=normalizeSelectionRange(T);v.value=R,c.value=null,r(),c.value=null;},handlePaste:async()=>{if(m.value===false)return;let T=d.value;if(T==null)return;let R;try{R=await navigator.clipboard.readText();}catch{R="";}if(!R.trim()&&u.value!=null&&(R=u.value),!R.trim())return;let L=C(),z=L?L.startRow:0,W=L?L.startCol:0,D=o.value,x=n.value,P=parseTsvClipboard(R);a?.();let M=applyPastedValues(P,z,W,D,x);for(let O of M)T(O);if(v.value){let O=applyCutClear(v.value,D,x);for(let S of O)T(S);v.value=null;}s?.(),c.value=null;},cutRange:v,copyRange:c,clearClipboardRanges:()=>{c.value=null,v.value=null;}}}function Zt(e){let o=ut(e);return {handleGridKeyDown:l=>{let{data:i,state:m,handlers:d,features:a}=o.value,s=i.items.value,f=i.visibleCols.value,{getRowId:v}=i,c=isRef(i.colOffset)?i.colOffset.value:i.colOffset,u=i.hasCheckboxCol.value,C=i.visibleColumnCount.value,r=m.activeCell.value,p=m.selectionRange.value,h=m.editingCell.value,E=m.selectedRowIds.value,{setActiveCell:T,setSelectionRange:R,setEditingCell:L,handleRowCheckboxChange:z,handleCopy:W,handleCut:D,handlePaste:x,setContextMenu:P,onUndo:M,onRedo:O,clearClipboardRanges:S}=d,w=a.editable.value,b=a.onCellValueChanged.value,g=a.rowSelection.value,y=a.wrapperRef,I=a.scrollToRow,{fillDown:k}=a,$=a.onKeyDown?.value;if($&&($(l),l.defaultPrevented))return;let H=s.length-1,K=C-1+c;if(s.length===0)return;if(r===null){["ArrowDown","ArrowUp","ArrowLeft","ArrowRight","Tab","Enter","Home","End","PageDown","PageUp"].includes(l.key)&&(T({rowIndex:0,columnIndex:c}),l.preventDefault());return}let{rowIndex:F,columnIndex:X}=r,B=X-c,oe=l.shiftKey,Y=(V,ee)=>{if(V<0||V>=s.length||ee<0||ee>=f.length)return true;let te=getCellValue(s[V],f[ee]);return te==null||te===""};switch(l.key){case "c":if(l.ctrlKey||l.metaKey){if(h!=null)break;l.preventDefault(),W();}break;case "x":if(l.ctrlKey||l.metaKey){if(h!=null)break;l.preventDefault(),D();}break;case "v":if(l.ctrlKey||l.metaKey){if(h!=null)break;l.preventDefault(),x();}break;case "d":if(l.ctrlKey||l.metaKey){if(h!=null)break;w!==false&&k&&(l.preventDefault(),k());}break;case "ArrowDown":case "ArrowUp":case "ArrowRight":case "ArrowLeft":{if(h!=null)break;l.preventDefault();let{newRowIndex:V,newColumnIndex:ee,newRange:te}=computeArrowNavigation({direction:l.key,rowIndex:F,columnIndex:X,dataColIndex:B,colOffset:c,maxRowIndex:H,maxColIndex:K,visibleColCount:f.length,isCtrl:l.ctrlKey||l.metaKey,isShift:oe,selectionRange:p,isEmptyAt:Y});R(te),T({rowIndex:V,columnIndex:ee}),(l.key==="ArrowDown"||l.key==="ArrowUp")&&I?.(V,"center");break}case "Tab":{l.preventDefault();let{rowIndex:V,columnIndex:ee}=computeTabNavigation(F,X,H,K,c,l.shiftKey),te=ee-c;R({startRow:V,startCol:te,endRow:V,endCol:te}),T({rowIndex:V,columnIndex:ee});break}case "Home":{l.preventDefault();let V=l.ctrlKey?0:F;R({startRow:V,startCol:0,endRow:V,endCol:0}),T({rowIndex:V,columnIndex:c});break}case "End":{l.preventDefault();let V=l.ctrlKey?H:F;R({startRow:V,startCol:C-1,endRow:V,endCol:C-1}),T({rowIndex:V,columnIndex:K});break}case "PageDown":case "PageUp":{l.preventDefault();let V=y.value,ee=10;if(V){let Fe=V.querySelector("tbody tr");Fe&&Fe.offsetHeight>0&&(ee=Math.max(1,Math.floor(V.clientHeight/Fe.offsetHeight)));}let te=l.key==="PageDown"?1:-1,we=Math.max(0,Math.min(F+te*ee,H));R(oe?{startRow:p?.startRow??F,startCol:p?.startCol??B,endRow:we,endCol:p?.endCol??B}:{startRow:we,startCol:B,endRow:we,endCol:B}),T({rowIndex:we,columnIndex:X}),I?.(we,"center");break}case "Enter":case "F2":{if(l.preventDefault(),B>=0&&B<f.length){let V=f[B],ee=s[F];if(ee&&V){let te=V.editable===true||typeof V.editable=="function"&&V.editable(ee);w!==false&&te&&b!=null&&L({rowId:v(ee),columnId:V.columnId});}}break}case "Escape":l.preventDefault(),h!=null?L(null):(S?.(),T(null),R(null));break;case " ":if(g!=="none"&&X===0&&u){l.preventDefault();let V=s[F];if(V){let ee=v(V),te=E.has(ee);z(ee,!te,F,l.shiftKey);}}break;case "z":(l.ctrlKey||l.metaKey)&&h==null&&(l.shiftKey&&O?(l.preventDefault(),O()):!l.shiftKey&&M&&(l.preventDefault(),M()));break;case "y":(l.ctrlKey||l.metaKey)&&h==null&&O&&(l.preventDefault(),O());break;case "a":if(l.ctrlKey||l.metaKey){if(h!=null)break;l.preventDefault(),s.length>0&&C>0&&(R({startRow:0,startCol:0,endRow:s.length-1,endCol:C-1}),T({rowIndex:0,columnIndex:c}));}break;case "Delete":case "Backspace":{if(h!=null||w===false||b==null)break;let V=p??(r!=null?{startRow:r.rowIndex,startCol:r.columnIndex-c,endRow:r.rowIndex,endCol:r.columnIndex-c}:null);if(V==null)break;l.preventDefault();let ee=applyCellDeletion(V,s,f);for(let te of ee)b(te);break}case "F10":if(l.shiftKey)if(l.preventDefault(),r!=null&&y.value){let V=`[data-row-index="${r.rowIndex}"][data-col-index="${r.columnIndex}"]`,ee=y.value.querySelector(V);if(ee){let te=ee.getBoundingClientRect();P({x:te.left+te.width/2,y:te.top+te.height/2});}else P({x:100,y:100});}else P({x:100,y:100});break;}}}}var Jt="data-drag-range";function Qt(e){let{items:o,visibleCols:n,editable:l,onCellValueChanged:i,selectionRange:m,setSelectionRange:d,setActiveCell:a,wrapperRef:s,beginBatch:f,endBatch:v,visibleRange:c}=e,u=()=>isRef(e.colOffset)?e.colOffset.value:e.colOffset,C=shallowRef(null),r={endRow:0,endCol:0},p=0,h=null,E=null,T=null,R=D=>{C.value=D;},L=()=>{E&&(window.removeEventListener("pointermove",E,true),E=null),T&&(window.removeEventListener("pointerup",T,true),T=null),p&&(cancelAnimationFrame(p),p=0);};return watch(C,(D,x,P)=>{if(!D||l.value===false||!i.value||!s.value){L();return}r={endRow:D.startRow,endCol:D.startCol},h=null;let M=new Set,O=buildCellIndex(s.value),S=y=>{if(!s.value)return;let k=Math.min(y.startRow,y.endRow),$=Math.max(y.startRow,y.endRow),H=Math.min(y.startCol,y.endCol),K=Math.max(y.startCol,y.endCol),F=u();for(let X of M){let B=parseInt(X.getAttribute("data-row-index")??"",10),oe=parseInt(X.getAttribute("data-col-index")??"",10)-F;B>=k&&B<=$&&oe>=H&&oe<=K||(X.removeAttribute(Jt),M.delete(X));}for(let X=k;X<=$;X++)for(let B=H;B<=K;B++){let oe=`${X},${B+F}`,Y=O?.get(oe);Y&&!Y.isConnected&&(O=buildCellIndex(s.value),Y=O.get(oe)),Y&&(Y.hasAttribute(Jt)||Y.setAttribute(Jt,""),M.add(Y));}},w=()=>{for(let y of M)y.removeAttribute(Jt);M.clear();},b=null,g=(y,I)=>{let $=document.elementFromPoint(y,I)?.closest?.("[data-row-index][data-col-index]");if(!$||!s.value?.contains($))return null;let H=parseInt($.getAttribute("data-row-index")??"",10),K=parseInt($.getAttribute("data-col-index")??"",10),F=u();if(Number.isNaN(H)||Number.isNaN(K)||K<F)return null;let X=K-F;return normalizeSelectionRange({startRow:D.startRow,startCol:D.startCol,endRow:H,endCol:X})};E=y=>{b={cx:y.clientX,cy:y.clientY},p&&cancelAnimationFrame(p),p=requestAnimationFrame(()=>{if(p=0,!b)return;let I=g(b.cx,b.cy);if(!I)return;let k=h;k&&k.startRow===I.startRow&&k.startCol===I.startCol&&k.endRow===I.endRow&&k.endCol===I.endCol||(h=I,r={endRow:I.endRow,endCol:I.endCol},S(I));});},T=()=>{if(p&&(cancelAnimationFrame(p),p=0),b){let F=g(b.cx,b.cy);F&&(h=F,r={endRow:F.endRow,endCol:F.endCol});}w();let y=r,I=normalizeSelectionRange({startRow:D.startRow,startCol:D.startCol,endRow:y.endRow,endCol:y.endCol}),k=c?.value;k&&(I.startRow=Math.max(I.startRow,k.startIndex),I.endRow=Math.min(I.endRow,k.endIndex)),d(I),a({rowIndex:D.startRow,columnIndex:D.startCol+u()});let $=o.value,H=n.value,K=i.value;if(K){let F=applyFillValues(I,D.startRow,D.startCol,$,H);if(F.length>0){f?.();for(let X of F)K(X);v?.();}}C.value=null,h=null,L();},window.addEventListener("pointermove",E,true),window.addEventListener("pointerup",T,true),P(()=>{L();});}),onUnmounted(()=>L()),{fillDrag:C,setFillDrag:R,handleFillHandleMouseDown:D=>{D.preventDefault(),D.stopPropagation();let x=m.value;x&&(C.value={startRow:x.startRow,startCol:x.startCol});},fillDown:()=>{let D=m.value;if(!D||l.value===false||!i.value)return;let x=normalizeSelectionRange(D),P=o.value,M=n.value,O=i.value,S=applyFillValues(x,x.startRow,x.startCol,P,M);if(S.length>0){f?.();for(let w of S)O(w);v?.();}}}}function en(e){let{onCellValueChanged:o,maxUndoDepth:n=100,afterChange:l}=e,i=new UndoRedoStack(n),m=ref(false),d=ref(false),a=()=>{m.value=i.canUndo,d.value=i.canRedo;};return {onCellValueChanged:o?C=>{i.record(C),i.isBatching||a(),o(C),i.isBatching||l?.();}:void 0,undo:()=>{if(!o)return;let C=i.undo();if(C){a();for(let r=C.length-1;r>=0;r--){let p=C[r];o({...p,oldValue:p.newValue,newValue:p.oldValue});}l?.();}},redo:()=>{if(!o)return;let C=i.redo();if(C){a();for(let r of C)o(r);l?.();}},canUndo:m,canRedo:d,beginBatch:()=>{i.beginBatch();},endBatch:()=>{i.endBatch(),a(),l?.();},maxUndoDepth:n}}function tn(e){let{wrapperRef:o,visibleCols:n,flatColumns:l,hasCheckboxCol:i,initialColumnWidths:m,onColumnResized:d}=e,a=ref(0),s,f=()=>{let r=o.value;if(!r)return;let p=r.getBoundingClientRect(),h=window.getComputedStyle(r),E=(parseFloat(h.borderLeftWidth||"0")||0)+(parseFloat(h.borderRightWidth||"0")||0);a.value=Math.max(0,p.width-E);};onMounted(()=>{let r=o.value;r&&(typeof ResizeObserver<"u"&&(s=new ResizeObserver(f),s.observe(r)),f());}),onUnmounted(()=>{s?.disconnect();});let v=ref((()=>{if(!m)return {};let r={};for(let[p,h]of Object.entries(m))r[p]={widthPx:h};return r})()),c=r=>{v.value=r;},u=computed(()=>{let r=i.value?CHECKBOX_COLUMN_WIDTH:0;return n.value.reduce((p,h)=>p+(h.minWidth??estimateHeaderMinWidth(h.name))+CELL_PADDING,r)});watch(l,r=>{let p=new Set(r.map(R=>R.columnId)),h=v.value,E=Object.keys(h),T=E.filter(R=>p.has(R));if(T.length<E.length){let R={};for(let L of T)R[L]=h[L];v.value=R;}});let C=computed(()=>{let r=i.value?CHECKBOX_COLUMN_WIDTH:0;return n.value.reduce((p,h)=>{let E=v.value[h.columnId],T=h.minWidth??estimateHeaderMinWidth(h.name),R=E?E.widthPx:h.idealWidth??h.defaultWidth??T;return p+Math.max(T,R)+CELL_PADDING},r)});return {containerWidth:a,minTableWidth:u,desiredTableWidth:C,columnSizingOverrides:v,setColumnSizingOverrides:c,onColumnResized:d}}function nn(e){let{columns:o,pinnedColumns:n,onColumnPinned:l}=e,i={};for(let u of o.value)u.pinned&&(i[u.columnId]=u.pinned);let m=ref(i),d=computed(()=>n?.value??m.value);return {pinnedColumns:d,pinColumn:(u,C)=>{let r={...d.value,[u]:C};m.value=r,l?.(u,C);},unpinColumn:u=>{let{[u]:C,...r}=d.value;m.value=r,l?.(u,null);},isPinned:u=>d.value[u],computeLeftOffsets:(u,C,r,p,h)=>{let E={},T=p?h:0;for(let R of u)d.value[R.columnId]==="left"&&(E[R.columnId]=T,T+=C[R.columnId]??r);return E},computeRightOffsets:(u,C,r)=>{let p={},h=0;for(let E=u.length-1;E>=0;E--){let T=u[E];d.value[T.columnId]==="right"&&(p[T.columnId]=h,h+=C[T.columnId]??r);}return p}}}function ln(e){let{columns:o,pinnedColumns:n,onPinColumn:l,onUnpinColumn:i,onSort:m,onColumnResized:d,onAutosizeColumn:a,sortBy:s,sortDirection:f}=e,v=ref(false),c=ref(null),u=ref(null),C=(g,y)=>{c.value=g,u.value=y,v.value=true;},r=()=>{v.value=false,c.value=null,u.value=null;},p=computed(()=>c.value?o.value.find(g=>g.columnId===c.value):void 0),h=computed(()=>c.value?n.value[c.value]:void 0),E=computed(()=>h.value!=="left"),T=computed(()=>h.value!=="right"),R=computed(()=>!!h.value),L=computed(()=>!c.value||!s?.value||s.value!==c.value?null:f?.value??null),z=computed(()=>p.value?.sortable!==false),W=ref(true);return {isOpen:v,openForColumn:c,anchorElement:u,open:C,close:r,handlePinLeft:()=>{c.value&&E.value&&(l(c.value,"left"),r());},handlePinRight:()=>{c.value&&T.value&&(l(c.value,"right"),r());},handleUnpin:()=>{c.value&&R.value&&(i(c.value),r());},handleSortAsc:()=>{c.value&&m&&(m(c.value,"asc"),r());},handleSortDesc:()=>{c.value&&m&&(m(c.value,"desc"),r());},handleClearSort:()=>{c.value&&m&&(m(c.value,null),r());},handleAutosizeThis:()=>{let g=a??d;if(!c.value||!g||!W.value)return;let y=p.value;g(c.value,measureColumnContentWidth(c.value,y?.minWidth)),r();},handleAutosizeAll:()=>{let g=a??d;g&&(o.value.forEach(y=>{g(y.columnId,measureColumnContentWidth(y.columnId,y.minWidth));}),r());},canPinLeft:E,canPinRight:T,canUnpin:R,currentSort:L,isSortable:z,isResizable:W}}var Ze=()=>{},Lr=async()=>{},Br=(e,o,n)=>{},Hr=e=>{},Vr=e=>{};function an(e){let{props:o,wrapperRef:n}=e,l=computed(()=>o.value.items),i=o.value.getRowId,m=computed(()=>o.value.rowSelection??"none"),d=computed(()=>o.value.selectedRows),a=computed(()=>o.value.editable),s=computed(()=>o.value.cellSelection!==false),f=computed(()=>o.value.pinnedColumns),v=ref(0),c=()=>{v.value++;},u=en({onCellValueChanged:o.value.onCellValueChanged,afterChange:c}),C=computed(()=>u.onCellValueChanged),r=computed(()=>flattenColumns(o.value.columns)),p=computed(()=>{let Q=f.value;return !Q||Object.keys(Q).length===0?r.value:r.value.map(Z=>{let re=Q[Z.columnId];return re&&Z.pinned!==re?{...Z,pinned:re}:Z})}),h=computed(()=>resolveResponsiveConfig(o.value.responsiveColumns)),E=computed(()=>{let Q=o.value.visibleColumns,Z=o.value.columnOrder,re=Q?p.value.filter(se=>Q.has(se.columnId)):p.value;if(!Z?.length)return re;let me=new Map;for(let se=0;se<Z.length;se++)me.set(Z[se],se);return [...re].sort((se,Me)=>{let ye=me.get(se.columnId)??-1,he=me.get(Me.columnId)??-1;return ye===-1&&he===-1?0:ye===-1?1:he===-1?-1:ye-he})}),T=ref(0),R=computed(()=>applyResponsiveHiding(E.value,T.value,h.value)),L=computed(()=>R.value.length),z=computed(()=>m.value==="multiple"),W=computed(()=>!!o.value.showRowNumbers),D=computed(()=>(z.value?1:0)+(W.value?1:0)),x=computed(()=>L.value+D.value),P=D,M=shallowRef(new Map);watch(l,Q=>{let Z=M.value;Z.clear(),Q.forEach((re,me)=>Z.set(i(re),me)),triggerRef(M);},{immediate:true});let O=Kt({items:l,getRowId:i,rowSelection:m,controlledSelectedRows:d,onSelectionChange:o.value.onSelectionChange}),{editingCell:S,setEditingCell:w,pendingEditorValue:b,setPendingEditorValue:g}=$t(),{activeCell:y,setActiveCell:I}=qt(n,S),k=computed(()=>l.value.length),$=computed(()=>R.value.length),{selectionRange:H,setSelectionRange:K,handleCellMouseDown:F,handleSelectAllCells:X,isDragging:B}=Xt({colOffset:P,rowCount:k,visibleColCount:$,setActiveCell:I,wrapperRef:n}),{contextMenuPosition:oe,setContextMenuPosition:Y,handleCellContextMenu:V,closeContextMenu:ee}=jt(),{handleCopy:te,handleCut:we,handlePaste:Fe,cutRange:Ke,copyRange:Pe,clearClipboardRanges:xe}=Yt({items:l,visibleCols:R,colOffset:P,selectionRange:H,activeCell:y,editable:a,onCellValueChanged:C,beginBatch:u.beginBatch,endBatch:u.endBatch}),Ne=(Q,Z,re)=>{Q.button===0&&(n.value?.focus({preventScroll:true}),xe(),F(Q,Z,re));},{handleFillHandleMouseDown:He,fillDown:We}=Qt({items:l,visibleCols:R,editable:a,onCellValueChanged:C,selectionRange:H,setSelectionRange:K,setActiveCell:I,colOffset:P,wrapperRef:n,beginBatch:u.beginBatch,endBatch:u.endBatch}),{handleGridKeyDown:$e}=Zt({data:{items:l,visibleCols:R,colOffset:P,hasCheckboxCol:z,visibleColumnCount:L,getRowId:i},state:{activeCell:y,selectionRange:H,editingCell:S,selectedRowIds:O.selectedRowIds},handlers:{setActiveCell:I,setSelectionRange:K,setEditingCell:w,handleRowCheckboxChange:O.handleRowCheckboxChange,handleCopy:te,handleCut:we,handlePaste:Fe,setContextMenu:Y,onUndo:u.undo,onRedo:u.redo,clearClipboardRanges:xe},features:{editable:a,onCellValueChanged:C,rowSelection:m,wrapperRef:n,fillDown:We,onKeyDown:computed(()=>o.value.onKeyDown)}}),{containerWidth:et,minTableWidth:tt,desiredTableWidth:ct,columnSizingOverrides:Ue,setColumnSizingOverrides:mt}=tn({wrapperRef:n,visibleCols:E,flatColumns:p,hasCheckboxCol:z,initialColumnWidths:o.value.initialColumnWidths,onColumnResized:(Q,Z)=>o.value.onColumnResized?.(Q,Z)});watch(et,Q=>{T.value=Q;},{immediate:true});let Ie=nn({columns:p,pinnedColumns:f,onColumnPinned:o.value.onColumnPinned}),gt=(Q,Z)=>{mt({...Ue.value,[Q]:{widthPx:Z}}),o.value.onColumnResized?.(Q,Z);},ae=ln({columns:p,pinnedColumns:Ie.pinnedColumns,onPinColumn:Ie.pinColumn,onUnpinColumn:Ie.unpinColumn,onSort:o.value.onColumnSort,onColumnResized:o.value.onColumnResized,onAutosizeColumn:gt,sortBy:computed(()=>o.value.sortBy),sortDirection:computed(()=>o.value.sortDirection)}),Oe=ref({});watch([R,et,Ue],()=>{nextTick(()=>{let Q=n.value;if(!Q)return;let Z=Q.querySelectorAll("th[data-column-id]");if(Z.length===0)return;let re={};Z.forEach(ye=>{let he=ye.getAttribute("data-column-id");he&&(re[he]=ye.offsetWidth);});let me=Oe.value,se=Object.keys(re),Me=se.length!==Object.keys(me).length;if(!Me){for(let ye of se)if(me[ye]!==re[ye]){Me=true;break}}Me&&(Oe.value=re);});},{flush:"post"});let nt=computed(()=>{let Q={};for(let Z of R.value){let re=Ue.value[Z.columnId];Q[Z.columnId]=re?re.widthPx:Z.idealWidth??Z.defaultWidth??Z.minWidth??DEFAULT_MIN_COLUMN_WIDTH;}return Q}),ot=computed(()=>Ie.computeLeftOffsets(R.value,nt.value,DEFAULT_MIN_COLUMN_WIDTH,z.value,CHECKBOX_COLUMN_WIDTH)),Ee=computed(()=>Ie.computeRightOffsets(R.value,nt.value,DEFAULT_MIN_COLUMN_WIDTH)),lt=computed(()=>computeAggregations(l.value,R.value,s.value?H.value:null)),rt=computed(()=>{let Q=getDataGridStatusBarConfig(o.value.statusBar,l.value.length,O.selectedRowIds.value.size);return Q?{...Q,aggregation:lt.value??void 0}:null}),_e=computed(()=>l.value.length===0&&!!o.value.emptyState&&!o.value.isLoading),Ct=computed(()=>H.value!=null||y.value!=null),ht=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})),Ve=computed(()=>({editingCell:S.value,activeCell:s.value?y.value:null,selectionRange:s.value?H.value:null,cutRange:s.value?Ke.value:null,copyRange:s.value?Pe.value:null,colOffset:P.value,itemsLength:l.value.length,getRowId:i,editable:a.value,onCellValueChanged:C.value,isDragging:s.value?B.value:false,getFormulaValue:o.value.getFormulaValue,hasFormula:o.value.hasFormula,getFormula:o.value.getFormula,formulaVersion:o.value.formulaVersion})),ft=ref(null),at=Q=>{ft.value=Q;},Rt=(Q,Z,re,me,se,Me,ye)=>{let he=R.value.find(ge=>ge.columnId===Z);if(he){let ge=parseValue(me,re,Q,he);if(!ge.valid){w(null),at(null),g(void 0);return}me=ge.value;}if(w(null),at(null),g(void 0),Object.is(me,re)||C.value?.({item:Q,columnId:Z,oldValue:re,newValue:me,rowIndex:se}),!ye?.skipAdvance&&se<l.value.length-1){let ge=se+1,yt=Me-P.value;I({rowIndex:ge,columnIndex:Me}),K({startRow:ge,startCol:yt,endRow:ge,endCol:yt});}},xt=()=>{w(null),at(null),g(void 0);},ve=computed(()=>({flatColumns:p.value,visibleCols:R.value,visibleColumnCount:L.value,totalColCount:x.value,colOffset:P.value,hasCheckboxCol:z.value,hasRowNumbersCol:W.value,rowIndexByRowId:M.value,containerWidth:et.value,minTableWidth:tt.value,desiredTableWidth:ct.value,columnSizingOverrides:Ue.value,setColumnSizingOverrides:mt,onColumnResized:o.value.onColumnResized,measuredColumnWidths:Oe.value,stickyHeader:o.value.stickyHeader??true})),bt=computed(()=>({selectedRowIds:O.selectedRowIds.value,updateSelection:O.updateSelection,handleRowCheckboxChange:O.handleRowCheckboxChange,handleSelectAll:O.handleSelectAll,allSelected:O.allSelected.value,someSelected:O.someSelected.value})),It=computed(()=>({editingCell:S.value,setEditingCell:w,pendingEditorValue:b.value,setPendingEditorValue:g,commitCellEdit:Rt,cancelPopoverEdit:xt,popoverAnchorEl:ft.value,setPopoverAnchorEl:at})),qe=computed(()=>(v.value,{activeCell:s.value?y.value:null,setActiveCell:s.value?I:Ze,selectionRange:s.value?H.value:null,setSelectionRange:s.value?K:Ze,handleCellMouseDown:s.value?Ne:Br,handleSelectAllCells:s.value?X:Ze,hasCellSelection:s.value?Ct.value:false,handleGridKeyDown:s.value?$e:Hr,handleFillHandleMouseDown:s.value?He:Ze,handleCopy:s.value?te:Ze,handleCut:s.value?we:Ze,handlePaste:s.value?Fe:Lr,cutRange:s.value?Ke.value:null,copyRange:s.value?Pe.value:null,clearClipboardRanges:s.value?xe:Ze,canUndo:u.canUndo.value,canRedo:u.canRedo.value,onUndo:u.undo,onRedo:u.redo,isDragging:s.value?B.value:false})),St=computed(()=>({menuPosition:s.value?oe.value:null,setMenuPosition:s.value?Y:Ze,handleCellContextMenu:s.value?V:Vr,closeContextMenu:s.value?ee:Ze})),Tt=computed(()=>({headerFilterInput:ht.value,cellDescriptorInput:Ve.value,statusBarConfig:rt.value,showEmptyInGrid:_e.value,onCellError:o.value.onCellError})),Pt=computed(()=>({pinnedColumns:Ie.pinnedColumns.value,pinColumn:Ie.pinColumn,unpinColumn:Ie.unpinColumn,isPinned:Ie.isPinned,leftOffsets:ot.value,rightOffsets:Ee.value,headerMenu:{isOpen:ae.isOpen.value,openForColumn:ae.openForColumn.value,anchorElement:ae.anchorElement.value,open:ae.open,close:ae.close,handlePinLeft:ae.handlePinLeft,handlePinRight:ae.handlePinRight,handleUnpin:ae.handleUnpin,handleSortAsc:ae.handleSortAsc,handleSortDesc:ae.handleSortDesc,handleClearSort:ae.handleClearSort,handleAutosizeThis:ae.handleAutosizeThis,handleAutosizeAll:ae.handleAutosizeAll,canPinLeft:ae.canPinLeft.value,canPinRight:ae.canPinRight.value,canUnpin:ae.canUnpin.value,currentSort:ae.currentSort.value,isSortable:ae.isSortable.value,isResizable:ae.isResizable.value}}));return {layout:ve,rowSelection:bt,editing:It,interaction:qe,contextMenu:St,viewModels:Tt,pinning:Pt}}function sn(e){let{columnSizingOverrides:o,setColumnSizingOverrides:n,minWidth:l=80,defaultWidth:i=120,onColumnResized:m}=e,d=0,a=null;return onUnmounted(()=>{a?.(),a=null;}),{handleResizeStart:(c,u)=>{c.preventDefault(),c.stopPropagation();let C=c.clientX,r=u.columnId,p=c.currentTarget.parentElement,h=p?p.getBoundingClientRect().width:o.value[r]?.widthPx??u.idealWidth??u.defaultWidth??i,E=h,T=document.body.style.cursor,R=document.body.style.userSelect;document.body.style.cursor="col-resize",document.body.style.userSelect="none";let L=()=>{n({...o.value,[r]:{widthPx:E}});},z=r===ROW_NUMBER_COLUMN_ID?ROW_NUMBER_COLUMN_MIN_WIDTH:l,W=P=>{let M=P.clientX-C;E=Math.max(z,h+M),d||(d=requestAnimationFrame(()=>{d=0,L();}));},D=()=>{document.removeEventListener("pointermove",W),document.removeEventListener("pointerup",x),a=null,document.body.style.cursor=T,document.body.style.userSelect=R,d&&(cancelAnimationFrame(d),d=0);},x=()=>{D(),L(),m?.(r,E);};document.addEventListener("pointermove",W),document.addEventListener("pointerup",x),a=D;},handleResizeDoubleClick:(c,u)=>{c.preventDefault(),c.stopPropagation();let C=u.columnId,p=(c.currentTarget.closest("th")??c.currentTarget.parentElement)?.closest("table")?.parentElement??void 0,h=measureColumnContentWidth(C,l,p);n({...o.value,[C]:{widthPx:h}}),m?.(C,h);},getColumnWidth:c=>o.value[c.columnId]?.widthPx??c.idealWidth??c.defaultWidth??i}}function un(e,o){let n=ref(e.value),l;return watch(e,i=>{l!==void 0&&clearTimeout(l),l=setTimeout(()=>{n.value=i;},o);}),onUnmounted(()=>{l!==void 0&&clearTimeout(l);}),n}function Mo(e,o){let n,l=e,i,m=((...d)=>{l=e,i=d,n!==void 0&&clearTimeout(n),n=setTimeout(()=>{l(...d),i=void 0,n=void 0;},o);});return m.cancel=()=>{n!==void 0&&clearTimeout(n),n=void 0,i=void 0;},m.flush=()=>{if(n!==void 0&&i!==void 0){clearTimeout(n),n=void 0;let d=i;i=void 0,l(...d);}},onUnmounted(()=>{n!==void 0&&clearTimeout(n);}),m}function dn(e){let{textValue:o="",onTextChange:n}=e,l=ref(o);return watch(e.isFilterOpen,a=>{a&&(l.value=e.textValue??"");}),{tempTextValue:l,setTempTextValue:a=>{l.value=a;},handleTextApply:()=>{n?.(l.value.trim());},handleTextClear:()=>{l.value="";}}}var Yr=150,Zn=[];function cn(e){let{onFilterChange:o}=e,n=ref(new Set(e.selectedValues??Zn)),l=ref(""),i=un(l,Yr);watch(e.isFilterOpen,u=>{u&&(n.value=new Set(e.selectedValues??Zn),l.value="");});let m=computed(()=>{let u=e.options??Zn;if(!i.value.trim())return u;let C=i.value.toLowerCase().trim();return u.filter(r=>r.toLowerCase().includes(C))});return {tempSelected:n,setTempSelected:u=>{n.value=u;},searchText:l,setSearchText:u=>{l.value=u;},debouncedSearchText:i,filteredOptions:m,handleCheckboxChange:(u,C)=>{let r=new Set(n.value);C?r.add(u):r.delete(u),n.value=r;},handleSelectAll:()=>{n.value=new Set(m.value);},handleClearSelection:()=>{n.value=new Set;},handleApplyMultiSelect:()=>{o?.(Array.from(n.value));}}}var Jr=300;function fn(e){let{onUserChange:o,filterType:n}=e,l=ref(null),i,m=ref([]),d=ref(false),a=ref(""),s=c=>{a.value=c;};return watch(e.isFilterOpen,c=>{c&&(a.value="",m.value=[],n==="people"&&setTimeout(()=>l.value?.focus(),50));}),watch([a,()=>e.peopleSearch,e.isFilterOpen],([c,u,C])=>{if(i&&clearTimeout(i),!(!u||!C||n!=="people")){if(!c.trim()){m.value=[];return}d.value=true,i=setTimeout(async()=>{try{let r=await u(c);m.value=r.slice(0,10);}catch{m.value=[];}finally{d.value=false;}},Jr);}}),onUnmounted(()=>{i&&clearTimeout(i);}),{peopleSuggestions:m,isPeopleLoading:d,peopleSearchText:a,setPeopleSearchText:s,peopleInputRef:l,handleUserSelect:c=>{o?.(c);},handleClearUser:()=>{o?.(void 0);}}}function pn(e){let{onDateChange:o}=e,n=ref(e.dateValue?.from??""),l=ref(e.dateValue?.to??"");return watch(e.isFilterOpen,s=>{s&&(n.value=e.dateValue?.from??"",l.value=e.dateValue?.to??"");}),{tempDateFrom:n,setTempDateFrom:s=>{n.value=s;},tempDateTo:l,setTempDateTo:s=>{l.value=s;},handleDateApply:()=>{let s=n.value||void 0,f=l.value||void 0;o?.(s||f?{from:s,to:f}:void 0);},handleDateClear:()=>{n.value="",l.value="";}}}var na=[];function Ho(e){let{filterType:o,onSort:n}=e,l=()=>e.selectedValues??na,i=ref(null),m=ref(null),d=ref(false),a=ref(null),s=g=>{d.value=g;},f=dn({textValue:e.textValue,onTextChange:e.onTextChange,isFilterOpen:d}),v=cn({selectedValues:e.selectedValues,onFilterChange:e.onFilterChange,options:e.options,isFilterOpen:d}),c=fn({selectedUser:e.selectedUser,onUserChange:e.onUserChange,peopleSearch:e.peopleSearch,isFilterOpen:d,filterType:o}),u=pn({dateValue:e.dateValue,onDateChange:e.onDateChange,isFilterOpen:d});watch(d,g=>{g||(a.value=null);});let C=null,r=null,p,h=()=>{E(),C=g=>{let y=g.target;m.value&&!m.value.contains(y)&&i.value&&!i.value.contains(y)&&(d.value=false);},r=g=>{(g.key==="Escape"||g.key==="Esc")&&(g.preventDefault(),g.stopPropagation(),d.value=false);},p=setTimeout(()=>{C&&document.addEventListener("mousedown",C);},0),document.addEventListener("keydown",r,true);},E=()=>{p&&clearTimeout(p),C&&document.removeEventListener("mousedown",C),r&&document.removeEventListener("keydown",r,true),C=null,r=null;};watch(d,g=>{g?h():E();}),onUnmounted(()=>E());let T=g=>{if(g.stopPropagation(),g.preventDefault(),!d.value&&i.value){let y=i.value.getBoundingClientRect();a.value={top:y.bottom+4,left:y.left};}d.value=!d.value;},R=g=>{g.stopPropagation(),n?.();},L=()=>{v.handleApplyMultiSelect(),d.value=false;},z=()=>{f.handleTextApply(),d.value=false;},W=g=>{c.handleUserSelect(g),d.value=false;},D=()=>{c.handleClearUser(),d.value=false;},x=()=>{u.handleDateApply(),d.value=false;},P=g=>g.stopPropagation(),M=g=>g.stopPropagation(),O=g=>g.stopPropagation(),S=g=>g.stopPropagation(),w=g=>{g.key!=="Escape"&&g.key!=="Esc"&&g.stopPropagation();},b=computed(()=>o==="multiSelect"?l().length>0:o==="text"?!!(e.textValue??"").trim():o==="people"?!!e.selectedUser:o==="date"?!!(e.dateValue?.from||e.dateValue?.to):false);return {headerRef:i,popoverRef:m,peopleInputRef:c.peopleInputRef,isFilterOpen:d,setFilterOpen:s,tempSelected:v.tempSelected,setTempSelected:v.setTempSelected,tempTextValue:f.tempTextValue,setTempTextValue:f.setTempTextValue,searchText:v.searchText,setSearchText:v.setSearchText,debouncedSearchText:v.debouncedSearchText,filteredOptions:v.filteredOptions,peopleSuggestions:c.peopleSuggestions,isPeopleLoading:c.isPeopleLoading,peopleSearchText:c.peopleSearchText,setPeopleSearchText:c.setPeopleSearchText,tempDateFrom:u.tempDateFrom,setTempDateFrom:u.setTempDateFrom,tempDateTo:u.tempDateTo,setTempDateTo:u.setTempDateTo,hasActiveFilter:b,popoverPosition:a,handlers:{handleFilterIconClick:T,handleApplyMultiSelect:L,handleTextApply:z,handleTextClear:f.handleTextClear,handleUserSelect:W,handleClearUser:D,handleCheckboxChange:v.handleCheckboxChange,handleSelectAll:v.handleSelectAll,handleClearSelection:v.handleClearSelection,handlePopoverClick:P,handleInputFocus:M,handleInputMouseDown:O,handleInputClick:S,handleInputKeyDown:w,handleDateApply:x,handleDateClear:u.handleDateClear,handleSortClick:R}}}function zo(e){let{columns:o,visibleColumns:n,onVisibilityChange:l}=e,i=ref(false),m=null,d=()=>{a(),m=h=>{h.key==="Escape"&&(h.preventDefault(),i.value=false);},document.addEventListener("keydown",m,true);},a=()=>{m&&(document.removeEventListener("keydown",m,true),m=null);};watch(i,h=>{h?d():a();}),onUnmounted(()=>a());let s=h=>{i.value=h;},f=()=>{i.value=!i.value;},v=()=>{i.value=false;},c=h=>E=>{l(h,E);},u=()=>{o.value.forEach(h=>{n.value.has(h.columnId)||l(h.columnId,true);});},C=()=>{o.value.forEach(h=>{!h.required&&n.value.has(h.columnId)&&l(h.columnId,false);});},r=computed(()=>n.value.size),p=computed(()=>o.value.length);return {open:i,setOpen:s,handleToggle:f,handleClose:v,handleCheckboxChange:c,handleSelectAll:u,handleClearAll:C,visibleCount:r,totalCount:p}}function Go(e){let{value:o,editorType:n,onCommit:l,onCancel:i,dateFormat:m,dateEditorType:d}=e,a=m??DEFAULT_DATE_FORMAT,s=ref((()=>{if(o==null)return "";if(n==="date"){if(d==="native"){let p=String(o);return p.match(/^\d{4}-\d{2}-\d{2}/)?p.substring(0,10):p}return formatDateForDisplay(o,a)??""}return String(o)})()),f=p=>{s.value=p;},v=p=>{if(n==="date"&&d!=="native"){if(!p||!p.trim()){l(null);return}let h=parseUserInputDate(p,a);if(h!==null){let E=h.getUTCFullYear().toString().padStart(4,"0"),T=(h.getUTCMonth()+1).toString().padStart(2,"0"),R=h.getUTCDate().toString().padStart(2,"0");l(`${E}-${T}-${R}`);}else l(null);}else l(p);},c=p=>{l(p);},u=()=>{i();};return {localValue:s,setLocalValue:f,handleKeyDown:p=>{p.key==="Escape"&&(p.preventDefault(),p.stopPropagation(),u()),p.key==="Enter"&&(n==="text"||n==="date")&&(p.preventDefault(),p.stopPropagation(),v(s.value));},handleBlur:()=>{(n==="text"||n==="date")&&v(s.value);},commit:c,cancel:u}}function Wo(e){let{values:o,formatValue:n,initialValue:l,onCommit:i,onCancel:m}=e,d=ref(""),a=o.findIndex(r=>String(r)===String(l)),s=ref(Math.max(a,0)),f=r=>{d.value=r;},v=r=>n?n(r):r!=null?String(r):"",c=computed(()=>{if(!d.value.trim())return o;let r=d.value.toLowerCase();return o.filter(p=>v(p).toLowerCase().includes(r))}),u=r=>{i(r);};return {searchText:d,setSearchText:f,filteredValues:c,highlightedIndex:s,handleKeyDown:r=>{switch(r.key){case "ArrowDown":r.preventDefault(),s.value=Math.min(s.value+1,c.value.length-1);break;case "ArrowUp":r.preventDefault(),s.value=Math.max(s.value-1,0);break;case "Enter":r.preventDefault(),r.stopPropagation(),c.value.length>0&&s.value<c.value.length&&u(c.value[s.value]);break;case "Escape":r.preventDefault(),r.stopPropagation(),m();break}},selectValue:u,getDisplayText:v}}var va=8,ga=5;function gn(e){let{columnOrder:o,onColumnOrderChange:n,tableRef:l,pinnedColumns:i}=e,m=ref(false),d=ref(null),a=null,s="unpinned",f=0,v=null;return onUnmounted(()=>{v?.(),v=null;}),{isDragging:m,dropIndicatorX:d,handleHeaderMouseDown:(u,C)=>{if(C.button!==0)return;let r=C.target.closest("th");if(r){let P=r.getBoundingClientRect();if(C.clientX>P.right-va)return}if(C.preventDefault(),!l.value||!n.value)return;a=u,s=getPinStateForColumn(u,i?.value),d.value=null;let h=C.clientX,E=false,T=C.clientX,R=-1,L=document.body.style.cursor,z=document.body.style.userSelect;document.body.style.cursor="grabbing",document.body.style.userSelect="none";let W=P=>{!E&&Math.abs(P.clientX-h)<ga||(E||(E=true,m.value=true),T=P.clientX,f||(f=requestAnimationFrame(()=>{f=0;let M=l.value;if(!M||!a)return;let O=calculateDropTarget({mouseX:T,columnOrder:o.value,draggedColumnId:a,draggedPinState:s,tableElement:M,pinnedColumns:i?.value});O?(R=O.targetIndex,d.value=O.indicatorX):d.value=null;})));},D=()=>{window.removeEventListener("pointermove",W,true),window.removeEventListener("pointerup",x,true),v=null,document.body.style.cursor=L,document.body.style.userSelect=z,f&&(cancelAnimationFrame(f),f=0);},x=()=>{if(D(),E&&a&&R>=0&&n.value){let P=reorderColumnArray(o.value,a,R);n.value(P);}a=null,m.value=false,d.value=null,R=-1;};window.addEventListener("pointermove",W,true),window.addEventListener("pointerup",x,true),v=D;}}}var Ia=100;function hn(e){let{totalRows:o,rowHeight:n,enabled:l,overscan:i=5,threshold:m=Ia,columnsEnabled:d,columnWidths:a,columnOverscan:s=2}=e;onMounted(()=>{validateVirtualScrollConfig({enabled:l.value,rowHeight:n});});let f=ref(null),v=ref(0),c=ref(0),u=ref(0),C=ref(0),r=0,p,h=null,E=computed(()=>l.value&&o.value>=m),T=computed(()=>E.value?computeVisibleRange(v.value,n,u.value,o.value,i):{startIndex:0,endIndex:Math.max(0,o.value-1),offsetTop:0,offsetBottom:0}),R=computed(()=>l.value?computeTotalHeight(o.value,n):0),L=computed(()=>{if(!d?.value)return null;let x=a?.value;return !x||x.length===0?null:computeVisibleColumnRange(c.value,x,C.value,s)}),z=()=>{r||(r=requestAnimationFrame(()=>{r=0;let x=f.value;x&&(v.value=x.scrollTop,c.value=x.scrollLeft);}));},W=()=>{let x=f.value;x&&(u.value=x.clientHeight,C.value=x.clientWidth);};return watch(f,x=>{x!==h&&(h&&h.removeEventListener("scroll",z),p&&(p.disconnect(),p=void 0),h=x,x&&(x.addEventListener("scroll",z,{passive:true}),typeof ResizeObserver<"u"&&(p=new ResizeObserver(W),p.observe(x)),W(),v.value=x.scrollTop,c.value=x.scrollLeft));}),onUnmounted(()=>{let x=f.value;x&&x.removeEventListener("scroll",z),p?.disconnect(),r&&(cancelAnimationFrame(r),r=0);}),{containerRef:f,visibleRange:T,totalHeight:R,scrollToRow:(x,P="start")=>{let M=f.value;M&&(M.scrollTop=getScrollTopForRow(x,n,u.value,P));},columnRange:L,scrollLeft:c}}function bn(e){let{props:o}=e,n=ref(null),l=ref(null),i=ref(null),m=ref(false),d=an({props:o,wrapperRef:n}),a=computed(()=>{let W=o.value;return W.columnOrder?W.columnOrder:flattenColumns(W.columns).filter(D=>W.visibleColumns?.has(D.columnId)??true).map(D=>D.columnId)}),s=computed(()=>o.value.onColumnOrderChange),f=gn({columnOrder:a,onColumnOrderChange:s,tableRef:i}),v=computed(()=>o.value.virtualScroll?.enabled??false),c=computed(()=>o.value.items.length),u=o.value.virtualScroll?.rowHeight??36,C=o.value.virtualScroll?.overscan??5,r=computed(()=>o.value.virtualScroll?.columns===true),p=o.value.virtualScroll?.columnOverscan??2,h=computed(()=>{let W=d.layout.value,{visibleCols:D,columnSizingOverrides:x}=W,P=o.value.pinnedColumns??{},M=[];for(let O of D){if(P[O.columnId]||O.pinned)continue;let S=x[O.columnId];M.push(S?S.widthPx:O.defaultWidth??O.minWidth??DEFAULT_MIN_COLUMN_WIDTH);}return M}),E=hn({totalRows:c,rowHeight:u,enabled:v,overscan:C,columnsEnabled:r,columnWidths:h,columnOverscan:p}),T=computed(()=>{if(!r.value)return null;let D=d.layout.value.visibleCols,x=E.columnRange.value,P=o.value.pinnedColumns;return partitionColumnsForVirtualization(D,x,P)}),R=computed(()=>{let D=d.layout.value.visibleCols,x=new Map;for(let P=0;P<D.length;P++)x.set(D[P].columnId,P);return x}),L=computed(()=>d.layout.value.columnSizingOverrides),z=sn({columnSizingOverrides:L,setColumnSizingOverrides:W=>d.layout.value.setColumnSizingOverrides(W)});return {wrapperRef:n,tableContainerRef:l,tableRef:i,lastMouseShift:m,state:d,columnReorder:f,virtualScroll:E,virtualScrollEnabled:v,columnResize:z,columnPartition:T,globalColIndexMap:R}}function Sn(e,o,n){let l={"data-row-index":e.rowIndex,"data-col-index":e.globalColIndex,...e.isActive?{"data-active-cell":"true"}:{},...e.isInRange?{"data-in-range":"true"}:{},tabindex:e.isActive?0:-1,onPointerdown:i=>{n.setEditingCell(null),n.handleCellMouseDown(i,e.rowIndex,e.globalColIndex);},onClick:()=>n.setActiveCell({rowIndex:e.rowIndex,columnIndex:e.globalColIndex}),onContextmenu:i=>n.handleCellContextMenu(i)};return e.canEditAny&&(l.role="button",l.onDblclick=()=>n.setEditingCell({rowId:e.rowId,columnId:o})),l}var Ko=()=>{};function Ba(e){return defineComponent({name:"DataGridTable",props:{gridProps:{type:Object,required:true}},setup(o){let n=computed(()=>o.gridProps),{wrapperRef:l,tableContainerRef:i,tableRef:m,lastMouseShift:d,state:a,columnReorder:{isDragging:s,dropIndicatorX:f,handleHeaderMouseDown:v},virtualScroll:{containerRef:c,visibleRange:u,totalHeight:C,scrollToRow:r},virtualScrollEnabled:p,columnResize:{handleResizeStart:h$1,handleResizeDoubleClick:E,getColumnWidth:T},columnPartition:R,globalColIndexMap:L}=bn({props:n}),z=computed(()=>{let b=n.value;return b.showRowNumbers||b.showColumnLetters?((b.currentPage??1)-1)*(b.pageSize??25):0});watch([()=>a.interaction.value.activeCell,z],([b,g])=>{let y=n.value.onActiveCellChange;y&&y(b?formatCellReference(b.columnIndex-a.layout.value.colOffset,g+b.rowIndex+1):null);},{immediate:true});let W=b=>{d.value=b.shiftKey;},D=b=>{b.button===0&&b.preventDefault();},x=b=>{b.button===0&&b.preventDefault();},P=b=>{b.preventDefault();},M=b=>b.preventDefault(),O=b=>b.stopPropagation(),S=computed(()=>buildHeaderRows(n.value.columns,n.value.visibleColumns)),w=computed(()=>{let b=a.layout.value,g=a.pinning.value,{visibleCols:y,columnSizingOverrides:I,measuredColumnWidths:k}=b,{leftOffsets:$,rightOffsets:H}=g,K={},F={},X={},B={};for(let oe=0;oe<y.length;oe++){let Y=y[oe],V=Y.pinned==="left",ee=Y.pinned==="right",te=T(Y),we=!!I[Y.columnId],Fe=k[Y.columnId],Ke=Y.minWidth??estimateHeaderMinWidth(Y.name),Pe=we?te:Math.max(Ke,Fe??0),xe=Y.width,Ne={minWidth:`${Pe}px`,width:xe??`${te}px`,...xe?{}:{maxWidth:`${te}px`}},He={minWidth:`${Pe}px`,width:xe??`${te}px`,...xe?{}:{maxWidth:`${te}px`}},We=["ogrid-data-cell"],$e=["ogrid-header-cell"];V?(We.push("ogrid-data-cell--pinned-left"),Ne.left=`${$[Y.columnId]??0}px`,$e.push("ogrid-header-cell--pinned-left"),He.left=`${$[Y.columnId]??0}px`):ee&&(We.push("ogrid-data-cell--pinned-right"),Ne.right=`${H[Y.columnId]??0}px`,$e.push("ogrid-header-cell--pinned-right"),He.right=`${H[Y.columnId]??0}px`),K[Y.columnId]=Ne,F[Y.columnId]=We.join(" "),X[Y.columnId]=He,B[Y.columnId]=$e.join(" ");}return {cellStyles:K,cellClasses:F,hdrStyles:X,hdrClasses:B}});return ()=>{let b=o.gridProps,g=a.layout.value,y=a.rowSelection.value,I=a.editing.value,k=a.interaction.value,$=a.contextMenu.value,H=a.viewModels.value,K=a.pinning.value,{headerMenu:F}=K,{visibleCols:X,hasCheckboxCol:B,hasRowNumbersCol:oe,colOffset:Y,containerWidth:V,minTableWidth:ee,desiredTableWidth:te}=g,we=b.currentPage??1,Fe=b.pageSize??25,Ke=oe?(we-1)*Fe:0,{selectedRowIds:Pe,handleRowCheckboxChange:xe,handleSelectAll:Ne,allSelected:He,someSelected:We}=y,{editingCell:$e,setEditingCell:et,pendingEditorValue:tt,setPendingEditorValue:ct,commitCellEdit:Ue,cancelPopoverEdit:mt,popoverAnchorEl:Ie,setPopoverAnchorEl:gt}=I,{setActiveCell:ae,setSelectionRange:Oe,handleCellMouseDown:nt,handleSelectAllCells:ot,selectionRange:Ee,hasCellSelection:lt,handleGridKeyDown:rt,handleFillHandleMouseDown:_e,handleCopy:Ct,handleCut:ht,handlePaste:Ve,cutRange:ft,copyRange:at,canUndo:Rt,canRedo:xt,onUndo:ve,onRedo:bt,isDragging:It}=k,{menuPosition:qe,handleCellContextMenu:St,closeContextMenu:Tt}=$,{headerFilterInput:Pt,cellDescriptorInput:Q,statusBarConfig:Z,showEmptyInGrid:re,onCellError:me}=H,se=b.items,Me=b.getRowId,ye=b.layoutMode??"fill",he=b.rowSelection??"none",ge=b.suppressHorizontalScroll,yt=b.stickyHeader??true,Et=b.isLoading??false,Dn=b.loadingMessage??"Loading\u2026",Fn=b["aria-label"],ke=b["aria-labelledby"],Un=ye==="content",Dt=!ge&&V>0&&(ee>V||te>V),ze=S.value,Ft={commitCellEdit:Ue,setEditingCell:et,setPendingEditorValue:ct,cancelPopoverEdit:mt},On={handleCellMouseDown:nt,setActiveCell:ae,setEditingCell:et,handleCellContextMenu:St},Mn=A=>{if(he!=="single")return;let ie=A.currentTarget.dataset.rowId;ie&&y.updateSelection(Pe.has(ie)?new Set:new Set([ie]));},t=(A,G,ie,Le)=>{try{return U(A,G,ie,Le)}catch(_){return me&&me(_ instanceof Error?_:new Error(String(_)),void 0),""}},U=(A,G,ie,Le)=>{let _=getCellRenderDescriptor(A,G,ie,Le,Q);if(_.mode==="editing-inline"){let ue=buildInlineEditorProps(A,G,_,Ft);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(_.mode==="editing-popover"&&G.cellEditor!=null&&typeof G.cellEditor!="string"){let ue=buildPopoverEditorProps(A,G,_,tt,Ft),ne=G.cellEditor,Bt=resolveCellDisplayContent(G,A,_.displayValue),to=resolveCellStyle(G,A,_.displayValue);return h("div",[h("div",{ref:no=>{no&>(no);},class:"ogrid-popover-anchor"},[to?h("span",{style:to},[Bt]):Bt]),Ie?h(ne,ue):null])}let Be=Sn(_,G.columnId,On),Te=["ogrid-cell-content"];G.type==="numeric"?Te.push("ogrid-cell-content--numeric"):G.type==="boolean"&&Te.push("ogrid-cell-content--boolean"),_.canEditAny&&Te.push("ogrid-cell-content--editable"),_.isActive&&Te.push("ogrid-cell-content--active"),_.isActive&&_.isInRange&&Te.push("ogrid-cell-content--active-in-range"),_.isInRange&&!_.isActive&&Te.push("ogrid-cell-in-range"),_.isInCutRange&&Te.push("ogrid-cell-cut");let Ye;if(_.columnType==="boolean"){let ue=!!_.displayValue;Ye=h("input",{type:"checkbox",checked:ue,disabled:!_.canEditAny,onChange:_.canEditAny?()=>{let ne=_.rowIndex,Bt=_.globalColIndex;Ft.commitCellEdit(A,G.columnId,ue,!ue,ne,Bt,{skipAdvance:true});}:void 0,onPointerdown:ne=>handleBooleanCellPointerDown(ne,_.rowIndex,_.globalColIndex,Y,{setActiveCell:ae,setSelectionRange:Oe}),onClick:ne=>ne.stopPropagation(),style:`margin:0;cursor:${_.canEditAny?"pointer":"default"};outline:none`,"aria-label":ue?"Checked":"Unchecked"});}else {let ue=resolveCellDisplayContent(G,A,_.displayValue),ne=resolveCellStyle(G,A,_.displayValue);Ye=ne?h("span",{style:ne},ue):ue;}return h("div",{...Be,class:Te.join(" ")},[Ye,..._.canEditAny&&_.isSelectionEndCell?[h("div",{onPointerdown:_e,"aria-label":"Fill handle",class:"ogrid-fill-handle"})]:[]])},{cellStyles:le,cellClasses:Re,hdrStyles:it,hdrClasses:st}=w.value,Xe=X.map(A=>({col:A,tdClasses:Re[A.columnId]||"ogrid-data-cell",tdDynamicStyle:le[A.columnId]||{}})),fe=R.value,pt=Xe,je=0,Ce=0;if(fe){let A=new Set;for(let G of fe.pinnedLeft)A.add(G.columnId);for(let G of fe.virtualizedUnpinned)A.add(G.columnId);for(let G of fe.pinnedRight)A.add(G.columnId);pt=Xe.filter(G=>A.has(G.col.columnId)),je=fe.leftSpacerWidth,Ce=fe.rightSpacerWidth;}let be=L.value,Ae=A=>{let G=it[A.columnId]||{};return {classes:st[A.columnId]||"ogrid-header-cell",style:{...G,cursor:s.value?"grabbing":"grab"}}},pe=p.value,De={position:"relative",width:Un?"fit-content":"100%",maxWidth:"100%",overflowX:ge?"hidden":Dt?"auto":"hidden",overflowY:"auto",backgroundColor:"#fff",willChange:"scroll-position",...pe?{flex:"1",minHeight:"0"}:{minHeight:Et&&se.length===0?"200px":"auto"}};return b.rowHeight&&(De["--ogrid-row-height"]=`${b.rowHeight}px`),h("div",{class:"ogrid-outer-container"},[h("div",{ref:A=>{l.value=A,c.value=A;},tabindex:0,role:"region","aria-label":Fn??(ke?void 0:"Data grid"),"aria-labelledby":ke,onPointerdown:W,onKeydown:rt,onContextmenu:M,"data-overflow-x":Dt?"true":"false","data-ogrid-scroll-container":"",style:De},[h("div",{class:"ogrid-scroll-wrapper"},[h("div",{style:{minWidth:Dt?`${ee}px`:void 0,overflowX:"clip"}},[h("div",{ref:A=>{i.value=A;},class:["ogrid-table-container",Et&&se.length>0?"ogrid-table-container--loading":""]},[...s.value&&f.value!==null?[h("div",{class:"ogrid-drop-indicator",style:{left:`${f.value}px`}})]:[],h("table",{ref:A=>{m.value=A;},class:"ogrid-table",role:"grid",style:{minWidth:`${ee}px`},...p.value?{"data-virtual-scroll":""}:{}},[h("thead",{class:yt?"ogrid-thead ogrid-sticky-header":"ogrid-thead"},[...b.showColumnLetters?[h("tr",{class:"ogrid-column-letter-row"},[...B?[h("th",{class:"ogrid-column-letter-cell"})]:[],...oe?[h("th",{class:"ogrid-column-letter-cell"})]:[],...X.map((A,G)=>{let{classes:ie,style:Le}=Ae(A);return h("th",{key:A.columnId,class:`ogrid-column-letter-cell ${ie}`,style:Le},indexToColumnLetter(G))})])]:[],...ze.map((A,G)=>h("tr",{key:G,class:"ogrid-header-row"},[...G===ze.length-1&&B?[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:He,indeterminate:We&&!He,ariaLabel:"Select all rows",onChange:ie=>Ne(!!ie)}))]:[],...G===0&&G<ze.length-1&&B?[h("th",{rowSpan:ze.length-1,class:"ogrid-checkbox-spacer",style:{width:`${CHECKBOX_COLUMN_WIDTH}px`,minWidth:`${CHECKBOX_COLUMN_WIDTH}px`}})]:[],...G===ze.length-1&&oe?[(()=>{let ie=g.columnSizingOverrides[ROW_NUMBER_COLUMN_ID]?.widthPx??ROW_NUMBER_COLUMN_WIDTH;return h("th",{class:"ogrid-row-number-header",style:{width:`${ie}px`,minWidth:`${ie}px`,maxWidth:`${ie}px`,position:"sticky",left:B?`${CHECKBOX_COLUMN_WIDTH}px`:"0",zIndex:3},onPointerdown:D,onMousedown:x,onSelectstart:P},["#",h("div",{onPointerdown:Le=>{ae(null),Oe(null),l.value?.focus({preventScroll:true}),Le.stopPropagation(),h$1(Le,{columnId:ROW_NUMBER_COLUMN_ID,name:"#"});},class:"ogrid-resize-handle",role:"separator","aria-label":"Resize row numbers"})])})()]:[],...G===0&&G<ze.length-1&&oe?[(()=>{let ie=g.columnSizingOverrides[ROW_NUMBER_COLUMN_ID]?.widthPx??ROW_NUMBER_COLUMN_WIDTH;return h("th",{rowSpan:ze.length-1,class:"ogrid-row-number-spacer",style:{width:`${ie}px`,position:"sticky",left:B?`${CHECKBOX_COLUMN_WIDTH}px`:"0",zIndex:3}})})()]:[],...A.map((ie,Le)=>{if(ie.isGroup)return h("th",{key:Le,colSpan:ie.colSpan,scope:"colgroup",class:"ogrid-column-group-header"},ie.label);if(!ie.columnDef)return null;let _=ie.columnDef,{classes:Be,style:Te}=Ae(_),ue=b.sortBy===_.columnId?b.sortDirection==="asc"?"ascending":"descending":void 0;return h("th",{key:_.columnId,scope:"col","data-column-id":_.columnId,rowSpan:ze.length>1?ze.length-G:void 0,class:Be,style:Te,"aria-sort":ue,onPointerdown:ne=>v(_.columnId,ne)},[h("div",{class:"ogrid-header-content"},[h(e.ColumnHeaderFilter,getHeaderFilterConfig(_,Pt)),h("button",{onClick:ne=>{ne.stopPropagation(),F.isOpen&&F.openForColumn===_.columnId?F.close():F.open(_.columnId,ne.currentTarget);},"aria-label":"Column options",title:"Column options",class:"ogrid-column-menu-btn"},"\u22EE")]),h("div",{onPointerdown:ne=>{ae(null),Oe(null),l.value?.focus({preventScroll:true}),ne.stopPropagation(),h$1(ne,_);},onDblclick:ne=>E(ne,_),class:"ogrid-resize-handle",role:"separator","aria-label":`Resize ${_.name??_.columnId}`})])})]))]),...re?[]:[h("tbody",{},(()=>{let A=p.value,G=u.value,ie=A?G.startIndex:0,Le=A?Math.min(G.endIndex,se.length-1):se.length-1,_=[];A&&G.offsetTop>0&&_.push(h("tr",{key:"__vs-top",style:{height:`${G.offsetTop}px`}}));for(let Be=ie;Be<=Le;Be++){let Te=se[Be];if(!Te)continue;let Ye=Me(Te),ue=Pe.has(Ye);_.push(h("tr",{key:Ye,"data-row-id":Ye,"aria-selected":ue||void 0,onClick:Mn,style:{cursor:he==="single"?"pointer":void 0}},[...B?[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":Be,"data-col-index":0,onClick:O,class:"ogrid-checkbox-wrapper"},e.renderCheckbox({modelValue:ue,ariaLabel:`Select row ${Be+1}`,onChange:ne=>xe(Ye,ne,Be,d.value)})))]:[],...oe?[(()=>{let ne=g.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:B?`${CHECKBOX_COLUMN_WIDTH}px`:"0",zIndex:2,userSelect:"none",WebkitUserSelect:"none"},onPointerdown:D,onMousedown:x,onSelectstart:P},String(Ke+Be+1))})()]:[],...je>0?[h("td",{key:"__col-spacer-left",style:{width:`${je}px`,minWidth:`${je}px`,maxWidth:`${je}px`,padding:"0"}})]:[],...pt.map(ne=>h("td",{key:ne.col.columnId,"data-column-id":ne.col.columnId,class:ne.tdClasses,style:{...ne.tdDynamicStyle,userSelect:"none",WebkitUserSelect:"none"},onPointerdown:D,onMousedown:x,onSelectstart:P},[t(Te,ne.col,Be,be.get(ne.col.columnId)??0)])),...Ce>0?[h("td",{key:"__col-spacer-right",style:{width:`${Ce}px`,minWidth:`${Ce}px`,maxWidth:`${Ce}px`,padding:"0"}})]:[]]));}return A&&G.offsetBottom>0&&_.push(h("tr",{key:"__vs-bottom",style:{height:`${G.offsetBottom}px`}})),_})())]]),...re&&b.emptyState?[e.renderEmptyState(b.emptyState)]:[]])])])]),...qe?[h(Teleport,{to:"body"},h(e.GridContextMenu,{x:qe.x,y:qe.y,hasSelection:lt,canUndo:Rt,canRedo:xt,onUndo:ve??Ko,onRedo:bt??Ko,onCopy:Ct,onCut:ht,onPaste:()=>{Ve();},onSelectAll:ot,onClose:Tt}))]:[],h(An,{containerRef:i,selectionRange:Ee,copyRange:at,cutRange:ft,colOffset:Y,items:se,visibleColumns:b.visibleColumns instanceof Set?Array.from(b.visibleColumns):b.visibleColumns,columnSizingOverrides:g.columnSizingOverrides,columnOrder:b.columnOrder}),...b.formulaReferences&&b.formulaReferences.length>0?[h(zn,{containerEl:i.value,references:b.formulaReferences,colOffset:Y})]:[],h(e.ColumnHeaderMenu,{isOpen:F.isOpen,anchorElement:F.anchorElement,onClose:F.close,onPinLeft:F.handlePinLeft,onPinRight:F.handlePinRight,onUnpin:F.handleUnpin,onSortAsc:F.handleSortAsc,onSortDesc:F.handleSortDesc,onClearSort:F.handleClearSort,onAutosizeThis:F.handleAutosizeThis,onAutosizeAll:F.handleAutosizeAll,canPinLeft:F.canPinLeft,canPinRight:F.canPinRight,canUnpin:F.canUnpin,currentSort:F.currentSort,isSortable:F.isSortable,isResizable:F.isResizable}),...Z?[h(Ln,{totalCount:Z.totalCount,filteredCount:Z.filteredCount,selectedCount:Z.selectedCount??Pe.size,selectedCellCount:Ee?(Math.abs(Ee.endRow-Ee.startRow)+1)*(Math.abs(Ee.endCol-Ee.startCol)+1):void 0,aggregation:Z.aggregation,suppressRowCount:Z.suppressRowCount})]:[],...Et?[h("div",{class:"ogrid-loading-overlay"},e.renderSpinner(Dn))]:[]])}}})}var wt={width:"100%",height:"100%",display:"flex",alignItems:"center",paddingTop:"var(--ogrid-cell-padding-vertical, 6px)",paddingBottom:"var(--ogrid-cell-padding-vertical, 6px)",paddingLeft:"var(--ogrid-cell-padding-horizontal, 10px)",paddingRight:"var(--ogrid-cell-padding-horizontal, 10px)",boxSizing:"border-box",overflow:"hidden",minWidth:"0"};function $a(e){let{renderCheckbox:o}=e;return defineComponent({name:"InlineCellEditor",props:{value:{default:void 0},item:{type:Object,required:true},column:{type:Object,required:true},rowIndex:{type:Number,required:true},editorType:{type:String,required:true},onCommit:{type:Function,required:true},onCancel:{type:Function,required:true}},setup(n){let l=ref(null),i=ref(null),m=ref(null),d=ref(n.value),a=ref(0),s=ref(false),f=S=>{d.value=S.target.value;},v=S=>S?.target?.value??String(d.value??""),c=S=>{if(n.editorType==="date"){let w=n.column.cellEditorParams?.dateFormat??n.column.dateFormat??DEFAULT_DATE_FORMAT;if((n.column.cellEditorParams?.editorType??"text")==="native"){if(S==null){d.value="";return}let g=String(S);d.value=g.match(/^\d{4}-\d{2}-\d{2}/)?g.substring(0,10):g;return}d.value=formatDateForDisplay(S,w)??"";return}d.value=S;};c(n.value);let u=S=>{s.value=true,n.onCommit(S);},C=()=>{s.value=true,n.onCancel();},r=()=>s.value?(s.value=false,true):false,p=()=>{let S=i.value,w=m.value;if(!S||!w)return;let b=S.getBoundingClientRect(),g=200,y=window.innerHeight-b.bottom,I=y<g&&b.top>y;w.style.position="fixed",w.style.left=`${b.left}px`,w.style.width=`${b.width}px`,w.style.maxHeight=`${g}px`,w.style.zIndex="9999",w.style.right="auto",w.style.textAlign="left",I?(w.style.top="auto",w.style.bottom=`${window.innerHeight-b.top}px`):w.style.top=`${b.bottom}px`;},h$1=null,E=null;onMounted(()=>{let S=w=>{w.key==="Escape"&&(w.preventDefault(),w.stopPropagation(),C());};document.addEventListener("keydown",S,true),E=()=>{document.removeEventListener("keydown",S,true);},nextTick(()=>{if(i.value){n.editorType==="richSelect"&&D.value?D.value.focus({preventScroll:true}):i.value.focus({preventScroll:true}),p();let w=i.value,b=w.closest("[data-ogrid-scroll-container]")??w.closest('[style*="overflow"]'),g=()=>{n.onCancel&&n.onCancel();},y=requestAnimationFrame(()=>{b&&b.addEventListener("scroll",g,{passive:true}),window.addEventListener("scroll",g,{passive:true});});h$1=()=>{cancelAnimationFrame(y),b&&b.removeEventListener("scroll",g),window.removeEventListener("scroll",g);};return}l.value?.focus({preventScroll:true}),l.value?.select();});}),onUnmounted(()=>{h$1?.(),E?.();}),watch(()=>n.value,c),(()=>{let w=(n.column.cellEditorParams?.values??[]).findIndex(b=>String(b)===String(n.value));a.value=Math.max(w,0);})();let R=()=>{nextTick(()=>{let S=m.value;if(!S)return;S.children[a.value]?.scrollIntoView({block:"nearest"});});},L=S=>{let w=n.column.cellEditorParams?.formatValue;return w?w(S):S!=null?String(S):""},z=S=>{let w=n.column.cellEditorParams?.values??[];switch(S.key){case "ArrowDown":S.preventDefault(),a.value=Math.min(a.value+1,w.length-1),R();break;case "ArrowUp":S.preventDefault(),a.value=Math.max(a.value-1,0),R();break;case "Enter":S.preventDefault(),S.stopPropagation(),w.length>0&&a.value<w.length&&u(w[a.value]);break;case "Tab":S.preventDefault(),w.length>0&&a.value<w.length&&u(w[a.value]);break;case "Escape":S.preventDefault(),S.stopPropagation(),C();break}},W=ref(""),D=ref(null),x=ref(null),P=computed(()=>{let S=n.column.cellEditorParams?.values??[],w=W.value.trim().toLowerCase();return w?S.filter(b=>L(b).toLowerCase().includes(w)):S}),M=()=>{nextTick(()=>{let S=x.value;if(!S)return;S.children[a.value]?.scrollIntoView({block:"nearest"});});},O=S=>{let w=P.value;switch(S.key){case "ArrowDown":S.preventDefault(),a.value=Math.min(a.value+1,w.length-1),M();break;case "ArrowUp":S.preventDefault(),a.value=Math.max(a.value-1,0),M();break;case "Enter":S.preventDefault(),S.stopPropagation(),w.length>0&&a.value<w.length&&u(w[a.value]);break;case "Escape":S.preventDefault(),S.stopPropagation(),C();break}};return ()=>{if(n.editorType==="checkbox"){let S=!!n.value;return h("div",{style:{...wt,justifyContent:"center"}},o({checked:S,onChange:w=>u(w),onCancel:C}))}if(n.editorType==="select"){let S=n.column.cellEditorParams?.values??[];return h("div",{ref:w=>{i.value=w;},tabindex:0,style:{...wt,position:"relative"},onKeydown:z},[h("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",width:"100%",cursor:"pointer",fontSize:"13px",color:"inherit"}},[h("span",L(n.value)),h("span",{style:{marginLeft:"4px",fontSize:"10px",opacity:"0.5"}},"\u25BE")]),h("div",{ref:w=>{m.value=w;},role:"listbox",style:{position:"absolute",top:"100%",left:"0",right:"0",maxHeight:"200px",overflowY:"auto",background:"var(--ogrid-bg, #fff)",border:"1px solid var(--ogrid-border, rgba(0,0,0,0.12))",zIndex:"10",boxShadow:"0 4px 16px rgba(0,0,0,0.2)",textAlign:"left",fontSize:"13px",fontFamily:"inherit"}},[...S.map((w,b)=>h("div",{key:String(w),role:"option","aria-selected":b===a.value,onClick:()=>u(w),style:{padding:"6px 8px",cursor:"pointer",color:"var(--ogrid-fg, #242424)",fontSize:"13px",...b===a.value?{background:"var(--ogrid-bg-hover, #e8f0fe)"}:{}}},L(w)))])])}if(n.editorType==="richSelect"){let S=P.value;return h("div",{ref:w=>{i.value=w;},style:{...wt,position:"relative"}},[h("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",width:"100%",cursor:"pointer",fontSize:"13px",color:"inherit"}},[h("span",L(n.value)),h("span",{style:{marginLeft:"4px",fontSize:"10px",opacity:"0.5"}},"\u25BE")]),h("div",{ref:w=>{m.value=w;},role:"listbox",style:{position:"absolute",top:"100%",left:"0",right:"0",maxHeight:"200px",overflowY:"auto",background:"var(--ogrid-bg, #fff)",border:"1px solid var(--ogrid-border, rgba(0,0,0,0.12))",zIndex:"10",boxShadow:"0 4px 16px rgba(0,0,0,0.2)",textAlign:"left",fontSize:"13px",fontFamily:"inherit"}},[h("input",{ref:w=>{D.value=w;},type:"text",value:W.value,placeholder:"Search...",onInput:w=>{W.value=w.target.value,a.value=0;},onKeydown:O,style:{width:"100%",padding:"6px 8px",border:"none",borderBottom:"1px solid var(--ogrid-border, rgba(0,0,0,0.12))",background:"var(--ogrid-bg, #fff)",color:"inherit",font:"inherit",fontSize:"13px",outline:"none",boxSizing:"border-box",position:"sticky",top:"0",zIndex:"1"}}),h("div",{ref:w=>{x.value=w;}},S.map((w,b)=>h("div",{key:String(w),role:"option","aria-selected":b===a.value,onClick:()=>u(w),style:{padding:"6px 8px",cursor:"pointer",color:"var(--ogrid-fg, #242424)",fontSize:"13px",...b===a.value?{background:"var(--ogrid-bg-hover, #e8f0fe)"}:{}}},L(w)))),...S.length===0?[h("div",{style:{padding:"6px 8px",color:"var(--ogrid-muted, #999)",fontSize:"13px"}},"No matches")]:[]])])}if(n.editorType==="date"){let S=n.column.cellEditorParams?.dateFormat??n.column.dateFormat??DEFAULT_DATE_FORMAT,w=n.column.cellEditorParams?.editorType??"text",b=I=>{if(w!=="native"){let k=parseUserInputDate(I,S);if(k!==null){let $=k.getUTCFullYear().toString().padStart(4,"0"),H=(k.getUTCMonth()+1).toString().padStart(2,"0"),K=k.getUTCDate().toString().padStart(2,"0");u(`${$}-${H}-${K}`);}else u(I||null);}else u(I);},g=I=>{I.stopPropagation(),I.key==="Enter"&&(I.preventDefault(),b(v(I))),I.key==="Escape"&&(I.preventDefault(),C()),I.key==="Tab"&&(I.preventDefault(),b(v(I)));};if(w==="native"){let I=(()=>{if(d.value==null)return "";let k=String(d.value);return k.match(/^\d{4}-\d{2}-\d{2}/)?k.substring(0,10):k})();return h("div",{style:wt},h("input",{ref:k=>{l.value=k;},type:"date",value:I,style:{width:"100%",height:"100%",border:"none",outline:"none",padding:"0 4px",fontSize:"inherit",boxSizing:"border-box"},onInput:f,onChange:f,onKeyup:f,onKeydown:g,onBlur:k=>{r()||b(v(k));}}))}let y=getDateInputPlaceholder(S);return h("div",{style:wt},h("input",{ref:I=>{l.value=I;},type:"text",value:String(d.value??""),placeholder:y,style:{width:"100%",height:"100%",border:"none",outline:"none",padding:"0 4px",fontSize:"inherit",boxSizing:"border-box"},onInput:f,onChange:f,onKeyup:f,onKeydown:g,onBlur:I=>{r()||b(v(I));}}))}return h("div",{style:wt},h("input",{ref:S=>{l.value=S;},type:"text",value:d.value!=null?String(d.value):"",style:{width:"100%",height:"100%",border:"none",outline:"none",padding:"0 4px",fontSize:"inherit",boxSizing:"border-box"},onInput:f,onChange:f,onKeyup:f,onKeydown:S=>{S.stopPropagation(),S.key==="Enter"&&(S.preventDefault(),u(v(S))),S.key==="Escape"&&(S.preventDefault(),C()),S.key==="Tab"&&(S.preventDefault(),u(v(S)));},onBlur:S=>{r()||u(v(S));}}))}}})}var Ja=240,eo=36,En={columns:"Columns",filters:"Filters"},Qa={columns:"\u2261",filters:"\u2A65"};function qo(e){let o=e.activePanel!==null,n=e.position??"right",l={display:"flex",flexDirection:"column",width:`${eo}px`,background:"var(--ogrid-header-bg, #f5f5f5)",...n==="right"?{borderLeft:"1px solid var(--ogrid-border, #e0e0e0)"}:{borderRight:"1px solid var(--ogrid-border, #e0e0e0)"}},i=h("div",{style:l,role:"tablist","aria-label":"Side bar tabs"},e.panels.map(a=>h("button",{key:a,role:"tab","aria-selected":e.activePanel===a,"aria-label":En[a],title:En[a],onClick:()=>e.onPanelChange(e.activePanel===a?null:a),style:{width:`${eo}px`,height:`${eo}px`,border:"none",cursor:"pointer",color:"var(--ogrid-fg, #242424)",fontSize:"14px",display:"flex",alignItems:"center",justifyContent:"center",background:e.activePanel===a?"var(--ogrid-bg, #fff)":"transparent",fontWeight:e.activePanel===a?"bold":"normal"}},Qa[a]))),m=null;if(o&&e.activePanel){let a={width:`${Ja}px`,display:"flex",flexDirection:"column",overflow:"hidden",background:"var(--ogrid-bg, #fff)",color:"var(--ogrid-fg, #242424)",...n==="right"?{borderLeft:"1px solid var(--ogrid-border, #e0e0e0)"}:{borderRight:"1px solid var(--ogrid-border, #e0e0e0)"}},s=[];if(e.activePanel==="columns"){let f=e.columns.every(v=>e.visibleColumns.has(v.columnId));s.push(h("div",{style:{display:"flex",gap:"8px",marginBottom:"8px"}},[h("button",{disabled:f,onClick:()=>{let v=new Set(e.visibleColumns);e.columns.forEach(c=>v.add(c.columnId)),e.onSetVisibleColumns(v);},style:{flex:"1",cursor:"pointer",background:"var(--ogrid-bg-subtle, #f3f2f1)",color:"var(--ogrid-fg, #242424)",border:"1px solid var(--ogrid-border, #e0e0e0)",borderRadius:"4px",padding:"4px 8px"}},"Select All"),h("button",{onClick:()=>{let v=new Set;e.columns.forEach(c=>{c.required&&e.visibleColumns.has(c.columnId)&&v.add(c.columnId);}),e.onSetVisibleColumns(v);},style:{flex:"1",cursor:"pointer",background:"var(--ogrid-bg-subtle, #f3f2f1)",color:"var(--ogrid-fg, #242424)",border:"1px solid var(--ogrid-border, #e0e0e0)",borderRadius:"4px",padding:"4px 8px"}},"Clear All")])),e.columns.forEach(v=>{s.push(h("label",{key:v.columnId,style:{display:"flex",alignItems:"center",gap:"6px",padding:"2px 0",cursor:"pointer"}},[h("input",{type:"checkbox",checked:e.visibleColumns.has(v.columnId),disabled:v.required,onChange:c=>e.onVisibilityChange(v.columnId,c.target.checked)}),h("span",null,v.name)]));});}e.activePanel==="filters"&&(e.filterableColumns.length===0?s.push(h("div",{style:{color:"var(--ogrid-muted, #999)",fontStyle:"italic"}},"No filterable columns")):e.filterableColumns.forEach(f=>{let v=f.filterField,c=[h("div",{style:{fontWeight:"500",marginBottom:"4px",fontSize:"13px"}},f.name)];if(f.filterType==="text"){let u=e.filters[v],C=u?.type==="text"?u.value:"";c.push(h("input",{type:"text",value:C,onInput:r=>{let p=r.target.value;e.onFilterChange(v,p?{type:"text",value:p}:void 0);},placeholder:`Filter ${f.name}...`,"aria-label":`Filter ${f.name}`,style:{width:"100%",boxSizing:"border-box",padding:"4px 6px",background:"var(--ogrid-bg, #fff)",color:"var(--ogrid-fg, #242424)",border:"1px solid var(--ogrid-border, #e0e0e0)",borderRadius:"4px"}}));}if(f.filterType==="multiSelect"){let C=(e.filterOptions[v]??[]).map(r=>{let p=e.filters[v],h$1=p?.type==="multiSelect"?p.value.includes(r):false;return h("label",{key:r,style:{display:"flex",alignItems:"center",gap:"4px",padding:"1px 0",cursor:"pointer",fontSize:"13px"}},[h("input",{type:"checkbox",checked:h$1,onChange:E=>{let T=e.filters[v],R=T?.type==="multiSelect"?T.value:[],L=E.target.checked?[...R,r]:R.filter(z=>z!==r);e.onFilterChange(v,L.length>0?{type:"multiSelect",value:L}:void 0);}}),h("span",null,r)])});c.push(h("div",{style:{maxHeight:"120px",overflowY:"auto"},role:"group","aria-label":`${f.name} options`},C));}if(f.filterType==="date"){let u=e.filters[v],C=u?.type==="date"?u.value:{from:void 0,to:void 0};c.push(h("div",{style:{display:"flex",flexDirection:"column",gap:"4px"}},[h("label",{style:{display:"flex",alignItems:"center",gap:"4px",fontSize:"12px"}},["From:",h("input",{type:"date",value:C.from??"",onInput:r=>{let p=r.target.value||void 0,h=C.to;e.onFilterChange(v,p||h?{type:"date",value:{from:p,to:h}}:void 0);},"aria-label":`${f.name} from date`,style:{flex:"1",padding:"2px 4px",background:"var(--ogrid-bg, #fff)",color:"var(--ogrid-fg, #242424)",border:"1px solid var(--ogrid-border, #e0e0e0)",borderRadius:"4px"}})]),h("label",{style:{display:"flex",alignItems:"center",gap:"4px",fontSize:"12px"}},["To:",h("input",{type:"date",value:C.to??"",onInput:r=>{let p=r.target.value||void 0,h=C.from;e.onFilterChange(v,h||p?{type:"date",value:{from:h,to:p}}:void 0);},"aria-label":`${f.name} to date`,style:{flex:"1",padding:"2px 4px",background:"var(--ogrid-bg, #fff)",color:"var(--ogrid-fg, #242424)",border:"1px solid var(--ogrid-border, #e0e0e0)",borderRadius:"4px"}})])]));}s.push(h("div",{key:f.columnId,style:{marginBottom:"12px"}},c));})),m=h("div",{role:"tabpanel","aria-label":En[e.activePanel],style:a},[h("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"8px 12px",borderBottom:"1px solid var(--ogrid-border, #e0e0e0)",fontWeight:"600"}},[h("span",null,En[e.activePanel]),h("button",{onClick:()=>e.onPanelChange(null),style:{border:"none",background:"transparent",cursor:"pointer",fontSize:"16px",color:"var(--ogrid-fg, #242424)"},"aria-label":"Close panel"},"\xD7")]),h("div",{style:{flex:"1",overflowY:"auto",padding:"8px 12px"}},s)]);}let d=[];return n==="left"?(d.push(i),m&&d.push(m)):(m&&d.push(m),d.push(i)),h("div",{style:{display:"flex",flexDirection:"row",flexShrink:"0"},role:"complementary","aria-label":"Side bar"},d)}function ei(e){return defineComponent({name:"OGrid",props:{gridProps:{type:Object,required:true}},setup(o,{expose:n}){let l=computed(()=>o.gridProps),{dataGridProps:i,pagination:m,columnChooser:d,layout:a,api:s}=_t(l);n({api:s});let f=ref(false),v=()=>{f.value=!f.value;},c=u=>{u.key==="Escape"&&f.value&&(f.value=false);};return onMounted(()=>{document.addEventListener("keydown",c);}),onUnmounted(()=>{document.removeEventListener("keydown",c);}),()=>{let u=a.value.sideBarProps,C=u!=null,r=u?.position??"right",p=[];a.value.toolbar&&p.push(a.value.toolbar);let E=a.value.fullScreen===true?h("button",{type:"button",title:f.value?"Exit fullscreen":"Fullscreen","aria-label":f.value?"Exit fullscreen":"Fullscreen",onClick:v,style:{background:"none",border:"1px solid var(--ogrid-border, rgba(0,0,0,0.12))",borderRadius:"4px",padding:"4px 6px",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--ogrid-fg, rgba(0,0,0,0.87))"}},[f.value?h("svg",{width:16,height:16,viewBox:"0 0 16 16",fill:"none",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round",innerHTML:'<polyline points="4 10 0 10 0 14"/><polyline points="12 6 16 6 16 2"/><line x1="0" y1="10" x2="4" y2="6"/><line x1="16" y1="6" x2="12" y2="10"/>'}):h("svg",{width:16,height:16,viewBox:"0 0 16 16",fill:"none",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round",innerHTML:'<polyline points="10 2 14 2 14 6"/><polyline points="6 14 2 14 2 10"/><line x1="14" y1="2" x2="10" y2="6"/><line x1="2" y1="14" x2="6" y2="10"/>'})]):null,T=d.value.placement==="toolbar"?h(e.ColumnChooser,{columns:d.value.columns,visibleColumns:d.value.visibleColumns,onVisibilityChange:d.value.onVisibilityChange}):null,R=h(e.PaginationControls,{currentPage:m.value.page,pageSize:m.value.pageSize,totalCount:m.value.displayTotalCount,onPageChange:m.value.setPage,onPageSizeChange:P=>{m.value.setPageSize(P);},pageSizeOptions:m.value.pageSizeOptions,entityLabelPlural:m.value.entityLabelPlural}),L=h("div",{style:{flex:"1",minWidth:"0",minHeight:"0",display:"flex",flexDirection:"column"}},[h(e.DataGridTable,{gridProps:i.value})]),z=[];C&&r==="left"&&z.push(qo(u)),z.push(L),C&&r!=="left"&&z.push(qo(u));let W=p.length>0||T!=null||E!=null,D=f.value?{position:"fixed",inset:"0",zIndex:9999,display:"flex",flexDirection:"column",background:"var(--ogrid-bg, #fff)"}:{display:"flex",flexDirection:"column",border:"1px solid var(--ogrid-border, rgba(0,0,0,0.12))",borderRadius:"4px",overflow:"hidden"},x=f.value?{display:"flex",flexDirection:"column",flex:"1",minHeight:"0",overflow:"hidden",background:"var(--ogrid-bg, #fff)"}:void 0;return h("div",{class:a.value.className,style:D},[h("div",{style:x??{}},[...W?[h("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"8px 12px",borderBottom:"1px solid var(--ogrid-border, rgba(0,0,0,0.12))",gap:"8px"}},[h("div",{style:{display:"flex",alignItems:"center",gap:"8px",flex:"1"}},p),h("div",{style:{display:"flex",alignItems:"center",gap:"8px"}},[...T?[T]:[],...E?[E]:[]])])]:[],...a.value.toolbarBelow?[h("div",{style:{padding:"8px 12px",borderBottom:"1px solid var(--ogrid-border, rgba(0,0,0,0.12))"}},[a.value.toolbarBelow])]:[],...a.value.formulaBar?[a.value.formulaBar]:[],h("div",{style:{display:"flex",flex:"1",minHeight:"0"}},z),...a.value.sheetTabs?[a.value.sheetTabs]:[],h("div",{style:{display:"flex",alignItems:"center",padding:"8px 0",borderTop:"1px solid var(--ogrid-border, rgba(0,0,0,0.12))"}},[R])])])}}})}export{Bn as FormulaBar,zn as FormulaRefOverlay,An as MarchingAntsOverlay,Vn as SheetTabs,Ln as StatusBar,Ba as createDataGridTable,$a as createInlineCellEditor,ei as createOGrid,Sn as getCellInteractionProps,qt as useActiveCell,$t as useCellEditing,Xt as useCellSelection,Yt as useClipboard,zo as useColumnChooserState,Ho as useColumnHeaderFilterState,ln as useColumnHeaderMenuState,nn as useColumnPinning,gn as useColumnReorder,sn as useColumnResize,jt as useContextMenu,an as useDataGridState,bn as useDataGridTableSetup,pn as useDateFilterState,un as useDebounce,Mo as useDebouncedCallback,Qt as useFillHandle,Gt as useFilterOptions,Nt as useFormulaBar,Go as useInlineCellEditorState,Zt as useKeyboardNavigation,cn as useMultiSelectFilterState,_t as useOGrid,fn as usePeopleFilterState,Wo as useRichSelectState,Kt as useRowSelection,Ot as useSideBarState,tn as useTableLayout,dn as useTextFilterState,en as useUndoRedo,hn as useVirtualScroll};
|
|
1
|
+
import {injectGlobalStyles,Z_INDEX,getStatusBarParts,measureRange,flattenColumns,getMultiSelectFilterFields,deriveFilterOptionsFromData,shouldUseWorkerSort,processClientSideData,processClientSideDataAsync,validateColumns,validateRowIds,computeRowSelectionState,parseTsvClipboard,applyPastedValues,applyCutClear,normalizeSelectionRange,applyCellDeletion,computeTabNavigation,computeArrowNavigation,buildCellIndex,applyFillValues,UndoRedoStack,CHECKBOX_COLUMN_WIDTH,estimateHeaderMinWidth,CELL_PADDING,measureColumnContentWidth,resolveResponsiveConfig,applyResponsiveHiding,DEFAULT_MIN_COLUMN_WIDTH,computeAggregations,getDataGridStatusBarConfig,formatDateForDisplay,DEFAULT_DATE_FORMAT,getPinStateForColumn,validateVirtualScrollConfig,computeVisibleRange,computeTotalHeight,computeVisibleColumnRange,getScrollTopForRow,partitionColumnsForVirtualization,formatCellReference,buildHeaderRows,indexToColumnLetter,ROW_NUMBER_COLUMN_ID,ROW_NUMBER_COLUMN_WIDTH,getHeaderFilterConfig,getDateInputPlaceholder,getCellRenderDescriptor,buildInlineEditorProps,buildPopoverEditorProps,resolveCellDisplayContent,resolveCellStyle,handleBooleanCellPointerDown,parseUserInputDate,rangesEqual,cellIndexKey,formatSelectionAsTsv,calculateDropTarget,reorderColumnArray,parseValue,getCellValue,computeNextSortState,mergeFilter,columnLetterToIndex,applyRangeRowSelection,ROW_NUMBER_COLUMN_MIN_WIDTH,createGridDataAccessor,computeAutoScrollSpeed}from'@alaarab/ogrid-core';export{AUTOSIZE_EXTRA_PX,AUTOSIZE_MAX_PX,CELL_PADDING,CHECKBOX_COLUMN_WIDTH,COLUMN_HEADER_MENU_ITEMS,CellDescriptorCache,DEFAULT_DEBOUNCE_MS,DEFAULT_MIN_COLUMN_WIDTH,GRID_BORDER_RADIUS,GRID_CONTEXT_MENU_ITEMS,MAX_PAGE_BUTTONS,PAGE_SIZE_OPTIONS,PEOPLE_SEARCH_DEBOUNCE_MS,RESPONSIVE_BREAKPOINTS,ROW_NUMBER_COLUMN_ID,ROW_NUMBER_COLUMN_MIN_WIDTH,ROW_NUMBER_COLUMN_WIDTH,SIDEBAR_TRANSITION_MS,UndoRedoStack,Z_INDEX,applyCellDeletion,applyCutClear,applyFillValues,applyPastedValues,applyRangeRowSelection,applyResponsiveHiding,areGridRowPropsEqual,booleanParser,buildCellIndex,buildCsvHeader,buildCsvRows,buildHeaderRows,buildInlineEditorProps,buildPopoverEditorProps,calculateDropTarget,clampSelectionToBounds,columnLetterToIndex,computeAggregations,computeArrowNavigation,computeAutoScrollSpeed,computeNextSortState,computeRowSelectionState,computeTabNavigation,computeTotalHeight,computeVisibleColumnRange,computeVisibleRange,createGridDataAccessor,createSortFilterWorker,currencyParser,dateParser,debounce,deriveFilterOptionsFromData,emailParser,escapeCsvValue,exportToCsv,extractValueMatrix,findCtrlArrowTarget,flattenColumns,formatCellReference,formatCellValueForTsv,formatSelectionAsTsv,formatShortcut,getCellRenderDescriptor,getCellValue,getColumnHeaderMenuItems,getContextMenuHandlers,getDataGridStatusBarConfig,getFilterField,getHeaderFilterConfig,getMultiSelectFilterFields,getPaginationViewModel,getPinStateForColumn,getResponsiveHiddenColumns,getScrollTopForRow,getStatusBarParts,handleBooleanCellPointerDown,indexToColumnLetter,injectGlobalStyles,isColumnEditable,isFilterConfig,isInSelectionRange,isRowInRange,measureColumnContentWidth,measureRange,mergeFilter,normalizeSelectionRange,numberParser,parseTsvClipboard,parseValue,partitionColumnsForVirtualization,processClientSideData,processClientSideDataAsync,rangesEqual,reorderColumnArray,resolveCellDisplayContent,resolveCellStyle,resolveResponsiveConfig,terminateSortFilterWorker,toUserLike,triggerCsvDownload,validateColumns,validateRowIds,validateVirtualScrollConfig}from'@alaarab/ogrid-core';import {FORMULA_BAR_STYLES,handleFormulaBarKeyDown,FORMULA_REF_COLORS,deriveFormulaBarText,extractFormulaReferences,processFormulaBarCommit,FormulaEngine}from'@alaarab/ogrid-core/formula';export{CIRC_ERROR,DIV_ZERO_ERROR,DependencyGraph,FORMULA_BAR_CSS,FORMULA_BAR_STYLES,FORMULA_REF_COLORS,FormulaEngine,FormulaError,FormulaEvaluator,GENERAL_ERROR,NAME_ERROR,NA_ERROR,REF_ERROR,VALUE_ERROR,adjustFormulaReferences,canInsertReference,createBuiltInFunctions,deriveFormulaBarText,extractFormulaReferences,flattenArgs,formatAddress,formulaToString,fromCellKey,handleFormulaBarKeyDown,insertReferenceAtCursor,isFormulaError,parse,parseCellRef,parseRange,processFormulaBarCommit,toBoolean,toCellKey,toNumber,tokenize}from'@alaarab/ogrid-core/formula';import {defineComponent,ref,computed,onMounted,watch,toValue,onUnmounted,h,shallowRef,isRef,triggerRef,nextTick,Teleport,isReadonly,unref,customRef}from'vue';var An=defineComponent({name:"MarchingAntsOverlay",props:{containerRef:{type:Object,required:true},selectionRange:{type:Object,default:null},copyRange:{type:Object,default:null},cutRange:{type:Object,default:null},colOffset:{type:Number,required:true},items:{type:Array,required:true},visibleColumns:{type:Array,default:void 0},columnSizingOverrides:{type:Object,required:true},columnOrder:{type:Array,default:void 0}},setup(e){let o=ref(null),n=ref(null),l=0,i,m=computed(()=>e.copyRange??e.cutRange),d=()=>{let s=toValue(e.containerRef);if(!s){o.value=null,n.value=null;return}o.value=e.selectionRange?measureRange(s,e.selectionRange,e.colOffset):null,n.value=m.value?measureRange(s,m.value,e.colOffset):null;};onMounted(()=>{injectGlobalStyles("ogrid-marching-ants-keyframes","@keyframes ogrid-marching-ants{to{stroke-dashoffset:-8}}");}),watch([()=>e.selectionRange,m,()=>toValue(e.containerRef),()=>e.items,()=>e.visibleColumns,()=>e.columnSizingOverrides,()=>e.columnOrder],()=>{if(!e.selectionRange&&!m.value){o.value=null,n.value=null;return}l=requestAnimationFrame(d);let s=toValue(e.containerRef);s&&(i?.disconnect(),i=new ResizeObserver(d),i.observe(s));},{immediate:true}),onUnmounted(()=>{cancelAnimationFrame(l),i?.disconnect();});let a=computed(()=>{let s=e.selectionRange,f=m.value;return s!=null&&f!=null&&s.startRow===f.startRow&&s.startCol===f.startCol&&s.endRow===f.endRow&&s.endCol===f.endCol});return ()=>!o.value&&!n.value?null:h("div",{style:{position:"relative"}},[o.value&&!a.value&&!(e.selectionRange&&e.selectionRange.startRow===e.selectionRange.endRow&&e.selectionRange.startCol===e.selectionRange.endCol)?h("svg",{style:{position:"absolute",top:`${o.value.top}px`,left:`${o.value.left}px`,width:`${o.value.width}px`,height:`${o.value.height}px`,pointerEvents:"none",zIndex:Z_INDEX.SELECTION_OVERLAY,overflow:"visible"},"aria-hidden":"true"},[h("rect",{x:1,y:1,width:Math.max(0,o.value.width-2),height:Math.max(0,o.value.height-2),fill:"none",stroke:"var(--ogrid-selection, #217346)","stroke-width":2})]):null,n.value?h("svg",{style:{position:"absolute",top:`${n.value.top}px`,left:`${n.value.left}px`,width:`${n.value.width}px`,height:`${n.value.height}px`,pointerEvents:"none",zIndex:Z_INDEX.CLIPBOARD_OVERLAY,overflow:"visible"},"aria-hidden":"true"},[h("rect",{x:1,y:1,width:Math.max(0,n.value.width-2),height:Math.max(0,n.value.height-2),fill:"none",stroke:"var(--ogrid-selection, #217346)","stroke-width":2,"stroke-dasharray":"4 4",style:{animation:"ogrid-marching-ants 0.5s linear infinite"}})]):null])}});var Ln=defineComponent({name:"StatusBar",props:{totalCount:{type:Number,required:true},filteredCount:{type:Number,default:void 0},selectedCount:{type:Number,default:void 0},selectedCellCount:{type:Number,default:void 0},aggregation:{type:Object,default:void 0},suppressRowCount:{type:Boolean,default:false}},setup(e){return ()=>{let o=getStatusBarParts(e);return h("div",{role:"status","aria-live":"polite",style:{marginTop:"auto",padding:"6px 12px",borderTop:"1px solid var(--ogrid-border, rgba(0,0,0,0.12))",backgroundColor:"var(--ogrid-header-bg, rgba(0,0,0,0.04))",display:"flex",alignItems:"center",gap:"16px",fontSize:"0.875rem",lineHeight:"20px",minHeight:"33px",boxSizing:"border-box"}},o.map((n,l)=>h("span",{key:n.key,style:{display:"inline-flex",alignItems:"center",gap:"4px",...l<o.length-1?{marginRight:"16px",borderRight:"1px solid var(--ogrid-border, rgba(0,0,0,0.12))",paddingRight:"16px"}:{}}},[h("span",{style:{color:"var(--ogrid-fg-secondary, rgba(0,0,0,0.6))"}},n.label),h("span",{style:{fontWeight:"600"}},n.value.toLocaleString())])))}}});var 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 n=ref(null);return watch(()=>e.isEditing,l=>{l&&n.value&&n.value.focus();}),()=>h("div",{style:FORMULA_BAR_STYLES.bar,role:"toolbar","aria-label":"Formula bar"},[h("div",{style:FORMULA_BAR_STYLES.nameBox,"aria-label":"Active cell reference"},e.cellRef??"\u2014"),h("div",{style:FORMULA_BAR_STYLES.fxLabel,"aria-hidden":"true"},"fx"),h("input",{ref:n,type:"text",style:FORMULA_BAR_STYLES.input,value:e.formulaText,readonly:!e.isEditing,onInput:l=>o("inputChange",l.target.value),onKeydown:l=>handleFormulaBarKeyDown(l.key,()=>l.preventDefault(),()=>o("commit"),()=>o("cancel")),onClick:()=>{e.isEditing||o("startEditing");},onDblclick:()=>{e.isEditing||o("startEditing");},"aria-label":"Formula input",spellcheck:false,autocomplete:"off"})])}});var al={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"},il={background:"none",border:"none",cursor:"pointer",padding:"4px 10px",fontSize:"16px",lineHeight:"22px",color:"var(--ogrid-fg-secondary, #666)",flexShrink:0},co={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"},sl={...co,fontWeight:600,borderBottomColor:"var(--ogrid-primary, #217346)",background:"var(--ogrid-bg, #fff)"},Vn=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:al,role:"tablist","aria-label":"Sheet tabs"},[e.showAddButton?h("button",{type:"button",style:il,onClick:()=>o("sheetAdd"),title:"Add sheet","aria-label":"Add sheet"},"+"):null,...e.sheets.map(n=>{let l=n.id===e.activeSheet,i=l?sl:co,m=l&&n.color?{...i,borderBottomColor:n.color}:i;return h("button",{key:n.id,type:"button",role:"tab","aria-selected":l,style:m,onClick:()=>o("sheetChange",n.id)},n.name)})])}});function ml(e,o,n){let l=o.col+n,i=(o.endCol??o.col)+n,m=o.endRow??o.row,d=e.querySelector(`[data-row-index="${o.row}"][data-col-index="${l}"]`),a=e.querySelector(`[data-row-index="${m}"][data-col-index="${i}"]`);if(!d||!a)return null;let s=e.getBoundingClientRect(),f=d.getBoundingClientRect(),v=a.getBoundingClientRect();return {top:Math.round(f.top-s.top),left:Math.round(f.left-s.left),width:Math.round(v.right-f.left),height:Math.round(v.bottom-f.top),color:FORMULA_REF_COLORS[o.colorIndex%FORMULA_REF_COLORS.length]}}var zn=defineComponent({name:"FormulaRefOverlay",props:{containerEl:{type:Object,default:null},references:{type:Array,required:true},colOffset:{type:Number,required:true}},setup(e){let o=ref([]),n=0;function l(){let i=e.containerEl,m=e.references;if(!i||m.length===0){o.value=[];return}let d=[];for(let a of m){let s=ml(i,a,e.colOffset);s&&d.push(s);}o.value=d;}return watch(()=>[e.references,e.containerEl,e.colOffset],()=>{if(cancelAnimationFrame(n),!e.containerEl||e.references.length===0){o.value=[];return}n=requestAnimationFrame(l);},{immediate:true}),()=>o.value.length===0?null:o.value.map((i,m)=>h("svg",{key:m,style:{position:"absolute",top:`${i.top}px`,left:`${i.left}px`,width:`${i.width}px`,height:`${i.height}px`,pointerEvents:"none",zIndex:3,overflow:"visible"},"aria-hidden":"true"},[h("rect",{x:"1",y:"1",width:Math.max(0,i.width-2),height:Math.max(0,i.height-2),fill:"none",stroke:i.color,"stroke-width":"2",style:"shape-rendering: crispEdges"})]))}});function Gt(e,o){let n=ref({}),l=ref({}),i=computed(()=>[...o.value].sort().join(",")),m=async()=>{let d=e.value,a=o.value,s="fetchFilterOptions"in d&&typeof d.fetchFilterOptions=="function"?d.fetchFilterOptions.bind(d):void 0;if(!s){n.value={},l.value={};return}let f={};a.forEach(c=>{f[c]=true;}),l.value=f;let v={};await Promise.all(a.map(async c=>{try{v[c]=await s(c);}catch{v[c]=[];}})),n.value=v,l.value={};};return watch([e,i],()=>{m().catch(()=>{});},{immediate:true}),{filterOptions:n,loadingOptions:l}}function ut(e){let o=unref(e);return customRef((n,l)=>({get(){return isRef(e)&&(o=e.value),o},set(i){o=i,l();}}))}function vo(e){let{formulas:o,items:n,flatColumns:l,initialFormulas:i,onFormulaRecalc:m,formulaFunctions:d,namedRanges:a,sheets:s}=e,f=ut(n),v=ut(l),c=ut(m),u=shallowRef(null),g=false,r=computed(()=>o?.value??false);function p(){return createGridDataAccessor(f.value,v.value)}watch(r,x=>{if(x&&!u.value){if(u.value=new FormulaEngine({customFunctions:d,namedRanges:a}),s)for(let[T,M]of Object.entries(s))u.value.registerSheet(T,M);if(i&&!g){g=true;let T=p(),M=u.value.loadFormulas(i,T);M.updatedCells.length>0&&c.value?.(M);}}else !x&&u.value&&(u.value=null);},{immediate:true});function h(x,T){return u.value?.getValue(x,T)}function D(x,T){return u.value?.hasFormula(x,T)??false}function I(x,T){return u.value?.getFormula(x,T)}function b(x,T,M){if(!u.value)return;let k=p(),y=u.value.setFormula(x,T,M,k);y.updatedCells.length>0&&c.value?.(y);}function L(x,T){if(!u.value)return;let M=p(),k=u.value.onCellChanged(x,T,M);k.updatedCells.length>0&&c.value?.(k);}function H(x,T){return u.value?.getPrecedents(x,T)??[]}function G(x,T){return u.value?.getDependents(x,T)??[]}function F(x,T){return u.value?.getAuditTrail(x,T)??null}return {enabled:r,getFormulaValue:h,hasFormula:D,getFormula:I,setFormula:b,onCellChanged:L,getPrecedents:H,getDependents:G,getAuditTrail:F}}function Nt(e){let{activeCol:o,activeRow:n,activeCellRef:l,getFormula:i,getRawValue:m,setFormula:d,onCellValueChanged:a}=e,s=ref(false),f=ref(""),v=ref(false),c=computed(()=>deriveFormulaBarText(o.value,n.value,i,m));watch([o,n],()=>{s.value=false,v.value=false;});let u=()=>{f.value=c.value,s.value=true,v.value=true;},g=I=>{f.value=I;},r=()=>{let I=o.value,b=n.value;I==null||b==null||!d||(processFormulaBarCommit(f.value,I,b,d,a),s.value=false,v.value=false);},p=()=>{s.value=false,v.value=false,f.value="";},h=computed(()=>s.value?f.value:c.value),D=computed(()=>extractFormulaReferences(h.value));return {cellRef:l,formulaText:h,isEditing:s,onInputChange:g,onCommit:r,onCancel:p,startEditing:u,referencedCells:D,isFormulaBarEditing:v}}var go=["columns","filters"];function Ot(e){let{config:o}=e,n=o!=null&&o!==false,l=(()=>{if(!n||o===true)return {panels:go,position:"right",defaultPanel:null};let f=o;return {panels:f.panels??go,position:f.position??"right",defaultPanel:f.defaultPanel??null}})(),i=ref(l.defaultPanel),m=f=>{i.value=f;},d=f=>{i.value=i.value===f?null:f;},a=()=>{i.value=null;},s=computed(()=>i.value!==null);return {isEnabled:n,activePanel:i,setActivePanel:m,panels:l.panels,position:l.position,isOpen:s,toggle:d,close:a}}var Nl=25,Wl={};function _t(e){let o=computed(()=>{let t=e.value;return {columns:t.columns,columnOrder:t.columnOrder,onColumnOrderChange:t.onColumnOrderChange,onColumnResized:t.onColumnResized,onAutosizeColumn:t.onAutosizeColumn,onColumnPinned:t.onColumnPinned,columnChooser:t.columnChooser}}),n=computed(()=>{let t=e.value,O="data"in t?t.data:void 0,le="dataSource"in t?t.dataSource:void 0;return O&&le&&console.warn("[OGrid] Both data and dataSource provided. dataSource takes precedence."),{getRowId:t.getRowId,data:O,dataSource:le}}),l=computed(()=>{let t=e.value;return {page:t.page,pageSize:t.pageSize,sort:t.sort,filters:t.filters,visibleColumns:t.visibleColumns,isLoading:t.isLoading}}),i=computed(()=>{let t=e.value;return {onPageChange:t.onPageChange,onPageSizeChange:t.onPageSizeChange,onSortChange:t.onSortChange,onFiltersChange:t.onFiltersChange,onVisibleColumnsChange:t.onVisibleColumnsChange,onFirstDataRendered:t.onFirstDataRendered,onError:t.onError}}),m=computed(()=>{let t=e.value;return {defaultPageSize:t.defaultPageSize??Nl,defaultSortBy:t.defaultSortBy,defaultSortDirection:t.defaultSortDirection??"asc",entityLabelPlural:t.entityLabelPlural??"items"}}),d=computed(()=>o.value.columnChooser===false?"none":o.value.columnChooser==="sidebar"?"sidebar":"toolbar"),a=computed(()=>flattenColumns(o.value.columns)),s=computed(()=>n.value.dataSource!=null),f=computed(()=>!s.value),v=ref([]),c=ref(false),u=computed(()=>n.value.data??v.value),g=computed(()=>l.value.isLoading??c.value),r=computed(()=>m.value.defaultSortBy??a.value[0]?.columnId??""),p=ref(1),h$1=ref(m.value.defaultPageSize),D=ref({field:r.value,direction:m.value.defaultSortDirection}),I=ref({}),b=ref(void 0),L=ref((()=>{let t=a.value.filter(O=>O.defaultVisible!==false).map(O=>O.columnId);return new Set(t.length>0?t:a.value.map(O=>O.columnId))})()),H=ref({}),G={};for(let t of flattenColumns(e.value.columns))t.pinned&&(G[t.columnId]=t.pinned);let F=ref(G),x=computed(()=>l.value.page??p.value),T=computed(()=>l.value.pageSize??h$1.value),M=computed(()=>l.value.sort??D.value),k=computed(()=>l.value.filters??I.value),y=computed(()=>o.value.columnOrder??b.value),w=computed(()=>l.value.visibleColumns??L.value),S=t=>{l.value.page===void 0&&(p.value=t),i.value.onPageChange?.(t);},P=t=>{l.value.pageSize===void 0&&(h$1.value=t),i.value.onPageSizeChange?.(t),S(1);},C=ref(0),R=t=>{l.value.sort===void 0&&(D.value=t),i.value.onSortChange?.(t),S(1),C.value++;},E=t=>{l.value.filters===void 0&&(I.value=t),i.value.onFiltersChange?.(t),S(1);},_=t=>{l.value.visibleColumns===void 0&&(L.value=t),i.value.onVisibleColumnsChange?.(t);},W=(t,O)=>{R(computeNextSortState(M.value,t,O));},K=(t,O)=>{E(mergeFilter(k.value,t,O));},U=(t,O)=>{let le=new Set(w.value);O?le.add(t):le.delete(t),_(le);},X=ref(new Set),J=computed(()=>e.value.selectedRows),Y=computed(()=>J.value??X.value),q=t=>{J.value===void 0&&(X.value=new Set(t.selectedRowIds)),e.value.onSelectionChange?.(t);},B=computed(()=>getMultiSelectFilterFields(a.value)),Z=computed(()=>n.value.dataSource??{fetchFilterOptions:void 0}),{filterOptions:ne,loadingOptions:we}=Gt(Z,B),Fe=computed(()=>n.value.dataSource?.fetchFilterOptions!=null),Ke=computed(()=>Fe.value?ne.value:deriveFilterOptionsFromData(u.value,a.value)),Pe=computed(()=>shouldUseWorkerSort(e.value.workerSort,u.value.length,{columns:a.value,filters:k.value,sortBy:M.value.field})),xe=null,Ne=-1,He=null,We=null,$e=-1,et=computed(()=>{if(!f.value||Pe.value)return null;let t=u.value,O=a.value,le=k.value,Re=C.value,it=M.value.field,st=M.value.direction,Xe=Re!==Ne||le!==He||O!==We||t.length!==$e,fe;if(Xe||xe===null){Ne=Re,He=le,We=O,$e=t.length;let be=processClientSideData(t,O,le,it,st),Ae=new Map;for(let pe=0;pe<t.length;pe++)Ae.set(t[pe],pe);xe=be.map(pe=>{let De=Ae.get(pe);return De!==void 0?De:-1}).filter(pe=>pe!==-1),fe=be;}else fe=xe.map(be=>t[be]).filter(be=>be!==void 0);let pt=fe.length,je=(x.value-1)*T.value;return {items:fe.slice(je,je+T.value),totalCount:pt}}),tt=ref(null),ct=0,Ue=null,mt=-1,Ie=null,gt=null,ae=-1;watch([f,Pe,u,a,k,C,x,T],()=>{if(!f.value||!Pe.value)return;let t=u.value,O=a.value,le=k.value,Re=C.value,it=M.value.field,st=M.value.direction,Xe=x.value,fe=T.value,pt=++ct;if(Re!==mt||le!==Ie||O!==gt||t.length!==ae||Ue===null)mt=Re,Ie=le,gt=O,ae=t.length,Ue=null,processClientSideDataAsync(t,O,le,it,st).then(Ce=>{if(pt!==ct||_e)return;let be=new Map;for(let A=0;A<t.length;A++)be.set(t[A],A);Ue=Ce.map(A=>{let V=be.get(A);return V!==void 0?V:-1}).filter(A=>A!==-1);let Ae=Ce.length,pe=(Xe-1)*fe,De=Ce.slice(pe,pe+fe);tt.value={items:De,totalCount:Ae};}).catch(()=>{if(pt!==ct||_e)return;let Ce=processClientSideData(t,O,le,it,st),be=new Map;for(let A=0;A<t.length;A++)be.set(t[A],A);Ue=Ce.map(A=>{let V=be.get(A);return V!==void 0?V:-1}).filter(A=>A!==-1);let Ae=Ce.length,pe=(Xe-1)*fe,De=Ce.slice(pe,pe+fe);tt.value={items:De,totalCount:Ae};});else {let Ce=Ue.map(De=>t[De]).filter(De=>De!==void 0),be=Ce.length,Ae=(Xe-1)*fe,pe=Ce.slice(Ae,Ae+fe);tt.value={items:pe,totalCount:be};}},{immediate:true});let Oe=computed(()=>{let t=et.value;return t||tt.value}),nt=ref([]),ot=ref(0),Ee=ref(false),lt=0,rt=null,_e=false,Ct=ref(0),ht=()=>{if(!s.value||!n.value.dataSource){s.value||(Ee.value=false);return}let t=++lt;rt?.abort();let O=new AbortController;rt=O,Ee.value=true,n.value.dataSource.fetchPage({page:x.value,pageSize:T.value,sort:{field:M.value.field,direction:M.value.direction},filters:k.value,signal:O.signal}).then(le=>{t!==lt||_e||O.signal.aborted||(nt.value=le.items,ot.value=le.totalCount);}).catch(le=>{t!==lt||_e||O.signal.aborted||(i.value.onError?.(le),nt.value=[],ot.value=0);}).finally(()=>{t===lt&&!_e&&!O.signal.aborted&&(Ee.value=false);});};onMounted(()=>{validateColumns(a.value),ht();}),watch([()=>n.value.dataSource,x,T,()=>M.value.field,()=>M.value.direction,k,Ct],()=>{ht();}),onUnmounted(()=>{_e=true,rt?.abort(),rt=null;});let Ve=computed(()=>f.value&&Oe.value?Oe.value.items:nt.value),ft=computed(()=>f.value&&Oe.value?Oe.value.totalCount:ot.value),at=computed(()=>!!e.value.formulas),Rt=ref(0),xt=t=>{Rt.value+=1,e.value.onFormulaRecalc?.(t);},ve=vo({formulas:at,items:Ve,flatColumns:a,initialFormulas:e.value.initialFormulas,onFormulaRecalc:xt,formulaFunctions:e.value.formulaFunctions,namedRanges:e.value.namedRanges,sheets:e.value.sheets}),bt=false,It=false;watch(Ve,t=>{!bt&&t.length>0&&(bt=true,i.value.onFirstDataRendered?.()),!It&&t.length>0&&(It=true,validateRowIds(t,n.value.getRowId));});let qe=computed(()=>Object.values(k.value).some(t=>t!==void 0)),St=computed(()=>a.value.map(t=>({columnId:t.columnId,name:t.name,required:t.required===true}))),Tt=computed(()=>{let t=e.value.statusBar;if(!t)return;if(typeof t=="object")return t;let O=f.value?n.value.data?.length??0:ot.value,le=ft.value;return {totalCount:O,filteredCount:qe.value?le:void 0,selectedCount:Y.value.size,suppressRowCount:true}}),Pt=(t,O)=>{H.value={...H.value,[t]:O},o.value.onColumnResized?.(t,O);},te=(t,O)=>{H.value={...H.value,[t]:O},(o.value.onAutosizeColumn??o.value.onColumnResized)?.(t,O);},Q=(t,O)=>{if(O===null){let{[t]:le,...Re}=F.value;F.value=Re;}else F.value={...F.value,[t]:O};o.value.onColumnPinned?.(t,O);},re=shallowRef(Ot({config:e.value.sideBar}));watch(()=>e.value.sideBar,t=>{re.value=Ot({config:t});});let me=computed(()=>a.value.filter(t=>t.filterable&&t.filterable.type).map(t=>({columnId:t.columnId,name:t.name,filterField:t.filterable?.filterField??t.columnId,filterType:t.filterable?.type}))),se=computed(()=>{let t=re.value;if(!t.isEnabled)return null;t.activePanel.value;t.isOpen.value;return {get activePanel(){return t.activePanel.value},onPanelChange:t.setActivePanel,panels:t.panels,position:t.position,get isOpen(){return t.isOpen.value},toggle:t.toggle,close:t.close,columns:St.value,visibleColumns:w.value,onVisibilityChange:U,onSetVisibleColumns:_,filterableColumns:me.value,filters:k.value,onFilterChange:K,filterOptions:Ke.value}}),Me=()=>E({}),ye=computed(()=>s.value&&Ee.value||g.value),he=ref(null),ge=ref(null),yt=t=>{if(he.value=t,t){let O=t.match(/^([A-Z]+)(\d+)$/);O?ge.value={col:columnLetterToIndex(O[1]),row:parseInt(O[2],10)-1}:ge.value=null;}else ge.value=null;},Et=computed(()=>ge.value?.col??null),Dn=computed(()=>ge.value?.row??null),Fn=(t,O)=>{let le=Ve.value,Re=a.value;if(!(O<0||O>=le.length||t<0||t>=Re.length))return getCellValue(le[O],Re[t])},ke=Nt({activeCol:Et,activeRow:Dn,activeCellRef:he,getFormula:ve.enabled.value?ve.getFormula:void 0,getRawValue:Fn,setFormula:ve.enabled.value?ve.setFormula:void 0}),Un=computed(()=>{let t=e.value,O=n.value.dataSource;return {items:Ve.value,columns:o.value.columns,getRowId:n.value.getRowId,sortBy:M.value.field,sortDirection:M.value.direction,onColumnSort:W,visibleColumns:w.value,columnOrder:y.value,onColumnOrderChange:o.value.onColumnOrderChange,onColumnResized:Pt,onAutosizeColumn:te,onColumnPinned:Q,pinnedColumns:F.value,initialColumnWidths:H.value,editable:t.editable,cellSelection:t.cellSelection,onCellValueChanged:t.onCellValueChanged,onUndo:t.onUndo,onRedo:t.onRedo,canUndo:t.canUndo,canRedo:t.canRedo,rowSelection:t.rowSelection??"none",selectedRows:Y.value,onSelectionChange:q,showRowNumbers:t.showRowNumbers||t.cellReferences||t.formulas,showColumnLetters:!!(t.cellReferences||t.formulas),showNameBox:!!(t.cellReferences&&!t.formulas),onActiveCellChange:t.cellReferences||t.formulas?yt:void 0,currentPage:x.value,pageSize:T.value,statusBar:Tt.value,isLoading:ye.value,filters:k.value,onFilterChange:K,filterOptions:Ke.value,loadingFilterOptions:O?.fetchFilterOptions?we.value:Wl,peopleSearch:O?.searchPeople,getUserByEmail:O?.getUserByEmail,layoutMode:t.layoutMode,suppressHorizontalScroll:t.suppressHorizontalScroll,stickyHeader:t.stickyHeader??true,columnReorder:t.columnReorder,responsiveColumns:t.responsiveColumns,virtualScroll:t.virtualScroll,rowHeight:t.rowHeight,density:t.density??"normal","aria-label":t["aria-label"],"aria-labelledby":t["aria-labelledby"],emptyState:{hasActiveFilters:qe.value,onClearAll:Me,message:t.emptyState?.message,render:t.emptyState?.render},formulas:t.formulas,formulaVersion:Rt.value,...ve.enabled.value?{getFormulaValue:ve.getFormulaValue,hasFormula:ve.hasFormula,getFormula:ve.getFormula,setFormula:ve.setFormula,onFormulaCellChanged:ve.onCellChanged,getPrecedents:ve.getPrecedents,getDependents:ve.getDependents,getAuditTrail:ve.getAuditTrail}:{},formulaReferences:ke.referencedCells.value.length>0?ke.referencedCells.value:void 0}}),Dt=computed(()=>({page:x.value,pageSize:T.value,displayTotalCount:ft.value,setPage:S,setPageSize:P,pageSizeOptions:e.value.pageSizeOptions,entityLabelPlural:m.value.entityLabelPlural})),ze=computed(()=>({columns:St.value,visibleColumns:w.value,onVisibilityChange:U,placement:d.value})),Ft=computed(()=>{let t=e.value,O=!!t.formulas,le=!!t.cellReferences&&!O,Re=t.toolbar;le&&(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"},he.value??"\u2014"),Re]);let it=O?h(Bn,{cellRef:ke.cellRef.value,formulaText:ke.formulaText.value,isEditing:ke.isEditing.value,onInputChange:ke.onInputChange,onCommit:ke.onCommit,onCancel:ke.onCancel,onStartEditing:ke.startEditing}):void 0,st=t.sheetDefs&&t.sheetDefs.length>0&&t.activeSheet&&t.onSheetChange?h(Vn,{sheets:t.sheetDefs,activeSheet:t.activeSheet,showAddButton:!!t.onSheetAdd,onSheetChange:t.onSheetChange,onSheetAdd:t.onSheetAdd??(()=>{})}):void 0;return {toolbar:Re,toolbarBelow:t.toolbarBelow,className:t.className,emptyState:t.emptyState,sideBarProps:se.value,fullScreen:t.fullScreen,formulaBar:it,sheetTabs:st}}),On=computed(()=>({hasActiveFilters:qe.value,setFilters:E})),Mn=computed(()=>({setRowData:t=>{s.value||(v.value=t);},setLoading:t=>{c.value=t;},getColumnState:()=>({visibleColumns:Array.from(w.value),sort:M.value,columnOrder:y.value??void 0,columnWidths:Object.keys(H.value).length>0?H.value:void 0,filters:Object.keys(k.value).length>0?k.value:void 0,pinnedColumns:Object.keys(F.value).length>0?F.value:void 0}),applyColumnState:t=>{t.visibleColumns&&_(new Set(t.visibleColumns)),t.sort&&R(t.sort),t.columnOrder&&(o.value.columnOrder===void 0&&(b.value=t.columnOrder),o.value.onColumnOrderChange?.(t.columnOrder)),t.columnWidths&&(H.value=t.columnWidths),t.filters&&E(t.filters),t.pinnedColumns&&(F.value=t.pinnedColumns);},setFilterModel:E,getSelectedRows:()=>Array.from(Y.value),setSelectedRows:t=>{J.value===void 0&&(X.value=new Set(t));},selectAll:()=>{let t=new Set(Ve.value.map(O=>n.value.getRowId(O)));J.value===void 0&&(X.value=t),e.value.onSelectionChange?.({selectedRowIds:Array.from(t),selectedItems:Ve.value});},deselectAll:()=>{J.value===void 0&&(X.value=new Set),e.value.onSelectionChange?.({selectedRowIds:[],selectedItems:[]});},clearFilters:()=>E({}),clearSort:()=>R({field:r.value,direction:m.value.defaultSortDirection}),resetGridState:t=>{E({}),R({field:r.value,direction:m.value.defaultSortDirection}),t?.keepSelection||(J.value===void 0&&(X.value=new Set),e.value.onSelectionChange?.({selectedRowIds:[],selectedItems:[]}));},getDisplayedRows:()=>Ve.value,refreshData:()=>{s.value&&Ct.value++;},scrollToRow:()=>{},getColumnOrder:()=>y.value??a.value.map(t=>t.columnId),setColumnOrder:t=>{o.value.columnOrder===void 0&&(b.value=t),o.value.onColumnOrderChange?.(t);}}));return {dataGridProps:Un,pagination:Dt,columnChooser:ze,layout:Ft,filters:On,api:Mn}}function Kt(e){let{items:o,getRowId:n,rowSelection:l,controlledSelectedRows:i,onSelectionChange:m}=e,d=shallowRef(new Set),a=-1,s=computed(()=>{let r=i.value;return r!=null?r instanceof Set?r:new Set(r):d.value}),f=r=>{i.value!==void 0?isReadonly(i)||(i.value=r):d.value=r,m?.({selectedRowIds:Array.from(r),selectedItems:o.value.filter(p=>r.has(n(p)))});},v=(r,p,h,D)=>{if(l.value==="single"){f(p?new Set([r]):new Set),a=h;return}let I=o.value,b;D&&a>=0&&a!==h?b=applyRangeRowSelection(a,h,p,I,n,s.value):(b=new Set(s.value),p?b.add(r):b.delete(r)),a=h,f(b);},c=r=>{f(r?new Set(o.value.map(p=>n(p))):new Set);},u=computed(()=>computeRowSelectionState(s.value,o.value,n).allSelected),g=computed(()=>computeRowSelectionState(s.value,o.value,n).someSelected);return {selectedRowIds:s,updateSelection:f,handleRowCheckboxChange:v,handleSelectAll:c,allSelected:u,someSelected:g}}function $t(e){let o=shallowRef(null),n=ref(void 0);return {editingCell:o,setEditingCell:m=>{if(m&&e?.scrollToRow&&e?.getRowIndex){let d=e.getRowIndex(m.rowId);d>=0&&e.scrollToRow(d,"center");}o.value=m;},pendingEditorValue:n,setPendingEditorValue:m=>{n.value=m;}}}function qt(e,o){let n=shallowRef(null),l=0,i=m=>{let d=n.value;d!==m&&(d&&m&&d.rowIndex===m.rowIndex&&d.columnIndex===m.columnIndex||(n.value=m));};return watch([n,()=>o?.value],()=>{if(l&&(cancelAnimationFrame(l),l=0),n.value==null||!e?.value||o?.value!=null)return;let{rowIndex:m,columnIndex:d}=n.value;l=requestAnimationFrame(()=>{l=0;let a=e.value;if(!a)return;let s=n.value;if(!s||s.rowIndex!==m||s.columnIndex!==d)return;let f=`[data-row-index="${m}"][data-col-index="${d}"]`,v=a.querySelector(f);if(v){let c=a.querySelector("thead"),u=c?c.getBoundingClientRect().height:0,g=a.getBoundingClientRect(),r=v.getBoundingClientRect(),p=g.top+u;r.top<p?a.scrollTop-=p-r.top:r.bottom>g.bottom&&(a.scrollTop+=r.bottom-g.bottom),a.scrollWidth>a.clientWidth&&(r.left<g.left?a.scrollLeft-=g.left-r.left:r.right>g.right&&(a.scrollLeft+=r.right-g.right)),document.activeElement!==v&&typeof v.focus=="function"&&v.focus({preventScroll:true});}});},{flush:"post"}),onUnmounted(()=>{l&&(cancelAnimationFrame(l),l=0);}),{activeCell:n,setActiveCell:i}}var qn="data-drag-range",Mt="data-drag-anchor",Se=40;function Xt(e){let o=ut(e),{wrapperRef:n,setActiveCell:l}=e,i=()=>isRef(e.colOffset)?e.colOffset.value:e.colOffset,m=shallowRef(null),d=ref(false),a=ref(false),s=ref(false),f=false,v=null,c=0,u=null,g=null,r=null,p=C=>{rangesEqual(m.value,C)||(m.value=C);},h=(C,R,E)=>{if(C.button!==0)return;let _=i();if(E<_)return;C.preventDefault();let W=E-_,K=m.value;if(C.shiftKey&&K!=null)p(normalizeSelectionRange({startRow:K.startRow,startCol:K.startCol,endRow:R,endCol:W})),l({rowIndex:R,columnIndex:E});else {v={row:R,col:W},f=false;let U={startRow:R,startCol:W,endRow:R,endCol:W};p(U),u=U,l({rowIndex:R,columnIndex:E}),a.value=true,G(U);}},D=()=>{let{rowCount:C,visibleColCount:R}=o.value;C.value===0||R.value===0||(p({startRow:0,startCol:0,endRow:C.value-1,endCol:R.value-1}),l({rowIndex:0,columnIndex:i()}));},I=new Set,b=null,L=(C,R,E,_,W,K,U,X)=>{C.hasAttribute(qn)||C.setAttribute(qn,""),X&&R===X.row&&E===X.col?C.hasAttribute(Mt)||C.setAttribute(Mt,""):C.hasAttribute(Mt)&&C.removeAttribute(Mt);let Y=[];R===_&&Y.push("inset 0 2px 0 0 var(--ogrid-selection, #217346)"),R===W&&Y.push("inset 0 -2px 0 0 var(--ogrid-selection, #217346)"),E===K&&Y.push("inset 2px 0 0 0 var(--ogrid-selection, #217346)"),E===U&&Y.push("inset -2px 0 0 0 var(--ogrid-selection, #217346)"),C.style.boxShadow=Y.length>0?Y.join(", "):"",I.add(C);},H=C=>{C.removeAttribute(qn),C.removeAttribute(Mt),C.style.boxShadow="";},G=C=>{if(!n.value)return;let E=Math.min(C.startRow,C.endRow),_=Math.max(C.startRow,C.endRow),W=Math.min(C.startCol,C.endCol),K=Math.max(C.startCol,C.endCol),U=v,X=i();for(let Y of I){let q=parseInt(Y.getAttribute("data-row-index")??"",10),B=parseInt(Y.getAttribute("data-col-index")??"",10)-X;q>=E&&q<=_&&B>=W&&B<=K||(H(Y),I.delete(Y));}b||(b=buildCellIndex(n.value));let J=false;for(let Y=E;Y<=_;Y++)for(let q=W;q<=K;q++){let B=cellIndexKey(Y,q+X),Z=b?.get(B);Z&&!Z.isConnected&&!J&&(J=true,b=buildCellIndex(n.value),Z=b?.get(B)),Z&&Z.isConnected&&L(Z,Y,q,E,_,W,K,U);}},F=()=>{for(let C of I)H(C);I.clear(),b=null;},x=(C,R)=>{if(!v)return null;let _=document.elementFromPoint(C,R)?.closest?.("[data-row-index][data-col-index]");if(!_)return null;let W=parseInt(_.getAttribute("data-row-index")??"",10),K=parseInt(_.getAttribute("data-col-index")??"",10),U=i();if(Number.isNaN(W)||Number.isNaN(K)||K<U)return null;let X=K-U;return normalizeSelectionRange({startRow:v.row,startCol:v.col,endRow:W,endCol:X})},T=()=>{g&&(cancelAnimationFrame(g),g=null);},M=()=>{let C=n.value,R=r;if(!C||!R||!a.value){g=null;return}let E=C.getBoundingClientRect(),_=0,W=0;if(R.cy<E.top+Se?W=-computeAutoScrollSpeed(E.top+Se-R.cy):R.cy>E.bottom-Se&&(W=computeAutoScrollSpeed(R.cy-(E.bottom-Se))),R.cx<E.left+Se?_=-computeAutoScrollSpeed(E.left+Se-R.cx):R.cx>E.right-Se&&(_=computeAutoScrollSpeed(R.cx-(E.right-Se))),_===0&&W===0){g=null;return}C.scrollTop+=W,C.scrollLeft+=_;let K=x(R.cx,R.cy);K&&(u=K,G(K)),g=requestAnimationFrame(M);},k=()=>{let C=n.value;if(!C||!r||!a.value){T();return}let R=C.getBoundingClientRect(),E=0,_=0;if(r.cy<R.top+Se?_=-computeAutoScrollSpeed(R.top+Se-r.cy):r.cy>R.bottom-Se&&(_=computeAutoScrollSpeed(r.cy-(R.bottom-Se))),r.cx<R.left+Se?E=-computeAutoScrollSpeed(R.left+Se-r.cx):r.cx>R.right-Se&&(E=computeAutoScrollSpeed(r.cx-(R.right-Se))),E===0&&_===0){T();return}g||(g=requestAnimationFrame(M));},y=C=>{!a.value||!v||(f||(f=true,d.value=true,b=buildCellIndex(n.value)),r={cx:C.clientX,cy:C.clientY},k(),c&&cancelAnimationFrame(c),c=requestAnimationFrame(()=>{if(c=0,!r)return;let R=x(r.cx,r.cy);if(!R)return;let E=u;E&&E.startRow===R.startRow&&E.startCol===R.startCol&&E.endRow===R.endRow&&E.endCol===R.endCol||(u=R,G(R));}));},w=()=>{if(!a.value)return;T(),c&&(cancelAnimationFrame(c),c=0),a.value=false;let C=f;if(C){if(r){let E=x(r.cx,r.cy);E&&(u=E);}let R=u;if(R){p(R);let E=v;E&&l({rowIndex:E.row,columnIndex:E.col+i()});}}F(),u=null,r=null,v=null,C&&(d.value=false);},S=C=>{s.value||y(C);},P=()=>{s.value||w();};return onMounted(()=>{window.addEventListener("pointermove",S,true),window.addEventListener("pointerup",P,true);}),onUnmounted(()=>{s.value=true,window.removeEventListener("pointermove",S,true),window.removeEventListener("pointerup",P,true),c&&cancelAnimationFrame(c),T();}),{selectionRange:m,setSelectionRange:p,handleCellMouseDown:h,handleSelectAllCells:D,isDragging:d}}function jt(){let e=shallowRef(null);return {contextMenuPosition:e,setContextMenuPosition:i=>{e.value=i;},handleCellContextMenu:i=>{i.preventDefault?.(),e.value={x:i.clientX,y:i.clientY};},closeContextMenu:()=>{e.value=null;}}}function Yt(e){let{items:o,visibleCols:n,selectionRange:l,activeCell:i,editable:m,onCellValueChanged:d,beginBatch:a,endBatch:s}=e,f=()=>isRef(e.colOffset)?e.colOffset.value:e.colOffset,v=shallowRef(null),c=shallowRef(null),u=ref(null),g=()=>{let I=l.value,b=i.value,L=f();return I??(b!=null?{startRow:b.rowIndex,startCol:b.columnIndex-L,endRow:b.rowIndex,endCol:b.columnIndex-L}:null)},r=()=>{let I=g();if(I==null)return;let b=normalizeSelectionRange(I),L=formatSelectionAsTsv(o.value,n.value,b);u.value=L,c.value=b,navigator.clipboard.writeText(L).catch(H=>{typeof console<"u"&&console.warn("[OGrid] Clipboard write failed:",H);});};return {handleCopy:r,handleCut:()=>{if(m.value===false)return;let I=g();if(I==null||d.value==null)return;let b=normalizeSelectionRange(I);v.value=b,c.value=null,r(),c.value=null;},handlePaste:async()=>{if(m.value===false)return;let I=d.value;if(I==null)return;let b;try{b=await navigator.clipboard.readText();}catch{b="";}if(!b.trim()&&u.value!=null&&(b=u.value),!b.trim())return;let L=g(),H=L?L.startRow:0,G=L?L.startCol:0,F=o.value,x=n.value,T=parseTsvClipboard(b);a?.();let M=applyPastedValues(T,H,G,F,x);for(let k of M)I(k);if(v.value){let k=applyCutClear(v.value,F,x);for(let y of k)I(y);v.value=null;}s?.(),c.value=null;},cutRange:v,copyRange:c,clearClipboardRanges:()=>{c.value=null,v.value=null;}}}function Zt(e){let o=ut(e);return {handleGridKeyDown:l=>{let{data:i,state:m,handlers:d,features:a}=o.value,s=i.items.value,f=i.visibleCols.value,{getRowId:v}=i,c=isRef(i.colOffset)?i.colOffset.value:i.colOffset,u=i.hasCheckboxCol.value,g=i.visibleColumnCount.value,r=m.activeCell.value,p=m.selectionRange.value,h=m.editingCell.value,D=m.selectedRowIds.value,{setActiveCell:I,setSelectionRange:b,setEditingCell:L,handleRowCheckboxChange:H,handleCopy:G,handleCut:F,handlePaste:x,setContextMenu:T,onUndo:M,onRedo:k,clearClipboardRanges:y}=d,w=a.editable.value,S=a.onCellValueChanged.value,P=a.rowSelection.value,C=a.wrapperRef,R=a.scrollToRow,{fillDown:E}=a,_=a.onKeyDown?.value;if(_&&(_(l),l.defaultPrevented))return;let W=s.length-1,K=g-1+c;if(s.length===0)return;if(r===null){["ArrowDown","ArrowUp","ArrowLeft","ArrowRight","Tab","Enter","Home","End","PageDown","PageUp"].includes(l.key)&&(I({rowIndex:0,columnIndex:c}),l.preventDefault());return}let{rowIndex:U,columnIndex:X}=r,J=X-c,Y=l.shiftKey,q=(B,Z)=>{if(B<0||B>=s.length||Z<0||Z>=f.length)return true;let ne=getCellValue(s[B],f[Z]);return ne==null||ne===""};switch(l.key){case "c":if(l.ctrlKey||l.metaKey){if(h!=null)break;l.preventDefault(),G();}break;case "x":if(l.ctrlKey||l.metaKey){if(h!=null)break;l.preventDefault(),F();}break;case "v":if(l.ctrlKey||l.metaKey){if(h!=null)break;l.preventDefault(),x();}break;case "d":if(l.ctrlKey||l.metaKey){if(h!=null)break;w!==false&&E&&(l.preventDefault(),E());}break;case "ArrowDown":case "ArrowUp":case "ArrowRight":case "ArrowLeft":{if(h!=null)break;l.preventDefault();let{newRowIndex:B,newColumnIndex:Z,newRange:ne}=computeArrowNavigation({direction:l.key,rowIndex:U,columnIndex:X,dataColIndex:J,colOffset:c,maxRowIndex:W,maxColIndex:K,visibleColCount:f.length,isCtrl:l.ctrlKey||l.metaKey,isShift:Y,selectionRange:p,isEmptyAt:q});b(ne),I({rowIndex:B,columnIndex:Z}),(l.key==="ArrowDown"||l.key==="ArrowUp")&&R?.(B,"center");break}case "Tab":{l.preventDefault();let{rowIndex:B,columnIndex:Z}=computeTabNavigation(U,X,W,K,c,l.shiftKey),ne=Z-c;b({startRow:B,startCol:ne,endRow:B,endCol:ne}),I({rowIndex:B,columnIndex:Z});break}case "Home":{l.preventDefault();let B=l.ctrlKey?0:U;b({startRow:B,startCol:0,endRow:B,endCol:0}),I({rowIndex:B,columnIndex:c});break}case "End":{l.preventDefault();let B=l.ctrlKey?W:U;b({startRow:B,startCol:g-1,endRow:B,endCol:g-1}),I({rowIndex:B,columnIndex:K});break}case "PageDown":case "PageUp":{l.preventDefault();let B=C.value,Z=10;if(B){let Fe=B.querySelector("tbody tr");Fe&&Fe.offsetHeight>0&&(Z=Math.max(1,Math.floor(B.clientHeight/Fe.offsetHeight)));}let ne=l.key==="PageDown"?1:-1,we=Math.max(0,Math.min(U+ne*Z,W));b(Y?{startRow:p?.startRow??U,startCol:p?.startCol??J,endRow:we,endCol:p?.endCol??J}:{startRow:we,startCol:J,endRow:we,endCol:J}),I({rowIndex:we,columnIndex:X}),R?.(we,"center");break}case "Enter":case "F2":{if(l.preventDefault(),J>=0&&J<f.length){let B=f[J],Z=s[U];if(Z&&B){let ne=B.editable===true||typeof B.editable=="function"&&B.editable(Z);w!==false&&ne&&S!=null&&L({rowId:v(Z),columnId:B.columnId});}}break}case "Escape":l.preventDefault(),h!=null?L(null):(y?.(),I(null),b(null));break;case " ":if(P!=="none"&&X===0&&u){l.preventDefault();let B=s[U];if(B){let Z=v(B),ne=D.has(Z);H(Z,!ne,U,l.shiftKey);}}break;case "z":(l.ctrlKey||l.metaKey)&&h==null&&(l.shiftKey&&k?(l.preventDefault(),k()):!l.shiftKey&&M&&(l.preventDefault(),M()));break;case "y":(l.ctrlKey||l.metaKey)&&h==null&&k&&(l.preventDefault(),k());break;case "a":if(l.ctrlKey||l.metaKey){if(h!=null)break;l.preventDefault(),s.length>0&&g>0&&(b({startRow:0,startCol:0,endRow:s.length-1,endCol:g-1}),I({rowIndex:0,columnIndex:c}));}break;case "Delete":case "Backspace":{if(h!=null||w===false||S==null)break;let B=p??(r!=null?{startRow:r.rowIndex,startCol:r.columnIndex-c,endRow:r.rowIndex,endCol:r.columnIndex-c}:null);if(B==null)break;l.preventDefault();let Z=applyCellDeletion(B,s,f);for(let ne of Z)S(ne);break}case "F10":if(l.shiftKey)if(l.preventDefault(),r!=null&&C.value){let B=`[data-row-index="${r.rowIndex}"][data-col-index="${r.columnIndex}"]`,Z=C.value.querySelector(B);if(Z){let ne=Z.getBoundingClientRect();T({x:ne.left+ne.width/2,y:ne.top+ne.height/2});}else T({x:100,y:100});}else T({x:100,y:100});break;}}}}var Jt="data-drag-range";function Qt(e){let{items:o,visibleCols:n,editable:l,onCellValueChanged:i,selectionRange:m,setSelectionRange:d,setActiveCell:a,wrapperRef:s,beginBatch:f,endBatch:v,visibleRange:c}=e,u=()=>isRef(e.colOffset)?e.colOffset.value:e.colOffset,g=shallowRef(null),r={endRow:0,endCol:0},p=0,h=null,D=null,I=null,b=F=>{g.value=F;},L=()=>{D&&(window.removeEventListener("pointermove",D,true),D=null),I&&(window.removeEventListener("pointerup",I,true),I=null),p&&(cancelAnimationFrame(p),p=0);};return watch(g,(F,x,T)=>{if(!F||l.value===false||!i.value||!s.value){L();return}r={endRow:F.startRow,endCol:F.startCol},h=null;let M=new Set,k=buildCellIndex(s.value),y=C=>{if(!s.value)return;let E=Math.min(C.startRow,C.endRow),_=Math.max(C.startRow,C.endRow),W=Math.min(C.startCol,C.endCol),K=Math.max(C.startCol,C.endCol),U=u();for(let X of M){let J=parseInt(X.getAttribute("data-row-index")??"",10),Y=parseInt(X.getAttribute("data-col-index")??"",10)-U;J>=E&&J<=_&&Y>=W&&Y<=K||(X.removeAttribute(Jt),M.delete(X));}for(let X=E;X<=_;X++)for(let J=W;J<=K;J++){let Y=cellIndexKey(X,J+U),q=k?.get(Y);q&&!q.isConnected&&(k=buildCellIndex(s.value),q=k.get(Y)),q&&(q.hasAttribute(Jt)||q.setAttribute(Jt,""),M.add(q));}},w=()=>{for(let C of M)C.removeAttribute(Jt);M.clear();},S=null,P=(C,R)=>{let _=document.elementFromPoint(C,R)?.closest?.("[data-row-index][data-col-index]");if(!_||!s.value?.contains(_))return null;let W=parseInt(_.getAttribute("data-row-index")??"",10),K=parseInt(_.getAttribute("data-col-index")??"",10),U=u();if(Number.isNaN(W)||Number.isNaN(K)||K<U)return null;let X=K-U;return normalizeSelectionRange({startRow:F.startRow,startCol:F.startCol,endRow:W,endCol:X})};D=C=>{S={cx:C.clientX,cy:C.clientY},p&&cancelAnimationFrame(p),p=requestAnimationFrame(()=>{if(p=0,!S)return;let R=P(S.cx,S.cy);if(!R)return;let E=h;E&&E.startRow===R.startRow&&E.startCol===R.startCol&&E.endRow===R.endRow&&E.endCol===R.endCol||(h=R,r={endRow:R.endRow,endCol:R.endCol},y(R));});},I=()=>{if(p&&(cancelAnimationFrame(p),p=0),S){let U=P(S.cx,S.cy);U&&(h=U,r={endRow:U.endRow,endCol:U.endCol});}w();let C=r,R=normalizeSelectionRange({startRow:F.startRow,startCol:F.startCol,endRow:C.endRow,endCol:C.endCol}),E=c?.value;E&&(R.startRow=Math.max(R.startRow,E.startIndex),R.endRow=Math.min(R.endRow,E.endIndex)),d(R),a({rowIndex:F.startRow,columnIndex:F.startCol+u()});let _=o.value,W=n.value,K=i.value;if(K){let U=applyFillValues(R,F.startRow,F.startCol,_,W);if(U.length>0){f?.();for(let X of U)K(X);v?.();}}g.value=null,h=null,L();},window.addEventListener("pointermove",D,true),window.addEventListener("pointerup",I,true),T(()=>{L();});}),onUnmounted(()=>L()),{fillDrag:g,setFillDrag:b,handleFillHandleMouseDown:F=>{F.preventDefault(),F.stopPropagation();let x=m.value;x&&(g.value={startRow:x.startRow,startCol:x.startCol});},fillDown:()=>{let F=m.value;if(!F||l.value===false||!i.value)return;let x=normalizeSelectionRange(F),T=o.value,M=n.value,k=i.value,y=applyFillValues(x,x.startRow,x.startCol,T,M);if(y.length>0){f?.();for(let w of y)k(w);v?.();}}}}function en(e){let{onCellValueChanged:o,maxUndoDepth:n=100,afterChange:l}=e,i=new UndoRedoStack(n),m=ref(false),d=ref(false),a=()=>{m.value=i.canUndo,d.value=i.canRedo;};return {onCellValueChanged:o?g=>{i.record(g),i.isBatching||a(),o(g),i.isBatching||l?.();}:void 0,undo:()=>{if(!o)return;let g=i.undo();if(g){a();for(let r=g.length-1;r>=0;r--){let p=g[r];o({...p,oldValue:p.newValue,newValue:p.oldValue});}l?.();}},redo:()=>{if(!o)return;let g=i.redo();if(g){a();for(let r of g)o(r);l?.();}},canUndo:m,canRedo:d,beginBatch:()=>{i.beginBatch();},endBatch:()=>{i.endBatch(),a(),l?.();},maxUndoDepth:n}}function tn(e){let{wrapperRef:o,visibleCols:n,flatColumns:l,hasCheckboxCol:i,initialColumnWidths:m,onColumnResized:d}=e,a=ref(0),s,f=()=>{let r=o.value;if(!r)return;let p=r.getBoundingClientRect(),h=window.getComputedStyle(r),D=(parseFloat(h.borderLeftWidth||"0")||0)+(parseFloat(h.borderRightWidth||"0")||0);a.value=Math.max(0,p.width-D);};onMounted(()=>{let r=o.value;r&&(typeof ResizeObserver<"u"&&(s=new ResizeObserver(f),s.observe(r)),f());}),onUnmounted(()=>{s?.disconnect();});let v=ref((()=>{if(!m)return {};let r={};for(let[p,h]of Object.entries(m))r[p]={widthPx:h};return r})()),c=r=>{v.value=r;},u=computed(()=>{let r=i.value?CHECKBOX_COLUMN_WIDTH:0;return n.value.reduce((p,h)=>p+(h.minWidth??estimateHeaderMinWidth(h.name))+CELL_PADDING,r)});watch(l,r=>{let p=new Set(r.map(b=>b.columnId)),h=v.value,D=Object.keys(h),I=D.filter(b=>p.has(b));if(I.length<D.length){let b={};for(let L of I)b[L]=h[L];v.value=b;}});let g=computed(()=>{let r=i.value?CHECKBOX_COLUMN_WIDTH:0;return n.value.reduce((p,h)=>{let D=v.value[h.columnId],I=h.minWidth??estimateHeaderMinWidth(h.name),b=D?D.widthPx:h.idealWidth??h.defaultWidth??I;return p+Math.max(I,b)+CELL_PADDING},r)});return {containerWidth:a,minTableWidth:u,desiredTableWidth:g,columnSizingOverrides:v,setColumnSizingOverrides:c,onColumnResized:d}}function nn(e){let{columns:o,pinnedColumns:n,onColumnPinned:l}=e,i={};for(let u of o.value)u.pinned&&(i[u.columnId]=u.pinned);let m=ref(i),d=computed(()=>n?.value??m.value);return {pinnedColumns:d,pinColumn:(u,g)=>{let r={...d.value,[u]:g};m.value=r,l?.(u,g);},unpinColumn:u=>{let{[u]:g,...r}=d.value;m.value=r,l?.(u,null);},isPinned:u=>d.value[u],computeLeftOffsets:(u,g,r,p,h)=>{let D={},I=p?h:0;for(let b of u)d.value[b.columnId]==="left"&&(D[b.columnId]=I,I+=g[b.columnId]??r);return D},computeRightOffsets:(u,g,r)=>{let p={},h=0;for(let D=u.length-1;D>=0;D--){let I=u[D];d.value[I.columnId]==="right"&&(p[I.columnId]=h,h+=g[I.columnId]??r);}return p}}}function ln(e){let{columns:o,pinnedColumns:n,onPinColumn:l,onUnpinColumn:i,onSort:m,onColumnResized:d,onAutosizeColumn:a,sortBy:s,sortDirection:f}=e,v=ref(false),c=ref(null),u=ref(null),g=(P,C)=>{c.value=P,u.value=C,v.value=true;},r=()=>{v.value=false,c.value=null,u.value=null;},p=computed(()=>c.value?o.value.find(P=>P.columnId===c.value):void 0),h=computed(()=>c.value?n.value[c.value]:void 0),D=computed(()=>h.value!=="left"),I=computed(()=>h.value!=="right"),b=computed(()=>!!h.value),L=computed(()=>!c.value||!s?.value||s.value!==c.value?null:f?.value??null),H=computed(()=>p.value?.sortable!==false),G=ref(true);return {isOpen:v,openForColumn:c,anchorElement:u,open:g,close:r,handlePinLeft:()=>{c.value&&D.value&&(l(c.value,"left"),r());},handlePinRight:()=>{c.value&&I.value&&(l(c.value,"right"),r());},handleUnpin:()=>{c.value&&b.value&&(i(c.value),r());},handleSortAsc:()=>{c.value&&m&&(m(c.value,"asc"),r());},handleSortDesc:()=>{c.value&&m&&(m(c.value,"desc"),r());},handleClearSort:()=>{c.value&&m&&(m(c.value,null),r());},handleAutosizeThis:()=>{let P=a??d;if(!c.value||!P||!G.value)return;let C=p.value;P(c.value,measureColumnContentWidth(c.value,C?.minWidth)),r();},handleAutosizeAll:()=>{let P=a??d;P&&(o.value.forEach(C=>{P(C.columnId,measureColumnContentWidth(C.columnId,C.minWidth));}),r());},canPinLeft:D,canPinRight:I,canUnpin:b,currentSort:L,isSortable:H,isResizable:G}}var Ze=()=>{},Br=async()=>{},Hr=(e,o,n)=>{},Vr=e=>{},zr=e=>{};function an(e){let{props:o,wrapperRef:n}=e,l=computed(()=>o.value.items),i=o.value.getRowId,m=computed(()=>o.value.rowSelection??"none"),d=computed(()=>o.value.selectedRows),a=computed(()=>o.value.editable),s=computed(()=>o.value.cellSelection!==false),f=computed(()=>o.value.pinnedColumns),v=ref(0),c=()=>{v.value++;},u=en({onCellValueChanged:o.value.onCellValueChanged,afterChange:c}),g=computed(()=>u.onCellValueChanged),r=computed(()=>flattenColumns(o.value.columns)),p=computed(()=>{let te=f.value;return !te||Object.keys(te).length===0?r.value:r.value.map(Q=>{let re=te[Q.columnId];return re&&Q.pinned!==re?{...Q,pinned:re}:Q})}),h=computed(()=>resolveResponsiveConfig(o.value.responsiveColumns)),D=computed(()=>{let te=o.value.visibleColumns,Q=o.value.columnOrder,re=te?p.value.filter(se=>te.has(se.columnId)):p.value;if(!Q?.length)return re;let me=new Map;for(let se=0;se<Q.length;se++)me.set(Q[se],se);return [...re].sort((se,Me)=>{let ye=me.get(se.columnId)??-1,he=me.get(Me.columnId)??-1;return ye===-1&&he===-1?0:ye===-1?1:he===-1?-1:ye-he})}),I=ref(0),b=computed(()=>applyResponsiveHiding(D.value,I.value,h.value)),L=computed(()=>b.value.length),H=computed(()=>m.value==="multiple"),G=computed(()=>!!o.value.showRowNumbers),F=computed(()=>(H.value?1:0)+(G.value?1:0)),x=computed(()=>L.value+F.value),T=F,M=shallowRef(new Map);watch(l,te=>{let Q=M.value;Q.clear(),te.forEach((re,me)=>Q.set(i(re),me)),triggerRef(M);},{immediate:true});let k=Kt({items:l,getRowId:i,rowSelection:m,controlledSelectedRows:d,onSelectionChange:o.value.onSelectionChange}),{editingCell:y,setEditingCell:w,pendingEditorValue:S,setPendingEditorValue:P}=$t(),{activeCell:C,setActiveCell:R}=qt(n,y),E=computed(()=>l.value.length),_=computed(()=>b.value.length),{selectionRange:W,setSelectionRange:K,handleCellMouseDown:U,handleSelectAllCells:X,isDragging:J}=Xt({colOffset:T,rowCount:E,visibleColCount:_,setActiveCell:R,wrapperRef:n}),{contextMenuPosition:Y,setContextMenuPosition:q,handleCellContextMenu:B,closeContextMenu:Z}=jt(),{handleCopy:ne,handleCut:we,handlePaste:Fe,cutRange:Ke,copyRange:Pe,clearClipboardRanges:xe}=Yt({items:l,visibleCols:b,colOffset:T,selectionRange:W,activeCell:C,editable:a,onCellValueChanged:g,beginBatch:u.beginBatch,endBatch:u.endBatch}),Ne=(te,Q,re)=>{te.button===0&&(n.value?.focus({preventScroll:true}),xe(),U(te,Q,re));},{handleFillHandleMouseDown:He,fillDown:We}=Qt({items:l,visibleCols:b,editable:a,onCellValueChanged:g,selectionRange:W,setSelectionRange:K,setActiveCell:R,colOffset:T,wrapperRef:n,beginBatch:u.beginBatch,endBatch:u.endBatch}),{handleGridKeyDown:$e}=Zt({data:{items:l,visibleCols:b,colOffset:T,hasCheckboxCol:H,visibleColumnCount:L,getRowId:i},state:{activeCell:C,selectionRange:W,editingCell:y,selectedRowIds:k.selectedRowIds},handlers:{setActiveCell:R,setSelectionRange:K,setEditingCell:w,handleRowCheckboxChange:k.handleRowCheckboxChange,handleCopy:ne,handleCut:we,handlePaste:Fe,setContextMenu:q,onUndo:u.undo,onRedo:u.redo,clearClipboardRanges:xe},features:{editable:a,onCellValueChanged:g,rowSelection:m,wrapperRef:n,fillDown:We,onKeyDown:computed(()=>o.value.onKeyDown)}}),{containerWidth:et,minTableWidth:tt,desiredTableWidth:ct,columnSizingOverrides:Ue,setColumnSizingOverrides:mt}=tn({wrapperRef:n,visibleCols:D,flatColumns:p,hasCheckboxCol:H,initialColumnWidths:o.value.initialColumnWidths,onColumnResized:(te,Q)=>o.value.onColumnResized?.(te,Q)});watch(et,te=>{I.value=te;},{immediate:true});let Ie=nn({columns:p,pinnedColumns:f,onColumnPinned:o.value.onColumnPinned}),gt=(te,Q)=>{mt({...Ue.value,[te]:{widthPx:Q}}),o.value.onColumnResized?.(te,Q);},ae=ln({columns:p,pinnedColumns:Ie.pinnedColumns,onPinColumn:Ie.pinColumn,onUnpinColumn:Ie.unpinColumn,onSort:o.value.onColumnSort,onColumnResized:o.value.onColumnResized,onAutosizeColumn:gt,sortBy:computed(()=>o.value.sortBy),sortDirection:computed(()=>o.value.sortDirection)}),Oe=ref({});watch([b,et,Ue],()=>{nextTick(()=>{let te=n.value;if(!te)return;let Q=te.querySelectorAll("th[data-column-id]");if(Q.length===0)return;let re={};Q.forEach(ye=>{let he=ye.getAttribute("data-column-id");he&&(re[he]=ye.offsetWidth);});let me=Oe.value,se=Object.keys(re),Me=se.length!==Object.keys(me).length;if(!Me){for(let ye of se)if(me[ye]!==re[ye]){Me=true;break}}Me&&(Oe.value=re);});},{flush:"post"});let nt=computed(()=>{let te={};for(let Q of b.value){let re=Ue.value[Q.columnId];te[Q.columnId]=re?re.widthPx:Q.idealWidth??Q.defaultWidth??Q.minWidth??DEFAULT_MIN_COLUMN_WIDTH;}return te}),ot=computed(()=>Ie.computeLeftOffsets(b.value,nt.value,DEFAULT_MIN_COLUMN_WIDTH,H.value,CHECKBOX_COLUMN_WIDTH)),Ee=computed(()=>Ie.computeRightOffsets(b.value,nt.value,DEFAULT_MIN_COLUMN_WIDTH)),lt=computed(()=>computeAggregations(l.value,b.value,s.value?W.value:null)),rt=computed(()=>{let te=getDataGridStatusBarConfig(o.value.statusBar,l.value.length,k.selectedRowIds.value.size);return te?{...te,aggregation:lt.value??void 0}:null}),_e=computed(()=>l.value.length===0&&!!o.value.emptyState&&!o.value.isLoading),Ct=computed(()=>W.value!=null||C.value!=null),ht=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})),Ve=computed(()=>({editingCell:y.value,activeCell:s.value?C.value:null,selectionRange:s.value?W.value:null,cutRange:s.value?Ke.value:null,copyRange:s.value?Pe.value:null,colOffset:T.value,itemsLength:l.value.length,getRowId:i,editable:a.value,onCellValueChanged:g.value,isDragging:s.value?J.value:false,getFormulaValue:o.value.getFormulaValue,hasFormula:o.value.hasFormula,getFormula:o.value.getFormula,formulaVersion:o.value.formulaVersion})),ft=ref(null),at=te=>{ft.value=te;},Rt=(te,Q,re,me,se,Me,ye)=>{let he=b.value.find(ge=>ge.columnId===Q);if(he){let ge=parseValue(me,re,te,he);if(!ge.valid){w(null),at(null),P(void 0);return}me=ge.value;}if(w(null),at(null),P(void 0),Object.is(me,re)||g.value?.({item:te,columnId:Q,oldValue:re,newValue:me,rowIndex:se}),!ye?.skipAdvance&&se<l.value.length-1){let ge=se+1,yt=Me-T.value;R({rowIndex:ge,columnIndex:Me}),K({startRow:ge,startCol:yt,endRow:ge,endCol:yt});}},xt=()=>{w(null),at(null),P(void 0);},ve=computed(()=>({flatColumns:p.value,visibleCols:b.value,visibleColumnCount:L.value,totalColCount:x.value,colOffset:T.value,hasCheckboxCol:H.value,hasRowNumbersCol:G.value,rowIndexByRowId:M.value,containerWidth:et.value,minTableWidth:tt.value,desiredTableWidth:ct.value,columnSizingOverrides:Ue.value,setColumnSizingOverrides:mt,onColumnResized:o.value.onColumnResized,measuredColumnWidths:Oe.value,stickyHeader:o.value.stickyHeader??true})),bt=computed(()=>({selectedRowIds:k.selectedRowIds.value,updateSelection:k.updateSelection,handleRowCheckboxChange:k.handleRowCheckboxChange,handleSelectAll:k.handleSelectAll,allSelected:k.allSelected.value,someSelected:k.someSelected.value})),It=computed(()=>({editingCell:y.value,setEditingCell:w,pendingEditorValue:S.value,setPendingEditorValue:P,commitCellEdit:Rt,cancelPopoverEdit:xt,popoverAnchorEl:ft.value,setPopoverAnchorEl:at})),qe=computed(()=>(v.value,{activeCell:s.value?C.value:null,setActiveCell:s.value?R:Ze,selectionRange:s.value?W.value:null,setSelectionRange:s.value?K:Ze,handleCellMouseDown:s.value?Ne:Hr,handleSelectAllCells:s.value?X:Ze,hasCellSelection:s.value?Ct.value:false,handleGridKeyDown:s.value?$e:Vr,handleFillHandleMouseDown:s.value?He:Ze,handleCopy:s.value?ne:Ze,handleCut:s.value?we:Ze,handlePaste:s.value?Fe:Br,cutRange:s.value?Ke.value:null,copyRange:s.value?Pe.value:null,clearClipboardRanges:s.value?xe:Ze,canUndo:u.canUndo.value,canRedo:u.canRedo.value,onUndo:u.undo,onRedo:u.redo,isDragging:s.value?J.value:false})),St=computed(()=>({menuPosition:s.value?Y.value:null,setMenuPosition:s.value?q:Ze,handleCellContextMenu:s.value?B:zr,closeContextMenu:s.value?Z:Ze})),Tt=computed(()=>({headerFilterInput:ht.value,cellDescriptorInput:Ve.value,statusBarConfig:rt.value,showEmptyInGrid:_e.value,onCellError:o.value.onCellError})),Pt=computed(()=>({pinnedColumns:Ie.pinnedColumns.value,pinColumn:Ie.pinColumn,unpinColumn:Ie.unpinColumn,isPinned:Ie.isPinned,leftOffsets:ot.value,rightOffsets:Ee.value,headerMenu:{isOpen:ae.isOpen.value,openForColumn:ae.openForColumn.value,anchorElement:ae.anchorElement.value,open:ae.open,close:ae.close,handlePinLeft:ae.handlePinLeft,handlePinRight:ae.handlePinRight,handleUnpin:ae.handleUnpin,handleSortAsc:ae.handleSortAsc,handleSortDesc:ae.handleSortDesc,handleClearSort:ae.handleClearSort,handleAutosizeThis:ae.handleAutosizeThis,handleAutosizeAll:ae.handleAutosizeAll,canPinLeft:ae.canPinLeft.value,canPinRight:ae.canPinRight.value,canUnpin:ae.canUnpin.value,currentSort:ae.currentSort.value,isSortable:ae.isSortable.value,isResizable:ae.isResizable.value}}));return {layout:ve,rowSelection:bt,editing:It,interaction:qe,contextMenu:St,viewModels:Tt,pinning:Pt}}function sn(e){let{columnSizingOverrides:o,setColumnSizingOverrides:n,minWidth:l=80,defaultWidth:i=120,onColumnResized:m}=e,d=0,a=null;return onUnmounted(()=>{a?.(),a=null;}),{handleResizeStart:(c,u)=>{c.preventDefault(),c.stopPropagation();let g=c.clientX,r=u.columnId,p=c.currentTarget.parentElement,h=p?p.getBoundingClientRect().width:o.value[r]?.widthPx??u.idealWidth??u.defaultWidth??i,D=h,I=document.body.style.cursor,b=document.body.style.userSelect;document.body.style.cursor="col-resize",document.body.style.userSelect="none";let L=()=>{n({...o.value,[r]:{widthPx:D}});},H=r===ROW_NUMBER_COLUMN_ID?ROW_NUMBER_COLUMN_MIN_WIDTH:l,G=T=>{let M=T.clientX-g;D=Math.max(H,h+M),d||(d=requestAnimationFrame(()=>{d=0,L();}));},F=()=>{document.removeEventListener("pointermove",G),document.removeEventListener("pointerup",x),a=null,document.body.style.cursor=I,document.body.style.userSelect=b,d&&(cancelAnimationFrame(d),d=0);},x=()=>{F(),L(),m?.(r,D);};document.addEventListener("pointermove",G),document.addEventListener("pointerup",x),a=F;},handleResizeDoubleClick:(c,u)=>{c.preventDefault(),c.stopPropagation();let g=u.columnId,p=(c.currentTarget.closest("th")??c.currentTarget.parentElement)?.closest("table")?.parentElement??void 0,h=measureColumnContentWidth(g,l,p);n({...o.value,[g]:{widthPx:h}}),m?.(g,h);},getColumnWidth:c=>o.value[c.columnId]?.widthPx??c.idealWidth??c.defaultWidth??i}}function un(e,o){let n=ref(e.value),l;return watch(e,i=>{l!==void 0&&clearTimeout(l),l=setTimeout(()=>{n.value=i;},o);}),onUnmounted(()=>{l!==void 0&&clearTimeout(l);}),n}function Mo(e,o){let n,l=e,i,m=((...d)=>{l=e,i=d,n!==void 0&&clearTimeout(n),n=setTimeout(()=>{l(...d),i=void 0,n=void 0;},o);});return m.cancel=()=>{n!==void 0&&clearTimeout(n),n=void 0,i=void 0;},m.flush=()=>{if(n!==void 0&&i!==void 0){clearTimeout(n),n=void 0;let d=i;i=void 0,l(...d);}},onUnmounted(()=>{n!==void 0&&clearTimeout(n);}),m}function dn(e){let{textValue:o="",onTextChange:n}=e,l=ref(o);return watch(e.isFilterOpen,a=>{a&&(l.value=e.textValue??"");}),{tempTextValue:l,setTempTextValue:a=>{l.value=a;},handleTextApply:()=>{n?.(l.value.trim());},handleTextClear:()=>{l.value="";}}}var Zr=150,Zn=[];function cn(e){let{onFilterChange:o}=e,n=ref(new Set(e.selectedValues??Zn)),l=ref(""),i=un(l,Zr);watch(e.isFilterOpen,u=>{u&&(n.value=new Set(e.selectedValues??Zn),l.value="");});let m=computed(()=>{let u=e.options??Zn;if(!i.value.trim())return u;let g=i.value.toLowerCase().trim();return u.filter(r=>r.toLowerCase().includes(g))});return {tempSelected:n,setTempSelected:u=>{n.value=u;},searchText:l,setSearchText:u=>{l.value=u;},debouncedSearchText:i,filteredOptions:m,handleCheckboxChange:(u,g)=>{let r=new Set(n.value);g?r.add(u):r.delete(u),n.value=r;},handleSelectAll:()=>{n.value=new Set(m.value);},handleClearSelection:()=>{n.value=new Set;},handleApplyMultiSelect:()=>{o?.(Array.from(n.value));}}}var Qr=300;function fn(e){let{onUserChange:o,filterType:n}=e,l=ref(null),i,m=ref([]),d=ref(false),a=ref(""),s=c=>{a.value=c;};return watch(e.isFilterOpen,c=>{c&&(a.value="",m.value=[],n==="people"&&setTimeout(()=>l.value?.focus(),50));}),watch([a,()=>e.peopleSearch,e.isFilterOpen],([c,u,g])=>{if(i&&clearTimeout(i),!(!u||!g||n!=="people")){if(!c.trim()){m.value=[];return}d.value=true,i=setTimeout(async()=>{try{let r=await u(c);m.value=r.slice(0,10);}catch{m.value=[];}finally{d.value=false;}},Qr);}}),onUnmounted(()=>{i&&clearTimeout(i);}),{peopleSuggestions:m,isPeopleLoading:d,peopleSearchText:a,setPeopleSearchText:s,peopleInputRef:l,handleUserSelect:c=>{o?.(c);},handleClearUser:()=>{o?.(void 0);}}}function pn(e){let{onDateChange:o}=e,n=ref(e.dateValue?.from??""),l=ref(e.dateValue?.to??"");return watch(e.isFilterOpen,s=>{s&&(n.value=e.dateValue?.from??"",l.value=e.dateValue?.to??"");}),{tempDateFrom:n,setTempDateFrom:s=>{n.value=s;},tempDateTo:l,setTempDateTo:s=>{l.value=s;},handleDateApply:()=>{let s=n.value||void 0,f=l.value||void 0;o?.(s||f?{from:s,to:f}:void 0);},handleDateClear:()=>{n.value="",l.value="";}}}var oa=[];function Ho(e){let{filterType:o,onSort:n}=e,l=()=>e.selectedValues??oa,i=ref(null),m=ref(null),d=ref(false),a=ref(null),s=P=>{d.value=P;},f=dn({textValue:e.textValue,onTextChange:e.onTextChange,isFilterOpen:d}),v=cn({selectedValues:e.selectedValues,onFilterChange:e.onFilterChange,options:e.options,isFilterOpen:d}),c=fn({selectedUser:e.selectedUser,onUserChange:e.onUserChange,peopleSearch:e.peopleSearch,isFilterOpen:d,filterType:o}),u=pn({dateValue:e.dateValue,onDateChange:e.onDateChange,isFilterOpen:d});watch(d,P=>{P||(a.value=null);});let g=null,r=null,p,h=()=>{D(),g=P=>{let C=P.target;m.value&&!m.value.contains(C)&&i.value&&!i.value.contains(C)&&(d.value=false);},r=P=>{(P.key==="Escape"||P.key==="Esc")&&(P.preventDefault(),P.stopPropagation(),d.value=false);},p=setTimeout(()=>{g&&document.addEventListener("mousedown",g);},0),document.addEventListener("keydown",r,true);},D=()=>{p&&clearTimeout(p),g&&document.removeEventListener("mousedown",g),r&&document.removeEventListener("keydown",r,true),g=null,r=null;};watch(d,P=>{P?h():D();}),onUnmounted(()=>D());let I=P=>{if(P.stopPropagation(),P.preventDefault(),!d.value&&i.value){let C=i.value.getBoundingClientRect();a.value={top:C.bottom+4,left:C.left};}d.value=!d.value;},b=P=>{P.stopPropagation(),n?.();},L=()=>{v.handleApplyMultiSelect(),d.value=false;},H=()=>{f.handleTextApply(),d.value=false;},G=P=>{c.handleUserSelect(P),d.value=false;},F=()=>{c.handleClearUser(),d.value=false;},x=()=>{u.handleDateApply(),d.value=false;},T=P=>P.stopPropagation(),M=P=>P.stopPropagation(),k=P=>P.stopPropagation(),y=P=>P.stopPropagation(),w=P=>{P.key!=="Escape"&&P.key!=="Esc"&&P.stopPropagation();},S=computed(()=>o==="multiSelect"?l().length>0:o==="text"?!!(e.textValue??"").trim():o==="people"?!!e.selectedUser:o==="date"?!!(e.dateValue?.from||e.dateValue?.to):false);return {headerRef:i,popoverRef:m,peopleInputRef:c.peopleInputRef,isFilterOpen:d,setFilterOpen:s,tempSelected:v.tempSelected,setTempSelected:v.setTempSelected,tempTextValue:f.tempTextValue,setTempTextValue:f.setTempTextValue,searchText:v.searchText,setSearchText:v.setSearchText,debouncedSearchText:v.debouncedSearchText,filteredOptions:v.filteredOptions,peopleSuggestions:c.peopleSuggestions,isPeopleLoading:c.isPeopleLoading,peopleSearchText:c.peopleSearchText,setPeopleSearchText:c.setPeopleSearchText,tempDateFrom:u.tempDateFrom,setTempDateFrom:u.setTempDateFrom,tempDateTo:u.tempDateTo,setTempDateTo:u.setTempDateTo,hasActiveFilter:S,popoverPosition:a,handlers:{handleFilterIconClick:I,handleApplyMultiSelect:L,handleTextApply:H,handleTextClear:f.handleTextClear,handleUserSelect:G,handleClearUser:F,handleCheckboxChange:v.handleCheckboxChange,handleSelectAll:v.handleSelectAll,handleClearSelection:v.handleClearSelection,handlePopoverClick:T,handleInputFocus:M,handleInputMouseDown:k,handleInputClick:y,handleInputKeyDown:w,handleDateApply:x,handleDateClear:u.handleDateClear,handleSortClick:b}}}function zo(e){let{columns:o,visibleColumns:n,onVisibilityChange:l}=e,i=ref(false),m=null,d=()=>{a(),m=h=>{h.key==="Escape"&&(h.preventDefault(),i.value=false);},document.addEventListener("keydown",m,true);},a=()=>{m&&(document.removeEventListener("keydown",m,true),m=null);};watch(i,h=>{h?d():a();}),onUnmounted(()=>a());let s=h=>{i.value=h;},f=()=>{i.value=!i.value;},v=()=>{i.value=false;},c=h=>D=>{l(h,D);},u=()=>{o.value.forEach(h=>{n.value.has(h.columnId)||l(h.columnId,true);});},g=()=>{o.value.forEach(h=>{!h.required&&n.value.has(h.columnId)&&l(h.columnId,false);});},r=computed(()=>n.value.size),p=computed(()=>o.value.length);return {open:i,setOpen:s,handleToggle:f,handleClose:v,handleCheckboxChange:c,handleSelectAll:u,handleClearAll:g,visibleCount:r,totalCount:p}}function Go(e){let{value:o,editorType:n,onCommit:l,onCancel:i,dateFormat:m,dateEditorType:d}=e,a=m??DEFAULT_DATE_FORMAT,s=ref((()=>{if(o==null)return "";if(n==="date"){if(d==="native"){let p=String(o);return p.match(/^\d{4}-\d{2}-\d{2}/)?p.substring(0,10):p}return formatDateForDisplay(o,a)??""}return String(o)})()),f=p=>{s.value=p;},v=p=>{if(n==="date"&&d!=="native"){if(!p||!p.trim()){l(null);return}let h=parseUserInputDate(p,a);if(h!==null){let D=h.getUTCFullYear().toString().padStart(4,"0"),I=(h.getUTCMonth()+1).toString().padStart(2,"0"),b=h.getUTCDate().toString().padStart(2,"0");l(`${D}-${I}-${b}`);}else l(null);}else l(p);},c=p=>{l(p);},u=()=>{i();};return {localValue:s,setLocalValue:f,handleKeyDown:p=>{p.key==="Escape"&&(p.preventDefault(),p.stopPropagation(),u()),p.key==="Enter"&&(n==="text"||n==="date")&&(p.preventDefault(),p.stopPropagation(),v(s.value));},handleBlur:()=>{(n==="text"||n==="date")&&v(s.value);},commit:c,cancel:u}}function Wo(e){let{values:o,formatValue:n,initialValue:l,onCommit:i,onCancel:m}=e,d=ref(""),a=o.findIndex(r=>String(r)===String(l)),s=ref(Math.max(a,0)),f=r=>{d.value=r;},v=r=>n?n(r):r!=null?String(r):"",c=computed(()=>{if(!d.value.trim())return o;let r=d.value.toLowerCase();return o.filter(p=>v(p).toLowerCase().includes(r))}),u=r=>{i(r);};return {searchText:d,setSearchText:f,filteredValues:c,highlightedIndex:s,handleKeyDown:r=>{switch(r.key){case "ArrowDown":r.preventDefault(),s.value=Math.min(s.value+1,c.value.length-1);break;case "ArrowUp":r.preventDefault(),s.value=Math.max(s.value-1,0);break;case "Enter":r.preventDefault(),r.stopPropagation(),c.value.length>0&&s.value<c.value.length&&u(c.value[s.value]);break;case "Escape":r.preventDefault(),r.stopPropagation(),m();break}},selectValue:u,getDisplayText:v}}var ga=8,Ca=5;function gn(e){let{columnOrder:o,onColumnOrderChange:n,tableRef:l,pinnedColumns:i}=e,m=ref(false),d=ref(null),a=null,s="unpinned",f=0,v=null;return onUnmounted(()=>{v?.(),v=null;}),{isDragging:m,dropIndicatorX:d,handleHeaderMouseDown:(u,g)=>{if(g.button!==0)return;let r=g.target.closest("th");if(r){let T=r.getBoundingClientRect();if(g.clientX>T.right-ga)return}if(g.preventDefault(),!l.value||!n.value)return;a=u,s=getPinStateForColumn(u,i?.value),d.value=null;let h=g.clientX,D=false,I=g.clientX,b=-1,L=document.body.style.cursor,H=document.body.style.userSelect;document.body.style.cursor="grabbing",document.body.style.userSelect="none";let G=T=>{!D&&Math.abs(T.clientX-h)<Ca||(D||(D=true,m.value=true),I=T.clientX,f||(f=requestAnimationFrame(()=>{f=0;let M=l.value;if(!M||!a)return;let k=calculateDropTarget({mouseX:I,columnOrder:o.value,draggedColumnId:a,draggedPinState:s,tableElement:M,pinnedColumns:i?.value});k?(b=k.targetIndex,d.value=k.indicatorX):d.value=null;})));},F=()=>{window.removeEventListener("pointermove",G,true),window.removeEventListener("pointerup",x,true),v=null,document.body.style.cursor=L,document.body.style.userSelect=H,f&&(cancelAnimationFrame(f),f=0);},x=()=>{if(F(),D&&a&&b>=0&&n.value){let T=reorderColumnArray(o.value,a,b);n.value(T);}a=null,m.value=false,d.value=null,b=-1;};window.addEventListener("pointermove",G,true),window.addEventListener("pointerup",x,true),v=F;}}}var Ta=100;function hn(e){let{totalRows:o,rowHeight:n,enabled:l,overscan:i=5,threshold:m=Ta,columnsEnabled:d,columnWidths:a,columnOverscan:s=2}=e;onMounted(()=>{validateVirtualScrollConfig({enabled:l.value,rowHeight:n});});let f=ref(null),v=ref(0),c=ref(0),u=ref(0),g=ref(0),r=0,p,h=null,D=computed(()=>l.value&&o.value>=m),I=computed(()=>D.value?computeVisibleRange(v.value,n,u.value,o.value,i):{startIndex:0,endIndex:Math.max(0,o.value-1),offsetTop:0,offsetBottom:0}),b=computed(()=>l.value?computeTotalHeight(o.value,n):0),L=computed(()=>{if(!d?.value)return null;let x=a?.value;return !x||x.length===0?null:computeVisibleColumnRange(c.value,x,g.value,s)}),H=()=>{r||(r=requestAnimationFrame(()=>{r=0;let x=f.value;x&&(v.value=x.scrollTop,c.value=x.scrollLeft);}));},G=()=>{let x=f.value;x&&(u.value=x.clientHeight,g.value=x.clientWidth);};return watch(f,x=>{x!==h&&(h&&h.removeEventListener("scroll",H),p&&(p.disconnect(),p=void 0),h=x,x&&(x.addEventListener("scroll",H,{passive:true}),typeof ResizeObserver<"u"&&(p=new ResizeObserver(G),p.observe(x)),G(),v.value=x.scrollTop,c.value=x.scrollLeft));}),onUnmounted(()=>{let x=f.value;x&&x.removeEventListener("scroll",H),p?.disconnect(),r&&(cancelAnimationFrame(r),r=0);}),{containerRef:f,visibleRange:I,totalHeight:b,scrollToRow:(x,T="start")=>{let M=f.value;M&&(M.scrollTop=getScrollTopForRow(x,n,u.value,T));},columnRange:L,scrollLeft:c}}function bn(e){let{props:o}=e,n=ref(null),l=ref(null),i=ref(null),m=ref(false),d=an({props:o,wrapperRef:n}),a=computed(()=>{let G=o.value;return G.columnOrder?G.columnOrder:flattenColumns(G.columns).filter(F=>G.visibleColumns?.has(F.columnId)??true).map(F=>F.columnId)}),s=computed(()=>o.value.onColumnOrderChange),f=gn({columnOrder:a,onColumnOrderChange:s,tableRef:i}),v=computed(()=>o.value.virtualScroll?.enabled??false),c=computed(()=>o.value.items.length),u=o.value.virtualScroll?.rowHeight??36,g=o.value.virtualScroll?.overscan??5,r=computed(()=>o.value.virtualScroll?.columns===true),p=o.value.virtualScroll?.columnOverscan??2,h=computed(()=>{let G=d.layout.value,{visibleCols:F,columnSizingOverrides:x}=G,T=o.value.pinnedColumns??{},M=[];for(let k of F){if(T[k.columnId]||k.pinned)continue;let y=x[k.columnId];M.push(y?y.widthPx:k.defaultWidth??k.minWidth??DEFAULT_MIN_COLUMN_WIDTH);}return M}),D=hn({totalRows:c,rowHeight:u,enabled:v,overscan:g,columnsEnabled:r,columnWidths:h,columnOverscan:p}),I=computed(()=>{if(!r.value)return null;let F=d.layout.value.visibleCols,x=D.columnRange.value,T=o.value.pinnedColumns;return partitionColumnsForVirtualization(F,x,T)}),b=computed(()=>{let F=d.layout.value.visibleCols,x=new Map;for(let T=0;T<F.length;T++)x.set(F[T].columnId,T);return x}),L=computed(()=>d.layout.value.columnSizingOverrides),H=sn({columnSizingOverrides:L,setColumnSizingOverrides:G=>d.layout.value.setColumnSizingOverrides(G)});return {wrapperRef:n,tableContainerRef:l,tableRef:i,lastMouseShift:m,state:d,columnReorder:f,virtualScroll:D,virtualScrollEnabled:v,columnResize:H,columnPartition:I,globalColIndexMap:b}}function Sn(e,o,n){let l={"data-row-index":e.rowIndex,"data-col-index":e.globalColIndex,...e.isActive?{"data-active-cell":"true"}:{},...e.isInRange?{"data-in-range":"true"}:{},tabindex:e.isActive?0:-1,onPointerdown:i=>{n.setEditingCell(null),n.handleCellMouseDown(i,e.rowIndex,e.globalColIndex);},onClick:()=>n.setActiveCell({rowIndex:e.rowIndex,columnIndex:e.globalColIndex}),onContextmenu:i=>n.handleCellContextMenu(i)};return e.canEditAny&&(l.role="button",l.onDblclick=()=>n.setEditingCell({rowId:e.rowId,columnId:o})),l}var Ko=()=>{};function Ha(e){return defineComponent({name:"DataGridTable",props:{gridProps:{type:Object,required:true}},setup(o){let n=computed(()=>o.gridProps),{wrapperRef:l,tableContainerRef:i,tableRef:m,lastMouseShift:d,state:a,columnReorder:{isDragging:s,dropIndicatorX:f,handleHeaderMouseDown:v},virtualScroll:{containerRef:c,visibleRange:u,totalHeight:g,scrollToRow:r},virtualScrollEnabled:p,columnResize:{handleResizeStart:h$1,handleResizeDoubleClick:D,getColumnWidth:I},columnPartition:b,globalColIndexMap:L}=bn({props:n}),H=computed(()=>{let S=n.value;return S.showRowNumbers||S.showColumnLetters?((S.currentPage??1)-1)*(S.pageSize??25):0});watch([()=>a.interaction.value.activeCell,H],([S,P])=>{let C=n.value.onActiveCellChange;C&&C(S?formatCellReference(S.columnIndex-a.layout.value.colOffset,P+S.rowIndex+1):null);},{immediate:true});let G=S=>{d.value=S.shiftKey;},F=S=>{S.button===0&&S.preventDefault();},x=S=>{S.button===0&&S.preventDefault();},T=S=>{S.preventDefault();},M=S=>S.preventDefault(),k=S=>S.stopPropagation(),y=computed(()=>buildHeaderRows(n.value.columns,n.value.visibleColumns)),w=computed(()=>{let S=a.layout.value,P=a.pinning.value,{visibleCols:C,columnSizingOverrides:R,measuredColumnWidths:E}=S,{leftOffsets:_,rightOffsets:W}=P,K={},U={},X={},J={};for(let Y=0;Y<C.length;Y++){let q=C[Y],B=q.pinned==="left",Z=q.pinned==="right",ne=I(q),we=!!R[q.columnId],Fe=E[q.columnId],Ke=q.minWidth??estimateHeaderMinWidth(q.name),Pe=we?ne:Math.max(Ke,Fe??0),xe=q.width,Ne={minWidth:`${Pe}px`,width:xe??`${ne}px`,...xe?{}:{maxWidth:`${ne}px`}},He={minWidth:`${Pe}px`,width:xe??`${ne}px`,...xe?{}:{maxWidth:`${ne}px`}},We=["ogrid-data-cell"],$e=["ogrid-header-cell"];B?(We.push("ogrid-data-cell--pinned-left"),Ne.left=`${_[q.columnId]??0}px`,$e.push("ogrid-header-cell--pinned-left"),He.left=`${_[q.columnId]??0}px`):Z&&(We.push("ogrid-data-cell--pinned-right"),Ne.right=`${W[q.columnId]??0}px`,$e.push("ogrid-header-cell--pinned-right"),He.right=`${W[q.columnId]??0}px`),K[q.columnId]=Ne,U[q.columnId]=We.join(" "),X[q.columnId]=He,J[q.columnId]=$e.join(" ");}return {cellStyles:K,cellClasses:U,hdrStyles:X,hdrClasses:J}});return ()=>{let S=o.gridProps,P=a.layout.value,C=a.rowSelection.value,R=a.editing.value,E=a.interaction.value,_=a.contextMenu.value,W=a.viewModels.value,K=a.pinning.value,{headerMenu:U}=K,{visibleCols:X,hasCheckboxCol:J,hasRowNumbersCol:Y,colOffset:q,containerWidth:B,minTableWidth:Z,desiredTableWidth:ne}=P,we=S.currentPage??1,Fe=S.pageSize??25,Ke=Y?(we-1)*Fe:0,{selectedRowIds:Pe,handleRowCheckboxChange:xe,handleSelectAll:Ne,allSelected:He,someSelected:We}=C,{editingCell:$e,setEditingCell:et,pendingEditorValue:tt,setPendingEditorValue:ct,commitCellEdit:Ue,cancelPopoverEdit:mt,popoverAnchorEl:Ie,setPopoverAnchorEl:gt}=R,{setActiveCell:ae,setSelectionRange:Oe,handleCellMouseDown:nt,handleSelectAllCells:ot,selectionRange:Ee,hasCellSelection:lt,handleGridKeyDown:rt,handleFillHandleMouseDown:_e,handleCopy:Ct,handleCut:ht,handlePaste:Ve,cutRange:ft,copyRange:at,canUndo:Rt,canRedo:xt,onUndo:ve,onRedo:bt,isDragging:It}=E,{menuPosition:qe,handleCellContextMenu:St,closeContextMenu:Tt}=_,{headerFilterInput:Pt,cellDescriptorInput:te,statusBarConfig:Q,showEmptyInGrid:re,onCellError:me}=W,se=S.items,Me=S.getRowId,ye=S.layoutMode??"fill",he=S.rowSelection??"none",ge=S.suppressHorizontalScroll,yt=S.stickyHeader??true,Et=S.isLoading??false,Dn=S.loadingMessage??"Loading\u2026",Fn=S["aria-label"],ke=S["aria-labelledby"],Un=ye==="content",Dt=!ge&&B>0&&(Z>B||ne>B),ze=y.value,Ft={commitCellEdit:Ue,setEditingCell:et,setPendingEditorValue:ct,cancelPopoverEdit:mt},On={handleCellMouseDown:nt,setActiveCell:ae,setEditingCell:et,handleCellContextMenu:St},Mn=A=>{if(he!=="single")return;let ie=A.currentTarget.dataset.rowId;ie&&C.updateSelection(Pe.has(ie)?new Set:new Set([ie]));},t=(A,V,ie,Le)=>{try{return O(A,V,ie,Le)}catch(N){return me&&me(N instanceof Error?N:new Error(String(N)),void 0),""}},O=(A,V,ie,Le)=>{let N=getCellRenderDescriptor(A,V,ie,Le,te);if(N.mode==="editing-inline"){let ue=buildInlineEditorProps(A,V,N,Ft);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"&&V.cellEditor!=null&&typeof V.cellEditor!="string"){let ue=buildPopoverEditorProps(A,V,N,tt,Ft),oe=V.cellEditor,Bt=resolveCellDisplayContent(V,A,N.displayValue),to=resolveCellStyle(V,A,N.displayValue);return h("div",[h("div",{ref:no=>{no&>(no);},class:"ogrid-popover-anchor"},[to?h("span",{style:to},[Bt]):Bt]),Ie?h(oe,ue):null])}let Be=Sn(N,V.columnId,On),Te=["ogrid-cell-content"];V.type==="numeric"?Te.push("ogrid-cell-content--numeric"):V.type==="boolean"&&Te.push("ogrid-cell-content--boolean"),N.canEditAny&&Te.push("ogrid-cell-content--editable"),N.isActive&&Te.push("ogrid-cell-content--active"),N.isActive&&N.isInRange&&Te.push("ogrid-cell-content--active-in-range"),N.isInRange&&!N.isActive&&Te.push("ogrid-cell-in-range"),N.isInCutRange&&Te.push("ogrid-cell-cut");let Ye;if(N.columnType==="boolean"){let ue=!!N.displayValue;Ye=h("input",{type:"checkbox",checked:ue,disabled:!N.canEditAny,onChange:N.canEditAny?()=>{let oe=N.rowIndex,Bt=N.globalColIndex;Ft.commitCellEdit(A,V.columnId,ue,!ue,oe,Bt,{skipAdvance:true});}:void 0,onPointerdown:oe=>handleBooleanCellPointerDown(oe,N.rowIndex,N.globalColIndex,q,{setActiveCell:ae,setSelectionRange:Oe}),onClick:oe=>oe.stopPropagation(),style:`margin:0;cursor:${N.canEditAny?"pointer":"default"};outline:none`,"aria-label":ue?"Checked":"Unchecked"});}else {let ue=resolveCellDisplayContent(V,A,N.displayValue),oe=resolveCellStyle(V,A,N.displayValue);Ye=oe?h("span",{style:oe},ue):ue;}return h("div",{...Be,class:Te.join(" ")},[Ye,...N.canEditAny&&N.isSelectionEndCell?[h("div",{onPointerdown:_e,"aria-label":"Fill handle",class:"ogrid-fill-handle"})]:[]])},{cellStyles:le,cellClasses:Re,hdrStyles:it,hdrClasses:st}=w.value,Xe=X.map(A=>({col:A,tdClasses:Re[A.columnId]||"ogrid-data-cell",tdDynamicStyle:le[A.columnId]||{}})),fe=b.value,pt=Xe,je=0,Ce=0;if(fe){let A=new Set;for(let V of fe.pinnedLeft)A.add(V.columnId);for(let V of fe.virtualizedUnpinned)A.add(V.columnId);for(let V of fe.pinnedRight)A.add(V.columnId);pt=Xe.filter(V=>A.has(V.col.columnId)),je=fe.leftSpacerWidth,Ce=fe.rightSpacerWidth;}let be=L.value,Ae=A=>{let V=it[A.columnId]||{};return {classes:st[A.columnId]||"ogrid-header-cell",style:{...V,cursor:s.value?"grabbing":"grab"}}},pe=p.value,De={position:"relative",width:Un?"fit-content":"100%",maxWidth:"100%",overflowX:ge?"hidden":Dt?"auto":"hidden",overflowY:"auto",backgroundColor:"#fff",willChange:"scroll-position",...pe?{flex:"1",minHeight:"0"}:{minHeight:Et&&se.length===0?"200px":"auto"}};return S.rowHeight&&(De["--ogrid-row-height"]=`${S.rowHeight}px`),h("div",{class:"ogrid-outer-container"},[h("div",{ref:A=>{l.value=A,c.value=A;},tabindex:0,role:"region","aria-label":Fn??(ke?void 0:"Data grid"),"aria-labelledby":ke,onPointerdown:G,onKeydown:rt,onContextmenu:M,"data-overflow-x":Dt?"true":"false","data-ogrid-scroll-container":"",style:De},[h("div",{class:"ogrid-scroll-wrapper"},[h("div",{style:{minWidth:Dt?`${Z}px`:void 0,overflowX:"clip"}},[h("div",{ref:A=>{i.value=A;},class:["ogrid-table-container",Et&&se.length>0?"ogrid-table-container--loading":""]},[...s.value&&f.value!==null?[h("div",{class:"ogrid-drop-indicator",style:{left:`${f.value}px`}})]:[],h("table",{ref:A=>{m.value=A;},class:"ogrid-table",role:"grid",style:{minWidth:`${Z}px`},...p.value?{"data-virtual-scroll":""}:{}},[h("thead",{class:yt?"ogrid-thead ogrid-sticky-header":"ogrid-thead"},[...S.showColumnLetters?[h("tr",{class:"ogrid-column-letter-row"},[...J?[h("th",{class:"ogrid-column-letter-cell"})]:[],...Y?[h("th",{class:"ogrid-column-letter-cell"})]:[],...X.map((A,V)=>{let{classes:ie,style:Le}=Ae(A);return h("th",{key:A.columnId,class:`ogrid-column-letter-cell ${ie}`,style:Le},indexToColumnLetter(V))})])]:[],...ze.map((A,V)=>h("tr",{key:V,class:"ogrid-header-row"},[...V===ze.length-1&&J?[h("th",{class:"ogrid-checkbox-header",style:{width:`${CHECKBOX_COLUMN_WIDTH}px`,minWidth:`${CHECKBOX_COLUMN_WIDTH}px`,maxWidth:`${CHECKBOX_COLUMN_WIDTH}px`}},e.renderCheckbox({modelValue:He,indeterminate:We&&!He,ariaLabel:"Select all rows",onChange:ie=>Ne(!!ie)}))]:[],...V===0&&V<ze.length-1&&J?[h("th",{rowSpan:ze.length-1,class:"ogrid-checkbox-spacer",style:{width:`${CHECKBOX_COLUMN_WIDTH}px`,minWidth:`${CHECKBOX_COLUMN_WIDTH}px`}})]:[],...V===ze.length-1&&Y?[(()=>{let ie=P.columnSizingOverrides[ROW_NUMBER_COLUMN_ID]?.widthPx??ROW_NUMBER_COLUMN_WIDTH;return h("th",{class:"ogrid-row-number-header",style:{width:`${ie}px`,minWidth:`${ie}px`,maxWidth:`${ie}px`,position:"sticky",left:J?`${CHECKBOX_COLUMN_WIDTH}px`:"0",zIndex:3},onPointerdown:F,onMousedown:x,onSelectstart:T},["#",h("div",{onPointerdown:Le=>{ae(null),Oe(null),l.value?.focus({preventScroll:true}),Le.stopPropagation(),h$1(Le,{columnId:ROW_NUMBER_COLUMN_ID,name:"#"});},class:"ogrid-resize-handle",role:"separator","aria-label":"Resize row numbers"})])})()]:[],...V===0&&V<ze.length-1&&Y?[(()=>{let ie=P.columnSizingOverrides[ROW_NUMBER_COLUMN_ID]?.widthPx??ROW_NUMBER_COLUMN_WIDTH;return h("th",{rowSpan:ze.length-1,class:"ogrid-row-number-spacer",style:{width:`${ie}px`,position:"sticky",left:J?`${CHECKBOX_COLUMN_WIDTH}px`:"0",zIndex:3}})})()]:[],...A.map((ie,Le)=>{if(ie.isGroup)return h("th",{key:Le,colSpan:ie.colSpan,scope:"colgroup",class:"ogrid-column-group-header"},ie.label);if(!ie.columnDef)return null;let N=ie.columnDef,{classes:Be,style:Te}=Ae(N),ue=S.sortBy===N.columnId?S.sortDirection==="asc"?"ascending":"descending":void 0;return h("th",{key:N.columnId,scope:"col","data-column-id":N.columnId,rowSpan:ze.length>1?ze.length-V:void 0,class:Be,style:Te,"aria-sort":ue,onPointerdown:oe=>v(N.columnId,oe)},[h("div",{class:"ogrid-header-content"},[h(e.ColumnHeaderFilter,getHeaderFilterConfig(N,Pt)),h("button",{onClick:oe=>{oe.stopPropagation(),U.isOpen&&U.openForColumn===N.columnId?U.close():U.open(N.columnId,oe.currentTarget);},"aria-label":"Column options",title:"Column options",class:"ogrid-column-menu-btn"},"\u22EE")]),h("div",{onPointerdown:oe=>{ae(null),Oe(null),l.value?.focus({preventScroll:true}),oe.stopPropagation(),h$1(oe,N);},onDblclick:oe=>D(oe,N),class:"ogrid-resize-handle",role:"separator","aria-label":`Resize ${N.name??N.columnId}`})])})]))]),...re?[]:[h("tbody",{},(()=>{let A=p.value,V=u.value,ie=A?V.startIndex:0,Le=A?Math.min(V.endIndex,se.length-1):se.length-1,N=[];A&&V.offsetTop>0&&N.push(h("tr",{key:"__vs-top",style:{height:`${V.offsetTop}px`}}));for(let Be=ie;Be<=Le;Be++){let Te=se[Be];if(!Te)continue;let Ye=Me(Te),ue=Pe.has(Ye);N.push(h("tr",{key:Ye,"data-row-id":Ye,"aria-selected":ue||void 0,onClick:Mn,style:{cursor:he==="single"?"pointer":void 0}},[...J?[h("td",{class:"ogrid-checkbox-cell",style:{width:`${CHECKBOX_COLUMN_WIDTH}px`,minWidth:`${CHECKBOX_COLUMN_WIDTH}px`,maxWidth:`${CHECKBOX_COLUMN_WIDTH}px`}},h("div",{"data-row-index":Be,"data-col-index":0,onClick:k,class:"ogrid-checkbox-wrapper"},e.renderCheckbox({modelValue:ue,ariaLabel:`Select row ${Be+1}`,onChange:oe=>xe(Ye,oe,Be,d.value)})))]:[],...Y?[(()=>{let oe=P.columnSizingOverrides[ROW_NUMBER_COLUMN_ID]?.widthPx??ROW_NUMBER_COLUMN_WIDTH;return h("td",{class:"ogrid-row-number-cell",style:{width:`${oe}px`,minWidth:`${oe}px`,maxWidth:`${oe}px`,padding:"6px",position:"sticky",left:J?`${CHECKBOX_COLUMN_WIDTH}px`:"0",zIndex:2,userSelect:"none",WebkitUserSelect:"none"},onPointerdown:F,onMousedown:x,onSelectstart:T},String(Ke+Be+1))})()]:[],...je>0?[h("td",{key:"__col-spacer-left",style:{width:`${je}px`,minWidth:`${je}px`,maxWidth:`${je}px`,padding:"0"}})]:[],...pt.map(oe=>h("td",{key:oe.col.columnId,"data-column-id":oe.col.columnId,class:oe.tdClasses,style:{...oe.tdDynamicStyle,userSelect:"none",WebkitUserSelect:"none"},onPointerdown:F,onMousedown:x,onSelectstart:T},[t(Te,oe.col,Be,be.get(oe.col.columnId)??0)])),...Ce>0?[h("td",{key:"__col-spacer-right",style:{width:`${Ce}px`,minWidth:`${Ce}px`,maxWidth:`${Ce}px`,padding:"0"}})]:[]]));}return A&&V.offsetBottom>0&&N.push(h("tr",{key:"__vs-bottom",style:{height:`${V.offsetBottom}px`}})),N})())]]),...re&&S.emptyState?[e.renderEmptyState(S.emptyState)]:[]])])])]),...qe?[h(Teleport,{to:"body"},h(e.GridContextMenu,{x:qe.x,y:qe.y,hasSelection:lt,canUndo:Rt,canRedo:xt,onUndo:ve??Ko,onRedo:bt??Ko,onCopy:Ct,onCut:ht,onPaste:()=>{Ve();},onSelectAll:ot,onClose:Tt}))]:[],h(An,{containerRef:i,selectionRange:Ee,copyRange:at,cutRange:ft,colOffset:q,items:se,visibleColumns:S.visibleColumns instanceof Set?Array.from(S.visibleColumns):S.visibleColumns,columnSizingOverrides:P.columnSizingOverrides,columnOrder:S.columnOrder}),...S.formulaReferences&&S.formulaReferences.length>0?[h(zn,{containerEl:i.value,references:S.formulaReferences,colOffset:q})]:[],h(e.ColumnHeaderMenu,{isOpen:U.isOpen,anchorElement:U.anchorElement,onClose:U.close,onPinLeft:U.handlePinLeft,onPinRight:U.handlePinRight,onUnpin:U.handleUnpin,onSortAsc:U.handleSortAsc,onSortDesc:U.handleSortDesc,onClearSort:U.handleClearSort,onAutosizeThis:U.handleAutosizeThis,onAutosizeAll:U.handleAutosizeAll,canPinLeft:U.canPinLeft,canPinRight:U.canPinRight,canUnpin:U.canUnpin,currentSort:U.currentSort,isSortable:U.isSortable,isResizable:U.isResizable}),...Q?[h(Ln,{totalCount:Q.totalCount,filteredCount:Q.filteredCount,selectedCount:Q.selectedCount??Pe.size,selectedCellCount:Ee?(Math.abs(Ee.endRow-Ee.startRow)+1)*(Math.abs(Ee.endCol-Ee.startCol)+1):void 0,aggregation:Q.aggregation,suppressRowCount:Q.suppressRowCount})]:[],...Et?[h("div",{class:"ogrid-loading-overlay"},e.renderSpinner(Dn))]:[]])}}})}var wt={width:"100%",height:"100%",display:"flex",alignItems:"center",paddingTop:"var(--ogrid-cell-padding-vertical, 6px)",paddingBottom:"var(--ogrid-cell-padding-vertical, 6px)",paddingLeft:"var(--ogrid-cell-padding-horizontal, 10px)",paddingRight:"var(--ogrid-cell-padding-horizontal, 10px)",boxSizing:"border-box",overflow:"hidden",minWidth:"0"};function qa(e){let{renderCheckbox:o}=e;return defineComponent({name:"InlineCellEditor",props:{value:{default:void 0},item:{type:Object,required:true},column:{type:Object,required:true},rowIndex:{type:Number,required:true},editorType:{type:String,required:true},onCommit:{type:Function,required:true},onCancel:{type:Function,required:true}},setup(n){let l=ref(null),i=ref(null),m=ref(null),d=ref(n.value),a=ref(0),s=ref(false),f=y=>{d.value=y.target.value;},v=y=>y?.target?.value??String(d.value??""),c=y=>{if(n.editorType==="date"){let w=n.column.cellEditorParams?.dateFormat??n.column.dateFormat??DEFAULT_DATE_FORMAT;if((n.column.cellEditorParams?.editorType??"text")==="native"){if(y==null){d.value="";return}let P=String(y);d.value=P.match(/^\d{4}-\d{2}-\d{2}/)?P.substring(0,10):P;return}d.value=formatDateForDisplay(y,w)??"";return}d.value=y;};c(n.value);let u=y=>{s.value=true,n.onCommit(y);},g=()=>{s.value=true,n.onCancel();},r=()=>s.value?(s.value=false,true):false,p=()=>{let y=i.value,w=m.value;if(!y||!w)return;let S=y.getBoundingClientRect(),P=200,C=window.innerHeight-S.bottom,R=C<P&&S.top>C;w.style.position="fixed",w.style.left=`${S.left}px`,w.style.width=`${S.width}px`,w.style.maxHeight=`${P}px`,w.style.zIndex="9999",w.style.right="auto",w.style.textAlign="left",R?(w.style.top="auto",w.style.bottom=`${window.innerHeight-S.top}px`):w.style.top=`${S.bottom}px`;},h$1=null,D=null;onMounted(()=>{let y=w=>{w.key==="Escape"&&(w.preventDefault(),w.stopPropagation(),g());};document.addEventListener("keydown",y,true),D=()=>{document.removeEventListener("keydown",y,true);},nextTick(()=>{if(i.value){n.editorType==="richSelect"&&F.value?F.value.focus({preventScroll:true}):i.value.focus({preventScroll:true}),p();let w=i.value,S=w.closest("[data-ogrid-scroll-container]")??w.closest('[style*="overflow"]'),P=()=>{n.onCancel&&n.onCancel();},C=requestAnimationFrame(()=>{S&&S.addEventListener("scroll",P,{passive:true}),window.addEventListener("scroll",P,{passive:true});});h$1=()=>{cancelAnimationFrame(C),S&&S.removeEventListener("scroll",P),window.removeEventListener("scroll",P);};return}l.value?.focus({preventScroll:true}),l.value?.select();});}),onUnmounted(()=>{h$1?.(),D?.();}),watch(()=>n.value,c),(()=>{let w=(n.column.cellEditorParams?.values??[]).findIndex(S=>String(S)===String(n.value));a.value=Math.max(w,0);})();let b=()=>{nextTick(()=>{let y=m.value;if(!y)return;y.children[a.value]?.scrollIntoView({block:"nearest"});});},L=y=>{let w=n.column.cellEditorParams?.formatValue;return w?w(y):y!=null?String(y):""},H=y=>{let w=n.column.cellEditorParams?.values??[];switch(y.key){case "ArrowDown":y.preventDefault(),a.value=Math.min(a.value+1,w.length-1),b();break;case "ArrowUp":y.preventDefault(),a.value=Math.max(a.value-1,0),b();break;case "Enter":y.preventDefault(),y.stopPropagation(),w.length>0&&a.value<w.length&&u(w[a.value]);break;case "Tab":y.preventDefault(),w.length>0&&a.value<w.length&&u(w[a.value]);break;case "Escape":y.preventDefault(),y.stopPropagation(),g();break}},G=ref(""),F=ref(null),x=ref(null),T=computed(()=>{let y=n.column.cellEditorParams?.values??[],w=G.value.trim().toLowerCase();return w?y.filter(S=>L(S).toLowerCase().includes(w)):y}),M=()=>{nextTick(()=>{let y=x.value;if(!y)return;y.children[a.value]?.scrollIntoView({block:"nearest"});});},k=y=>{let w=T.value;switch(y.key){case "ArrowDown":y.preventDefault(),a.value=Math.min(a.value+1,w.length-1),M();break;case "ArrowUp":y.preventDefault(),a.value=Math.max(a.value-1,0),M();break;case "Enter":y.preventDefault(),y.stopPropagation(),w.length>0&&a.value<w.length&&u(w[a.value]);break;case "Escape":y.preventDefault(),y.stopPropagation(),g();break}};return ()=>{if(n.editorType==="checkbox"){let y=!!n.value;return h("div",{style:{...wt,justifyContent:"center"}},o({checked:y,onChange:w=>u(w),onCancel:g}))}if(n.editorType==="select"){let y=n.column.cellEditorParams?.values??[];return h("div",{ref:w=>{i.value=w;},tabindex:0,style:{...wt,position:"relative"},onKeydown:H},[h("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",width:"100%",cursor:"pointer",fontSize:"13px",color:"inherit"}},[h("span",L(n.value)),h("span",{style:{marginLeft:"4px",fontSize:"10px",opacity:"0.5"}},"\u25BE")]),h("div",{ref:w=>{m.value=w;},role:"listbox",style:{position:"absolute",top:"100%",left:"0",right:"0",maxHeight:"200px",overflowY:"auto",background:"var(--ogrid-bg, #fff)",border:"1px solid var(--ogrid-border, rgba(0,0,0,0.12))",zIndex:"10",boxShadow:"0 4px 16px rgba(0,0,0,0.2)",textAlign:"left",fontSize:"13px",fontFamily:"inherit"}},[...y.map((w,S)=>h("div",{key:String(w),role:"option","aria-selected":S===a.value,onClick:()=>u(w),style:{padding:"6px 8px",cursor:"pointer",color:"var(--ogrid-fg, #242424)",fontSize:"13px",...S===a.value?{background:"var(--ogrid-bg-hover, #e8f0fe)"}:{}}},L(w)))])])}if(n.editorType==="richSelect"){let y=T.value;return h("div",{ref:w=>{i.value=w;},style:{...wt,position:"relative"}},[h("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",width:"100%",cursor:"pointer",fontSize:"13px",color:"inherit"}},[h("span",L(n.value)),h("span",{style:{marginLeft:"4px",fontSize:"10px",opacity:"0.5"}},"\u25BE")]),h("div",{ref:w=>{m.value=w;},role:"listbox",style:{position:"absolute",top:"100%",left:"0",right:"0",maxHeight:"200px",overflowY:"auto",background:"var(--ogrid-bg, #fff)",border:"1px solid var(--ogrid-border, rgba(0,0,0,0.12))",zIndex:"10",boxShadow:"0 4px 16px rgba(0,0,0,0.2)",textAlign:"left",fontSize:"13px",fontFamily:"inherit"}},[h("input",{ref:w=>{F.value=w;},type:"text",value:G.value,placeholder:"Search...",onInput:w=>{G.value=w.target.value,a.value=0;},onKeydown:k,style:{width:"100%",padding:"6px 8px",border:"none",borderBottom:"1px solid var(--ogrid-border, rgba(0,0,0,0.12))",background:"var(--ogrid-bg, #fff)",color:"inherit",font:"inherit",fontSize:"13px",outline:"none",boxSizing:"border-box",position:"sticky",top:"0",zIndex:"1"}}),h("div",{ref:w=>{x.value=w;}},y.map((w,S)=>h("div",{key:String(w),role:"option","aria-selected":S===a.value,onClick:()=>u(w),style:{padding:"6px 8px",cursor:"pointer",color:"var(--ogrid-fg, #242424)",fontSize:"13px",...S===a.value?{background:"var(--ogrid-bg-hover, #e8f0fe)"}:{}}},L(w)))),...y.length===0?[h("div",{style:{padding:"6px 8px",color:"var(--ogrid-muted, #999)",fontSize:"13px"}},"No matches")]:[]])])}if(n.editorType==="date"){let y=n.column.cellEditorParams?.dateFormat??n.column.dateFormat??DEFAULT_DATE_FORMAT,w=n.column.cellEditorParams?.editorType??"text",S=R=>{if(w!=="native"){let E=parseUserInputDate(R,y);if(E!==null){let _=E.getUTCFullYear().toString().padStart(4,"0"),W=(E.getUTCMonth()+1).toString().padStart(2,"0"),K=E.getUTCDate().toString().padStart(2,"0");u(`${_}-${W}-${K}`);}else u(R||null);}else u(R);},P=R=>{R.stopPropagation(),R.key==="Enter"&&(R.preventDefault(),S(v(R))),R.key==="Escape"&&(R.preventDefault(),g()),R.key==="Tab"&&(R.preventDefault(),S(v(R)));};if(w==="native"){let R=(()=>{if(d.value==null)return "";let E=String(d.value);return E.match(/^\d{4}-\d{2}-\d{2}/)?E.substring(0,10):E})();return h("div",{style:wt},h("input",{ref:E=>{l.value=E;},type:"date",value:R,style:{width:"100%",height:"100%",border:"none",outline:"none",padding:"0 4px",fontSize:"inherit",boxSizing:"border-box"},onInput:f,onChange:f,onKeyup:f,onKeydown:P,onBlur:E=>{r()||S(v(E));}}))}let C=getDateInputPlaceholder(y);return h("div",{style:wt},h("input",{ref:R=>{l.value=R;},type:"text",value:String(d.value??""),placeholder:C,style:{width:"100%",height:"100%",border:"none",outline:"none",padding:"0 4px",fontSize:"inherit",boxSizing:"border-box"},onInput:f,onChange:f,onKeyup:f,onKeydown:P,onBlur:R=>{r()||S(v(R));}}))}return h("div",{style:wt},h("input",{ref:y=>{l.value=y;},type:"text",value:d.value!=null?String(d.value):"",style:{width:"100%",height:"100%",border:"none",outline:"none",padding:"0 4px",fontSize:"inherit",boxSizing:"border-box"},onInput:f,onChange:f,onKeyup:f,onKeydown:y=>{y.stopPropagation(),y.key==="Enter"&&(y.preventDefault(),u(v(y))),y.key==="Escape"&&(y.preventDefault(),g()),y.key==="Tab"&&(y.preventDefault(),u(v(y)));},onBlur:y=>{r()||u(v(y));}}))}}})}var Qa=240,eo=36,En={columns:"Columns",filters:"Filters"},ei={columns:"\u2261",filters:"\u2A65"};function qo(e){let o=e.activePanel!==null,n=e.position??"right",l={display:"flex",flexDirection:"column",width:`${eo}px`,background:"var(--ogrid-header-bg, #f5f5f5)",...n==="right"?{borderLeft:"1px solid var(--ogrid-border, #e0e0e0)"}:{borderRight:"1px solid var(--ogrid-border, #e0e0e0)"}},i=h("div",{style:l,role:"tablist","aria-label":"Side bar tabs"},e.panels.map(a=>h("button",{key:a,role:"tab","aria-selected":e.activePanel===a,"aria-label":En[a],title:En[a],onClick:()=>e.onPanelChange(e.activePanel===a?null:a),style:{width:`${eo}px`,height:`${eo}px`,border:"none",cursor:"pointer",color:"var(--ogrid-fg, #242424)",fontSize:"14px",display:"flex",alignItems:"center",justifyContent:"center",background:e.activePanel===a?"var(--ogrid-bg, #fff)":"transparent",fontWeight:e.activePanel===a?"bold":"normal"}},ei[a]))),m=null;if(o&&e.activePanel){let a={width:`${Qa}px`,display:"flex",flexDirection:"column",overflow:"hidden",background:"var(--ogrid-bg, #fff)",color:"var(--ogrid-fg, #242424)",...n==="right"?{borderLeft:"1px solid var(--ogrid-border, #e0e0e0)"}:{borderRight:"1px solid var(--ogrid-border, #e0e0e0)"}},s=[];if(e.activePanel==="columns"){let f=e.columns.every(v=>e.visibleColumns.has(v.columnId));s.push(h("div",{style:{display:"flex",gap:"8px",marginBottom:"8px"}},[h("button",{disabled:f,onClick:()=>{let v=new Set(e.visibleColumns);e.columns.forEach(c=>v.add(c.columnId)),e.onSetVisibleColumns(v);},style:{flex:"1",cursor:"pointer",background:"var(--ogrid-bg-subtle, #f3f2f1)",color:"var(--ogrid-fg, #242424)",border:"1px solid var(--ogrid-border, #e0e0e0)",borderRadius:"4px",padding:"4px 8px"}},"Select All"),h("button",{onClick:()=>{let v=new Set;e.columns.forEach(c=>{c.required&&e.visibleColumns.has(c.columnId)&&v.add(c.columnId);}),e.onSetVisibleColumns(v);},style:{flex:"1",cursor:"pointer",background:"var(--ogrid-bg-subtle, #f3f2f1)",color:"var(--ogrid-fg, #242424)",border:"1px solid var(--ogrid-border, #e0e0e0)",borderRadius:"4px",padding:"4px 8px"}},"Clear All")])),e.columns.forEach(v=>{s.push(h("label",{key:v.columnId,style:{display:"flex",alignItems:"center",gap:"6px",padding:"2px 0",cursor:"pointer"}},[h("input",{type:"checkbox",checked:e.visibleColumns.has(v.columnId),disabled:v.required,onChange:c=>e.onVisibilityChange(v.columnId,c.target.checked)}),h("span",null,v.name)]));});}e.activePanel==="filters"&&(e.filterableColumns.length===0?s.push(h("div",{style:{color:"var(--ogrid-muted, #999)",fontStyle:"italic"}},"No filterable columns")):e.filterableColumns.forEach(f=>{let v=f.filterField,c=[h("div",{style:{fontWeight:"500",marginBottom:"4px",fontSize:"13px"}},f.name)];if(f.filterType==="text"){let u=e.filters[v],g=u?.type==="text"?u.value:"";c.push(h("input",{type:"text",value:g,onInput:r=>{let p=r.target.value;e.onFilterChange(v,p?{type:"text",value:p}:void 0);},placeholder:`Filter ${f.name}...`,"aria-label":`Filter ${f.name}`,style:{width:"100%",boxSizing:"border-box",padding:"4px 6px",background:"var(--ogrid-bg, #fff)",color:"var(--ogrid-fg, #242424)",border:"1px solid var(--ogrid-border, #e0e0e0)",borderRadius:"4px"}}));}if(f.filterType==="multiSelect"){let g=(e.filterOptions[v]??[]).map(r=>{let p=e.filters[v],h$1=p?.type==="multiSelect"?p.value.includes(r):false;return h("label",{key:r,style:{display:"flex",alignItems:"center",gap:"4px",padding:"1px 0",cursor:"pointer",fontSize:"13px"}},[h("input",{type:"checkbox",checked:h$1,onChange:D=>{let I=e.filters[v],b=I?.type==="multiSelect"?I.value:[],L=D.target.checked?[...b,r]:b.filter(H=>H!==r);e.onFilterChange(v,L.length>0?{type:"multiSelect",value:L}:void 0);}}),h("span",null,r)])});c.push(h("div",{style:{maxHeight:"120px",overflowY:"auto"},role:"group","aria-label":`${f.name} options`},g));}if(f.filterType==="date"){let u=e.filters[v],g=u?.type==="date"?u.value:{from:void 0,to:void 0};c.push(h("div",{style:{display:"flex",flexDirection:"column",gap:"4px"}},[h("label",{style:{display:"flex",alignItems:"center",gap:"4px",fontSize:"12px"}},["From:",h("input",{type:"date",value:g.from??"",onInput:r=>{let p=r.target.value||void 0,h=g.to;e.onFilterChange(v,p||h?{type:"date",value:{from:p,to:h}}:void 0);},"aria-label":`${f.name} from date`,style:{flex:"1",padding:"2px 4px",background:"var(--ogrid-bg, #fff)",color:"var(--ogrid-fg, #242424)",border:"1px solid var(--ogrid-border, #e0e0e0)",borderRadius:"4px"}})]),h("label",{style:{display:"flex",alignItems:"center",gap:"4px",fontSize:"12px"}},["To:",h("input",{type:"date",value:g.to??"",onInput:r=>{let p=r.target.value||void 0,h=g.from;e.onFilterChange(v,h||p?{type:"date",value:{from:h,to:p}}:void 0);},"aria-label":`${f.name} to date`,style:{flex:"1",padding:"2px 4px",background:"var(--ogrid-bg, #fff)",color:"var(--ogrid-fg, #242424)",border:"1px solid var(--ogrid-border, #e0e0e0)",borderRadius:"4px"}})])]));}s.push(h("div",{key:f.columnId,style:{marginBottom:"12px"}},c));})),m=h("div",{role:"tabpanel","aria-label":En[e.activePanel],style:a},[h("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"8px 12px",borderBottom:"1px solid var(--ogrid-border, #e0e0e0)",fontWeight:"600"}},[h("span",null,En[e.activePanel]),h("button",{onClick:()=>e.onPanelChange(null),style:{border:"none",background:"transparent",cursor:"pointer",fontSize:"16px",color:"var(--ogrid-fg, #242424)"},"aria-label":"Close panel"},"\xD7")]),h("div",{style:{flex:"1",overflowY:"auto",padding:"8px 12px"}},s)]);}let d=[];return n==="left"?(d.push(i),m&&d.push(m)):(m&&d.push(m),d.push(i)),h("div",{style:{display:"flex",flexDirection:"row",flexShrink:"0"},role:"complementary","aria-label":"Side bar"},d)}function ti(e){return defineComponent({name:"OGrid",props:{gridProps:{type:Object,required:true}},setup(o,{expose:n}){let l=computed(()=>o.gridProps),{dataGridProps:i,pagination:m,columnChooser:d,layout:a,api:s}=_t(l);n({api:s});let f=ref(false),v=()=>{f.value=!f.value;},c=u=>{u.key==="Escape"&&f.value&&(f.value=false);};return onMounted(()=>{document.addEventListener("keydown",c);}),onUnmounted(()=>{document.removeEventListener("keydown",c);}),()=>{let u=a.value.sideBarProps,g=u!=null,r=u?.position??"right",p=[];a.value.toolbar&&p.push(a.value.toolbar);let D=a.value.fullScreen===true?h("button",{type:"button",title:f.value?"Exit fullscreen":"Fullscreen","aria-label":f.value?"Exit fullscreen":"Fullscreen",onClick:v,style:{background:"none",border:"1px solid var(--ogrid-border, rgba(0,0,0,0.12))",borderRadius:"4px",padding:"4px 6px",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--ogrid-fg, rgba(0,0,0,0.87))"}},[f.value?h("svg",{width:16,height:16,viewBox:"0 0 16 16",fill:"none",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round",innerHTML:'<polyline points="4 10 0 10 0 14"/><polyline points="12 6 16 6 16 2"/><line x1="0" y1="10" x2="4" y2="6"/><line x1="16" y1="6" x2="12" y2="10"/>'}):h("svg",{width:16,height:16,viewBox:"0 0 16 16",fill:"none",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round",innerHTML:'<polyline points="10 2 14 2 14 6"/><polyline points="6 14 2 14 2 10"/><line x1="14" y1="2" x2="10" y2="6"/><line x1="2" y1="14" x2="6" y2="10"/>'})]):null,I=d.value.placement==="toolbar"?h(e.ColumnChooser,{columns:d.value.columns,visibleColumns:d.value.visibleColumns,onVisibilityChange:d.value.onVisibilityChange}):null,b=h(e.PaginationControls,{currentPage:m.value.page,pageSize:m.value.pageSize,totalCount:m.value.displayTotalCount,onPageChange:m.value.setPage,onPageSizeChange:T=>{m.value.setPageSize(T);},pageSizeOptions:m.value.pageSizeOptions,entityLabelPlural:m.value.entityLabelPlural}),L=h("div",{style:{flex:"1",minWidth:"0",minHeight:"0",display:"flex",flexDirection:"column"}},[h(e.DataGridTable,{gridProps:i.value})]),H=[];g&&r==="left"&&H.push(qo(u)),H.push(L),g&&r!=="left"&&H.push(qo(u));let G=p.length>0||I!=null||D!=null,F=f.value?{position:"fixed",inset:"0",zIndex:9999,display:"flex",flexDirection:"column",background:"var(--ogrid-bg, #fff)"}:{display:"flex",flexDirection:"column",border:"1px solid var(--ogrid-border, rgba(0,0,0,0.12))",borderRadius:"4px",overflow:"hidden"},x=f.value?{display:"flex",flexDirection:"column",flex:"1",minHeight:"0",overflow:"hidden",background:"var(--ogrid-bg, #fff)"}:void 0;return h("div",{class:a.value.className,style:F},[h("div",{style:x??{}},[...G?[h("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"8px 12px",borderBottom:"1px solid var(--ogrid-border, rgba(0,0,0,0.12))",gap:"8px"}},[h("div",{style:{display:"flex",alignItems:"center",gap:"8px",flex:"1"}},p),h("div",{style:{display:"flex",alignItems:"center",gap:"8px"}},[...I?[I]:[],...D?[D]:[]])])]:[],...a.value.toolbarBelow?[h("div",{style:{padding:"8px 12px",borderBottom:"1px solid var(--ogrid-border, rgba(0,0,0,0.12))"}},[a.value.toolbarBelow])]:[],...a.value.formulaBar?[a.value.formulaBar]:[],h("div",{style:{display:"flex",flex:"1",minHeight:"0"}},H),...a.value.sheetTabs?[a.value.sheetTabs]:[],h("div",{style:{display:"flex",alignItems:"center",padding:"8px 0",borderTop:"1px solid var(--ogrid-border, rgba(0,0,0,0.12))"}},[b])])])}}})}export{Bn as FormulaBar,zn as FormulaRefOverlay,An as MarchingAntsOverlay,Vn as SheetTabs,Ln as StatusBar,Ha as createDataGridTable,qa as createInlineCellEditor,ti as createOGrid,Sn as getCellInteractionProps,qt as useActiveCell,$t as useCellEditing,Xt as useCellSelection,Yt as useClipboard,zo as useColumnChooserState,Ho as useColumnHeaderFilterState,ln as useColumnHeaderMenuState,nn as useColumnPinning,gn as useColumnReorder,sn as useColumnResize,jt as useContextMenu,an as useDataGridState,bn as useDataGridTableSetup,pn as useDateFilterState,un as useDebounce,Mo as useDebouncedCallback,Qt as useFillHandle,Gt as useFilterOptions,Nt as useFormulaBar,Go as useInlineCellEditorState,Zt as useKeyboardNavigation,cn as useMultiSelectFilterState,_t as useOGrid,fn as usePeopleFilterState,Wo as useRichSelectState,Kt as useRowSelection,Ot as useSideBarState,tn as useTableLayout,dn as useTextFilterState,en as useUndoRedo,hn as useVirtualScroll};
|
|
@@ -141,15 +141,7 @@
|
|
|
141
141
|
On hover-capable devices: hidden by default, revealed on column hover. */
|
|
142
142
|
}
|
|
143
143
|
|
|
144
|
-
|
|
145
|
-
.ogrid-column-menu-btn {
|
|
146
|
-
visibility: hidden;
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
th:hover .ogrid-column-menu-btn {
|
|
150
|
-
visibility: visible;
|
|
151
|
-
}
|
|
152
|
-
}
|
|
144
|
+
/* Menu button always visible — matches React-radix parity. */
|
|
153
145
|
|
|
154
146
|
.ogrid-column-menu-btn:focus-visible {
|
|
155
147
|
visibility: visible;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alaarab/ogrid-vue",
|
|
3
|
-
"version": "2.7.
|
|
3
|
+
"version": "2.7.3",
|
|
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.7.
|
|
39
|
+
"@alaarab/ogrid-core": "2.7.3"
|
|
40
40
|
},
|
|
41
41
|
"peerDependencies": {
|
|
42
42
|
"vue": "^3.3.0"
|