@taocompany/magic-grid 0.13.0 → 0.13.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs.js CHANGED
@@ -6,5 +6,5 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=requi
6
6
 
7
7
  `)}function Ux(e){if(e.length===0)return[];let t=[],n=[],r=``,i=!1,a=0;for(;a<e.length;){let o=e[a];if(i){if(o===`"`){if(e[a+1]===`"`){r+=`"`,a+=2;continue}i=!1,a+=1;continue}r+=o,a+=1;continue}if(o===`"`){i=!0,a+=1;continue}if(o===` `){n.push(r),r=``,a+=1;continue}if(o===`
8
8
  `){n.push(r),t.push(n),n=[],r=``,a+=1;continue}if(o===`\r`){if(e[a+1]===`
9
- `){n.push(r),t.push(n),n=[],r=``,a+=2;continue}n.push(r),t.push(n),n=[],r=``,a+=1;continue}r+=o,a+=1}return(r.length>0||n.length>0||i)&&(n.push(r),t.push(n)),t}function Wx(e){return e.length===1&&(e[0]?.length??0)===1}var Gx=class{deps;constructor(e){this.deps=e}isCopyEnabled(){let e=this.deps.getCellSelectionOptions();return e.enabled&&e.enableCellCopy}isPasteEnabled(){let e=this.deps.getCellSelectionOptions();return e.enabled&&e.enableCellPaste}copySelectedRanges(){if(!this.isCopyEnabled())return!1;let e=this.deps.getCellRangeService();if(!e?.hasRanges())return!1;let t=this.deps.getCellRangeOperationContext(),n=e.getRanges(),r=this.serializeRanges(n,t);return r!==``&&(this.writeClipboard(r),this.deps.onCopyVisualFeedback?.(),!0)}async pasteFromClipboard(){if(!this.isPasteEnabled())return 0;this.deps.isEditing()&&await this.deps.stopEditing(!1);let e=this.resolvePasteAnchor();if(!e)return 0;let t;try{t=await this.readClipboard()}catch{return 0}let n=Ux(t);if(n.length===0)return 0;let r=this.deps.getCellRangeOperationContext(),i=this.deps.getCellClipboardOptions().processDataFromClipboard?.({data:n,anchor:e});if(i===null)return 0;let a=i??n,o=this.deps.getCellRangeService()?.getRanges()??[];return Wx(a)&&this.shouldPasteSingleCellToRanges(o,r)?await this.applySingleCellPasteToRanges(o,a[0][0]):await this.applyPasteMatrix(e,a)}serializeRanges(e,t){let n=t.displayedColIds,r=this.resolveIndexColumnDisplayOptions(),i=this.deps.getCellClipboardOptions(),a=this.deps.getCellSpanService?.()??null,o=[];for(let t of e){let e=W(t,n);if(!e)continue;let s=n.indexOf(e.leftColId),c=n.indexOf(e.rightColId);if(s<0||c<0)continue;let l=n.slice(s,c+1),u=[];for(let t=e.top;t<=e.bottom;t+=1){let e=this.deps.rowModel.getRow(t);if(!e)continue;let n=[];for(let o of l){if(!_s(o,e.rowKind)){n.push(``);continue}let s=this.deps.columnModel.getColumnById(o);if(!s){n.push(``);continue}if(W_(e,s,this.deps.columnModel,a)){n.push(``);continue}let c=Tx({rowId:e.id,rowIndex:t,colId:o,value:U(e,s),data:e.data,formattedValue:``,column:s,getApi:this.deps.getApi,gridSize:this.deps.gridSize});n.push(Px(t,e,s,r,c,i.processCellForClipboard,this.deps.getCellClipboardDisplayContext?.()))}u.push(Vx(n))}u.length>0&&o.push(u)}return Hx(o)}resolvePasteAnchor(){let e=this.deps.getCellRangeOperationContext().displayedColIds,t=this.deps.getCellRangeService(),n=t?.getRanges()??[],r=this.deps.cellFocusService.getFocusedCell();if(r&&!J(r)){let t=this.deps.rowModel.getRow(r.rowIndex);if(_s(r.colId,t?.rowKind)){let t={rowIndex:r.rowIndex,colId:r.colId};if(n.length===0||n.some(t=>{let n=W(t,e);return n!=null&&Os(r.rowIndex,r.colId,n,e)}))return t}}if(n.length===0)return null;let i=W(n[0],e);if(!i)return null;let a=t?.getAnchor();return a&&Os(a.rowIndex,a.colId,i,e)?{rowIndex:a.rowIndex,colId:a.colId}:{rowIndex:i.top,colId:i.leftColId}}shouldPasteSingleCellToRanges(e,t){if(e.length===0)return!1;let n=0,r=t.displayedColIds;for(let t of e){let e=W(t,r);if(!e)continue;let i=r.indexOf(e.leftColId),a=r.indexOf(e.rightColId);if(i<0||a<0)continue;let o=e.bottom-e.top+1,s=Math.abs(a-i)+1;if(n+=o*s,n>1)return!0}return!1}async applySingleCellPasteToRanges(e,t){let n=this.deps.getCellRangeOperationContext().displayedColIds,r=0,i=new Set,a=new Set,o=[];for(let s of e){let e=W(s,n);if(!e)continue;let c=n.indexOf(e.leftColId),l=n.indexOf(e.rightColId);if(c<0||l<0)continue;let u=Math.min(c,l),d=Math.max(c,l);for(let s=e.top;s<=e.bottom;s+=1){let e=this.deps.rowModel.getRow(s);if(e)for(let c=u;c<=d;c+=1){let l=n[c],u=await this.pasteCell(s,l,e.id,e,t);u.status===`applied`?(r+=1,i.add(e.id),a.add(l),o.push({rowIndex:s,colId:l,applied:!0})):u.showBlockedVisual&&o.push({rowIndex:s,colId:l,applied:!1})}}}return r>0&&this.deps.refreshCells({rowIds:[...i],colIds:[...a]}),o.length>0&&this.deps.onPasteVisualFeedback?.(o),r}async applyPasteMatrix(e,t){let n=this.deps.getCellRangeOperationContext().displayedColIds,r=n.indexOf(e.colId);if(r<0)return 0;let i=this.deps.rowModel.getRowCount(),a=0,o=new Set,s=new Set,c=[];for(let l=0;l<t.length;l+=1){let u=t[l],d=e.rowIndex+l;if(d>=i)break;let f=this.deps.rowModel.getRow(d);if(f)for(let e=0;e<u.length;e+=1){let t=r+e;if(t>=n.length)break;let i=n[t],l=await this.pasteCell(d,i,f.id,f,u[e]);l.status===`applied`?(a+=1,o.add(f.id),s.add(i),c.push({rowIndex:d,colId:i,applied:!0})):l.showBlockedVisual&&c.push({rowIndex:d,colId:i,applied:!1})}}return a>0&&this.deps.refreshCells({rowIds:[...o],colIds:[...s]}),c.length>0&&this.deps.onPasteVisualFeedback?.(c),a}async pasteCell(e,t,n,r,i){if(!vs(t,r.rowKind))return{status:`blocked`,showBlockedVisual:!0};let a=this.deps.columnModel.getColumnById(t);if(!a||!H(a,r,this.deps.getCellDisableContext())||wx(a,r.data))return{status:`blocked`,showBlockedVisual:!0};let o=U(r,a),s=await Lx(a,Tx({rowId:n,rowIndex:e,colId:t,value:o,data:r.data,formattedValue:String(o??``),column:a,getApi:this.deps.getApi,gridSize:this.deps.gridSize}),i,o,{rowIndex:e,rowNode:r,indexColumnOptions:this.resolveIndexColumnDisplayOptions(),processCellFromClipboard:this.deps.getCellClipboardOptions().processCellFromClipboard});return s.status===`blocked`?s:(await Qf(this.deps,async()=>{ep(this.deps.recordRowDataChange,r,a,o,s.parsed,`paste`),this.deps.applyTransaction({update:[r.data]}),this.deps.eventBus.emit(`cellValueChanged`,{rowId:n,colId:t,oldValue:o,newValue:s.parsed,rowNode:r}),await Zf(a,r,{oldValue:o,newValue:s.parsed},{gridSize:this.deps.gridSize,getApi:this.deps.getApi,buildRowSnapshot:this.deps.buildRowSnapshot,getIndexColumnOptions:()=>this.resolveIndexColumnDisplayOptions()},{source:`paste`})}),{status:`applied`})}resolveIndexColumnDisplayOptions(){let e=this.deps.getIndexColumnOptions();return e.showIndexColumn?e.indexColumn:void 0}async writeClipboard(e){if(this.deps.writeToClipboard){await this.deps.writeToClipboard(e);return}await Rx(e)}async readClipboard(){return this.deps.readFromClipboard?this.deps.readFromClipboard():zx()}};function Kx(e){return typeof e==`number`&&Number.isFinite(e)}function qx(e,t){return`${e}:${t}`}function Jx(e,t,n){let r=t.indexOf(e.leftColId),i=t.indexOf(e.rightColId);if(r<0||i<0)return;let a=Math.min(r,i),o=Math.max(r,i);for(let r=e.top;r<=e.bottom;r+=1)for(let e=a;e<=o;e+=1){let i=t[e];i&&n(r,i)}}function Yx(e,t){let n=new Set;return Jx(e,t,(e,t)=>{n.add(qx(e,t))}),n}function Xx(e){let{fixedAnchor:t,pointer:n,sourceRange:r,direction:i,displayedColIds:a}=e;if(a.indexOf(n.colId)<0)return null;let o=W(Ts(t,n),a);return o?i===`y`?{top:o.top,bottom:o.bottom,leftColId:r.leftColId,rightColId:r.rightColId}:i===`x`?{top:r.top,bottom:r.bottom,leftColId:o.leftColId,rightColId:o.rightColId}:o:null}function Zx(e,t,n,r){let i=[];for(let n=e.top;n<=e.bottom;n+=1)i.push(r(n,t));return i}function Qx(e,t,n,r){let i=n.indexOf(e.leftColId),a=n.indexOf(e.rightColId);if(i<0||a<0)return[];let o=[],s=Math.min(i,a),c=Math.max(i,a);for(let e=s;e<=c;e+=1){let i=n[e];i&&o.push(r(t,i))}return o}function $x(e,t){return e>t.bottom?e-t.bottom:e<t.top?e-t.top:null}function eS(e,t,n){let r=n.indexOf(t.leftColId),i=n.indexOf(t.rightColId);if(r<0||i<0)return null;let a=Math.min(r,i),o=Math.max(r,i);return e>o?e-o:e<a?e-a:null}function tS(e){let{rowIndex:t,colId:n,sourceRange:r,displayedColIds:i,getSourceValue:a,setFillValue:o,fillStrategy:s=Wo,rowNode:c,column:l,allowedDirection:u}=e,d=i.indexOf(n);if(d<0)return null;let f=$x(t,r),p=eS(d,r,i),m=null,h=0,g=[];if(f!=null&&f!==0&&(u===`y`||u===`xy`)?(m=`y`,h=f,g=Zx(r,n,i,a)):p!=null&&p!==0&&(u===`x`||u===`xy`)&&(m=`x`,h=p,g=Qx(r,Math.min(Math.max(t,r.top),r.bottom),i,a)),!m||g.length===0)return null;let _=g[g.length-1];return o?o({rowNode:c,column:l,baseValue:_,step:h,direction:m}):rS(g,h,s)}function nS(e,t){return t>0?e[e.length-1]:e[0]}function rS(e,t,n){if(e.length===0)return null;if(n===`copy`)return nS(e,t);if(e.every(Kx)){let n=e,r=n.length===1?1:(n[n.length-1]-n[0])/(n.length-1);return(t>0?n[n.length-1]:n[0])+r*t}return nS(e,t)}function iS(e,t,n){let r=Yx(t,n),i=e?Yx(e,n):new Set,a=[];for(let e of r)if(!i.has(e)){let[t,n]=e.split(`:`);a.push({rowIndex:Number(t),colId:n})}return a}function aS(e,t,n){return iS(t,e,n)}var oS=class{deps;constructor(e){this.deps=e}async commitFillRange(e){let t=0,n=new Set,r=new Set;for(let i of e.removed)if(await this.writeClearCell(i)){t+=1;let e=this.deps.rowModel.getRow(i.rowIndex);e&&(n.add(e.id),r.add(i.colId))}for(let i of e.added)if(await this.writeFillCell(i,e.sourceRange,e.displayedColIds,e.fillOptions)){t+=1;let e=this.deps.rowModel.getRow(i.rowIndex);e&&(n.add(e.id),r.add(i.colId))}return t>0&&this.deps.refreshCells({rowIds:[...n],colIds:[...r]}),t}async applyFillDiff(e){return this.commitFillRange({...e,removed:[]})}async writeClearCell(e){let t=this.deps.rowModel.getRow(e.rowIndex),n=this.deps.columnModel.getColumnById(e.colId);return!t||!n||!vs(e.colId,t.rowKind)||!H(n,t,this.deps.getCellDisableContext())?!1:this.writeCellValue(t.id,e.rowIndex,n,t,``)}async writeFillCell(e,t,n,r){let i=this.deps.rowModel.getRow(e.rowIndex),a=this.deps.columnModel.getColumnById(e.colId);if(!i||!a||!vs(e.colId,i.rowKind)||!H(a,i,this.deps.getCellDisableContext()))return!1;let o=tS({rowIndex:e.rowIndex,colId:e.colId,sourceRange:t,displayedColIds:n,getSourceValue:(e,t)=>{let n=this.deps.rowModel.getRow(e),r=this.deps.columnModel.getColumnById(t);if(!(!n||!r))return U(n,r)},setFillValue:r.setFillValue,fillStrategy:r.fillStrategy,rowNode:i,column:a,allowedDirection:r.direction});return o!==null&&this.writeCellValue(i.id,e.rowIndex,a,i,o)}async writeCellValue(e,t,n,r,i){let a=U(r,n);return Object.is(a,i)||!_n(n,Tx({rowId:e,rowIndex:t,colId:n.colId,value:a,data:r.data,formattedValue:String(a??``),column:n,getApi:this.deps.getApi,gridSize:this.deps.gridSize}),i)?!1:(await Qf(this.deps,async()=>{ep(this.deps.recordRowDataChange,r,n,a,i,`fill`),this.deps.applyTransaction({update:[r.data]}),this.deps.eventBus.emit(`cellValueChanged`,{rowId:e,colId:n.colId,oldValue:a,newValue:i,rowNode:r}),await Zf(n,r,{oldValue:a,newValue:i},this.deps,{source:`fill`})}),!0)}},sS=class{deps;constructor(e){this.deps=e}async clearRanges(e,t){let n=t.displayedColIds,r=0,i=new Set,a=new Set;for(let t of e){let e=W(t,n);if(e)for(let t=e.top;t<=e.bottom;t+=1){let o=this.deps.rowModel.getRow(t);if(o)for(let s of n)Os(t,s,e,n)&&await this.writeClearCell(t,s,o.id,o)&&(r+=1,i.add(o.id),a.add(s))}}return r>0&&this.deps.refreshCells({rowIds:[...i],colIds:[...a]}),r}async writeClearCell(e,t,n,r){if(!vs(t,r.rowKind))return!1;let i=this.deps.columnModel.getColumnById(t);if(!i||!H(i,r,this.deps.getCellDisableContext()))return!1;let a=U(r,i);return Object.is(a,``)||!_n(i,Tx({rowId:n,rowIndex:e,colId:t,value:a,data:r.data,formattedValue:String(a??``),column:i,getApi:this.deps.getApi,gridSize:this.deps.gridSize}),``)?!1:(await Qf(this.deps,async()=>{ep(this.deps.recordRowDataChange,r,i,a,``,`delete`),this.deps.applyTransaction({update:[r.data]}),this.deps.eventBus.emit(`cellValueChanged`,{rowId:n,colId:t,oldValue:a,newValue:``,rowNode:r}),await Zf(i,r,{oldValue:a,newValue:``},this.deps,{source:`delete`})}),!0)}};function cS(e){let t=e.textContent?.trim()??``;return t===``?null:t}function lS(e){let t=e.column.prop??e.column.colId,n=t?e.rowNode.data[t]:void 0;e.column.valueGetter&&(n=e.column.valueGetter(e.rowNode.data,n));let r=Jf(e.rowNode,e.column,e.indexColumnOptions);return{rowId:e.rowNode.id,colId:e.column.colId,data:e.rowNode.data,value:n,valueFormatted:r,column:e.column,location:e.location??`cell`}}function uS(e){let t=lS(e);if(e.tooltipValueGetter)try{let n=e.tooltipValueGetter(t);return n==null||n===``?null:n}catch(e){return console.warn(`[magic-grid] tooltipValueGetter failed:`,e),null}if(e.tooltipField){let t=e.rowNode.data[e.tooltipField];if(t!=null&&t!==``)return String(t)}return t.valueFormatted===``?e.anchorEl&&Ec(e.anchorEl)?cS(e.anchorEl):null:t.valueFormatted}function dS(e){let t=e.column.label??e.column.prop??e.column.colId;try{let n=e.headerTooltipValueGetter?.({colId:e.column.colId,column:e.column,headerLabel:t});if(n!=null&&n!==``)return n}catch(e){return console.warn(`[magic-grid] headerTooltipValueGetter failed:`,e),null}return e.headerTooltip!=null&&e.headerTooltip!==``?e.headerTooltip:t===``?null:t}function fS(e){let t={rowId:``,colId:e.column.colId,data:void 0,value:e.displayText,valueFormatted:e.displayText,column:e.column,location:`footer`};try{let n=e.tooltipValueGetter?.(t);if(n!=null&&n!==``)return n}catch(e){return console.warn(`[magic-grid] tooltipValueGetter failed:`,e),null}return e.tooltipField||e.displayText===``?null:e.displayText}function pS(e){let t=e.dataset.mgTooltip;if(t!=null&&t!==``)return t;let n=e.textContent?.trim()??``;return n===``?null:n}function Q(e){return e instanceof Element?e:e instanceof Text?e.parentElement:null}function mS(e,t){return e.getColumns().findIndex(e=>e.colId===t)}function hS(e,t){let n=Q(t);if(!n)return null;let r=n.closest(`.mg-footer-cell[data-col-id]`);return r?.dataset.colId?{colId:r.dataset.colId,colIndex:mS(e,r.dataset.colId)}:null}function gS(e){return Q(e)?.closest(`.mg-header-cell__column-handle`)??null}function _S(e){return Q(e)?.closest(`.mg-header-cell--tree .mg-cell__tree-expand`)??null}function vS(e){return Q(e)?.closest(`.mg-floating-filter-button`)??null}function yS(e,t){let n=Q(t);if(!n)return null;let r=n.closest(`.mg-header-cell[data-col-id]`);return r?.dataset.colId?{colId:r.dataset.colId,colIndex:mS(e,r.dataset.colId)}:null}function bS(e,t){let n=Q(t);if(!n)return null;let r=n.closest(`.mg-cell`),i=n.closest(`.mg-row`);if(!r||!i)return null;let a=i.dataset.rowId,o=r.dataset.colId;if(!a||!o)return null;let s=e.getRowIndexById(a),c=e.getRow(s);return!c||s<0?null:{rowId:a,colId:o,rowIndex:s,rowNode:c,rowElement:i}}function xS(e){return Q(e)?.closest(`.mg-header-cell[data-col-id]`)??null}function SS(e){return e.querySelector(`.mg-root`)??e}function CS(e){return e.ownerDocument}function wS(e){let t=[];if(!e)return t;let n=null;try{n=e.parent}catch{return t}for(;n&&n!==e;){t.push(n);try{if(n.parent===n)break;n=n.parent}catch{break}}return t}function TS(e,t){let n=CS(e),r={capture:!0};n.addEventListener(`mousemove`,t.mousemove),n.addEventListener(`mouseup`,t.mouseup);let i=wS(n.defaultView);for(let e of i)e.addEventListener(`mousemove`,t.mousemove,r),e.addEventListener(`mouseup`,t.mouseup,r);return{unbind:()=>{n.removeEventListener(`mousemove`,t.mousemove),n.removeEventListener(`mouseup`,t.mouseup);for(let e of i)e.removeEventListener(`mousemove`,t.mousemove,r),e.removeEventListener(`mouseup`,t.mouseup,r)}}}function ES(e){let t=Q(e);return t?t.closest(bc):null}function DS(e){return e.matches(`.mg-cell__text:not([hidden])`)||e.matches(`.mg-cell__renderer:not([hidden])`)?`cell`:e.matches(`.mg-header-cell__text`)?`header`:e.matches(`.mg-footer-cell__text:not([hidden])`)?`footer`:null}function OS(e){let t=Q(e);return t?t.closest(yc):null}function kS(e,t,n){let r=DS(e);if(!r)return null;if(r===`header`){let t=e.closest(`.mg-header-cell[data-col-id]`)?.dataset.colId;return t?{anchorEl:e,location:r,colId:t}:null}if(r===`footer`){let t=e.closest(`.mg-footer-cell[data-col-id]`)?.dataset.colId;return t?{anchorEl:e,location:r,colId:t}:null}let i=e.closest(`.mg-cell[data-col-id]`),a=e.closest(`.mg-row[data-row-id]`),o=i?.dataset.colId,s=a?.dataset.rowId;return!o||!s||!t.getColumnById(o)||!n.getRowById(s)?null:{anchorEl:e,location:r,colId:o,rowId:s}}var AS=class{deps;showTimer=null;activeAnchor=null;pendingAnchor=null;lastPointer=null;bound=!1;statusBarEl=null;statusBarBound=!1;constructor(e){this.deps=e}setStatusBarElement(e){this.statusBarEl!==e&&(this.unbindStatusBarListeners(),this.statusBarEl=e,e&&this.bound&&this.bindStatusBarListeners())}bindListeners(){this.bound||(this.bound=!0,this.deps.mountEl.addEventListener(`pointerover`,this.handlePointerOver,!0),this.deps.mountEl.addEventListener(`pointerout`,this.handlePointerOut,!0),this.deps.viewportEl.addEventListener(`scroll`,this.handleScroll,!0),this.deps.headerViewportEl.addEventListener(`scroll`,this.handleScroll,!0),this.deps.footerViewportEl?.addEventListener(`scroll`,this.handleScroll,!0),this.bindStatusBarListeners())}unbindListeners(){this.bound&&(this.bound=!1,this.deps.mountEl.removeEventListener(`pointerover`,this.handlePointerOver,!0),this.deps.mountEl.removeEventListener(`pointerout`,this.handlePointerOut,!0),this.deps.viewportEl.removeEventListener(`scroll`,this.handleScroll,!0),this.deps.headerViewportEl.removeEventListener(`scroll`,this.handleScroll,!0),this.deps.footerViewportEl?.removeEventListener(`scroll`,this.handleScroll,!0),this.unbindStatusBarListeners(),this.close())}destroy(){this.unbindListeners(),this.deps.tooltipService.destroy()}close(){this.clearShowTimer(),this.activeAnchor=null,this.pendingAnchor=null,this.lastPointer=null,this.deps.tooltipService.hide(!0)}refreshActiveTooltip(){if(!this.activeAnchor)return;let e=this.deps.getOptions(),t=this.resolveTooltipText(this.activeAnchor);if(!this.shouldShowForContext(this.activeAnchor,e,t)||!t){this.close();return}this.presentTooltip(this.activeAnchor,e,t),this.deps.tooltipService.refreshPosition()}bindStatusBarListeners(){!this.statusBarEl||this.statusBarBound||(this.statusBarBound=!0,this.statusBarEl.addEventListener(`pointerover`,this.handleStatusBarPointerOver,!0),this.statusBarEl.addEventListener(`pointerout`,this.handleStatusBarPointerOut,!0))}unbindStatusBarListeners(){!this.statusBarEl||!this.statusBarBound||(this.statusBarBound=!1,this.statusBarEl.removeEventListener(`pointerover`,this.handleStatusBarPointerOver,!0),this.statusBarEl.removeEventListener(`pointerout`,this.handleStatusBarPointerOut,!0))}handlePointerOver=e=>{if(e.pointerType===`touch`)return;let t=ES(e.target);if(!t)return;let n=kS(t,this.deps.columnModel,this.deps.rowModel);!n||!this.canShowTooltip(n)||this.queueShow(e,n)};handleStatusBarPointerOver=e=>{if(e.pointerType===`touch`)return;let t=OS(e.target);if(!t)return;let n={anchorEl:t,location:`statusBar`};this.canShowTooltip(n)&&this.queueShow(e,n)};queueShow(e,t){let n=this.deps.getOptions();if(!n.enableTooltips||n.tooltipShowMode===`never`)return;this.lastPointer={clientX:e.clientX,clientY:e.clientY};let r=this.activeAnchor?.anchorEl===t.anchorEl||this.pendingAnchor?.anchorEl===t.anchorEl;this.deps.tooltipService.isVisible()&&!r&&(this.deps.tooltipService.hide(!0),this.activeAnchor=null),this.pendingAnchor=t,this.scheduleShow(t,n)}handlePointerOut=e=>{this.handleAnchorPointerOut(e,ES(e.target))};handleStatusBarPointerOut=e=>{this.handleAnchorPointerOut(e,OS(e.target))};handleAnchorPointerOut(e,t){if(!t)return;let n=ES(e.relatedTarget),r=OS(e.relatedTarget),i=this.deps.getOptions();if(this.pendingAnchor?.anchorEl===t&&n!==t&&(this.clearShowTimer(),this.pendingAnchor=null),this.activeAnchor?.anchorEl===t&&n!==t&&r!==t){if(i.tooltipInteraction){let t=this.deps.tooltipService.getPopupEl();if(e.relatedTarget instanceof Node&&t?.contains(e.relatedTarget))return;this.activeAnchor=null,this.deps.tooltipService.scheduleHide(i.tooltipHideDelay);return}this.activeAnchor=null,this.deps.tooltipService.scheduleHide(i.tooltipHideDelay)}}handleScroll=()=>{this.close()};scheduleShow(e,t){this.clearShowTimer();let n=this.deps.tooltipService.isVisible()||this.activeAnchor?t.tooltipSwitchShowDelay:t.tooltipShowDelay;this.showTimer=setTimeout(()=>{this.showTimer=null,this.pendingAnchor?.anchorEl===e.anchorEl&&this.showTooltip(e,t)},n)}showTooltip(e,t){if(!this.canShowTooltip(e))return;let n=this.resolveTooltipText(e);!this.shouldShowForContext(e,t,n)||!n||(this.activeAnchor=e,this.pendingAnchor=null,this.presentTooltip(e,t,n))}shouldShowForContext(e,t,n){if(!n)return!1;let r=e.colId==null?void 0:this.deps.columnModel.getColumnById(e.colId);return Mc({mode:t.tooltipShowMode,text:n,anchorEl:e.anchorEl,isAutoHeight:e.location===`cell`&&r?r.autoHeight:!1,enableTooltips:t.enableTooltips})}presentTooltip(e,t,n){let r=e.colId==null?void 0:this.deps.columnModel.getColumnById(e.colId),i=this.resolveTooltipComponent(e,r),a=t.tooltipMouseTrack?this.lastPointer??void 0:void 0;if(i){this.deps.tooltipService.show({anchorEl:e.anchorEl,location:e.location,tooltipComponent:i,tooltipParams:this.buildTooltipParams(e,n,r),mouseTrack:t.tooltipMouseTrack,pointer:a,interaction:t.tooltipInteraction});return}this.deps.tooltipService.show({anchorEl:e.anchorEl,text:n,location:e.location,mouseTrack:t.tooltipMouseTrack,pointer:a,interaction:t.tooltipInteraction})}resolveTooltipComponent(e,t){let n=this.deps.getOptions().tooltipComponent;return e.location===`statusBar`?n:t?.tooltipComponent??n}buildTooltipParams(e,t,n){let r=e.rowId==null?void 0:this.deps.rowModel.getRowById(e.rowId);return{location:e.location,value:r?.data&&n?.prop?r.data[n.prop]:t,valueFormatted:t,colId:e.colId,rowId:e.rowId,data:r?.data,hideTooltipCallback:()=>this.close(),api:this.deps.getApi()}}canShowTooltip(e){if(this.deps.cellCommentService()?.getOpenEditorCell())return!1;if(e.location===`statusBar`)return!0;if(!e.colId)return!1;let t=this.deps.columnModel.getColumnById(e.colId);return!(!t||t.hidden||t.suppressTooltip||e.location===`cell`&&e.rowId&&(this.isEditingCell(e.rowId,e.colId)||this.hasValidationTooltip(e.rowId,e.colId)))}isEditingCell(e,t){if(!this.deps.isEditing())return!1;let n=this.deps.getEditingCell();return n?.rowId===e&&n?.colId===t}hasValidationTooltip(e,t){return!!this.deps.validationFeedback.getRegistry().get(e)?.get(t)?.length}resolveTooltipText(e){if(e.location===`statusBar`)return pS(e.anchorEl);if(!e.colId)return null;let t=this.deps.columnModel.getColumnById(e.colId);if(!t)return null;if(e.location===`header`)return dS({column:t,headerTooltip:t.headerTooltip,headerTooltipValueGetter:t.headerTooltipValueGetter});if(e.location===`footer`)return fS({column:t,displayText:e.anchorEl.textContent?.trim()??``,tooltipField:t.tooltipField,tooltipValueGetter:t.tooltipValueGetter});if(!e.rowId)return null;let n=this.deps.rowModel.getRowById(e.rowId);return n?uS({rowNode:n,column:t,tooltipField:t.tooltipField,tooltipValueGetter:t.tooltipValueGetter,indexColumnOptions:this.deps.getIndexColumnOptions(),location:`cell`,anchorEl:e.anchorEl}):null}clearShowTimer(){this.showTimer!=null&&(clearTimeout(this.showTimer),this.showTimer=null)}},jS=class{activeComp=null;activeMountEl=null;mount(e,t,n){this.destroy(),e.replaceChildren();let r=n(t,e);if(r&&typeof r.getGui==`function`){let n=r.getGui();n!==e&&!e.contains(n)&&e.replaceChildren(n),r.init?.(t),this.activeComp=r,this.activeMountEl=e;return}this.activeMountEl=e}refresh(e){return this.activeComp?.refresh?.(e)??!1}destroy(){this.activeComp?.destroy?.(),this.activeMountEl?.replaceChildren(),this.activeComp=null,this.activeMountEl=null}};function MS(e){let{viewportPadding:t}=_x(e.anchorEl??null);if(e.mouseTrack&&e.pointer){let n=e.pointer.clientX+16,r=e.pointer.clientY+16;return n=Math.max(t,Math.min(n,window.innerWidth-e.popupWidth-t)),r=Math.max(t,Math.min(r,window.innerHeight-e.popupHeight-t)),{left:n,top:r}}let n=e.anchorRect,r=n.left+n.width/2-e.popupWidth/2,i=n.bottom+8;return i+e.popupHeight>window.innerHeight-t&&(i=n.top-e.popupHeight-8),r=Math.max(t,Math.min(r,window.innerWidth-e.popupWidth-t)),i=Math.max(t,Math.min(i,window.innerHeight-e.popupHeight-t)),{left:r,top:i}}var NS=`mg-tooltip__text`,PS=`mg-tooltip__content`,FS=class{popupEl=null;textEl=null;contentEl=null;componentHost=new jS;anchorEl=null;hideTimer=null;mouseTrackListener=null;interactionCleanup=null;visible=!1;mouseTrack=!1;interaction=!1;lastPointer=null;show(e){this.cancelHide(),this.anchorEl=e.anchorEl,this.mouseTrack=e.mouseTrack===!0,this.interaction=e.interaction===!0,this.lastPointer=e.pointer??null;let t=this.ensurePopup();t.classList.toggle(`${xc}--interactive`,this.interaction),this.syncThemeFromAnchor(e.anchorEl),e.tooltipComponent&&e.tooltipParams?(this.textEl.hidden=!0,this.contentEl.hidden=!1,this.componentHost.mount(this.contentEl,e.tooltipParams,e.tooltipComponent)):(this.componentHost.destroy(),this.textEl.hidden=!1,this.contentEl.hidden=!0,this.textEl.textContent=e.text??``),t.hidden=!1,this.visible=!0,this.updatePosition(),this.syncMouseTrackListener(),this.syncInteractionListeners(t)}hide(e=!0){e&&this.cancelHide(),this.detachMouseTrackListener(),this.detachInteractionListeners(),this.componentHost.destroy(),this.popupEl&&(this.popupEl.hidden=!0,this.popupEl.dataset.theme=``),this.visible=!1,this.anchorEl=null,this.lastPointer=null}scheduleHide(e){this.cancelHide(),this.hideTimer=setTimeout(()=>{this.hideTimer=null,this.hide(!0)},e)}cancelHide(){this.hideTimer!=null&&(clearTimeout(this.hideTimer),this.hideTimer=null)}isVisible(){return this.visible}getAnchorEl(){return this.anchorEl}getPopupEl(){return this.popupEl}updatePointer(e){!this.visible||!this.mouseTrack||(this.lastPointer=e,this.updatePosition())}refreshPosition(){this.visible&&this.updatePosition()}destroy(){this.cancelHide(),this.detachMouseTrackListener(),this.detachInteractionListeners(),this.componentHost.destroy(),this.popupEl?.remove(),this.popupEl=null,this.textEl=null,this.contentEl=null,this.anchorEl=null,this.visible=!1}ensurePopup(){if(this.popupEl)return this.popupEl;let e=document.createElement(`div`);e.className=xc,e.hidden=!0,e.setAttribute(`role`,`tooltip`);let t=document.createElement(`div`);t.className=NS;let n=document.createElement(`div`);return n.className=PS,n.hidden=!0,e.append(t,n),document.body.append(e),this.popupEl=e,this.textEl=t,this.contentEl=n,e}syncThemeFromAnchor(e){let t=(e.closest(`.magic-grid[data-theme], .mg-root[data-theme]`)??e.closest(`.magic-grid, .mg-root`))?.getAttribute(`data-theme`)??`light`;this.popupEl.dataset.theme=t}updatePosition(){if(!this.popupEl||!this.anchorEl)return;let e=this.anchorEl.getBoundingClientRect(),t=this.popupEl.getBoundingClientRect(),n=MS({anchorRect:e,popupWidth:Math.min(t.width||420,420),popupHeight:t.height||this.popupEl.offsetHeight,anchorEl:this.anchorEl,mouseTrack:this.mouseTrack,pointer:this.lastPointer??void 0});this.popupEl.style.left=`${n.left}px`,this.popupEl.style.top=`${n.top}px`,this.popupEl.style.maxWidth=`420px`}syncMouseTrackListener(){if(!this.mouseTrack){this.detachMouseTrackListener();return}this.mouseTrackListener||(this.mouseTrackListener=e=>{this.updatePointer({clientX:e.clientX,clientY:e.clientY})},document.addEventListener(`mousemove`,this.mouseTrackListener))}detachMouseTrackListener(){this.mouseTrackListener&&=(document.removeEventListener(`mousemove`,this.mouseTrackListener),null)}syncInteractionListeners(e){if(this.detachInteractionListeners(),!this.interaction)return;let t=()=>{this.cancelHide()},n=()=>{this.hide(!0)};e.addEventListener(`pointerenter`,t),e.addEventListener(`pointerleave`,n),this.interactionCleanup=()=>{e.removeEventListener(`pointerenter`,t),e.removeEventListener(`pointerleave`,n)}}detachInteractionListeners(){this.interactionCleanup?.(),this.interactionCleanup=null}},IS=class{activeComp=null;activeMountEl=null;mount(e,t,n){this.destroy(),e.replaceChildren();let r=n(t,e);if(r&&typeof r.getGui==`function`){let n=r.getGui();n!==e&&!e.contains(n)&&e.replaceChildren(n),r.init?.(t),this.activeComp=r,this.activeMountEl=e;return}this.activeMountEl=e}refresh(e){return this.activeComp?.refresh?.(e)??!1}destroy(){this.activeComp?.destroy?.(),this.activeMountEl?.replaceChildren(),this.activeComp=null,this.activeMountEl=null}};function LS(e){return e.overlayType===`loading`?{blockEvents:!0,masked:!0}:e.overlayInteraction?{blockEvents:!0,masked:!1}:{blockEvents:!1,masked:!1}}function RS(e,t,n){let{blockEvents:r,masked:i}=LS(n),a=`${Ic}--interactive`;e.classList.toggle(a,r&&!i),e.classList.toggle(Rc,i);let o=r?`auto`:`none`;e.style.pointerEvents=o,t.style.pointerEvents=o}function zS(){let e=document.createElement(`div`);e.className=Ic,e.hidden=!0,e.setAttribute(`aria-hidden`,`true`);let t=document.createElement(`div`);t.className=Lc;let n=document.createElement(`div`);return n.className=`mg-overlay__mount`,t.appendChild(n),e.appendChild(t),{overlayEl:e,wrapperEl:t,contentEl:n}}var BS=new Set([`span`,`div`,`p`,`svg`,`strong`,`em`,`b`,`i`]);function VS(e){let t=e.trim();if(!t)return``;if(!t.includes(`<`))return t;let n=new DOMParser().parseFromString(t,`text/html`),r=n.body.firstElementChild;if(!r||n.body.children.length!==1)return n.body.textContent?.trim()??t;let i=r.tagName.toLowerCase();return BS.has(i)?r.cloneNode(!0):r.textContent?.trim()??t}function HS(e){switch(e){case`loading`:return Bc;case`noRows`:return Vc;case`noMatchingRows`:return Hc;default:return e}}function US(e,t={}){let n=document.createElement(`div`);n.className=`${zc} ${HS(e)}`;let r=t.overlayText??Wc(e);if(t.template){let e=VS(t.template);return typeof e==`string`?n.textContent=e:n.appendChild(e),n}if(e===`loading`){let e=document.createElement(`span`);e.className=Uc,e.setAttribute(`aria-hidden`,`true`);let t=document.createElement(`span`);return t.className=`mg-overlay__text`,t.textContent=r,n.append(e,t),n}return n.textContent=r,n}var WS=class{deps;visibleType=null;componentHost=new IS;constructor(e){this.deps=e}sync(e,t){if(!e||!t){this.hide();return}if(this.visibleType===e){this.syncLayout(e),this.renderContent(e,t);return}this.visibleType=e,this.deps.overlayEl.hidden=!1,this.deps.overlayEl.setAttribute(`aria-hidden`,`false`),this.deps.overlayEl.dataset.overlayType=e,this.syncLayout(e),this.renderContent(e,t)}hide(){this.componentHost.destroy(),this.deps.contentEl.replaceChildren(),this.visibleType=null,this.deps.overlayEl.hidden=!0,this.deps.overlayEl.setAttribute(`aria-hidden`,`true`),delete this.deps.overlayEl.dataset.overlayType,this.syncLayout(null)}destroy(){this.hide()}getVisibleType(){return this.visibleType}syncLayout(e=this.visibleType){RS(this.deps.overlayEl,this.deps.wrapperEl,{overlayType:e,overlayInteraction:this.deps.getOverlayInteraction()})}renderContent(e,t){let n={overlayType:e,api:this.deps.getApi(),overlayText:Wc(e)};if(t.component){this.componentHost.mount(this.deps.contentEl,n,t.component);return}this.componentHost.destroy(),this.deps.contentEl.replaceChildren(US(e,{template:t.template,overlayText:n.overlayText}))}};function GS(e){return e.filter(e=>P(e.rowKind)===`BUSINESS`).length}function KS(e){let t=t=>qc(t,e.suppressOverlays);return e.userForcedNoRows&&!t(`noRows`)?`noRows`:e.loading===!0&&!t(`loading`)||e.loading===void 0&&!e.rowDataReady&&!t(`loading`)?`loading`:e.sourceRowCount===0&&!t(`noRows`)?(e.infiniteVirtualRowCount??0)>0?null:`noRows`:e.sourceRowCount>0&&e.displayDataRowCount===0&&e.isAnyFilterActive&&!t(`noMatchingRows`)?`noMatchingRows`:null}function qS(e,t){switch(e){case`loading`:return{overlayType:e,component:t.loadingOverlayComponent,componentParams:t.loadingOverlayComponentParams,template:t.overlayLoadingTemplate};case`noRows`:return{overlayType:e,component:t.noRowsOverlayComponent,componentParams:t.noRowsOverlayComponentParams,template:t.overlayNoRowsTemplate};case`noMatchingRows`:return{overlayType:e,component:t.noMatchingRowsOverlayComponent,componentParams:t.noMatchingRowsOverlayComponentParams,template:t.overlayNoMatchingRowsTemplate};default:return e}}function JS(e,t){let n=qS(e,t);return n.component?n:t.overlayComponent?{overlayType:e,component:t.overlayComponent,componentParams:t.overlayComponentParams}:n}var YS=class{deps;userForcedNoRows=!1;rowDataReady=!1;currentType=null;destroyed=!1;constructor(e){this.deps=e}markRowDataReady(){this.rowDataReady=!0}isRowDataReady(){return this.rowDataReady}isUserForcedNoRows(){return this.userForcedNoRows}getOverlayType(){return this.currentType}isOverlayShowing(){return this.currentType!=null}getOverlayPresentation(){return this.currentType?JS(this.currentType,this.deps.getResolvedOptions()):null}buildResolveInput(){let e=this.deps.getResolvedOptions();return{loading:e.loading,suppressOverlays:e.suppressOverlays,sourceRowCount:this.deps.getSourceRowCount(),displayDataRowCount:GS(this.deps.getDisplayRows()),isAnyFilterActive:this.deps.isAnyFilterActive(),rowDataReady:this.rowDataReady,userForcedNoRows:this.userForcedNoRows,infiniteVirtualRowCount:this.deps.getInfiniteVirtualRowCount?.()??0}}updateOverlay(){if(this.destroyed)return;let e=KS(this.buildResolveInput());this.setCurrentType(e)}showNoRowsOverlay(){this.destroyed||(this.userForcedNoRows=!0,this.updateOverlay())}hideOverlay(){if(this.destroyed)return!1;if(this.deps.getResolvedOptions().loading===!0)return this.deps.warn?.(`[MagicGrid] hideOverlay() ignored while loading=true`),!1;if(this.currentType===`noMatchingRows`)return this.deps.warn?.(`[MagicGrid] hideOverlay() does not hide noMatchingRows overlay; clear filters instead`),!1;let e=this.userForcedNoRows;return this.userForcedNoRows=!1,(e||this.currentType!=null)&&this.updateOverlay(),!0}destroy(){this.destroyed||(this.destroyed=!0,this.setCurrentType(null),this.userForcedNoRows=!1)}setCurrentType(e){if(this.currentType===e)return;let t=this.currentType;this.currentType=e,this.deps.onOverlayChanged?.(e,t)}};async function XS(n,r,i={}){let a=i.signal??new AbortController().signal,o=i.invalidEditValueMode??`block`;e.l(a);let s={...n.data},c=[];for(let e of r){let t=gn(e.rawValue,e.column,e.editorParams);if(sn(t))return{ok:!1,failedColId:e.column.colId,revert:o===`revert`};c.push({column:e.column,editorParams:e.editorParams,oldValue:e.oldValue,parsedValue:t})}let l=[];try{let e=await Promise.all(c.map(async e=>{let t=await Wf(e.column,e.editorParams,e.parsedValue,a);return{colId:e.column.colId,errors:t}}));for(let t of e)t.errors&&l.push({colId:t.colId,errors:t.errors})}catch(t){throw e.c(t),t}let u;if(l.length>0)if(o===`keep`)u={cellErrors:l};else{let e=l[0];return{ok:!1,failedColId:e.colId,errors:e.errors,cellErrors:l,revert:o===`revert`}}let d=new Map(c.map(e=>[e.column.colId,e.parsedValue]));try{let e=await Gf(i.rowValidator,{rowId:i.rowKey?t.T(n,i.rowKey):n.id,rowIndex:n.rowIndex,data:n.data,draftValues:d,signal:a});if(e){let t=Uf(c.map(e=>e.column.colId),e.colIds);if(o===`keep`)u={...u,rowErrors:e.errors,rowErrorColIds:t};else return{ok:!1,failedColId:t[0]??c[0]?.column.colId??``,rowErrors:e.errors,rowErrorColIds:t,revert:o===`revert`}}}catch(t){throw e.c(t),t}let f=[];try{for(let t of c){e.l(a);let{column:r,editorParams:i,oldValue:c,parsedValue:l}=t;if(c!==l){if(!await vn(r,i,l,a))return Object.assign(n.data,s),{ok:!1,failedColId:r.colId,revert:o===`revert`};f.push({colId:r.colId,oldValue:c,newValue:l})}}}catch(t){throw Object.assign(n.data,s),e.c(t),t}return u?{ok:!0,changes:f,validationWarnings:u}:{ok:!0,changes:f}}async function ZS(t,n,r,i,a){try{let e=await XS(n,r.map(e=>({column:e.column,editorParams:{...e.params,value:e.oldValue,data:n.data,stopEditing:(e=!0)=>t.stopEditing(!e),cancelCommit:()=>t.cancelCommit(),getEditPhase:()=>t.getEditSessionPhase()},rawValue:i.get(e.column.colId)??``,oldValue:e.oldValue})),{signal:a.signal,rowValidator:t.deps.rowValidator,invalidEditValueMode:t.getInvalidEditValueMode(),rowKey:t.deps.rowModel.getRowKey()});return e.ok?(e.changes.length>0&&await Qf(t.deps,async()=>{for(let i of e.changes){let e=r.find(e=>e.column.colId===i.colId)?.column;e&&ep(t.deps.recordRowDataChange,n,e,i.oldValue,i.newValue,`rowEdit`)}t.deps.applyTransaction({update:[n.data]});for(let r of e.changes)t.deps.eventBus.emit(`cellValueChanged`,{rowId:n.id,colId:r.colId,oldValue:r.oldValue,newValue:r.newValue,rowNode:n});let i=new Map(e.changes.map(e=>[e.colId,e]));for(let e of r){let r=i.get(e.column.colId);r&&await Zf(e.column,n,{oldValue:r.oldValue,newValue:r.newValue},t.deps,{source:`rowEdit`,signal:a.signal})}t.deps.syncPinnedRows()}),{ok:!0,cells:r.map(t=>{let n=e.changes.find(e=>e.colId===t.column.colId);return{colId:t.column.colId,committed:!0,oldValue:t.oldValue,newValue:n?.newValue??t.oldValue}}),validationWarnings:e.validationWarnings}):e}catch(t){if(e.c(t))return{ok:`aborted`};throw t}}async function QS(t,n,r,i,a,o){if(!r.prop)return{ok:!0};try{let e=gn(i,r,a);if(sn(e))return{ok:!1};let s=a.value,c=await Wf(r,a,e,o.signal),l=t.getInvalidEditValueMode();return c&&l!==`keep`?{ok:!1,errors:c,revert:l===`revert`}:s===e?c?{ok:!0,newValue:e,validationErrors:c}:{ok:!0,newValue:e}:await vn(r,a,e,o.signal)?(await Qf(t.deps,async()=>{ep(t.deps.recordRowDataChange,n,r,s,e,`cellEdit`),t.deps.applyTransaction({update:[n.data]}),t.deps.eventBus.emit(`cellValueChanged`,{rowId:n.id,colId:r.colId,oldValue:s,newValue:e,rowNode:n}),await Zf(r,n,{oldValue:s,newValue:e},t.deps,{source:`cellEdit`,signal:o.signal}),t.deps.syncPinnedRows()}),c?{ok:!0,newValue:e,validationErrors:c}:{ok:!0,newValue:e}):{ok:!1}}catch(t){if(e.c(t))return{ok:`aborted`};throw t}}function $S(e,t,n){for(let{colId:r,errors:i}of Hf(t,n)){let t=e.find(e=>e.colId===r);t?t.errors=[...new Set([...t.errors,...i])]:e.push({colId:r,errors:[...i]})}}async function eC(e,n,r={}){let i=r.signal??new AbortController().signal,a=[];for(let t of n){if(!t.column.cellValidator)continue;let n=U(e,t.column),r=await Wf(t.column,t.editorParams,n,i);r&&a.push({colId:t.column.colId,errors:r})}if(r.rowValidator&&n.length>0){let o=new Map(n.map(t=>[t.column.colId,U(e,t.column)])),s=await Gf(r.rowValidator,{rowId:r.rowKey?t.T(e,r.rowKey):e.id,rowIndex:e.rowIndex,data:e.data,draftValues:o,signal:i});s&&$S(a,Uf(n.map(e=>e.column.colId),s.colIds),s.errors)}return a}async function tC(e,t={}){let n=t.signal??new AbortController().signal,r=t.showFeedback!==!1,i=iC(e.rowModel,t.rowIds),a=[],o=await Promise.all(i.map(async t=>({rowNode:t,invalidCells:await eC(t,aC(e,t),{rowValidator:e.rowValidator,signal:n,rowKey:e.rowModel.getRowKey()})}))),s=[];for(let{rowNode:e,invalidCells:t}of o){for(let n of t)a.push({rowId:e.id,rowIndex:e.rowIndex,colId:n.colId,errors:n.errors});s.push({rowId:e.id,cells:t})}return r&&(t.rowIds?e.validationFeedback.applyRowsValidationFeedback(e.mountEl,s):e.validationFeedback.applyGridValidationFeedback(e.mountEl,s)),{valid:a.length===0,cellErrors:a}}async function nC(e,n){let r=n.signal??new AbortController().signal,i=n.showFeedback!==!1,a=[];for(let{rowId:o,colId:s}of n.cells){let n=t.m(o),c=e.rowModel.getRowById(n),l=i?rC(e.mountEl,n):null;if(!c){i&&e.validationFeedback.clearRowCell(n,l,s);continue}let u=e.columnModel.getColumnById(s);if(!u||!H(u,c,e.getCellDisableContext?.())||!u.cellValidator){i&&e.validationFeedback.clearRowCell(n,l,s);continue}let d=await Wf(u,e.createEditorParams(c,u),U(c,u),r);d?(a.push({rowId:n,rowIndex:c.rowIndex,colId:s,errors:d}),i&&e.validationFeedback.setRowCellInvalid(n,l,{colId:s,errors:d})):i&&e.validationFeedback.clearRowCell(n,l,s)}return{valid:a.length===0,cellErrors:a}}function rC(e,t){return e.querySelector(`.mg-row[data-row-id="${t}"]`)}function iC(e,n){let r=t.g(n);if(r)return r.map(t=>e.getRowById(t)).filter(e=>e!=null);let i=[],a=e.getRowCount();for(let t=0;t<a;t++){let n=e.getRow(t);n&&i.push(n)}return i}function aC(e,t){let n=e.getCellDisableContext?.();return e.columnModel.getColumns().filter(e=>H(e,t,n)).map(n=>({column:n,editorParams:e.createEditorParams(t,n)}))}function oC(e,t){for(let[n,r]of t){let t=e.get(n);t||(t=new Set,e.set(n,t));for(let e of r)t.add(e)}}var sC=class{getCtx;isCommitIdle;awaitCommitIdle;pendingSeeds=new Map;flushScheduled=!1;flushing=!1;idleWaitScheduled=!1;constructor(e,t,n){this.getCtx=e,this.isCommitIdle=t,this.awaitCommitIdle=n}notifyEditSessionIdle(){if(this.pendingSeeds.size===0){this.idleWaitScheduled=!1;return}this.isCommitIdle()&&(this.idleWaitScheduled=!1,this.scheduleFlush())}enqueue(e){e.size!==0&&(oC(this.pendingSeeds,e),this.scheduleFlush())}scheduleFlush(){this.flushScheduled||this.flushing||(this.flushScheduled=!0,queueMicrotask(()=>{this.flushScheduled=!1,this.flush()}))}takePendingSnapshot(){let e=new Map;for(let[t,n]of this.pendingSeeds)e.set(t,[...n]);return this.pendingSeeds.clear(),e}restorePending(e){oC(this.pendingSeeds,e)}deferFlushUntilIdle(){this.idleWaitScheduled||this.pendingSeeds.size===0||(this.idleWaitScheduled=!0,window.setTimeout(()=>{if(!this.idleWaitScheduled||this.pendingSeeds.size===0){this.idleWaitScheduled=!1;return}if(this.getCtx().deps.isDestroyed()){this.pendingSeeds.clear(),this.idleWaitScheduled=!1;return}this.isCommitIdle()&&(this.idleWaitScheduled=!1,this.scheduleFlush())},0))}async flush(){if(!(this.flushing||this.pendingSeeds.size===0)){this.flushing=!0;try{let e=this.getCtx();if(e.deps.isDestroyed()){this.pendingSeeds.clear();return}if(this.isCommitIdle()||await this.awaitCommitIdle(),e.deps.isDestroyed()){this.pendingSeeds.clear();return}if(!this.isCommitIdle()){this.deferFlushUntilIdle();return}let t=this.takePendingSnapshot();if(t.size===0)return;for(let[n,r]of t){if(e.deps.isDestroyed()){this.restorePending(t);return}if(!this.isCommitIdle()){this.restorePending(t),this.deferFlushUntilIdle();return}await bC(e,n,[...r])}}finally{this.flushing=!1,this.pendingSeeds.size>0&&(this.isCommitIdle()?this.scheduleFlush():this.deferFlushUntilIdle())}}}};function cC(e){return e.invalidEditValueMode??`block`}function $(e){let t=e.mountEl.querySelector(`.mg-header-row`);t&&e.validationFeedback.syncHeaderDom(t,e.columnModel.getColumns())}function lC(e){e.deps.validationFeedback.syncDom(e.deps.mountEl),$(e.deps)}function uC(e,n){let r=n?.rowIds;if(r?.length){for(let n of r){let r=e.deps.mountEl.querySelector(`.mg-row[data-row-id="${n}"]`);e.deps.validationFeedback.clearRow(t.m(n),r)}$(e.deps);return}e.deps.validationFeedback.clear(e.deps.mountEl),$(e.deps)}function dC(e,t){uC(e,{rowIds:t.rowIds})}function fC(e,n){for(let{rowId:r,colId:i}of n.cells){let n=e.deps.mountEl.querySelector(`.mg-row[data-row-id="${r}"]`);e.deps.validationFeedback.clearRowCell(t.m(r),n,i)}$(e.deps)}async function pC(e,t){let n=await tC({mountEl:e.deps.mountEl,rowModel:e.deps.rowModel,columnModel:e.deps.columnModel,rowValidator:e.deps.rowValidator,validationFeedback:e.deps.validationFeedback,createEditorParams:(t,n)=>e.createCellEditorParams(t,n),getCellDisableContext:e.deps.getCellDisableContext},t);return e.deps.redrawImmediately(),lC(e),n}async function mC(e,t){return pC(e,{rowIds:t.rowIds,signal:t.signal,showFeedback:t.showFeedback})}async function hC(e,t){let n=await nC({mountEl:e.deps.mountEl,rowModel:e.deps.rowModel,columnModel:e.deps.columnModel,rowValidator:e.deps.rowValidator,validationFeedback:e.deps.validationFeedback,createEditorParams:(t,n)=>e.createCellEditorParams(t,n),getCellDisableContext:e.deps.getCellDisableContext},t);return e.deps.redrawImmediately(),lC(e),n}function gC(e,t){return e.columnModel.getColumns().filter(n=>H(n,t,e.getCellDisableContext())).map(e=>e.colId)}function _C(e,t,n){return e.rowValidator&&fn(e.editBehavior)?gC(e,t):n}function vC(e,t,n){yC(e,new Map([[t,n]]))}function yC(e,t){e.persistedValidationScheduler.enqueue(t)}async function bC(e,n,r){if(e.deps.isDestroyed()||e.isEditing())return;let i=e.deps.rowModel.getRowById(n);if(!i)return;let a=e.deps.mountEl.querySelector(`.mg-row[data-row-id="${n}"]`),o=_C(e.deps,i,r);if(o.length===0){e.deps.validationFeedback.clearRow(n,a),$(e.deps);return}let s=o.map(t=>{let n=e.deps.columnModel.getColumnById(t);return n?{column:n,editorParams:e.createCellEditorParams(i,n)}:null}).filter(e=>e!=null),c=[];try{c=await eC(i,s,{rowValidator:e.deps.rowValidator,rowKey:e.deps.rowModel.getRowKey()})}catch{return}if(fn(e.deps.editBehavior)){c.length>0?e.deps.validationFeedback.setRowInvalid(n,a,c):e.deps.validationFeedback.clearRow(t.m(n),a),$(e.deps);return}let l=new Set(o);for(let e of c)l.add(e.colId);for(let r of l){let i=c.find(e=>e.colId===r);i?e.deps.validationFeedback.setRowCellInvalid(n,a,i):e.deps.validationFeedback.clearRowCell(t.m(n),a,r)}$(e.deps)}function xC(e,t,n){e.eventBus.emit(`cellValidationFailed`,{rowId:t.rowId,colId:t.colId,rowIndex:t.rowIndex,errors:n,mode:`keep`})}function SC(e,t,n){let r=n.cellErrors?.[0]?.colId??t.colId;e.eventBus.emit(`rowValidationFailed`,{rowId:t.rowId,rowIndex:t.rowIndex,failedColId:r,cellErrors:n.cellErrors,rowErrors:n.rowErrors,mode:`keep`,rowNode:t.rowNode})}function CC(e,t,n,r){let i=e.getInvalidEditValueMode();e.deps.eventBus.emit(`cellValidationFailed`,{rowId:t.rowId,colId:t.colId,rowIndex:t.rowIndex,errors:n,mode:i}),r?(e.deps.validationFeedback.clearRow(t.rowId,t.rowElement),$(e.deps)):(e.deps.validationFeedback.showCellInvalid({rowId:t.rowId,rowElement:t.rowElement,colId:t.colId,errors:n,editorMountEl:e.deps.editingService.getEditorMountEl()}),$(e.deps))}function wC(e,t,n){let r=e.getInvalidEditValueMode();if(e.deps.eventBus.emit(`rowValidationFailed`,{rowId:t.rowId,rowIndex:t.rowIndex,failedColId:n.failedColId,cellErrors:n.cellErrors,rowErrors:n.rowErrors,mode:r,rowNode:t.rowNode}),n.revert)e.deps.validationFeedback.clearRow(t.rowId,t.rowElement),$(e.deps);else{let r=n.cellErrors&&n.cellErrors.length>0?n.cellErrors.map(t=>({colId:t.colId,errors:t.errors,editorMountEl:e.deps.rowEditingService.getEditorMountEl(t.colId)})):Hf(n.rowErrorColIds?.length?n.rowErrorColIds:[n.failedColId],n.rowErrors??n.errors??[`Validation failed`]).map(t=>({colId:t.colId,errors:t.errors,editorMountEl:e.deps.rowEditingService.getEditorMountEl(t.colId)}));e.deps.validationFeedback.showCellsInvalid({rowId:t.rowId,rowElement:t.rowElement,cells:r}),$(e.deps)}}function TC(e,t){let n=e.deps.rowModel.getRowById(t.rowId);for(let r of t.cells)e.deps.eventBus.emit(`cellEditingStopped`,{rowId:t.rowId,colId:r.colId,rowIndex:t.rowIndex,committed:r.committed,oldValue:r.oldValue,newValue:r.newValue,rowNode:n});let r=t.committed?t.cells.filter(e=>e.committed&&e.oldValue!==e.newValue).map(e=>({colId:e.colId,oldValue:e.oldValue,newValue:e.newValue})):void 0;e.deps.eventBus.emit(`rowEditingStopped`,{rowId:t.rowId,rowIndex:t.rowIndex,committed:t.committed,changes:r,rowNode:n}),t.committed&&r&&r.length>0&&n&&e.deps.eventBus.emit(`rowValueChanged`,{rowId:t.rowId,rowIndex:t.rowIndex,rowNode:n,changes:r}),e.deps.syncPinnedRows(),t.committed||e.deps.refreshCells({rowIds:[t.rowId],force:!0}),e.deps.applyFocusVisuals(),queueMicrotask(()=>{!e.deps.isDestroyed()&&!e.isEditing()&&e.deps.viewportEl.focus({preventScroll:!0})}),vC(e.validationCtx(),t.rowId,t.cells.map(e=>e.colId)),e.validationCtx().persistedValidationScheduler.notifyEditSessionIdle()}function EC(e,t){let n=e.deps.rowModel.getRowById(t.rowId);e.deps.eventBus.emit(`cellEditingStopped`,{rowId:t.rowId,colId:t.colId,rowIndex:t.rowIndex,committed:t.committed,oldValue:t.oldValue,newValue:t.newValue,rowNode:n}),e.deps.syncPinnedRows(),t.committed||e.deps.refreshCells({rowIds:[t.rowId],colIds:[t.colId],force:!0}),e.deps.applyFocusVisuals(),queueMicrotask(()=>{!e.deps.isDestroyed()&&!e.isEditing()&&e.deps.viewportEl.focus({preventScroll:!0})}),vC(e.validationCtx(),t.rowId,[t.colId]),e.validationCtx().persistedValidationScheduler.notifyEditSessionIdle()}function DC(e,n){if(e.deps.isDestroyed())return;let r=e.deps.rowModel.getRow(n.rowIndex);if(!r)return;let i=e.deps.columnModel.getColumnById(n.colKey);if(!i||t.it(i.colId)||t.X(i.colId)||t.V(i)||!H(i,r,e.deps.getCellDisableContext()))return;let a=e.deps.getColIndex(i.colId);e.deps.cellFocusService.setFocusedCell({rowId:r.id,colId:i.colId,rowIndex:n.rowIndex,colIndex:a}),e.deps.applyFocusVisuals(),e.deps.ensureIndexVisible(n.rowIndex),e.deps.ensureColumnVisible(a),e.deps.redrawImmediately();let o=e.deps.mountEl.querySelector(`.mg-row[data-row-id="${r.id}"]`);o&&OC(e,{rowId:r.id,colId:i.colId,rowIndex:n.rowIndex,rowNode:r,rowElement:o})}function OC(e,t){if(fn(e.deps.editBehavior)){kC(e,t);return}AC(e,t)}function kC(e,n){if(e.deps.rowEditingService.isCommitting()){e.deps.rowEditingService.awaitCommitIdle().then(()=>{e.deps.rowEditingService.isCommitting()||kC(e,n)});return}if(e.deps.editingService.isEditing()){e.deps.editingService.stopEditing(!0).then(()=>{e.deps.editingService.isEditing()||kC(e,n)});return}if(e.deps.rowEditingService.isEditing()){if(e.deps.rowEditingService.getEditingRow()?.rowId===n.rowId)return;e.deps.rowEditingService.stopRowEditing(!0).then(t=>{t?.committed&&!e.deps.rowEditingService.isEditing()&&kC(e,n)});return}let r=e.deps.columnModel.getColumns().filter(r=>H(r,n.rowNode,e.deps.getCellDisableContext())&&!t.V(r)).map(t=>{let r=e.createCellEditorParams(n.rowNode,t),{stopEditing:i,setKeyboardPolicy:a,cancelCommit:o,getEditPhase:s,...c}=r;return{column:t,params:c,oldValue:r.value}});if(r.length===0)return;let i=e.validationCtx();if(e.deps.rowEditingService.startRowEditing({rowElement:n.rowElement,rowNode:n.rowNode,columns:r,focusColId:n.colId,onCommitRow:(t,i)=>ZS(e.commitCtx(),n.rowNode,r,t,i),onFocusColChange:t=>{let r=e.deps.getColIndex(t);e.deps.cellFocusService.setFocusedCell({rowId:n.rowId,colId:t,rowIndex:n.rowIndex,colIndex:r}),e.deps.applyFocusVisuals()},onRowEditingStopped:t=>{TC(e.lifecycleCtx(),t)},onCommitLifecycle:{onStarted:()=>{e.deps.eventBus.emit(`rowCommitStarted`,{rowId:n.rowId,rowIndex:n.rowIndex,editableColIds:r.map(e=>e.column.colId),rowNode:n.rowNode})},onFinished:t=>{e.deps.eventBus.emit(`rowCommitFinished`,{rowId:n.rowId,rowIndex:n.rowIndex,committed:t.ok===!0,aborted:t.ok===`aborted`,rowNode:n.rowNode}),t.ok===!1&&t.failedColId?wC(i,n,t):t.ok===!0&&t.validationWarnings&&SC(e.deps,n,t.validationWarnings)},onAborted:()=>{e.deps.eventBus.emit(`editCommitAborted`,{rowId:n.rowId,rowIndex:n.rowIndex})}}})){e.deps.eventBus.emit(`rowEditingStarted`,{rowId:n.rowId,rowIndex:n.rowIndex,editableColIds:r.map(e=>e.column.colId),rowNode:n.rowNode});for(let t of r)e.deps.eventBus.emit(`cellEditingStarted`,{rowId:n.rowId,colId:t.column.colId,rowIndex:n.rowIndex,value:t.oldValue,rowNode:n.rowNode});e.deps.applyFocusVisuals(),e.deps.syncPinnedRows()}}function AC(e,n){if(e.deps.rowEditingService.isCommitting())return;if(e.deps.editingService.isCommitting()){e.deps.editingService.awaitCommitIdle().then(()=>{e.deps.editingService.isCommitting()||AC(e,n)});return}if(e.deps.rowEditingService.isEditing()){e.deps.rowEditingService.stopRowEditing(!0).then(t=>{t?.committed&&!e.deps.rowEditingService.isEditing()&&AC(e,n)});return}let r=e.deps.columnModel.getColumnById(n.colId);if(!r||!H(r,n.rowNode,e.deps.getCellDisableContext())||t.V(r))return;let i=e.createCellEditorParams(n.rowNode,r),a=i.formattedValue,o=i.value,s=()=>{e.deps.validationFeedback.clearRowCell(n.rowId,n.rowElement??null,n.colId),$(e.deps)},c=e.validationCtx();e.deps.editingService.startEditing(n.rowElement,n.rowNode,r,a,o,{editorParams:i,onCommit:(t,a)=>QS(e.commitCtx(),n.rowNode,r,t,i,a),onCancel:()=>void 0,onEditingInput:s,onEditingStopped:t=>{EC(e.lifecycleCtx(),t)},onTab:t=>{e.deps.onTabChainEdit(t)},onCommitLifecycle:{onStarted:()=>{s(),e.deps.eventBus.emit(`cellCommitStarted`,{rowId:n.rowId,colId:n.colId,rowIndex:n.rowIndex})},onFinished:t=>{e.deps.eventBus.emit(`cellCommitFinished`,{rowId:n.rowId,colId:n.colId,rowIndex:n.rowIndex,committed:t.ok===!0,aborted:t.ok===`aborted`}),t.ok===!1&&t.errors?CC(c,n,t.errors,t.revert):t.ok===!0&&t.validationErrors?.length&&xC(e.deps,n,t.validationErrors)},onAborted:()=>{e.deps.eventBus.emit(`editCommitAborted`,{rowId:n.rowId,colId:n.colId,rowIndex:n.rowIndex})}}}),e.deps.eventBus.emit(`cellEditingStarted`,{rowId:n.rowId,colId:n.colId,rowIndex:n.rowIndex,value:o,rowNode:n.rowNode}),e.deps.applyFocusVisuals(),e.deps.syncPinnedRows()}var jC=class{deps;persistedValidationScheduler;constructor(e){this.deps=e,this.persistedValidationScheduler=new sC(()=>this.validationCtx(),()=>!this.isEditing()&&!this.isCommitting(),()=>this.awaitCommitIdle())}validate(e){return pC(this.validationCtx(),e)}validateRows(e){return mC(this.validationCtx(),e)}validateCells(e){return hC(this.validationCtx(),e)}clearValidation(e){uC(this.validationCtx(),e)}clearRowValidation(e){dC(this.validationCtx(),e)}clearCellValidation(e){fC(this.validationCtx(),e)}syncValidationDom(){lC(this.validationCtx())}syncValidationHeaderDom(){$(this.deps)}schedulePersistedValidationRefreshForRows(e){yC(this.validationCtx(),e)}startEditingCell(e){DC(this.startCtx(),e)}stopEditing(e=!1){return this.deps.rowEditingService.isEditing()?this.deps.rowEditingService.stopRowEditing(!e).then(e=>e?{committed:e.committed}:null):this.deps.editingService.isEditing()?this.deps.editingService.stopEditing(!e).then(e=>e?{committed:e.committed}:null):Promise.resolve(null)}async commit(e=!1){let t=await this.stopEditing(e);return t===null?!this.isEditing():e?!0:t.committed===!0}isCommitting(){return this.deps.editingService.isCommitting()||this.deps.rowEditingService.isCommitting()}awaitCommitIdle(){return Promise.all([this.deps.editingService.awaitCommitIdle(),this.deps.rowEditingService.awaitCommitIdle()]).then(()=>void 0)}cancelCommit(){if(this.deps.rowEditingService.isCommitting()){this.deps.rowEditingService.cancelCommit();return}this.deps.editingService.isEditing()&&this.deps.editingService.cancelCommit()}getEditSessionPhase(){return this.deps.rowEditingService.isEditing()?this.deps.rowEditingService.getEditSessionPhase():this.deps.editingService.getEditSessionPhase()}isEditing(){return this.deps.editingService.isEditing()||this.deps.rowEditingService.isEditing()}getEditingCell(){if(this.deps.rowEditingService.isEditing()){let e=this.deps.rowEditingService.getEditingRow(),t=this.deps.rowEditingService.getActiveColId();if(e&&t)return{rowId:e.rowId,colId:t};let n=this.deps.rowEditingService.getEditingCells()[0];return n?{rowId:n.rowId,colId:n.colId}:null}let e=this.deps.editingService.getEditingCell();return e?{rowId:e.rowId,colId:e.colId}:null}getEditingCells(){if(this.deps.rowEditingService.isEditing())return this.deps.rowEditingService.getEditingCells();let e=this.deps.editingService.getEditingCell();return e?[{rowId:e.rowId,rowIndex:e.rowIndex,colId:e.colId}]:[]}getEditingRowId(){return this.deps.rowEditingService.isEditing()?this.deps.rowEditingService.getEditingRow()?.rowId??null:this.deps.editingService.getEditingCell()?.rowId??null}focusRowEditingColumn(e){return this.deps.rowEditingService.focusEditingColumn(e)}cancelEditingForRemovedRows(e){let t=this.getEditingRowId();!t||!e.has(t)||this.stopEditing(!0)}registerCellEditor(e,t){this.deps.editorHost.register(e,t)}unregisterCellEditor(e){return this.deps.editorHost.unregister(e)}cancelEditingOnDestroy(){this.deps.editingService.cancelCommit(),this.deps.rowEditingService.cancelCommit(),this.deps.rowEditingService.isEditing()&&this.deps.rowEditingService.stopRowEditing(!1),this.deps.editingService.isEditing()&&this.deps.editingService.stopEditing(!1)}destroy(){this.deps.rowEditingService.destroy(),this.deps.editingService.destroy()}tryStartRowEditing(e){kC(this.startCtx(),e)}tryStartCellEditing(e){AC(this.startCtx(),e)}createCellEditorParams(e,t){return Ex(this.editorParamsCtx(),e,t)}validationCtx(){return{deps:this.deps,isEditing:()=>this.isEditing(),persistedValidationScheduler:this.persistedValidationScheduler,createCellEditorParams:(e,t)=>this.createCellEditorParams(e,t),getInvalidEditValueMode:()=>cC(this.deps)}}editorParamsCtx(){return{deps:this.deps,stopEditing:e=>this.stopEditing(e),cancelCommit:()=>this.cancelCommit(),getEditSessionPhase:()=>this.getEditSessionPhase()}}commitCtx(){return{deps:this.deps,stopEditing:e=>this.stopEditing(e),cancelCommit:()=>this.cancelCommit(),getEditSessionPhase:()=>this.getEditSessionPhase(),getInvalidEditValueMode:()=>cC(this.deps)}}lifecycleCtx(){return{deps:this.deps,isEditing:()=>this.isEditing(),validationCtx:()=>this.validationCtx()}}startCtx(){return{deps:this.deps,isEditing:()=>this.isEditing(),stopEditing:e=>this.stopEditing(e),cancelCommit:()=>this.cancelCommit(),getEditSessionPhase:()=>this.getEditSessionPhase(),editorParamsCtx:()=>this.editorParamsCtx(),commitCtx:()=>this.commitCtx(),validationCtx:()=>this.validationCtx(),lifecycleCtx:()=>this.lifecycleCtx(),createCellEditorParams:(e,t)=>this.createCellEditorParams(e,t)}}},MC=`mg-column-drag-ghost`,NC=`mg-column-drag-ghost__icon`,PC=`mg-column-drag-ghost__label`,FC=`mg-column-drop-indicator`,IC=class{ghostEl=null;indicatorEl=null;movingColId=null;lastMovingChangedAt=-1/0;isColumnMoving(e){return this.movingColId?!e||this.movingColId===e:!1}shouldSuppressSortClick(){return this.movingColId?!0:performance.now()-this.lastMovingChangedAt<50}setColumnMoving(e){this.movingColId=e,this.lastMovingChangedAt=performance.now()}startGhost(e){this.removeGhost();let t=document.createElement(`div`);t.className=MC,t.style.width=`${e.width}px`,t.style.height=`${e.height}px`,t.style.left=`${e.left}px`,t.style.top=`${e.top}px`;let n=document.createElement(`span`);n.className=NC,n.setAttribute(`aria-hidden`,`true`),n.append(hm());let r=document.createElement(`span`);r.className=PC,r.textContent=e.label,t.append(n,r),(e.mountEl??document.body).appendChild(t),this.ghostEl=t}moveGhost(e,t){this.ghostEl&&(this.ghostEl.style.left=`${e}px`,this.ghostEl.style.top=`${t}px`)}showDropIndicator(e,t,n){if(!this.indicatorEl){let e=document.createElement(`div`);e.className=FC,document.body.appendChild(e),this.indicatorEl=e}this.indicatorEl.style.left=`${e}px`,this.indicatorEl.style.top=`${t}px`,this.indicatorEl.style.height=`${n}px`,this.indicatorEl.style.display=`block`}hideDropIndicator(){this.indicatorEl&&(this.indicatorEl.style.display=`none`)}setSourceHeaderDragging(e,t){e&&e.classList.toggle(`mg-header-cell--dragging`,t)}setHeaderViewportDragging(e,t){e&&e.classList.toggle(`mg-header-viewport--column-dragging`,t)}cleanup(e,t){this.setSourceHeaderDragging(e,!1),this.setHeaderViewportDragging(t,!1),this.removeGhost(),this.removeIndicator(),this.setColumnMoving(null)}destroy(){this.removeGhost(),this.removeIndicator(),this.movingColId=null}removeGhost(){this.ghostEl?.remove(),this.ghostEl=null}removeIndicator(){this.indicatorEl?.remove(),this.indicatorEl=null}};function LC(e,t){return[{colId:e,sort:`asc`}]}function RC(e,t){return[{colId:e,sort:`desc`}]}function zC(e,t){return Xi(t.filter(t=>t.colId!==e))}function BC(e,t){return t.find(t=>t.colId===e)?.sort??null}function VC(e,t){return BC(e,t)!==null}var HC=[{value:`contains`,label:`包含`},{value:`notContains`,label:`不包含`},{value:`equals`,label:`等于`},{value:`notEqual`,label:`不等于`},{value:`startsWith`,label:`开头是`},{value:`endsWith`,label:`结尾是`},{value:`blank`,label:`空白`},{value:`notBlank`,label:`非空白`}],UC=[{value:`equals`,label:`等于`},{value:`notEqual`,label:`不等于`},{value:`lessThan`,label:`小于`},{value:`lessThanOrEqual`,label:`小于等于`},{value:`greaterThan`,label:`大于`},{value:`greaterThanOrEqual`,label:`大于等于`},{value:`blank`,label:`空白`},{value:`notBlank`,label:`非空白`}],WC=[{value:`equals`,label:`等于`},{value:`notEqual`,label:`不等于`},{value:`lessThan`,label:`早于`},{value:`greaterThan`,label:`晚于`},{value:`inRange`,label:`范围内`},{value:`blank`,label:`空白`},{value:`notBlank`,label:`非空白`}];function GC(e){switch(e){case`number`:return UC;case`date`:return WC;default:return HC}}function KC(e){switch(e){case`number`:return`equals`;case`date`:return`equals`;default:return`contains`}}function qC(e){return{type:KC(e),value:``,valueTo:``}}function JC(e){return!ri(e)}function YC(e){return e===`inRange`}function XC(e){return e===`number`?`number`:`text`}function ZC(e,t){return`过滤条件`}function QC(e){return`过滤条件`}function $C(e,t){return GC(t).some(t=>t.value===e)}function ew(e,t){let n=Zr(e);return n===void 0?{setAllSelected:!0,selectedValues:[...t]}:n.length===0?{setAllSelected:!1,selectedValues:[]}:t.length>0&&n.length===t.length&&t.every(e=>n.includes(e))?{setAllSelected:!0,selectedValues:[...t]}:{setAllSelected:!1,selectedValues:n}}function tw(e,t,n){if(ri(e))return{type:e};if(e===`inRange`){let r=t.trim(),i=n?.trim()??``;return r===``||i===``?null:{type:e,filter:r,filterTo:i}}let r=t.trim();return r===``?null:{type:e,filter:r}}function nw(e,t){return e?null:{setValues:t.filter(e=>e!==``)}}function rw(e,t,n){let r=Yr(e).map(e=>({type:$C(e.type,t)?e.type:n,value:e.filter??``,valueTo:e.filterTo??``}));return r.length>0?r:[qC(t)]}function iw(e,t,n){let r=t.map(e=>tw(e.type,e.value,e.valueTo)).filter(e=>e!==null);if(r.length===0)return null;if(r.length===1){let e=r[0];return{type:e.type,...e.filter===void 0?{}:{filter:e.filter},...e.filterTo===void 0?{}:{filterTo:e.filterTo}}}return{type:r[0]?.type??n,operator:e,conditions:r.map(e=>({type:e.type,...e.filter===void 0?{}:{filter:e.filter},...e.filterTo===void 0?{}:{filterTo:e.filterTo}}))}}function aw(e,t,n=`text`,r=[]){let i=t[e],a=KC(n),o=ew(void 0,r),s={operatorLogic:`AND`,operatorConditions:[qC(n)]};if(!i)return{customPredicate:!1,...s,...o};if(_r(i))return{customPredicate:!0,...s,...o};let c=ew(i,r);return{customPredicate:!1,operatorLogic:Xr(i),operatorConditions:rw(i,n,a),...c}}function ow(e,t,n,r,i){let a=iw(e,t,i),o=nw(n,r);return!a&&!o?null:{...a,type:a?.type??i,...o??{}}}function sw(e,t,n,r){let i={...n},a=KC(r),o=ow(t.operatorLogic,t.operatorConditions,t.setAllSelected,t.selectedValues,a);return o&&(Qr(o)||$r(o))?i[e]=o:delete i[e],i}function cw(e,t,n,r,i,a,o=!0,s=[]){return sw(e,{operatorLogic:`AND`,operatorConditions:[{type:t,value:n,valueTo:a??``}],setAllSelected:o,selectedValues:s},r,i)}function lw(e,t){if(!(e in t))return t;let n={...t};return delete n[e],n}function uw(e){return ri(e.type)?!1:e.type===`inRange`?e.value.trim()!==``||e.valueTo.trim()!==``:e.value.trim()!==``}function dw(e){let t=e[0];return t?uw(t):!1}function fw(e){let{columnFilterType:t,abortSignal:n,onInput:r,onStopPropagation:i}=e,a=GC(t),o=`mg-filter-logic-${Math.random().toString(36).slice(2)}`,s=document.createElement(`div`);s.className=`mg-column-handle-menu__filter-operator-panel`;let c=document.createElement(`fieldset`);c.className=`mg-column-handle-menu__filter-operator-logic`,c.setAttribute(`aria-label`,`条件组合方式`),c.hidden=!0;let l=document.createElement(`label`);l.className=`mg-column-handle-menu__filter-operator-logic-option`;let u=document.createElement(`input`);u.type=`radio`,u.name=o,u.value=`AND`,u.checked=!0,l.append(u,document.createTextNode(`并且`));let d=document.createElement(`label`);d.className=`mg-column-handle-menu__filter-operator-logic-option`;let f=document.createElement(`input`);f.type=`radio`,f.name=o,f.value=`OR`,d.append(f,document.createTextNode(`或者`)),c.append(l,d);let p=null,m=null,h=`AND`,g=null,_=e=>({type:e.typeSelect.value,value:e.input.value,valueTo:e.inputTo.value}),v=()=>f.checked?`OR`:`AND`,y=e=>{u.checked=e!==`OR`,f.checked=e===`OR`},b=e=>{let n=e.typeSelect.value;e.input.type=XC(t),e.input.placeholder=ZC(t,n),e.input.hidden=!JC(n),e.inputTo.type=XC(t),e.inputTo.placeholder=QC(t),e.inputTo.hidden=!YC(n)},x=()=>{let e=p?uw(_(p)):!1;c.hidden=!e,e&&!m&&p&&(m=C(g??qC(t),!0),m.rowEl.hidden=!1,s.append(m.rowEl)),m&&(m.rowEl.hidden=!e),!e&&m&&(uw(_(m))&&(g=_(m)),m.rowEl.remove(),m=null,c.hidden=!0)},S=()=>{x(),r()},C=(e,t=!1)=>{let r=document.createElement(`div`);r.className=`mg-column-handle-menu__filter-condition-row`,t&&r.classList.add(`mg-column-handle-menu__filter-condition-row--secondary`);let o=document.createElement(`select`);o.className=`mg-column-handle-menu__filter-type`,o.setAttribute(`aria-label`,t?`第二个筛选算子`:`筛选算子`);for(let e of a){let t=document.createElement(`option`);t.value=e.value,t.textContent=e.label,o.append(t)}o.value=e.type;let s=document.createElement(`input`);s.className=`mg-column-handle-menu__filter-input`,s.setAttribute(`aria-label`,t?`第二个筛选值`:`筛选值`),s.value=e.value;let c=document.createElement(`input`);c.className=`mg-column-handle-menu__filter-input-to`,c.setAttribute(`aria-label`,t?`第二个筛选结束值`:`筛选结束值`),c.value=e.valueTo,r.append(o,s,c);let l={rowEl:r,typeSelect:o,input:s,inputTo:c};b(l);let u=e=>{i?.(e)};o.addEventListener(`change`,()=>{b(l),S()},{signal:n}),s.addEventListener(`input`,S,{signal:n}),c.addEventListener(`input`,S,{signal:n});for(let e of[o,s,c])e.addEventListener(`mousedown`,u,{signal:n}),e.addEventListener(`click`,u,{signal:n});return l},w=e=>{s.replaceChildren();let n=e.operatorConditions.length>0?e.operatorConditions:[qC(t)];h=e.operatorLogic,g=n[1]??null,y(h),p=C(n[0]??qC(t)),m=null,s.append(p.rowEl,c),dw(n)?(m=C(n[1]??g??qC(t),!0),s.append(m.rowEl),c.hidden=!1):c.hidden=!0};w(e.initialState);for(let e of[u,f])e.addEventListener(`change`,()=>{h=v(),r()},{signal:n}),e.addEventListener(`mousedown`,e=>i?.(e),{signal:n}),e.addEventListener(`click`,e=>i?.(e),{signal:n});return c.addEventListener(`mousedown`,e=>i?.(e),{signal:n}),c.addEventListener(`click`,e=>i?.(e),{signal:n}),{element:s,readState:()=>{let e=p?[_(p)]:[];return p&&!c.hidden&&m&&e.push(_(m)),{operatorLogic:v(),operatorConditions:e}},syncState:e=>{w(e)}}}function pw(e,t){let n=t.trim().toLowerCase();return n===``?[...e]:e.filter(e=>e.label.toLowerCase().includes(n)||e.key.toLowerCase().includes(n))}var mw=class{allKeys;setAllSelected;selectedKeys;constructor(e,t){this.allKeys=e,this.setAllSelected=t.setAllSelected,this.selectedKeys=new Set(t.setAllSelected?[]:t.selectedValues)}isChecked(e){return this.setAllSelected||this.selectedKeys.has(e)}setSelectAll(e){this.setAllSelected=e,this.selectedKeys.clear()}toggleKey(e,t){this.setAllSelected&&(this.setAllSelected=!1,this.selectedKeys=new Set(this.allKeys)),t?this.selectedKeys.add(e):this.selectedKeys.delete(e),this.selectedKeys.size===this.allKeys.length&&(this.setAllSelected=!0,this.selectedKeys.clear())}getSelectAllState(){return this.getSelectAllStateForKeys(this.allKeys)}getSelectAllStateForKeys(e){if(e.length===0)return{checked:!1,indeterminate:!1};let t=e.filter(e=>this.isChecked(e)).length;return t===0?{checked:!1,indeterminate:!1}:t===e.length?{checked:!0,indeterminate:!1}:{checked:!1,indeterminate:!0}}setKeysChecked(e,t){for(let n of e)this.setKeyChecked(n,t)}setKeyChecked(e,t){this.isChecked(e)!==t&&(this.setAllSelected&&(this.setAllSelected=!1,this.selectedKeys=new Set(this.allKeys)),t?this.selectedKeys.add(e):this.selectedKeys.delete(e),this.selectedKeys.size===this.allKeys.length&&(this.setAllSelected=!0,this.selectedKeys.clear()))}snapshot(){return this.setAllSelected?{setAllSelected:!0,selectedValues:[...this.allKeys]}:{setAllSelected:!1,selectedValues:[...this.selectedKeys]}}applySnapshot(e){this.setAllSelected=e.setAllSelected,this.selectedKeys=new Set(e.setAllSelected?[]:e.selectedValues)}};function hw(e,t,n,r){if(t===`reserve`||!r)return e;if(n.length===0)return null;let i=new Set(n);if(e.setAllSelected)return{setAllSelected:!1,selectedValues:[...n]};let a=e.selectedValues.filter(e=>i.has(e));return a.length===0?{setAllSelected:!1,selectedValues:[]}:{setAllSelected:!1,selectedValues:a}}var gw=/^(\d{4})-(\d{2})-(\d{2})$/;function _w(e){let t=gw.exec(e),n=t?Number(t[3]):0;return{id:`d:${e}`,type:`day`,label:`${n}日`,key:e,children:[],leafKeys:[e]}}function vw(e,t){return e.id.localeCompare(t.id,void 0,{numeric:!0})}function yw(e,t){return(e.key??``).localeCompare(t.key??``,void 0,{numeric:!0})}function bw(e){let t=[],n=e.find(e=>e.blank);n&&t.push({id:`blank`,type:`blank`,label:n.label,key:n.key,children:[],leafKeys:[n.key]});let r=new Map;for(let t of e){if(t.blank)continue;let e=gw.exec(t.key);if(!e)continue;let n=Number(e[1]),i=Number(e[2]),a=r.get(n)??new Map,o=a.get(i)??[];o.push(_w(t.key)),a.set(i,o),r.set(n,a)}let i=[...r.keys()].sort((e,t)=>t-e);for(let e of i){let n=r.get(e),i=[];for(let t of[...n.keys()].sort((e,t)=>e-t)){let r=n.get(t).sort(yw);i.push({id:`y:${e}:m:${t}`,type:`month`,label:`${t}月`,children:r,leafKeys:r.map(e=>e.key)})}i.sort(vw),t.push({id:`y:${e}`,type:`year`,label:String(e),children:i,leafKeys:i.flatMap(e=>e.leafKeys)})}return t}function xw(e){let t=new Set;for(let n of e)n.type===`year`&&t.add(n.id);return t}function Sw(e,t){let n=[],r=(e,i)=>{for(let a of e){let e=a.children.length>0,o=e&&t.has(a.id);n.push({node:a,depth:i,hasChildren:e,expanded:o}),o&&r(a.children,i+1)}};return r(e,0),n}function Cw(e,t){let n=[];for(let r of e){let e=r.label.toLowerCase().includes(t)||(r.key?.toLowerCase().includes(t)??!1),i=r.children.length>0?Cw(r.children,t):[];if(!e&&i.length===0)continue;let a=i.length>0?i:e?[...r.children]:[];n.push({...r,children:a,leafKeys:a.length>0?a.flatMap(e=>e.leafKeys):r.leafKeys})}return n}function ww(e){let t=new Set,n=e=>{for(let r of e)r.children.length>0&&(t.add(r.id),n(r.children))};return n(e),t}function Tw(e,t,n){let r=t.trim().toLowerCase(),i=bw(e);if(r===``){let e=Sw(i,n);return{roots:i,expandedIds:new Set(n),rows:e,leafKeys:i.flatMap(e=>e.leafKeys)}}let a=Cw(i,r),o=ww(a);return{roots:a,expandedIds:o,rows:Sw(a,o),leafKeys:a.flatMap(e=>e.leafKeys)}}function Ew(e,t){return Tw(e,t,new Set).leafKeys}function Dw(e,t){for(let n of e){if(n.id===t)return n;let e=Dw(n.children,t);if(e)return e}}var Ow=4;function kw(e,t,n,r=28,i=Ow){if(n<=0)return{start:0,end:0};let a=Math.ceil(t/r),o=Math.max(0,n-a-i),s=Math.min(o,Math.max(0,Math.floor(e/r)-i));return{start:s,end:Math.min(n,s+a+i*2)}}var Aw=class{options;element;spacerEl;windowEl;emptyEl;rowEls=new Map;filteredOptions;constructor(e){this.options=e,this.filteredOptions=e.options,this.element=document.createElement(`div`),this.element.className=`mg-column-handle-menu__filter-set-list`,this.spacerEl=document.createElement(`div`),this.spacerEl.className=`mg-column-handle-menu__filter-set-list-spacer`,this.windowEl=document.createElement(`div`),this.windowEl.className=`mg-column-handle-menu__filter-set-list-window`,this.emptyEl=document.createElement(`div`),this.emptyEl.className=`mg-column-handle-menu__filter-set-empty`,this.emptyEl.hidden=!0,this.spacerEl.append(this.windowEl),this.element.append(this.spacerEl,this.emptyEl),this.element.addEventListener(`scroll`,()=>this.render(),{signal:e.abortSignal}),this.element.addEventListener(`change`,e=>{let t=e.target;!(t instanceof HTMLInputElement)||t.type!==`checkbox`||t.closest(`.mg-column-handle-menu__filter-set-option`)&&(this.options.selection.toggleKey(t.value,t.checked),this.options.onSelectionChange(),this.render())},{signal:e.abortSignal}),this.render()}setOptions(e){this.filteredOptions=e,this.scrollToTop(),this.render()}scrollToTop(){this.element.scrollTop=0}refresh(){this.render()}getVisibleRange(){return kw(this.element.scrollTop,this.element.clientHeight||160,this.filteredOptions.length)}render(){let{selection:e}=this.options,t=this.filteredOptions.length;if(this.spacerEl.hidden=t===0,this.spacerEl.style.height=`${t*28}px`,t===0){this.emptyEl.textContent=this.options.emptySearchLabel??`暂无可选值`,this.emptyEl.hidden=!1,this.clearRows();return}this.emptyEl.hidden=!0;let{start:n,end:r}=this.getVisibleRange();this.windowEl.style.transform=`translateY(${n*28}px)`;for(let[e,t]of this.rowEls)(e<n||e>=r)&&(t.remove(),this.rowEls.delete(e));for(let t=n;t<r;t+=1){let n=this.filteredOptions[t];if(!n)continue;let r=this.rowEls.get(t);r?this.updateRow(r,n,e.isChecked(n.key)):(r=this.createRow(n),this.rowEls.set(t,r)),this.windowEl.append(r)}}clearRows(){for(let e of this.rowEls.values())e.remove();this.rowEls.clear()}createRow(e){let t=document.createElement(`label`);t.className=`mg-column-handle-menu__filter-set-option`;let n=document.createElement(`input`);n.type=`checkbox`,n.value=e.key,n.checked=this.options.selection.isChecked(e.key);let r=document.createElement(`span`);return r.textContent=e.label,t.append(n,r),t}updateRow(e,t,n){let r=e.querySelector(`input`),i=e.querySelector(`span`);r instanceof HTMLInputElement&&(r.value=t.key,r.checked=n),i&&(i.textContent=t.label)}},jw=class{viewOptions;element;scrollEl;spacerEl;windowEl;emptyEl;rowEls=new Map;expandedIds;rows=[];searchQuery=``;constructor(e){this.viewOptions=e,this.searchQuery=e.searchQuery??``,this.expandedIds=xw(Tw(e.options,``,new Set).roots),this.element=document.createElement(`div`),this.element.className=`mg-column-handle-menu__filter-set-tree`,this.scrollEl=document.createElement(`div`),this.scrollEl.className=`mg-column-handle-menu__filter-set-list`,this.spacerEl=document.createElement(`div`),this.spacerEl.className=`mg-column-handle-menu__filter-set-list-spacer`,this.windowEl=document.createElement(`div`),this.windowEl.className=`mg-column-handle-menu__filter-set-list-window`,this.emptyEl=document.createElement(`div`),this.emptyEl.className=`mg-column-handle-menu__filter-set-empty`,this.emptyEl.hidden=!0,this.spacerEl.append(this.windowEl),this.scrollEl.append(this.spacerEl,this.emptyEl),this.element.append(this.scrollEl),this.scrollEl.addEventListener(`scroll`,()=>this.renderRows(),{signal:e.abortSignal}),this.scrollEl.addEventListener(`click`,e=>this.handleClick(e),{signal:e.abortSignal}),this.scrollEl.addEventListener(`change`,e=>this.handleChange(e),{signal:e.abortSignal}),this.syncViewState()}setSearchQuery(e){this.searchQuery=e,this.scrollEl.scrollTop=0,this.syncViewState()}refresh(){this.renderRows()}getVisibleLeafKeys(){return Tw(this.viewOptions.options,this.searchQuery,this.expandedIds).leafKeys}syncViewState(){let e=Tw(this.viewOptions.options,this.searchQuery,this.expandedIds);this.searchQuery.trim()!==``&&(this.expandedIds=e.expandedIds),this.rows=e.rows,this.renderRows()}renderRows(){let e=this.rows.length;if(this.spacerEl.hidden=e===0,this.spacerEl.style.height=`${e*28}px`,e===0){this.emptyEl.textContent=this.viewOptions.emptySearchLabel??`暂无可选值`,this.emptyEl.hidden=!1,this.clearRows();return}this.emptyEl.hidden=!0;let{start:t,end:n}=kw(this.scrollEl.scrollTop,this.scrollEl.clientHeight||160,e);this.windowEl.style.transform=`translateY(${t*28}px)`;for(let[e,r]of this.rowEls)(e<t||e>=n)&&(r.remove(),this.rowEls.delete(e));for(let e=t;e<n;e+=1){let t=this.rows[e];if(!t)continue;let n=this.rowEls.get(e);n?this.updateRowElement(n,t):(n=this.createRowElement(t),this.rowEls.set(e,n)),this.windowEl.append(n)}}clearRows(){for(let e of this.rowEls.values())e.remove();this.rowEls.clear()}createRowElement(e){let t=document.createElement(`div`);return t.className=`mg-column-handle-menu__filter-set-tree-row`,t.style.height=`28px`,t.dataset.nodeId=e.node.id,this.populateRowElement(t,e),t}updateRowElement(e,t){e.dataset.nodeId=t.node.id,this.populateRowElement(e,t)}populateRowElement(e,t){if(e.replaceChildren(),e.style.paddingLeft=`${8+t.depth*16}px`,t.hasChildren){let n=document.createElement(`button`);n.type=`button`,n.className=`mg-column-handle-menu__filter-set-tree-toggle`,n.dataset.action=`toggle`,n.dataset.nodeId=t.node.id,n.setAttribute(`aria-label`,t.expanded?`收起`:`展开`),n.textContent=t.expanded?`−`:`+`,e.append(n)}else{let t=document.createElement(`span`);t.className=`mg-column-handle-menu__filter-set-tree-toggle-spacer`,e.append(t)}let n=document.createElement(`label`);n.className=`mg-column-handle-menu__filter-set-tree-option`;let r=document.createElement(`input`);r.type=`checkbox`,r.dataset.nodeId=t.node.id,r.checked=this.isNodeChecked(t.node);let i=document.createElement(`span`);i.textContent=t.node.label,n.append(r,i),e.append(n),this.applyNodeCheckboxState(r,t.node)}isNodeChecked(e){return this.viewOptions.selection.getSelectAllStateForKeys(e.leafKeys).checked}applyNodeCheckboxState(e,t){let n=this.viewOptions.selection.getSelectAllStateForKeys(t.leafKeys);e.checked=n.checked,e.indeterminate=n.indeterminate}handleClick(e){let t=e.target;if(!(t instanceof Element))return;let n=t.closest(`[data-action="toggle"]`);if(!n?.dataset.nodeId)return;e.preventDefault(),e.stopPropagation();let r=n.dataset.nodeId;this.expandedIds.has(r)?this.expandedIds.delete(r):this.expandedIds.add(r),this.syncViewState()}handleChange(e){let t=e.target;if(!(t instanceof HTMLInputElement)||t.type!==`checkbox`)return;let n=t.dataset.nodeId;if(!n)return;let r=Dw(Tw(this.viewOptions.options,this.searchQuery,this.expandedIds).roots,n);r&&(this.viewOptions.selection.setKeysChecked(r.leafKeys,t.checked),this.viewOptions.onSelectionChange(),this.renderRows())}},Mw=new WeakMap,Nw=new WeakMap;function Pw(e,t){let n=Mw.get(e);n&&(n.selection.applySnapshot(t),n.searchInput&&(n.searchInput.value=``),n.mountOptionsView(),n.dateTreeView?.setSearchQuery(``),n.syncSelectAllUi(),n.virtualList?.refresh(),n.dateTreeView?.refresh())}function Fw(e){let t=document.createElement(`div`);return t.className=`mg-column-handle-menu__filter-group-heading`,t.textContent=e,t}function Iw(e,t){let n=document.createElement(`button`);return n.type=`button`,n.className=`mg-column-handle-menu__filter-reset`,n.textContent=`重置`,e?(n.addEventListener(`click`,t=>{t.preventDefault(),t.stopPropagation(),e()},{signal:t}),n):(n.dataset.action=`filter-clear`,n.setAttribute(`role`,`menuitem`),n)}function Lw(e){let{colId:t,filterModel:n,columnFilterType:r,distinctFilterValues:i,filterSetValueMode:a,filterSetDateLayoutMode:o,onFilterInput:s,onFilterClear:c,abortSignal:l}=e,u=i.map(e=>e.key),d=aw(t,n,r,u);if(d.customPredicate){let e=document.createElement(`div`);return e.className=`mg-column-handle-menu__filter-notice`,e.textContent=`该列使用自定义筛选,请在 API 中管理`,{root:e,panelRoot:null,customPredicate:!0,syncState:()=>{}}}let f=document.createElement(`div`);f.className=Hi;let p=document.createElement(`div`);p.className=`mg-column-handle-menu__filter-group`,p.append(Fw(`过滤器`));let m=e=>{e.stopPropagation()},h=document.createElement(`div`);h.className=`mg-column-handle-menu__filter-set-panel`,h.setAttribute(`role`,`group`),h.setAttribute(`aria-label`,`值选择`),h.append(Fw(`值选择`));let g=document.createElement(`input`);g.className=`mg-column-handle-menu__filter-set-search`,g.type=`search`,g.placeholder=`搜索列值`,g.setAttribute(`aria-label`,`搜索列值`),h.append(g);let _=r===`date`,v=new mw(u,{setAllSelected:d.setAllSelected,selectedValues:d.selectedValues}),y=()=>pw(i,g.value),b=()=>o,x=()=>_&&b()===`tree`?k?.getVisibleLeafKeys()??Ew(i,g.value):y().map(e=>e.key),S=()=>g.value.trim()!==``,C=()=>a,w=document.createElement(`label`);w.className=`mg-column-handle-menu__filter-set-option mg-column-handle-menu__filter-set-select-all`;let T=document.createElement(`input`);T.type=`checkbox`;let E=document.createElement(`span`);E.textContent=`全选`,w.append(T,E),h.append(w);let D=()=>{let e=x();if(S()){T.disabled=e.length===0;let t=v.getSelectAllStateForKeys(e);T.checked=t.checked,T.indeterminate=t.indeterminate;return}T.disabled=!1;let t=v.getSelectAllState();T.checked=t.checked,T.indeterminate=t.indeterminate},O=null,k=null,A=document.createElement(`div`);A.className=`mg-column-handle-menu__filter-set-list-host`;let j=()=>{if(A.replaceChildren(),O=null,k=null,i.length===0){let e=document.createElement(`div`);e.className=`mg-column-handle-menu__filter-set-empty`,e.textContent=`暂无可选值`,A.append(e),M();return}if(_&&b()===`tree`){k=new jw({options:i,selection:v,searchQuery:g.value,onSelectionChange:()=>{D(),N(`set`)},emptySearchLabel:`无匹配项`,abortSignal:l}),A.append(k.element),M();return}O=new Aw({options:y(),selection:v,onSelectionChange:()=>{D(),N(`set`)},emptySearchLabel:`无匹配项`,abortSignal:l}),A.append(O.element),M()},M=()=>{let e=Mw.get(h);e&&(e.virtualList=O,e.dateTreeView=k)},N=e=>{let t=v.snapshot(),n=hw(t,C(),x(),S());if(e===`set`&&n===null)return;let r=n??t,i=I.readState();s({source:e,operatorLogic:i.operatorLogic,operatorConditions:i.operatorConditions,setAllSelected:r.setAllSelected,selectedValues:r.selectedValues})},P=()=>{N(`operator`)},F=()=>{N(`set`)},I=fw({columnFilterType:r,initialState:{operatorLogic:d.operatorLogic,operatorConditions:d.operatorConditions},abortSignal:l,onInput:P,onStopPropagation:m});p.append(I.element),Nw.set(f,I),i.length===0&&(g.disabled=!0,T.disabled=!0),h.append(A),j(),Mw.set(h,{allOptions:i,searchInput:g,selection:v,virtualList:O,dateTreeView:k,mountOptionsView:j,getFilteredKeys:x,isSearchActive:S,getValueMode:C,syncSelectAllUi:D}),D(),g.addEventListener(`input`,()=>{_&&b()===`tree`?k?.setSearchQuery(g.value):O?.setOptions(y()),D(),C()===`current`&&F()},{signal:l}),g.addEventListener(`mousedown`,m,{signal:l}),g.addEventListener(`click`,m,{signal:l}),h.addEventListener(`mousedown`,m,{signal:l}),h.addEventListener(`click`,m,{signal:l}),h.addEventListener(`change`,e=>{let t=e.target;if(!(!(t instanceof HTMLInputElement)||t.type!==`checkbox`)&&t===T){let e=x();S()?v.setKeysChecked(e,T.checked):v.setSelectAll(T.checked),D(),O?.refresh(),k?.refresh(),F()}},{signal:l});let L=document.createElement(`div`);L.className=`mg-column-handle-menu__filter-actions`;let ee=Iw(c,l);return L.append(ee),f.append(p,h,L),{root:f,panelRoot:f,customPredicate:!1,syncState:e=>{Rw(f,e)}}}function Rw(e,t){let n=e.querySelector(`.mg-column-handle-menu__filter-set-panel`);Nw.get(e)?.syncState({operatorLogic:t.operatorLogic,operatorConditions:t.operatorConditions}),n&&Pw(n,t)}var zw=8,Bw=4;function Vw(e,t,n){let r=e.left,i=e.bottom+Bw;return i+n>window.innerHeight-zw&&(i=e.top-n-Bw),r=Math.max(zw,Math.min(r,window.innerWidth-t-zw)),i=Math.max(zw,Math.min(i,window.innerHeight-n-zw)),{left:r,top:i}}function Hw(e,t){let n=document.createElement(`span`);n.className=Ii,e&&n.append(e);let r=document.createElement(`span`);return r.className=Li,r.textContent=t,n.append(r),n}function Uw(e,t,n){let r=document.createElement(`button`);return r.type=`button`,r.className=Fi,r.dataset.action=t,n?.targetColId&&(r.dataset.targetColId=n.targetColId),r.append(Hw(n?.icon??null,e)),r.setAttribute(`role`,n?.role??`menuitem`),n?.role===`menuitemradio`&&r.setAttribute(`aria-checked`,n.checked?`true`:`false`),n?.checked&&r.classList.add(`mg-column-handle-menu__item--checked`),r}function Ww(){let e=document.createElement(`div`);return e.className=Vi,e.setAttribute(`role`,`separator`),e}function Gw(e,t){let n=document.createElement(`div`);n.className=`${Pi} ${Ui}`;let r=BC(e,t);return n.append(Uw(`升序`,`sort-asc`,{checked:r===`asc`,icon:_m()}),Uw(`降序`,`sort-desc`,{checked:r===`desc`,icon:vm()})),VC(e,t)&&n.append(Uw(`清除排序`,`sort-clear`,{icon:ym()})),n}function Kw(e,t){t.classList.remove(`mg-column-handle-menu__submenu-panel--flip`);let n=e.getBoundingClientRect(),r=t.offsetWidth;n.right+r>window.innerWidth-zw&&t.classList.add(`mg-column-handle-menu__submenu-panel--flip`)}function qw(e){let t=document.createElement(`div`);t.className=`${Pi} ${Wi}`;let n=document.createElement(`div`);n.className=zi;let r=document.createElement(`button`);r.type=`button`,r.className=`${Fi} ${Ri}`,r.setAttribute(`role`,`menuitem`),r.setAttribute(`aria-haspopup`,`menu`),r.setAttribute(`aria-expanded`,`false`),r.append(Hw(bm(),`固定列`)),r.append(wm());let i=document.createElement(`div`);i.className=Bi,i.setAttribute(`role`,`menu`),i.hidden=!0,i.append(Uw(`不固定`,`pin-none`,{role:`menuitemradio`,checked:e===null,icon:xm()}),Uw(`固定左侧`,`pin-left`,{role:`menuitemradio`,checked:e===`left`,icon:Sm()}),Uw(`固定右侧`,`pin-right`,{role:`menuitemradio`,checked:e===`right`,icon:Cm()}));let a=()=>{i.hidden=!1,r.setAttribute(`aria-expanded`,`true`),n.classList.add(`mg-column-handle-menu__submenu--open`),Kw(r,i)},o=()=>{i.hidden=!0,r.setAttribute(`aria-expanded`,`false`),n.classList.remove(`mg-column-handle-menu__submenu--open`)};return n.addEventListener(`mouseenter`,a),n.addEventListener(`mouseleave`,o),n.addEventListener(`focusin`,a),n.addEventListener(`focusout`,e=>{let t=e.relatedTarget;t instanceof Node&&n.contains(t)||o()}),n.append(r,i),t.append(n),t}function Jw(e,t,n){let r=()=>{n.hidden=!1,t.setAttribute(`aria-expanded`,`true`),e.classList.add(`mg-column-handle-menu__submenu--open`),Kw(t,n)},i=()=>{n.hidden=!0,t.setAttribute(`aria-expanded`,`false`),e.classList.remove(`mg-column-handle-menu__submenu--open`)};e.addEventListener(`mouseenter`,r),e.addEventListener(`mouseleave`,i),e.addEventListener(`focusin`,r),e.addEventListener(`focusout`,t=>{let n=t.relatedTarget;n instanceof Node&&e.contains(n)||i()})}function Yw(e){let t=document.createElement(`div`);t.className=`${Pi} ${Ki}`;let n=document.createElement(`div`);n.className=zi;let r=document.createElement(`button`);r.type=`button`,r.className=`${Fi} ${Ri}`,r.setAttribute(`role`,`menuitem`),r.setAttribute(`aria-haspopup`,`menu`),r.setAttribute(`aria-expanded`,`false`),r.append(Hw(Tm(),`列显隐`)),r.append(wm());let i=document.createElement(`div`);i.className=Bi,i.setAttribute(`role`,`menu`),i.hidden=!0,i.append(Uw(`隐藏此列`,`hide-column`,{icon:Em()})),e.length>0&&i.append(Ww());for(let t of e)i.append(Uw(t.label,`show-column`,{targetColId:t.colId,icon:Dm()}));return Jw(n,r,i),n.append(r,i),t.append(n),t}function Xw(e,t,n,r,i,a,o,s){let c=document.createElement(`div`);c.className=`${Pi} ${Gi}`;let l=Lw({colId:e,filterModel:t,columnFilterType:n,distinctFilterValues:r,filterSetValueMode:i,filterSetDateLayoutMode:a,onFilterInput:o,abortSignal:s});return c.append(l.root),c}var Zw=class{portalEl=null;menuEl=null;triggerHandle=null;onClose=null;handleDocumentClick=e=>{e.button===0&&(this.shouldIgnoreOutsideMenuClose(e.target)||this.onClose?.())};shouldIgnoreOutsideMenuClose(e){if(!(e instanceof Node)||this.menuEl?.contains(e)||this.triggerHandle?.contains(e))return!0;let t=document.activeElement;return!!(t instanceof HTMLSelectElement&&this.menuEl?.contains(t))}handleDocumentKeyDown=e=>{e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),this.onClose?.(),this.triggerHandle?.focus())};handleMenuClick=e=>{let t=e.target;if(!(t instanceof Element))return;let n=t.closest(`[data-action]`),r=n?.dataset.action;!r||!this.menuEl?.contains(n)||(e.preventDefault(),e.stopPropagation(),this.context?.onAction(r,n?.dataset.targetColId))};context=null;filterAbortController=null;open(e){this.close(),this.context=e,this.triggerHandle=e.triggerHandle,this.onClose=e.onClose,this.filterAbortController=new AbortController;let t=document.createElement(`div`);t.className=Ni;let n=document.createElement(`div`);n.className=Mi,n.setAttribute(`role`,`menu`),n.dataset.colId=e.colId;let r=[];e.sections.sort&&r.push(Gw(e.colId,e.sortModel)),e.sections.pin&&r.push(qw(e.fixed)),e.sections.visibility&&r.push(Yw(e.hiddenUserColumns)),e.sections.filter&&r.push(Xw(e.colId,e.filterModel,e.columnFilterType,e.distinctFilterValues,e.filterSetValueMode,e.filterSetDateLayoutMode,e.onFilterInput,this.filterAbortController.signal)),r.forEach((e,t)=>{t>0&&n.append(Ww()),n.append(e)}),n.addEventListener(`click`,this.handleMenuClick),t.append(n),e.mountEl.appendChild(t),this.portalEl=t,this.menuEl=n,this.positionMenu(n,e.anchorRect),this.syncHandleAria(e.triggerHandle,!0),document.addEventListener(`click`,this.handleDocumentClick,!0),document.addEventListener(`keydown`,this.handleDocumentKeyDown,!0)}close(){document.removeEventListener(`click`,this.handleDocumentClick,!0),document.removeEventListener(`keydown`,this.handleDocumentKeyDown,!0),this.filterAbortController?.abort(),this.filterAbortController=null,this.triggerHandle&&this.syncHandleAria(this.triggerHandle,!1),this.menuEl?.removeEventListener(`click`,this.handleMenuClick),this.portalEl?.remove(),this.portalEl=null,this.menuEl=null,this.triggerHandle=null,this.onClose=null,this.context=null}isOpen(){return this.menuEl!=null}getOpenColId(){return this.menuEl?.dataset.colId??null}syncFilterPanel(e){let t=this.menuEl?.querySelector(`.${Hi}`);t&&Rw(t,e)}positionMenu(e,t){e.style.visibility=`hidden`,e.style.position=`fixed`,e.style.left=`0`,e.style.top=`0`;let n=e.getBoundingClientRect(),{left:r,top:i}=Vw(t,n.width,n.height);e.style.left=`${r}px`,e.style.top=`${i}px`,e.style.visibility=``}syncHandleAria(e,t){e.setAttribute(`aria-expanded`,t?`true`:`false`)}},Qw=new Set([`sort-asc`,`sort-desc`,`sort-clear`]),$w={"pin-none":null,"pin-left":`left`,"pin-right":`right`},eT=class{deps;view=new Zw;openColId=null;filterDebounceTimer=null;constructor(e){this.deps=e}toggle(e){if(this.openColId===e.colId&&this.view.isOpen()){this.close();return}this.open(e)}open(e){let t=this.deps.columnModel.getColumnById(e.colId);if(!t)return;let n=Ji({colId:e.colId,sortable:t.sortable,filterable:t.filterable},e.mode??`full`);if(!Yi(n))return;this.close();let r=e.handleEl.getBoundingClientRect();this.openColId=e.colId,this.view.open({mountEl:this.deps.mountEl,colId:e.colId,anchorRect:r,sections:n,sortModel:this.deps.getSortModel(),fixed:t.fixed??null,filterModel:this.deps.getFilterModel(),columnFilterType:t.filterType,distinctFilterValues:this.deps.getColumnDistinctFilterValues(e.colId),filterSetValueMode:this.deps.filterSetValueMode,filterSetDateLayoutMode:this.deps.filterSetDateLayoutMode,triggerHandle:e.handleEl,hiddenUserColumns:Hs(this.deps.columnModel.getColumns()),onAction:(t,n)=>this.handleAction(t,e.colId,n),onFilterInput:n=>this.scheduleFilterUpdate(e.colId,n,t.filterType),onClose:()=>this.close()})}close(){this.clearFilterDebounce(),this.view.close(),this.openColId=null}isOpenFor(e){return this.openColId===e&&this.view.isOpen()}destroy(){this.close()}onHeaderRefresh(){this.view.isOpen()&&this.close()}handleAction(e,t,n){if(Qw.has(e)){this.applySortAction(e,t);return}let r=$w[e];if(r!==void 0){this.deps.setColumnFixed(t,r,`menu`);return}if(e===`filter-clear`){this.applyFilterClear(t);return}if(e===`hide-column`){this.deps.setColumnsHidden([t],!0,`menu`);return}e===`show-column`&&n&&this.deps.setColumnsHidden([n],!1,`menu`)}applySortAction(e,t){if(!this.deps.columnModel.getColumnById(t)?.sortable)return;let n=this.deps.getSortModel(),r;switch(e){case`sort-asc`:r=LC(t,n);break;case`sort-desc`:r=RC(t,n);break;case`sort-clear`:r=zC(t,n);break;default:return}this.deps.setSortModel(r)}scheduleFilterUpdate(e,t,n){if(!this.deps.columnModel.getColumnById(e)?.filterable)return;let r=this.deps.getFilterModel()[e];if(r&&_r(r))return;this.clearFilterDebounce();let i=()=>{let r=sw(e,{operatorLogic:t.operatorLogic,operatorConditions:t.operatorConditions,setAllSelected:t.setAllSelected,selectedValues:t.selectedValues},this.deps.getFilterModel(),n);this.deps.setFilterModel(r)};if(t.source===`set`){i();return}this.filterDebounceTimer=setTimeout(()=>{this.filterDebounceTimer=null,i()},300)}applyFilterClear(e){let t=this.deps.columnModel.getColumnById(e);if(!t?.filterable)return;this.clearFilterDebounce();let n=lw(e,this.deps.getFilterModel());this.deps.setFilterModel(n),this.view.syncFilterPanel(aw(e,n,t.filterType,this.deps.getColumnDistinctFilterValues(e).map(e=>e.key)))}clearFilterDebounce(){this.filterDebounceTimer!=null&&(clearTimeout(this.filterDebounceTimer),this.filterDebounceTimer=null)}},tT=8,nT=4,rT=320,iT=400,aT=168;function oT(e,t,n){let r=Math.min(iT,Math.max(rT,t)),i=e.right-r,a=e.bottom+nT;return a+n>window.innerHeight-tT&&(a=e.top-n-nT),i=Math.max(tT,Math.min(i,window.innerWidth-r-tT)),a=Math.max(tT,Math.min(a,window.innerHeight-n-tT)),{left:i,top:a}}function sT(e,t,n){let r=Math.max(aT,t),i=e.left,a=e.bottom+nT;return a+n>window.innerHeight-tT&&(a=e.top-n-nT),i=Math.max(tT,Math.min(i,window.innerWidth-r-tT)),a=Math.max(tT,Math.min(a,window.innerHeight-n-tT)),{left:i,top:a}}var cT=[{action:`promote`,label:`上移一级`,createIcon:jm},{action:`demote`,label:`下移一级`,createIcon:Am}];function lT(e){if(e.availableActions.length===0)return{close:()=>e.onClose?.()};let t=e.mountEl??document.body,n=document.createElement(`div`);n.className=qs;let r=document.createElement(`div`);r.className=Js;let i=document.createElement(`div`);i.className=Ys,i.setAttribute(`role`,`menu`);let a=new Set(e.availableActions);for(let t of cT){if(!a.has(t.action))continue;let n=document.createElement(`button`);n.type=`button`,n.className=Xs,n.dataset.action=t.action,n.setAttribute(`role`,`menuitem`);let r=document.createElement(`span`);r.className=Zs,r.append(t.createIcon());let o=document.createElement(`span`);o.className=Qs,o.textContent=t.label,n.append(r,o),n.addEventListener(`mousedown`,n=>{n.preventDefault(),n.stopPropagation(),e.onSelect(t.action),d()}),i.append(n)}if(i.childElementCount===0)return{close:()=>e.onClose?.()};r.append(i),n.append(r),t.append(n),r.style.visibility=`hidden`,r.style.position=`fixed`,r.style.left=`0`,r.style.top=`0`;let o=e.anchorEl.getBoundingClientRect(),s=i.getBoundingClientRect(),c=sT(o,s.width,s.height);r.style.left=`${c.left}px`,r.style.top=`${c.top}px`,r.style.visibility=``;let l=t=>{let r=t.target;r instanceof Node&&(n.contains(r)||e.anchorEl.contains(r))||d()},u=e=>{e.key===`Escape`&&d()};document.addEventListener(`mousedown`,l,!0),document.addEventListener(`keydown`,u,!0);function d(){document.removeEventListener(`mousedown`,l,!0),document.removeEventListener(`keydown`,u,!0),n.remove(),e.onClose?.()}return{close:d}}var uT=class{deps;openRowId=null;anchorEl=null;menuHandle=null;constructor(e){this.deps=e}isOpenForRow(e){return this.openRowId===e&&this.menuHandle!=null}toggle(e,t,n){if(n.length!==0){if(this.openRowId===e&&this.menuHandle){this.close();return}this.close(),this.openRowId=e,this.anchorEl=t,t.setAttribute(`aria-expanded`,`true`),this.menuHandle=lT({anchorEl:t,mountEl:this.deps.mountEl,availableActions:n,onSelect:t=>{this.deps.applyAction(e,t)},onClose:()=>{this.resetAnchorExpanded(),this.openRowId=null,this.menuHandle=null}})}}close(){this.menuHandle?.close(),this.resetAnchorExpanded(),this.openRowId=null,this.menuHandle=null}destroy(){this.close(),this.deps.mountEl.querySelectorAll(`button.${Xe}[aria-expanded="true"]`).forEach(e=>{e.setAttribute(`aria-expanded`,`false`)})}resetAnchorExpanded(){this.anchorEl?.setAttribute(`aria-expanded`,`false`),this.anchorEl=null}};function dT(e){let t=document.createElement(`div`);return t.className=`mg-header-row__lane mg-header-row__lane--${e}`,t}function fT(e){let t=document.createElement(`div`);return t.className=`mg-footer-row__lane mg-footer-row__lane--${e}`,t}function pT(e){let t=document.createElement(`div`);return t.className=`mg-floating-filter-row__lane mg-floating-filter-row__lane--${e}`,t}function mT(e,t={}){e.replaceChildren();let n=document.createElement(`div`);n.className=`mg-root`;let r=document.createElement(`div`);r.className=`mg-header-viewport`;let i=document.createElement(`div`);i.className=`mg-header-scroll`;let a=document.createElement(`div`);a.className=`mg-header-gutter`,a.setAttribute(`aria-hidden`,`true`);let o=document.createElement(`div`);o.className=`mg-header-row`;let s=dT(`left`),c=dT(`center`),l=dT(`right`);o.append(s,c,l);let u=document.createElement(`div`);u.className=`mg-header-span`,u.setAttribute(`aria-hidden`,`true`),i.append(o,u),r.append(i,a);let d=document.createElement(`div`);d.className=`mg-body`;let f=document.createElement(`div`);f.className=`mg-viewport`,f.tabIndex=0;let p=document.createElement(`div`);p.className=`mg-spacer`;let m=document.createElement(`div`);m.className=`mg-rows-layer`;let h=document.createElement(`div`);h.className=`mg-index-column-fill-host`,h.setAttribute(`aria-hidden`,`true`),h.hidden=!0;let g=document.createElement(`div`);g.className=`mg-index-column-fill`,h.appendChild(g);let _=document.createElement(`div`);_.className=`mg-rows-container`,m.append(h,_);let v=document.createElement(`div`);v.className=`mg-spanned-rows-container`,v.style.display=`none`,_.appendChild(v);let y=document.createElement(`div`);y.className=`mg-full-width-rows-container`,y.style.display=`none`,m.appendChild(y);let b=document.createElement(`div`);b.className=`mg-scroll-phantom`,b.setAttribute(`aria-hidden`,`true`),p.appendChild(m),p.appendChild(b),f.appendChild(p),d.appendChild(f);let{overlayEl:x,wrapperEl:S,contentEl:C}=zS();d.appendChild(x),n.appendChild(r);let w,T,E,D,O,k,A;if(t.floatingFilter){w=document.createElement(`div`),w.className=`mg-floating-filter-viewport`,T=document.createElement(`div`),T.className=`mg-floating-filter-scroll`,E=document.createElement(`div`),E.className=`mg-floating-filter-gutter`,E.setAttribute(`aria-hidden`,`true`),D=document.createElement(`div`),D.className=`mg-floating-filter-row`,O=pT(`left`),k=pT(`center`),A=pT(`right`),D.append(O,k,A);let e=document.createElement(`div`);e.className=`mg-floating-filter-span`,e.setAttribute(`aria-hidden`,`true`),T.append(D,e),w.append(T,E),n.appendChild(w)}n.appendChild(d);let j,M,N,P,F,I,L;if(t.showSummary){j=document.createElement(`div`),j.className=`mg-footer-viewport`,M=document.createElement(`div`),M.className=`mg-footer-scroll`,N=document.createElement(`div`),N.className=`mg-footer-gutter`,N.setAttribute(`aria-hidden`,`true`),P=document.createElement(`div`),P.className=`mg-footer-row`,F=fT(`left`),I=fT(`center`),L=fT(`right`),P.append(F,I,L);let e=document.createElement(`div`);e.className=`mg-footer-span`,e.setAttribute(`aria-hidden`,`true`),M.append(P,e),j.append(M,N),n.appendChild(j)}return e.appendChild(n),{rootEl:n,headerViewportEl:r,headerScrollEl:i,headerGutterEl:a,headerRowEl:o,headerLeftLaneEl:s,headerCenterLaneEl:c,headerRightLaneEl:l,viewportEl:f,spacerEl:p,scrollPhantomEl:b,rowsLayerEl:m,indexColumnFillHostEl:h,indexColumnFillEl:g,rowsContainerEl:_,spannedRowsContainerEl:v,fullWidthRowsContainerEl:y,footerViewportEl:j,footerScrollEl:M,footerGutterEl:N,footerRowEl:P,footerLeftLaneEl:F,footerCenterLaneEl:I,footerRightLaneEl:L,floatingFilterViewportEl:w,floatingFilterScrollEl:T,floatingFilterGutterEl:E,floatingFilterRowEl:D,floatingFilterLeftLaneEl:O,floatingFilterCenterLaneEl:k,floatingFilterRightLaneEl:A,overlayEl:x,overlayWrapperEl:S,overlayContentEl:C}}var hT=`mg-floating-filter-cell`,gT=`mg-floating-filter-cell--active`,_T=`mg-floating-filter-cell__inner`,vT=`mg-floating-filter-control`,yT=`mg-floating-filter-control--readonly`,bT=`mg-floating-filter-input`,xT=`mg-floating-filter-input--readonly`,ST=`mg-floating-filter-button`,CT=`mg-floating-filter-button--active`,wT=`contains`,TT={blank:`空白`,notBlank:`非空白`};function ET(e){return e===`OR`?`或者`:`并且`}function DT(e){if(ri(e.type))return TT[e.type];if(e.type===`inRange`){let t=e.filter?.trim()??``,n=e.filterTo?.trim()??``;return t!==``&&n!==``?`${t} - ${n}`:t||n}return e.filter?.trim()??``}function OT(e){return!e||_r(e)?!1:Yr(e).filter(Jr).length>=2}function kT(e){if(!e||_r(e))return``;let t=Yr(e),n=t.filter(Jr);if(n.length>=2){let[t,r]=n,i=ET(Xr(e));return`${DT(t)} ${i} ${DT(r)}`}let[r]=n.length>0?n:t;return r?(r.type,r.filter??``):``}function AT(e,t){return!(!e||t&&_r(t))}function jT(e,t){return AT(e,t)?!OT(t):!1}function MT(e,t,n){let r=ai(t,n);e.classList.toggle(gT,r);let i=e.querySelector(`.${ST}`);i&&(i.classList.toggle(CT,r),r?i.setAttribute(`aria-pressed`,`true`):i.removeAttribute(`aria-pressed`))}function NT(e,t){let n=Array.isArray(e)?e:[e];for(let e of n){let n=Array.from(e.querySelectorAll(`.${hT}[data-col-id]`));for(let e of n){let n=e.dataset.colId;n&&MT(e,n,t)}}}var PT=class{lanes;floatingRowEl;inputBindings=[];focusedColId=null;constructor(e){this.floatingRowEl=e.floatingRowEl,this.lanes={left:e.floatingLeftLaneEl,center:e.floatingCenterLaneEl,right:e.floatingRightLaneEl}}render(e){this.clearBindings();let t=Mp(e.columnModel,e.centerWindow);this.syncLaneWidths(e.columnModel),this.renderLane(`left`,t.left,e),this.renderLane(`center`,t.center,e),this.renderLane(`right`,t.right,e),this.floatingRowEl.style.width=`${e.columnModel.getTotalWidth()}px`}syncFromFilterModel(e,t){for(let n of this.inputBindings){if(n.colId===this.focusedColId)continue;let r=t.getColumnById(n.colId),i=e[n.colId],a=jT(r?.filterable??!1,i);n.input.readOnly=!a,n.input.classList.toggle(xT,!a),n.input.tabIndex=a?0:-1,n.control.classList.toggle(yT,!a),n.input.value=kT(i)}NT([this.lanes.left,this.lanes.center,this.lanes.right],e)}syncRowLayout(e){this.floatingRowEl.style.width=`${e.getTotalWidth()}px`,this.syncLaneWidths(e)}setFocusedColId(e){this.focusedColId=e}destroy(){this.inputBindings.length=0,this.focusedColId=null;for(let e of Object.values(this.lanes))e.replaceChildren()}clearBindings(){this.inputBindings.length=0}syncLaneWidths(e){this.lanes.left.style.width=`${e.getLeftFixedWidth()}px`,this.lanes.center.style.width=`${e.getCenterTotalWidth()}px`,this.lanes.right.style.width=`${e.getRightFixedWidth()}px`}renderLane(e,n,r){let i=this.lanes[e];i.replaceChildren();for(let e of n){let n=r.columnModel.getColumn(e);if(!n)continue;let a=document.createElement(`div`);a.className=hT,a.dataset.colId=n.colId,t.it(n.colId)?a.classList.add(`mg-floating-filter-cell--index`):t.X(n.colId)&&a.classList.add(`mg-floating-filter-cell--selection`);let o=r.filterModel[n.colId],s=AT(n.filterable,o),c=jT(n.filterable,o);if(n.filterable){let e=document.createElement(`div`);e.className=_T;let t=document.createElement(`div`);if(t.className=vT,s){let e=document.createElement(`input`);e.type=`text`,e.className=bT,e.setAttribute(`aria-label`,`${n.label??n.prop??n.colId} 筛选`),e.value=kT(o),e.readOnly=!c,c||(e.classList.add(xT),t.classList.add(yT),e.tabIndex=-1),c&&e.addEventListener(`input`,()=>{r.onInput(n.colId,e.value)}),e.addEventListener(`focus`,()=>{this.focusedColId=n.colId,r.onFocus?.(n.colId)}),e.addEventListener(`blur`,()=>{this.focusedColId===n.colId&&(this.focusedColId=null),r.onBlur?.(n.colId)}),t.append(e),this.inputBindings.push({colId:n.colId,input:e,control:t})}else{let e=document.createElement(`span`);e.className=`mg-floating-filter-cell__spacer`,e.setAttribute(`aria-hidden`,`true`),t.append(e)}let i=document.createElement(`button`);i.type=`button`,i.className=ST,i.title=`列筛选`,i.setAttribute(`aria-label`,`${n.label??n.prop??n.colId} 列筛选`),i.setAttribute(`aria-haspopup`,`menu`),i.setAttribute(`aria-expanded`,`false`),i.append(gm()),t.append(i),e.append(t),a.append(e)}MT(a,n.colId,r.filterModel),Pp(a,Np(n,r.columnModel),hT),i.appendChild(a)}}};function FT(e,t,n,r){e.style.width=`${r.getLeftFixedWidth()}px`,t.style.width=`${r.getCenterTotalWidth()}px`,n.style.width=`${r.getRightFixedWidth()}px`}function IT(e,t,n,r){Fp(e,r,hT),Fp(t,r,hT),Fp(n,r,hT)}function LT(e,t,n,r=`text`){let i=n[e],a=!0,o=[];if(i&&!_r(i)){let e=Zr(i);e!==void 0&&(a=!1,o=e)}return cw(e,wT,t,n,r,void 0,a,o)}var RT=class{deps;debounceTimers=new Map;constructor(e){this.deps=e}render(e){this.deps.renderer.render({columnModel:this.deps.columnModel,centerWindow:e,filterModel:this.deps.getFilterModel(),onInput:(e,t)=>this.scheduleUpdate(e,t),onFocus:e=>this.deps.renderer.setFocusedColId(e),onBlur:()=>{this.deps.renderer.setFocusedColId(null)}})}syncFromFilterModel(){this.deps.renderer.syncFromFilterModel(this.deps.getFilterModel(),this.deps.columnModel)}syncRowLayout(){this.deps.renderer.syncRowLayout(this.deps.columnModel)}destroy(){this.clearAllDebounce(),this.deps.renderer.destroy()}scheduleUpdate(e,t){let n=this.deps.columnModel.getColumnById(e);if(!n?.filterable)return;let r=this.deps.getFilterModel()[e];if(r&&_r(r))return;let i=this.debounceTimers.get(e);i!=null&&clearTimeout(i),this.debounceTimers.set(e,setTimeout(()=>{this.debounceTimers.delete(e);let r=LT(e,t,this.deps.getFilterModel(),n.filterType??`text`);this.deps.setFilterModel(r)},300))}clearAllDebounce(){for(let e of this.debounceTimers.values())clearTimeout(e);this.debounceTimers.clear()}};function zT(e,t){return Math.max(0,e-t)}function BT(e,t){let n=zT(e,t);return n<=2?0:n}function VT(e,t){return e>t+2}function HT(e,t){return e>t+2}function UT(e,t,n,r){let i=t.getColumn(e);if(!i||i.fixed===`left`||i.fixed===`right`)return null;let a=t.getLeftFixedWidth(),o=t.getRightFixedWidth(),s=a,c=r-o,l=a+i.left-n,u=l+i.width;return l>=s&&u<=c?null:l<s?i.left:a+i.left+i.width-c}function WT(e,t){return Math.max(0,e.getTotalWidth()-t)}function GT(e,t,n=2){return t<=n||e>=t-n}function KT(e,t,n){let r=WT(e,n);return Math.max(0,Math.min(t,r))}function qT(e,t,n,r,i){let a=KT(e,n,r);if(!i)return a===n?null:a;let o=e.getColumnById(t);if(!o||o.fixed!==null)return a===n?null:a;let s=JT(e,t);if(s<0)return a===n?null:a;let c=UT(s,e,a,r);return c!==null&&(a=KT(e,c,r)),a===n?null:a}function JT(e,t){for(let n=0;n<e.getColumnCount();n++)if(e.getColumn(n)?.colId===t)return n;return-1}function YT(e,t){return Math.abs(t-e)>=1}function XT(e,t,n){return e<t+40?-Math.min(1,(t+40-e)/40)*80:e>n-40?Math.min(1,(e-(n-40))/40)*80:0}function ZT(e,t,n){return XT(e,t,n)!==0}function QT(e,t,n,r){return[e+n,t-r]}function $T(e){return e.scrollWidth>e.clientWidth+1}function eE(e,t,n){return n===0?!1:n>0?e+1<=t:e>=1}function tE(e,t){let n=Math.max(0,e.scrollWidth-e.clientWidth);if(t){let e=Math.max(0,t());return n<=0&&e>0?e:Math.min(e,n)}return n}function nE(e,t,n,r,i){let a=XT(e,t,n);return a!==0&&!eE(r,i,a)}function rE(e,t,n,r,i){if(r<=0&&i<=0||n<=t)return null;let[a,o]=QT(t,n,r,i);return e<a?`left`:e>o?`right`:null}function iE(e){return!e.allowCrossLaneColumnMove&&e.pointerFixed!==e.sourceFixed?!1:e.hasDropTarget?e.canMoveToDropTarget:e.pointerFixed===e.sourceFixed}var aE=class{deps;host;drag=null;scrollRaf=null;pointerListeners=null;constructor(e,t){this.deps=e,this.host=t}get rootDoc(){return CS(this.deps.viewportEl)}isActive(){return this.drag!=null}canStart(e,n,r){if(r||!e?.movable||e.hidden||t.it(e.colId)||t.X(e.colId))return!1;let i=Q(n);return!(i?.closest(`.mg-selection-checkbox--header`)||!i?.closest(`.mg-header-cell__column-handle`))}begin(e){this.end(!1);let t=this.deps.columnModel.getColumnById(e.colId);t&&(this.drag={colId:e.colId,sourceCell:e.sourceCell,laneEl:this.resolveHeaderLaneEl(t.fixed??null),dropLaneEl:this.resolveHeaderLaneEl(t.fixed??null),startX:e.clientX,startY:e.clientY,pointerX:e.clientX,active:!1,didMove:!1,lastDropTarget:null,lastLiveMovePointerX:null,ghostOffsetX:0,ghostTop:0,dragDirection:`right`},this.pointerListeners=TS(this.deps.viewportEl,{mousemove:this.handleMove,mouseup:this.handleEnd}))}end(e){let t=this.drag;if(t){this.unbindPointerListeners();try{let n=this.resolveSourceCell(t);this.deps.columnDragController.cleanup(n?.isConnected?n:null,this.deps.headerViewportEl),this.deps.setColumnMoveLiveDragging(!1),this.rootDoc.body.classList.remove(ea,ta),e&&(this.host.setSuppressColumnClick(!0),this.host.setSuppressColumnHandleClick(!0),window.setTimeout(()=>{this.host.setSuppressColumnClick(!1),this.host.setSuppressColumnHandleClick(!1)},0))}finally{this.drag=null,this.scrollRaf!=null&&(cancelAnimationFrame(this.scrollRaf),this.scrollRaf=null)}}}unbindPointerListeners(){this.pointerListeners?.unbind(),this.pointerListeners=null}handleMove=e=>{let t=this.drag;if(!t)return;let n=e.clientX-t.startX,r=e.clientY-t.startY;if(!t.active){if(Math.abs(n)<=5||Math.abs(n)<Math.abs(r))return;t.active=!0,t.didMove=!0,this.rootDoc.body.classList.add(ea),this.deps.suppressMoveWhenColumnDragging()||this.deps.setColumnMoveLiveDragging(!0),this.refreshSourceCell(t);let i=this.resolveSourceCellRect(t),a=this.deps.columnModel.getColumnById(t.colId);t.ghostOffsetX=e.clientX-i.left,t.ghostTop=i.bottom;let o=this.resolveGhostPositionAtPointer(e.clientX,t);this.deps.columnDragController.setColumnMoving(t.colId);let s=this.resolveSourceCell(t);s?.isConnected&&(t.sourceCell=s,this.deps.columnDragController.setSourceHeaderDragging(s,!0)),this.deps.columnDragController.setHeaderViewportDragging(this.deps.headerViewportEl,!0),this.deps.columnDragController.startGhost({label:a?.label??a?.prop??t.colId,width:i.width,height:i.height,left:o.left,top:o.top,mountEl:this.deps.mountEl})}this.updateDragDirection(e.clientX,t);let i=this.resolveGhostPositionAtPointer(e.clientX,t);this.deps.columnDragController.moveGhost(i.left,i.top),t.pointerX=e.clientX,this.shouldSkipRenderAtPointerAtScrollBoundary(e.clientX,t)||this.renderAtPointer(t,e.clientX);let a=this.resolveScrollHost(t),[o,s]=this.getScrollBounds(t),c=XT(t.pointerX,o,s);c!==0&&this.canHostScrollBy(a,c)&&ZT(t.pointerX,o,s)&&this.ensureEdgeScrollLoop()};handleEnd=e=>{let t=this.drag;if(t){if(t.active)if(this.deps.suppressMoveWhenColumnDragging()){let n=this.resolveDropAtClientX(e.clientX,t,this.resolveHitLane(e.clientX,t));n&&this.deps.moveColumn(t.colId,n.globalIndex,!0,n.toFixed)}else this.commitLiveDragOnMouseup(e.clientX,t);this.end(t.didMove)}};commitLiveDragOnMouseup(e,t){if(!t.lastDropTarget){let n=this.resolveDropAtClientX(e,t,this.resolveHitLane(e,t));n?this.deps.moveColumn(t.colId,n.globalIndex,!0,n.toFixed):this.deps.finishColumnMove(t.colId);return}let n=this.resolveDropAtClientX(e,t,this.resolveHitLane(e,t));if((t.lastLiveMovePointerX==null||Math.abs(e-t.lastLiveMovePointerX)>=5)&&n&&!this.isSameDropTarget(n,t.lastDropTarget)){this.deps.moveColumn(t.colId,n.globalIndex,!0,n.toFixed);return}this.deps.finishColumnMove(t.colId)}renderAtPointer(e,t){let n=this.resolveHitLane(t,e),r=this.resolveDropAtClientX(t,e,n),i=this.isColumnDropAllowed(e,r,t);this.setColumnDropForbidden(!i),e.dropLaneEl=this.resolveDropLaneEl(t,r,e.colId,n),this.updateDropIndicator(e,i?r:null),this.deps.suppressMoveWhenColumnDragging()||this.applyLiveMove(e,i?r:null)}resolvePointerLaneFixed(e){let t=this.deps.viewportEl.getBoundingClientRect();return rE(e,t.left,t.right,this.deps.columnModel.getLeftFixedWidth(),this.deps.columnModel.getRightFixedWidth())}isColumnDropAllowed(e,t,n){let r=this.deps.columnModel.getColumnById(e.colId)?.fixed??null,i=this.resolvePointerLaneFixed(n);return iE({allowCrossLaneColumnMove:this.deps.allowCrossLaneColumnMove(),sourceFixed:r,pointerFixed:i,hasDropTarget:t!=null,canMoveToDropTarget:t?xg({columns:this.deps.columnModel.getColumns(),colId:e.colId,toGlobalIndex:t.globalIndex,fixedGroups:this.deps.columnModel.getFixedColumnGroups(),toFixed:t.toFixed,allowCrossLaneColumnMove:this.deps.allowCrossLaneColumnMove()}):!1})}setColumnDropForbidden(e){this.rootDoc.body.classList.toggle(ta,e)}getHeaderLaneElements(){return[{fixed:`left`,el:this.deps.headerLeftLaneEl},{fixed:null,el:this.deps.headerCenterLaneEl},{fixed:`right`,el:this.deps.headerRightLaneEl}]}resolveDropLaneEl(e,t,n,r){if(!this.deps.allowCrossLaneColumnMove()&&n){let e=this.deps.columnModel.getColumnById(n);return this.resolveHeaderLaneEl(e?.fixed??null)}if(t?.toFixed!==void 0)return this.resolveHeaderLaneEl(t.toFixed);if(t){let e=this.deps.columnModel.getColumn(t.globalIndex);if(e)return this.resolveHeaderLaneEl(e.fixed??null)}let i=this.getHeaderLaneElements();return r?r.el:i.find(({el:t})=>{let n=t.getBoundingClientRect();return e>=n.left&&e<=n.right})?.el??this.deps.headerCenterLaneEl}resolveHeaderLaneEl(e){return e===`left`?this.deps.headerLeftLaneEl:e===`right`?this.deps.headerRightLaneEl:this.deps.headerCenterLaneEl}resolveGhostPositionAtPointer(e,t){return{left:e-t.ghostOffsetX,top:t.ghostTop}}updateDragDirection(e,t){let n=Tg(e-t.pointerX,t.dragDirection);n!==t.dragDirection&&(t.lastLiveMovePointerX=null),t.dragDirection=n}constrainDropTargetByDragDirection(e,t){if(!e)return null;let n=this.deps.columnModel.getColumns().findIndex(e=>e.colId===t.colId);return n<0?e:t.dragDirection===`left`&&e.globalIndex>=n||t.dragDirection===`right`&&e.globalIndex<=n?null:e}isSameDropTarget(e,t){return!e||!t?e===t:e.globalIndex===t.globalIndex&&e.toFixed===t.toFixed}getScrollBounds(e){let t=this.resolveScrollHost(e);if(t===this.deps.viewportEl){let e=t.getBoundingClientRect();return QT(e.left,e.right,this.deps.columnModel.getLeftFixedWidth(),this.deps.columnModel.getRightFixedWidth())}let n=t.getBoundingClientRect();return[n.left,n.right]}resolveScrollHost(e){let t=this.deps.columnModel.getColumnById(e.colId);return t?.fixed===`left`?this.deps.headerLeftLaneEl:t?.fixed===`right`?this.deps.headerRightLaneEl:this.deps.viewportEl}resolveHostMaxScrollLeft(e){return tE(e,e===this.deps.viewportEl?()=>WT(this.deps.columnModel,e.clientWidth):void 0)}canHostScrollBy(e,t){return eE(e.scrollLeft,this.resolveHostMaxScrollLeft(e),t)}shouldSkipRenderAtPointerAtScrollBoundary(e,t){let n=this.resolveScrollHost(t),[r,i]=this.getScrollBounds(t);return nE(e,r,i,n.scrollLeft,this.resolveHostMaxScrollLeft(n))}ensureEdgeScrollLoop(){this.scrollRaf??=requestAnimationFrame(this.tickEdgeScroll)}tickEdgeScroll=()=>{let e=this.drag;if(!e?.active){this.scrollRaf=null;return}let t=this.resolveScrollHost(e);if(t!==this.deps.viewportEl&&!$T(t)){this.scrollRaf=null;return}let[n,r]=this.getScrollBounds(e),i=XT(e.pointerX,n,r),a=this.canHostScrollBy(t,i),o=!1;if(i!==0&&a){let n=t.scrollLeft;t===this.deps.viewportEl?this.deps.scrollByHorizontalDelta(i):t.scrollLeft=Math.max(0,Math.min(t.scrollLeft+i,t.scrollWidth-t.clientWidth)),o=YT(n,t.scrollLeft),o&&(e.lastLiveMovePointerX=null,this.renderAtPointer(e,e.pointerX))}if(ZT(e.pointerX,n,r)&&a&&o){this.scrollRaf=requestAnimationFrame(this.tickEdgeScroll);return}this.scrollRaf=null};updateDropIndicator(e,t){if(!t){this.deps.columnDragController.hideDropIndicator();return}let n=e.dropLaneEl,r=n.getBoundingClientRect(),i=(n.closest(`.mg-header-row`)??n.parentElement)?.getBoundingClientRect().top??r.top,a=r.height>0?r.height:32,o=this.deps.columnModel.getColumn(t.globalIndex);if(o){let e=Np(o,this.deps.columnModel),t=o.fixed??null,n=Math.round(t===null?c_(e.left,this.deps.viewportEl,this.deps.columnModel):r.left+e.left);this.deps.columnDragController.showDropIndicator(n,i,a);return}this.deps.columnDragController.showDropIndicator(Math.max(r.left,r.right-2),i,a)}applyLiveMove(e,t){!t||this.isSameDropTarget(t,e.lastDropTarget)||e.lastLiveMovePointerX!=null&&Math.abs(e.pointerX-e.lastLiveMovePointerX)<5||this.deps.moveColumn(e.colId,t.globalIndex,!1,t.toFixed)&&(e.laneEl=this.resolveHeaderLaneEl(this.deps.columnModel.getColumnById(e.colId)?.fixed??null),this.refreshSourceCell(e),e.lastDropTarget=t,e.lastLiveMovePointerX=e.pointerX)}resolveSourceCell(e){let t=this.deps.columnModel.getColumnById(e.colId)?.fixed??null;return this.resolveHeaderLaneEl(t).querySelector(`.mg-header-cell[data-col-id="${e.colId}"]`)}resolveSourceCellRect(e){if(e.sourceCell.isConnected)return e.sourceCell.getBoundingClientRect();let t=this.resolveSourceCell(e);return t?.isConnected?(e.sourceCell=t,t.getBoundingClientRect()):this.resolveSourceCellRectFromModel(e.colId)}resolveSourceCellRectFromModel(e){let t=this.deps.columnModel.getColumnById(e);if(!t)return new DOMRect(0,0,0,0);let n=t.fixed??null,r=this.resolveHeaderLaneEl(n),i=r.getBoundingClientRect(),a=Np(t,this.deps.columnModel),o=Math.round(n===null?c_(a.left,this.deps.viewportEl,this.deps.columnModel):i.left+a.left),s=(r.closest(`.mg-header-row`)??r.parentElement)?.getBoundingClientRect().top??i.top,c=i.height>0?i.height:32;return new DOMRect(o,s,t.width,c)}refreshSourceCell(e){let t=this.resolveSourceCell(e);t&&(e.active&&(e.sourceCell.isConnected&&this.deps.columnDragController.setSourceHeaderDragging(e.sourceCell,!1),this.deps.columnDragController.setSourceHeaderDragging(t,!0)),e.sourceCell=t)}resolvePhysicalHitLane(e){let t=this.getHeaderLaneElements().find(({el:t})=>{let n=t.getBoundingClientRect();return e>=n.left&&e<=n.right});if(t)return t;let n=this.resolvePointerLaneFixed(e);return n===`left`?{fixed:`left`,el:this.deps.headerLeftLaneEl}:n===`right`?{fixed:`right`,el:this.deps.headerRightLaneEl}:{fixed:null,el:this.deps.headerCenterLaneEl}}resolveHitLane(e,t){if(!this.deps.allowCrossLaneColumnMove()){let e=this.deps.columnModel.getColumnById(t.colId)?.fixed??null;return this.getHeaderLaneElements().find(({fixed:t})=>t===e)||{fixed:e,el:t.laneEl}}return this.resolvePhysicalHitLane(e)}resolveLaneSectionX(e,t){if(t.fixed===null)return s_(e,this.deps.viewportEl,this.deps.columnModel);let n=t.el.getBoundingClientRect(),r=t.el.querySelector(`.mg-header-cell[data-col-id]`),i=r?.getAttribute(`data-col-id`),a=i?this.deps.columnModel.getColumnById(i):null;if(r&&a){let t=Np(a,this.deps.columnModel);return e-r.getBoundingClientRect().left+t.left}return e-n.left}resolveDropAtClientX(e,t,n){let r=this.deps.columnModel.getColumns(),i=this.deps.columnModel.getFixedColumnGroups(),a=n.el.getBoundingClientRect(),o=Ng({columns:r,fixedGroups:i,sectionX:this.resolveLaneSectionX(e,n),clientX:e,laneRectLeft:a.left,laneRectRight:a.right,targetFixed:n.fixed,sourceColId:t.colId,dragDirection:t.dragDirection,leftFixedWidth:this.deps.columnModel.getLeftFixedWidth(),centerTotalWidth:this.deps.columnModel.getCenterTotalWidth()}),s=[...n.el.querySelectorAll(`.mg-header-cell[data-col-id]`)].flatMap(e=>{let t=e.getAttribute(`data-col-id`);if(!t)return[];let n=this.host.getColIndex(t);if(n<0)return[];let r=e.getBoundingClientRect();return[{colId:t,globalIndex:n,rectLeft:r.left,rectWidth:r.width}]}),c=Mg({columns:r,fixedGroups:i,clientX:e,laneRectLeft:a.left,laneRectRight:a.right,targetFixed:n.fixed,sourceColId:t.colId,dragDirection:t.dragDirection,laneHeaderCells:s});if(n.fixed===null&&this.deps.viewportEl.scrollLeft>0&&o)return this.constrainDropTargetByDragDirection(o,t);let l=r.findIndex(e=>e.colId===t.colId);return o&&c&&l>=0&&c.globalIndex===l&&o.globalIndex!==l&&xg({columns:r,colId:t.colId,toGlobalIndex:o.globalIndex,fixedGroups:i,toFixed:o.toFixed,allowCrossLaneColumnMove:this.deps.allowCrossLaneColumnMove()})?this.constrainDropTargetByDragDirection(o,t):this.constrainDropTargetByDragDirection(c??o,t)}};function oE(e,t){let n=t.clientX,r=0,i=!1,a=e.rootEl.ownerDocument,o=t=>{if(e.rootEl.classList.toggle(`mg-root--column-resizing`,t),t){a.body.style.cursor=`col-resize`,a.body.style.userSelect=`none`;return}a.body.style.removeProperty(`cursor`),a.body.style.removeProperty(`user-select`)},s=null,c=t=>{i||(i=!0,s?.unbind(),s=null,o(!1),t&&e.onResizeEnd(r))};return o(!0),e.onResizeStart(t.shiftKey),s=TS(e.rootEl,{mousemove:t=>{if(t.buttons===0){c(!0);return}r=t.clientX-n,e.onResizing(r)},mouseup:()=>{c(!0)}}),()=>c(!1)}function sE(e,t){return e}var cE=class{deps;columnResize=null;columnResizeFrame=null;pendingColumnResizeAmount=null;keyboardColumnResize=null;keyboardColumnResizeClearTimeout=null;constructor(e){this.deps=e}isActive(){return this.columnResize!=null}refreshVisualState(){let e=this.columnResize;if(!e)return;let t=SS(this.deps.mountEl).querySelector(`.mg-header-cell[data-col-id="${CSS.escape(e.colId)}"]`);t&&(e.sourceCell=t,this.markActiveCell(t))}canStart(e,t,n){return n||this.columnResize||!e?.resizable?!1:(t instanceof Element?t:t instanceof Text?t.parentElement:null)?.closest(`.mg-header-cell__resize-handle`)!=null}begin(e){this.end(!1);let t=this.deps.columnModel.getColumnById(e.colId);t?.resizable&&(this.deps.columnHandleMenuController.close(),this.columnResize={colId:e.colId,sourceCell:e.sourceCell,startWidth:t.width,shiftKey:e.event.shiftKey,endSession:oE({rootEl:SS(this.deps.mountEl),onResizeStart:()=>{},onResizing:e=>{this.scheduleResize(e)},onResizeEnd:e=>{this.applyResize(e,!0),this.end(!0)}},e.event)},this.markActiveCell(e.sourceCell))}end(e){let t=this.columnResize;t&&(this.columnResizeFrame!=null&&(cancelAnimationFrame(this.columnResizeFrame),this.columnResizeFrame=null),this.pendingColumnResizeAmount=null,this.clearActiveCell(),!e&&t.endSession&&t.endSession(),this.columnResize=null)}tryKeyboardResize(e,n){if(this.columnResize)return!1;let r=this.deps.cellFocusService.getFocusedCell();if(!r||!Tf(r))return!1;let i=r.colId;if(t.it(i)||t.X(i)||!this.deps.columnModel.getColumnById(i)?.resizable)return!1;(!this.keyboardColumnResize||this.keyboardColumnResize.colId!==i)&&(this.keyboardColumnResize={colId:i,multiplier:0}),this.keyboardColumnResize.multiplier+=1;let a=(e===`left`?-1:1)*this.keyboardColumnResize.multiplier,o=this.deps.mountEl.querySelector(`.mg-header-cell[data-col-id="${i}"]`);return o&&this.markActiveCell(o),this.deps.resizeHeaderColumn(i,a,n),!0}handleKeyUp(e){this.keyboardColumnResize&&(e.key===`ArrowLeft`||e.key===`ArrowRight`)&&(this.keyboardColumnResize=null,this.keyboardColumnResizeClearTimeout!=null&&window.clearTimeout(this.keyboardColumnResizeClearTimeout),this.keyboardColumnResizeClearTimeout=window.setTimeout(()=>{this.clearActiveCell(),this.keyboardColumnResizeClearTimeout=null},150))}markActiveCell(e){this.clearActiveCell(),e.setAttribute(`data-column-resize-active`,``),e.classList.add(`mg-header-cell--resizing`)}clearActiveCell(){SS(this.deps.mountEl).querySelectorAll(`.mg-header-cell[data-column-resize-active]`).forEach(e=>{e instanceof HTMLElement&&(e.removeAttribute(`data-column-resize-active`),e.classList.remove(`mg-header-cell--resizing`))})}scheduleResize(e){this.pendingColumnResizeAmount=e,this.columnResizeFrame??=requestAnimationFrame(()=>{this.columnResizeFrame=null;let e=this.pendingColumnResizeAmount;e==null||!this.columnResize||this.applyResize(e,!1)})}applyResize(e,t){let n=this.columnResize;if(!n)return;let r=this.deps.columnModel.getColumnById(n.colId);if(!r)return;let i=sE(e,r.fixed??null),a=n.startWidth+i;this.deps.setColumnWidths([{colId:n.colId,newWidth:a}],n.shiftKey,t)}},lE=class{deps;host;constructor(e,t){this.deps=e,this.host=t}syncSingleCellRangeToFocus(){this.deps.isCellSelectionEnabled?.()&&this.deps.selectFocusedCellRange?.()}applyFocusVisuals(){let e=this.deps.cellFocusService.getFocusedCell();this.syncHeaderFocusVisual(e&&Tf(e)?e.colId:null),this.syncFooterFocusVisual(e&&Ef(e)?e.colId:null),!e||J(e)?this.deps.rowRenderer.setFocusedCell(null):this.deps.rowRenderer.setFocusedCell({rowId:e.rowId,colId:e.colId}),this.deps.syncCellRangeHighlightVisuals?.()}navigateEditableTab(e){let t=this.deps.cellFocusService.getFocusedCell();if(!t)return;let n=this.deps.rowModel.getRowCount(),r=vf(this.deps.columnModel);if(n===0||r.length===0)return;let i=Nf(t,e,n,r,e=>this.deps.rowModel.getRow(e)?.id,e=>this.deps.columnModel.getColumn(e)?.colId,(e,t)=>{let n=this.deps.rowModel.getRow(e),r=this.deps.columnModel.getColumnById(t);return!!(n&&r&&H(r,n,this.deps.getCellDisableContext()))},this.getFocusChromeNavigation());if(!i){this.navigateTab(e);return}this.deps.ensureIndexVisible(i.rowIndex,`middle`),this.deps.ensureColumnVisible(i.colIndex),this.setFocusedCell(i),this.syncSingleCellRangeToFocus(),this.deps.redrawImmediately(),this.startEditingFocusedCell()}keyToFocusDirection(e){switch(e){case`ArrowUp`:return`up`;case`ArrowDown`:return`down`;case`ArrowLeft`:return`left`;case`ArrowRight`:return`right`;default:return null}}navigateFocus(e){let t=this.deps.rowModel.getRowCount(),n=vf(this.deps.columnModel);if(t===0||n.length===0)return;let r=this.deps.cellFocusService.move(e,t,n,e=>this.deps.rowModel.getRow(e)?.id,e=>this.deps.columnModel.getColumn(e)?.colId,this.getFocusChromeNavigation());r&&(J(r)||this.deps.ensureIndexVisible(r.rowIndex,`middle`),this.deps.ensureColumnVisible(r.colIndex),this.setFocusedCell(r))}navigateFocusToEdge(e){let t=this.deps.rowModel.getRowCount(),n=vf(this.deps.columnModel);if(t===0||n.length===0)return;let r=this.deps.cellFocusService.moveToEdge(e,t,n,e=>this.deps.rowModel.getRow(e)?.id,e=>this.deps.columnModel.getColumn(e)?.colId,this.getFocusChromeNavigation());r&&(J(r)||(e===`up`?this.deps.ensureIndexVisible(r.rowIndex,`top`):e===`down`?this.deps.ensureIndexVisible(r.rowIndex,`bottom`):this.deps.ensureIndexVisible(r.rowIndex,`middle`)),this.deps.ensureColumnVisible(r.colIndex),this.setFocusedCell(r))}navigateTab(e){let t=this.deps.rowModel.getRowCount(),n=vf(this.deps.columnModel);if(t===0||n.length===0)return;let r=this.deps.cellFocusService.moveTab(e,t,n,e=>this.deps.rowModel.getRow(e)?.id,e=>this.deps.columnModel.getColumn(e)?.colId,this.getFocusChromeNavigation());r&&(J(r)||this.deps.ensureIndexVisible(r.rowIndex,`middle`),this.deps.ensureColumnVisible(r.colIndex),this.setFocusedCell(r),this.syncSingleCellRangeToFocus())}setFocusedCell(e){let t=this.normalizeSpanFocus(e);if(this.deps.cellFocusService.setFocusedCell(t),this.applyFocusVisuals(),J(t)){let e=this.deps.rowModel.getRow(0);e&&this.emitCellFocused({rowId:t.rowId,colId:t.colId,rowIndex:t.rowIndex,rowNode:e});return}let n=this.deps.rowModel.getRow(t.rowIndex);n&&this.emitCellFocused({rowId:t.rowId,colId:t.colId,rowIndex:t.rowIndex,rowNode:n})}buildCellFocusedPayload(e){let t=this.deps.columnModel.getColumnById(e.colId),n=t?U(e.rowNode,t):e.rowNode.data[e.colId];return{...e,value:n}}emitCellFocused(e){this.deps.eventBus.emit(`cellFocused`,this.buildCellFocusedPayload(e))}normalizeSpanFocus(e){let t=this.deps.cellSpanService();if(!t?.active||J(e))return e;let n=t.normalizePosition(e.rowId,e.colId);if(n.rowId===e.rowId)return e;let r=this.deps.rowModel.getRowIndexById(n.rowId);return r<0?e:{rowId:n.rowId,colId:n.colId,rowIndex:r,colIndex:mS(this.deps.columnModel,n.colId)}}focusCellTarget(e){this.setFocusedCell({rowId:e.rowId,colId:e.colId,rowIndex:e.rowIndex,colIndex:mS(this.deps.columnModel,e.colId)})}toggleIndexFocusFromFocus(){let e=this.deps.cellFocusService.getFocusedCell();return!e||J(e)||!this.host.isIndexColumnEntry(e.colId)?!1:(this.host.applyIndexFocus(e.rowId,e.rowIndex,e.colId,{toggleOnReselect:!0}),!0)}toggleInlineEditorFromFocus(){let e=this.deps.cellFocusService.getFocusedCell();return!e||J(e)?!1:this.toggleInlineToggleAtCell(e.rowId,e.colId,e.rowIndex)}toggleRowSelectionFromFocus(){let e=this.deps.cellFocusService.getFocusedCell();return!e||J(e)||!this.host.isSelectionColumnEntry(e.colId)?!1:(this.host.applyRowSelection(e.rowId,e.rowIndex,e.colId,{toggleOnReselect:!0}),!0)}toggleRowExpandFromFocus(){let e=this.deps.cellFocusService.getFocusedCell();return!e||J(e)||!this.host.isExpandColumnEntry(e.colId)?!1:(this.host.applyRowExpansionToggle(e.rowId,e.rowIndex,e.colId),!0)}toggleRowGroupFromFocus(){let e=this.deps.cellFocusService.getFocusedCell();return!e||J(e)||!this.host.isGroupColumnEntry(e.colId)?!1:(this.host.applyRowGroupingToggle(e.rowId,e.rowIndex,e.colId),!0)}toggleTreeTableFromFocus(){let e=this.deps.cellFocusService.getFocusedCell();return!e||J(e)||!this.host.isTreeColumnEntry(e.colId)?!1:(this.host.applyTreeTableToggle(e.rowId,e.rowIndex,e.colId),!0)}tryMoveFocusedHeaderColumn(e){if(!this.isHeaderNavigationEnabled())return!1;let n=this.deps.cellFocusService.getFocusedCell();if(!n||!Tf(n))return!1;let r=n.colId;if(t.it(r)||t.X(r))return!1;let i=wg({columns:this.deps.columnModel.getColumns(),colId:r,toGlobalIndex:-1,fixedGroups:this.deps.columnModel.getFixedColumnGroups(),direction:e});return i==null||!this.deps.moveColumn(r,i,!0)?!1:(this.setFocusedCell({rowId:n.rowId,colId:r,rowIndex:n.rowIndex,colIndex:i}),!0)}toggleHeaderSortFromFocus(){let e=this.deps.cellFocusService.getFocusedCell();return!e||!Tf(e)||!this.host.canToggleHeaderSort(e.colId)?!1:(this.deps.toggleHeaderSort(e.colId),!0)}toggleHeaderSelectionFromFocus(){let e=this.deps.cellFocusService.getFocusedCell();return!e||!Tf(e)||!this.host.isSelectionColumnEntry(e.colId)||!this.host.isSelectionHeaderMultiple()?!1:(this.host.toggleSelectAllVisibleRows(),!0)}startEditingFocusedCell(){let e=this.deps.cellFocusService.getFocusedCell();if(!e||J(e))return;let n=this.deps.rowModel.getRow(e.rowIndex);if(!n)return;let r=this.deps.mountEl.querySelector(`.mg-row[data-row-id="${e.rowId}"]`);if(!r)return;if(fn(this.deps.editBehavior)){this.deps.tryStartRowEditing({rowId:e.rowId,colId:e.colId,rowIndex:e.rowIndex,rowNode:n,rowElement:r});return}let i=this.deps.columnModel.getColumnById(e.colId);!i||!H(i,n,this.deps.getCellDisableContext())||t.V(i)||this.deps.tryStartCellEditing({rowId:e.rowId,colId:e.colId,rowIndex:e.rowIndex,rowNode:n,rowElement:r})}isHeaderNavigationEnabled(){return this.deps.navigateHeader()}isFooterNavigationEnabled(){return this.deps.showSummary()&&this.deps.navigateFooter()}isInlineToggleClickTarget(e){return of(e)}toggleInlineToggleAtCell(e,n,r){let i=this.deps.columnModel.getColumnById(n);if(!i||!t.V(i)||!af(i.cellEditor))return!1;let a=this.deps.rowModel.getRow(r);if(!a||!H(i,a,this.deps.getCellDisableContext()))return!1;let o=this.deps.mountEl.querySelector(`.mg-row[data-row-id="${e}"] .mg-cell[data-col-id="${n}"]`);if(!o)return!1;let s=i.cellEditor===`switch`?Yd:Jd,c=o.querySelector(`input.${s}`);return!c||c.disabled?!1:(c.checked=!c.checked,c.dispatchEvent(new Event(`change`,{bubbles:!0})),!0)}isGroupOrTreeExpandClickTarget(e){return e instanceof Element?e.closest(`button.mg-cell__group-expand`)!=null||e.closest(`button.mg-cell__tree-expand`)!=null:!1}syncFooterFocusVisual(e){this.deps.mountEl.querySelectorAll(`.mg-footer-cell[data-col-id]`).forEach(t=>{t instanceof HTMLElement&&t.classList.toggle(`mg-footer-cell--focused`,e!==null&&t.dataset.colId===e)})}syncHeaderFocusVisual(e){this.deps.mountEl.querySelectorAll(`.mg-header-cell[data-col-id]`).forEach(t=>{t instanceof HTMLElement&&t.classList.toggle(`mg-header-cell--focused`,e!==null&&t.dataset.colId===e)})}getFocusChromeNavigation(){return{headerEnabled:this.isHeaderNavigationEnabled(),footerEnabled:this.isFooterNavigationEnabled()}}},uE=class{deps;host;drag=null;scrollRaf=null;constructor(e,t){this.deps=e,this.host=t}get rootDoc(){return CS(this.deps.viewportEl)}isActive(){return this.drag!=null}begin(e){this.end();let t=e.kind===`index`?this.deps.indexFocusService:this.deps.selectionService,n=null,r=null;e.ctrlKey&&t?.isMultiple()&&(n=t.isSelected(e.anchorRowId)?`remove`:`add`,r=new Set(t.getSelectedRowIds())),t?.setAnchorIndex(e.rowIndex),this.drag={kind:e.kind,anchorRowIndex:e.rowIndex,anchorRowId:e.anchorRowId,colId:e.colId,startY:e.clientY,moved:!1,pointerY:e.clientY,ctrlRangeMode:n,baselineRowIds:r},e.kind===`selection`&&this.host.clearCellRangesOnRowSelectionInteraction(),this.rootDoc.body.classList.add(`mg-row-drag-selecting`),this.host.setFocusedCell({rowId:e.anchorRowId,colId:e.colId,rowIndex:e.rowIndex,colIndex:this.host.getColIndex(e.colId)}),this.deps.viewportEl.focus(),this.rootDoc.addEventListener(`mousemove`,this.handleMove,!0),this.rootDoc.addEventListener(`mouseup`,this.handleUp,!0)}end(){this.rootDoc.removeEventListener(`mousemove`,this.handleMove,!0),this.rootDoc.removeEventListener(`mouseup`,this.handleUp,!0),this.rootDoc.body.classList.remove(`mg-row-drag-selecting`),this.scrollRaf!=null&&(cancelAnimationFrame(this.scrollRaf),this.scrollRaf=null),this.drag=null}handleMove=e=>{if(!this.drag)return;if(e.buttons===0){this.handleUp();return}this.drag.pointerY=e.clientY,this.updateFromPointer(e.clientX,e.clientY);let t=this.deps.viewportEl.getBoundingClientRect();$y(e.clientY,t.top,t.bottom)&&this.ensureEdgeScrollLoop()};handleUp=()=>{if(!this.drag)return;let e=this.drag;e.moved?this.host.setSuppressColumnClick(!0):e.kind===`index`?this.host.applyIndexFocus(e.anchorRowId,e.anchorRowIndex,e.colId,{toggleOnReselect:!0}):this.host.applyRowSelection(e.anchorRowId,e.anchorRowIndex,e.colId,{toggleOnReselect:!0}),this.end()};updateFromPointer(e,t){if(!this.drag)return;let n=Zy(this.deps.rowModel,this.deps.viewportEl,e,t,()=>this.deps.getLogicalScrollTop());n&&(Math.abs(t-this.drag.startY)>3||n.rowIndex!==this.drag.anchorRowIndex)&&(this.drag.moved=!0,this.applyRange(n.rowIndex),this.deps.ensureIndexVisible(n.rowIndex,`middle`))}ensureEdgeScrollLoop(){this.scrollRaf??=requestAnimationFrame(this.tickEdgeScroll)}tickEdgeScroll=()=>{if(!this.drag){this.scrollRaf=null;return}let e=this.drag,t=this.deps.viewportEl.getBoundingClientRect(),n=Xy(e.pointerY,t.top,t.bottom,this.deps.getRowHeight());if(n!==0&&this.deps.scrollByDelta(n),this.updateFromPointer(t.left+this.deps.viewportEl.clientWidth/2,e.pointerY),$y(e.pointerY,t.top,t.bottom)){this.scrollRaf=requestAnimationFrame(this.tickEdgeScroll);return}this.scrollRaf=null};applyRange(e){if(!this.drag)return;let t=e=>this.deps.rowModel.getRow(e)?.id,n=e=>this.deps.getSelectableRowIdAt(e),r=this.drag,i={rowCount:this.deps.rowModel.getRowCount(),getAllRowIdAt:t};if(r.kind===`index`){if(!this.deps.indexFocusService)return;r.ctrlRangeMode&&r.baselineRowIds?r.ctrlRangeMode===`add`?this.deps.indexFocusService.addRangeToSelection(r.anchorRowIndex,e,t,r.baselineRowIds):this.deps.indexFocusService.removeRangeFromSelection(r.anchorRowIndex,e,t,r.baselineRowIds):this.deps.indexFocusService.selectRangeBetween(r.anchorRowIndex,e,t),this.deps.applyIndexFocusVisuals(),this.deps.emitIndexFocusChanged(this.deps.indexFocusService.getFocusedRowIds()),this.host.syncCellRangeFromIndexFocus?.(e);return}this.deps.selectionService&&(r.ctrlRangeMode&&r.baselineRowIds?r.ctrlRangeMode===`add`?this.deps.selectionService.addRangeToSelection(r.anchorRowIndex,e,n,r.baselineRowIds):this.deps.selectionService.removeRangeFromSelection(r.anchorRowIndex,e,n,r.baselineRowIds,i):this.deps.selectionService.selectRangeBetween(r.anchorRowIndex,e,n,i),this.deps.applySelectionVisuals(),this.deps.emitSelectionChanged(this.deps.selectionService.getSelectedRowIds()))}};function dE(e,t,n,r){if(!n?.active)return r;let i=n.normalizePosition(r.rowId,r.colId);if(i.rowId===r.rowId)return r;let a=e.getRowIndexById(i.rowId);return a<0||t.getColumnById(i.colId)==null?r:{rowId:i.rowId,rowIndex:a,colId:i.colId}}function fE(e,t,n,r){return Xy(e,t,n,r)}function pE(e,t,n){return XT(e,t,n)}function mE(e,t,n){return $y(e,t,n)}function hE(e,t,n){return ZT(e,t,n)}function gE(e,t,n){return mE(t,n.top,n.bottom)||hE(e,n.left,n.right)}function _E(e){return e.fixed??`center`}function vE(e,t,n){if(!n)return!1;let r=_E(e);return r===`right`||r===t}function yE(e,t,n,r){let i=e-t.left,a=n.getLeftFixedWidth(),o=n.getRightFixedWidth(),s=Math.max(0,r-a-o);return i<a?`left`:i>=a+s?`right`:`center`}function bE(e,t,n){let r=n.getBoundingClientRect();return e>=r.left&&e<r.right&&t>=r.top&&t<r.bottom}var xE={left:[`left`,`center`,`right`],center:[`center`,`left`,`right`],right:[`right`,`center`,`left`]};function SE(e,t){let n=e.querySelectorAll?.(`.mg-row[data-row-id]`);if(!n)return null;for(let e of n)if(e instanceof HTMLElement&&e.dataset.rowId===t)return e;return null}function CE(e,t,n,r,i,a){let o=yE(t,a,r,i.clientWidth);for(let i of xE[o]){let a=e.querySelector(`.mg-row__lane--${i}`);if(a instanceof HTMLElement)for(let e of a.querySelectorAll(`.mg-cell[data-col-id]`)){if(!(e instanceof HTMLElement))continue;let i=e.dataset.colId;if(!i||!bE(t,n,e))continue;let a=r.getColumnById(i);if(!(!a||a.hidden)&&vE(a,o,!0))return i}}return null}function wE(e,t,n,r,i){let a=document.elementFromPoint(e,t)?.closest(`.mg-cell`),o=a?.dataset.colId;if(!o||!a)return null;let s=n.getColumnById(o);if(!s||s.hidden)return null;let c=yE(e,i,n,r.clientWidth),l=_E(s);if(vE(s,c,bE(e,t,a)))return o;if(l!==c)return null;if(c===`center`){let t=n.getLeftFixedWidth(),a=n.getRightFixedWidth(),o=n.getCenterTotalWidth(),s=Math.max(0,r.clientWidth-t-a),c=a_(r.scrollLeft,o,s);if(EE(e-i.left,t,o,c))return null}return o}function TE(e,t){return e.filter(e=>_E(e)===t)}function EE(e,t,n,r){return r+(e-t)>=n}function DE(e,t,n,r){let i=e.getDisplayedColumns();if(i.length===0)return null;let a=t.getBoundingClientRect(),o=n-a.left,s=e.getLeftFixedWidth(),c=e.getRightFixedWidth(),l=e.getCenterTotalWidth(),u=Math.max(0,t.clientWidth-s-c),d=yE(n,a,e,t.clientWidth);if(d===`left`){let e=TE(i,`left`);return e.length===0?null:e[n_(e,o)]?.colId??null}if(d===`right`){let e=TE(i,`right`);if(e.length===0)return null;let t=s+l,n=o-s-u;return e[n_(e.map(e=>({...e,left:e.left-t})),n)]?.colId??null}let f=TE(i,`center`);if(f.length===0)return null;let p=a_(r,l,u);return EE(o,s,l,p)?null:f[n_(f,p+(o-s))]?.colId??null}function OE(e,t,n,r,i,a,o){let s=Zy(e,n,r,i,a);if(!s)return null;let c=n.getBoundingClientRect(),l=o(),u=SE(n,s.rowId),d=(u==null?null:CE(u,r,i,t,n,c))??wE(r,i,t,n,c)??DE(t,n,r,l);return d?{rowIndex:s.rowIndex,colId:d}:null}var kE=class{deps;host;drag=null;scrollRaf=null;constructor(e,t){this.deps=e,this.host=t}get rootDoc(){return CS(this.deps.viewportEl)}isActive(){return this.drag!=null}canStart(e,t,n=`replace`){if(!this.deps.isCellSelectionEnabled()||!this.deps.getCellRangeService()||this.deps.isEditing()||this.deps.isCommitting())return!1;if(n===`replace`){if(t.shiftKey||t.ctrlKey||t.metaKey)return!1}else if(t.shiftKey||!t.ctrlKey&&!t.metaKey)return!1;else if(this.deps.getCellRangeService()?.isSuppressMultiRanges())return!1;if(this.deps.isInlineToggleClickTarget(t.target)||this.deps.isGroupOrTreeExpandClickTarget?.(t.target))return!1;let r=t.target?.closest(`.mg-cell`);if(r&&this.deps.isPointerOverCellCommentIndicator(r,t.clientX,t.clientY)||(t.target instanceof Element?t.target:null)?.closest(`.mg-cell__row-resize-handle, .mg-cell__row-drag-handle`))return!1;let i=e.rowNode.rowKind;return _s(e.colId,i)}begin(e){this.end();let t=e.mode??`replace`,n=this.deps.getCellRangeService(),r=t===`append`&&n?n.getRanges():[],i=dE(this.deps.rowModel,this.deps.columnModel,this.deps.getCellSpanService?.()??null,{rowId:e.anchorRowId,rowIndex:e.anchorRowIndex,colId:e.anchorColId});this.drag={mode:t,baseRanges:r,anchorRowIndex:i.rowIndex,anchorColId:i.colId,anchorRowId:i.rowId,startX:e.clientX,startY:e.clientY,moved:!1,pointerX:e.clientX,pointerY:e.clientY},this.rootDoc.body.classList.add(`mg-cell-range-dragging`),this.host.setFocusedCell({rowId:i.rowId,colId:i.colId,rowIndex:i.rowIndex,colIndex:this.host.getColIndex(i.colId)}),this.deps.viewportEl.focus(),this.rootDoc.addEventListener(`mousemove`,this.handleMove,!0),this.rootDoc.addEventListener(`mouseup`,this.handleUp,!0)}end(){this.rootDoc.removeEventListener(`mousemove`,this.handleMove,!0),this.rootDoc.removeEventListener(`mouseup`,this.handleUp,!0),this.rootDoc.body.classList.remove(`mg-cell-range-dragging`),this.scrollRaf!=null&&(cancelAnimationFrame(this.scrollRaf),this.scrollRaf=null),this.drag=null}handleMove=e=>{if(!this.drag)return;if(e.buttons===0){this.handleUp();return}this.drag.pointerX=e.clientX,this.drag.pointerY=e.clientY,this.updateFromPointer(e.clientX,e.clientY);let t=this.deps.viewportEl.getBoundingClientRect();gE(e.clientX,e.clientY,t)&&this.ensureEdgeScrollLoop()};handleUp=()=>{if(!this.drag)return;let e=this.drag;e.moved?this.host.setSuppressColumnClick(!0):e.mode===`append`?this.appendSingleCellRange(e.anchorRowIndex,e.anchorColId):this.applyRange(e.anchorRowIndex,e.anchorColId),this.end()};updateFromPointer(e,t){if(!this.drag)return;let n=OE(this.deps.rowModel,this.deps.columnModel,this.deps.viewportEl,e,t,()=>this.deps.getLogicalScrollTop(),()=>this.deps.getScrollLeft());if(!n)return;let r=this.deps.rowModel.getRow(n.rowIndex),i=r?.rowKind;if(!r||!_s(n.colId,i))return;let a=dE(this.deps.rowModel,this.deps.columnModel,this.deps.getCellSpanService?.()??null,{rowId:r.id,rowIndex:n.rowIndex,colId:n.colId});(Math.abs(e-this.drag.startX)>4||Math.abs(t-this.drag.startY)>4||a.rowIndex!==this.drag.anchorRowIndex||a.colId!==this.drag.anchorColId)&&(this.drag.moved=!0,this.applyRange(a.rowIndex,a.colId))}ensureEdgeScrollLoop(){this.scrollRaf??=requestAnimationFrame(this.tickEdgeScroll)}tickEdgeScroll=()=>{if(!this.drag){this.scrollRaf=null;return}let e=this.drag,t=this.deps.viewportEl.getBoundingClientRect(),n=fE(e.pointerY,t.top,t.bottom,this.deps.getRowHeight()),r=pE(e.pointerX,t.left,t.right);if(n!==0&&this.deps.scrollByDelta(n),r!==0&&this.deps.scrollByHorizontalDelta(r),this.updateFromPointer(e.pointerX,e.pointerY),gE(e.pointerX,e.pointerY,t)){this.scrollRaf=requestAnimationFrame(this.tickEdgeScroll);return}this.scrollRaf=null};applyRange(e,t){let n=this.deps.getCellRangeService();if(!this.drag||!n)return;let r=Ts({rowIndex:this.drag.anchorRowIndex,colId:this.drag.anchorColId},{rowIndex:e,colId:t}),i=this.deps.getCellRangeOperationContext(),a={rowIndex:this.drag.anchorRowIndex,colId:this.drag.anchorColId};(this.drag.mode===`append`?this.commitAppendRange(r,a,i):n.setRanges([r],i,a))&&(this.deps.applyCellRangeVisuals(),this.deps.emitCellSelectionChanged(`ui`))}commitAppendRange(e,t,n){let r=this.deps.getCellRangeService(),i=this.drag;return!r||!i?!1:r.setRanges([...i.baseRanges,e],n,t)}appendSingleCellRange(e,t){let n=this.deps.getCellRangeService(),r=this.drag;if(!n||!r)return;let i={rowIndex:e,colId:t},a=Ts(i,i),o=this.deps.getCellRangeOperationContext();n.addRange(a,o,i)&&(this.deps.applyCellRangeVisuals(),this.deps.emitCellSelectionChanged(`ui`))}},AE=class{deps;drag=null;scrollRaf=null;get rootDoc(){return CS(this.deps.viewportEl)}constructor(e){this.deps=e}isActive(){return this.drag!=null}canStart(){if(this.deps.isCommitting()||!xs(this.deps.getCellSelectionOptions()))return!1;let e=this.deps.getCellRangeService();return!(!e||e.getRanges().length!==1)}begin(e,t){if(!this.canStart())return!1;let n=this.deps.getCellRangeService(),r=this.deps.getCellRangeOperationContext(),i=n.getRanges()[0],a=W(i,r.displayedColIds);return a?(this.end(),this.drag={fixedAnchor:{rowIndex:a.top,colId:a.leftColId},sourceRange:a,previewRange:a,pointerX:e,pointerY:t},this.rootDoc.body.classList.add(`mg-fill-handle-dragging`),this.rootDoc.addEventListener(`mousemove`,this.handleMove,!0),this.rootDoc.addEventListener(`mouseup`,this.handleUp,!0),!0):!1}end(){this.rootDoc.removeEventListener(`mousemove`,this.handleMove,!0),this.rootDoc.removeEventListener(`mouseup`,this.handleUp,!0),this.rootDoc.body.classList.remove(`mg-fill-handle-dragging`),this.scrollRaf!=null&&(cancelAnimationFrame(this.scrollRaf),this.scrollRaf=null),this.drag=null}handleMove=e=>{if(!this.drag)return;if(e.buttons===0){this.handleUp();return}this.drag.pointerX=e.clientX,this.drag.pointerY=e.clientY,this.updateFromPointer(e.clientX,e.clientY);let t=this.deps.viewportEl.getBoundingClientRect();gE(e.clientX,e.clientY,t)&&this.ensureEdgeScrollLoop()};handleUp=()=>{this.drag&&(this.commitFill(),this.deps.emitCellSelectionChanged(`ui`),this.end())};commitFill(){let e=this.drag;if(!e)return;let t=this.getFillOptions();if(!t)return;let n=this.deps.getCellRangeOperationContext(),r=this.deps.getFillWriteService();if(!r)return;let i=iS(e.sourceRange,e.previewRange,n.displayedColIds),a=t.fillReverseStrategy===`clear`?aS(e.sourceRange,e.previewRange,n.displayedColIds):[];(i.length!==0||a.length!==0)&&r.commitFillRange({sourceRange:e.sourceRange,displayedColIds:n.displayedColIds,fillOptions:t,added:i,removed:a})}updateFromPointer(e,t){if(!this.drag)return;let n=OE(this.deps.rowModel,this.deps.columnModel,this.deps.viewportEl,e,t,()=>this.deps.getLogicalScrollTop(),()=>this.deps.getScrollLeft());if(!n)return;let r=this.deps.rowModel.getRow(n.rowIndex);if(!r)return;let i=dE(this.deps.rowModel,this.deps.columnModel,this.deps.getCellSpanService?.()??null,{rowId:r.id,rowIndex:n.rowIndex,colId:n.colId}),a=this.getFillOptions();if(!a)return;let o=this.deps.getCellRangeOperationContext(),s=Xx({fixedAnchor:this.drag.fixedAnchor,pointer:i,sourceRange:this.drag.sourceRange,direction:a.direction,displayedColIds:o.displayedColIds});if(!s)return;let c=this.deps.getCellRangeService();c&&(c.setRanges([Ds(s)],o,c.getAnchor())&&this.deps.applyCellRangeVisuals(),this.drag.previewRange=s)}getFillOptions(){let e=this.deps.getCellSelectionOptions().handle;return!e||e.mode!==`fill`?null:e}ensureEdgeScrollLoop(){this.scrollRaf??=requestAnimationFrame(this.tickEdgeScroll)}tickEdgeScroll=()=>{let e=this.drag;if(!e){this.scrollRaf=null;return}let t=this.deps.viewportEl.getBoundingClientRect(),n=fE(e.pointerY,t.top,t.bottom,this.deps.getRowHeight()),r=pE(e.pointerX,t.left,t.right);if(n!==0&&this.deps.scrollByDelta(n),r!==0&&this.deps.scrollByHorizontalDelta(r),this.updateFromPointer(e.pointerX,e.pointerY),gE(e.pointerX,e.pointerY,t)){this.scrollRaf=requestAnimationFrame(this.tickEdgeScroll);return}this.scrollRaf=null}},jE=class{deps;drag=null;scrollRaf=null;get rootDoc(){return CS(this.deps.viewportEl)}constructor(e){this.deps=e}isActive(){return this.drag!=null}canStart(){if(this.deps.isCommitting()||!Ss(this.deps.getCellSelectionOptions()))return!1;let e=this.deps.getCellRangeService();return!(!e||e.getRanges().length!==1)}begin(e,t){if(!this.canStart())return!1;let n=this.deps.getCellRangeService(),r=this.deps.getCellRangeOperationContext(),i=n.getRanges()[0],a=W(i,r.displayedColIds);if(!a)return!1;let o=n.getAnchor(),s=o??{rowIndex:a.top,colId:a.leftColId};return o||n.setAnchor(s),this.end(),this.drag={fixedAnchor:s,sourceRange:a,pointerX:e,pointerY:t},this.rootDoc.body.classList.add(`mg-range-handle-dragging`),this.rootDoc.addEventListener(`mousemove`,this.handleMove,!0),this.rootDoc.addEventListener(`mouseup`,this.handleUp,!0),!0}end(){this.rootDoc.removeEventListener(`mousemove`,this.handleMove,!0),this.rootDoc.removeEventListener(`mouseup`,this.handleUp,!0),this.rootDoc.body.classList.remove(`mg-range-handle-dragging`),this.scrollRaf!=null&&(cancelAnimationFrame(this.scrollRaf),this.scrollRaf=null),this.drag=null}handleMove=e=>{if(!this.drag)return;if(e.buttons===0){this.handleUp();return}this.drag.pointerX=e.clientX,this.drag.pointerY=e.clientY,this.updateFromPointer(e.clientX,e.clientY);let t=this.deps.viewportEl.getBoundingClientRect();gE(e.clientX,e.clientY,t)&&this.ensureEdgeScrollLoop()};handleUp=()=>{this.drag&&(this.deps.emitCellSelectionChanged(`ui`),this.end())};updateFromPointer(e,t){if(!this.drag)return;let n=OE(this.deps.rowModel,this.deps.columnModel,this.deps.viewportEl,e,t,()=>this.deps.getLogicalScrollTop(),()=>this.deps.getScrollLeft());if(!n)return;let r=this.deps.rowModel.getRow(n.rowIndex);if(!r)return;let i=dE(this.deps.rowModel,this.deps.columnModel,this.deps.getCellSpanService?.()??null,{rowId:r.id,rowIndex:n.rowIndex,colId:n.colId}),a=this.deps.getCellRangeService();if(!a)return;let o=this.deps.getCellRangeOperationContext();a.extendFromAnchor({rowIndex:i.rowIndex,colId:i.colId},o)&&this.deps.applyCellRangeVisuals()}ensureEdgeScrollLoop(){this.scrollRaf??=requestAnimationFrame(this.tickEdgeScroll)}tickEdgeScroll=()=>{let e=this.drag;if(!e){this.scrollRaf=null;return}let t=this.deps.viewportEl.getBoundingClientRect(),n=fE(e.pointerY,t.top,t.bottom,this.deps.getRowHeight()),r=pE(e.pointerX,t.left,t.right);if(n!==0&&this.deps.scrollByDelta(n),r!==0&&this.deps.scrollByHorizontalDelta(r),this.updateFromPointer(e.pointerX,e.pointerY),gE(e.pointerX,e.pointerY,t)){this.scrollRaf=requestAnimationFrame(this.tickEdgeScroll);return}this.scrollRaf=null}},ME=class{deps;constructor(e){this.deps=e}isEligibleDataCell(e,t){return _s(e,t)}normalizeTarget(e){let t=dE(this.deps.rowModel,this.deps.columnModel,this.deps.getCellSpanService?.()??null,{rowId:e.rowId,rowIndex:e.rowIndex,colId:e.colId});if(t.rowId===e.rowId&&t.rowIndex===e.rowIndex&&t.colId===e.colId)return e;let n=this.deps.rowModel.getRow(t.rowIndex)??e.rowNode;return{rowId:t.rowId,rowIndex:t.rowIndex,colId:t.colId,rowNode:n,rowElement:e.rowElement}}normalizePosition(e,t,n){return dE(this.deps.rowModel,this.deps.columnModel,this.deps.getCellSpanService?.()??null,{rowId:e,rowIndex:t,colId:n})}isActive(){return this.deps.isCellSelectionEnabled()&&this.deps.getCellRangeService()!=null}commitRangeChange(e=`ui`){this.deps.applyCellRangeVisuals(),this.deps.emitCellSelectionChanged(e)}clearAllRanges(e=`ui`){return this.deps.getCellRangeService()?.clear()?(this.commitRangeChange(e),!0):!1}tryHeaderColumnSelection(e){if(!this.deps.getCellSelectionOptions?.().enableColumnSelection||!this.isActive()||this.deps.isEditing()||this.deps.isCommitting()||ps(e))return!1;let t=this.deps.rowModel.getRowCount();if(t===0)return!1;let n=this.deps.getCellRangeService();if(!n)return!1;let r=this.deps.getCellRangeOperationContext(),i=js(e,t,r.rowKindAt??(()=>void 0));if(!i)return!1;let a={rowIndex:i.startRowIndex,colId:i.startColId};return!n.setRanges([i],r,a)||!n.hasRanges()?!1:(this.commitRangeChange(),!0)}tryClearOnBlankViewportClick(){return this.isActive()?this.clearAllRanges():!1}tryClearOnPlainClick(e){return this.isActive()?this.setSingleCellRange(e):!1}tryClearOnNonRangeTargetClick(){return!this.isActive()||!this.deps.getCellRangeService()?.hasRanges()?!1:this.clearAllRanges()}selectFocusedCellRange(){if(!this.isActive())return!1;let e=this.deps.cellFocusService.getFocusedCell();if(!e||J(e))return!1;let t=this.deps.rowModel.getRow(e.rowIndex);return t?this.isEligibleDataCell(e.colId,t.rowKind)?this.setSingleCellRange({rowId:t.id,rowIndex:e.rowIndex,colId:e.colId,rowNode:t}):this.tryClearOnNonRangeTargetClick():!1}setSingleCellRange(e,t=`ui`){let n=this.deps.getCellRangeService();if(!n)return!1;let r=this.normalizeTarget(e);if(!this.isEligibleDataCell(r.colId,r.rowNode.rowKind))return!1;let i={rowIndex:r.rowIndex,colId:r.colId},a=Ts(i,i);return n.setRanges([a],this.deps.getCellRangeOperationContext(),i)&&this.commitRangeChange(t),!0}tryHandleModifierMouseDown(e,t){if(!t.shiftKey&&!t.ctrlKey&&!t.metaKey||!this.isActive()||this.deps.isEditing()||this.deps.isCommitting()||!this.isEligibleDataCell(e.colId,e.rowNode.rowKind))return!1;t.preventDefault();let n=this.normalizeTarget(e);return t.shiftKey&&!t.ctrlKey&&!t.metaKey?this.handleShiftClick(n):this.handleCtrlClick(n),!0}handleShiftClick(e){let t=this.deps.getCellRangeService(),n=this.deps.getCellRangeOperationContext(),r=this.deps.cellFocusService.getFocusedCell(),i={rowIndex:e.rowIndex,colId:e.colId};r&&!J(r)?t.extendFocusedRange({rowIndex:r.rowIndex,colId:r.colId},i,n):t.setRanges([Ts(i,i)],n,i),this.commitRangeChange()}handleCtrlClick(e){let t=this.deps.getCellRangeService(),n=this.deps.getCellRangeOperationContext(),r={rowIndex:e.rowIndex,colId:e.colId},i=Ts(r,r);t.isSuppressMultiRanges()?t.setRanges([i],n,r):t.addRange(i,n,r),this.commitRangeChange()}onArrowKey(e,t){if(!this.isActive())return!1;if(!t)return!0;let n=this.deps.cellFocusService.getFocusedCell();if(!n||J(n)||!this.isEligibleDataCell(n.colId,this.deps.rowModel.getRow(n.rowIndex)?.rowKind))return!0;let r=Af(n,e,this.deps.rowModel.getRowCount(),vf(this.deps.columnModel),e=>this.deps.rowModel.getRow(e)?.id,e=>this.deps.columnModel.getColumn(e)?.colId,this.deps.getFocusChromeNavigation());if(!r||J(r))return!0;let i=this.deps.rowModel.getRow(r.rowIndex)?.id;if(!i)return!0;let a=this.normalizePosition(i,r.rowIndex,r.colId);return a.rowIndex===n.rowIndex&&a.colId===n.colId||(this.deps.getCellRangeService().extendFocusedRange({rowIndex:n.rowIndex,colId:n.colId},{rowIndex:a.rowIndex,colId:a.colId},this.deps.getCellRangeOperationContext()),this.commitRangeChange(),!0)}handleDeleteKey(){return!this.isActive()||!this.deps.getCellRangeService()?.hasRanges()||this.deps.isCommitting()?!1:(this.deps.handleCellSelectionDeleteKey?.(),!0)}syncFromIndexFocus(e){if(!this.deps.showIndexColumn?.()||!this.isActive())return!1;let t=this.deps.getCellRangeOperationContext(),n=t.rowKindAt??(()=>void 0),r=Ps({focusedRowIndices:(this.deps.getIndexFocusedRowIds?.()??[]).map(e=>this.deps.rowModel.getRowIndexById(e)).filter(e=>e>=0),displayedColIds:t.displayedColIds,rowKindAt:n,suppressMultiRanges:this.deps.getCellSelectionOptions?.().suppressMultiRanges??!0,currentRowIndex:e}),i=this.deps.getCellRangeService();if(!i)return!1;if(r.length===0)return i.hasRanges()?(i.clear(),this.commitRangeChange(),!0):!1;let a={rowIndex:r[0].startRowIndex,colId:r[0].startColId},o=i.setRanges(r,t,a);return o&&this.commitRangeChange(),o}};function NE(e,t){let n=t.clientY,r=0,i=!1,a=t=>{if(e.rootEl.classList.toggle(`mg-root--row-resizing`,t),t){document.body.style.cursor=`row-resize`,document.body.style.userSelect=`none`;return}document.body.style.removeProperty(`cursor`),document.body.style.removeProperty(`user-select`)},o=t=>{i||(i=!0,document.removeEventListener(`mousemove`,s,!0),document.removeEventListener(`mouseup`,c,!0),a(!1),t&&e.onResizeEnd(r))},s=t=>{if(t.buttons===0){o(!0);return}r=t.clientY-n,e.onResizing(r)},c=()=>{o(!0)};return a(!0),e.onResizeStart(t.shiftKey),document.addEventListener(`mousemove`,s,!0),document.addEventListener(`mouseup`,c,!0),()=>o(!1)}var PE=class{deps;rowResize=null;rowResizeFrame=null;pendingRowResizeAmount=null;constructor(e){this.deps=e}isActive(){return this.rowResize!=null}refreshVisualState(){let e=this.rowResize;if(!e)return;let n=SS(this.deps.mountEl).querySelector(`.mg-row[data-row-id="${CSS.escape(e.rowId)}"] .mg-cell[data-col-id="${CSS.escape(t.tt)}"]`);n&&(e.sourceCell=n,this.markActiveCell(n))}canStart(e,n,r){return r||this.rowResize||!this.deps.indexColumnOptions.showIndexColumn||!this.deps.indexColumnOptions.indexColumn.enableRowResizer||!t.it(e)?!1:Q(n)?.closest(`.${Fa}`)!=null}begin(e){this.end(!1);let t=this.deps.rowModel.getRowById(e.rowId);t&&(this.rowResize={rowId:e.rowId,sourceCell:e.sourceCell,startHeight:t.rowHeight,endSession:NE({rootEl:SS(this.deps.mountEl),onResizeStart:()=>{},onResizing:e=>{this.scheduleResize(e)},onResizeEnd:e=>{this.applyResize(e,!0),this.end(!0)}},e.event)},this.markActiveCell(e.sourceCell))}end(e){let t=this.rowResize;t&&(this.rowResizeFrame!=null&&(cancelAnimationFrame(this.rowResizeFrame),this.rowResizeFrame=null),this.pendingRowResizeAmount=null,this.clearActiveCell(),!e&&t.endSession&&t.endSession(),this.rowResize=null)}markActiveCell(e){this.clearActiveCell(),e.setAttribute(`data-row-resize-active`,``),e.classList.add(Ia)}clearActiveCell(){SS(this.deps.mountEl).querySelectorAll(`.mg-cell[data-row-resize-active]`).forEach(e=>{e instanceof HTMLElement&&(e.removeAttribute(`data-row-resize-active`),e.classList.remove(Ia))})}scheduleResize(e){this.pendingRowResizeAmount=e,this.rowResizeFrame??=requestAnimationFrame(()=>{this.rowResizeFrame=null;let e=this.pendingRowResizeAmount;e==null||!this.rowResize||this.applyResize(e,!1)})}applyResize(e,t){let n=this.rowResize;if(!n)return;let r=n.startHeight+e;this.deps.setRowHeights([{rowId:n.rowId,height:r}],t)}},FE=[`--mg-color-row-drop-indicator`,`--mg-row-drop-indicator-height`,`--mg-row-drop-indicator-z-index`],IE=class{ghostEl=null;indicatorEl=null;sourceCellEl=null;ghostMountEl=document.body;themeSourceEl=null;startGhost(e){this.removeGhost(),e.mountEl&&(this.ghostMountEl=e.mountEl,this.themeSourceEl=e.mountEl.closest(`.magic-grid`)??e.mountEl.closest(`.mg-root`)??e.mountEl);let t=document.createElement(`div`);t.className=`${xa} ${xa}--cell`,t.style.width=`${e.width}px`,t.style.height=`${e.height}px`,t.style.left=`${e.left}px`,t.style.top=`${e.top}px`;let n=document.createElement(`span`);n.className=`${xa}__label`,n.textContent=e.label,t.append(n),this.ghostMountEl.appendChild(t),this.ghostEl=t}moveGhost(e,t){this.ghostEl&&(this.ghostEl.style.left=`${e}px`,this.ghostEl.style.top=`${t}px`)}showDropIndicator(e,t,n){if(!this.indicatorEl){let e=document.createElement(`div`);e.className=ba,this.syncIndicatorTheme(e),document.body.appendChild(e),this.indicatorEl=e}let r=t-this.resolveIndicatorHeight()/2;this.indicatorEl.style.left=`${e}px`,this.indicatorEl.style.top=`${r}px`,this.indicatorEl.style.width=`${Math.max(0,n)}px`,this.indicatorEl.style.display=`block`}hideDropIndicator(){this.indicatorEl&&(this.indicatorEl.style.display=`none`)}setSourceCellDragging(e,t){this.sourceCellEl&&this.sourceCellEl!==e&&this.sourceCellEl.classList.remove(ya),this.sourceCellEl=e,e?.classList.toggle(ya,t)}cleanup(){this.setSourceCellDragging(this.sourceCellEl,!1),this.removeGhost(),this.removeIndicator(),this.themeSourceEl=null,this.ghostMountEl=document.body}destroy(){this.cleanup()}resolveIndicatorHeight(){if(!this.indicatorEl)return 2;let e=this.indicatorEl.style.getPropertyValue(`--mg-row-drop-indicator-height`),t=getComputedStyle(this.indicatorEl).height,n=e||t,r=Number.parseFloat(n);return Number.isFinite(r)&&r>0?r:2}syncIndicatorTheme(e){let t=this.themeSourceEl??this.ghostMountEl.closest(`.magic-grid`)??this.ghostMountEl.closest(`.mg-root`);if(!t)return;let n=getComputedStyle(t);for(let t of FE){let r=n.getPropertyValue(t).trim();r&&e.style.setProperty(t,r)}let r=n.getPropertyValue(`--mg-color-primary`).trim();r&&!e.style.getPropertyValue(`--mg-color-row-drop-indicator`)&&e.style.setProperty(`--mg-color-row-drop-indicator`,r)}removeGhost(){this.ghostEl?.remove(),this.ghostEl=null}removeIndicator(){this.indicatorEl?.remove(),this.indicatorEl=null}},LE=class{deps;drag=null;scrollRaf=null;dragController=new IE;constructor(e){this.deps=e}get rootDoc(){return CS(this.deps.viewportEl)}isActive(){return this.drag!=null}canStart(e,t,n){if(n||this.drag||this.deps.isRowDragCommitting?.()||!this.deps.isRowDragHandleEnabled(e))return!1;let r=Q(t);return r?.closest(`.mg-cell__row-drag-handle`)!=null&&RE(r)}begin(e){this.end(!1);let t=e.sourceCell.closest(`.mg-row`),n=e.sourceCell.dataset.colId;if(!t||!n)return;let r=this.resolveDragRowIds(e.rowId);if(this.deps.isRowGroupingActive?.()&&$u(this.deps.rowModel.getSourceRows(),r)===`mixed`)return;let i=new Map,a=this.deps.rowModel.getSourceRows();for(let e of r){let t=a.findIndex(t=>t.id===e);t>=0&&i.set(e,t)}this.drag={rowId:e.rowId,rowIds:r,sourceRowEl:t,sourceCell:e.sourceCell,sourceColId:n,startX:e.clientX,startY:e.clientY,pointerX:e.clientX,pointerY:e.clientY,ghostOffsetX:0,ghostOffsetY:0,active:!1,didMove:!1,overIndex:-1,lastDropInsertIndex:null,lastNestUnderRowId:null,nestUnderRowId:null,altKey:!1,startSourceIndices:i,startDisplayIndex:this.deps.rowModel.getRowIndexById(e.rowId),startTreePositions:Tb(a,r),startNestUnderRowId:null},this.rootDoc.addEventListener(`mousemove`,this.handleMove),this.rootDoc.addEventListener(`mouseup`,this.handleEnd)}end(e){let t=this.drag;t&&(this.rootDoc.removeEventListener(`mousemove`,this.handleMove),this.rootDoc.removeEventListener(`mouseup`,this.handleEnd),this.dragController.cleanup(),this.deps.setRowMoveLiveDragging(!1),this.rootDoc.body.classList.remove(`mg-row-dragging`,Sa),this.rootDoc.body.style.removeProperty(`cursor`),this.rootDoc.body.style.removeProperty(`user-select`),this.drag=null,this.scrollRaf!=null&&(cancelAnimationFrame(this.scrollRaf),this.scrollRaf=null),!e&&t.didMove&&this.hasDragResultChanged(t,t.nestUnderRowId,!1)&&this.deps.emitRowDragEnd(ja(t.rowId,t.overIndex,!1,t.rowIds)))}handleMove=e=>{let t=this.drag;if(!t)return;let n=e.clientX-t.startX,r=e.clientY-t.startY;if(!t.active){if(Math.abs(r)<=5||Math.abs(r)<Math.abs(n))return;t.active=!0,t.didMove=!0,this.rootDoc.body.classList.add(`mg-row-dragging`),this.rootDoc.body.style.userSelect=`none`,this.canLiveReorder()&&this.deps.setRowMoveLiveDragging(!0);let e=t.sourceCell.getBoundingClientRect();t.ghostOffsetX=t.startX-e.left,t.ghostOffsetY=t.startY-e.top,this.dragController.setSourceCellDragging(t.sourceCell,!0),this.dragController.startGhost({label:zE(t.sourceCell,t.rowId,t.rowIds.length),width:e.width,height:e.height,left:e.left,top:e.top,mountEl:SS(this.deps.mountEl)})}this.dragController.moveGhost(e.clientX-t.ghostOffsetX,e.clientY-t.ghostOffsetY),t.pointerY=e.clientY,t.pointerX=e.clientX,t.altKey=e.altKey,this.renderAtPointer(e.clientX,e.clientY,e.altKey);let i=this.deps.viewportEl.getBoundingClientRect();$y(t.pointerY,i.top,i.bottom)&&this.ensureEdgeScrollLoop()};handleEnd=e=>{let t=this.drag;if(t){if(t.active){let n=this.resolveTreeNestUnderRowId(t.pointerX,t.pointerY,e.altKey,t.rowIds);t.nestUnderRowId=n;let r=t.overIndex>=0&&this.isDropAllowed(t,t.overIndex,n);if(this.isDeferredManagedCommit()){if(r){let e=this.deps.planRowDragMove(this.deps.buildPlanRowDragMoveOptions({rowIds:t.rowIds,leaderRowId:t.rowId,displayInsertIndex:t.overIndex,treeNestUnderRowId:n}));if(e.ok){let i=this.deps.resolveTreeRowDragEndContext?.(t.rowId,t.overIndex,n,r);this.deps.commitDeferredRowDrag({plan:e.plan,rowIds:t.rowIds,sourceColId:t.sourceColId,nestUnderRowId:n,treeContext:i})}}}else{let e=this.hasDragResultChanged(t,n,r);if(e&&this.canLiveReorder()&&t.overIndex>=0&&r&&this.deps.finishRowMoves(t.rowIds,t.startSourceIndices,t.overIndex,t.startTreePositions),e){let e=this.deps.resolveTreeRowDragEndContext?.(t.rowId,t.overIndex,n,r);this.deps.emitRowDragEnd(ja(t.rowId,t.overIndex,!0,t.rowIds,e))}}}this.end(!0)}};renderAtPointer(e,t,n=!1){let r=this.drag;if(!r)return;let i=vb(this.deps.rowModel,this.deps.viewportEl,e,t,this.deps.getLogicalScrollTop);r.overIndex=i;let a=this.resolveTreeNestUnderRowId(e,t,n,r.rowIds);if(r.nestUnderRowId=a,i<0){this.dragController.hideDropIndicator();return}if(!this.isDropAllowed(r,i,a)){this.dragController.hideDropIndicator(),this.setDropForbidden(!0);return}this.setDropForbidden(!1),this.updateDropIndicator(i),this.canLiveReorder()&&this.applyLiveMove(r,i,a)}resolveTreeNestUnderRowId(e,t,n,r){return!this.deps.isTreeActive?.()||this.deps.getTreeDragScope?.()!==`hierarchy`?null:cb({rowModel:this.deps.rowModel,viewportEl:this.deps.viewportEl,clientX:e,clientY:t,getLogicalScrollTop:this.deps.getLogicalScrollTop,altKey:n,movingRowIds:r})}setDropForbidden(e){this.rootDoc.body.classList.toggle(Sa,e)}isDropAllowed(e,t,n){return this.deps.isTreeActive?.()?this.deps.validateTreeDisplayDrop?.(e.rowIds,t,{nestUnderRowId:n})??!1:this.deps.isRowGroupingActive?.()?this.deps.validateGroupedDisplayDrop?.(e.rowIds,t)??!1:!0}updateDropIndicator(e){let t=this.deps.rowModel.getRowCount(),n=this.deps.viewportEl.getBoundingClientRect(),r=Math.min(e,Math.max(0,t-1)),i=e>=t?this.deps.rowModel.getRow(t-1):this.deps.rowModel.getRow(r);if(!i){this.dragController.hideDropIndicator();return}let a=this.deps.viewportEl.querySelector(`.mg-row[data-row-id="${CSS.escape(i.id)}"]`);if(a){let r=a.getBoundingClientRect(),i=e>=t?r.bottom:r.top,o=Math.max(r.left,n.left),s=Math.min(r.right,n.right);this.dragController.showDropIndicator(o,i,s-o);return}let o=this.deps.rowModel.getRowBounds(r);if(!o){this.dragController.hideDropIndicator();return}let s=n.top+o.rowTop-this.deps.getLogicalScrollTop()+(e>=t?o.rowHeight:0);this.dragController.showDropIndicator(n.left,s,n.width)}applyLiveMove(e,t,n){if(t===e.lastDropInsertIndex&&n===e.lastNestUnderRowId)return;let r=bb(t,this.deps.rowModel.getRowCount()),i=this.deps.rowModel.getRowIndexById(e.rowId);if(i>=0&&r===i){e.lastDropInsertIndex=t;return}this.commitRowsMove(e,t,!1,n)&&(e.lastDropInsertIndex=t,e.lastNestUnderRowId=n,this.refreshSourceElements(e))}commitRowsMove(e,t,n,r=null){if(this.deps.isTreeActive?.())return this.deps.moveRows({rowIds:e.rowIds,leaderRowId:e.rowId,toIndex:0,displayInsertIndex:t,treeNestUnderRowId:typeof r==`string`?r:void 0,finished:n},`uiRowDrag`).moved;if(this.deps.isRowGroupingActive?.())return this.deps.moveRows({rowIds:e.rowIds,leaderRowId:e.rowId,toIndex:0,displayInsertIndex:t,finished:n},`uiRowDrag`).moved;let i=this.deps.rowModel.getSortModel().length>0,a=bb(t,this.deps.rowModel.getRowCount()),o=this.deps.rowModel.getRowIndexById(e.rowId);if(o>=0&&a===o)return!1;let s=Ju({sourceRows:this.deps.rowModel.getSourceRows(),displayRows:this.deps.rowModel.rowsToDisplay,sortModelLength:+!!i,filterModelKeyCount:Object.keys(this.deps.rowModel.getFilterModel()).length}),c=Qu(a,s.hasSortOrFilter&&!i?`display`:`source`,s,i);return c!=null&&this.deps.moveRows({rowIds:e.rowIds,leaderRowId:e.rowId,toIndex:c,indexMode:`source`,finished:n},`uiRowDrag`).moved}resolveDragRowIds(e){return this.deps.isIndexFocusMultiple()?Du(this.deps.rowModel.getSourceRows(),e,this.deps.getIndexFocusedRowIds()):[e]}refreshSourceElements(e){let t=this.deps.viewportEl.querySelector(`.mg-row[data-row-id="${CSS.escape(e.rowId)}"]`);if(!t)return;let n=t.querySelector(`.mg-cell[data-col-id="${CSS.escape(e.sourceColId)}"]`);n&&(e.active&&(this.dragController.setSourceCellDragging(e.sourceCell,!1),this.dragController.setSourceCellDragging(n,!0)),e.sourceRowEl=t,e.sourceCell=n)}hasDragResultChanged(e,t,n){return kb({rowIds:e.rowIds,leaderRowId:e.rowId,startSourceIndices:e.startSourceIndices,sourceRows:this.deps.rowModel.getSourceRows(),startTreePositions:e.startTreePositions,managed:this.isManagedRowDragEnabled(),dropInsertIndex:e.overIndex,dropAllowed:n,startDisplayIndex:e.startDisplayIndex,nestUnderRowId:t,startNestUnderRowId:e.startNestUnderRowId,rowCount:this.deps.rowModel.getRowCount()})}isManagedRowDragEnabled(){return this.deps.rowDragManaged&&!Oa(this.deps.hasSortOrFilterActive(),this.deps.rowDragManaged)}isDeferredManagedCommit(){return this.isManagedRowDragEnabled()&&this.deps.deferRowDragCommit}canLiveReorder(){return this.isManagedRowDragEnabled()&&!this.deps.deferRowDragCommit}ensureEdgeScrollLoop(){this.scrollRaf??=requestAnimationFrame(this.tickEdgeScroll)}tickEdgeScroll=()=>{let e=this.drag;if(!e?.active){this.scrollRaf=null;return}let t=this.deps.viewportEl.getBoundingClientRect(),n=Xy(e.pointerY,t.top,t.bottom,this.deps.getRowHeight());if(n!==0&&(this.deps.scrollByDelta(n),this.renderAtPointer(e.pointerX,e.pointerY,e.altKey)),$y(e.pointerY,t.top,t.bottom)){this.scrollRaf=requestAnimationFrame(this.tickEdgeScroll);return}this.scrollRaf=null}};function RE(e){let t=e?.closest(`.mg-row`);return t?!t.classList.contains(`mg-row--group-header`)&&!t.classList.contains(`mg-row--group-footer`):!1}function zE(e,t,n){return n>1?`${n} rows`:BE(e,t)}function BE(e,t){return e.querySelector(`.mg-cell__text:not([hidden])`)?.textContent?.trim()||e.querySelector(`.mg-cell__renderer:not([hidden])`)?.textContent?.trim()||t}var VE=`mg-cell-comment-context-menu__items`,HE=`mg-cell-comment-context-menu__item`,UE=`mg-cell-comment-context-menu__item-label`,WE=`mg-cell-comment-context-menu__item--committing`,GE=`mg-cell-comment-context-menu__loading-icon`,KE={remove:`删除中...`};function qE(e,t,n){let r=gx(e.mountEl??e.anchorEl??null);if(e.anchorEl){let r=_x(e.anchorEl),i=cx(e.anchorEl);return vx(e.anchorEl.getBoundingClientRect(),t,n,r,i)}let i=e.clientX,a=e.clientY;return i+t>window.innerWidth-r&&(i=Math.max(r,window.innerWidth-t-r)),a+n>window.innerHeight-r&&(a=Math.max(r,window.innerHeight-n-r)),{left:i,top:a}}function JE(e){let t=document.createElement(`div`);t.className=jo,t.setAttribute(`role`,`menu`);let n=document.createElement(`div`);n.className=VE;let r=[],i=new Map;for(let t of e.items){let e=document.createElement(`button`);e.type=`button`,e.className=HE,e.dataset.action=t.id,e.disabled=t.disabled===!0,e.setAttribute(`role`,`menuitem`);let a=document.createElement(`span`);a.className=UE,a.textContent=t.label,e.append(a),i.set(t.id,t.label),e.addEventListener(`click`,n=>{n.preventDefault(),n.stopPropagation(),!(e.disabled||s)&&p(t.id,e)}),r.push(e),n.append(e)}t.append(n),(e.mountEl??document.body).append(t);let a=t.getBoundingClientRect(),o=qE(e,a.width,a.height);t.style.position=`fixed`,t.style.left=`${o.left}px`,t.style.top=`${o.top}px`;let s=!1,c=!1,l=e=>{if(s)return;let n=e.target;n instanceof Node&&t.contains(n)||d()},u=e=>{if(e.key===`Escape`){if(s){e.preventDefault();return}e.preventDefault(),d()}};document.addEventListener(`mousedown`,l,!0),document.addEventListener(`keydown`,u,!0);function d(n=!1){c||s&&!n||(c=!0,document.removeEventListener(`mousedown`,l,!0),document.removeEventListener(`keydown`,u,!0),t.remove(),e.onClose?.())}function f(e,n,a){t.classList.toggle(Mo,a),n.classList.toggle(WE,a);for(let e of r)e.disabled=a||e.dataset.disabledInitially===`true`;if(a){h(n),m(n).textContent=KE[e],n.setAttribute(`aria-busy`,`true`);return}for(let e of r){g(e),e.removeAttribute(`aria-busy`);let t=e.dataset.action;t&&(m(e).textContent=i.get(t)??``)}}async function p(t,n){let r=t===`remove`;r&&(s=!0,f(t,n,!0));let i=!1;try{if(await e.onSelect(t)===!1)return;i=!0,s=!1,d()}catch{}finally{!i&&!c&&r&&(s=!1,f(t,n,!1))}}function m(e){return e.querySelector(`.${UE}`)}function h(e){if(e.querySelector(`.mg-cell-comment-context-menu__loading-icon`))return;let t=document.createElement(`span`);t.className=GE,t.setAttribute(`aria-hidden`,`true`),e.prepend(t)}function g(e){e.querySelector(`.${GE}`)?.remove()}for(let e of r)e.disabled&&(e.dataset.disabledInitially=`true`);return{close:d}}function YE(e,t,n,r){return t?r||!e.canView?null:e.canEdit&&!n?`edit`:`view`:e.canCreate?`create`:null}var XE=class{deps;showTimer=null;hideTimer=null;hoverCell=null;contextMenuClose=null;popupHoverListeners=null;bound=!1;constructor(e){this.deps=e}bindListeners(){this.bound||(this.bound=!0,this.deps.viewportEl.addEventListener(`mousemove`,this.handleViewportMouseMove),this.deps.viewportEl.addEventListener(`mouseleave`,this.handleViewportMouseLeave),this.deps.viewportEl.addEventListener(`scroll`,this.handleViewportScroll,!0),this.deps.viewportEl.addEventListener(`contextmenu`,this.handleContextMenu))}unbindListeners(){this.bound&&(this.bound=!1,this.deps.viewportEl.removeEventListener(`mousemove`,this.handleViewportMouseMove),this.deps.viewportEl.removeEventListener(`mouseleave`,this.handleViewportMouseLeave),this.deps.viewportEl.removeEventListener(`scroll`,this.handleViewportScroll,!0),this.deps.viewportEl.removeEventListener(`contextmenu`,this.handleContextMenu),this.closeAll())}destroy(){this.unbindListeners()}closeAll(){this.clearHoverTimers(),this.hoverCell=null,this.contextMenuClose?.(),this.contextMenuClose=null,this.detachPopupHoverListeners(),this.deps.cellCommentService()?.closeEditor()}handleShiftF2(){if(this.isShortcutBlocked())return!1;let e=this.deps.cellCommentService();if(!e?.active)return!1;let t=this.deps.cellFocusService.getFocusedCell();if(!t)return!1;let n=this.resolveCellElement(t.rowId,t.colId);if(!n)return!1;let r=e.hasComment(t.rowId,t.colId),i=e.resolveInteraction(t.rowId,t.colId),a=e.getComment(t.rowId,t.colId),o=this.deps.getOptions(),s=YE(i,r,a?.readOnly===!0,o.suppressCellComments);return s?(this.closeAll(),e.openEditor({rowId:t.rowId,colId:t.colId,anchorEl:n,preferredMode:s,onPopupClose:()=>this.detachPopupHoverListeners()})):!1}handleCellClick(e,t){if(this.deps.getOptions().cellCommentTrigger!==`click`)return!1;let n=this.deps.cellCommentService();if(!n?.active)return!1;let r=this.resolveCellElement(t.rowId,t.colId);if(!r||!ux(r,e.clientX,e.clientY))return!1;let i=n.hasComment(t.rowId,t.colId),a=n.resolveInteraction(t.rowId,t.colId);if(!i)return a.canCreate?(this.closeAll(),n.openEditor({rowId:t.rowId,colId:t.colId,anchorEl:r,preferredMode:`create`,onPopupClose:()=>this.detachPopupHoverListeners()})):!1;if(!a.canView)return!1;let o=n.getOpenEditorCell();if(o?.rowId===t.rowId&&o.colId===t.colId&&n.getPopup().isOpen)return n.closeEditor(),!0;let s=n.getComment(t.rowId,t.colId),c=a.canEdit&&s?.readOnly!==!0?`edit`:`view`;return this.closeAll(),n.openEditor({rowId:t.rowId,colId:t.colId,anchorEl:r,preferredMode:c,onPopupClose:()=>this.detachPopupHoverListeners()})}handleContextMenu=e=>{if(this.isShortcutBlocked())return;let t=this.deps.cellCommentService();if(!t?.active)return;let n=bS(this.deps.rowModel,e.target);if(!n)return;let r=ZE(t.resolveInteraction(n.rowId,n.colId),t.hasComment(n.rowId,n.colId));if(r.length===0)return;e.preventDefault(),e.stopPropagation(),this.closeAll();let i=this.resolveCellElement(n.rowId,n.colId);if(!i)return;let a=JE({clientX:e.clientX,clientY:e.clientY,items:r,mountEl:this.deps.mountEl,anchorEl:i,onSelect:e=>this.handleContextMenuAction(e,n.rowId,n.colId,i,t),onClose:()=>{this.contextMenuClose===a.close&&(this.contextMenuClose=null)}});this.contextMenuClose=a.close};async handleContextMenuAction(e,t,n,r,i){let a=e===`add`?`create`:e===`edit`?`edit`:e===`view`?`view`:null;return e===`remove`?i.setComment(t,n,null,`ui`):a?(i.openEditor({rowId:t,colId:n,anchorEl:r,preferredMode:a,onPopupClose:()=>this.detachPopupHoverListeners()}),!0):!1}handleViewportMouseMove=e=>{let t=this.deps.getOptions();if(t.cellCommentTrigger!==`hover`)return;if(Q(e.target)?.closest(`.mg-cell-comment-popup`)){this.clearHideTimer();return}let n=bS(this.deps.rowModel,e.target),r=this.deps.cellCommentService();if(!n||!r?.active){this.leaveIndicatorHover();return}let i=this.resolveCellElement(n.rowId,n.colId);if(!i||!r.hasComment(n.rowId,n.colId)||!ux(i,e.clientX,e.clientY)){this.leaveIndicatorHover();return}if(!r.resolveInteraction(n.rowId,n.colId).canView){this.leaveIndicatorHover();return}this.clearHideTimer(),(this.hoverCell?.rowId!==n.rowId||this.hoverCell?.colId!==n.colId)&&(this.clearHoverTimers(),this.hoverCell={rowId:n.rowId,colId:n.colId,anchorEl:i}),!(r.getPopup().isOpen||this.showTimer!=null)&&(this.showTimer=setTimeout(()=>{this.openHoverPopup(n.rowId,n.colId,i,r)},t.cellCommentShowDelay))};handleViewportMouseLeave=()=>{this.deps.getOptions().cellCommentTrigger===`hover`&&this.leaveIndicatorHover()};leaveIndicatorHover(){this.scheduleHide(),this.hoverCell=null}clearHideTimer(){this.hideTimer!=null&&(clearTimeout(this.hideTimer),this.hideTimer=null)}handleViewportScroll=()=>{this.syncAfterScroll()};syncAfterScroll(){let e=this.deps.cellCommentService();if(!e?.getPopup().isOpen){this.clearHoverTimers(),this.hoverCell=null;return}let t=e.getOpenEditorCell();if(!t){e.closeEditor();return}let n=this.resolveCellElement(t.rowId,t.colId);if(!n||!this.deps.viewportEl.contains(n)){this.closeAll();return}e.getPopup().updatePosition()}openHoverPopup(e,t,n,r){let i=r.getComment(e,t),a=r.resolveInteraction(e,t),o=i?.readOnly===!0||!a.canEdit?`view`:`edit`;r.openEditor({rowId:e,colId:t,anchorEl:n,preferredMode:o,onPopupClose:()=>{this.detachPopupHoverListeners(),this.scheduleHide()}}),this.attachPopupHoverListeners(r)}attachPopupHoverListeners(e){this.detachPopupHoverListeners();let t=e.getPopup().getRootEl();if(!t)return;let n=()=>{this.clearHoverTimers()},r=()=>{this.scheduleHide()};t.addEventListener(`mouseenter`,n),t.addEventListener(`mouseleave`,r),this.popupHoverListeners=()=>{t.removeEventListener(`mouseenter`,n),t.removeEventListener(`mouseleave`,r)}}detachPopupHoverListeners(){this.popupHoverListeners?.(),this.popupHoverListeners=null}scheduleHide(){this.clearHoverTimers();let e=this.deps.getOptions();this.hideTimer=setTimeout(()=>{let t=this.deps.cellCommentService();if(!t?.getPopup().isOpen){this.hoverCell=null;return}e.cellCommentTrigger===`hover`&&t.closeEditor(),this.hoverCell=null},e.cellCommentHideDelay)}clearHoverTimers(){this.showTimer!=null&&(clearTimeout(this.showTimer),this.showTimer=null),this.hideTimer!=null&&(clearTimeout(this.hideTimer),this.hideTimer=null)}isShortcutBlocked(){return this.deps.isEditing()}resolveCellElement(e,t){let n=this.deps.viewportEl.querySelector(`.mg-row[data-row-id="${CSS.escape(e)}"]`);return n?n.querySelector(`.mg-cell[data-col-id="${CSS.escape(t)}"]`):null}};function ZE(e,t){let n=[];return!t&&e.canCreate&&n.push({id:`add`,label:`添加批注`}),t&&e.canView&&n.push({id:e.canEdit?`edit`:`view`,label:e.canEdit?`编辑批注`:`查看批注`}),t&&e.canDelete&&n.push({id:`remove`,label:`删除批注`}),n}var QE=class{ctx;focusController=null;constructor(e){this.ctx=e}bindFocusController(e){this.focusController=e}get deps(){return this.ctx.deps}getColIndex(e){return mS(this.deps.columnModel,e)}resolveRootEl(){return SS(this.deps.mountEl)}setFocusedCell(e){this.focusController?.setFocusedCell(e)}isIndexColumnEntry(e){return t.it(e)&&this.deps.columnModel.getColumnById(e)!=null}isSelectionColumnEntry(e){return t.X(e)&&this.deps.columnModel.getColumnById(e)!=null&&this.deps.selectionService!=null}isExpandColumnEntry(e){let t=this.deps.columnModel.getColumnById(e);return!t||!this.deps.rowExpansionService?.active?!1:j(t)}isGroupColumnEntry(e){let t=this.deps.columnModel.getColumnById(e);return!t||!this.deps.rowGroupingService?.active?!1:Ee(t)}isTreeColumnEntry(e){let t=this.deps.columnModel.getColumnById(e);return!t||!this.deps.treeTableService?.active?!1:B(t.colId)}isSelectionHeaderMultiple(){return this.deps.selectionService?.isMultiple()??!1}canToggleHeaderSort(e){return this.ctx.isColumnResizing()||this.deps.columnDragController.shouldSuppressSortClick()||t.it(e)||t.X(e)||this.isExpandColumnEntry(e)||this.isGroupColumnEntry(e)||this.isTreeColumnEntry(e)||!this.deps.enableHeaderSortClick()?!1:this.deps.columnModel.getColumnById(e)?.sortable??!1}applyIndexFocus(e,t,n,r={}){!this.deps.indexFocusService||!this.isIndexColumnEntry(n)||(this.deps.indexFocusService.selectRow(e,t,e=>this.deps.rowModel.getRow(e)?.id,r),this.deps.applyIndexFocusVisuals(),this.deps.eventBus.emit(`indexFocusChanged`,{focusedRowIds:this.deps.indexFocusService.getFocusedRowIds()}),this.syncCellRangeFromIndexFocus(t))}syncCellRangeFromIndexFocus(e){this.ctx.cellRangeInteraction.syncFromIndexFocus(e)}clearCellRangesOnRowSelectionInteraction(){this.ctx.cellRangeInteraction.tryClearOnNonRangeTargetClick()}applyRowSelection(e,t,n,r={}){if(!this.deps.selectionService||!this.isSelectionColumnEntry(n))return;this.clearCellRangesOnRowSelectionInteraction();let i=this.deps.rowModel.getRow(t);!i||!this.deps.isRowNodeSelectable(i)||(this.deps.selectionService.selectRow(e,t,e=>this.deps.getSelectableRowIdAt(e),{...r,rangeSelection:r.shiftKey?this.buildSelectionRangeOptions():void 0}),this.deps.handleInteractiveRowSelection?.(e,t),this.deps.applySelectionVisuals(),this.deps.eventBus.emit(`selectionChanged`,{selectedRowIds:this.deps.selectionService.getSelectedRowIds(),source:`ui`}))}applyRowExpansionToggle(e,t,n){if(!this.deps.rowExpansionService?.active||!this.isExpandColumnEntry(n))return;let r=this.deps.rowModel.getRow(t);!r||L(r)||!this.deps.rowExpansionService.isRowMaster(r)||this.deps.rowExpansionService.toggleRow(e,`ui`)}applyRowGroupingToggle(e,t,n){if(!this.deps.rowGroupingService?.active||!this.isGroupColumnEntry(n))return;let r=this.deps.rowModel.getRow(t);if(!r||!Be(r))return;let i=r.sourceGroupId??ze(r.id)??r.groupId;i&&this.deps.rowGroupingService.toggleGroup(i,`ui`)}applyTreeTableToggle(e,t,n){if(!this.deps.treeTableService?.active||!this.isTreeColumnEntry(n))return;let r=this.deps.rowModel.getRow(t),i=this.deps.isTreeNodeExpandable?.(r)??(r!=null&&r.treeLeaf!==!0);if(!(!r||!V(r)||!i)){if(this.deps.requestTreeNodeToggle){this.deps.requestTreeNodeToggle(e,`ui`);return}this.deps.treeTableService.toggleNode(e,`ui`)}}applyTreeHeaderToggle(){let e=this.deps.treeTableService;if(e?.active){if(e.isAllExpandableNodesExpanded()){e.collapseAll();return}e.expandAll(`ui`)}}applyTreeHierarchyShortcut(e,t){this.deps.applyTreeHierarchyShortcut(e,t)}toggleTreeHierarchyMenu(e,t){this.deps.toggleTreeHierarchyMenu(e,t)}closeTreeHierarchyMenu(){this.deps.closeTreeHierarchyMenu()}buildSelectionRangeOptions(){return{rowCount:this.deps.rowModel.getRowCount(),getAllRowIdAt:e=>this.deps.rowModel.getRow(e)?.id}}toggleSelectAllVisibleRows(){if(!this.deps.selectionService)return;let e=this.deps.rowModel.getRowCount();this.deps.selectionService.toggleSelectAllVisibleRows(e,e=>this.deps.getSelectableRowIdAt(e))&&(this.clearCellRangesOnRowSelectionInteraction(),this.deps.applySelectionVisuals(),this.deps.eventBus.emit(`selectionChanged`,{selectedRowIds:this.deps.selectionService.getSelectedRowIds(),source:`ui`}))}clearIndexFocusState(){this.deps.indexFocusService&&this.deps.indexFocusService.getFocusedRowIds().length!==0&&(this.deps.indexFocusService.clear(),this.deps.applyIndexFocusVisuals({syncToSelectionColumn:!1}),this.deps.eventBus.emit(`indexFocusChanged`,{focusedRowIds:this.deps.indexFocusService.getFocusedRowIds()}),this.syncCellRangeFromIndexFocus())}clearIndexFocusIfNeeded(e){this.isIndexColumnEntry(e)||this.clearIndexFocusState()}};function $E(e){let t=Q(e);return!t||!!t.closest([`.mg-header-cell__resize-handle`,`.mg-header-cell__column-handle`,`.mg-header-cell__sort`,`.mg-floating-filter-button`,`.${Tp}`].join(`, `))}var eD=class{ctx;suppressHeaderSortClick=!1;constructor(e){this.ctx=e}handleHeaderMouseDown=e=>{if(e.button!==0)return;let t=yS(this.ctx.deps.columnModel,e.target);if(!t)return;if(_S(e.target)){e.preventDefault(),e.stopPropagation();return}this.ctx.host.clearIndexFocusState();let n=this.ctx.host.isSelectionColumnEntry(t.colId)&&this.ctx.deps.selectionService?.isMultiple(),r=xS(e.target),i=this.ctx.deps.columnModel.getColumnById(t.colId);if(this.ctx.focusController.isHeaderNavigationEnabled()?(e.preventDefault(),e.stopPropagation(),this.ctx.host.canToggleHeaderSort(t.colId)||this.ctx.host.setFocusedCell({rowId:Cf,colId:t.colId,rowIndex:-1,colIndex:t.colIndex}),n&&this.ctx.host.toggleSelectAllVisibleRows(),this.ctx.deps.viewportEl.focus()):n&&(e.preventDefault(),e.stopPropagation(),this.ctx.host.toggleSelectAllVisibleRows()),this.ctx.columnHeaderDragSession.isActive()&&this.ctx.columnHeaderDragSession.end(!1),this.ctx.columnHeaderDragSession.canStart(i,e.target,this.ctx.indexSelectionDragSession.isActive()||this.ctx.columnResizeSession.isActive()||this.ctx.rowResizeSession.isActive())&&r){e.preventDefault(),e.stopPropagation(),this.ctx.deps.clearCellSelection?.(),this.ctx.columnHeaderDragSession.begin({colId:t.colId,sourceCell:r,clientX:e.clientX,clientY:e.clientY});return}if(this.ctx.columnResizeSession.canStart(i,e.target,this.ctx.indexSelectionDragSession.isActive()||this.ctx.columnHeaderDragSession.isActive()||this.ctx.rowResizeSession.isActive())&&r){e.preventDefault(),e.stopPropagation(),this.ctx.columnResizeSession.begin({colId:t.colId,sourceCell:r,event:e});return}if(!this.shouldHeaderClickSortAndSelectColumn(t.colId)&&!$E(e.target)&&this.tryApplyHeaderColumnSelection(t.colId,t.colIndex)){e.preventDefault(),e.stopPropagation(),this.suppressHeaderSortClick=!0;return}};handleHeaderDblClick=e=>{if(e.button!==0||!Q(e.target)?.closest(`.mg-header-cell__resize-handle`))return;let t=yS(this.ctx.deps.columnModel,e.target);if(!t)return;let n=this.ctx.deps.columnModel.getColumnById(t.colId);!n?.resizable||n.suppressAutoSize||(e.preventDefault(),e.stopPropagation(),this.ctx.deps.autoSizeColumn(t.colId,`uiColumnResized`))};handleHeaderClick=e=>{if(e.button!==0)return;if(this.ctx.columnResizeSession.isActive()){e.preventDefault(),e.stopPropagation();return}if(this.suppressHeaderSortClick){this.suppressHeaderSortClick=!1,e.preventDefault(),e.stopPropagation();return}if(Q(e.target)?.closest(`.mg-selection-checkbox--header`))return;let t=yS(this.ctx.deps.columnModel,e.target);if(!t)return;if(_S(e.target)){e.preventDefault(),e.stopPropagation(),this.ctx.host.applyTreeHeaderToggle();return}let n=gS(e.target);if(n){if(this.ctx.getSuppressColumnHandleClick()){this.ctx.setSuppressColumnHandleClick(!1),e.preventDefault(),e.stopPropagation();return}e.preventDefault(),e.stopPropagation(),this.ctx.deps.columnHandleMenuController.toggle({colId:t.colId,handleEl:n});return}if(!this.ctx.host.canToggleHeaderSort(t.colId)){this.ctx.deps.columnDragController.shouldSuppressSortClick()&&(e.preventDefault(),e.stopPropagation());return}e.preventDefault(),e.stopPropagation(),this.ctx.deps.toggleHeaderSort(t.colId),this.shouldHeaderClickSortAndSelectColumn(t.colId)&&this.tryApplyHeaderColumnSelection(t.colId,t.colIndex)};handleFloatingFilterClick=e=>{let t=vS(e.target);if(!t)return;let n=t.closest(`.mg-floating-filter-cell[data-col-id]`)?.dataset.colId;n&&(e.preventDefault(),e.stopPropagation(),this.ctx.deps.columnHandleMenuController.toggle({colId:n,handleEl:t,mode:`filter-only`}))};handleFooterMouseDown=e=>{if(e.button!==0)return;let t=hS(this.ctx.deps.columnModel,e.target);t&&(this.ctx.host.clearIndexFocusState(),this.ctx.focusController.isFooterNavigationEnabled()&&(e.preventDefault(),e.stopPropagation(),this.ctx.host.setFocusedCell({rowId:wf,colId:t.colId,rowIndex:-2,colIndex:t.colIndex}),this.ctx.deps.viewportEl.focus()))};bind(e){e.addEventListener(`mousedown`,this.handleHeaderMouseDown,!0),e.addEventListener(`dblclick`,this.handleHeaderDblClick,!0),e.addEventListener(`click`,this.handleHeaderClick,!0),e.addEventListener(`click`,this.handleFloatingFilterClick,!0),e.addEventListener(`mousedown`,this.handleFooterMouseDown,!0)}unbind(e){e.removeEventListener(`mousedown`,this.handleHeaderMouseDown,!0),e.removeEventListener(`dblclick`,this.handleHeaderDblClick,!0),e.removeEventListener(`click`,this.handleHeaderClick,!0),e.removeEventListener(`click`,this.handleFloatingFilterClick,!0),e.removeEventListener(`mousedown`,this.handleFooterMouseDown,!0)}shouldHeaderClickSortAndSelectColumn(e){return!this.ctx.deps.isCellSelectionEnabled?.()||!this.ctx.deps.getCellSelectionOptions?.().enableColumnSelection?!1:this.ctx.host.canToggleHeaderSort(e)}tryApplyHeaderColumnSelection(e,t){if(!this.ctx.cellRangeInteraction.tryHeaderColumnSelection(e))return!1;let n=this.ctx.deps.rowModel.getRow(0);return n&&this.ctx.host.setFocusedCell({rowId:n.id,colId:e,rowIndex:0,colIndex:t}),!0}},tD=class{ctx;pendingSingleClickGesture=null;clearPendingSingleClickGesture=null;consumedPointerUpCellAction=null;constructor(e){this.ctx=e}handleCellMouseDown=async e=>{if(e.button!==0)return;if(this.clearPendingSingleClickGesture?.(),this.clearPendingSingleClickGesture=null,this.pendingSingleClickGesture=null,this.consumedPointerUpCellAction=null,e.target instanceof Element&&e.target.closest(`.mg-range-handle`)){if(e.preventDefault(),e.stopPropagation(),this.ctx.deps.isCommitting()&&await this.ctx.deps.awaitCommitIdle(),this.ctx.deps.isEditing()&&(await this.ctx.deps.commitEditing(),this.ctx.deps.isEditing()))return;this.ctx.rangeHandleSession.begin(e.clientX,e.clientY);return}if(e.target instanceof Element&&e.target.closest(`.mg-fill-handle`)){if(e.preventDefault(),e.stopPropagation(),this.ctx.deps.isCommitting()&&await this.ctx.deps.awaitCommitIdle(),this.ctx.deps.isEditing()&&(await this.ctx.deps.commitEditing(),this.ctx.deps.isEditing()))return;this.ctx.fillHandleSession.begin(e.clientX,e.clientY);return}if(this.ctx.fillHandleSession.isActive()||this.ctx.rangeHandleSession.isActive()||this.ctx.columnHeaderDragSession.isActive()||this.ctx.columnResizeSession.isActive()||this.ctx.rowResizeSession.isActive()||this.ctx.rowDragSession.isActive())return;let t=bS(this.ctx.deps.rowModel,e.target);if(t&&Ch(e.target)){if(this.ctx.deps.isRowDragCommitting?.())return;if(e.preventDefault(),e.stopPropagation(),this.ctx.host.isTreeColumnEntry(t.colId)){let n=Ch(e.target);n&&this.ctx.host.toggleTreeHierarchyMenu(t.rowId,n)}this.ctx.host.setFocusedCell({rowId:t.rowId,colId:t.colId,rowIndex:t.rowIndex,colIndex:this.ctx.host.getColIndex(t.colId)}),this.ctx.deps.viewportEl.focus({preventScroll:!0});return}if(e.target instanceof Element&&e.target.closest(`.mg-column-settings-menu`)){e.preventDefault(),e.stopPropagation();return}if(t&&!this.ctx.host.isIndexColumnEntry(t.colId)&&this.ctx.host.clearIndexFocusState(),t&&this.ctx.focusController.isGroupOrTreeExpandClickTarget(e.target)){e.preventDefault(),e.stopPropagation(),this.ctx.host.isGroupColumnEntry(t.colId)?this.ctx.host.applyRowGroupingToggle(t.rowId,t.rowIndex,t.colId):this.ctx.host.isTreeColumnEntry(t.colId)&&this.ctx.host.applyTreeTableToggle(t.rowId,t.rowIndex,t.colId),this.ctx.host.setFocusedCell({rowId:t.rowId,colId:t.colId,rowIndex:t.rowIndex,colIndex:this.ctx.host.getColIndex(t.colId)}),this.ctx.deps.viewportEl.focus({preventScroll:!0});return}if(t&&this.ctx.rowResizeSession.canStart(t.colId,e.target,this.ctx.indexSelectionDragSession.isActive()||this.ctx.rowDragSession.isActive())){let n=Q(e.target)?.closest(`.mg-cell`);if(n){e.preventDefault(),e.stopPropagation(),this.ctx.rowResizeSession.begin({rowId:t.rowId,sourceCell:n,event:e});return}}if(t&&this.ctx.rowDragSession.canStart(t.colId,e.target,this.ctx.indexSelectionDragSession.isActive()||this.ctx.columnHeaderDragSession.isActive()||this.ctx.columnResizeSession.isActive())){let n=Q(e.target)?.closest(`.mg-cell`);if(n){e.preventDefault(),e.stopPropagation(),this.ctx.rowDragSession.begin({rowId:t.rowId,sourceCell:n,clientX:e.clientX,clientY:e.clientY});return}}let n=t?this.resolveColumnDragKind(t.colId,e):null;if(t!=null&&n!=null&&!this.ctx.deps.isCommitting()&&!this.ctx.deps.isEditing()&&t&&n){e.preventDefault(),this.emitCellClicked(t),this.ctx.indexSelectionDragSession.begin({kind:n,anchorRowId:t.rowId,colId:t.colId,rowIndex:t.rowIndex,clientY:e.clientY,ctrlKey:e.ctrlKey||e.metaKey});return}let r=!1;if(t&&this.ctx.deps.isCellSelectionEnabled?.()&&!fn(this.ctx.deps.editBehavior)&&this.ctx.deps.isEditing()&&(!this.isSameEditingTarget(t)&&this.shouldSchedulePointerUpWhileEditingSwitch(t,e)&&(this.scheduleSingleClickEditingAfterPointerDown(t),r=!0),!await this.commitEditingForCellRangeInteraction(t,e))||t&&this.tryBeginCellRangeDragFromMouseDown(t,e,`replace`,r)||t&&this.tryBeginCellRangeDragFromMouseDown(t,e,`append`,r))return;if(t&&this.ctx.cellRangeInteraction.tryHandleModifierMouseDown(t,e)){this.emitCellClicked(t),this.ctx.host.clearIndexFocusIfNeeded(t.colId),this.ctx.host.setFocusedCell({rowId:t.rowId,colId:t.colId,rowIndex:t.rowIndex,colIndex:this.ctx.host.getColIndex(t.colId)}),this.ctx.deps.viewportEl.focus({preventScroll:!0});return}this.ctx.deps.isCommitting()&&(e.preventDefault(),await this.ctx.deps.awaitCommitIdle());let i=bS(this.ctx.deps.rowModel,e.target);if(this.ctx.deps.isEditing()){let t=i,n=this.resolveCellTargetUnderPointer(e);if(t&&!this.isSameEditingTarget(t)?i=t:n&&(i=n),i&&this.isSameEditingTarget(i)&&Ud(e.target)||Ud(e.target)&&!i)return}if(this.ctx.deps.isEditing()&&(i&&this.isSameEditingTarget(i)||(i&&(this.scheduleSingleClickEditingAfterPointerDown(i),r=!0),await this.ctx.deps.commitEditing(),this.ctx.deps.isEditing())))return;if(!i){this.ctx.host.clearIndexFocusState(),this.ctx.cellRangeInteraction.tryClearOnBlankViewportClick();return}let{rowId:a,colId:o,rowIndex:s}=i;(this.ctx.host.isExpandColumnEntry(o)||this.ctx.host.isGroupColumnEntry(o)||this.ctx.host.isTreeColumnEntry(o)||this.ctx.host.isSelectionColumnEntry(o)||e.shiftKey||e.ctrlKey||e.metaKey)&&e.preventDefault(),this.emitCellClicked(i),this.ctx.host.isIndexColumnEntry(o)?this.ctx.host.applyIndexFocus(a,s,o,{ctrlKey:e.ctrlKey||e.metaKey,shiftKey:e.shiftKey,toggleOnReselect:!0}):(this.ctx.host.clearIndexFocusIfNeeded(o),this.ctx.host.isExpandColumnEntry(o)?this.ctx.host.applyRowExpansionToggle(a,s,o):this.ctx.host.isSelectionColumnEntry(o)&&this.ctx.host.applyRowSelection(a,s,o,{ctrlKey:e.ctrlKey||e.metaKey,shiftKey:e.shiftKey,toggleOnReselect:!0})),this.ctx.host.setFocusedCell({rowId:a,colId:o,rowIndex:s,colIndex:this.ctx.host.getColIndex(o)}),this.ctx.deps.viewportEl.focus({preventScroll:!0}),!r&&this.isOverlaySingleClickEditableColumn(i)&&this.scheduleSingleClickEditingAfterPointerDown(i)};handleCellClick=async e=>{if(e.button!==0||(this.ctx.deps.isCommitting()&&(e.preventDefault(),await this.ctx.deps.awaitCommitIdle()),e.ctrlKey||e.metaKey||e.shiftKey))return;if(this.ctx.getSuppressColumnClick()){this.ctx.setSuppressColumnClick(!1);return}let t=bS(this.ctx.deps.rowModel,e.target);if(t){if(this.emitRowPointerEvent(`rowClicked`,t),this.ctx.cellRangeInteraction.tryClearOnPlainClick(t),this.ctx.deps.isEditing()){if(fn(this.ctx.deps.editBehavior)&&this.ctx.deps.getEditingRowId()===t.rowId&&t.colId!==this.ctx.deps.getEditingCell()?.colId&&this.ctx.deps.focusRowEditingColumn?.(t.colId))return;if(this.isSameEditingTarget(t))return this.ctx.cellCommentSession?.handleCellClick(e,t),void 0;if(await this.ctx.deps.commitEditing(),this.ctx.deps.isEditing())return}this.ctx.focusController.focusCellTarget(t),!this.ctx.cellCommentSession?.handleCellClick(e,t)&&(this.consumePointerUpCellActionIfMatched(t)||this.maybeStartSingleClickEditing(e,t))}};handleCellDoubleClick=async e=>{if(e.button!==0||(this.ctx.deps.isCommitting()&&(e.preventDefault(),await this.ctx.deps.awaitCommitIdle()),e.ctrlKey||e.metaKey||e.shiftKey))return;let n=bS(this.ctx.deps.rowModel,e.target);if(!n||(this.emitRowPointerEvent(`rowDoubleClicked`,n),this.ctx.deps.isEditing()&&(this.isSameEditingTarget(n)||(await this.ctx.deps.commitEditing(),this.ctx.deps.isEditing()))))return;this.ctx.focusController.focusCellTarget(n);let r=this.ctx.deps.columnModel.getColumnById(n.colId);if(fn(this.ctx.deps.editBehavior)){if(!r||un(r,this.ctx.deps.editType)!==`doubleClick`)return;this.ctx.cellCommentSession?.closeAll(),this.ctx.deps.tryStartRowEditing(n);return}!r||un(r,this.ctx.deps.editType)!==`doubleClick`||t.V(r)||(this.ctx.cellCommentSession?.closeAll(),this.ctx.deps.tryStartCellEditing(n))};bind(e){e.addEventListener(`mousedown`,this.handleCellMouseDown,!0),e.addEventListener(`click`,this.handleCellClick),e.addEventListener(`dblclick`,this.handleCellDoubleClick)}unbind(e){e.removeEventListener(`mousedown`,this.handleCellMouseDown,!0),e.removeEventListener(`click`,this.handleCellClick),e.removeEventListener(`dblclick`,this.handleCellDoubleClick)}tryBeginCellRangeDragFromMouseDown(e,t,n,r){return r||this.shouldSkipCellRangeDragForInlineToggleWhileEditing(e,t)||!this.ctx.cellRangeDragSession.canStart(e,t,n)?!1:(t.preventDefault(),this.ctx.host.clearIndexFocusIfNeeded(e.colId),this.emitCellClicked(e),this.ctx.cellRangeDragSession.begin({anchorRowId:e.rowId,anchorColId:e.colId,anchorRowIndex:e.rowIndex,clientX:t.clientX,clientY:t.clientY,mode:n}),!0)}async commitEditingForCellRangeInteraction(e,t){if(!this.ctx.deps.isEditing()||this.isSameEditingTarget(e))return!0;let n=bS(this.ctx.deps.rowModel,t.target);return n&&this.isSameEditingTarget(n)&&t.target instanceof Element&&Ud(t.target)?!0:(this.ctx.deps.isCommitting()&&await this.ctx.deps.awaitCommitIdle(),await this.ctx.deps.commitEditing(),!this.ctx.deps.isEditing())}resolveCellTargetUnderPointer(e){if(typeof document.elementsFromPoint!=`function`)return null;for(let t of document.elementsFromPoint(e.clientX,e.clientY)){let e=bS(this.ctx.deps.rowModel,t);if(e&&!(this.ctx.deps.isEditing()&&this.isSameEditingTarget(e)))return e}return null}resolveCellTargetByIds(e,t){let n=this.ctx.deps.mountEl.querySelector(`.mg-row[data-row-id="${this.escapeCssAttr(String(e))}"]`);if(!n)return null;let r=n.querySelector(`.mg-cell[data-col-id="${this.escapeCssAttr(t)}"]`);return r?bS(this.ctx.deps.rowModel,r):null}escapeCssAttr(e){return typeof CSS<`u`&&typeof CSS.escape==`function`?CSS.escape(e):e.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`)}async completeSingleClickEditingGesture(e,n,r){if(e.button!==0)return;this.ctx.deps.isCommitting()&&await this.ctx.deps.awaitCommitIdle();let i=this.resolveAnchoredCellTargetAtPointer(e,n,r)??this.resolveCellTargetByIds(n,r);if(!i)return;this.ctx.deps.isEditing()&&!this.isSameEditingTarget(i)&&await this.ctx.deps.commitEditing();let a=this.ctx.deps.columnModel.getColumnById(i.colId);if(a&&t.V(a)&&af(a.cellEditor)&&H(a,i.rowNode)){this.ctx.focusController.focusCellTarget(i),this.ctx.focusController.isInlineToggleClickTarget(e.target)||this.ctx.focusController.toggleInlineToggleAtCell(i.rowId,i.colId,i.rowIndex),this.markPointerUpCellActionConsumed(i);return}this.ctx.focusController.focusCellTarget(i),this.maybeStartSingleClickEditing(e,i),this.markPointerUpCellActionConsumed(i)}resolveAnchoredCellTargetAtPointer(e,t,n){let r=String(t);if(typeof document.elementsFromPoint==`function`)for(let t of document.elementsFromPoint(e.clientX,e.clientY)){let e=bS(this.ctx.deps.rowModel,t);if(e&&String(e.rowId)===r&&e.colId===n)return e}let i=bS(this.ctx.deps.rowModel,e.target);return i&&String(i.rowId)===r&&i.colId===n?i:null}scheduleSingleClickEditingAfterPointerDown(e){this.clearPendingSingleClickGesture?.();let t=Symbol(`single-click-edit`);this.pendingSingleClickGesture=t;let n=e.rowId,r=e.colId,i=CS(this.ctx.deps.viewportEl),a=e=>{this.pendingSingleClickGesture===t&&e.button===0&&(this.pendingSingleClickGesture=null,this.clearPendingSingleClickGesture=null,i.removeEventListener(`mouseup`,a,!0),i.removeEventListener(`pointerup`,a,!0),this.completeSingleClickEditingGesture(e,n,r))};i.addEventListener(`mouseup`,a,{capture:!0}),i.addEventListener(`pointerup`,a,{capture:!0}),this.clearPendingSingleClickGesture=()=>{i.removeEventListener(`mouseup`,a,!0),i.removeEventListener(`pointerup`,a,!0)}}shouldSchedulePointerUpWhileEditingSwitch(e,t){return this.isOverlaySingleClickEditableColumn(e)||this.shouldSkipCellRangeDragForInlineToggleWhileEditing(e,t)}isOverlaySingleClickEditableColumn(e){if(fn(this.ctx.deps.editBehavior))return!1;let n=this.ctx.deps.columnModel.getColumnById(e.colId);return!n||t.V(n)||un(n,this.ctx.deps.editType)!==`singleClick`?!1:H(n,e.rowNode)}shouldSkipCellRangeDragForInlineToggleWhileEditing(e,n){if(!this.ctx.deps.isEditing()||n.shiftKey||n.ctrlKey||n.metaKey||this.ctx.focusController.isInlineToggleClickTarget(n.target))return!1;let r=this.ctx.deps.columnModel.getColumnById(e.colId);return!r||!t.V(r)||!af(r.cellEditor)?!1:H(r,e.rowNode)}markPointerUpCellActionConsumed(e){this.consumedPointerUpCellAction={rowId:String(e.rowId),colId:e.colId}}consumePointerUpCellActionIfMatched(e){let t=this.consumedPointerUpCellAction;return!t||String(e.rowId)!==t.rowId||e.colId!==t.colId?!1:(this.consumedPointerUpCellAction=null,!0)}maybeStartSingleClickEditing(e,n){if(e.ctrlKey||e.metaKey||e.shiftKey||this.ctx.deps.isEditing()&&(fn(this.ctx.deps.editBehavior)&&this.ctx.deps.getEditingRowId()===n.rowId&&n.colId!==this.ctx.deps.getEditingCell()?.colId&&this.ctx.deps.focusRowEditingColumn?.(n.colId)||this.isSameEditingTarget(n)))return;if(fn(this.ctx.deps.editBehavior)){let e=this.ctx.deps.columnModel.getColumnById(n.colId);if(!e||un(e,this.ctx.deps.editType)!==`singleClick`)return;this.ctx.cellCommentSession?.closeAll(),this.ctx.deps.tryStartRowEditing(n);return}let r=this.ctx.deps.columnModel.getColumnById(n.colId);if(r){if(t.V(r)){(r.cellEditor===`checkbox`||r.cellEditor===`switch`)&&!this.ctx.focusController.isInlineToggleClickTarget(e.target)&&this.ctx.focusController.toggleInlineToggleAtCell(n.rowId,n.colId,n.rowIndex);return}un(r,this.ctx.deps.editType)===`singleClick`&&(this.ctx.cellCommentSession?.closeAll(),this.ctx.deps.tryStartCellEditing(n))}}isSameEditingTarget(e){if(!this.ctx.deps.isEditing())return!1;if(fn(this.ctx.deps.editBehavior))return this.ctx.deps.getEditingRowId()===e.rowId;let t=this.ctx.deps.getEditingCell();return t?.rowId===e.rowId&&t?.colId===e.colId}buildCellClickedPayload(e){let t=this.ctx.deps.columnModel.getColumnById(e.colId),n=t?U(e.rowNode,t):e.rowNode.data[e.colId];return{rowId:e.rowId,colId:e.colId,rowIndex:e.rowIndex,rowNode:e.rowNode,value:n}}emitCellClicked(e){this.ctx.deps.eventBus.emit(`cellClicked`,this.buildCellClickedPayload(e))}emitRowPointerEvent(e,t){z(t.rowNode)&&this.ctx.deps.eventBus.emit(e,{rowId:t.rowId,colId:t.colId,rowIndex:t.rowIndex,rowNode:t.rowNode})}resolveColumnDragKind(e,t){if(t.shiftKey)return null;let n=Q(t.target);return n?.closest(`.mg-cell__row-resize-handle`)||n?.closest(`.mg-cell__row-drag-handle`)?null:this.ctx.host.isIndexColumnEntry(e)&&this.ctx.deps.indexFocusService?.isMultiple()?`index`:this.ctx.host.isSelectionColumnEntry(e)&&this.ctx.deps.selectionService?.isMultiple()?`selection`:null}},nD=class{ctx;constructor(e){this.ctx=e}handleViewportKeyDown=e=>{if(e.key===`Escape`&&this.ctx.deps.isCommitting()){e.preventDefault(),this.ctx.deps.cancelCommit();return}if(this.ctx.deps.isEditing())return;if(e.key===`F2`&&e.shiftKey){this.ctx.cellCommentSession?.handleShiftF2()&&e.preventDefault();return}let t=this.ctx.focusController.keyToFocusDirection(e.key);if(t){if(e.preventDefault(),e.altKey&&(t===`left`||t===`right`)&&this.ctx.columnResizeSession.tryKeyboardResize(t,e.shiftKey)||e.shiftKey&&(t===`left`||t===`right`)&&this.ctx.focusController.tryMoveFocusedHeaderColumn(t))return;let n=this.ctx.cellRangeInteraction.onArrowKey(t,e.shiftKey);e.ctrlKey||e.metaKey?this.ctx.focusController.navigateFocusToEdge(t):this.ctx.focusController.navigateFocus(t),n&&!e.shiftKey&&this.ctx.cellRangeInteraction.selectFocusedCellRange();return}if(e.key===`Delete`||e.key===`Backspace`){this.ctx.cellRangeInteraction.handleDeleteKey()&&e.preventDefault();return}if((e.ctrlKey||e.metaKey)&&!e.shiftKey&&!e.altKey&&e.key.toLowerCase()===`c`){this.ctx.deps.copyCellSelectionToClipboard?.()&&e.preventDefault();return}if((e.ctrlKey||e.metaKey)&&!e.shiftKey&&!e.altKey&&e.key.toLowerCase()===`v`){this.ctx.deps.isCellSelectionEnabled?.()&&this.ctx.deps.getCellSelectionOptions?.().enableCellPaste&&(e.preventDefault(),this.ctx.deps.pasteCellSelectionFromClipboard?.());return}if(e.key===`Enter`){if(e.preventDefault(),this.ctx.focusController.toggleHeaderSortFromFocus()||this.ctx.focusController.toggleHeaderSelectionFromFocus()||this.ctx.focusController.toggleIndexFocusFromFocus()||this.ctx.focusController.toggleRowExpandFromFocus()||this.ctx.focusController.toggleRowGroupFromFocus()||this.ctx.focusController.toggleTreeTableFromFocus()||this.ctx.focusController.toggleRowSelectionFromFocus())return;this.ctx.cellCommentSession?.closeAll(),this.ctx.focusController.startEditingFocusedCell();return}if(e.key===` `||e.code===`Space`){if(e.preventDefault(),this.ctx.focusController.toggleHeaderSortFromFocus()||this.ctx.focusController.toggleHeaderSelectionFromFocus()||this.ctx.focusController.toggleIndexFocusFromFocus()||this.ctx.focusController.toggleInlineEditorFromFocus()||this.ctx.focusController.toggleRowExpandFromFocus()||this.ctx.focusController.toggleRowGroupFromFocus()||this.ctx.focusController.toggleTreeTableFromFocus())return;this.ctx.focusController.toggleRowSelectionFromFocus();return}e.key===`Tab`&&(e.preventDefault(),this.ctx.focusController.navigateEditableTab(e.shiftKey))};handleViewportKeyUp=e=>{this.ctx.columnResizeSession.handleKeyUp(e)};handleMountWheel=e=>{(e.ctrlKey||e.metaKey)&&e.preventDefault()};bind(e,t){e.addEventListener(`wheel`,this.handleMountWheel,{passive:!1,capture:!0}),t.addEventListener(`keydown`,this.handleViewportKeyDown),t.addEventListener(`keyup`,this.handleViewportKeyUp)}unbind(e,t){e.removeEventListener(`wheel`,this.handleMountWheel,!0),t.removeEventListener(`keydown`,this.handleViewportKeyDown),t.removeEventListener(`keyup`,this.handleViewportKeyUp)}};function rD(e){return e.getCellRangeOperationContext??(()=>({displayedColIds:e.columnModel.getDisplayedColumnIdsInLaneOrder()}))}function iD(e){return e.getCellSelectionOptions??(()=>({enabled:!1,suppressMultiRanges:!0,enableColumnSelection:!1,enableCellCopy:!1,enableCellPaste:!1,handle:null}))}function aD(e,t){return{getColIndex:t=>e.getColIndex(t),resolveRootEl:()=>e.resolveRootEl(),setFocusedCell:t=>e.setFocusedCell(t),setSuppressColumnClick:e=>t.setSuppressColumnClick(e),setSuppressColumnHandleClick:e=>t.setSuppressColumnHandleClick(e),isIndexColumnEntry:t=>e.isIndexColumnEntry(t),isSelectionColumnEntry:t=>e.isSelectionColumnEntry(t),applyIndexFocus:(t,n,r,i)=>e.applyIndexFocus(t,n,r,i),applyRowSelection:(t,n,r,i)=>e.applyRowSelection(t,n,r,i),clearCellRangesOnRowSelectionInteraction:()=>e.clearCellRangesOnRowSelectionInteraction(),applyRowExpansionToggle:(t,n,r)=>e.applyRowExpansionToggle(t,n,r),applyRowGroupingToggle:(t,n,r)=>e.applyRowGroupingToggle(t,n,r),applyTreeTableToggle:(t,n,r)=>e.applyTreeTableToggle(t,n,r),applyTreeHierarchyShortcut:(t,n)=>e.applyTreeHierarchyShortcut(t,n),toggleTreeHierarchyMenu:(t,n)=>e.toggleTreeHierarchyMenu(t,n),closeTreeHierarchyMenu:()=>e.closeTreeHierarchyMenu(),syncCellRangeFromIndexFocus:t=>e.syncCellRangeFromIndexFocus(t),isExpandColumnEntry:t=>e.isExpandColumnEntry(t),isGroupColumnEntry:t=>e.isGroupColumnEntry(t),isTreeColumnEntry:t=>e.isTreeColumnEntry(t),buildSelectionRangeOptions:()=>e.buildSelectionRangeOptions()}}var oD=class{deps;suppressColumnClick=!1;suppressColumnHandleClick=!1;sessionHost;hostActions;focusController;columnResizeSession;columnHeaderDragSession;indexSelectionDragSession;cellRangeDragSession;fillHandleSession;rangeHandleSession;cellRangeInteraction;rowResizeSession;rowDragSession;cellCommentSession;overflowTooltipSession;headerHandlers;cellBodyHandlers;keyboardHandlers;constructor(e){this.deps=e,this.columnResizeSession=new cE({mountEl:e.mountEl,columnModel:e.columnModel,columnHandleMenuController:e.columnHandleMenuController,cellFocusService:e.cellFocusService,setColumnWidths:e.setColumnWidths,resizeHeaderColumn:e.resizeHeaderColumn});let t=rD(e),n=iD(e);this.cellRangeInteraction=new ME({getCellRangeService:e.getCellRangeService??(()=>null),cellFocusService:e.cellFocusService,columnModel:e.columnModel,rowModel:e.rowModel,getCellSpanService:()=>e.cellSpanService,isCellSelectionEnabled:e.isCellSelectionEnabled??(()=>!1),getCellSelectionOptions:e.getCellSelectionOptions,getCellRangeOperationContext:t,applyCellRangeVisuals:e.applyCellRangeVisuals??(()=>{}),emitCellSelectionChanged:e.emitCellSelectionChanged??(()=>{}),handleCellSelectionDeleteKey:e.handleCellSelectionDeleteKey,getFocusChromeNavigation:()=>({headerEnabled:e.navigateHeader(),footerEnabled:e.navigateFooter()&&e.showSummary()}),isEditing:e.isEditing,isCommitting:e.isCommitting,showIndexColumn:()=>e.indexColumnOptions.showIndexColumn,getIndexFocusedRowIds:()=>e.indexFocusService?.getFocusedRowIds()??[]}),this.hostActions=new QE({deps:e,cellRangeInteraction:this.cellRangeInteraction,isColumnResizing:()=>this.columnResizeSession.isActive()}),this.focusController=new lE({mountEl:e.mountEl,rowModel:e.rowModel,columnModel:e.columnModel,rowRenderer:e.rowRenderer,eventBus:e.eventBus,cellFocusService:e.cellFocusService,editBehavior:e.editBehavior,editType:e.editType,ensureIndexVisible:e.ensureIndexVisible,ensureColumnVisible:e.ensureColumnVisible,redrawImmediately:e.redrawImmediately,tryStartCellEditing:e.tryStartCellEditing,tryStartRowEditing:e.tryStartRowEditing,navigateHeader:e.navigateHeader,navigateFooter:e.navigateFooter,showSummary:e.showSummary,cellSpanService:()=>e.cellSpanService,getCellDisableContext:e.getCellDisableContext,toggleHeaderSort:e.toggleHeaderSort,moveColumn:e.moveColumn,syncCellRangeHighlightVisuals:e.applyCellRangeVisuals??(()=>{}),isCellSelectionEnabled:e.isCellSelectionEnabled??(()=>!1),selectFocusedCellRange:()=>this.cellRangeInteraction.selectFocusedCellRange()},this.hostActions),this.hostActions.bindFocusController(this.focusController),this.sessionHost=aD(this.hostActions,{getSuppressColumnClick:()=>this.suppressColumnClick,setSuppressColumnClick:e=>{this.suppressColumnClick=e},getSuppressColumnHandleClick:()=>this.suppressColumnHandleClick,setSuppressColumnHandleClick:e=>{this.suppressColumnHandleClick=e}}),this.columnHeaderDragSession=new aE({mountEl:e.mountEl,viewportEl:e.viewportEl,headerViewportEl:e.headerViewportEl,headerLeftLaneEl:e.headerLeftLaneEl,headerCenterLaneEl:e.headerCenterLaneEl,headerRightLaneEl:e.headerRightLaneEl,columnModel:e.columnModel,columnDragController:e.columnDragController,moveColumn:e.moveColumn,finishColumnMove:e.finishColumnMove,suppressMoveWhenColumnDragging:e.suppressMoveWhenColumnDragging,setColumnMoveLiveDragging:e.setColumnMoveLiveDragging,allowCrossLaneColumnMove:e.allowCrossLaneColumnMove,scrollByHorizontalDelta:e.scrollByHorizontalDelta},this.sessionHost),this.indexSelectionDragSession=new uE({viewportEl:e.viewportEl,rowModel:e.rowModel,indexFocusService:e.indexFocusService,selectionService:e.selectionService,getLogicalScrollTop:e.getLogicalScrollTop,getRowHeight:e.getRowHeight,scrollByDelta:e.scrollByDelta,ensureIndexVisible:e.ensureIndexVisible,getSelectableRowIdAt:e.getSelectableRowIdAt,applyIndexFocusVisuals:e.applyIndexFocusVisuals,applySelectionVisuals:e.applySelectionVisuals,emitIndexFocusChanged:t=>{e.eventBus.emit(`indexFocusChanged`,{focusedRowIds:t})},emitSelectionChanged:t=>{e.eventBus.emit(`selectionChanged`,{selectedRowIds:t,source:`ui`})}},this.sessionHost),this.cellRangeDragSession=new kE({viewportEl:e.viewportEl,rowModel:e.rowModel,columnModel:e.columnModel,getCellRangeService:e.getCellRangeService??(()=>null),getCellSpanService:()=>e.cellSpanService,isCellSelectionEnabled:e.isCellSelectionEnabled??(()=>!1),getCellRangeOperationContext:t,getLogicalScrollTop:e.getLogicalScrollTop,getScrollLeft:()=>e.viewportEl.scrollLeft,getRowHeight:e.getRowHeight,scrollByDelta:e.scrollByDelta,scrollByHorizontalDelta:e.scrollByHorizontalDelta,ensureIndexVisible:e.ensureIndexVisible,ensureColumnVisible:e.ensureColumnVisible,applyCellRangeVisuals:e.applyCellRangeVisuals??(()=>{}),emitCellSelectionChanged:e.emitCellSelectionChanged??(()=>{}),isEditing:e.isEditing,isCommitting:e.isCommitting,isInlineToggleClickTarget:e=>this.focusController.isInlineToggleClickTarget(e),isGroupOrTreeExpandClickTarget:e=>this.focusController.isGroupOrTreeExpandClickTarget(e),isPointerOverCellCommentIndicator:e.isPointerOverCellCommentIndicator??(()=>!1)},this.sessionHost),this.fillHandleSession=new AE({viewportEl:e.viewportEl,rowModel:e.rowModel,columnModel:e.columnModel,getCellRangeService:e.getCellRangeService??(()=>null),getCellSpanService:()=>e.cellSpanService,getCellSelectionOptions:n,getCellRangeOperationContext:t,getLogicalScrollTop:e.getLogicalScrollTop,getScrollLeft:()=>e.viewportEl.scrollLeft,getRowHeight:e.getRowHeight,scrollByDelta:e.scrollByDelta,scrollByHorizontalDelta:e.scrollByHorizontalDelta,applyCellRangeVisuals:e.applyCellRangeVisuals??(()=>{}),emitCellSelectionChanged:e.emitCellSelectionChanged??(()=>{}),getFillWriteService:e.getFillWriteService??(()=>null),isEditing:e.isEditing,isCommitting:e.isCommitting}),this.rangeHandleSession=new jE({viewportEl:e.viewportEl,rowModel:e.rowModel,columnModel:e.columnModel,getCellRangeService:e.getCellRangeService??(()=>null),getCellSpanService:()=>e.cellSpanService,getCellSelectionOptions:n,getCellRangeOperationContext:t,getLogicalScrollTop:e.getLogicalScrollTop,getScrollLeft:()=>e.viewportEl.scrollLeft,getRowHeight:e.getRowHeight,scrollByDelta:e.scrollByDelta,scrollByHorizontalDelta:e.scrollByHorizontalDelta,applyCellRangeVisuals:e.applyCellRangeVisuals??(()=>{}),emitCellSelectionChanged:e.emitCellSelectionChanged??(()=>{}),isEditing:e.isEditing,isCommitting:e.isCommitting}),this.rowResizeSession=new PE({mountEl:e.mountEl,rowModel:e.rowModel,indexColumnOptions:e.indexColumnOptions,setRowHeights:e.setRowHeights}),this.rowDragSession=new LE({mountEl:e.mountEl,viewportEl:e.viewportEl,rowModel:e.rowModel,rowDragManaged:e.rowDragManaged,deferRowDragCommit:e.deferRowDragCommit,hasSortOrFilterActive:e.hasSortOrFilterActive,isRowDragHandleEnabled:e.isRowDragHandleEnabled,getLogicalScrollTop:e.getLogicalScrollTop,getRowHeight:e.getRowHeight,scrollByDelta:e.scrollByDelta,moveRows:e.moveRows,finishRowMoves:e.finishRowMoves,setRowMoveLiveDragging:e.setRowMoveLiveDragging,emitRowDragEnd:e.emitRowDragEnd,isRowDragCommitting:e.isRowDragCommitting,buildPlanRowDragMoveOptions:e.buildPlanRowDragMoveOptions,planRowDragMove:e.planRowDragMove,commitDeferredRowDrag:e.commitDeferredRowDrag,isIndexFocusMultiple:e.isIndexFocusMultiple,getIndexFocusedRowIds:e.getIndexFocusedRowIds,isRowGroupingActive:e.isRowGroupingActive,validateGroupedDisplayDrop:e.validateGroupedDisplayDrop,isTreeActive:e.isTreeActive,getTreeDragScope:e.getTreeDragScope,validateTreeDisplayDrop:e.validateTreeDisplayDrop,resolveTreeRowDragEndContext:e.resolveTreeRowDragEndContext}),this.cellCommentSession=e.cellCommentService&&e.getCellCommentOptions?new XE({viewportEl:e.viewportEl,mountEl:e.mountEl,rowModel:e.rowModel,cellFocusService:e.cellFocusService,cellCommentService:e.cellCommentService,getOptions:e.getCellCommentOptions,isEditing:e.isEditing}):null,this.overflowTooltipSession=e.overflowTooltipSession??null,this.headerHandlers=new eD({deps:e,host:this.hostActions,focusController:this.focusController,cellRangeInteraction:this.cellRangeInteraction,columnResizeSession:this.columnResizeSession,columnHeaderDragSession:this.columnHeaderDragSession,indexSelectionDragSession:this.indexSelectionDragSession,rowResizeSession:this.rowResizeSession,getSuppressColumnHandleClick:()=>this.suppressColumnHandleClick,setSuppressColumnHandleClick:e=>{this.suppressColumnHandleClick=e}}),this.cellBodyHandlers=new tD({deps:e,host:this.hostActions,focusController:this.focusController,cellRangeInteraction:this.cellRangeInteraction,columnResizeSession:this.columnResizeSession,columnHeaderDragSession:this.columnHeaderDragSession,indexSelectionDragSession:this.indexSelectionDragSession,cellRangeDragSession:this.cellRangeDragSession,fillHandleSession:this.fillHandleSession,rangeHandleSession:this.rangeHandleSession,rowResizeSession:this.rowResizeSession,rowDragSession:this.rowDragSession,cellCommentSession:this.cellCommentSession,getSuppressColumnClick:()=>this.suppressColumnClick,setSuppressColumnClick:e=>{this.suppressColumnClick=e}}),this.keyboardHandlers=new nD({deps:e,focusController:this.focusController,columnResizeSession:this.columnResizeSession,cellRangeInteraction:this.cellRangeInteraction,cellCommentSession:this.cellCommentSession})}isColumnResizing(){return this.columnResizeSession.isActive()}isRowResizing(){return this.rowResizeSession.isActive()}isRowDragging(){return this.rowDragSession.isActive()}refreshColumnResizeVisualState(){this.columnResizeSession.refreshVisualState()}refreshRowResizeVisualState(){this.rowResizeSession.refreshVisualState()}bindListeners(){this.headerHandlers.bind(this.deps.mountEl),this.cellBodyHandlers.bind(this.deps.viewportEl),this.keyboardHandlers.bind(this.deps.mountEl,this.deps.viewportEl),this.cellCommentSession?.bindListeners(),this.overflowTooltipSession?.bindListeners()}unbindListeners(){this.headerHandlers.unbind(this.deps.mountEl),this.cellBodyHandlers.unbind(this.deps.viewportEl),this.keyboardHandlers.unbind(this.deps.mountEl,this.deps.viewportEl),this.cellCommentSession?.unbindListeners(),this.overflowTooltipSession?.unbindListeners(),this.indexSelectionDragSession.end(),this.cellRangeDragSession.end(),this.fillHandleSession.end(),this.rangeHandleSession.end(),this.columnHeaderDragSession.end(!1),this.columnResizeSession.end(!1),this.rowResizeSession.end(!1),this.rowDragSession.end(!1),this.deps.columnHandleMenuController.close()}applyFocusVisuals(){this.focusController.applyFocusVisuals()}navigateEditableTab(e){this.focusController.navigateEditableTab(e)}syncCellRangeFromIndexFocus(e){this.hostActions.syncCellRangeFromIndexFocus(e)}};function sD(e){return t.$(e).mode}function cD(e){return t.$(e)}function lD(e){let t=e.getRowCount();if(t===0)return 0;let n=e.getRow(t-1);return n&&mo(n)?n.rowTop:e.getTotalHeight()}function uD(e,t,n){let r=lD(e);return Math.max(0,Math.floor(t+n-r))}function dD(e){let t=BT(e.totalHeight,e.clientHeight),n=VT(e.scrollHeight,e.clientHeight),r=HT(e.scrollWidth,e.clientWidth),i=e.totalWidth>e.clientWidth+2,a=n&&t>0,o=r&&i,s=e.totalHeight<e.clientHeight-.5,c=e.totalWidth<e.clientWidth-.5,l=e.scrollTop+e.clientHeight>=e.scrollHeight-1;return{hasVScrollbar:a,hasHScrollbar:o,innerRightClosesTable:a||c,innerBottomClosesTable:!(!s&&!o&&l)}}function fD(e){return e.parentElement?.parentElement??null}function pD(e,t){e.classList.toggle(`mg-grid--has-v-scrollbar`,t.hasVScrollbar),e.classList.toggle(`mg-grid--has-h-scrollbar`,t.hasHScrollbar),e.classList.toggle(`mg-grid--inner-right-closes`,t.innerRightClosesTable),e.classList.toggle(`mg-grid--inner-bottom-closes`,t.innerBottomClosesTable)}function mD(e){let{anchorScrollTop:t,atScrollBottom:n,detailRowTop:r,heightDelta:i,logicalMaxScroll:a}=e;return i===0?hD(t,a):n?a:hD(t>r?t+i:t,a)}function hD(e,t){return Math.max(0,Math.min(e,t))}function gD(e,t,n,r){return n>0&&e>0&&r<=2?Math.floor(t):e}function _D(e,t,n,r){let i=BT(e,t);if(r===0||e<=16777216)return{totalHeight:e,viewportHeight:t,rowHeight:n,rowCount:r,compressed:!1,physicalSpacerHeight:gD(e,t,r,i),physicalMaxScroll:i,logicalMaxScroll:i};let a=Math.max(0,Math.ceil(i/n));return{totalHeight:e,viewportHeight:t,rowHeight:n,rowCount:r,compressed:!0,physicalSpacerHeight:a+t+1,physicalMaxScroll:a,logicalMaxScroll:i}}function vD(e,t){return t.compressed?e>=t.physicalMaxScroll?t.logicalMaxScroll:SD(e*t.rowHeight,0,t.logicalMaxScroll):SD(e,0,t.logicalMaxScroll)}function yD(e,t){return t.compressed?e>=t.logicalMaxScroll?t.physicalMaxScroll:SD(e/t.rowHeight,0,t.physicalMaxScroll):SD(e,0,t.physicalMaxScroll)}function bD(e,t,n=1){return e>=t.logicalMaxScroll-n}function xD(e,t=1){return e<=t}function SD(e,t,n){return Math.max(t,Math.min(e,n))}var CD=null;function wD(e=document){if(CD!==null)return CD;let t=e.createElement(`div`);t.style.cssText=`visibility:hidden;overflow:scroll;width:100px;height:100px;position:absolute;top:-9999px`,e.body.appendChild(t);let n=Math.max(0,t.offsetWidth-t.clientWidth);return t.remove(),n===0&&ED(e)?(CD=8,CD):(CD=n,CD)}function TD(){CD=null}function ED(e=document){let t=e.createElement(`div`);t.style.cssText=`width:100px;height:100px;overflow:scroll;visibility:hidden;position:absolute;top:-9999px`;let n=e.createElement(`div`);n.style.height=`200px`,t.appendChild(n),e.body.appendChild(t);let r=t.offsetWidth===t.clientWidth;return t.remove(),r}function DD(e,t){return e.hasVScrollbar?!0:!t&&e.liveGutterWidth>0}function OD(e){let t=e.overlayScrollbars??ED(),n=e.measuredWidth??wD();if(!DD(e,t))return{layout:0,visual:0};if(t)return{layout:0,visual:n};let r=e.liveGutterWidth>0?e.liveGutterWidth:n;return{layout:r,visual:r}}function kD(e,t,n){let r=Math.max(0,t.offsetWidth-t.clientWidth),i=VT(t.scrollHeight,t.clientHeight),a=e.magicGridEl,o=a?.classList.contains(`mg-grid--has-v-scrollbar`)??!1,s=OD({hasVScrollbar:a?o:i,liveGutterWidth:a?o?r:0:r,overlayScrollbars:n});e.rootEl.style.setProperty(`--mg-v-scrollbar-layout`,`${s.layout}px`),e.rootEl.style.setProperty(`--mg-v-scrollbar-visual`,`${s.visual}px`);let c=s.layout>0?0:s.visual;return e.rootEl.style.setProperty(`--mg-v-scrollbar-visual-overlay`,`${c}px`),e.headerViewportEl.style.removeProperty(`padding-right`),e.footerViewportEl?.style.removeProperty(`padding-right`),e.floatingFilterViewportEl?.style.removeProperty(`padding-right`),e.magicGridEl&&e.magicGridEl.classList.toggle(`magic-grid--overlay-scrollbar`,n),s}var AD=class{deps;lastScrollLeft=0;onAfterRedraw=null;resizeObserver=null;overlayScrollbars=null;scrollEndTimer=null;scrollSessionEndTimer=null;scrollSessionActive=!1;atScrollTop=!0;atScrollBottom=!1;programmaticScrollDepth=0;constructor(e){this.deps=e}setOnAfterRedraw(e){this.onAfterRedraw=e}get viewportEl(){return this.deps.viewportEl}bindScrollListener(){this.deps.viewportEl.addEventListener(`scroll`,this.handleScroll,{passive:!0}),this.resizeObserver=new ResizeObserver(()=>{this.handleViewportResize()}),this.resizeObserver.observe(this.deps.viewportEl)}unbindScrollListener(){this.deps.viewportEl.removeEventListener(`scroll`,this.handleScroll),this.clearScrollEndTimer(),this.clearScrollSessionEndTimer(),this.scrollSessionActive=!1,this.resizeObserver?.disconnect(),this.resizeObserver=null}clearScrollEndTimer(){this.scrollEndTimer!=null&&(clearTimeout(this.scrollEndTimer),this.scrollEndTimer=null)}clearScrollSessionEndTimer(){this.scrollSessionEndTimer!=null&&(clearTimeout(this.scrollSessionEndTimer),this.scrollSessionEndTimer=null)}getScrollSessionEndDebounceMs(){let{scrollEndFlushMs:e}=this.deps.scrollRenderOptions;return e>0?e:150}scheduleScrollEndIdle(){this.clearScrollEndTimer();let{scrollEndFlushMs:e,deferRowDestroyOnScroll:t,cellRendererPresentation:n}=this.deps.scrollRenderOptions,r=e>0?e:t||n===`placeholder-then-vue`?150:0;r<=0||(this.scrollEndTimer=setTimeout(()=>{this.scrollEndTimer=null,!this.deps.isDestroyed()&&this.deps.onScrollEndIdle?.()},r))}getLogicalScrollTop(){return vD(this.deps.viewportEl.scrollTop,this.getScrollRange())}getRenderViewportHeight(){return this.getRenderViewportHeightInternal()}scrollTo(e,t){let n=this.getScrollRange(),r=Math.max(0,Math.min(e,n.logicalMaxScroll));this.applyPhysicalScrollFromLogical(r),this.deps.scrollBridge.syncScrollTop(r),this.deps.frameService.setScrollDirection(this.deps.scrollBridge.isScrollGoingDown()),t!==void 0&&(this.deps.viewportEl.scrollLeft=t,this.lastScrollLeft=t),this.deps.headerScrollEl.scrollLeft=this.deps.viewportEl.scrollLeft,this.syncFooterScrollLeft(),this.syncFloatingFilterScrollLeft(),this.redrawImmediately(),this.emitScrollPositionEvents(r,this.deps.viewportEl.scrollLeft),this.deps.onScroll?.()}scrollByDelta(e){e===0||!Number.isFinite(e)||this.scrollTo(this.getLogicalScrollTop()+e)}scrollByHorizontalDelta(e){if(e===0)return;let t=this.deps.viewportEl.clientWidth,n=WT(this.deps.columnModel,t),r=Math.max(0,Math.min(this.deps.viewportEl.scrollLeft+e,n));Math.abs(r-this.deps.viewportEl.scrollLeft)<1||this.scrollTo(this.getLogicalScrollTop(),r)}ensureIndexVisible(e,t=`middle`){let n=this.deps.rowModel.getRowBounds(e);if(!n)return;let r=this.getRenderViewportHeightInternal(),i=this.getScrollRange(),a=this.getLogicalScrollTop();a=t===`top`?n.rowTop:t===`bottom`?n.rowTop+n.rowHeight-r:n.rowTop-(r-n.rowHeight)/2,a=Math.max(0,Math.min(a,i.logicalMaxScroll)),this.scrollTo(a,this.deps.viewportEl.scrollLeft)}ensureColumnVisible(e){let t=this.deps.viewportEl.clientWidth,n=this.deps.viewportEl.scrollLeft,r=UT(e,this.deps.columnModel,n,t);if(r===null)return;let i=WT(this.deps.columnModel,t),a=Math.max(0,Math.min(r,i));a!==n&&this.scrollTo(this.deps.scrollBridge.getScrollTop(),a)}syncHorizontalScrollLeft(e){this.deps.viewportEl.scrollLeft=e,this.lastScrollLeft=e,this.deps.headerScrollEl.scrollLeft=e,this.syncFooterScrollLeft(),this.syncFloatingFilterScrollLeft()}applyColumnStructureVisuals(){this.deps.applySelectionVisuals(),this.deps.applyFocusVisuals(),this.syncBorderClosureState(),this.deps.applyCellRangeVisuals?.()}syncHorizontalLayout(){let e=this.deps.columnModel.getTotalWidth();this.syncHeaderFooterRowWidth(),this.deps.spacerEl.style.minWidth=`${e}px`,this.deps.rowsContainerEl.style.width=`${e}px`,Xh(this.deps.headerLeftLaneEl,this.deps.headerCenterLaneEl,this.deps.headerRightLaneEl,this.deps.columnModel),this.syncFooterHorizontalLayout(),this.syncFloatingFilterHorizontalLayout(),this.syncScrollChrome(),this.syncIndexColumnFill()}syncColumnCellLayouts(){Zh(this.deps.headerLeftLaneEl,this.deps.headerCenterLaneEl,this.deps.headerRightLaneEl,this.deps.columnModel),this.deps.footerLeftLaneEl&&this.deps.footerCenterLaneEl&&this.deps.footerRightLaneEl&&Q_(this.deps.footerLeftLaneEl,this.deps.footerCenterLaneEl,this.deps.footerRightLaneEl,this.deps.columnModel),this.deps.floatingFilterLeftLaneEl&&this.deps.floatingFilterCenterLaneEl&&this.deps.floatingFilterRightLaneEl&&IT(this.deps.floatingFilterLeftLaneEl,this.deps.floatingFilterCenterLaneEl,this.deps.floatingFilterRightLaneEl,this.deps.columnModel)}syncBorderClosureState(){let e=fD(this.deps.rootEl);if(!e)return;let t=this.deps.viewportEl;pD(e,dD({scrollTop:t.scrollTop,scrollHeight:t.scrollHeight,scrollWidth:t.scrollWidth,clientHeight:t.clientHeight,clientWidth:t.clientWidth,totalHeight:this.deps.rowModel.getTotalHeight(),totalWidth:this.deps.columnModel.getTotalWidth()})),this.syncHorizontalScrollEndState(e,t)}syncHorizontalScrollEndState(e,t=this.deps.viewportEl){let n=e??fD(this.deps.rootEl);if(!n)return;let r=WT(this.deps.columnModel,t.clientWidth),i=GT(t.scrollLeft,r);n.classList.toggle(`mg-grid--at-h-scroll-end`,i)}captureScrollAnchor(){let e=this.resolveLogicalScrollTopForSync();return{logicalScrollTop:e,atScrollBottom:bD(e,this.getScrollRange())}}syncViewportHeightWithDetailCompensation(e){let t=this.getViewportHeight(),n=this.getScrollRange(t);this.applySpacerLayoutFromRange(t,n),this.syncScrollMode(t);let r=this.getScrollRange(t),i=mD({anchorScrollTop:e.anchor.logicalScrollTop,atScrollBottom:e.anchor.atScrollBottom,detailRowTop:e.detailRowTop,heightDelta:e.heightDelta,logicalMaxScroll:r.logicalMaxScroll});this.deps.scrollBridge.syncScrollTop(i),this.applyPhysicalScrollFromLogical(i),this.syncAtScrollTopState(i),this.syncAtScrollBottomState(i),this.syncHeaderFooterRowWidth(),this.syncScrollChrome(),this.syncIndexColumnFill()}syncViewportHeight(){let e=this.captureScrollAnchor();this.syncViewportHeightWithDetailCompensation({anchor:e,detailRowTop:0,heightDelta:0})}scrollGridIfNeeded(){let e=this.deps.viewportEl.scrollLeft,t=!1;return t=this.deps.scrollBridge.scrollGridIfNeeded(t=>{this.redrawViewport(t,e)})||t,e!==this.lastScrollLeft&&(t||this.redrawViewport(this.deps.scrollBridge.getScrollTop(),e),t=!0),this.lastScrollLeft=this.deps.viewportEl.scrollLeft,t}redrawImmediately(){if(this.deps.isDestroyed())return;let e=this.getLogicalScrollTop();this.deps.scrollBridge.syncScrollTop(e),this.deps.frameService.flushAllFrames(),this.redrawViewport(e,this.deps.viewportEl.scrollLeft),this.lastScrollLeft=this.deps.viewportEl.scrollLeft,this.deps.frameService.flushAllFrames(),this.deps.applySelectionVisuals(),this.deps.applyFocusVisuals(),this.syncBorderClosureState()}redrawRowExpansionIncremental(){if(this.deps.isDestroyed())return;let e=this.resolveLogicalScrollTopForSync();this.deps.scrollBridge.syncScrollTop(e),this.applyPhysicalScrollFromLogical(Math.min(e,this.getScrollRange().logicalMaxScroll)),this.deps.frameService.flushAllFrames(),this.syncPinnedRows();let t=this.deps.viewportEl.scrollLeft,n=this.deps.viewportEl.clientWidth;this.deps.columnViewport.update(t,n);let r=this.deps.columnViewport.getWindow(),i=this.getRenderViewportHeightInternal();this.deps.rowRenderer.syncRowExpansionDisplay(e,i,r),this.deps.applySelectionVisuals(),this.deps.applyFocusVisuals(),this.syncBorderClosureState(),this.deps.applyCellRangeVisuals?.(),this.syncIndexColumnFill(),this.deps.frameService.flushAllFrames()}resetScrollOnSetData(){this.atScrollTop=!0,this.atScrollBottom=!1,this.scrollSessionActive=!1,this.clearScrollSessionEndTimer(),this.deps.scrollBridge.syncScrollTop(0),this.applyPhysicalScrollFromLogical(0),this.deps.viewportEl.scrollTop=0,this.deps.viewportEl.scrollLeft=0,this.lastScrollLeft=0,this.deps.headerScrollEl.scrollLeft=0,this.syncFooterScrollLeft(),this.syncFloatingFilterScrollLeft()}scheduleCompressedSetDataRedraw(e){this.getScrollRange().compressed&&requestAnimationFrame(()=>{this.deps.isDestroyed()||e()})}syncPinnedRows(){this.deps.rowRenderer.setPinnedRowIds(this.deps.getPinnedRowIds())}handleScroll=()=>{let e=this.getLogicalScrollTop(),t=this.deps.viewportEl.scrollLeft;if(this.deps.scrollBridge.notifyScroll(e),this.deps.frameService.setScrollDirection(this.deps.scrollBridge.isScrollGoingDown()),this.deps.onScrollActivity?.(),this.deps.headerScrollEl.scrollLeft=t,this.syncFooterScrollLeft(),this.syncFloatingFilterScrollLeft(),this.syncBorderClosureState(),this.syncPinnedRows(),!(this.programmaticScrollDepth>0)){if(this.trackUserScrollSession(e,t),this.getScrollRange().compressed){this.deps.scrollBridge.syncScrollTop(e),this.redrawViewport(e,this.deps.viewportEl.scrollLeft),this.deps.frameService.flushAllFrames(),this.emitScrollPositionEvents(e,t);return}this.deps.frameService.schedule(),this.scheduleScrollEndIdle(),this.emitScrollPositionEvents(e,t),this.deps.applyCellRangeScrollVisuals?.()}};emitScrollPositionEvents(e,t){this.maybeEmitScrollTop(e,t),this.maybeEmitScrollBottom(e,t),this.emitScrollEvent(`scroll`,e,t)}emitScrollEvent(e,t,n){this.deps.onEmitScrollEvent?.(e,{scrollTop:t,scrollLeft:n})}trackUserScrollSession(e,t){this.scrollSessionActive||(this.scrollSessionActive=!0,this.emitScrollEvent(`scrollStart`,e,t)),this.scheduleScrollSessionEnd()}scheduleScrollSessionEnd(){this.clearScrollSessionEndTimer(),this.scrollSessionEndTimer=setTimeout(()=>{this.scrollSessionEndTimer=null,!(this.deps.isDestroyed()||!this.scrollSessionActive)&&(this.scrollSessionActive=!1,this.emitScrollEvent(`scrollEnd`,this.getLogicalScrollTop(),this.deps.viewportEl.scrollLeft))},this.getScrollSessionEndDebounceMs())}maybeEmitScrollTop(e,t){let n=xD(e),r=this.atScrollTop;this.atScrollTop=n,n&&!r&&this.emitScrollEvent(`scrollTop`,e,t)}maybeEmitScrollBottom(e,t){let n=bD(e,this.getScrollRange()),r=this.atScrollBottom;this.atScrollBottom=n,n&&!r&&this.emitScrollEvent(`scrollBottom`,e,t)}syncAtScrollTopState(e){let t=e??this.getLogicalScrollTop();this.atScrollTop=xD(t)}syncAtScrollBottomState(e){let t=this.getScrollRange(),n=e??this.getLogicalScrollTop();this.atScrollBottom=bD(n,t)}isColumnMoveLiveDragging(){return this.deps.rootEl.classList.contains(`magic-grid--column-move-live`)}redrawViewport(e,t){let n=this.getViewportHeight();this.syncCompressedLayerHeight(n);let r=e??this.getLogicalScrollTop(),i=t??this.deps.viewportEl.scrollLeft,a=this.deps.viewportEl.clientWidth;this.syncViewportInlineSize(a);let o=KT(this.deps.columnModel,i,a);o!==i&&(this.deps.viewportEl.scrollLeft=o,this.lastScrollLeft=o,this.deps.headerScrollEl.scrollLeft=o,this.syncFooterScrollLeft(),this.syncFloatingFilterScrollLeft());let s=this.getRenderViewportHeightInternal(),c=this.deps.columnViewport.update(o,a),l=this.deps.columnViewport.getWindow();c&&(this.reorderHeaderCells(!0),this.isColumnMoveLiveDragging()?this.syncColumnCellLayouts():(this.deps.refreshFooter?.(),this.deps.refreshFloatingFilter?.()),this.deps.applyFocusVisuals()),this.syncFooterScrollLeft(),this.syncFloatingFilterScrollLeft(),this.syncPinnedRows(),this.deps.ensureInfiniteRowsLoaded?.(r,s),this.deps.rowRenderer.redraw(r,s,l,c),this.deps.applyCellRangeVisuals?.(),this.syncIndexColumnFill(),this.onAfterRedraw?.()}syncScrollbarGutter(){kD({rootEl:this.deps.rootEl,headerViewportEl:this.deps.headerViewportEl,footerViewportEl:this.deps.footerViewportEl,floatingFilterViewportEl:this.deps.floatingFilterViewportEl,magicGridEl:fD(this.deps.rootEl)},this.deps.viewportEl,this.getOverlayScrollbars())}getOverlayScrollbars(){return this.overlayScrollbars===null&&(this.overlayScrollbars=ED()),this.overlayScrollbars}handleViewportResize(){if(this.deps.isDestroyed())return;TD(),this.overlayScrollbars=null;let e=this.getViewportHeight(),t=this.getScrollRange(e);this.applySpacerLayoutFromRange(e,t),this.syncHeaderFooterRowWidth(),this.syncScrollChrome(),this.syncIndexColumnFill()}syncScrollChrome(){this.syncBorderClosureState(),this.stabilizeShortContentSpacer(),this.syncScrollbarGutter()}stabilizeShortContentSpacer(){let e=this.getScrollRange();if(e.compressed||e.logicalMaxScroll>0)return;let t=this.deps.viewportEl.clientHeight;if(t<=0)return;let n=this.deps.rowModel.getTotalHeight(),r=Math.max(n,Math.floor(t)),i=Number.parseFloat(this.deps.spacerEl.style.height);(!Number.isFinite(i)||Math.abs(i-r)>2)&&(this.deps.spacerEl.style.height=`${r}px`)}applySpacerLayoutFromRange(e,t){if(t.compressed){this.deps.spacerEl.style.height=``,this.deps.scrollPhantomEl.style.height=`${t.physicalMaxScroll+1}px`,this.syncCompressedLayerHeight(e);return}this.deps.spacerEl.style.height=`${t.physicalSpacerHeight}px`,this.deps.scrollPhantomEl.style.height=`0px`,this.deps.viewportEl.style.removeProperty(`--mg-viewport-px`)}syncHeaderFooterRowWidth(){let e=this.deps.columnModel.getTotalWidth();this.deps.headerRowEl.style.width=`${e}px`,this.deps.footerRowEl&&(this.deps.footerRowEl.style.width=`${e}px`),this.deps.floatingFilterRowEl&&(this.deps.floatingFilterRowEl.style.width=`${e}px`)}syncFooterHorizontalLayout(){!this.deps.footerRowEl||!this.deps.footerLeftLaneEl||!this.deps.footerCenterLaneEl||!this.deps.footerRightLaneEl||(Z_(this.deps.footerLeftLaneEl,this.deps.footerCenterLaneEl,this.deps.footerRightLaneEl,this.deps.columnModel),this.syncFooterScrollLeft())}refreshFloatingFilterActiveState(){this.deps.isDestroyed()||!this.deps.floatingFilterLeftLaneEl||!this.deps.floatingFilterCenterLaneEl||!this.deps.floatingFilterRightLaneEl||NT([this.deps.floatingFilterLeftLaneEl,this.deps.floatingFilterCenterLaneEl,this.deps.floatingFilterRightLaneEl],this.deps.rowModel.getFilterModel())}syncFloatingFilterHorizontalLayout(){!this.deps.floatingFilterRowEl||!this.deps.floatingFilterLeftLaneEl||!this.deps.floatingFilterCenterLaneEl||!this.deps.floatingFilterRightLaneEl||(FT(this.deps.floatingFilterLeftLaneEl,this.deps.floatingFilterCenterLaneEl,this.deps.floatingFilterRightLaneEl,this.deps.columnModel),this.syncFloatingFilterScrollLeft())}syncFloatingFilterScrollLeft(){if(!this.deps.floatingFilterScrollEl)return;let e=this.deps.viewportEl.scrollLeft;this.deps.floatingFilterScrollEl.scrollLeft!==e&&(this.deps.floatingFilterScrollEl.scrollLeft=e)}syncFooterScrollLeft(){if(!this.deps.footerScrollEl)return;let e=this.deps.viewportEl.scrollLeft;this.deps.footerScrollEl.scrollLeft!==e&&(this.deps.footerScrollEl.scrollLeft=e)}renderHeader(e){Yh({headerLeftLaneEl:this.deps.headerLeftLaneEl,headerCenterLaneEl:this.deps.headerCenterLaneEl,headerRightLaneEl:this.deps.headerRightLaneEl,columnModel:this.deps.columnModel,centerWindow:e,sortModel:this.deps.rowModel.getSortModel(),filterModel:this.deps.rowModel.getFilterModel(),validationFeedback:this.deps.validationFeedback,selectionColumnOptions:this.deps.selectionColumnOptions,showUnsortedSortHintOnHover:this.deps.showUnsortedSortHintOnHover(),enableHeaderSortClick:this.deps.enableHeaderSortClick(),getTreeHeaderExpanded:this.deps.getTreeHeaderExpanded})}syncTreeHeaderExpandState(){this.deps.isDestroyed()||kh([this.deps.headerLeftLaneEl,this.deps.headerCenterLaneEl,this.deps.headerRightLaneEl],this.deps.getTreeHeaderExpanded?.()??!1)}refreshHeader(){this.deps.isDestroyed()||(this.deps.onHeaderRefresh?.(),this.renderHeader(this.deps.columnViewport.getWindow()))}reorderHeaderCells(e=!1){this.deps.isDestroyed()||eg({headerLeftLaneEl:this.deps.headerLeftLaneEl,headerCenterLaneEl:this.deps.headerCenterLaneEl,headerRightLaneEl:this.deps.headerRightLaneEl,columnModel:this.deps.columnModel,centerWindow:this.deps.columnViewport.getWindow(),fillColumnWindowGaps:e,sortModel:this.deps.rowModel.getSortModel(),filterModel:this.deps.rowModel.getFilterModel(),validationFeedback:this.deps.validationFeedback,selectionColumnOptions:this.deps.selectionColumnOptions,showUnsortedSortHintOnHover:this.deps.showUnsortedSortHintOnHover(),enableHeaderSortClick:this.deps.enableHeaderSortClick(),getTreeHeaderExpanded:this.deps.getTreeHeaderExpanded})}refreshHeaderIndicatorState(){this.deps.isDestroyed()||Zm([this.deps.headerLeftLaneEl,this.deps.headerCenterLaneEl,this.deps.headerRightLaneEl],{sortModel:this.deps.rowModel.getSortModel(),filterModel:this.deps.rowModel.getFilterModel(),getColumnById:e=>{let t=this.deps.columnModel.getColumnById(e);if(t)return{colId:t.colId,sortable:t.sortable,filterable:t.filterable,headerAlign:t.headerAlign}},showUnsortedSortHintOnHover:this.deps.showUnsortedSortHintOnHover(),enableHeaderSortClick:this.deps.enableHeaderSortClick()})}getViewportHeight(){let e=this.deps.viewportEl.clientHeight;return e>0?e:this.deps.viewportEl.getBoundingClientRect().height}getRenderViewportHeightInternal(){if(this.deps.rowsLayerEl.classList.contains(`mg-rows-layer--compressed`)){let e=this.deps.rowsLayerEl.clientHeight;if(e>0)return e}return this.getViewportHeight()}syncCompressedLayerHeight(e){this.getScrollRange(e).compressed&&(this.deps.rowsLayerEl.style.height=`${e}px`,this.deps.viewportEl.style.setProperty(`--mg-viewport-px`,`${e}px`))}syncViewportInlineSize(e){e>0&&this.deps.viewportEl.style.setProperty(`--mg-viewport-inline-size`,`${e}px`)}syncIndexColumnFill(){let{indexColumnFillHostEl:e,indexColumnFillEl:n}=this.deps;if(!this.deps.showIndexColumn){e.hidden=!0;return}let r=this.deps.columnModel.getColumnById(t.tt);if(!r||r.hidden){e.hidden=!0;return}let i=this.deps.rowModel.getRowCount(),a=this.getViewportHeight(),o=Math.floor(a),s=this.getLogicalScrollTop(),c=uD(this.deps.rowModel,s,o);if(i===0||c<=0){e.hidden=!0;return}let l=this.getScrollRange(a).compressed,u=lD(this.deps.rowModel),d=l?u-s:u;e.hidden=!1,n.style.top=`${d}px`,n.style.left=`${r.left}px`,n.style.width=`${r.width}px`,n.style.height=`${c}px`}getScrollRange(e){let t=e??this.getViewportHeight();return _D(this.deps.rowModel.getTotalHeight(),t,this.deps.getDefaultRowHeight(),this.deps.rowModel.getRowCount())}resolveLogicalScrollTopForSync(){return Math.max(this.getLogicalScrollTop(),this.deps.scrollBridge.getNextScrollTop(),this.deps.scrollBridge.getScrollTop())}applyPhysicalScrollFromLogical(e){this.programmaticScrollDepth++;try{let t=this.getScrollRange();this.deps.viewportEl.scrollTop=yD(e,t)}finally{this.programmaticScrollDepth--}}syncScrollMode(e){let t=e??this.getViewportHeight(),n=this.getScrollRange(t).compressed;this.deps.rowsLayerEl.parentElement!==this.deps.spacerEl&&this.deps.spacerEl.prepend(this.deps.rowsLayerEl),this.deps.rowsContainerEl.style.transform=``,this.deps.spacerEl.classList.toggle(`mg-spacer--compressed`,n),this.deps.scrollPhantomEl.classList.toggle(`mg-scroll-phantom--active`,n),this.deps.rowsLayerEl.classList.toggle(`mg-rows-layer--compressed`,n),this.deps.rowRenderer.setCompressedScroll(n)}};function jD(e){let t=[`left`,`center`,`right`],n=[];for(let r of t){let t=r===`center`?null:r,i=e.filter(e=>(e.fixed??null)===t),a=i.filter(e=>!lc(e.colId)),o=i.filter(e=>lc(e.colId)).sort((e,t)=>e.defOrder-t.defOrder);n.push(...a.map(e=>e.colId),...o.map(e=>e.colId))}return n}function MD(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}function ND(e,t){for(let n=0;n<t.length;n+=1){let r=t[n];if(!(!r||e[n]===r))return{fromColId:r,toIndex:n}}return null}var PD=class{deps;columnMoveOptions;columnResizeOptions;pendingColumnResizeColIds=[];pendingColumnResizeFinished=!1;constructor(e,t,n){this.deps=e,this.columnMoveOptions=t,this.columnResizeOptions=n}setColumnMoveOptions(e){let t=this.columnMoveOptions;this.columnMoveOptions=ia({...t,...e});let n=e.columnMovable!==void 0&&e.columnMovable!==t.columnMovable,r=e.allowCrossLaneColumnMove!==void 0&&e.allowCrossLaneColumnMove!==t.allowCrossLaneColumnMove;(n||r)&&(this.deps.columnModel.setColumnMoveGridOptions(this.columnMoveOptions),n&&this.deps.viewport.refreshHeader()),this.syncColumnMovePresentationClasses()}setColumnResizeOptions(e){let t=this.columnResizeOptions;this.columnResizeOptions=Lg({...t,...e}),e.resizable!==void 0&&e.resizable!==t.resizable&&(this.deps.columnModel.setColumnResizeGridOptions(this.columnResizeOptions),this.deps.viewport.refreshHeader())}syncColumnLayoutAfterResize(){this.deps.isDestroyed()||(this.deps.viewport.syncHorizontalLayout(),this.applyHorizontalScrollAfterColumnLayout(),this.deps.viewport.syncColumnCellLayouts(),this.deps.rowRenderer.syncColumnLayouts(),this.deps.footerRenderer?.syncColumnLayouts(),this.deps.columnViewport.invalidate(),this.pendingColumnResizeFinished&&this.deps.viewport.redrawImmediately(),this.deps.refreshColumnResizeVisualState(),this.deps.applyCellRangeVisuals?.())}applyHorizontalScrollAfterColumnLayout(){let e=this.deps.mountEl.querySelector(`.mg-viewport`);if(!e)return;let t=e.scrollLeft,n=e.clientWidth,r=this.pendingColumnResizeFinished;for(let e of this.pendingColumnResizeColIds){let i=qT(this.deps.columnModel,e,t,n,r);i!==null&&(t=i)}let i=KT(this.deps.columnModel,t,n);i!==e.scrollLeft&&this.deps.viewport.scrollTo(this.deps.viewport.getLogicalScrollTop(),i)}setColumnWidths(e,t=!0,n=`api`){let r=e.map(e=>({colId:e.colId,newWidth:e.width}));this.applyColumnWidths(r,!1,t,n)}setColumnWidth(e,t,n=!0,r=`api`){this.setColumnWidths([{colId:e,width:t}],n,r)}getColumnWidth(e){return this.deps.columnModel.getColumnWidth(e)}refreshFlexedColumns(e){if(!this.deps.columnModel.hasFlexColumns())return!1;let t=this.deps.mountEl.querySelector(`.mg-viewport`)?.clientWidth??0,n=t>0?t:this.deps.mountEl.clientWidth,r=this.deps.columnFlexService.resolveCenterViewportWidth(n),i=this.deps.columnFlexService.refreshFlexedColumns({viewportWidth:r,resizingColIds:e?.resizingColIds});if(!i.changed)return!1;if(this.syncColumnLayoutAfterResize(),e?.fireResizedEvent){let e=[...new Set(i.changedColIds)];this.deps.eventBus.emit(`columnResized`,Bg(e.map(e=>({colId:e})),this.deps.columnModel,!0,`flex`,i.flexColIds))}return!0}autoSizeColumn(e,t,n=`autosizeColumns`){this.autoSizeColumns([e],t,n)}autoSizeColumns(e,t,n=`autosizeColumns`){let r=this.deps.columnAutosizeService.autoSizeColumns(e,t);r.length!==0&&this.applyColumnWidths(r,!1,!0,n)}sizeColumnsToFit(e){let t=this.resolveViewportWidth(),n=e?.gridWidth??t,r=this.deps.columnAutosizeService.sizeColumnsToFit(n,e);r.length!==0&&this.applyColumnWidths(r,!1,!0,`sizeColumnsToFit`)}applyAutoSizeFitWidthStrategy(e){let t=this.resolveViewportWidth(),n=this.deps.columnAutosizeService.buildFitWidthStrategyParams(e,t);this.sizeColumnsToFit(n)}applyAutoSizeFitCellContentsStrategy(e){let{contentChanges:t,scaleUpParams:n}=this.deps.columnAutosizeService.buildFitCellContentsChanges(e);if(t.length>0&&this.applyColumnWidths(t,!1,!0,`autosizeColumns`),n){let e=this.resolveViewportWidth(),t=this.deps.columnAutosizeService.sizeColumnsToFit(e,n);t.length>0&&this.applyColumnWidths(t,!1,!0,`sizeColumnsToFit`)}}resolveViewportWidth(){let e=this.deps.mountEl.querySelector(`.mg-viewport`)?.clientWidth??0;return e>0?e:this.deps.mountEl.clientWidth}resizeHeaderColumn(e,t,n){let r=this.deps.columnModel.getColumnById(e);r?.resizable&&this.applyColumnWidths([{colId:e,newWidth:r.width+t}],n,!0,`uiColumnResized`)}applyColumnWidths(e,t,n,r){if(e.length===0)return;let{affectedColIds:i}=f_(this.deps.columnModel,e,t,this.columnResizeOptions);this.pendingColumnResizeColIds=i,this.pendingColumnResizeFinished=n;let a=this.deps.columnResizeService.setColumnWidths(e,t,n,r,this.columnResizeOptions);this.pendingColumnResizeColIds=[],this.pendingColumnResizeFinished=!1;let o=[...new Set([...a.affectedColIds.length>0?a.affectedColIds:e.map(e=>e.colId),...a.flexColIds])];(a.changed||n)&&this.deps.eventBus.emit(`columnResized`,Bg(o.map(e=>({colId:e})),this.deps.columnModel,n,r,a.flexColIds.length>0?a.flexColIds:void 0))}moveColumn(e,t,n=!0,r){let i=this.deps.columnModel.getColumnById(e)?.fixed??null;if(!this.deps.columnModel.moveColumn(e,t,r))return!1;let a=this.deps.columnModel.getColumns().map(e=>e.colId),o=this.deps.columnModel.getColumnById(e)?.fixed??null,s=a.indexOf(e);this.syncColumnLayoutAfterOrderChange(n);let c={columnOrder:a,fromColId:e,toIndex:s>=0?s:t,finished:n};return i!==o&&(c.toFixed=o),this.deps.eventBus.emit(`columnMoved`,c),n&&(this.deps.clearCellSelection?.(),this.deps.syncColumnOrderVisuals?.()),!0}syncColumnLayoutAfterOrderChange(e){this.deps.columnViewport.invalidate(),this.deps.viewport.syncHorizontalLayout();let t=this.deps.mountEl.querySelector(`.mg-viewport`);if(t){let e=t.clientWidth,n=KT(this.deps.columnModel,t.scrollLeft,e);this.deps.columnViewport.update(n,e)}e?this.deps.rootEl.classList.contains(`magic-grid--column-move-live`)&&!this.columnMoveOptions.suppressMoveWhenColumnDragging?(this.deps.viewport.reorderHeaderCells(),this.deps.viewport.syncColumnCellLayouts(),this.syncVisibleStructureAfterColumnOrderChange(),this.refreshFlexedColumns()):(this.deps.viewport.refreshHeader(),this.deps.viewport.syncColumnCellLayouts(),this.deps.refreshFooter(),this.deps.refreshFloatingFilter(),this.refreshFlexedColumns(),this.deps.viewport.redrawImmediately()):(this.deps.viewport.reorderHeaderCells(),this.deps.viewport.syncColumnCellLayouts(),this.syncVisibleStructureAfterColumnOrderChange(),this.refreshFlexedColumns()),!e&&!this.deps.rootEl.classList.contains(`magic-grid--column-move-live`)&&this.deps.syncColumnOrderVisuals?.()}syncVisibleStructureAfterColumnOrderChange(){let e=this.deps.columnViewport.getWindow();this.deps.rowRenderer.refreshVisibleColumnStructure(e),this.deps.footerRenderer?.refreshVisibleColumnStructure(e)}resetColumnOrder(){let e=this.deps.columnModel.getColumns(),t=e.map(e=>e.colId),n=jD(e);if(MD(t,n)||!this.deps.columnModel.resetColumnsOrder(n))return!1;this.deps.columnViewport.invalidate(),this.deps.viewport.syncHorizontalLayout(),this.deps.viewport.refreshHeader(),this.deps.viewport.redrawImmediately(),this.deps.refreshFooter(),this.deps.refreshFloatingFilter(),this.refreshFlexedColumns();let r=ND(t,n);return this.deps.eventBus.emit(`columnMoved`,{columnOrder:n,fromColId:r?.fromColId??n[0]??``,toIndex:r?.toIndex??0,finished:!0}),this.deps.clearCellSelection?.(),!0}setColumnFixed(e,t,n=`api`){let r=this.deps.columnModel.getColumnById(e),i=r?.fixed??null;return!r||i===t||!this.deps.columnModel.setColumnFixed(e,t)?!1:(this.deps.columnViewport.invalidate(),this.deps.viewport.syncHorizontalLayout(),this.deps.viewport.refreshHeader(),this.deps.viewport.redrawImmediately(),this.deps.refreshFooter(),this.deps.refreshFloatingFilter(),this.refreshFlexedColumns(),this.deps.eventBus.emit(`columnPinned`,{colId:e,fixed:t,fromFixed:i,source:n}),this.deps.clearCellSelection?.(),!0)}setColumnsHidden(e,t,n=`api`){let r=this.deps.columnModel.setColumnsHidden(e,t);return r.length!==0&&(this.syncAfterColumnStructureChange(),this.deps.eventBus.emit(`columnHiddenChanged`,{colIds:r,hidden:t,source:n}),this.deps.clearCellSelection?.(),!0)}syncAfterColumnStructureChange(){this.deps.columnViewport.invalidate(),this.deps.viewport.syncHorizontalLayout();let e=this.deps.mountEl.querySelector(`.mg-viewport`),t=this.resolveViewportWidth(),n=this.deps.columnViewport.getWindow(),r=e?.scrollLeft??0;r=KT(this.deps.columnModel,r,t),e&&r!==e.scrollLeft&&this.deps.viewport.syncHorizontalScrollLeft(r),this.deps.columnViewport.update(r,t),n=this.deps.columnViewport.getWindow(),this.deps.viewport.refreshHeader(),this.deps.viewport.syncColumnCellLayouts(),this.deps.rowRenderer.refreshVisibleColumnStructure(n),this.deps.footerRenderer?.syncColumnLayouts(),this.deps.refreshFooter(),this.deps.refreshFloatingFilter(),this.refreshFlexedColumns(),this.deps.syncColumnOrderVisuals?.()}resetColumnWidths(){let e=this.deps.columnModel.resetColumnsWidth();return e.length!==0&&(this.syncColumnLayoutAfterResize(),this.deps.refreshFooter(),this.deps.refreshFloatingFilter(),this.refreshFlexedColumns(),this.deps.eventBus.emit(`columnResized`,Bg(e.map(e=>({colId:e})),this.deps.columnModel,!0,`api`)),this.deps.clearCellSelection?.(),!0)}finishColumnMove(e){let t=this.deps.columnModel.getColumns(),n=t.findIndex(t=>t.colId===e);n<0||(this.deps.clearCellSelection?.(),this.deps.syncColumnOrderVisuals?.(),this.deps.eventBus.emit(`columnMoved`,{columnOrder:t.map(e=>e.colId),fromColId:e,toIndex:n,finished:!0}))}setColumnMoveLiveDragging(e){this.deps.rootEl.classList.toggle(`magic-grid--column-move-live`,e)}syncColumnMovePresentationClasses(){this.deps.rootEl.classList.toggle(`magic-grid--suppress-column-move-animation`,this.columnMoveOptions.suppressColumnMoveAnimation)}},FD=class{deps;constructor(e){this.deps=e}setFilterModel(e){this.deps.rowModel.setFilterModel(e),this.afterFilterPipelineChange()}getFilterModel(){return this.deps.rowModel.getFilterModel()}getColumnFilter(e){return this.deps.rowModel.getFilterModel()[e]??null}getColumnDistinctFilterValues(e){let t=this.deps.columnModel.getColumnById(e);return t?.filterable?gi({rows:this.deps.rowModel.getSourceRows(),colId:e,filterType:t.filterType,getFilterValue:t=>this.getColumnFilterValue(t,e)}):[]}isColumnFilterActive(e){return ai(e,this.deps.rowModel.getFilterModel())}isAnyFilterActive(){return oi(this.deps.rowModel.getFilterModel(),this.deps.rowModel.getQuickFilterText())}getQuickFilterText(){return this.deps.rowModel.getQuickFilterText()}setQuickFilterText(e){this.deps.rowModel.getQuickFilterText()!==e&&(this.deps.rowModel.setQuickFilterText(e),this.afterFilterPipelineChange())}clearAllFilters(){this.isAnyFilterActive()&&(this.deps.rowModel.setFilterModel({}),this.deps.rowModel.setQuickFilterText(``),this.afterFilterPipelineChange())}setColumnFilter(e,t){let n={...this.deps.rowModel.getFilterModel()};t===null?delete n[e]:n[e]=t,this.setFilterModel(n)}refreshFloatingFilter(){this.renderFloatingFilter(()=>this.deps.columnViewport.getWindow())}renderFloatingFilter(e){let t=this.deps.getFloatingFilterController();t&&(t.syncRowLayout(),t.render(e()))}syncFloatingFilterFromFilterModel(){this.deps.getFloatingFilterController()?.syncFromFilterModel()}getColumnFilterValue(e,t){let n=this.deps.columnModel.getColumnById(t);return n?$_(e,n):e.data[t]}afterFilterPipelineChange(){this.deps.rowModel.repositionDisplayRows();let e=this.deps.getViewport();e.syncViewportHeight(),this.deps.valueCache.bump(),this.deps.refreshCellSpans(),this.deps.reconcileRowPoolAfterDisplayChange(),e.redrawImmediately(),e.refreshHeaderIndicatorState(),this.syncFloatingFilterFromFilterModel(),this.deps.applySelectionVisuals(),this.deps.clearCellSelection?.(),this.deps.refreshOverlay?.(),this.emitFilterChanged(),this.deps.refreshFooter()}emitFilterChanged(){this.deps.eventBus.emit(`filterChanged`,{filterModel:this.deps.rowModel.getFilterModel(),quickFilterText:this.deps.rowModel.getQuickFilterText()})}};function ID(e,t){return e===t}function LD(e,t,n){return e.length===0||!ID(t,n)?[]:[...e]}function RD(e){return e.rowKind==null||e.rowKind===`BUSINESS`}function zD(e,t){let n=e[t];if(!n||!V(n))return[];let r=n.treeLevel??0,i=[];for(let n=t+1;n<e.length;n+=1){let t=e[n];if((t.treeLevel??0)<=r)break;RD(t)&&i.push(t.id)}return i}function BD(e,t){let n=e.findIndex(e=>e.id===t);if(n<0)return[];let r=e[n].treeLevel??0,i=[];for(let t=n+1;t<e.length;t+=1){let n=e[t],a=n.treeLevel??0;if(a<=r)break;a===r+1&&RD(n)&&i.push(n.id)}return i}function VD(e,t){let n=new Set;for(let r=0;r<e.length;r+=1){let i=e[r];if(!V(i)||i.treeLeaf===!0)continue;let a=BD(e,i.id);if(a.length===0)continue;let o=a.filter(e=>t.has(e)).length;o!==0&&(o<a.length||!t.has(i.id))&&n.add(i.id)}return n}function HD(e){if(!e.groupSelectsChildren)return!1;let t=e.displayRows.findIndex(t=>t.id===e.rowId);if(t<0)return!1;let n=!1,r=zD(e.displayRows,t);for(let t of r){if(e.selected){e.selectedIds.has(t)||(e.selectedIds.add(t),n=!0);continue}e.selectedIds.delete(t)&&(n=!0)}return n}function UD(e,t){let n=!1;for(let r=e.length-1;r>=0;--r){let i=e[r];if(!V(i)||i.treeLeaf===!0)continue;let a=BD(e,i.id);if(a.length===0)continue;let o=a.filter(e=>t.has(e)).length,s=o===a.length,c=t.has(i.id);if(s&&!c){t.add(i.id),n=!0;continue}!s&&c&&o>0||!s&&c&&o===0&&(t.delete(i.id),n=!0)}return n}var WD=class{deps;getDefaultSelectedRowsRuntime;selectableFn;reserveSelection;pendingDefaultSelection=null;presetSelectionEmitQueued=!1;presetSelectionEmitRevision=0;presetTransientNotifyPending=!1;constructor(e,t,n,r){this.deps=e,this.getDefaultSelectedRowsRuntime=r,this.selectableFn=t,this.reserveSelection=n}clearPendingDefaultSelectedRows(){this.presetSelectionEmitRevision+=1,this.presetTransientNotifyPending=!1,this.pendingDefaultSelection=null}flushPendingPresetTransientSelectionNotify(){!this.presetTransientNotifyPending||!this.pendingDefaultSelection||(this.presetTransientNotifyPending=!1,this.queuePresetSelectionChangedEmit())}queuePresetSelectionChangedEmit(){if(!this.pendingDefaultSelection||!this.deps.selectionService||this.presetSelectionEmitQueued)return;let e=this.presetSelectionEmitRevision;this.presetSelectionEmitQueued=!0,queueMicrotask(()=>{this.presetSelectionEmitQueued=!1,!(e!==this.presetSelectionEmitRevision||!this.pendingDefaultSelection||!this.deps.selectionService)&&(this.presetTransientNotifyPending=!1,this.deps.eventBus.emit(`selectionChanged`,{selectedRowIds:this.deps.selectionService.getSelectedRowIds(),source:`preset`}))})}setSelectable(e){this.selectableFn=lg(e),this.deps.rowRenderer.setIsRowNodeSelectable(e=>this.isRowNodeSelectable(e)),this.applySelectionVisuals()}setReserveSelection(e){this.reserveSelection=e}setDefaultSelectedRows(e,t={},n){let r=n??this.getDefaultSelectedRowsRuntime(),i=t.mode??`cover`;!r.rowSelectionEnabled||!this.deps.selectionService||(this.pendingDefaultSelection={input:e,mode:i},this.reconcilePendingDefaultSelectedRows(r))}reconcilePendingDefaultSelectedRows(e){let t=e??this.getDefaultSelectedRowsRuntime();if(!this.pendingDefaultSelection||!t.rowSelectionEnabled||!this.deps.selectionService)return;let{input:n,mode:r}=this.pendingDefaultSelection,i=Nd(n,t.getResolveContext()),a=this.resolvePresetTargetRowIds(i);if(a.length===0&&r===`merge`)return;this.deps.selectionService.isMultiple()||(i.length,a=a.slice(0,1));let o;if(r===`merge`){if(o=new Set([...this.deps.selectionService.getSelectedRowIds(),...a]),!this.deps.selectionService.isMultiple()&&o.size>1){let e=a[0]??[...o][0];o=new Set(e==null?[]:[e])}}else o=new Set(a);let s=[...o],c=this.deps.selectionService.getSelectedRowIds();if(!(s.length!==c.length||s.some(e=>!c.includes(e))))return;let l=s.length>0?this.deps.rowModel.getRowIndexById(s[0]):-1;this.deps.selectionService.replaceWithRowIds(s,l),this.syncTreeSelectionCascade(),this.applySelectionVisuals(),this.shouldDeferPresetSelectionChangedEmit(s)?this.presetTransientNotifyPending=!0:(this.presetTransientNotifyPending=!1,this.queuePresetSelectionChangedEmit())}shouldDeferPresetSelectionChangedEmit(e){if(e.length===0)return!1;for(let t of e){let e=this.deps.rowModel.getRowById(t);if(!e)return!1;let n=e.data[this.deps.rowKey];if(n==null||n===``)return!0}return!1}resolvePresetTargetRowIds(e){let n=[],r=new Set;for(let i of e){let e=t.m(i);if(r.has(e))continue;r.add(e);let a=this.deps.rowModel.getRowById(e)??this.deps.rowModel.resolveRowById(e);!a||!this.isRowNodeSelectable(a)||n.push(a.id)}return n}toggleRowSelection(e,n,r){if(!this.deps.selectionService)return;let i=t.h(e),a=!1,o=this.deps.selectionService.isMultiple(),s=[];for(let e of i){let t=this.deps.rowModel.getRowById(e);if(!t)continue;let i=this.deps.selectionService.isSelected(e),c=r===!0||this.isRowNodeSelectable(t),l=!1;if(n===void 0)if(i){if(!c)continue;this.deps.selectionService.removeRowIds([e])&&(l=!0)}else c&&(o?this.deps.selectionService.addRowId(e,t.rowIndex)&&(l=!0):this.deps.selectionService.replaceWithRowIds([e],t.rowIndex)&&(l=!0));else if(n){if(i||!c)continue;o?this.deps.selectionService.addRowId(e,t.rowIndex)&&(l=!0):this.deps.selectionService.replaceWithRowIds([e],t.rowIndex)&&(l=!0)}else if(i){if(!c)continue;this.deps.selectionService.removeRowIds([e])&&(l=!0)}l&&(a=!0,s.push({rowId:e,rowIndex:t.rowIndex}))}a&&(this.syncTreeSelectionCascade(s),this.applySelectionVisuals(),this.deps.eventBus.emit(`selectionChanged`,{selectedRowIds:this.deps.selectionService.getSelectedRowIds(),source:`api`}))}handleInteractiveRowSelection(e,t){this.deps.selectionService&&this.syncTreeSelectionCascade({rowId:e,rowIndex:t})}syncTreeSelectionCascade(e){if(!this.deps.selectionService||!this.deps.isTreeActive?.()||!this.deps.groupSelectsChildren?.())return;let t=this.deps.rowModel.rowsToDisplay,n=new Set(this.deps.selectionService.getSelectedRowIds()),r=e==null?[]:Array.isArray(e)?[...e]:[e];for(let{rowId:e}of r)HD({displayRows:t,rowId:e,selected:n.has(e),groupSelectsChildren:!0,selectedIds:n});UD(t,n),this.deps.selectionService.replaceWithRowIds([...n],r.length>0?r[r.length-1].rowIndex:-1)}setIndexFocus(e,n={}){if(!this.deps.indexFocusService)return;let r=t.h(e).map(e=>{let t=this.deps.rowModel.getRowIndexById(e);return t>=0?{id:e,rowIndex:t}:null}).filter(e=>e!=null),i=!1;if(r.length===0?(i=this.deps.indexFocusService.getFocusedRowIds().length>0,i&&this.deps.indexFocusService.clear()):i=this.deps.indexFocusService.isMultiple()?this.deps.indexFocusService.replaceWithRowIds(r.map(e=>e.id),r[0].rowIndex):this.deps.indexFocusService.replaceWithRowIds([r[0].id],r[0].rowIndex),!i)return;let a=(n.mode??`default`)===`manual`?{syncToSelectionColumn:n.syncToSelectionColumn??!1}:{};this.applyIndexFocusVisuals(a),this.deps.eventBus.emit(`indexFocusChanged`,{focusedRowIds:this.deps.indexFocusService.getFocusedRowIds()})}toggleAllSelection(e){if(!this.deps.selectionService)return;let t=this.deps.rowModel.getRowCount(),n=e=>this.getSelectableRowIdAt(e),r=!1;r=e===void 0?this.deps.selectionService.toggleSelectAllVisibleRows(t,n):e?this.deps.selectionService.selectAllVisibleRows(t,n):this.deps.selectionService.deselectAllVisibleRows(t,n),r&&(this.syncTreeSelectionCascade(),this.applySelectionVisuals(),this.deps.eventBus.emit(`selectionChanged`,{selectedRowIds:this.deps.selectionService.getSelectedRowIds(),source:`api`}))}clearRowSelection(e={}){if(!this.deps.selectionService)return;let t=e.scope??`all`,n=!1;if(t===`all`)n=this.deps.selectionService.getSelectedRowIds().length>0,n&&this.deps.selectionService.clear();else{let e=new Set(this.deps.rowModel.rowsToDisplay.map(e=>e.id)),t=this.deps.selectionService.getSelectedRowIds().filter(t=>e.has(t));t.length>0&&(n=this.deps.selectionService.removeRowIds(t))}n&&(this.syncTreeSelectionCascade(),this.applySelectionVisuals(),this.deps.eventBus.emit(`selectionChanged`,{selectedRowIds:this.deps.selectionService.getSelectedRowIds(),source:`api`}))}isRowNodeSelectable(e){return L(e)||He(e)||e.__infiniteBlockState!=null&&e.__infiniteBlockState!==`loaded`?!1:ug(this.selectableFn,e,this.deps.rowKey)}getSelectableRowIdAt(e){let t=this.deps.rowModel.getRow(e);if(!(!t||!this.isRowNodeSelectable(t)))return t.id}applySelectionVisuals(){if(!this.deps.selectionService)return;let e=new Set(this.deps.selectionService.getSelectedRowIds()),t=this.deps.isTreeActive?.()?VD(this.deps.rowModel.rowsToDisplay,e):new Set;this.deps.rowRenderer.refreshSelection(e,t),jp(this.deps.mountEl,{selectionColumnOptions:this.deps.selectionColumnOptions,selectedIds:e,indeterminateIds:t,rowModel:this.deps.rowModel}),this.deps.applyCellRangeVisuals?.()}refreshSelectionAfterDataChange(){this.reconcilePendingDefaultSelectedRows(),this.applySelectionVisuals()}applyIndexFocusVisuals(e={}){if(!this.deps.indexFocusService)return;let t=new Set(this.deps.indexFocusService.getFocusedRowIds());this.deps.rowRenderer.refreshIndexFocus(t),this.shouldSyncIndexFocusToSelection(e)&&this.syncIndexFocusToSelection()}onRowsRemoved(e){this.deps.selectionService?.removeRowIds(e)&&(this.applySelectionVisuals(),this.deps.eventBus.emit(`selectionChanged`,{selectedRowIds:this.deps.selectionService.getSelectedRowIds(),source:`api`})),this.deps.indexFocusService?.removeRowIds(e)&&(this.applyIndexFocusVisuals({syncToSelectionColumn:!1}),this.deps.eventBus.emit(`indexFocusChanged`,{focusedRowIds:this.deps.indexFocusService.getFocusedRowIds()}))}finalizePromoteRowId(e,t){let n=this.pendingDefaultSelection!=null,r=!1;this.deps.selectionService?.migrateRowId(e,t)&&(r=!0,this.applySelectionVisuals(),n||this.deps.eventBus.emit(`selectionChanged`,{selectedRowIds:this.deps.selectionService.getSelectedRowIds(),source:`api`})),this.deps.indexFocusService?.migrateRowId(e,t)&&(this.applyIndexFocusVisuals({syncToSelectionColumn:!1}),this.deps.eventBus.emit(`indexFocusChanged`,{focusedRowIds:this.deps.indexFocusService.getFocusedRowIds()})),this.reconcilePendingDefaultSelectedRows(),n&&r&&this.queuePresetSelectionChangedEmit()}reconcileSelectionAfterSetData(e,t){let n=!this.reserveSelection&&t;if(e&&this.deps.selectionService){let t=e.filter(e=>this.deps.rowModel.getRowById(e));n||=this.deps.selectionService.replaceWithRowIds(t)}return n}shouldSyncIndexFocusToSelection(e){return e.syncToSelectionColumn===!1?!1:e.syncToSelectionColumn===!0||this.deps.indexColumnOptions.indexColumn.syncToSelectionColumn}syncIndexFocusToSelection(){if(!this.deps.indexFocusService||!this.deps.selectionService)return;let e=this.deps.indexColumnOptions.indexColumn.focusMode,t=this.deps.selectionColumnOptions.mode;if(!ID(e,t))return;let n=this.deps.indexFocusService.getFocusedRowIds();if(n.length===0){if(!this.deps.selectionService.replaceWithRowIds([],-1))return;this.applySelectionVisuals(),this.deps.applyCellRangeVisuals?.(),this.deps.eventBus.emit(`selectionChanged`,{selectedRowIds:this.deps.selectionService.getSelectedRowIds(),source:`ui`});return}let r=LD(n,e,t).filter(e=>{let t=this.deps.rowModel.getRowIndexById(e);if(t<0)return!1;let n=this.deps.rowModel.getRow(t);return n?this.isRowNodeSelectable(n):!1});r.length!==0&&this.deps.selectionService.replaceWithRowIds(r,this.deps.indexFocusService.getAnchorIndex())&&(this.applySelectionVisuals(),this.deps.applyCellRangeVisuals?.(),this.deps.eventBus.emit(`selectionChanged`,{selectedRowIds:this.deps.selectionService.getSelectedRowIds(),source:`ui`}))}};function GD(e){return{id:e,data:{},rowHeight:0,rowTop:0,rowIndex:0,sourceIndex:0,estimated:!1,isTransient:!0}}function KD(e,t){return e===`display`||t.hasSortOrFilter?t.displayRows.length:t.sourceRows.length}function qD(e,t,n){let r=KD(t,n),i=r;return e.map(e=>{if(e.index===void 0){let t={...e,index:i};return i+=1,t}let t=e.index;return t>r&&(t=r),i=Math.max(i,t+1),{...e,index:t}})}function JD(e){return e.map((e,t)=>({item:e,sortIndex:e.index,originalOrder:t}))}function YD(e){return[...e].sort((e,t)=>t.sortIndex===e.sortIndex?t.originalOrder-e.originalOrder:t.sortIndex-e.sortIndex).map(({item:e,sortIndex:t})=>({data:e.row,index:t}))}function XD(e,t,n){let r=[...e].sort((e,t)=>e.sortIndex===t.sortIndex?e.originalOrder-t.originalOrder:e.sortIndex-t.sortIndex),i=[...n.sourceRows],a=[...n.displayRows],o=[];for(let{item:e}of r){let r=Ju({sourceRows:i,displayRows:a,sortModelLength:+!!n.hasSortOrFilter,filterModelKeyCount:+!!n.hasSortOrFilter}),s=Yu(e.index,t,r);if(s===void 0)continue;o.push({data:e.row,index:s});let c=GD(`__mg_add_rows_by_array_${o.length}`);if(i=Xl(i,[c],s),t===`display`&&n.hasSortOrFilter){let t=Yu(e.index,`display`,r);t!==void 0&&(a=Xl(a,[c],t))}else a=Xl(a,[c],s)}return o}function ZD(e,t,n,r=`desc`){if(e.length===0)return{};let i=JD(qD(e,t,n));return{add:r===`asc`?XD(i,t,n):YD(i)}}function QD(e){let t=[],n=e;for(;n.includes(se);){let e=n.lastIndexOf(se),r=(e===0?n:n.slice(e)).match(/^group::L(\d+)::([^:]+)::(.+)$/);if(!r)break;t.unshift({level:Number.parseInt(r[1],10),field:decodeURIComponent(r[2]),key:decodeURIComponent(r[3])}),n=e===0?``:n.slice(0,e-2)}return t}function $D(e,t){for(let n of e){let e=n.leafGroupPathKey;if(e&&(e===t||e.endsWith(`/${t}`)))return e}return null}function eO(e,t,n){if(e.length===0||e.length>t.length)return null;let r=[],i=[],a;for(let o=0;o<e.length;o+=1){let s=e[o],c=t[o];if(!c)return null;let l=n(c)??s.field,u=Me(s.key),d=Ne(o,l,u,a);r.push(d),i.push({field:l,key:u}),a=d}return{leafGroupId:r[r.length-1],groupPathKey:Pe(r),groupPath:i,groupIds:r}}function tO(e,t){return eO(e.map((e,t)=>({level:t,field:e.field,key:e.key})),t.rowGroupColumns,t.getColumnField)}function nO(e,t,n){let r=t.getGroupedTreeRoots?Kl(t.getGroupedTreeRoots(),e):void 0;if(r?.groupId){let e=eO(QD(r.groupId),t.rowGroupColumns,t.getColumnField);if(e)return e}let i=$D(n,e),a=eO(QD(e),t.rowGroupColumns,t.getColumnField);return!a||i&&a.groupPathKey!==i?null:a}function rO(e,t,n=[]){return`groupPath`in e?tO(e.groupPath,t):nO(e.groupId,t,n)}function iO(e){return e===`(Blanks)`?null:e}function aO(e,t){let n={...e};for(let e of t)n[e.field]=iO(e.key);return n}function oO(e,t,n){let{sourceRows:r,displayRows:i,hasSortOrFilter:a}=n;if(t===`display`||a){let t=0;for(let n of i)z(n)&&r.find(e=>e.id===n.id)?.leafGroupPathKey===e&&(t+=1);return t}return r.filter(t=>t.leafGroupPathKey===e).length}function sO(e){let{sourceRows:t,displayRows:n,groupPathKey:r,withinGroupIndex:i,indexMode:a,hasSortOrFilter:o}=e,s=[];for(let e=0;e<t.length;e+=1)t[e]?.leafGroupPathKey===r&&s.push(e);if(a===`display`&&o){let e=[];for(let i=0;i<n.length;i+=1){let a=n[i];z(a)&&t.find(e=>e.id===a.id)?.leafGroupPathKey===r&&e.push(i)}let a=Math.max(0,Math.min(i,e.length));if(e.length===0)return t.length;if(a===e.length){let r=n[e[e.length-1]],i=t.findIndex(e=>e.id===r?.id);return i>=0?i+1:t.length}let o=n[e[a]],s=t.findIndex(e=>e.id===o?.id);return s>=0?s:t.length}let c=Math.max(0,Math.min(i,s.length));return s.length===0?t.length:c===s.length?s[s.length-1]+1:s[c]}function cO(e,t,n){if(e.rows.length===0)return{transaction:{},expandGroupIds:[]};let r=rO(e.target,n,t.sourceRows);if(!r)return{transaction:{},expandGroupIds:[]};let i=e.indexMode??`source`,a=oO(r.groupPathKey,i,t),o=e.index??a,s=sO({sourceRows:t.sourceRows,displayRows:t.displayRows,groupPathKey:r.groupPathKey,withinGroupIndex:o,indexMode:i,hasSortOrFilter:t.hasSortOrFilter});return{transaction:{add:e.rows.map((e,t)=>({data:aO(e.data,r.groupPath),index:s+t}))},expandGroupIds:r.groupIds}}function lO(e){return{id:e,data:{},rowHeight:0,rowTop:0,rowIndex:0,sourceIndex:0,estimated:!1,isTransient:!0}}function uO(e,t,n,r){let i=new Map,a=[];return e.forEach((e,o)=>{let s=rO(e.target,r,n.sourceRows);if(!s)return;let c=oO(s.groupPathKey,t,n),l=i.get(s.groupPathKey)??c,u=e.index;u===void 0?(u=l,l+=1):(u>c&&(u=c),l=Math.max(l,u+1)),i.set(s.groupPathKey,l),a.push({item:{...e,index:u},resolved:s,globalInsertIndex:sO({sourceRows:n.sourceRows,displayRows:n.displayRows,groupPathKey:s.groupPathKey,withinGroupIndex:u,indexMode:t,hasSortOrFilter:n.hasSortOrFilter}),originalOrder:o})}),a}function dO(e){let t=new Set;for(let n of e)for(let e of n.resolved.groupIds)t.add(e);return[...t]}function fO(e){return[...e].sort((e,t)=>t.globalInsertIndex===e.globalInsertIndex?t.originalOrder-e.originalOrder:t.globalInsertIndex-e.globalInsertIndex).map(({item:e,resolved:t,globalInsertIndex:n})=>({data:aO(e.row,t.groupPath),index:n}))}function pO(e,t,n){let r=[...e].sort((e,t)=>e.globalInsertIndex===t.globalInsertIndex?e.originalOrder-t.originalOrder:e.globalInsertIndex-t.globalInsertIndex),i=[...t.sourceRows],a=[...t.displayRows],o=[];for(let{item:e,resolved:s}of r){let r=Ju({sourceRows:i,displayRows:a,sortModelLength:+!!t.hasSortOrFilter,filterModelKeyCount:+!!t.hasSortOrFilter}),c=sO({sourceRows:r.sourceRows,displayRows:r.displayRows,groupPathKey:s.groupPathKey,withinGroupIndex:e.index,indexMode:n,hasSortOrFilter:t.hasSortOrFilter});o.push({data:aO(e.row,s.groupPath),index:c});let l=lO(`__mg_add_group_rows_by_array_${o.length}`);i=Xl(i,[l],c),a=Xl(a,[l],c)}return o}function mO(e,t,n,r){if(e.length===0)return{transaction:{},expandGroupIds:[]};let i=t?.indexMode??`source`,a=t?.order??`desc`,o=uO(e,i,n,r);return o.length===0?{transaction:{},expandGroupIds:[]}:{transaction:{add:a===`asc`?pO(o,n,i):fO(o)},expandGroupIds:dO(o)}}function hO(e,t){let n=e.indexMode??`source`,r=Yu(e.index,n,t);return{add:e.rows.map((e,t)=>({data:e.data,index:r===void 0?void 0:r+t}))}}function gO(e,n){let r=new Set(t.g(e.rowIds)??[]);if(e.indexes?.length){let t=e.indexMode??`source`;for(let i of Xu(e.indexes,t,n))r.add(i)}return r.size===0?{}:{remove:[...r]}}function _O(e){return e.rows.length===0?{}:{update:e.rows.map(e=>e.rowId!==void 0&&e.rowId!==null?{data:{...e.data},rowId:String(e.rowId)}:{...e.data})}}function vO(e){return e.remove?.length?e.remove.filter(e=>typeof e==`string`):[]}function yO(e,n,r){return{rows:e.map(e=>({rowId:e.id,rowIndex:r(e.id),data:t.N(e,n),isTransient:e.isTransient??!1}))}}function bO(e,n){return{rows:e.map(e=>({rowId:e.id,data:t.N(e,n)}))}}function xO(e,n,r){return{oldRowId:e,newRowId:n.id,data:t.N(n,r)}}var SO=class{deps;pendingTransaction=null;pendingUpdateRefreshNewData=!1;rowMoveService;constructor(e){this.deps=e,this.rowMoveService=new Kb({getSourceRows:()=>this.deps.rowModel.getSourceRows(),getDisplayRows:()=>this.deps.rowModel.rowsToDisplay,getSortModelLength:()=>this.deps.rowModel.getSortModel().length,getFilterModelKeyCount:()=>Object.keys(this.deps.rowModel.getFilterModel()).length,isSortOrFilterActive:()=>this.deps.rowModel.getSortModel().length>0||this.deps.filterOps.isAnyFilterActive(),setSourceRows:e=>this.deps.rowModel.setSourceRows(e),emitRowMoved:e=>this.deps.eventBus.emit(`rowMoved`,e),isRowGroupingActive:()=>this.deps.isRowGroupingActive?.()??!1,isTreeActive:()=>this.deps.isTreeActive?.()??!1,getTreeDragScope:()=>this.deps.getTreeDragScope?.()??`siblings`,getDataPath:()=>this.deps.getDataPath?.(),setDataPath:()=>this.deps.setDataPath?.()})}async applyTransaction(e){e.newData&&(this.pendingUpdateRefreshNewData=!0);let t=this.collectAsyncMutationLoadingRowIds(e),n=async()=>{let t=await ix(e,{rowKey:this.deps.rowKey,handlers:this.deps.asyncRowMutation,getRowById:e=>this.deps.rowModel.getRowById(e),sourceRows:this.deps.rowModel.getSourceRows()}),n=vO(t);if(n.length>0){this.prepareRemoveRows(new Set(n));let e=this.commitTransaction(t);return this.finalizeRemoveRows(new Set(n)),e}return this.commitTransaction(t)};return t.length===0?n():this.withAsyncMutationLoading(t,n)}commitTransaction(e){e.newData&&(this.pendingUpdateRefreshNewData=!0),this.recordMutationChannelChanges(e);let t=this.deps.rowModel.applyTransaction(e);return this.deps.viewport.syncViewportHeight(),this.queueTransactionFlush(t),t}recordRowDataChange=e=>{this.deps.rowDataChangeTracker.record(e)};async addRows(e){let t=hO(e,this.createRowIndexContext());return this.applyTransaction(t)}async addRowsByArray(e,t){if(e.length===0)return{add:[],remove:[],update:[]};let n=t?.indexMode??`source`,r=t?.order??`desc`,i=ZD(e,n,this.createRowIndexContext(),r);return this.applyTransaction(i)}async addGroupRows(e){let t=this.requireGroupInsertDeps(`addGroupRows`),{transaction:n,expandGroupIds:r}=cO(e,this.createRowIndexContext(),t);if(!n.add?.length)return{add:[],remove:[],update:[]};let i=await this.applyTransaction(n);return this.expandTargetGroups(r),i}async addGroupRowsByArray(e,t){if(e.length===0)return{add:[],remove:[],update:[]};let n=this.requireGroupInsertDeps(`addGroupRowsByArray`),{transaction:r,expandGroupIds:i}=mO(e,t,this.createRowIndexContext(),n);if(!r.add?.length)return{add:[],remove:[],update:[]};let a=await this.applyTransaction(r);return this.expandTargetGroups(i),a}async removeRows(e){let n=gO(e.rowIds?{...e,rowIds:t.g(e.rowIds)}:e,this.createRowIndexContext());return vO(n).length===0?{add:[],remove:[],update:[]}:this.applyTransaction(n)}async updateRows(e){if(e.rows.length===0)return{add:[],remove:[],update:[]};e.newData&&(this.pendingUpdateRefreshNewData=!0);let t=_O(e);return this.applyTransaction(t)}moveRowSync(e,t=`api`){this.deps.beginRowOrderVisualCapture?.();let n=this.rowMoveService.moveRow(e,t);return n.moved&&this.afterRowOrderChanged(),n}moveRowsSync(e,t=`api`){this.deps.beginRowOrderVisualCapture?.();let n=this.rowMoveService.moveRows(e,t);return n.moved&&this.afterRowOrderChanged(),n}async moveRow(e,t=`api`){if(!(t===`api`&&this.deps.asyncRowMutation?.move))return this.moveRowSync(e,t);this.deps.beginRowOrderVisualCapture?.();let n=this.rowMoveService.moveRow({...e,deferCommit:!0},t);if(!n.moved||!n.commitPlan)return n;let r=n.moves??n.commitPlan.moves;await this.withAsyncMutationLoading([e.rowId],()=>ox({rowIds:[e.rowId],leaderRowId:e.rowId,toIndex:e.toIndex,indexMode:e.indexMode,moves:r,source:t},{handlers:this.deps.asyncRowMutation,getRowById:e=>this.deps.rowModel.getRowById(e)})),this.rowMoveService.commitPlan(n.commitPlan),this.afterRowOrderChanged();let{commitPlan:i,...a}=n;return a}async moveRows(e,t=`api`){if(!(t===`api`&&this.deps.asyncRowMutation?.move))return this.moveRowsSync(e,t);this.deps.beginRowOrderVisualCapture?.();let n=this.rowMoveService.moveRows({...e,deferCommit:!0},t);if(!n.moved||!n.commitPlan)return n;let r=n.moves??n.commitPlan.moves;await this.withAsyncMutationLoading(e.rowIds,()=>ox({rowIds:e.rowIds,leaderRowId:e.leaderRowId,toIndex:e.toIndex,indexMode:e.indexMode,moves:r,source:t},{handlers:this.deps.asyncRowMutation,getRowById:e=>this.deps.rowModel.getRowById(e)})),this.rowMoveService.commitPlan(n.commitPlan),this.afterRowOrderChanged();let{commitPlan:i,...a}=n;return a}finishRowMove(e,t=`uiRowDrag`){this.finishRowMoves([e],t)}finishRowMoves(e,t=`uiRowDrag`,n){let r=this.deps.rowModel.getSourceRows();for(let i of e){let e=r.findIndex(e=>e.id===i);if(e<0)continue;let a=n?.startSourceIndices?.get(i)??e,o=n?.resolveTreeDrop?.(i),s=o?.siblingIndex!==void 0&&o.treeLevel!==void 0?{parentRowId:o.parentRowId??null,siblingIndex:o.siblingIndex,treeLevel:o.treeLevel}:q(r,i)??void 0;if(!Ab({fromIndex:a,toIndex:e,startTreePosition:n?.startTreePositions?.get(i),currentTreePosition:s}))continue;let c=n?.displayIndex!==void 0||o?{displayIndex:n?.displayIndex,...o}:void 0;this.deps.eventBus.emit(`rowMoved`,Aa(i,a,e,t,!0,c))}}applyRowDragPlan(e,t=`uiRowDrag`){this.deps.beginRowOrderVisualCapture?.(),this.deps.rowModel.setSourceRows([...e.rows]),this.afterRowOrderChanged();for(let n of e.moves)this.deps.eventBus.emit(`rowMoved`,Aa(n.rowId,n.fromIndex,n.toIndex,t,!0,cd(e.rows,n.rowId,e.treeDrop?.displayIndex)??e.treeDrop))}afterRowOrderChanged(){this.deps.viewport.syncViewportHeight(),this.deps.refreshCellSpans(),this.deps.rowRenderer.setValueCacheVersion(this.deps.valueCache.getVersion()),this.deps.reconcileRowPoolAfterDisplayChange(),this.deps.viewport.redrawImmediately(),this.deps.selectionOps.refreshSelectionAfterDataChange(),this.deps.finishRowOrderVisualSync?.(),this.deps.refreshFooter()}getData(e){let n=e?.sourceOrder===!1?this.deps.rowModel.rowsToDisplay:this.deps.rowModel.getSourceRows();return t.M(n,this.deps.rowModel.getRowKey())}promoteRowId(e){let n=t.m(e.rowId),{businessId:r}=e;if(this.deps.isEditingTargetRow(n))return{ok:!1,reason:`Row is being edited`};let i=this.deps.rowModel.promoteRowId(n,r);if(!i.ok)return i;this.finalizePromoteRowId(n,i.rowId,r);let a=this.deps.rowModel.getRowById(i.rowId);return a&&this.deps.eventBus.emit(`rowIdPromoted`,xO(n,a,this.deps.rowModel.getRowKey())),{ok:!0,rowId:t.D(i.rowId,{rowKey:this.deps.rowModel.getRowKey(),getRowById:e=>this.deps.rowModel.resolveRowById(e)})}}beginUpdate(){this.deps.changeDetection.beginDeferred()}endUpdate(){this.deps.changeDetection.endDeferred(()=>{this.flushPendingTransaction()})}createRowIndexContext(){return Ju({sourceRows:this.deps.rowModel.getSourceRows(),displayRows:this.deps.rowModel.rowsToDisplay,sortModelLength:this.deps.rowModel.getSortModel().length,filterModelKeyCount:Object.keys(this.deps.rowModel.getFilterModel()).length})}requireGroupInsertDeps(e){if(!this.deps.isRowGroupingActive?.())throw Error(`${e} requires rowGrouping to be enabled`);let t=this.deps.getGroupInsertDeps?.();if(!t)throw Error(`${e} requires rowGrouping to be enabled`);return t}expandTargetGroups(e){e.length!==0&&this.deps.expandGroups?.(e)}prepareRemoveRows(e){this.deps.cellEditing.cancelEditingForRemovedRows(e),this.deps.cellEditing.clearRowValidation({rowIds:[...e]})}finalizeRemoveRows(e){let t=this.deps.cellFocusService.getFocusedCell();t&&e.has(t.rowId)&&(this.deps.cellFocusService.clear(),this.deps.applyFocusVisuals()),this.deps.selectionOps.onRowsRemoved(e)}finalizePromoteRowId(e,t,n){this.deps.rowRenderer.migrateRowId(e,t),this.deps.validationFeedback.migrateRowId(e,t,this.deps.mountEl),this.deps.migrateCellEditorCacheOnPromoteRowId(e,n);let r=this.deps.cellFocusService.getFocusedCell();r?.rowId===e&&(this.deps.cellFocusService.setFocusedCell({...r,rowId:t}),this.deps.applyFocusVisuals()),this.deps.selectionOps.finalizePromoteRowId(e,t);let i=this.deps.rowModel.getSortModel().length>0||this.deps.filterOps.isAnyFilterActive();if(this.deps.refreshCellSpans(),this.deps.rowRenderer.setValueCacheVersion(this.deps.valueCache.getVersion()),i){this.deps.reconcileRowPoolAfterDisplayChange(),this.deps.viewport.redrawImmediately();return}this.deps.rowRenderer.refreshRows({rowIds:[t],newData:!0}),this.deps.frameService.flushAllFrames()}queueTransactionFlush(e){this.pendingTransaction||={add:[],remove:[],update:[]},this.pendingTransaction.add.push(...e.add),this.pendingTransaction.remove.push(...e.remove),this.pendingTransaction.update.push(...e.update),this.deps.changeDetection.isDeferred()||this.flushPendingTransaction()}flushPendingTransaction(){if(!this.pendingTransaction)return;let e=this.pendingTransaction;this.pendingTransaction=null,this.flushAfterTransaction(e)}flushAfterTransaction(e){let t=this.deps.rowDataChangeTracker.peekPendingColIdsByRow(this.deps.resolveColIdByField),n=e.remove.length>0?e.remove.map(e=>e.id):[];n.length>0&&(this.deps.clearCellEditorCacheForRemovedRows(n),this.deps.clearCellStyleOverridesForRemovedRows(n),this.deps.rowRenderer.releaseRows(n)),this.emitRowMutationEvents(e),this.flushRowDataChangedEvents();let r=e.add.length>0||e.remove.length>0||this.deps.rowModel.getSortModel().length>0||this.deps.filterOps.isAnyFilterActive();if(this.deps.refreshCellSpans(),this.deps.rowRenderer.setValueCacheVersion(this.deps.valueCache.getVersion()),e.update.length>0&&this.deps.isCellSpanActive())this.pendingUpdateRefreshNewData=!1,this.deps.rowRenderer.invalidate(),this.deps.viewport.redrawImmediately();else if(r)this.pendingUpdateRefreshNewData=!1,this.deps.viewport.redrawImmediately();else if(e.update.length>0){let t=this.pendingUpdateRefreshNewData;this.pendingUpdateRefreshNewData=!1,this.deps.rowRenderer.refreshRows({rowIds:e.update.map(e=>e.id),newData:t||void 0}),this.deps.frameService.flushAllFrames()}else this.pendingUpdateRefreshNewData=!1;e.add.length>0&&this.scrollAddedRowsIntoView(e.add),this.deps.selectionOps.refreshSelectionAfterDataChange(),this.deps.refreshFooter(),this.deps.refreshOverlay?.(),t.size>0&&this.deps.cellEditing.schedulePersistedValidationRefreshForRows(t)}scrollAddedRowsIntoView(e){let t=e[0];if(!t)return;let n=this.deps.rowModel.getRowIndexById(t.id);n<0||this.deps.ensureIndexVisible(n,`middle`)}flushRowDataChangedEvents(){this.deps.rowDataChangeTracker.flush({eventBus:this.deps.eventBus,buildRowSnapshot:this.deps.buildRowSnapshot,resolveColIdByField:this.deps.resolveColIdByField})}recordMutationChannelChanges(e){if(!e.update?.length)return;let t=this.deps.rowKey;for(let n of e.update){let e,r;if(nu(n))r=this.deps.rowModel.getRowById(n.rowId),e=n.data;else{e=n;let i=e[t];r=i==null?this.deps.rowModel.getSourceRows().find(t=>t.data===e):this.deps.rowModel.getRowById(String(i))}if(!(!r||r.data===e))for(let t of Object.keys(e)){let n=r.data[t],i=e[t];Object.is(n,i)||this.deps.rowDataChangeTracker.record({rowNode:r,field:t,colId:this.deps.resolveColIdByField?.(t),oldValue:n,newValue:i,source:`api`})}}}emitRowMutationEvents(e){let t=this.deps.rowModel.getRowKey();e.add.length>0&&this.deps.eventBus.emit(`rowsAdded`,yO(e.add,t,e=>this.deps.rowModel.getSourceRowIndexById(e))),e.remove.length>0&&this.deps.eventBus.emit(`rowsRemoved`,bO(e.remove,t))}async withAsyncMutationLoading(e,t){let n=this.deps.setAsyncMutationLoading;if(!n||e.length===0)return t();n(e,!0);try{return await t()}finally{n(e,!1)}}collectAsyncMutationLoadingRowIds(e){let t=this.deps.asyncRowMutation;if(!t)return[];let n=new Set;if(t.remove&&e.remove?.length)for(let t of vO(e))n.add(t);if(t.update&&e.update?.length)for(let t of e.update){if(nu(t)){let e=this.deps.rowModel.getRowById(t.rowId);e&&n.add(e.id);continue}let e=t[this.deps.rowKey];if(e==null)continue;let r=this.deps.rowModel.getRowById(String(e));r&&n.add(r.id)}return[...n]}};function CO(e){return e==null||e===``||typeof e==`string`&&e.trim()===``}function wO(e){if(typeof e==`number`)return Number.isFinite(e)?e:null;if(typeof e==`string`){let t=e.trim();if(t===``)return null;let n=Number(t);return Number.isFinite(n)?n:null}return null}var TO={count:0,numericCount:0,sum:null,average:null};function EO(e){let{ranges:t,displayedColIds:n,rowKindAt:r,getCellValue:i,normalizePosition:a=(e,t)=>({rowIndex:e,colId:t})}=e;if(t.length===0)return{...TO};let o=new Set,s=0,c=0,l=0;for(let e of t){let t=W(e,n);t&&DO(t,n,(e,t)=>{if(!vs(t,r(e)))return;let n=a(e,t),u=`${n.rowIndex}:${n.colId}`;if(o.has(u))return;o.add(u);let d=i(n.rowIndex,n.colId);if(CO(d))return;s+=1;let f=wO(d);f!=null&&(c+=1,l+=f)})}return{count:s,numericCount:c,sum:c>0?l:null,average:c>0?l/c:null}}function DO(e,t,n){let r=t.indexOf(e.leftColId),i=t.indexOf(e.rightColId);if(!(r<0||i<0))for(let a=e.top;a<=e.bottom;a++)for(let e=r;e<=i;e++)n(a,t[e])}var OO=[`left`,`center`,`right`];function kO(e,t){let n=OO.filter(t=>e.includes(t)),r=n.indexOf(t);return r<0?{top:!0,right:!0,bottom:!0,left:!0}:{top:!0,bottom:!0,left:r===0,right:r===n.length-1}}function AO(e){return{top:e.top,height:e.height}}function jO(e){return e.fixed??`center`}function MO(e,t,n,r,i=0){let a=t.indexOf(e.leftColId),o=t.indexOf(e.rightColId);if(a<0||o<0)return null;let s=Math.min(a,o),c=Math.max(a,o),l=null,u=null;for(let e=s;e<=c;e++){let i=t[e];if(!i)continue;let a=n.find(e=>e.colId===i);!a||a.hidden||jO(a)===r&&(l||=a,u=a)}return!l||!u?null:{left:l.left-i,width:u.left+u.width-l.left}}function NO(e,t){return e===`right`?t.getLeftFixedWidth()+t.getCenterTotalWidth():0}function PO(e,t){if(t<=0)return null;let n=e.top+e.height,r=Math.max(0,e.top),i=Math.min(t,n)-r;return i<=0?null:{top:r,height:i,lanes:e.lanes}}function FO(e,t,n,r,i,a){let{topRowIndex:o,bottomRowIndex:s}=Y_(e,t,a??{rowModel:r,columnModel:n,cellSpanService:null}),c=r.getRow(o),l=r.getRow(s);if(!c||!l)return null;let u=n.getColumns(),d={};for(let r of[`left`,`center`,`right`]){let i=MO(e,t,u,r,NO(r,n));i&&(d[r]=i)}if(Object.keys(d).length===0)return null;let f=c.rowTop,p=l.rowTop+l.rowHeight-c.rowTop,m={top:i.compressedScroll?f-i.scrollTop:f,height:p,lanes:d};return!i.compressedScroll||i.viewportHeight==null?m:PO(m,i.viewportHeight)}function IO(e,t){let n=new Set;for(let r of e){let e=t.indexOf(r.leftColId),i=t.indexOf(r.rightColId);if(e<0||i<0)continue;let a=Math.min(e,i),o=Math.max(e,i);for(let e=a;e<=o;e++){let r=t[e];r&&n.add(r)}}return n}function LO(e){let t=new Set;for(let n of e)for(let e=n.top;e<=n.bottom;e+=1)t.add(e);return t}function RO(e,t){if(t<=0)return{rect:{...e,left:0,width:0},clippedLeft:!0,clippedRight:!0};let n=e.left,r=e.width,i=!1,a=!1;n<0&&(r+=n,n=0,i=!0);let o=n+r-t;return o>0&&(r-=o,a=!0),r<=0?{rect:{...e,left:n,width:0},clippedLeft:i,clippedRight:a}:{rect:{...e,left:n,width:r},clippedLeft:i,clippedRight:a}}function zO(e,t,n){if(n<=0)return{rect:{...e,left:0,width:0},clippedLeft:!0,clippedRight:!0};let r=t,i=t+n;e.left+e.width;let a=e.left,o=e.width,s=!1,c=!1;return a<r&&(o-=r-a,a=r,s=!0),a+o>i&&(o-=a+o-i,c=!0),o<=0?{rect:{...e,left:a,width:0},clippedLeft:s,clippedRight:c}:{rect:{...e,left:a,width:o},clippedLeft:s,clippedRight:c}}function BO(e,t){return{top:e.top,bottom:e.bottom,left:e.left&&!t.clippedLeft,right:e.right&&!t.clippedRight}}function VO(e,t,n){return o_(e,t,n)}function HO(e){return e===`right`}function UO(e,t,n,r,i,a){let o=a??FO(e,t,n,r,i);if(!o)return null;let s=e.rightColId,c=n.getColumnById(s);if(!c||c.hidden)return null;let l=jO(c),u=o.lanes[l];if(!u)return null;let d=u.left+u.width-6/2,{top:f,height:p}=AO(o);return{lane:l,left:d,top:f+p-6/2}}var WO=class{deps;overlayEl=null;overlayLanes=null;pasteFlashOverlayEl=null;pasteFlashLanes=null;pasteFlashCleanupTimer=null;fillHandleEl=null;rangeHandleEl=null;normalizedRanges=[];anchor=null;displayedColIds=[];constructor(e){this.deps=e}refresh(e){this.displayedColIds=e.displayedColIds,this.anchor=e.anchor,this.normalizedRanges=e.ranges.map(t=>W(t,e.displayedColIds)).filter(e=>e!=null),this.syncRangeSelectionVisuals(),this.syncHeaderHighlight(),this.syncIndexColumnHighlight()}clear(){this.normalizedRanges=[],this.anchor=null,this.displayedColIds=[],this.syncRangeSelectionVisuals(),this.syncHeaderHighlight(),this.syncIndexColumnHighlight()}syncRangeSelectionVisuals(){if(!this.deps.isCellSelectionVisualEnabled?.()){this.deps.rowRenderer.setCellRangeVisualState(null,null),this.clearBorderOverlays(),this.clearSelectionHandles();return}this.syncCellClasses(),this.syncBorderOverlays(),this.syncSelectionHandle()}syncCellClasses(){let e=this.displayedColIds,t=this.normalizedRanges,n=this.anchor;if(t.length===0){this.deps.rowRenderer.setCellRangeVisualState(null,null);return}this.deps.rowRenderer.setCellRangeVisualState((n,r)=>t.some(t=>Os(n,r,t,e)),n)}ensureOverlay(){if(this.overlayEl&&this.overlayLanes)return this.overlayLanes;this.deps.mountEl.querySelectorAll(`.${es}`).forEach(e=>{e.remove()});let e=document.createElement(`div`);e.className=es;let t=t=>{let n=document.createElement(`div`);return n.className=`mg-cell-range-overlay__lane mg-cell-range-overlay__lane--${t}`,e.appendChild(n),n},n={left:t(`left`),center:t(`center`),right:t(`right`)};return this.deps.rowsLayerEl.appendChild(e),this.overlayEl=e,this.overlayLanes=n,n}resolveBandOptions(){let e=this.deps.isCompressedScroll();return{scrollTop:this.deps.getScrollTop(),scrollLeft:this.deps.getScrollLeft(),compressedScroll:e,viewportHeight:e?this.deps.getViewportHeight():void 0}}findCellElement(e,t){let n=this.deps.rowModel.getRow(e);if(!n)return null;let r=GO(n.id),i=GO(t),a=this.deps.mountEl.querySelector(`.mg-row[data-row-id="${r}"] .mg-cell[data-col-id="${i}"]`);return a instanceof HTMLElement?a:null}syncOverlayLaneLayoutFor(e,t){let{leftFixedWidth:n,centerTotalWidth:r,rightFixedWidth:i}=t;e.left.style.width=`${n}px`,e.center.style.width=`${r}px`,e.right.style.width=`${i}px`,e.center.style.position=`relative`,e.center.style.left=``,e.center.style.transform=``}resolveOverlayLaneLayoutParams(){return{leftFixedWidth:this.deps.columnModel.getLeftFixedWidth(),centerTotalWidth:this.deps.columnModel.getCenterTotalWidth(),rightFixedWidth:this.deps.columnModel.getRightFixedWidth()}}syncOverlayRootWidth(e){let t=this.deps.columnModel.getTotalWidth();e.style.left=`0`,e.style.right=`auto`,e.style.width=`${t}px`,e.style.minWidth=`${t}px`}syncOverlayLaneLayout(e){let t=this.overlayLanes;t&&(this.overlayEl&&this.syncOverlayRootWidth(this.overlayEl),this.syncOverlayLaneLayoutFor(t,e))}findRowLaneElement(e,t){let n=this.deps.rowModel.getRow(e);if(!n)return null;let r=this.deps.mountEl.querySelector(`.mg-row[data-row-id="${GO(n.id)}"]`);if(!(r instanceof HTMLElement))return null;let i=r.querySelector(`.mg-row__lane--${t}`);return i instanceof HTMLElement?i:null}resolveLaneContentRectForRange(e,t){return MO(e,this.displayedColIds,this.deps.columnModel.getColumns(),t,NO(t,this.deps.columnModel))}resolveRangeBand(e,t){let n={rowModel:this.deps.rowModel,columnModel:this.deps.columnModel,cellSpanService:this.deps.getCellSpanService?.()??null};return{band:FO(e,this.displayedColIds,this.deps.columnModel,this.deps.rowModel,t,n),domMeasuredLanes:new Set}}syncBorderOverlays(){if(this.normalizedRanges.length===0){this.clearBorderOverlays();return}let e=this.ensureOverlay(),t=this.resolveBandOptions(),{scrollLeft:n}=t,r=this.deps.columnModel.getLeftFixedWidth(),i=this.deps.columnModel.getCenterTotalWidth(),a=this.deps.columnModel.getRightFixedWidth(),o=this.deps.getViewportWidth(),s=VO(o,r,a),c=o>0&&s>0&&s<i;e.left.replaceChildren(),e.center.replaceChildren(),e.right.replaceChildren(),this.syncOverlayLaneLayout({leftFixedWidth:r,centerTotalWidth:i,rightFixedWidth:a}),e.center.offsetWidth,e.right.offsetWidth;for(let r of this.normalizedRanges){let{band:o}=this.resolveRangeBand(r,t);if(!o)continue;let l=[`left`,`center`,`right`].filter(e=>this.resolveLaneContentRectForRange(r,e)!=null);for(let t of l){let u=this.resolveLaneContentRectForRange(r,t),d=u,f;if(f=t===`center`&&c?zO(u,a_(n,i,s),s):t===`center`||t===`right`?RO(d,t===`center`?i:a):{rect:d,clippedLeft:!1,clippedRight:!1},f.rect.width<=0)continue;let p=BO(kO(l,t),f);t===`center`&&!l.includes(`left`)&&f.clippedLeft&&(p={...p,left:!1});let{top:m,height:h}=AO(o);if(t===`center`){this.appendSegmentedBorder(e[t],p,m,h,f.rect.left,f.rect.width);continue}HO(t)?this.appendSegmentedBorder(e[t],p,m,h,f.rect.left,f.rect.width):this.appendEnvelopeBorder(e[t],p,m,h,f.rect.left,f.rect.width)}}this.ensureOverlayOnTop()}ensureOverlayOnTop(){this.overlayEl?.parentElement===this.deps.rowsLayerEl&&this.deps.rowsLayerEl.appendChild(this.overlayEl)}appendEnvelopeBorder(e,t,n,r,i,a){let o=document.createElement(`div`);o.className=qo,t.top&&o.classList.add(Jo),t.right&&o.classList.add(Yo),t.bottom&&o.classList.add(Xo),t.left&&o.classList.add(Zo),o.style.top=`${n}px`,o.style.height=`${r}px`,o.style.left=`${i}px`,o.style.width=`${a}px`,e.appendChild(o)}appendSegmentedBorder(e,t,n,r,i,a){let o=(t,n)=>{let r=document.createElement(`div`);r.className=`${qo} ${t}`;for(let[e,t]of Object.entries(n))r.style.setProperty(e,t);e.appendChild(r)};t.top&&o(Qo,{top:`${n}px`,left:`${i}px`,width:`${a}px`,height:`2px`}),t.bottom&&o(Qo,{top:`${n+r-2}px`,left:`${i}px`,width:`${a}px`,height:`2px`}),t.left&&o($o,{top:`${n}px`,left:`${i}px`,width:`2px`,height:`${r}px`}),t.right&&o($o,{top:`${n}px`,left:`${i+a-2}px`,width:`2px`,height:`${r}px`})}playCopyFlash(){if(this.normalizedRanges.length===0)return;this.deps.rowRenderer.playCellRangeCopyFlash(),this.ensureOverlay();let e=this.overlayEl;if(!e)return;e.classList.remove(ns),e.offsetWidth,e.classList.add(ns);let t=()=>{e.classList.remove(ns),e.removeEventListener(`animationend`,t)};e.addEventListener(`animationend`,t)}playPasteFlash(e){e.length!==0&&(this.deps.rowRenderer.playCellRangePasteFlash(e),this.playPasteTargetOverlayFlash(e))}measurePasteTargetCellOverlayRect(e,t,n){let r=this.findCellElement(e,t);if(!r)return null;let i=this.deps.columnModel.getColumnById(t);if(!i)return null;let a=i.fixed??`center`,o=n[a],s=r.getBoundingClientRect(),c=o.getBoundingClientRect(),l=s.top-c.top,u=s.left-c.left,d=s.width,f=s.height;return d<=0||f<=0?null:{lane:a,top:l,left:u,width:d,height:f}}playPasteTargetOverlayFlash(e){this.clearPasteFlashOverlay();let t=this.ensurePasteFlashOverlay();this.syncPasteFlashOverlayLayout();let n=[];for(let r of e){let e=this.measurePasteTargetCellOverlayRect(r.rowIndex,r.colId,t);if(!e)continue;let i=document.createElement(`div`);i.className=`${as} ${r.applied?os:ss}`,i.style.top=`${e.top}px`,i.style.left=`${e.left}px`,i.style.width=`${e.width}px`,i.style.height=`${e.height}px`,t[e.lane].appendChild(i),n.push(i)}n.length!==0&&(this.pasteFlashCleanupTimer=window.setTimeout(()=>{this.pasteFlashCleanupTimer=null;for(let e of n)e.remove()},520))}syncOverlayPosition(){if(this.normalizedRanges.length===0){this.syncPasteFlashOverlayLayout();return}this.syncBorderOverlays(),this.syncSelectionHandle(),this.syncPasteFlashOverlayLayout()}clearPasteFlashOverlay(){this.pasteFlashCleanupTimer!=null&&(window.clearTimeout(this.pasteFlashCleanupTimer),this.pasteFlashCleanupTimer=null),this.pasteFlashLanes?.left.replaceChildren(),this.pasteFlashLanes?.center.replaceChildren(),this.pasteFlashLanes?.right.replaceChildren()}ensurePasteFlashOverlay(){if(this.pasteFlashOverlayEl&&this.pasteFlashLanes)return this.pasteFlashLanes;let e=document.createElement(`div`);e.className=cs;let t=t=>{let n=document.createElement(`div`);return n.className=`mg-cell-range-overlay__lane mg-cell-range-overlay__lane--${t}`,e.appendChild(n),n},n={left:t(`left`),center:t(`center`),right:t(`right`)};return this.deps.rowsLayerEl.appendChild(e),this.pasteFlashOverlayEl=e,this.pasteFlashLanes=n,n}syncPasteFlashOverlayLayout(){let e=this.pasteFlashLanes;e&&(e.left.childElementCount>0||e.center.childElementCount>0||e.right.childElementCount>0)&&(this.syncOverlayLaneLayoutFor(e,this.resolveOverlayLaneLayoutParams()),this.pasteFlashOverlayEl&&this.syncOverlayRootWidth(this.pasteFlashOverlayEl),this.pasteFlashOverlayEl?.parentElement===this.deps.rowsLayerEl&&this.deps.rowsLayerEl.appendChild(this.pasteFlashOverlayEl))}clearBorderOverlays(){this.overlayLanes?.left.replaceChildren(),this.overlayLanes?.center.replaceChildren(),this.overlayLanes?.right.replaceChildren()}ensureFillHandle(){if(this.fillHandleEl)return this.fillHandleEl;let e=document.createElement(`div`);return e.className=ls,e.style.width=`6px`,e.style.height=`6px`,this.fillHandleEl=e,e}clearSelectionHandles(){this.fillHandleEl?.remove(),this.fillHandleEl=null,this.rangeHandleEl?.remove(),this.rangeHandleEl=null}syncSelectionHandle(){let e=this.deps.getCellSelectionOptions?.();if(!e||this.normalizedRanges.length!==1){this.clearSelectionHandles();return}let t=this.normalizedRanges[0],n=this.resolveBandOptions(),{band:r}=this.resolveRangeBand(t,n),i=UO(t,this.displayedColIds,this.deps.columnModel,this.deps.rowModel,{...n,viewportWidth:this.deps.getViewportWidth()},null);if(!i){this.clearSelectionHandles();return}if(xs(e)){this.rangeHandleEl?.remove(),this.rangeHandleEl=null,this.mountHandle(this.ensureFillHandle(),i);return}if(Ss(e)){this.fillHandleEl?.remove(),this.fillHandleEl=null,this.mountHandle(this.ensureRangeHandle(),i);return}this.clearSelectionHandles()}mountHandle(e,t){let n=this.ensureOverlay()[t.lane],r=t.lane===`left`?this.deps.columnModel.getLeftFixedWidth():t.lane===`center`?this.deps.columnModel.getCenterTotalWidth():this.deps.columnModel.getRightFixedWidth(),i=Math.max(0,r-6),a=Math.min(Math.max(t.left,0),i);if(r<=0){e.remove();return}e.parentElement!==n&&(e.remove(),n.appendChild(e)),e.style.left=`${a}px`,e.style.top=`${t.top}px`}ensureRangeHandle(){if(this.rangeHandleEl)return this.rangeHandleEl;let e=document.createElement(`div`);return e.className=us,e.style.width=`6px`,e.style.height=`6px`,this.rangeHandleEl=e,e}syncHeaderHighlight(){let e=this.deps.isHeaderHighlightEnabled()?IO(this.normalizedRanges,this.displayedColIds):new Set;this.deps.mountEl.querySelectorAll(`.mg-header-cell[data-col-id]`).forEach(t=>{if(!(t instanceof HTMLElement))return;let n=t.dataset.colId;t.classList.toggle(ds,n!=null&&e.has(n))})}syncIndexColumnHighlight(){if(!this.deps.isIndexColumnHighlightEnabled()){this.deps.rowRenderer.setIndexColumnHighlight(null);return}let e=Fs({rangeRowIndices:LO(this.normalizedRanges),indexFocusedRowIds:this.deps.getIndexFocusedRowIds?.()??[],selectedRowIds:this.deps.getSelectedRowIds?.()??[],rowIndexById:e=>this.deps.rowModel.getRowIndexById(e)});this.deps.rowRenderer.setIndexColumnHighlight(t=>e.has(t))}destroy(){this.clear(),this.clearPasteFlashOverlay(),this.overlayEl?.remove(),this.overlayEl=null,this.overlayLanes=null,this.pasteFlashOverlayEl?.remove(),this.pasteFlashOverlayEl=null,this.pasteFlashLanes=null,this.fillHandleEl=null,this.rangeHandleEl=null}};function GO(e){return typeof CSS<`u`&&typeof CSS.escape==`function`?CSS.escape(e):e.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`)}function KO(e){return{startRowIndex:e.startRowIndex,endRowIndex:e.endRowIndex,startColId:e.startColId,endColId:e.endColId}}function qO(e){return{rowIndex:e.rowIndex,colId:e.colId}}function JO(e,t){return e.length===t.length&&e.every((e,n)=>ks(e,t[n]))}function YO(e,t){let n=t.expandRangeForCellSpans?.(e)??e,r=W(n,t.displayedColIds);return!r||t.rowKindAt&&!As(n,t.rowKindAt)?null:Ds(r)}function XO(e,t){let n=[];for(let r of e){let e=YO(r,t);e&&n.push(e)}return n}function ZO(e,t,n){for(let r=0;r<t.length;r++){let i=W(t[r],n);if(i&&Os(e.rowIndex,e.colId,i,n))return r}return-1}var QO=class{suppressMultiRanges;ranges=[];anchor=null;constructor(e=!0){this.suppressMultiRanges=e}getRanges(){return this.ranges.map(KO)}getAnchor(){return this.anchor?qO(this.anchor):null}hasRanges(){return this.ranges.length>0}isSuppressMultiRanges(){return this.suppressMultiRanges}setSuppressMultiRanges(e){this.suppressMultiRanges=e,e&&this.ranges.length>1&&(this.ranges=this.ranges.slice(0,1))}setAnchor(e){this.anchor=e?qO(e):null}clear(){return this.ranges.length===0&&this.anchor===null?!1:(this.ranges=[],this.anchor=null,!0)}setRanges(e,t,n){let r=XO(e,t);this.suppressMultiRanges&&r.length>1&&(r=r.slice(0,1));let i=!JO(this.ranges,r);return!i&&n==null?!1:(this.ranges=r,n===null?this.anchor=null:n===void 0?r.length===0&&(this.anchor=null):this.anchor=qO(n),i||n!==void 0)}addRange(e,t,n){let r=YO(e,t);return r?this.suppressMultiRanges?this.setRanges([r],t,n??this.anchor):!this.ranges.some(e=>ks(e,r))&&(this.ranges=[...this.ranges,r],n&&(this.anchor=qO(n)),!0):!1}extendFromAnchor(e,t){if(!this.anchor)return!1;let n=YO(Ts(this.anchor,e),t);if(!n)return!1;let r=ZO(this.anchor,this.ranges,t.displayedColIds);if(r>=0){let e=[...this.ranges];return e[r]=n,this.setRanges(e,t,this.anchor)}return this.setRanges([n],t,this.anchor)}extendFocusedRange(e,t,n){if(this.anchor)return this.extendFromAnchor(t,n);let r=YO(Ts(e,t),n);if(!r)return!1;let i=ZO(e,this.ranges,n.displayedColIds);if(i>=0){let t=[...this.ranges];return t[i]=r,this.setRanges(t,n,e)}return this.ranges.length===0||this.suppressMultiRanges?this.setRanges([r],n,e):this.addRange(r,n,e)}isCellInAnyRange(e,t,n){return ZO({rowIndex:e,colId:t},this.ranges,n)>=0}},$O=class{deps;cellSelectionGridOptions;cellSelectionOptions;cellRangeVisualGridOptions;cellRangeVisualOptions;cellClipboardGridOptions;cellRangeService;cellRangeVisualController;rowOrderRangeIndexSnapshot=null;constructor(e,t){this.deps=e,this.cellSelectionGridOptions={cellSelection:t.cellSelection,enableCellCopy:t.enableCellCopy,enableCellPaste:t.enableCellPaste},this.cellSelectionOptions=ws(this.cellSelectionGridOptions),this.cellRangeVisualGridOptions={enableHeaderHighlight:t.enableHeaderHighlight,enableIndexColumnHighlight:t.enableIndexColumnHighlight},this.cellRangeVisualOptions=Cs(this.cellRangeVisualGridOptions),this.cellClipboardGridOptions={processCellForClipboard:t.processCellForClipboard,processCellFromClipboard:t.processCellFromClipboard,processDataFromClipboard:t.processDataFromClipboard},this.cellRangeService=new QO(this.cellSelectionOptions.suppressMultiRanges),this.cellRangeVisualController=this.createCellRangeVisualController()}getCellRangeService(){return this.cellRangeService}getCellSelectionOptions(){return this.cellSelectionOptions}getCellClipboardOptions(){return this.cellClipboardGridOptions}isCellSelectionEnabled(){return this.cellSelectionOptions.enabled}clearCellSelectionOnStructuralChange(){this.cellRangeService.hasRanges()&&this.clearCellSelection()}getCellRanges(){return[...this.cellRangeService.getRanges()]}getCellSelectionAggregation(){if(!this.cellSelectionOptions.enabled||!this.cellRangeService.hasRanges())return null;let e=this.getCellRangeOperationContext(),t=EO({ranges:this.cellRangeService.getRanges(),displayedColIds:e.displayedColIds,rowKindAt:e.rowKindAt??(()=>void 0),getCellValue:(e,t)=>{let n=this.deps.rowModel.getRow(e),r=this.deps.columnModel.getColumnById(t);if(!(!n||!r))return U(n,r)},normalizePosition:(e,t)=>{let n=this.deps.rowModel.getRow(e);if(!n)return{rowIndex:e,colId:t};let r=dE(this.deps.rowModel,this.deps.columnModel,this.deps.cellSpanService,{rowId:n.id,rowIndex:e,colId:t});return{rowIndex:r.rowIndex,colId:r.colId}}});return t.count>0?t:null}clearCellSelection(){this.cellRangeService.clear()&&(this.applyCellRangeVisuals(),this.emitCellSelectionChanged(`api`))}addCellRange(e){if(!this.cellSelectionOptions.enabled){Is(e,`cellSelection is disabled`);return}let t=this.getCellRangeOperationContext(),n=t.rowKindAt??(()=>void 0);if(!W(e,t.displayedColIds)){Is(e,`column ids not in displayed columns`);return}if(!As(e,n)){Is(e,`range includes ineligible cells`);return}this.cellRangeService.addRange(e,t)&&(this.applyCellRangeVisuals(),this.emitCellSelectionChanged(`api`))}copySelectedRangeToClipboard(){return this.deps.getCellClipboardService()?.copySelectedRanges()??!1}async pasteFromClipboard(){await this.deps.getCellClipboardService()?.pasteFromClipboard()}updateCellRangeVisualOptions(e){this.cellRangeVisualGridOptions={...this.cellRangeVisualGridOptions,...e},this.cellRangeVisualOptions=Cs(this.cellRangeVisualGridOptions),this.applyCellRangeVisuals()}updateCellSelectionOptions(e){let t=this.cellSelectionOptions.enabled,n=t?[...this.getCellRanges()]:[];this.cellSelectionGridOptions={...this.cellSelectionGridOptions,...e},this.cellSelectionOptions=ws(this.cellSelectionGridOptions),this.syncCellRangeSelectionRuntime(t),t&&!this.cellSelectionOptions.enabled&&n.length>0&&this.deps.eventBus.emit(`cellSelectionChanged`,{ranges:[],source:`api`})}updateCellClipboardOptions(e){this.cellClipboardGridOptions={...this.cellClipboardGridOptions,...e}}playCellRangeCopyFlash(){this.cellRangeVisualController.playCopyFlash()}playCellRangePasteFlash(e){requestAnimationFrame(()=>{this.cellRangeVisualController.playPasteFlash(e)})}getCellRangeOperationContext(){let e=this.deps.columnModel.getDisplayedColumnIdsInLaneOrder();return{displayedColIds:e,rowKindAt:e=>this.deps.rowModel.getRow(e)?.rowKind,expandRangeForCellSpans:t=>J_(t,{rowModel:this.deps.rowModel,columnModel:this.deps.columnModel,cellSpanService:this.deps.cellSpanService,displayedColIds:e})}}applyCellRangeVisuals(){let e=this.deps.columnModel.getDisplayedColumnIdsInLaneOrder(),t=this.cellRangeService.getRanges(),n=Es({serviceRanges:t,enableHeaderHighlight:this.cellRangeVisualOptions.enableHeaderHighlight,enableIndexColumnHighlight:this.cellRangeVisualOptions.enableIndexColumnHighlight,editingRanges:this.resolveRowEditingHighlightRanges(),focus:this.resolveHighlightProjectionCell(),focusEligible:this.isHighlightProjectionCellEligible()});if(n.length===0){this.cellRangeVisualController.clear();return}let r=t.length>0?this.cellRangeService.getAnchor():this.resolveHighlightProjectionCell();this.cellRangeVisualController.refresh({ranges:n,anchor:r,displayedColIds:e})}applyCellRangeScrollVisuals(){this.cellRangeService.hasRanges()&&this.cellRangeVisualController.syncOverlayPosition()}emitCellSelectionChanged(e){this.deps.eventBus.emit(`cellSelectionChanged`,{ranges:[...this.cellRangeService.getRanges()],source:e})}async handleCellSelectionDeleteKey(){if(!this.cellSelectionOptions.enabled||!this.cellRangeService.hasRanges())return;this.deps.cellEditing.isEditing()&&await this.deps.cellEditing.stopEditing(!0);let e=[...this.cellRangeService.getRanges()];this.deps.eventBus.emit(`cellSelectionDeleteStart`,{ranges:e});let t=await this.deps.getCellRangeDeleteWriteService()?.clearRanges(e,this.getCellRangeOperationContext())??0;this.deps.eventBus.emit(`cellSelectionDeleteEnd`,{ranges:e,changedCellCount:t})}beginRowOrderVisualCapture(){this.rowOrderRangeIndexSnapshot=this.captureCellRangeRowIndexSnapshot()}finishRowOrderVisualSync(){this.remapCellFocusAfterRowOrderChanged(),this.remapCellRangeSelectionAfterRowOrderChanged(this.rowOrderRangeIndexSnapshot),this.rowOrderRangeIndexSnapshot=null,this.deps.applyIndexFocusVisuals(),this.deps.syncCellRangeFromIndexFocus(),this.deps.applyFocusVisuals(),this.applyCellRangeVisuals()}destroy(){this.cellRangeService.clear(),this.cellRangeVisualController.destroy()}createCellRangeVisualController(){return new WO({mountEl:this.deps.mountEl,rowsLayerEl:this.deps.rowsLayerEl,rowModel:this.deps.rowModel,columnModel:this.deps.columnModel,rowRenderer:this.deps.rowRenderer,getScrollTop:()=>this.deps.viewport.getLogicalScrollTop(),getScrollLeft:()=>this.deps.viewport.viewportEl.scrollLeft,getViewportWidth:()=>this.deps.viewport.viewportEl.clientWidth,isCompressedScroll:()=>this.deps.rowsLayerEl.classList.contains(`mg-rows-layer--compressed`),getViewportHeight:()=>this.deps.viewport.getRenderViewportHeight(),isHeaderHighlightEnabled:()=>this.cellRangeVisualOptions.enableHeaderHighlight,isIndexColumnHighlightEnabled:()=>this.cellRangeVisualOptions.enableIndexColumnHighlight&&this.deps.indexColumnOptions.showIndexColumn,getIndexFocusedRowIds:()=>this.deps.indexFocusService?.getFocusedRowIds()??[],getSelectedRowIds:()=>this.deps.selectionService?.getSelectedRowIds()??[],isSyncToSelectionColumnEnabled:()=>this.deps.indexColumnOptions.indexColumn.syncToSelectionColumn?ID(this.deps.indexColumnOptions.indexColumn.focusMode,this.deps.selectionColumnOptions.mode):!1,isCellSelectionVisualEnabled:()=>this.cellSelectionOptions.enabled,getCellSelectionOptions:()=>this.cellSelectionOptions,getCellSpanService:()=>this.deps.cellSpanService})}syncCellRangeSelectionRuntime(e){if(e&&!this.cellSelectionOptions.enabled){this.cellRangeService.clear(),this.applyCellRangeVisuals();return}this.cellRangeService.setSuppressMultiRanges(this.cellSelectionOptions.suppressMultiRanges),this.applyCellRangeVisuals()}resolveRowEditingHighlightRanges(){if(!this.deps.cellEditing.isEditing())return[];let e=this.deps.cellEditing.getEditingCells();if(e.length<=1)return[];let t=e[0].rowIndex,n=this.deps.rowModel.getRow(t)?.rowKind,r=this.deps.columnModel.getDisplayedColumnIdsInLaneOrder(),i=e.map(e=>e.colId).filter(e=>_s(e,n)).map(e=>r.indexOf(e)).filter(e=>e>=0).sort((e,t)=>e-t);if(i.length===0)return[];let a=r[i[0]],o=r[i[i.length-1]];return[Ts({rowIndex:t,colId:a},{rowIndex:t,colId:o})]}captureCellRangeRowIndexSnapshot(){if(!this.cellRangeService.hasRanges())return null;let e=new Set;for(let t of this.cellRangeService.getRanges()){let n=Math.min(t.startRowIndex,t.endRowIndex),r=Math.max(t.startRowIndex,t.endRowIndex);for(let t=n;t<=r;t+=1)e.add(t)}let t=this.cellRangeService.getAnchor();if(t&&e.add(t.rowIndex),e.size===0)return null;let n=new Map;for(let t of e){let e=this.deps.rowModel.getRow(t);e&&n.set(t,e.id)}return n.size>0?n:null}remapCellFocusAfterRowOrderChanged(){let e=this.deps.cellFocusService.getFocusedCell();if(!e||J(e))return;let t=this.deps.rowModel.getRowIndexById(e.rowId);if(t<0){this.deps.cellFocusService.clear();return}t!==e.rowIndex&&this.deps.cellFocusService.setFocusedCell({...e,rowIndex:t})}remapCellRangeSelectionAfterRowOrderChanged(e){if(!e||!this.cellRangeService.hasRanges())return;let t=this.getCellRangeOperationContext(),n=t=>{let n=e.get(t);if(!n)return t;let r=this.deps.rowModel.getRowIndexById(n);return r>=0?r:t},r=this.cellRangeService.getRanges().map(e=>({startRowIndex:n(e.startRowIndex),endRowIndex:n(e.endRowIndex),startColId:e.startColId,endColId:e.endColId})),i=this.cellRangeService.getAnchor(),a=i?{rowIndex:n(i.rowIndex),colId:i.colId}:null;this.cellRangeService.setRanges(r,t,a)}resolveHighlightProjectionCell(){if(this.deps.cellEditing.isEditing()){let e=this.deps.cellEditing.getEditingCell();if(e){let t=this.deps.rowModel.getRowIndexById(String(e.rowId));if(t>=0)return{rowIndex:t,colId:e.colId}}}let e=this.deps.cellFocusService.getFocusedCell();return!e||J(e)?null:{rowIndex:e.rowIndex,colId:e.colId}}isHighlightProjectionCellEligible(){let e=this.resolveHighlightProjectionCell();if(!e)return!1;let t=this.deps.rowModel.getRow(e.rowIndex)?.rowKind;return _s(e.colId,t)}},ek=class{deps;constructor(e){this.deps=e}reconcileOrInvalidateRowPool(){if(this.deps.isCellSpanActive()){this.deps.rowRenderer.invalidate();return}this.deps.reconcileRowPoolAfterDisplayChange()}expandRow(e){return this.deps.rowExpansionOptions.masterDetail?this.deps.rowExpansionService.expandRow(t.m(e),`api`):!1}collapseRow(e){return this.deps.rowExpansionOptions.masterDetail?this.deps.rowExpansionService.collapseRow(t.m(e),`api`):!1}isRowExpanded(e){return this.deps.rowExpansionOptions.masterDetail?this.deps.rowExpansionService.isExpanded(t.m(e)):!1}setDetailRowData(e,n){return this.deps.rowExpansionOptions.masterDetail?this.deps.rowExpansionService.setDetailRowData(t.m(e),n):!1}reloadDetailRowData(e){return this.deps.rowExpansionOptions.masterDetail?this.deps.rowExpansionService.reloadDetailRowData(t.m(e)):!1}expandAll(){this.deps.treeTableService.active?this.deps.treeTableService.expandAll(`api`):this.deps.rowGroupingService.active&&this.deps.rowGroupingService.expandAll(`api`),this.deps.rowExpansionOptions.masterDetail&&this.deps.rowExpansionService.expandAll(`api`)}collapseAll(){this.deps.treeTableService.active?this.deps.treeTableService.collapseAll():this.deps.rowGroupingService.active&&this.deps.rowGroupingService.collapseAll(`api`),this.deps.rowExpansionOptions.masterDetail&&this.deps.rowExpansionService.collapseAll(`api`)}setRowGroupColumns(e){this.deps.rowGroupingOptions.rowGrouping&&(this.deps.rowGroupingService.setRowGroupColumns(e,`api`),this.deps.rowModel.refreshModel({applyDefaultExpanded:!0}))}getRowGroupColumns(){return this.deps.rowGroupingService.getRowGroupColumns()}expandGroup(e){return this.deps.rowGroupingService.active?this.deps.rowGroupingService.isExpanded(e)?!0:(this.deps.rowGroupingService.expandGroup(e,`api`),this.deps.rowGroupingService.isExpanded(e)):!1}expandGroupsInPath(e){if(this.deps.rowGroupingService.active)for(let t of e)this.expandGroup(t)}collapseGroup(e){return this.deps.rowGroupingService.active?!this.deps.rowGroupingService.isExpanded(e)||(this.deps.rowGroupingService.collapseGroup(e,`api`),!this.deps.rowGroupingService.isExpanded(e)):!1}isGroupExpanded(e){return this.deps.rowGroupingService.active?this.deps.rowGroupingService.isExpanded(e):!1}expandNode(e){if(!this.deps.treeTableService.active)return!1;let n=t.m(e);return this.deps.treeTableService.isExpanded(n)?!0:(this.deps.treeTableService.requestToggleNode(n,`api`),this.deps.treeTableService.isExpanded(n))}collapseNode(e){if(!this.deps.treeTableService.active)return!1;let n=t.m(e);return!this.deps.treeTableService.isExpanded(n)||(this.deps.treeTableService.collapseNode(n,`api`),!this.deps.treeTableService.isExpanded(n))}isNodeExpanded(e){return this.deps.treeTableService.active?this.deps.treeTableService.isExpanded(t.m(e)):!1}getDataPath(e){if(this.deps.treeTableService.active)return this.deps.treeTableService.getDataPathForRow(t.m(e))}resolveTreeHierarchyActions(e){if(!V(e))return{visible:!1};let t=this.queryTreeHierarchyAvailableActions(e.id);return!t||!t.promote&&!t.demote?{visible:!1}:{visible:!0}}resolveTreeHierarchyMenuActions(e){let t=this.queryTreeHierarchyAvailableActions(e);return t?Lb(t):[]}applyTreeHierarchyShortcut(e,t){if(!this.isTreeHierarchyActionsEnabled()||this.deps.getRowDragCommitService()?.isCommitting())return;let n=this.deps.rowModel.rowsToDisplay,r=Bb({sourceRows:this.deps.rowModel.getSourceRows(),displayRows:n,getDataPath:this.deps.treeTableOptions.getDataPath,setDataPath:this.deps.treeTableOptions.setDataPath,action:t,rowId:e});if(!r.ok)return;let{plan:i}=r;if(this.deps.asyncRowMutation?.move){let r=Nb({action:t,rowId:e,displayRows:n}),a=r?.kind===`outdent`?r.nestUnderRowId:void 0,o=q(i.rows,i.leaderRowId)??void 0;this.deps.getRowDragCommitService()?.commit({plan:i,rowIds:zb(i),sourceColId:Ge,nestUnderRowId:a,treeContext:o});return}this.deps.applyRowDragPlan(i,`api`)}syncRowExpansionDisplay(e){if(!this.deps.rowExpansionOptions.masterDetail)return;let n=this.deps.viewport.captureScrollAnchor(),r=0,i=0;if(e?.rowId!=null){let n=t.m(e.rowId);if(e.expanded){let e=this.deps.rowModel.getDisplayRowById(n);e&&(r=e.rowTop+e.rowHeight)}else{let e=this.deps.rowModel.getDisplayRowById(F(n));e&&(r=e.rowTop,i=-e.rowHeight)}}if(this.deps.rowModel.rebuildDisplayProjection(),e?.expanded&&e.rowId!=null){let n=this.deps.rowModel.getDisplayRowById(F(t.m(e.rowId)));n&&(r=n.rowTop,i=n.rowHeight)}if(this.deps.viewport.syncViewportHeightWithDetailCompensation({anchor:n,detailRowTop:r,heightDelta:i}),this.deps.rowExpansionOptions.embedFullWidthRows){this.deps.rowRenderer.invalidate(),this.deps.viewport.redrawImmediately();return}this.deps.viewport.redrawRowExpansionIncremental()}syncRowGroupingDisplay(){this.deps.rowGroupingService.active&&(this.deps.rowModel.rebuildGroupedMapProjection(),this.deps.viewport.syncViewportHeight(),this.deps.refreshCellSpanCache(),this.reconcileOrInvalidateRowPool(),this.deps.viewport.redrawImmediately())}syncTreeTableDisplay(){this.deps.treeTableService.active&&(this.deps.rowModel.rebuildTreeMapProjection(),this.deps.viewport.syncViewportHeight(),this.deps.viewport.syncTreeHeaderExpandState(),this.deps.refreshCellSpanCache(),this.reconcileOrInvalidateRowPool(),this.deps.viewport.redrawImmediately(),this.deps.selectionOps.refreshSelectionAfterDataChange())}refreshTreeLoadingVisuals(e){if(!this.deps.treeTableService.active)return;let t={force:!0,colIds:[Ge]};e&&(t.rowIds=[e]),this.deps.rowRenderer.refreshRows(t)}refreshDetailRowContent(e){!this.deps.rowExpansionOptions.masterDetail||e.length===0||this.deps.rowRenderer.refreshDetailRows(e)}isTreeHierarchyActionsEnabled(){return this.deps.treeTableService.active&&this.deps.treeTableOptions.treeDragScope===`hierarchy`&&this.deps.treeTableOptions.treeHierarchyActions&&typeof this.deps.treeTableOptions.getDataPath==`function`&&typeof this.deps.treeTableOptions.setDataPath==`function`}queryTreeHierarchyAvailableActions(e){return this.isTreeHierarchyActionsEnabled()?Ib({sourceRows:this.deps.rowModel.getSourceRows(),displayRows:this.deps.rowModel.rowsToDisplay,getRowById:e=>this.deps.rowModel.getRowById(e),getDataPath:this.deps.treeTableOptions.getDataPath,setDataPath:this.deps.treeTableOptions.setDataPath,rowId:e}):null}},tk=class{deps;constructor(e){this.deps=e}refresh(){let e=this.deps.getFooterRenderer();if(!e)return;let t=this.deps.summaryOptions.summaryScope===`all`?this.deps.rowModel.getSourceRows():this.deps.rowModel.rowsToDisplay,n=ul({columns:this.deps.columnModel.getColumns(),rows:t,summaryMethod:this.deps.summaryOptions.summaryMethod});e.syncRowLayout(this.deps.columnModel),e.render({columnModel:this.deps.columnModel,centerWindow:this.deps.columnViewport.getWindow(),summaryCells:n,valueCacheVersion:this.deps.valueCache.getVersion()}),this.deps.frameService.flushAllFrames()}};function nk(e){return{rowKey:e.rowKey,displayRows:e.rowModel.rowsToDisplay,resolveRowById:t=>e.rowModel.resolveRowById(t)}}function rk(e){return{gridSize:e.gridSize,getApi:e.getApi,buildRowSnapshot:t=>Lu(t,e.getDisplayRowContext()),getIndexColumnOptions:()=>e.indexColumnOptions.showIndexColumn?e.indexColumnOptions.indexColumn:void 0}}function ik(e,t){return rk({gridSize:e.gridSize,getApi:()=>t.getApi(),getDisplayRowContext:()=>nk(e),indexColumnOptions:e.indexColumnOptions})}function ak(e,n,r){let i={};i.valueCache=new Sy,i.changeDetection=new Fd,i.eventBus=new ag,i.cellFocusService=new kf,i.validationFeedback=new tg,i.columnDragController=new IC,i.rowDataChangeTracker=new $f,i.destroyed=!1,i.centerViewportWidth=0,i.autoSizeCellContentsPending=!1,i.suppressRowLayoutViewportSync=!1,i.preserveScrollOnSetData=n.preserveScrollOnSetData??!0,i.mountEl=e,i.scrollRenderOptions=_a(n),i.cellRenderersByColId=n.cellRenderers?.byColId??{},i.cellEditorsByColId=n.cellEditors?.byColId??{},i.onUnmountRenderer=n.onUnmountRenderer,i.onUnmountEditor=n.onUnmountEditor,i.summaryOptions=st(n),i.chromeNavigationOptions=Cy(n),i.indexColumnOptions=t.ot(n),i.selectionColumnOptions=t.Z(n);let a=t.z(n)===`infinite`;a&&n.rowDragManaged===!0&&console.warn(`[MagicGrid] rowModelType "infinite" does not support rowDragManaged; it has been disabled.`),i.rowDragOptions=wa({...n,rowDragManaged:!a&&n.rowDragManaged}),i.cellSpanOptions=qa(n),i.cellEditorCacheOptions=t.s(n),i.editorOptions=t.f(n),i.cellEditorCacheService=new wu({maxEntries:i.cellEditorCacheOptions.cellEditorCacheMaxEntries}),i.rowExpansionOptions=k(n),i.gridSize=n.size??`default`,i.loadMoreRowOptionsRaw={loadMoreRowEnabled:n.loadMoreRowEnabled,loadMoreRowHeight:n.loadMoreRowHeight,loadMoreRowLoading:n.loadMoreRowLoading,loadMoreRowHasMore:n.loadMoreRowHasMore,loadMoreRowLabels:n.loadMoreRowLabels,loadMoreRowRenderer:n.loadMoreRowRenderer},i.loadMoreRowGridOptions=fo(i.loadMoreRowOptionsRaw,i.gridSize);let o=Jy({tree:n.tree,rowGrouping:n.rowGrouping});i.treeTableOptions=et(n),o.mode===`tree`&&at(!0,i.treeTableOptions.getDataPath),i.rowGroupingOptions=_e({...n,rowGrouping:o.mode===`group`&&n.rowGrouping}),i.rowSelectionOptions=cD(n.rowSelection),i.userColumns=[...n.columns],i.userColumns,rt(i.userColumns);let s=ia(n),c=Lg(n),l=Eu(n);i.filterGridOptions=ca(n);let u=Qi(n);i.columnSortOptions=u,i.showUnsortedSortHintOnHover=u.showUnsortedSortHintOnHover,i.columnModel=new Wg(Un(i.userColumns,i.indexColumnOptions,i.selectionColumnOptions,{rowExpansion:i.rowExpansionOptions,rowGrouping:o.mode===`group`?i.rowGroupingOptions:void 0,treeTable:o.mode===`tree`?i.treeTableOptions:void 0}),i.cellRenderersByColId,i.cellEditorsByColId,Bp(n),s,c,u,i.filterGridOptions),i.columnViewport=new __(i.columnModel);let d=n.rowHeight??ar;i.resolvedSummaryRowHeight=ct(i.summaryOptions.summaryRowHeight,d);let f=n.stripe??!1,{editBehavior:p,editType:m}=dn(n);i.cellDisableContext=vt({isRowDisabled:n.isRowDisabled}),i.cellStyleOverrideService=new zf,i.cellStyleContext={rowStyle:n.rowStyle,editableCellStyle:n.editableCellStyle,showEditableCellIcon:n.showEditableCellIcon??!1,disabledCellStyle:n.disabledCellStyle,showDisabledCellIcon:n.showDisabledCellIcon??!1,getCellStyleOverride:(e,t)=>i.cellStyleOverrideService.get(e,t),getCellDisableContext:()=>i.cellDisableContext},i.invalidEditValueMode=n.invalidEditValueMode??`block`,i.rowValidator=n.rowValidator,i.asyncRowMutation=n.asyncRowMutation,i.editorHost=new gf({onUnmountEditor:n.onUnmountEditor,byName:n.cellEditors?.byName,editorOptions:i.editorOptions}),i.editingService=new _f(i.editorHost),i.rowEditingService=new If(i.editorHost),i.selectionService=sD(n.rowSelection)===!1||!i.selectionColumnOptions.enabled?null:new sg(sD(n.rowSelection)),i.indexFocusService=i.indexColumnOptions.showIndexColumn?new dg(i.indexColumnOptions.indexColumn.focusMode):null,i.frameService=new Pd({frameBudgetMs:i.scrollRenderOptions.frameBudgetMs,rendererFrameBudgetMs:i.scrollRenderOptions.rendererFrameBudgetMs}),i.scrollBridge=new xy;let h=(e,t)=>{let n=i.columnModel.getColumnById(t);return n?U(e,n):e.data[t]},g=ke(i.userColumns).length,{rowModel:_,resolvedInfinite:v}=yu({rowModelType:n.rowModelType,infiniteDatasource:n.infiniteDatasource,blockSize:n.blockSize,maxBlocksInCache:n.maxBlocksInCache,infiniteInitialRowCount:n.infiniteInitialRowCount,infiniteMaxRetries:n.infiniteMaxRetries,infiniteLoadingRowVisible:n.infiniteLoadingRowVisible,rowKey:n.rowKey,rowHeight:d,getCellValue:h,getColumnComparator:e=>i.columnModel.getColumnById(e)?.comparator,filterColumnContext:ev(e=>i.columnModel.getColumnById(e),h),quickFilterText:n.quickFilterText,getQuickFilterColIds:()=>i.columnModel.getColumns().filter(e=>e.filterable).map(e=>e.colId),rowGroupingColumnCount:g,hasTreeTable:typeof n.getDataPath==`function`,hasMasterDetail:typeof n.detailCellRenderer==`function`,rowDragManaged:!a&&n.rowDragManaged===!0,hasTreeLazyLoad:typeof n.loadTreeChildren==`function`});i.rowModel=_,i.resolvedInfiniteOptions=v,i.rowKey=n.rowKey,i.businessRowIdCtx={rowKey:n.rowKey,getRowById:e=>i.rowModel.resolveRowById(e)},i.eventBus.setProjector(og(i.businessRowIdCtx)),i.cellSpanService=new U_({getEnableCellSpan:()=>i.cellSpanOptions.enableCellSpan,getColumnModel:()=>i.columnModel,getDisplayRows:()=>i.rowModel.rowsToDisplay,getRowById:e=>{let t=i.rowModel.getRowIndexById(e);return t>=0?i.rowModel.getRow(t):void 0},getRowByIndex:e=>i.rowModel.getRow(e),getRowCount:()=>i.rowModel.getRowCount()}),i.rowExpansionService=new My({getOptions:()=>i.rowExpansionOptions,getBaseDisplayRows:()=>i.rowModel.getBaseDisplayRows(),onExpansionChanged:e=>{i.eventBus.emit(e.expanded?`rowExpanded`:`rowCollapsed`,e),i.hierarchyOps.syncRowExpansionDisplay(e)},onDetailDataChanged:e=>{i.hierarchyOps.refreshDetailRowContent([e])}}),vu(i.rowModel)&&i.rowModel.setRowExpansionService(i.rowExpansionService),i.loadMoreRowService=new Fy({getOptions:()=>i.loadMoreRowGridOptions,isClientSideRowModel:()=>vu(i.rowModel)}),vu(i.rowModel)&&i.rowModel.setLoadMoreRowService(i.loadMoreRowService),i.rowGroupingService=new Iy({getOptions:()=>i.rowGroupingOptions,getRowGroupColumnsFromDefs:()=>ke(i.userColumns),getGroupedTreeRoots:()=>i.rowModel.getGroupedTreeRoots(),onGroupOpened:e=>{i.eventBus.emit(`rowGroupOpened`,e),i.hierarchyOps.syncRowGroupingDisplay()},onGroupChanged:e=>{i.eventBus.emit(`rowGroupChanged`,e)},onGroupingStateChanged:()=>{i.hierarchyOps.syncRowGroupingDisplay()}}),vu(i.rowModel)&&i.rowModel.setRowGroupingDeps({active:()=>i.rowGroupingService.active,getRowGroupColumns:()=>i.rowGroupingService.getRowGroupColumns(),getGroupKeyCreator:()=>i.rowGroupingOptions.groupKeyCreator,getGroupComparator:()=>i.rowGroupingOptions.groupComparator,getGroupSortKey:()=>i.rowGroupingOptions.groupSortKey,getColumns:()=>i.columnModel.getColumns(),getColumnField:e=>i.columnModel.getColumnById(e)?.prop??e,getMapStageOptions:()=>i.rowGroupingService.getMapStageOptions(),pruneExpanded:e=>i.rowGroupingService.pruneExpanded(e),applyDefaultExpanded:e=>i.rowGroupingService.applyDefaultExpanded(e),clearExpanded:()=>i.rowGroupingService.clearExpanded()}),i.treeTableService=new Hy({getOptions:()=>i.treeTableOptions,getGroupDefaultExpanded:()=>i.rowGroupingOptions.groupDefaultExpanded,getTreeTreeRoots:()=>i.rowModel.getTreeTreeRoots(),getLazyLoadHost:()=>i.treeLazyLoadService,onNodeOpened:e=>{i.eventBus.emit(`treeNodeOpened`,e)},onTreeStateChanged:()=>{i.hierarchyOps.syncTreeTableDisplay()}}),vu(i.rowModel)&&i.rowModel.setTreeTableDeps({active:()=>i.treeTableService.active,getDataPath:()=>i.treeTableOptions.getDataPath,getMapStageOptions:()=>i.treeTableService.getMapStageOptions(),prepareTreeTree:e=>i.treeTableService.prepareTreeTree(e),applyDefaultExpanded:e=>i.treeTableService.applyDefaultExpandedToTree(e),clearExpanded:()=>i.treeTableService.clearExpanded()}),i.headerSortService=new Bm({getSortModel:()=>i.rowModel.getSortModel(),setSortModel:e=>r.setSortModel(e),getColumnById:e=>i.columnModel.getColumnById(e)}),i.columnHandleMenuController=new eT({mountEl:i.mountEl,columnModel:i.columnModel,getSortModel:()=>i.rowModel.getSortModel(),setSortModel:e=>r.setSortModel(e),getFilterModel:()=>r.getFilterModel(),setFilterModel:e=>r.setFilterModel(e),setColumnFixed:(e,t,n)=>r.setColumnFixed(e,t,n),setColumnsHidden:(e,t,n)=>i.columnLayout.setColumnsHidden(e,t,n),getColumnDistinctFilterValues:e=>r.getColumnDistinctFilterValues(e),filterSetValueMode:i.filterGridOptions.filterSetValueMode,filterSetDateLayoutMode:i.filterGridOptions.filterSetDateLayoutMode}),i.treeHierarchyMenuController=new uT({mountEl:i.mountEl,applyAction:(e,t)=>r.applyTreeHierarchyShortcut(e,t)});let y=Zi(n);y.length>0&&i.rowModel.setSortModel(y);let b=mT(e,{showSummary:i.summaryOptions.showSummary,floatingFilter:n.floatingFilter??!1});if(i.rootEl=b.rootEl,i.rowsLayerEl=b.rowsLayerEl,b.footerViewportEl&&b.footerRowEl&&b.footerLeftLaneEl&&b.footerCenterLaneEl&&b.footerRightLaneEl&&(i.footerRenderer=new X_({footerLeftLaneEl:b.footerLeftLaneEl,footerCenterLaneEl:b.footerCenterLaneEl,footerRightLaneEl:b.footerRightLaneEl,footerRowEl:b.footerRowEl,frameService:i.frameService,onUnmountRenderer:i.onUnmountRenderer,enableCellSpan:i.cellSpanOptions.enableCellSpan})),b.floatingFilterRowEl&&b.floatingFilterLeftLaneEl&&b.floatingFilterCenterLaneEl&&b.floatingFilterRightLaneEl){let e=new PT({floatingLeftLaneEl:b.floatingFilterLeftLaneEl,floatingCenterLaneEl:b.floatingFilterCenterLaneEl,floatingRightLaneEl:b.floatingFilterRightLaneEl,floatingRowEl:b.floatingFilterRowEl});i.floatingFilterController=new RT({columnModel:i.columnModel,getFilterModel:()=>r.getFilterModel(),setFilterModel:e=>r.setFilterModel(e),renderer:e})}i.rowRenderer=new yy(b.rowsContainerEl,{rowModel:i.rowModel,columnModel:i.columnModel,rowHeight:d,rowBuffer:n.rowBuffer??10,stripe:f,frameService:i.frameService,onUnmountRenderer:i.onUnmountRenderer,onUnmountEditor:i.onUnmountEditor,indexColumnOptions:i.indexColumnOptions.showIndexColumn?i.indexColumnOptions.indexColumn:void 0,selectionColumnOptions:i.selectionColumnOptions.enabled?i.selectionColumnOptions:void 0,isRowDragHandleEnabled:e=>r.isRowDragHandleEnabled(e),enableCellSpan:i.cellSpanOptions.enableCellSpan,cellSpanService:i.cellSpanService,spannedRowsContainerEl:b.spannedRowsContainerEl,fullWidthRowsContainerEl:b.fullWidthRowsContainerEl,masterDetail:i.rowExpansionOptions.masterDetail,embedFullWidthRows:i.rowExpansionOptions.embedFullWidthRows,getDetailCellRenderer:()=>i.rowExpansionOptions.detailCellRenderer,getMasterRowById:e=>i.rowModel.getRowById(e),rowExpansionHost:{active:()=>i.rowExpansionOptions.masterDetail,isRowMaster:e=>i.rowExpansionService.isRowMaster(e),isExpanded:e=>i.rowExpansionService.isExpanded(e)},rowGroupingHost:{active:()=>i.rowGroupingService.active,isExpanded:e=>i.rowGroupingService.isExpanded(e),getGroupFooterLabel:()=>i.rowGroupingOptions.groupFooterLabel},treeTableHost:{active:()=>i.treeTableService.active,isExpanded:e=>i.treeTableService.isExpanded(e),getTreeValue:e=>i.treeTableService.getTreeDisplayValue(e),isTreeNodeExpandable:e=>i.treeTableService.isNodeExpandable(e),isTreeNodeLoading:e=>i.treeTableService.isNodeLoading(e),getTreeHierarchyActions:e=>i.hierarchyOps.resolveTreeHierarchyActions(e)},resolveBusinessRowId:e=>t.T(e,n.rowKey),getCellDisableContext:()=>r.getCellDisableContext(),getCellStyleContext:()=>r.getCellStyleContext(),cellRendererDefer:i.scrollRenderOptions.cellRendererDefer,deferRowDestroyOnScroll:i.scrollRenderOptions.deferRowDestroyOnScroll,cellRendererPresentation:i.scrollRenderOptions.cellRendererPresentation,infiniteLoadingRowVisible:G(i.rowModel)?i.resolvedInfiniteOptions.infiniteLoadingRowVisible:void 0,getLoadMoreRowEnabled:()=>i.loadMoreRowGridOptions.enabled,getLoadMoreRowRenderer:()=>i.loadMoreRowGridOptions.loadMoreRowRenderer,getLoadMoreRowLoading:()=>i.loadMoreRowGridOptions.loading,getLoadMoreRowHasMore:()=>i.loadMoreRowGridOptions.hasMore,getLoadMoreRowGridSize:()=>i.gridSize,getLoadMoreRowLabels:()=>i.loadMoreRowGridOptions.labels,onLoadMore:()=>{i.eventBus.emit(`loadMore`,{})},getApi:()=>r.getApi()}),i.selectionOps=new WD({mountEl:i.mountEl,rowModel:i.rowModel,rowRenderer:i.rowRenderer,eventBus:i.eventBus,selectionService:i.selectionService,indexFocusService:i.indexFocusService,indexColumnOptions:i.indexColumnOptions,selectionColumnOptions:i.selectionColumnOptions,rowKey:n.rowKey,isTreeActive:()=>i.treeTableService.active,groupSelectsChildren:()=>i.rowSelectionOptions.groupSelectsChildren,applyCellRangeVisuals:()=>i.cellRangeOps.applyCellRangeVisuals()},lg(n.selectable),n.reserveSelection??!1,()=>({rowKey:n.rowKey,rowSelectionEnabled:i.selectionColumnOptions.enabled,getResolveContext:()=>Md(i.rowModel.getSourceRows(),n.rowKey,r.getApi())})),i.rowRenderer.setIsRowNodeSelectable(e=>i.selectionOps.isRowNodeSelectable(e)),i.rowHeightGridOptions={getRowHeight:n.getRowHeight,rowHeightMin:n.rowHeightMin,rowHeightMax:n.rowHeightMax},i.rowHeightService=new vv({getDisplayRows:()=>i.rowModel.rowsToDisplay,getRowById:e=>i.rowModel.resolveRowById(e),getAutoHeightColumnIds:()=>i.columnModel.getAutoHeightColumnIds(),repositionDisplayRows:()=>{i.rowModel.repositionDisplayRows({getRowHeight:i.rowHeightService.getPositionRowHeightFn()})},emitRowHeightChanged:e=>{i.eventBus.emit(`rowHeightChanged`,e),r.syncRowLayoutAfterRowHeightChange(e.rows)}},d,i.rowHeightGridOptions),i.rowModel.setPositionGetRowHeight(i.rowHeightService.getPositionRowHeightFn()),i.rowAutoHeightService=new wv({rowHeightService:i.rowHeightService,getRowById:e=>i.rowModel.getRowById(e),isColumnAutoHeight:e=>i.columnModel.isColumnAutoHeight(e),getAutoHeightColumnIds:()=>i.columnModel.getAutoHeightColumnIds()}),i.rowRenderer.setRowAutoHeightService(i.rowAutoHeightService),i.detailRowAutoHeightService=i.rowExpansionOptions.detailRowAutoHeight?new Ay({rowHeightService:i.rowHeightService,getRowById:e=>i.rowModel.resolveRowById(e),isEnabled:()=>i.rowExpansionOptions.detailRowAutoHeight,getMinDetailRowHeight:e=>te(i.rowExpansionOptions.detailRowHeight,{rowId:e.id,data:e.data,masterRowId:e.masterRowId??e.id})}):null,i.rowRenderer.setDetailRowAutoHeightService(i.detailRowAutoHeightService),i.gridFooter=new tk({columnModel:i.columnModel,columnViewport:i.columnViewport,rowModel:i.rowModel,frameService:i.frameService,valueCache:i.valueCache,summaryOptions:i.summaryOptions,getFooterRenderer:()=>i.footerRenderer}),i.filterOps=new FD({rowModel:i.rowModel,columnModel:i.columnModel,columnViewport:i.columnViewport,getViewport:()=>i.viewport,rowRenderer:i.rowRenderer,valueCache:i.valueCache,eventBus:i.eventBus,getFloatingFilterController:()=>i.floatingFilterController,applySelectionVisuals:()=>i.selectionOps.applySelectionVisuals(),refreshFooter:()=>i.gridFooter.refresh(),refreshCellSpans:()=>r.refreshCellSpanCache(),reconcileRowPoolAfterDisplayChange:()=>r.reconcileRowPoolAfterDisplayChange(),clearCellSelection:()=>i.cellRangeOps.clearCellSelectionOnStructuralChange(),refreshOverlay:()=>r.syncEmptyStateOverlay()});let x={};i.viewport=new AD({rootEl:b.rootEl,headerViewportEl:b.headerViewportEl,headerScrollEl:b.headerScrollEl,headerRowEl:b.headerRowEl,headerLeftLaneEl:b.headerLeftLaneEl,headerCenterLaneEl:b.headerCenterLaneEl,headerRightLaneEl:b.headerRightLaneEl,viewportEl:b.viewportEl,spacerEl:b.spacerEl,scrollPhantomEl:b.scrollPhantomEl,rowsLayerEl:b.rowsLayerEl,indexColumnFillHostEl:b.indexColumnFillHostEl,indexColumnFillEl:b.indexColumnFillEl,rowsContainerEl:b.rowsContainerEl,footerViewportEl:b.footerViewportEl,footerScrollEl:b.footerScrollEl,footerRowEl:b.footerRowEl,footerLeftLaneEl:b.footerLeftLaneEl,footerCenterLaneEl:b.footerCenterLaneEl,footerRightLaneEl:b.footerRightLaneEl,floatingFilterViewportEl:b.floatingFilterViewportEl,floatingFilterScrollEl:b.floatingFilterScrollEl,floatingFilterRowEl:b.floatingFilterRowEl,floatingFilterLeftLaneEl:b.floatingFilterLeftLaneEl,floatingFilterCenterLaneEl:b.floatingFilterCenterLaneEl,floatingFilterRightLaneEl:b.floatingFilterRightLaneEl,refreshFooter:()=>i.gridFooter.refresh(),refreshFloatingFilter:()=>i.filterOps.refreshFloatingFilter(),rowModel:i.rowModel,columnModel:i.columnModel,columnViewport:i.columnViewport,validationFeedback:i.validationFeedback,rowRenderer:i.rowRenderer,scrollBridge:i.scrollBridge,frameService:i.frameService,scrollRenderOptions:i.scrollRenderOptions,onScrollActivity:()=>{i.frameService.setScrollActive(!0),i.rowRenderer.setScrollActive(!0)},onScrollEndIdle:()=>{i.frameService.setScrollActive(!1),i.scrollRenderOptions.deferRowDestroyOnScroll&&i.rowRenderer.flushDeferredDestroys(),i.scrollRenderOptions.cellRendererPresentation===`placeholder-then-vue`&&i.rowRenderer.promoteRendererPlaceholders(),i.scrollRenderOptions.scrollEndFlushMs>0&&i.frameService.flushAllFrames(i.scrollRenderOptions.scrollEndFrameBudgetMs),i.rowRenderer.setScrollActive(!1)},getPinnedRowIds:()=>r.getPinnedRowIds(),selectionColumnOptions:i.selectionColumnOptions,showIndexColumn:i.indexColumnOptions.showIndexColumn,showUnsortedSortHintOnHover:()=>r.getShowUnsortedSortHintOnHover(),enableHeaderSortClick:()=>r.getEnableHeaderSortClick(),getDefaultRowHeight:()=>i.rowHeightService.getDefaultRowHeight(),headerHeight:n.headerHeight??or,isDestroyed:()=>i.destroyed,onEmitScrollEvent:(e,t)=>{i.eventBus.emit(e,t),e===`scrollBottom`&&i.infiniteDatasourceService&&i.infiniteDatasourceService.ensurePrefetchOnScrollBottom()},applySelectionVisuals:()=>i.selectionOps.applySelectionVisuals(),applyFocusVisuals:()=>r.applyFocusVisuals(),applyCellRangeVisuals:()=>i.cellRangeOps.applyCellRangeVisuals(),applyCellRangeScrollVisuals:()=>i.cellRangeOps.applyCellRangeScrollVisuals(),onHeaderRefresh:()=>i.columnHandleMenuController.onHeaderRefresh(),getTreeHeaderExpanded:()=>i.treeTableService.isAllExpandableNodesExpanded(),ensureInfiniteRowsLoaded:(e,t)=>{x.ensure?.(e,t)}}),G(i.rowModel)&&n.infiniteDatasource&&(i.infiniteDatasourceService=new fv({rowModel:i.rowModel,datasource:n.infiniteDatasource,options:i.resolvedInfiniteOptions,rowBuffer:n.rowBuffer??10,rowHeight:d,eventBus:i.eventBus,getApi:()=>i.api,getSortModel:()=>i.rowModel.getSortModel(),getFilterModel:()=>i.rowModel.getFilterModel(),onModelChanged:e=>{if(i.viewport.syncViewportHeight(),e?.replacedStubIds?.length)for(let t of e.replacedStubIds)i.rowRenderer.releaseRow(t);e?.refreshedRowIds?.length?i.rowRenderer.refreshRows({rowIds:[...e.refreshedRowIds],force:!0}):i.rowRenderer.invalidate(),i.viewport.redrawImmediately(),i.gridFooter.refresh(),r.syncEmptyStateOverlay()}}),x.ensure=(e,t)=>{i.infiniteDatasourceService.ensureBlocksForViewport(e,t)}),i.hierarchyOps=new ek({rowModel:i.rowModel,viewport:i.viewport,rowRenderer:i.rowRenderer,rowExpansionService:i.rowExpansionService,rowGroupingService:i.rowGroupingService,treeTableService:i.treeTableService,rowExpansionOptions:i.rowExpansionOptions,rowGroupingOptions:i.rowGroupingOptions,treeTableOptions:i.treeTableOptions,selectionOps:i.selectionOps,refreshCellSpanCache:()=>r.refreshCellSpanCache(),reconcileRowPoolAfterDisplayChange:()=>r.reconcileRowPoolAfterDisplayChange(),isCellSpanActive:()=>i.cellSpanService.active,applyRowDragPlan:(e,t)=>i.rowMutation.applyRowDragPlan(e,t),getRowDragCommitService:()=>i.rowDragCommitService,asyncRowMutation:i.asyncRowMutation});let S=e=>i.rowDataChangeTracker.record(e),C={beginUpdate:()=>r.beginUpdate(),endUpdate:()=>r.endUpdate()};i.cellEditing=new jC({mountEl:i.mountEl,viewportEl:b.viewportEl,rowModel:i.rowModel,columnModel:i.columnModel,editingService:i.editingService,rowEditingService:i.rowEditingService,editBehavior:p,editType:m,invalidEditValueMode:i.invalidEditValueMode,rowValidator:i.rowValidator,validationFeedback:i.validationFeedback,editorHost:i.editorHost,eventBus:i.eventBus,cellFocusService:i.cellFocusService,isDestroyed:()=>i.destroyed,getColIndex:e=>r.getColIndex(e),ensureIndexVisible:(e,t)=>r.ensureIndexVisible(e,t),ensureColumnVisible:e=>r.ensureColumnVisible(e),redrawImmediately:()=>i.viewport.redrawImmediately(),applyFocusVisuals:()=>r.applyFocusVisuals(),syncPinnedRows:()=>i.viewport.syncPinnedRows(),refreshCells:e=>r.refreshCells(e),applyTransaction:e=>r.commitTransaction(e),onTabChainEdit:e=>i.interaction.navigateEditableTab(e),getCellDisableContext:()=>r.getCellDisableContext(),cellEditorCacheService:i.cellEditorCacheService,enableCellEditorCache:i.cellEditorCacheOptions.enableCellEditorCache,recordRowDataChange:e=>i.rowDataChangeTracker.record(e),...C,...ik(i,r)});let w=new Sp({...ik(i,r),...C,eventBus:i.eventBus,applyTransaction:e=>r.commitTransaction(e),syncPinnedRows:()=>i.viewport.syncPinnedRows(),invalidEditValueMode:i.invalidEditValueMode,recordRowDataChange:S,onUnmountEditor:i.onUnmountEditor,byName:n.cellEditors?.byName,editorOptions:i.editorOptions});return i.inlineCellEditorService=w,i.rowRenderer.setInlineCellEditorContext(w.getRefreshContext()),i.rowRenderer.setOverlayEditingTargetsResolver(()=>i.cellEditing.getEditingCells().map(e=>({rowId:e.rowId,colId:e.colId}))),i.columnFlexService=new d_(i.columnModel),i.columnResizeService=new p_(i.columnModel,()=>{i.columnLayout.syncColumnLayoutAfterResize()},i.columnFlexService,()=>r.getCenterViewportWidth()),i.columnAutosizeService=new e_(i.mountEl,i.columnModel,l),i.columnLayout=new PD({mountEl:i.mountEl,rootEl:i.rootEl,columnModel:i.columnModel,columnViewport:i.columnViewport,columnResizeService:i.columnResizeService,columnAutosizeService:i.columnAutosizeService,columnFlexService:i.columnFlexService,viewport:i.viewport,rowRenderer:i.rowRenderer,footerRenderer:i.footerRenderer,eventBus:i.eventBus,isDestroyed:()=>i.destroyed,refreshColumnResizeVisualState:()=>i.interaction.refreshColumnResizeVisualState(),refreshFooter:()=>i.gridFooter.refresh(),refreshFloatingFilter:()=>i.filterOps.refreshFloatingFilter(),applyCellRangeVisuals:()=>i.cellRangeOps.applyCellRangeVisuals(),clearCellSelection:()=>i.cellRangeOps.clearCellSelectionOnStructuralChange(),syncColumnOrderVisuals:()=>{let e=i.cellFocusService.getFocusedCell();if(e&&!J(e)){let t=r.getColIndex(e.colId);t>=0&&t!==e.colIndex&&i.cellFocusService.setFocusedCell({...e,colIndex:t})}i.viewport.applyColumnStructureVisuals()}},s,c),i.columnLayout.syncColumnMovePresentationClasses(),i.viewport.setOnAfterRedraw(()=>{!i.destroyed&&!i.cellEditing.isEditing()&&i.cellEditing.syncValidationDom()}),i.cellCommentOptions=No(n),i.cellCommentService=new xx({getOptions:()=>r.getCellCommentOptions(),getRowKey:()=>n.rowKey,getRowNode:e=>i.rowModel.getRowById(e),getColumn:e=>i.columnModel.getColumnById(e)??void 0,getMountEl:()=>i.mountEl,onCommentChanged:e=>i.eventBus.emit(`cellCommentChanged`,e),onCommentsRefresh:e=>i.rowRenderer.syncVisibleCellCommentIndicators({rowIds:e?.rowIds?.map(e=>String(e)),colIds:e?.colIds})}),i.rowRenderer.setCellCommentHost(i.cellCommentService.createHost()),i.overflowTooltipOptions=wc(n),i.cellRangeOps=new $O({mountEl:i.mountEl,rowsLayerEl:i.rowsLayerEl,rowModel:i.rowModel,columnModel:i.columnModel,rowRenderer:i.rowRenderer,cellSpanService:i.cellSpanService,eventBus:i.eventBus,viewport:i.viewport,cellEditing:i.cellEditing,cellFocusService:i.cellFocusService,indexFocusService:i.indexFocusService,selectionService:i.selectionService,indexColumnOptions:i.indexColumnOptions,selectionColumnOptions:i.selectionColumnOptions,getCellRangeDeleteWriteService:()=>i.cellRangeDeleteWriteService,getCellClipboardService:()=>i.cellClipboardService,applyFocusVisuals:()=>r.applyFocusVisuals(),applyIndexFocusVisuals:()=>i.selectionOps.applyIndexFocusVisuals({syncToSelectionColumn:!1}),syncCellRangeFromIndexFocus:()=>i.interaction.syncCellRangeFromIndexFocus()},{cellSelection:n.cellSelection,enableCellCopy:n.enableCellCopy,enableCellPaste:n.enableCellPaste,enableHeaderHighlight:n.enableHeaderHighlight,enableIndexColumnHighlight:n.enableIndexColumnHighlight,processCellForClipboard:n.processCellForClipboard,processCellFromClipboard:n.processCellFromClipboard,processDataFromClipboard:n.processDataFromClipboard}),i.tooltipService=new FS,i.overflowTooltipSession=new AS({mountEl:i.mountEl,viewportEl:b.viewportEl,headerViewportEl:b.headerViewportEl,footerViewportEl:b.footerViewportEl??null,columnModel:i.columnModel,rowModel:i.rowModel,tooltipService:i.tooltipService,validationFeedback:i.validationFeedback,cellCommentService:()=>i.cellCommentService,getOptions:()=>r.getOverflowTooltipOptions(),getIndexColumnOptions:()=>i.indexColumnOptions,getApi:()=>r.getApi(),isEditing:()=>i.cellEditing.isEditing(),getEditingCell:()=>i.cellEditing.getEditingCell()}),i.emptyStateOptionsRaw={loading:n.loading,suppressOverlays:n.suppressOverlays,suppressLoadingOverlay:n.suppressLoadingOverlay,suppressNoRowsOverlay:n.suppressNoRowsOverlay,suppressNoMatchingRowsOverlay:n.suppressNoMatchingRowsOverlay,overlayLoadingTemplate:n.overlayLoadingTemplate,overlayNoRowsTemplate:n.overlayNoRowsTemplate,overlayNoMatchingRowsTemplate:n.overlayNoMatchingRowsTemplate,loadingOverlayComponent:n.loadingOverlayComponent,loadingOverlayComponentParams:n.loadingOverlayComponentParams,noRowsOverlayComponent:n.noRowsOverlayComponent,noRowsOverlayComponentParams:n.noRowsOverlayComponentParams,noMatchingRowsOverlayComponent:n.noMatchingRowsOverlayComponent,noMatchingRowsOverlayComponentParams:n.noMatchingRowsOverlayComponentParams,overlayComponent:n.overlayComponent,overlayComponentParams:n.overlayComponentParams,overlayInteraction:n.overlayInteraction},i.emptyStateGridOptions=Kc(i.emptyStateOptionsRaw),i.overlayService=new YS({getResolvedOptions:()=>r.getEmptyStateGridOptions(),getSourceRowCount:()=>i.rowModel.getSourceRows().length,getDisplayRows:()=>i.rowModel.rowsToDisplay,isAnyFilterActive:()=>i.filterOps.isAnyFilterActive(),getInfiniteVirtualRowCount:()=>G(i.rowModel)?i.rowModel.getRowCount():0,onOverlayChanged:(e,t)=>r.handleOverlayChanged(e,t),warn:e=>console.warn(e)}),i.overlayRenderer=new WS({overlayEl:b.overlayEl,wrapperEl:b.overlayWrapperEl,contentEl:b.overlayContentEl,getApi:()=>r.getApi(),getOverlayInteraction:()=>r.getEmptyStateGridOptions().overlayInteraction}),i.interaction=new oD({mountEl:i.mountEl,viewportEl:b.viewportEl,headerViewportEl:b.headerViewportEl,headerLeftLaneEl:b.headerLeftLaneEl,headerCenterLaneEl:b.headerCenterLaneEl,headerRightLaneEl:b.headerRightLaneEl,rowModel:i.rowModel,columnModel:i.columnModel,rowRenderer:i.rowRenderer,eventBus:i.eventBus,cellFocusService:i.cellFocusService,selectionService:i.selectionService,indexFocusService:i.indexFocusService,indexColumnOptions:i.indexColumnOptions,columnDragController:i.columnDragController,columnHandleMenuController:i.columnHandleMenuController,editBehavior:p,editType:m,isEditing:()=>i.cellEditing.isEditing(),getEditingCell:()=>i.cellEditing.getEditingCell(),getEditingRowId:()=>i.cellEditing.getEditingRowId(),focusRowEditingColumn:e=>i.cellEditing.focusRowEditingColumn(e),isCommitting:()=>r.isCommitting(),awaitCommitIdle:()=>r.awaitCommitIdle(),commitEditing:()=>i.cellEditing.stopEditing(!1).then(()=>void 0),cancelCommit:()=>r.cancelCommit(),ensureIndexVisible:(e,t)=>r.ensureIndexVisible(e,t),ensureColumnVisible:e=>r.ensureColumnVisible(e),getLogicalScrollTop:()=>i.viewport.getLogicalScrollTop(),scrollByDelta:e=>i.viewport.scrollByDelta(e),scrollByHorizontalDelta:e=>i.viewport.scrollByHorizontalDelta(e),getRowHeight:()=>i.rowHeightService.getDefaultRowHeight(),redrawImmediately:()=>i.viewport.redrawImmediately(),tryStartCellEditing:e=>i.cellEditing.tryStartCellEditing(e),tryStartRowEditing:e=>i.cellEditing.tryStartRowEditing(e),applyIndexFocusVisuals:e=>i.selectionOps.applyIndexFocusVisuals(e),applySelectionVisuals:()=>i.selectionOps.applySelectionVisuals(),handleInteractiveRowSelection:(e,t)=>i.selectionOps.handleInteractiveRowSelection(e,t),isRowNodeSelectable:e=>i.selectionOps.isRowNodeSelectable(e),getSelectableRowIdAt:e=>i.selectionOps.getSelectableRowIdAt(e),showSummary:()=>i.summaryOptions.showSummary,navigateHeader:()=>i.chromeNavigationOptions.navigateHeader,navigateFooter:()=>i.chromeNavigationOptions.navigateFooter,toggleHeaderSort:e=>i.headerSortService.toggleSort(e),enableHeaderSortClick:()=>r.getEnableHeaderSortClick(),moveColumn:(e,t,n,i)=>r.moveColumn(e,t,n,i),finishColumnMove:e=>r.finishColumnMove(e),suppressMoveWhenColumnDragging:()=>i.columnLayout.columnMoveOptions.suppressMoveWhenColumnDragging,setColumnMoveLiveDragging:e=>r.setColumnMoveLiveDragging(e),allowCrossLaneColumnMove:()=>i.columnLayout.columnMoveOptions.allowCrossLaneColumnMove,setColumnWidths:(e,t,n)=>i.columnLayout.applyColumnWidths(e,t,n,`uiColumnResized`),autoSizeColumn:(e,t)=>i.columnLayout.autoSizeColumn(e,void 0,t??`uiColumnResized`),resizeHeaderColumn:(e,t,n)=>i.columnLayout.resizeHeaderColumn(e,t,n),setRowHeights:(e,t)=>i.rowHeightService.setRowHeights(e,{finished:t,source:`uiRowResized`}),rowDragManaged:i.rowDragOptions.rowDragManaged,deferRowDragCommit:!!i.asyncRowMutation?.move,cellSpanService:i.cellSpanService,hasSortOrFilterActive:()=>i.rowModel.getSortModel().length>0||r.isAnyFilterActive(),isRowDragHandleEnabled:e=>r.isRowDragHandleEnabled(e),moveRow:(e,t)=>i.rowMutation.moveRowSync(e,t),moveRows:(e,t)=>i.rowMutation.moveRowsSync(e,t),finishRowMove:e=>i.rowMutation.finishRowMove(e),finishRowMoves:(e,t,n,r)=>i.rowMutation.finishRowMoves(e,`uiRowDrag`,{startSourceIndices:t,startTreePositions:r,displayIndex:n,resolveTreeDrop:i.treeTableService.active?e=>q(i.rowModel.getSourceRows(),e)??void 0:void 0}),isIndexFocusMultiple:()=>i.indexFocusService?.isMultiple()??!1,getIndexFocusedRowIds:()=>i.indexFocusService?.getFocusedRowIds()??[],setRowMoveLiveDragging:e=>r.setRowMoveLiveDragging(e),emitRowDragEnd:e=>{i.eventBus.emit(`rowDragEnd`,e)},isRowDragCommitting:()=>i.rowDragCommitService?.isCommitting()??!1,buildPlanRowDragMoveOptions:e=>r.buildPlanRowDragMoveOptions(e),planRowDragMove:e=>Qb(e),commitDeferredRowDrag:e=>i.rowDragCommitService.commit(e),rowExpansionService:i.rowExpansionOptions.masterDetail?i.rowExpansionService:null,rowGroupingService:i.rowGroupingOptions.rowGrouping?i.rowGroupingService:null,treeTableService:i.treeTableService.active?i.treeTableService:null,requestTreeNodeToggle:(e,t)=>i.treeTableService.requestToggleNode(e,t),isTreeNodeExpandable:e=>i.treeTableService.isNodeExpandable(e),isRowGroupingActive:()=>i.rowGroupingService.active,isTreeActive:()=>i.treeTableService.active,getTreeDragScope:()=>i.treeTableOptions.treeDragScope,validateGroupedDisplayDrop:(e,t)=>{if(!i.rowGroupingService.active)return!0;let n=$u(i.rowModel.getSourceRows(),e);return n===`mixed`||n===`missing`?!1:n===null||ad(i.rowModel.rowsToDisplay,e=>i.rowModel.getRowById(e),e,t,n)},validateTreeDisplayDrop:(e,t,n)=>{if(!i.treeTableService.active)return!0;let r=i.rowModel.getSourceRows(),a=e=>i.rowModel.getRowById(e);if(i.treeTableOptions.treeDragScope===`hierarchy`){let o=i.treeTableOptions.getDataPath;return o?ub(r,i.rowModel.rowsToDisplay,a,e,t,o,tb(n?.nestUnderRowId)):!1}let o=ld(r,e);return o===`mixed`||o===`missing`?!1:md(i.rowModel.rowsToDisplay,a,e,t,o)},resolveTreeRowDragEndContext:(e,t,n,r)=>{if(!i.treeTableService.active||!r||t<0)return;if(i.rowDragOptions.rowDragManaged)return q(i.rowModel.getSourceRows(),e)??void 0;let a=i.treeTableOptions.getDataPath;if(a)return db({sourceRows:i.rowModel.getSourceRows(),displayRows:i.rowModel.rowsToDisplay,rowIds:[e],insertIndex:t,nestUnderRowId:n,treeDragScope:i.treeTableOptions.treeDragScope,getDataPath:a})??void 0},cellCommentService:()=>i.cellCommentService,getCellCommentOptions:()=>r.getCellCommentOptions(),overflowTooltipSession:i.overflowTooltipSession,getCellDisableContext:()=>r.getCellDisableContext(),getCellRangeService:()=>i.cellRangeOps.getCellRangeService(),isCellSelectionEnabled:()=>i.cellRangeOps.isCellSelectionEnabled(),getCellSelectionOptions:()=>i.cellRangeOps.getCellSelectionOptions(),getFillWriteService:()=>i.cellRangeFillWriteService,getCellRangeOperationContext:()=>i.cellRangeOps.getCellRangeOperationContext(),applyCellRangeVisuals:()=>i.cellRangeOps.applyCellRangeVisuals(),clearCellSelection:()=>i.cellRangeOps.clearCellSelection(),emitCellSelectionChanged:e=>i.cellRangeOps.emitCellSelectionChanged(e),handleCellSelectionDeleteKey:()=>void i.cellRangeOps.handleCellSelectionDeleteKey(),copyCellSelectionToClipboard:()=>i.cellRangeOps.copySelectedRangeToClipboard(),pasteCellSelectionFromClipboard:()=>i.cellRangeOps.pasteFromClipboard(),isPointerOverCellCommentIndicator:(e,t,n)=>ux(e,t,n),applyTreeHierarchyShortcut:(e,t)=>r.applyTreeHierarchyShortcut(e,t),toggleTreeHierarchyMenu:(e,t)=>{let n=i.hierarchyOps.resolveTreeHierarchyMenuActions(e);i.treeHierarchyMenuController.toggle(e,t,n)},closeTreeHierarchyMenu:()=>i.treeHierarchyMenuController.close()}),i.rowMutation=new SO({rowKey:n.rowKey,asyncRowMutation:i.asyncRowMutation,rowModel:i.rowModel,rowRenderer:i.rowRenderer,viewport:i.viewport,valueCache:i.valueCache,frameService:i.frameService,changeDetection:i.changeDetection,eventBus:i.eventBus,cellFocusService:i.cellFocusService,validationFeedback:i.validationFeedback,mountEl:i.mountEl,cellEditing:i.cellEditing,filterOps:i.filterOps,selectionOps:i.selectionOps,ensureIndexVisible:(e,t)=>r.ensureIndexVisible(e,t),applyFocusVisuals:()=>r.applyFocusVisuals(),refreshFooter:()=>i.gridFooter.refresh(),refreshCellSpans:()=>r.refreshCellSpanCache(),reconcileRowPoolAfterDisplayChange:()=>r.reconcileRowPoolAfterDisplayChange(),refreshOverlay:()=>r.syncEmptyStateOverlay(),beginRowOrderVisualCapture:()=>i.cellRangeOps.beginRowOrderVisualCapture(),finishRowOrderVisualSync:()=>i.cellRangeOps.finishRowOrderVisualSync(),setAsyncMutationLoading:(e,t)=>i.rowRenderer.setAsyncMutationLoading(e,t),isCellSpanActive:()=>i.cellSpanService.active,isEditingTargetRow:e=>r.isEditingTargetRow(e),clearCellEditorCacheForRemovedRows:e=>r.clearCellEditorCacheForRemovedRows(e),clearCellStyleOverridesForRemovedRows:e=>r.clearCellStyleOverridesForRemovedRows(e),migrateCellEditorCacheOnPromoteRowId:(e,t)=>i.cellEditorCacheService.promoteRowId(e,t),isRowGroupingActive:()=>i.rowGroupingService.active,getGroupInsertDeps:()=>i.rowGroupingService.active?{rowGroupColumns:i.rowGroupingService.getRowGroupColumns(),getColumnField:e=>i.columnModel.getColumnById(e)?.prop??e,getGroupedTreeRoots:()=>i.rowModel.getGroupedTreeRoots()}:null,expandGroups:e=>i.hierarchyOps.expandGroupsInPath(e),isTreeActive:()=>i.treeTableService.active,getTreeDragScope:()=>i.treeTableOptions.treeDragScope,getDataPath:()=>i.treeTableOptions.getDataPath,setDataPath:()=>i.treeTableOptions.setDataPath,rowDataChangeTracker:i.rowDataChangeTracker,buildRowSnapshot:e=>Lu(e,nk(i)),resolveColIdByField:e=>i.columnModel.getColumns().find(t=>t.prop===e)?.colId}),i.cellRangeFillWriteService=new oS({...ik(i,r),rowModel:i.rowModel,columnModel:i.columnModel,eventBus:i.eventBus,getCellDisableContext:()=>r.getCellDisableContext(),applyTransaction:e=>r.commitTransaction(e),refreshCells:e=>r.refreshCells(e),recordRowDataChange:S,...C}),i.cellRangeDeleteWriteService=new sS({...ik(i,r),rowModel:i.rowModel,columnModel:i.columnModel,eventBus:i.eventBus,getCellDisableContext:()=>r.getCellDisableContext(),applyTransaction:e=>r.commitTransaction(e),refreshCells:e=>r.refreshCells(e),recordRowDataChange:S,...C}),i.cellClipboardService=new Gx({...ik(i,r),rowModel:i.rowModel,columnModel:i.columnModel,eventBus:i.eventBus,cellFocusService:i.cellFocusService,getCellRangeService:()=>i.cellRangeOps.getCellRangeService(),getCellRangeOperationContext:()=>i.cellRangeOps.getCellRangeOperationContext(),getCellSelectionOptions:()=>i.cellRangeOps.getCellSelectionOptions(),getIndexColumnOptions:()=>i.indexColumnOptions,getCellDisableContext:()=>r.getCellDisableContext(),applyTransaction:e=>r.commitTransaction(e),refreshCells:e=>r.refreshCells(e),recordRowDataChange:S,...C,isEditing:()=>i.cellEditing.isEditing(),stopEditing:e=>i.cellEditing.stopEditing(e).then(()=>void 0),onCopyVisualFeedback:()=>i.cellRangeOps.playCellRangeCopyFlash(),onPasteVisualFeedback:e=>i.cellRangeOps.playCellRangePasteFlash(e),getCellClipboardOptions:()=>i.cellRangeOps.getCellClipboardOptions(),getCellSpanService:()=>i.cellSpanService,getCellClipboardDisplayContext:()=>({getRowGroupingHost:()=>({active:()=>i.rowGroupingService.active,isExpanded:e=>i.rowGroupingService.isExpanded(e),getGroupFooterLabel:()=>i.rowGroupingOptions.groupFooterLabel}),getTreeTableHost:()=>({active:()=>i.treeTableService.active,isExpanded:e=>i.treeTableService.isExpanded(e),getTreeValue:e=>i.treeTableService.getTreeDisplayValue(e),isTreeNodeExpandable:e=>i.treeTableService.isNodeExpandable(e),isTreeNodeLoading:e=>i.treeTableService.isNodeLoading(e),getTreeHierarchyActions:e=>i.hierarchyOps.resolveTreeHierarchyActions(e)})})}),i.treeTableOptions.treeLazyLoad&&typeof i.treeTableOptions.loadTreeChildren==`function`&&(i.treeLazyLoadService=new Uy({getOptions:()=>i.treeTableOptions,rowKey:n.rowKey,getDataPath:()=>i.treeTableOptions.getDataPath,getNodeById:e=>i.rowModel.getRowById(e),getExistingRowKeys:()=>{let e=new Set;for(let t of i.rowModel.getSourceRows()){e.add(t.id);let r=t.data[n.rowKey];r!=null&&r!==``&&e.add(String(r))}return e},applyTransaction:e=>{r.commitTransaction(e)},onLoading:e=>{i.eventBus.emit(`treeChildrenLoading`,e),i.hierarchyOps.refreshTreeLoadingVisuals(String(e.parentRowId))},onLoaded:e=>{i.eventBus.emit(`treeChildrenLoaded`,e),i.hierarchyOps.refreshTreeLoadingVisuals(String(e.parentRowId))},onLoadFailed:e=>{i.eventBus.emit(`treeChildrenLoadFailed`,e),i.hierarchyOps.refreshTreeLoadingVisuals(String(e.parentRowId))},onStateChanged:()=>{i.hierarchyOps.refreshTreeLoadingVisuals()}})),i.rowDragCommitService=new $b({persistMove:()=>{if(i.asyncRowMutation?.move)return e=>sx(e,{handlers:i.asyncRowMutation,getRowById:e=>i.rowModel.getRowById(e)})},applyPlan:e=>i.rowMutation.applyRowDragPlan(e),emitStarted:e=>{i.eventBus.emit(`rowDragCommitStarted`,e)},emitFinished:e=>{i.eventBus.emit(`rowDragCommitFinished`,e)},emitRowDragEnd:e=>{i.eventBus.emit(`rowDragEnd`,e)},setCommittingVisual:e=>r.setRowDragCommittingVisual(e)}),{ctx:i,dom:b,finalize:(e,t)=>{i.viewport.syncHorizontalLayout(),t.refreshFlexedColumnsOnViewportChange(!1),t.scheduleAutoSizeStrategy(),i.frameService.setScrollGridIfNeeded(()=>i.viewport.scrollGridIfNeeded()),t.refreshCellSpanCache(),i.rowRenderer.setValueCacheVersion(i.valueCache.getVersion()),i.viewport.redrawImmediately(),i.floatingFilterController&&i.filterOps.refreshFloatingFilter(),i.api=Id(e),i.cellCommentService.init(i.api),i.viewport.bindScrollListener(),i.interaction.bindListeners(),i.resizeObserver=new ResizeObserver(()=>{i.viewport.syncViewportHeight(),t.refreshFlexedColumnsOnViewportChange(!0),i.viewport.redrawImmediately(),t.syncEmptyStateOverlay()}),i.resizeObserver.observe(b.viewportEl),t.syncEmptyStateOverlay(),i.infiniteDatasourceService&&(i.infiniteDatasourceService.init(),i.infiniteDatasourceService.loadInitialBlocks())}}}function ok(e){return e?.rowIds?{...e,rowIds:t.g(e.rowIds)}:e}function sk(e){return{...e,rowIds:t.g(e.rowIds)}}function ck(e){return{...e,cells:e.cells.map(e=>({...e,rowId:t.m(e.rowId)}))}}function lk(e){return e?.rowIds?{...e,rowIds:t.g(e.rowIds)}:e}function uk(e){return{...e,rowIds:t.g(e.rowIds)}}function dk(e){return{...e,cells:e.cells.map(e=>({...e,rowId:t.m(e.rowId)}))}}function fk(e){return e>=1e6?2e3:e>=1e5?500:e>=1e4?200:e>=1e3?100:50}function pk(e){return{maxDomRows:80,maxSetDataMs:fk(e)}}function mk(e,t){let n=pk(t),r=e.activeDomRowCount<=n.maxDomRows,i=e.lastSetDataMs<=n.maxSetDataMs;return{domRowsPass:r,setDataPass:i,allPass:r&&i}}var hk=class{mountEl;rowModel;rowRenderer;frameService;columnViewport;rootEl;columnModel;valueCache;changeDetection;eventBus;rowKey;businessRowIdCtx;selectionService;indexFocusService;editingService;rowEditingService;cellFocusService;api;viewport;columnDragController;columnHandleMenuController;treeHierarchyMenuController;interaction;cellEditing;inlineCellEditorService;validationFeedback;cellRenderersByColId;cellEditorsByColId;summaryOptions;indexColumnOptions;selectionColumnOptions;filterGridOptions;showUnsortedSortHintOnHover;columnSortOptions;resolvedSummaryRowHeight;footerRenderer=null;floatingFilterController=null;lastSetDataMs=0;columnAutosizeService;columnFlexService;columnLayout;rowHeightService;rowAutoHeightService;rowDragOptions;rowDragCommitService;cellEditorCacheService;cellSpanService;rowExpansionOptions;rowExpansionService;rowGroupingOptions;rowGroupingService;treeTableOptions;treeTableService;treeLazyLoadService=null;infiniteDatasourceService=null;userColumns;detailRowAutoHeightService;cellCommentOptions;cellCommentService;overflowTooltipOptions;overflowTooltipSession;emptyStateGridOptions;emptyStateOptionsRaw={};loadMoreRowGridOptions;loadMoreRowOptionsRaw={};gridSize;overlayService;overlayRenderer;cellRangeOps;hierarchyOps;cellDisableContext;cellStyleContext;cellStyleOverrideService;rowHeightGridOptions;filterOps;selectionOps;rowMutation;gridFooter;resizeObserver=null;centerViewportWidth;autoSizeCellContentsPending;destroyed;suppressRowLayoutViewportSync;preserveScrollOnSetData;constructor(e,t){let n=this.createBootstrapHost(),r=ak(e,t,n);Object.assign(this,r.ctx),r.finalize(this,n),Object.assign(this,r.ctx)}createBootstrapHost(){let e=this;return{setSortModel:t=>e.setSortModel(t),getFilterModel:()=>e.getFilterModel(),setFilterModel:t=>e.setFilterModel(t),setColumnFixed:(t,n,r)=>e.setColumnFixed(t,n,r),getColumnDistinctFilterValues:t=>e.getColumnDistinctFilterValues(t),applyTreeHierarchyShortcut:(t,n)=>e.applyTreeHierarchyShortcut(t,n),beginUpdate:()=>e.beginUpdate(),endUpdate:()=>e.endUpdate(),commitTransaction:t=>e.commitTransaction(t),ensureIndexVisible:(t,n)=>e.ensureIndexVisible(t,n),ensureColumnVisible:t=>e.ensureColumnVisible(t),applyFocusVisuals:()=>e.applyFocusVisuals(),refreshCells:t=>e.refreshCells(t),getApi:()=>e.getApi(),getCellDisableContext:()=>e.getCellDisableContext(),getCellStyleContext:()=>e.getCellStyleContext(),getColIndex:t=>e.getColIndex(t),getPinnedRowIds:()=>e.getPinnedRowIds(),getCenterViewportWidth:()=>e.getCenterViewportWidth(),moveColumn:(t,n,r,i)=>e.moveColumn(t,n,r,i),finishColumnMove:t=>e.finishColumnMove(t),setColumnMoveLiveDragging:t=>e.setColumnMoveLiveDragging(t),setRowMoveLiveDragging:t=>e.setRowMoveLiveDragging(t),isAnyFilterActive:()=>e.isAnyFilterActive(),isCommitting:()=>e.isCommitting(),awaitCommitIdle:()=>e.awaitCommitIdle(),cancelCommit:()=>e.cancelCommit(),isEditingTargetRow:t=>e.isEditingTargetRow(t),clearCellEditorCacheForRemovedRows:t=>e.clearCellEditorCacheForRemovedRows(t),clearCellStyleOverridesForRemovedRows:t=>e.clearCellStyleOverridesForRemovedRows(t),refreshCellSpanCache:()=>e.refreshCellSpanCache(),reconcileRowPoolAfterDisplayChange:()=>e.reconcileRowPoolAfterDisplayChange(),syncEmptyStateOverlay:()=>e.syncEmptyStateOverlay(),handleOverlayChanged:(t,n)=>e.handleOverlayChanged(t,n),refreshFlexedColumnsOnViewportChange:t=>e.refreshFlexedColumnsOnViewportChange(t),scheduleAutoSizeStrategy:()=>e.scheduleAutoSizeStrategy(),setRowDragCommittingVisual:t=>e.setRowDragCommittingVisual(t),buildPlanRowDragMoveOptions:t=>e.buildPlanRowDragMoveOptions(t),isRowDragHandleEnabled:t=>e.isRowDragHandleEnabled(t),syncRowLayoutAfterRowHeightChange:t=>e.syncRowLayoutAfterRowHeightChange(t),getResolveDisplayRowContext:()=>e.getResolveDisplayRowContext(),getShowUnsortedSortHintOnHover:()=>e.showUnsortedSortHintOnHover,getEnableHeaderSortClick:()=>e.getEnableHeaderSortClick(),getEmptyStateGridOptions:()=>e.emptyStateGridOptions,getCellCommentOptions:()=>e.cellCommentOptions,getOverflowTooltipOptions:()=>e.overflowTooltipOptions}}getApi(){return this.api}setSelectable(e){this.selectionOps.setSelectable(e)}getCellDisableContext(){return this.cellDisableContext}getCellStyleContext(){return this.cellStyleContext}setIsRowDisabled(e){this.cellDisableContext=bt(this.cellDisableContext,e),this.rowRenderer.setGetCellDisableContext(()=>this.getCellDisableContext()),this.refreshDisabledState()}setRowStyle(e){this.cellStyleContext={...this.cellStyleContext,rowStyle:e},this.rowRenderer.setGetCellStyleContext(()=>this.getCellStyleContext()),this.refreshCellStyles()}setEditableCellStyle(e){this.cellStyleContext={...this.cellStyleContext,editableCellStyle:e},this.rowRenderer.setGetCellStyleContext(()=>this.getCellStyleContext()),this.refreshCellStyles()}setShowEditableCellIcon(e){this.cellStyleContext={...this.cellStyleContext,showEditableCellIcon:e},this.rowRenderer.setGetCellStyleContext(()=>this.getCellStyleContext()),this.refreshCellStyles()}setDisabledCellStyle(e){this.cellStyleContext={...this.cellStyleContext,disabledCellStyle:e},this.rowRenderer.setGetCellStyleContext(()=>this.getCellStyleContext()),this.refreshCellStyles()}setShowDisabledCellIcon(e){this.cellStyleContext={...this.cellStyleContext,showDisabledCellIcon:e},this.rowRenderer.setGetCellStyleContext(()=>this.getCellStyleContext()),this.refreshCellStyles()}refreshDisabledState(e){this.refreshCells({rowIds:e?.rowIds?.map(e=>String(e)),colIds:e?.colIds?[...e.colIds]:void 0,force:!0})}refreshCellStyles(e){this.refreshCells({rowIds:e?.rowIds?.map(e=>String(e)),colIds:e?.colIds?[...e.colIds]:void 0,force:!0})}setCellStyle(e,n,r){let i=t.m(e),a=this.rowModel.getRowById(i),o=this.columnModel.getColumnById(n);if(!a){Et(i,n,`row not found`);return}if(!o){Et(i,n,`column not found`);return}if(!kt(o,a)){Et(i,n,`cell is not style-eligible`);return}let s=!1;if(r===null)s=this.cellStyleOverrideService.delete(i,n);else if(Tt(r)){Et(i,n,`style must include backgroundColor or color`);return}else s=this.cellStyleOverrideService.set(i,n,r);s&&this.refreshCellStyles({rowIds:[i],colIds:[n]})}getCellStyle(e,n){let r=t.m(e),i=this.rowModel.getRowById(r),a=this.columnModel.getColumnById(n);return!i||!a?{}:Ln(a,i,this.getCellStyleContext())}getCellStyleOverride(e,n){return this.cellStyleOverrideService.get(t.m(e),n)}clearCellStyles(e){this.cellStyleOverrideService.clear(e),this.refreshCellStyles(e)}setReserveSelection(e){this.selectionOps.setReserveSelection(e)}setPreserveScrollOnSetData(e){this.preserveScrollOnSetData=e}setColumnMoveOptions(e){this.columnLayout.setColumnMoveOptions(e)}setColumnResizeOptions(e){this.columnLayout.setColumnResizeOptions(e)}setColumnSortOptions(e){if(e.sortable===void 0&&e.enableHeaderSortClick===void 0)return;let t=this.columnSortOptions.sortable,n=this.columnSortOptions.enableHeaderSortClick;this.columnSortOptions=Qi({...this.columnSortOptions,...e});let r=e.sortable!==void 0&&e.sortable!==t,i=e.enableHeaderSortClick!==void 0&&e.enableHeaderSortClick!==n;r&&this.columnModel.setColumnSortGridOptions(this.columnSortOptions),(r||i)&&this.viewport.refreshHeader()}getEnableHeaderSortClick(){return this.columnSortOptions.enableHeaderSortClick}setColumnFilterOptions(e){if(e.filterable===void 0)return;let t=this.filterGridOptions.filterable;this.filterGridOptions=ca({...this.filterGridOptions,filterable:e.filterable}),e.filterable!==t&&(this.columnModel.setColumnFilterGridOptions(this.filterGridOptions),this.viewport.refreshHeader(),this.filterOps.refreshFloatingFilter())}setColumnAutosizeOptions(e){let t=Eu(e);this.columnAutosizeService.setAutosizeOptions(t)}autoSizeColumn(e,t){this.columnLayout.autoSizeColumn(e,t,`autosizeColumns`)}autoSizeColumns(e,t){this.columnLayout.autoSizeColumns(e,t,`autosizeColumns`)}sizeColumnsToFit(e){this.columnLayout.sizeColumnsToFit(e)}setColumnWidths(e,t=!0,n=`api`){this.columnLayout.setColumnWidths(e,t,n)}setColumnWidth(e,t,n=!0,r=`api`){this.columnLayout.setColumnWidth(e,t,n,r)}getColumnWidth(e){return this.columnLayout.getColumnWidth(e)}setShowUnsortedSortHintOnHover(e){this.showUnsortedSortHintOnHover=e,this.viewport.refreshHeader()}toggleRowSelection(e,t,n){this.selectionOps.toggleRowSelection(e,t,n)}setIndexFocus(e,t){this.selectionOps.setIndexFocus(e,t),this.cellRangeOps.isCellSelectionEnabled()&&this.indexColumnOptions.showIndexColumn&&this.interaction.syncCellRangeFromIndexFocus()}toggleAllSelection(e){this.selectionOps.toggleAllSelection(e)}clearRowSelection(e){this.selectionOps.clearRowSelection(e)}setDefaultSelectedRows(e,t){this.selectionOps.setDefaultSelectedRows(e,t??{})}clearPendingDefaultSelectedRows(){this.selectionOps.clearPendingDefaultSelectedRows()}reconcileDefaultSelectedRows(){this.selectionOps.reconcilePendingDefaultSelectedRows(),this.selectionOps.flushPendingPresetTransientSelectionNotify()}getSelectedRowIds(){return this.selectionService?t.O(this.selectionService.getSelectedRowIds(),this.businessRowIdCtx):[]}getSelectedRows(){return this.selectionService?t.v(this.selectionService.getSelectedRowIds(),this.businessRowIdCtx):[]}async removeSelectedRows(e={}){if(!this.selectionService)return{add:[],remove:[],update:[]};let t=(e.scope??`all`)===`all`?[...this.selectionService.getSelectedRowIds()]:this.selectionService.getSelectedRowIds().filter(e=>this.rowModel.rowsToDisplay.some(t=>t.id===e));return t.length===0?{add:[],remove:[],update:[]}:(K(this.rowModel,`removeSelectedRows`),this.rowMutation.removeRows({rowIds:t}))}getIndexFocusedRowIds(e){return this.indexFocusService?t.x(this.getIndexFocusedRows(e),{mode:`all`}):[]}getIndexFocusedRows(e){return this.indexFocusService?t._(this.indexFocusService.getFocusedRowIds(),this.businessRowIdCtx,e):[]}isRowNodeSelectable(e){return this.selectionOps.isRowNodeSelectable(e)}getSelectableRowIdAt(e){return this.selectionOps.getSelectableRowIdAt(e)}getSummaryOptions(){return{...this.summaryOptions,summaryRowHeight:this.resolvedSummaryRowHeight}}getIndexColumnOptions(){return this.indexColumnOptions}getSelectionColumnOptions(){return this.selectionColumnOptions}on(e,t){return this.eventBus.on(e,t)}emitGridLifecycleEvent(e,t){this.destroyed||this.eventBus.emit(e,t)}getRowNode(e){return this.rowModel.getRowById(t.m(e))}getSiblingRowsByRowId(e,t){return Vu(e,t,this.getResolveDisplayRowContext())}getSiblingRowByIterator(e,t){return Hu(e,t,this.getResolveDisplayRowContext())}getRowKind(e){return kd(e,this.getResolveDisplayRowContext())}getRowIndex(e,t){return Ed(e,this.getResolveRowIndexContext(),t)}getRowIndexes(e,t){return Dd(e,this.getResolveRowIndexContext(),t)}getRowByIndex(e){return Wu(e,this.getResolveDisplayRowContext())}getRowsByIndexes(e){return Gu(e,this.getResolveDisplayRowContext())}getRowSnapshots(e){return Ku(this.getResolveDisplayRowContext(),e)}getRowIds(e){return qu(this.getResolveDisplayRowContext(),e)}getResolveDisplayRowContext(){return nk({rowKey:this.rowKey,rowModel:this.rowModel})}getResolveRowIndexContext(){return{...this.getResolveDisplayRowContext(),sourceRows:this.rowModel.getSourceRows(),hasSortOrFilter:this.rowModel.getSortModel().length>0||Object.keys(this.rowModel.getFilterModel()).length>0}}ensureIndexVisible(e,t=`middle`){G(this.rowModel)&&this.infiniteDatasourceService?.ensureBlocksForRange(e,e),this.viewport.ensureIndexVisible(e,t)}ensureColumnVisible(e){this.viewport.ensureColumnVisible(e)}setData(e){K(this.rowModel,`setData`);let t=this.preserveScrollOnSetData,n=t?this.viewport.getLogicalScrollTop():0,r=t?this.viewport.viewportEl.scrollLeft:0,i=performance.now(),a=this.selectionOps.reserveSelection&&this.selectionService?this.selectionService.getSelectedRowIds():null,o=(this.selectionService?.getSelectedRowIds().length??0)>0;this.selectionOps.reserveSelection||this.selectionService?.clear(),this.indexFocusService?.clear(),this.cellFocusService.clear(),this.validationFeedback.clear(this.mountEl),this.cellEditing.syncValidationHeaderDom(),this.treeLazyLoadService?.reset(),this.cellStyleOverrideService.clear();let s=new Set(this.rowModel.getSourceRows().map(e=>e.id));this.rowModel.setData(e);let c=new Set(this.rowModel.getSourceRows().map(e=>e.id)),l=[...s].filter(e=>!c.has(e));l.length>0&&(this.clearCellEditorCacheForRemovedRows(l),this.clearCellStyleOverridesForRemovedRows(l));let u=this.selectionOps.reconcileSelectionAfterSetData(a,o);t||this.viewport.resetScrollOnSetData(),this.viewport.syncViewportHeight(),this.valueCache.bump(),this.refreshCellSpanCache(),this.reconcileRowPoolAfterDisplayChange(c),t?this.viewport.scrollTo(n,r):this.viewport.scrollTo(0,0),this.selectionOps.applySelectionVisuals(),this.selectionOps.applyIndexFocusVisuals({syncToSelectionColumn:!1}),this.selectionOps.reconcilePendingDefaultSelectedRows(),this.applyFocusVisuals(),this.lastSetDataMs=performance.now()-i,this.viewport.scheduleCompressedSetDataRedraw(()=>{this.viewport.syncViewportHeight(),this.viewport.redrawImmediately(),t&&this.viewport.scrollTo(n,r),this.gridFooter.refresh()}),this.gridFooter.refresh(),this.maybeApplyFitCellContentsStrategy(e.length),u&&this.selectionService&&this.eventBus.emit(`selectionChanged`,{selectedRowIds:this.selectionService.getSelectedRowIds(),source:`api`}),this.overlayService.markRowDataReady(),this.syncEmptyStateOverlay()}setColumns(e){this.userColumns=[...e],this.userColumns,rt(this.userColumns),this.rowGroupingService.syncRowGroupColumnsFromDefs(),this.columnModel.setColumns(Un(this.userColumns,this.indexColumnOptions,this.selectionColumnOptions,{rowExpansion:this.rowExpansionOptions,rowGrouping:this.rowGroupingService.active?this.rowGroupingOptions:void 0,treeTable:this.treeTableService.active?this.treeTableOptions:void 0}),this.cellRenderersByColId,this.cellEditorsByColId,void 0,this.columnLayout.columnMoveOptions,this.columnLayout.columnResizeOptions,this.columnSortOptions,this.filterGridOptions),this.overflowTooltipSession.close(),this.refreshCellSpanCache(),this.columnLayout.syncAfterColumnStructureChange(),this.syncEmptyStateOverlay()}getCenterViewportWidth(){let e=this.mountEl.querySelector(`.mg-viewport`)?.clientWidth??0,t=e>0?e:this.mountEl.clientWidth;return this.columnFlexService.resolveCenterViewportWidth(t)}refreshFlexedColumnsOnViewportChange(e){let t=this.getCenterViewportWidth();t===this.centerViewportWidth&&e||(this.centerViewportWidth=t,this.columnLayout.refreshFlexedColumns({fireResizedEvent:e}))}scheduleAutoSizeStrategy(){let e=this.columnAutosizeService.getAutoSizeStrategy();if(e){if(e.type===`fitGridWidth`||e.type===`fitProvidedWidth`){window.setTimeout(()=>{this.destroyed||this.columnLayout.applyAutoSizeFitWidthStrategy(e)},0);return}e.type===`fitCellContents`&&(this.autoSizeCellContentsPending=!0)}}maybeApplyFitCellContentsStrategy(e){if(!this.autoSizeCellContentsPending||e===0)return;let t=this.columnAutosizeService.getAutoSizeStrategy();!t||t.type!==`fitCellContents`||(this.autoSizeCellContentsPending=!1,window.setTimeout(()=>{this.destroyed||this.columnLayout.applyAutoSizeFitCellContentsStrategy(t)},0))}setSortModel(e){let t=Xi(e);if(G(this.rowModel)){this.rowModel.setSortModel(t),this.viewport.scrollTo(0,0),this.infiniteDatasourceService?.refreshCache(`sort`),this.viewport.refreshHeader(),this.eventBus.emit(`sortChanged`,{sortModel:this.rowModel.getSortModel()}),this.cellRangeOps.clearCellSelectionOnStructuralChange(),this.gridFooter.refresh();return}this.rowModel.setSortModel(t),this.viewport.syncViewportHeight(),this.valueCache.bump(),this.refreshCellSpanCache(),this.reconcileRowPoolAfterDisplayChange(),this.viewport.redrawImmediately(),this.viewport.refreshHeader(),this.eventBus.emit(`sortChanged`,{sortModel:this.rowModel.getSortModel()}),this.cellRangeOps.clearCellSelectionOnStructuralChange(),this.gridFooter.refresh()}getSortModel(){return this.rowModel.getSortModel()}setFilterModel(e){if(G(this.rowModel)){this.rowModel.setFilterModel(e),this.afterInfiniteFilterChange();return}this.filterOps.setFilterModel(e)}afterInfiniteFilterChange(){this.viewport.scrollTo(0,0),this.infiniteDatasourceService?.refreshCache(`filter`),this.viewport.refreshHeaderIndicatorState(),this.emitInfiniteFilterChanged()}emitInfiniteFilterChanged(){this.eventBus.emit(`filterChanged`,{filterModel:this.rowModel.getFilterModel(),quickFilterText:this.rowModel.getQuickFilterText()}),this.cellRangeOps.clearCellSelectionOnStructuralChange(),this.gridFooter.refresh()}refreshInfiniteCache(){this.infiniteDatasourceService?.refreshCache(`api`)}setInfiniteDatasource(e){if(!G(this.rowModel))throw Error(`[MagicGrid] setInfiniteDatasource() requires rowModelType "infinite"`);if(!this.infiniteDatasourceService)throw Error(`[MagicGrid] infinite datasource service is not initialized`);this.infiniteDatasourceService.setDatasource(e)}retryInfiniteBlock(e){this.infiniteDatasourceService?.retryBlock(e)}getLoadedRowData(){return this.infiniteDatasourceService?.getLoadedRowData()??[]}getInfiniteRowCount(){return this.infiniteDatasourceService?.getInfiniteRowCount()??this.rowModel.getRowCount()}getFilterModel(){return this.filterOps.getFilterModel()}getColumnFilter(e){return this.filterOps.getColumnFilter(e)}getColumnDistinctFilterValues(e){return G(this.rowModel)?[]:this.filterOps.getColumnDistinctFilterValues(e)}isColumnFilterActive(e){return this.filterOps.isColumnFilterActive(e)}isAnyFilterActive(){return this.filterOps.isAnyFilterActive()}getQuickFilterText(){return this.filterOps.getQuickFilterText()}setQuickFilterText(e){if(G(this.rowModel)){if(this.rowModel.getQuickFilterText()===e)return;this.rowModel.setQuickFilterText(e),this.afterInfiniteFilterChange();return}this.filterOps.setQuickFilterText(e)}clearAllFilters(){if(G(this.rowModel)){if(!this.isAnyFilterActive())return;this.rowModel.setFilterModel({}),this.rowModel.setQuickFilterText(``),this.afterInfiniteFilterChange();return}this.filterOps.clearAllFilters()}setColumnFilter(e,t){if(G(this.rowModel)){let n={...this.rowModel.getFilterModel()};t===null?delete n[e]:n[e]=t,this.setFilterModel(n);return}this.filterOps.setColumnFilter(e,t)}moveColumn(e,t,n=!0,r){return this.columnLayout.moveColumn(e,t,n,r)}resetColumnOrder(){return this.columnLayout.resetColumnOrder()}resetColumnWidths(){return this.columnLayout.resetColumnWidths()}setColumnFixed(e,t,n=`api`){return this.columnLayout.setColumnFixed(e,t,n)}setColumnsHidden(e,t){return this.columnLayout.setColumnsHidden(e,t,`api`)}isColumnHidden(e){return this.columnModel.isColumnHidden(e)}getDisplayedColumnIds(){return this.columnModel.getDisplayedColumnIds()}getColumns(){return this.columnModel.getColumns()}getDisplayedColumns(){return this.columnModel.getDisplayedColumns()}finishColumnMove(e){this.columnLayout.finishColumnMove(e)}setColumnMoveLiveDragging(e){this.columnLayout.setColumnMoveLiveDragging(e)}setRowMoveLiveDragging(e){this.rootEl.classList.toggle(`magic-grid--row-move-live`,e)}buildPlanRowDragMoveOptions(e){return{sourceRows:this.rowModel.getSourceRows(),displayRows:this.rowModel.rowsToDisplay,rowIds:e.rowIds,leaderRowId:e.leaderRowId,displayInsertIndex:e.displayInsertIndex,sortModelLength:this.rowModel.getSortModel().length,filterModelKeyCount:Object.keys(this.rowModel.getFilterModel()).length,isRowGroupingActive:this.rowGroupingService.active,isTreeActive:this.treeTableService.active,treeDragScope:this.treeTableOptions.treeDragScope,getDataPath:this.treeTableOptions.getDataPath,setDataPath:this.treeTableOptions.setDataPath,treeNestUnderRowId:typeof e.treeNestUnderRowId==`string`?e.treeNestUnderRowId:void 0}}setRowDragCommittingVisual(e){this.rootEl.classList.toggle(Ca,e!=null),this.rowRenderer.setRowDragCommittingRows(e?.rowIds??null)}finishRowMove(e){this.rowMutation.finishRowMove(t.m(e))}applyTransaction(e){return K(this.rowModel,`applyTransaction`),this.rowMutation.applyTransaction(e)}commitTransaction(e){return K(this.rowModel,`commitTransaction`),this.rowMutation.commitTransaction(e)}addRows(e){return K(this.rowModel,`addRows`),this.rowMutation.addRows(e)}addRowsByArray(e,t){return K(this.rowModel,`addRowsByArray`),this.rowMutation.addRowsByArray(e,t)}addGroupRows(e){return K(this.rowModel,`addGroupRows`),this.rowMutation.addGroupRows(e)}addGroupRowsByArray(e,t){return K(this.rowModel,`addGroupRowsByArray`),this.rowMutation.addGroupRowsByArray(e,t)}removeRows(e){return K(this.rowModel,`removeRows`),this.rowMutation.removeRows(e)}updateRows(e){return K(this.rowModel,`updateRows`),this.rowMutation.updateRows(e)}patchRow(e){return this.updateRows({rows:[{rowId:t.b(e.row),data:e.data}]})}moveRow(e,n,r=`source`){return K(this.rowModel,`moveRow`),this.rowMutation.moveRow({rowId:t.m(e),toIndex:n,indexMode:r})}moveRows(e){K(this.rowModel,`moveRows`);let n=t.g(e.rowIds)??[];if(n.length===0)return Promise.resolve({moved:!1,reason:`no rows to move`});let r=this.rowModel.getSourceRows(),i=e.leaderRowId==null?Ou(r,n):t.m(e.leaderRowId);return this.rowMutation.moveRows({rowIds:n,leaderRowId:i,toIndex:e.toIndex,indexMode:e.indexMode},`api`)}moveUp(e){return this.moveRowByStep(e,`up`)}moveDown(e){return this.moveRowByStep(e,`down`)}moveUps(e){return this.moveRowsByStep(e,`up`)}moveDowns(e){return this.moveRowsByStep(e,`down`)}async moveRowsByStep(e,n){let r=t.g(e)??[];if(r.length===0)return[];let i=this.getResolveRowIndexContext(),a=new Set;for(let e of r){let t=Mu(e,i);if(t==null)return[];a.add(i.sourceRows[t].id)}let o=i.sourceRows.filter(e=>a.has(e.id)).map(e=>e.id),s=wd({sourceRows:i.sourceRows,displayRows:i.displayRows,rowIds:o,direction:n,isRowGroupingActive:this.rowGroupingService.active,isTreeActive:this.treeTableService.active});if(s==null||!(await this.moveRows({rowIds:o,toIndex:s.toIndex,indexMode:s.indexMode})).moved)return[];let c=this.getResolveDisplayRowContext(),l=[];for(let e of o){let t=this.rowModel.getRowById(e);if(!t)continue;let n=Lu(t,c);n&&l.push(n)}return l}async moveRowByStep(e,n){let r=this.getResolveRowIndexContext(),i=Mu(t.m(e),r);if(i==null)return null;let a=r.sourceRows[i].id,o=Td({sourceRows:r.sourceRows,displayRows:r.displayRows,rowId:a,direction:n,isRowGroupingActive:this.rowGroupingService.active,isTreeActive:this.treeTableService.active});if(o==null||!(await this.moveRow(a,o.toIndex,o.indexMode)).moved)return null;let s=this.rowModel.getRowById(a);return s?Lu(s,this.getResolveDisplayRowContext())??null:null}setRowHeight(e,n,r=!0){this.rowHeightService.setRowHeight(t.m(e),n,r,`api`)}setRowHeights(e,n=!0){this.rowHeightService.setRowHeights(e.map(e=>({rowId:t.m(e.rowId),height:e.height})),{finished:n,source:`api`})}getRowHeight(e){return this.rowHeightService.getRowHeight(t.m(e))}resetRowHeights(e){this.rowHeightService.resetRowHeights(e?.map(e=>t.m(e)))}expandRow(e){return this.hierarchyOps.expandRow(e)}collapseRow(e){return this.hierarchyOps.collapseRow(e)}isRowExpanded(e){return this.hierarchyOps.isRowExpanded(e)}setDetailRowData(e,t){return this.hierarchyOps.setDetailRowData(e,t)}reloadDetailRowData(e){return this.hierarchyOps.reloadDetailRowData(e)}expandAll(){this.hierarchyOps.expandAll()}collapseAll(){this.hierarchyOps.collapseAll()}setRowGroupColumns(e){this.hierarchyOps.setRowGroupColumns(e)}getRowGroupColumns(){return this.hierarchyOps.getRowGroupColumns()}expandGroup(e){return this.hierarchyOps.expandGroup(e)}collapseGroup(e){return this.hierarchyOps.collapseGroup(e)}isGroupExpanded(e){return this.hierarchyOps.isGroupExpanded(e)}expandNode(e){return this.hierarchyOps.expandNode(e)}collapseNode(e){return this.hierarchyOps.collapseNode(e)}isNodeExpanded(e){return this.hierarchyOps.isNodeExpanded(e)}getDataPath(e){return this.hierarchyOps.getDataPath(e)}applyTreeHierarchyShortcut(e,t){this.hierarchyOps.applyTreeHierarchyShortcut(e,t)}getCellComment(e,n){return this.cellCommentService.getComment(t.m(e),n)}async setCellComment(e,n,r){await this.cellCommentService.setComment(t.m(e),n,r??null,`api`)}refreshCellComments(e){this.cellCommentService.requestRefresh(e),this.closeCellCommentPopupIfAnchorNotVisible()}getCellRanges(){return this.cellRangeOps.getCellRanges()}getCellSelectionAggregation(){return this.cellRangeOps.getCellSelectionAggregation()}clearCellSelection(){this.cellRangeOps.clearCellSelection()}addCellRange(e){this.cellRangeOps.addCellRange(e)}copySelectedRangeToClipboard(){this.cellRangeOps.copySelectedRangeToClipboard()}async pasteFromClipboard(){await this.cellRangeOps.pasteFromClipboard()}showLoadingOverlay(){this.updateEmptyStateOptions({loading:!0})}showNoRowsOverlay(){this.overlayService.showNoRowsOverlay()}hideOverlay(){this.overlayService.hideOverlay()}isOverlayShowing(){return this.overlayService.isOverlayShowing()}getOverlayType(){return this.overlayService.getOverlayType()}updateEmptyStateOptions(e){this.emptyStateOptionsRaw={...this.emptyStateOptionsRaw,...e},this.emptyStateGridOptions=Kc(this.emptyStateOptionsRaw),this.syncEmptyStateOverlay(),this.refreshOverlayPresentation()}updateLoadMoreRowOptions(e){let t=this.loadMoreRowGridOptions.enabled,n=this.loadMoreRowGridOptions.height;if(this.loadMoreRowOptionsRaw={...this.loadMoreRowOptionsRaw,...e},Object.assign(this.loadMoreRowGridOptions,fo(this.loadMoreRowOptionsRaw,this.gridSize)),t!==this.loadMoreRowGridOptions.enabled||n!==this.loadMoreRowGridOptions.height){this.syncLoadMoreRowDisplay();return}this.rowRenderer.refreshLoadMoreRowContent(),this.viewport.redrawImmediately()}syncLoadMoreRowDisplay(){vu(this.rowModel)&&(this.rowModel.rebuildDisplayProjection(),this.viewport.syncViewportHeight(),this.rowRenderer.invalidate(),this.viewport.redrawImmediately())}refreshOverlayPresentation(){let e=this.overlayService.getOverlayType();e!=null&&this.overlayRenderer.sync(e,this.overlayService.getOverlayPresentation())}handleOverlayChanged(e,t){t!=null&&this.eventBus.emit(`overlayHidden`,{overlayType:t}),this.overlayRenderer.sync(e,e==null?null:this.overlayService.getOverlayPresentation()),e!=null&&this.eventBus.emit(`overlayShown`,{overlayType:e})}syncEmptyStateOverlay(){this.destroyed||(G(this.rowModel)&&this.rowModel.getSourceRowCount()>0&&!this.overlayService.isRowDataReady()&&this.overlayService.markRowDataReady(),this.overlayRenderer.syncLayout(),this.overlayService.updateOverlay())}updateCellRangeVisualOptions(e){this.cellRangeOps.updateCellRangeVisualOptions(e)}updateCellSelectionOptions(e){this.cellRangeOps.updateCellSelectionOptions(e)}updateCellClipboardOptions(e){this.cellRangeOps.updateCellClipboardOptions(e)}applyFocusVisuals(){this.interaction.applyFocusVisuals()}updateCellCommentOptions(e){let t=this.cellCommentOptions.cellCommentsDataSource;this.cellCommentOptions=No({...this.cellCommentOptions,...e}),t!==this.cellCommentOptions.cellCommentsDataSource&&(this.cellCommentService.resetDatasourceLifecycle(),this.destroyed||this.cellCommentService.init(this.api)),this.rowRenderer.setCellCommentHost(this.cellCommentService.createHost()),this.refreshCellComments()}updateOverflowTooltipOptions(e){this.overflowTooltipOptions=wc({...this.overflowTooltipOptions,...e}),this.overflowTooltipSession.close()}setStatusBarElement(e){this.overflowTooltipSession.setStatusBarElement(e)}closeCellCommentPopupIfAnchorNotVisible(){let e=this.cellCommentService.getOpenEditorCell();if(!e)return;let t=this.rowModel.getRowIndexById(e.rowId);if(t<0){this.cellCommentService.closeEditor();return}let{firstRow:n,lastRow:r}=this.rowRenderer.getCurrentWindow();(t<n||t>r)&&this.cellCommentService.closeEditor()}updateDimensions(e){if(this.destroyed)return;let t=this.viewport.getLogicalScrollTop(),n=this.viewport.viewportEl.scrollLeft,r={...this.rowHeightGridOptions,rowHeightMin:e.rowHeightMin??this.rowHeightGridOptions.rowHeightMin,rowHeightMax:e.rowHeightMax??this.rowHeightGridOptions.rowHeightMax};this.rowHeightGridOptions=r;let i=e.rowHeight??this.rowHeightService.getDefaultRowHeight();this.rowModel.setDefaultRowHeight(i),this.rowRenderer.setDefaultRowHeight(i),this.suppressRowLayoutViewportSync=!0;try{this.rowHeightService.updateDefaultRowHeight(i,r)}finally{this.suppressRowLayoutViewportSync=!1}this.viewport.syncViewportHeight(),this.viewport.redrawImmediately(),this.viewport.scrollTo(t,n)}isRowDragHandleEnabled(e){if(this.rowDragCommitService?.isCommitting())return!1;let n=this.isSortOrFilterActive(),{rowDragManaged:r}=this.rowDragOptions;return t.it(e)?ka(this.indexColumnOptions.indexColumn.showRowDragHandle,n,r):this.columnModel.getColumnById(e)?.rowDrag?ka(!0,n,r):!1}isSortOrFilterActive(){return this.rowModel.getSortModel().length>0||this.isAnyFilterActive()}getData(e){return G(this.rowModel)?(xu(),this.getLoadedRowData()):this.rowMutation.getData(e)}promoteRowId(e){return K(this.rowModel,`promoteRowId`),this.rowMutation.promoteRowId(e)}beginUpdate(){this.rowMutation.beginUpdate()}endUpdate(){this.rowMutation.endUpdate()}refreshCells(e){this.rowRenderer.setValueCacheVersion(this.valueCache.getVersion()),this.frameService.flushAllFrames();let t=this.rowRenderer.refreshRows(e??{});return this.frameService.flushAllFrames(),t}refreshCellSpans(){this.refreshCellSpanCache(),this.valueCache.bump(),this.rowRenderer.setValueCacheVersion(this.valueCache.getVersion()),this.rowRenderer.invalidate(),this.viewport.redrawImmediately(),this.gridFooter.refresh()}getCellSpan(e,n){return this.cellSpanService.getCellSpan(t.m(e),n)}getColumnModel(){return this.columnModel}getRowModel(){return this.rowModel}getActiveDomRowCount(){return this.rowRenderer.getActiveRowCount()}getRenderedRowWindow(){return this.rowRenderer.getCurrentWindow()}getMetrics(){let e=this.rowRenderer.getCurrentWindow(),t=this.viewport.getLogicalScrollTop();return{rowCount:this.rowModel.getRowCount(),sourceRowCount:this.rowModel.getSourceRowCount(),columnCount:this.columnModel.getColumnCount(),activeDomRowCount:this.rowRenderer.getActiveRowCount(),domCellCount:this.mountEl.querySelectorAll(`.mg-cell`).length,scrollTop:t,scrollLeft:this.viewport.viewportEl.scrollLeft,totalHeight:this.rowModel.getTotalHeight(),totalWidth:this.columnModel.getTotalWidth(),renderedFirstRow:e.firstRow,renderedLastRow:e.lastRow,renderedFirstCol:e.firstCol,renderedLastCol:e.lastCol,lastSetDataMs:this.lastSetDataMs}}refreshCellSpanCache(){this.cellSpanService.refresh()}reconcileRowPoolAfterDisplayChange(e=this.collectSourceRowIds()){this.rowRenderer.reconcileRowPoolAfterModelChange(e,this.cellSpanService.active)}collectSourceRowIds(){return new Set(this.rowModel.getSourceRows().map(e=>e.id))}syncRowLayoutAfterRowHeightChange(e){let t=e.map(e=>e.rowId);if(this.suppressRowLayoutViewportSync){this.rowRenderer.syncVisibleRowLayouts(t);return}let n=this.viewport.captureScrollAnchor(),r=0,i=0;if(vu(this.rowModel))for(let t of e){if(!I(t.rowId))continue;let e=t.previousRowHeight;if(e==null||e===t.rowHeight)continue;let n=this.rowModel.getDisplayRowById(t.rowId);n&&(r=n.rowTop,i+=t.rowHeight-e)}this.viewport.syncViewportHeightWithDetailCompensation({anchor:n,detailRowTop:r,heightDelta:i}),this.rowRenderer.syncVisibleRowLayouts(),this.viewport.syncBorderClosureState()}scrollTo(e,t){this.viewport.scrollTo(e,t)}flushFrames(){this.frameService.flushAllFrames()}getPendingFrameTaskCount(){return this.frameService.getPendingTaskCount()}getPendingRendererTaskCount(){return this.frameService.getPendingRendererTaskCount()}startEditingCell(e){this.cellEditing.startEditingCell(e)}stopEditing(e=!1){return this.cellEditing.stopEditing(e).then(()=>void 0)}async commit(e=!1){let t=await this.cellEditing.commit(e);return e||await this.awaitCommitIdle(),e?t:t&&!this.cellEditing.isEditing()}isCommitting(){return this.cellEditing.isCommitting()||this.inlineCellEditorService.isCommitting()}cancelCommit(){this.cellEditing.cancelCommit(),this.inlineCellEditorService.cancelCommit()}async awaitCommitIdle(){await this.cellEditing.awaitCommitIdle(),await this.inlineCellEditorService.awaitCommitIdle()}isEditing(){return this.cellEditing.isEditing()}getEditSessionPhase(){return this.cellEditing.getEditSessionPhase()}getEditingCell(){let e=this.cellEditing.getEditingCell();return e?{colId:e.colId,rowId:t.D(e.rowId,this.businessRowIdCtx)}:null}getEditingCells(){return this.cellEditing.getEditingCells().map(e=>{let n=this.rowModel.getRowById(e.rowId),r=this.columnModel.getColumnById(e.colId),i=n&&r?U(n,r):n?.data[e.colId];return{rowId:t.D(e.rowId,this.businessRowIdCtx),rowIndex:e.rowIndex,colId:e.colId,data:n?t.N(n,this.rowKey):{},value:i}})}validate(e){return this.cellEditing.validate(ok(e)).then(e=>t.w(e,this.businessRowIdCtx))}validateRows(e){return this.cellEditing.validateRows(sk(e)).then(e=>t.w(e,this.businessRowIdCtx))}validateCells(e){return this.cellEditing.validateCells(ck(e)).then(e=>t.w(e,this.businessRowIdCtx))}clearValidation(e){this.cellEditing.clearValidation(lk(e))}clearRowValidation(e){this.cellEditing.clearRowValidation(uk(e))}clearCellValidation(e){this.cellEditing.clearCellValidation(dk(e))}registerCellEditor(e,t){this.cellEditing.registerCellEditor(e,t)}unregisterCellEditor(e){return this.cellEditing.unregisterCellEditor(e)}resolveCellEditorCacheAccess(e){return t.o(e,{rowKey:this.rowKey,resolveRowById:e=>this.rowModel.resolveRowById(e),getSourceRows:()=>this.rowModel.getSourceRows()})}getCellEditorCache(e,t,n){let r=this.resolveCellEditorCacheAccess(e);return this.cellEditorCacheService.get(r.rowId,t,n,{internalRowId:r.internalRowId})}setCellEditorCache(e,t,n,r){let i=this.resolveCellEditorCacheAccess(e);this.cellEditorCacheService.set(i.rowId,t,n,r,{internalRowId:i.internalRowId})}clearCellEditorCache(e,t,n){if(e==null){this.cellEditorCacheService.clear(void 0,t,n);return}let r=this.resolveCellEditorCacheAccess(e);this.cellEditorCacheService.clear(r.rowId,t,n,{internalRowId:r.internalRowId})}clearAllCellEditorCache(){this.cellEditorCacheService.clearAll()}clearCellStyleOverridesForRemovedRows(e){e.length!==0&&this.cellStyleOverrideService.clear({rowIds:e})}clearCellEditorCacheForRemovedRows(e){let{businessRowIds:t,transientInternalRowIds:n}=Tu(e,{rowKey:this.rowModel.getRowKey(),getRowById:e=>this.rowModel.getRowById(e)});this.cellEditorCacheService.removeByRowIds(t,{internalRowIds:n})}destroy(){this.destroyed||(this.destroyed=!0,this.infiniteDatasourceService?.destroy(),this.infiniteDatasourceService=null,this.rowDragCommitService?.destroy(),this.cellCommentService.destroy(),this.cellStyleOverrideService.clear(),this.cellRangeOps.destroy(),this.overflowTooltipSession.destroy(),this.overlayRenderer?.destroy(),this.overlayService?.destroy(),this.rowRenderer.setCellCommentHost(void 0),this.cellEditing.cancelEditingOnDestroy(),this.cellEditorCacheService.clearAll(),this.changeDetection.reset(),this.eventBus.destroy(),this.cellEditing.destroy(),this.resizeObserver?.disconnect(),this.resizeObserver=null,this.viewport.unbindScrollListener(),this.interaction.unbindListeners(),this.columnHandleMenuController.destroy(),this.treeHierarchyMenuController.destroy(),this.columnDragController.destroy(),this.frameService.flushAllFrames(),this.frameService.destroy(),this.rowAutoHeightService.destroy(),this.detailRowAutoHeightService?.destroy(),this.rowRenderer.destroy(),this.footerRenderer?.destroy(),this.footerRenderer=null,this.floatingFilterController?.destroy(),this.floatingFilterController=null,this.rootEl.remove())}getColIndex(e){return this.columnModel.getColumns().findIndex(t=>t.colId===e)}getPinnedRowIds(){let e=new Set;for(let t of this.editingService.getPinnedRowIds())e.add(t);for(let t of this.rowEditingService.getPinnedRowIds())e.add(t);if(this.rowExpansionOptions.masterDetail)for(let t of this.rowExpansionService.getPinnedRowIds())e.add(t);return e}isEditingTargetRow(e){return this.cellEditing.getEditingCell()?.rowId===e||this.cellEditing.getEditingCells().some(t=>t.rowId===e)}},gk=`--mg-color-bg-cell`,_k=`--mg-color-text-regular`,vk=`--mg-color-text-primary`,yk=[gk,_k,vk];function bk(e){if(e==null)return;let t=e.trim();return t===``?void 0:t}function xk(e){let t=bk(e?.backgroundColor),n=bk(e?.color);return t===void 0&&n===void 0?{}:{...t===void 0?{}:{backgroundColor:t},...n===void 0?{}:{color:n}}}function Sk(e){let t=xk(e),n={};return t.backgroundColor!==void 0&&(n[gk]=t.backgroundColor),t.color!==void 0&&(n[_k]=t.color,n[vk]=t.color),n}function Ck(e){return e??`light`}function wk(e){return`magic-grid--theme-${e}`}function Tk(e,t){return e===`dark`?Sk(t):{}}function Ek(e,t,n){if(!e)return;for(let t of yk)e.style.removeProperty(t);let r=Tk(t,n);for(let[t,n]of Object.entries(r))e.style.setProperty(t,n)}function Dk(e){if(e===!1)return!1;let t=e===!0||e==null?{}:e,n=typeof e==`object`&&!!e&&`handleMode`in e,r={...t,enableColumnSelection:t.enableColumnSelection??!0};if(n){let e=t.handleMode??`off`;r.handleMode=e,e===`fill`&&(r.fillStrategy=t.fillStrategy??`copy`)}return r}function Ok(e){return{...e,syncToSelectionColumn:e?.syncToSelectionColumn??!0}}function kk(e){return ws({cellSelection:e}).enabled}function Ak(e){let r=(0,n.ref)(0),i=(0,n.ref)(0),a=()=>{r.value+=1};return{statusBarContext:(0,n.computed)(()=>{r.value;let n=e.api.value,a=n?.getMetrics(),s=t.$(e.rowSelection.value).mode!==!1,c=kk(e.cellSelection.value),l=e.rowModelType.value===`infinite`;return{api:n,totalRowCount:l?n?.getInfiniteRowCount()??a?.rowCount??0:a?.sourceRowCount??0,displayedRowCount:a?.rowCount??0,isFiltered:l?n?.isAnyFilterActive()??!1:n?.isAnyFilterActive()??(a!=null&&a.sourceRowCount!==a.rowCount),selectedRowCount:i.value,rowSelectionEnabled:s,cellSelectionEnabled:c,cellSelectionAggregation:c?n?.getCellSelectionAggregation()??null:null,statusBarRangeAggregationPrecision:o(e.statusBarRangeAggregationPrecision.value),metrics:a}}),bumpRefresh:a,onSelectionChanged:e=>{i.value=e.length,a()},resetSelectionCount:()=>{i.value=0}}}var jk=class{appContext=null;setAppContext(e){this.appContext=e}getAppContext(){return this.appContext}render(e,t){this.appContext&&(t.appContext=this.appContext),(0,n.render)(t,e)}unmount(e){op(e),(0,n.render)(null,e)}};function Mk(e,t){let r={...t.props??{}};return r.ref=up(e,r.ref),(0,n.cloneVNode)(t,r)}function Nk(e,t){return da((n,r)=>{e.render(r.mountEl,Mk(r.mountEl,t(n))),dp(r.mountEl)})}function Pk(e,t){return Nk(e,e=>{let n=t(e);return Array.isArray(n)?n[0]:n})}var Fk=class{render(e,t){(0,n.render)(t,e)}unmount(e){(0,n.render)(null,e)}};function Ik(e,t){return(n,r)=>{e.render(r.mountEl,t(n))}}function Lk(e,t){return Ik(e,e=>{let n=t(e);return Array.isArray(n)?n[0]:n})}var Rk=class{render(e,t){(0,n.render)(t,e)}unmount(e){(0,n.render)(null,e)}};function zk(e,t){return(n,r)=>{e.render(r.mountEl,t(n))}}function Bk(e,t){return zk(e,e=>{let n=t(e);return Array.isArray(n)?n[0]:n})}var Vk=new Rk,Hk=class{render(e,t){(0,n.render)(t,e)}unmount(e){op(e),(0,n.render)(null,e)}};function Uk(e){return{params:e,...e.cellEditorParams??{}}}function Wk(e){return typeof e==`function`}function Gk(e,t,r,i){let a=Wk(r)?r(i):(0,n.h)(r,{...Uk(i),ref:up(t,void 0)});e.render(t,a),dp(t)}function Kk(e,t){return bn((n,r)=>{Gk(e,r.mountEl,t,n)})}function qk(e,t){return Kk(e,e=>{let n=t(e);return Array.isArray(n)?n[0]:n})}var Jk=class{mountEl=null;render(e,t){this.unmount(),this.mountEl=e,(0,n.render)(t,e)}unmount(){this.mountEl&&=((0,n.render)(null,this.mountEl),null)}};function Yk(e,t){return(n,r)=>{let i=t(n),a=Array.isArray(i)?i[0]:i;return e.render(r,a),{getGui:()=>r,destroy:()=>e.unmount()}}}var Xk=class{mountEl=null;render(e,t){this.unmount(),this.mountEl=e,(0,n.render)(t,e)}unmount(){this.mountEl&&=((0,n.render)(null,this.mountEl),null)}};function Zk(e,t){return(n,r)=>{let i=t(n),a=Array.isArray(i)?i[0]:i;return e.render(r,a),{getGui:()=>r,destroy:()=>e.unmount()}}}var Qk=new jk,$k=new Fk,eA=new Hk,tA=new Jk,nA=new Xk;function rA(e,t){return e.key??e.prop??`col_${t}`}function iA(){Qk.setAppContext((0,n.getCurrentInstance)()?.appContext??null)}function aA(e,t){let n={};return e.forEach((e,r)=>{let i=rA(e,r);e.cellRenderer&&(n[i]=e.cellRenderer);let a=t[`cell-${i}`];a&&(n[i]=Pk(Qk,e=>a({row:e.data,value:e.value,formattedValue:e.formattedValue,rowIndex:e.rowIndex,rowId:e.rowId,colId:e.colId,isSummaryRow:e.isSummaryRow??!1})))}),n}function oA(e,t){let n={};return e.forEach((e,r)=>{let i=rA(e,r);e.cellEditor&&typeof e.cellEditor==`function`&&(n[i]=e.cellEditor);let a=t[`cell-editor-${i}`];a&&(n[i]=qk(eA,e=>a({params:e,row:e.data,value:e.value,formattedValue:e.formattedValue,rowIndex:e.rowIndex,rowId:e.rowId,colId:e.colId,stopEditing:e.stopEditing})))}),n}function sA(e,t){let n=t.tooltip;return n?Yk(tA,e=>n(e)):e}function cA(e,t,n){let r=t[e];return r?Zk(nA,e=>r({overlayType:e.overlayType,api:e.api,overlayText:e.overlayText})):n}function lA(e,t){return{loading:e.loading,suppressOverlays:e.suppressOverlays,suppressLoadingOverlay:e.suppressLoadingOverlay,suppressNoRowsOverlay:e.suppressNoRowsOverlay,suppressNoMatchingRowsOverlay:e.suppressNoMatchingRowsOverlay,overlayLoadingTemplate:e.overlayLoadingTemplate,overlayNoRowsTemplate:e.overlayNoRowsTemplate,overlayNoMatchingRowsTemplate:e.overlayNoMatchingRowsTemplate,overlayInteraction:e.overlayInteraction,overlayComponent:e.overlayComponent,overlayComponentParams:e.overlayComponentParams,loadingOverlayComponent:cA(`loading`,t,e.loadingOverlayComponent),loadingOverlayComponentParams:e.loadingOverlayComponentParams,noRowsOverlayComponent:cA(`no-rows`,t,e.noRowsOverlayComponent),noRowsOverlayComponentParams:e.noRowsOverlayComponentParams,noMatchingRowsOverlayComponent:cA(`no-matching-rows`,t,e.noMatchingRowsOverlayComponent),noMatchingRowsOverlayComponentParams:e.noMatchingRowsOverlayComponentParams}}function uA(e,t){let n=t[`load-more-row`];return n?Bk(Vk,e=>n({...e})):e}function dA(e,t){let n=t[`detail-row`];return n?Lk($k,e=>n({row:e.data,rowId:e.rowId,masterRowId:e.masterRowId,detailRowData:e.detailRowData,loading:e.loading,loadFailed:e.loadFailed,loadError:e.loadError})):e}function fA(e){Qk.unmount(e),$k.unmount(e),Vk.unmount(e)}function pA(e){eA.unmount(e)}function mA(){tA.unmount(),nA.unmount()}function hA(e){if(typeof e==`number`)return Number.isFinite(e)?`${e}px`:`100%`;let t=e.trim();return t.length===0?`100%`:/^\d+(\.\d+)?$/.test(t)?`${t}px`:t}function gA(e,t){e===`infinite`&&t.length>0&&console.warn(`[MagicGrid] row-model-type="infinite" ignores the data prop; use infinite-datasource instead.`)}function _A(e,t){return e===`infinite`?(t&&console.warn(`[MagicGrid] row-model-type="infinite" does not support row-drag-managed; it has been disabled.`),!1):t}function vA(t,r,i){let a=(0,n.ref)(),o=(0,n.ref)(),s=(0,n.ref)(),c=(0,n.shallowRef)(),l=(0,n.shallowRef)(),u=!1,d=[];function f(e,t,n){let i={api:t,reason:n};e.emitGridLifecycleEvent(`gridDestroyed`,i),r(`grid-destroyed`,i)}function p(e){let t={api:e};r(`grid-ready`,t),queueMicrotask(()=>{c.value&&l.value===e&&c.value.emitGridLifecycleEvent(`gridReady`,t)})}let{statusBarContext:m,bumpRefresh:h,onSelectionChanged:g,resetSelectionCount:_}=Ak({api:l,rowModelType:(0,n.computed)(()=>t.rowModelType),rowSelection:(0,n.computed)(()=>t.rowSelection),cellSelection:(0,n.computed)(()=>t.cellSelection),statusBarRangeAggregationPrecision:(0,n.computed)(()=>t.statusBarRangeAggregationPrecision)}),v=(0,n.computed)(()=>!!i.toolbar),y=(0,n.computed)(()=>qn({size:t.size,rowHeight:t.rowHeight,headerHeight:t.headerHeight})),b=(0,n.computed)(()=>Kn({rounded:t.rounded,sizeBorderRadius:y.value.borderRadius})),x=(0,n.computed)(()=>Ck(t.theme)),S=(0,n.computed)(()=>Dk(t.cellSelection)),C=(0,n.computed)(()=>Ok(t.indexColumn)),w=(0,n.computed)(()=>Jn(t.statusBarHeight,y.value.statusBarHeight)),T=(0,n.computed)(()=>({api:l.value,size:y.value.size,portalEl:o.value??void 0})),E=(0,n.computed)(()=>({height:hA(t.height),width:hA(t.width),...ir({...y.value,statusBarHeight:w.value},b.value,t.summaryRowHeight),...Sk(t.cellColor)})),D=(0,n.computed)(()=>{let e=w.value,{fontSize:t,spacing:n}=y.value,r=Yn(e);return{height:`${e}px`,minHeight:`${e}px`,maxHeight:`${e}px`,fontSize:`${t}px`,paddingLeft:`${n}px`,paddingRight:`${n}px`,gap:`${n}px`,"--mg-status-bar-height":`${e}px`,"--mg-status-bar-font-size":`${t}px`,"--mg-status-bar-control-height":`${r}px`}}),O=(0,n.computed)(()=>[`magic-grid`,`magic-grid--border-${t.border}`,`magic-grid--size-${y.value.size}`,wk(x.value),t.showSummary&&`magic-grid--has-footer`,t.showStatusBar&&`magic-grid--has-status-bar`,v.value&&`magic-grid--has-toolbar`]),k=()=>{if(!c.value)return;let e=c.value.getMetrics();r(`data-rendered`,e);let t=l.value;if(!u&&t){u=!0;let n={api:t,metrics:e};c.value.emitGridLifecycleEvent(`firstRendered`,n),r(`first-rendered`,n)}h(),l.value?.reconcileDefaultSelectedRows()},A=()=>{if(t.rowModelType===`infinite`)return;let e=l.value;if(!e)return;let n=t.defaultSelectedRows;if(n==null){e.clearPendingDefaultSelectedRows();return}e.setDefaultSelectedRows(n,{mode:`cover`})},j=()=>{requestAnimationFrame(()=>{k()})},M=e=>{let t=e.setData.bind(e);e.setData=e=>{t(e),j()}},N=e=>{for(let e of d)e();d.length=0,d.push(e.on(`cellClicked`,e=>r(`cell-clicked`,e)),e.on(`rowClicked`,e=>r(`row-click`,e)),e.on(`rowDoubleClicked`,e=>r(`row-dblclick`,e)),e.on(`selectionChanged`,e=>{g(e.selectedRowIds),r(`selection-changed`,e)}),e.on(`indexFocusChanged`,e=>r(`index-focus-changed`,e)),e.on(`cellValueChanged`,e=>{r(`cell-value-changed`,e),h()}),e.on(`rowDataChanged`,e=>r(`row-data-changed`,e)),e.on(`rowsDataChanged`,e=>r(`rows-data-changed`,e)),e.on(`cellEditingStarted`,e=>r(`cell-editing-started`,e)),e.on(`cellEditingStopped`,e=>r(`cell-editing-stopped`,e)),e.on(`cellCommitStarted`,e=>r(`cell-commit-started`,e)),e.on(`cellCommitFinished`,e=>r(`cell-commit-finished`,e)),e.on(`editCommitAborted`,e=>r(`edit-commit-aborted`,e)),e.on(`rowCommitStarted`,e=>r(`row-commit-started`,e)),e.on(`rowCommitFinished`,e=>r(`row-commit-finished`,e)),e.on(`rowEditingStarted`,e=>r(`row-editing-started`,e)),e.on(`rowEditingStopped`,e=>r(`row-editing-stopped`,e)),e.on(`rowValueChanged`,e=>r(`row-value-changed`,e)),e.on(`cellValidationFailed`,e=>r(`cell-validation-failed`,e)),e.on(`rowValidationFailed`,e=>r(`row-validation-failed`,e)),e.on(`sortChanged`,e=>r(`sort-changed`,e.sortModel)),e.on(`columnMoved`,e=>r(`column-moved`,e)),e.on(`columnResized`,e=>r(`column-resized`,e)),e.on(`columnPinned`,e=>r(`column-pinned`,e)),e.on(`columnHiddenChanged`,e=>r(`column-hidden-changed`,e)),e.on(`filterChanged`,e=>{r(`filter-changed`,e.filterModel),h()}),e.on(`rowsAdded`,e=>{r(`rows-added`,e),h(),j()}),e.on(`rowsRemoved`,e=>{r(`rows-removed`,e),h()}),e.on(`rowIdPromoted`,e=>{r(`row-id-promoted`,e),j()}),e.on(`rowMoved`,e=>r(`row-moved`,e)),e.on(`rowDragEnd`,e=>r(`row-drag-end`,e)),e.on(`rowDragCommitStarted`,e=>r(`row-drag-commit-started`,e)),e.on(`rowDragCommitFinished`,e=>r(`row-drag-commit-finished`,e)),e.on(`rowHeightChanged`,e=>r(`row-height-changed`,e)),e.on(`rowExpanded`,e=>r(`row-expanded`,e)),e.on(`rowCollapsed`,e=>r(`row-collapsed`,e)),e.on(`rowGroupOpened`,e=>r(`row-group-opened`,e)),e.on(`treeNodeOpened`,e=>r(`tree-node-opened`,e)),e.on(`treeChildrenLoading`,e=>r(`tree-children-loading`,e)),e.on(`treeChildrenLoaded`,e=>r(`tree-children-loaded`,e)),e.on(`treeChildrenLoadFailed`,e=>r(`tree-children-load-failed`,e)),e.on(`rowGroupChanged`,e=>r(`row-group-changed`,e)),e.on(`cellCommentChanged`,e=>r(`cell-comment-changed`,e)),e.on(`cellSelectionChanged`,e=>{r(`cell-selection-changed`,e),h()}),e.on(`cellSelectionDeleteStart`,e=>r(`cell-selection-delete-start`,e)),e.on(`cellSelectionDeleteEnd`,e=>r(`cell-selection-delete-end`,e)),e.on(`overlayShown`,e=>r(`overlay-shown`,e)),e.on(`overlayHidden`,e=>r(`overlay-hidden`,e)),e.on(`scroll`,e=>r(`scroll`,e)),e.on(`scrollStart`,e=>r(`scroll-start`,e)),e.on(`scrollEnd`,e=>r(`scroll-end`,e)),e.on(`scrollTop`,e=>r(`scroll-top`,e)),e.on(`scrollBottom`,e=>r(`scroll-bottom`,e)),e.on(`loadMore`,e=>r(`load-more`,e)),e.on(`infiniteBlockLoading`,e=>r(`infinite-block-loading`,e)),e.on(`infiniteBlockLoaded`,e=>r(`infinite-block-loaded`,e)),e.on(`infiniteBlockLoadFailed`,e=>r(`infinite-block-load-failed`,e)),e.on(`infiniteCachePurged`,e=>r(`infinite-cache-purged`,e)))},P=()=>{Ek(a.value?.querySelector(`.mg-body`),x.value,t.cellColor)};function F(){c.value?.setStatusBarElement(t.showStatusBar?s.value?.statusBarEl??null:null)}let I=()=>{if(!a.value)return;iA();for(let e of d)e();d.length=0;let r=c.value,o=l.value;r&&o&&f(r,o,`reinit`),r?.destroy(),_(),t.columns,t.columns,t.columns,rt(t.columns),gA(t.rowModelType,t.data),Jy({tree:t.tree,rowGrouping:t.rowGrouping}),c.value=new hk(a.value,{columns:e.r(t.columns),rowKey:t.rowKey,rowModelType:t.rowModelType,infiniteDatasource:t.infiniteDatasource,blockSize:t.blockSize,maxBlocksInCache:t.maxBlocksInCache,infiniteInitialRowCount:t.infiniteInitialRowCount,infiniteMaxRetries:t.infiniteMaxRetries,infiniteLoadingRowVisible:t.infiniteLoadingRowVisible,rowHeight:y.value.rowHeight,headerHeight:y.value.headerHeight,size:y.value.size,rowBuffer:t.rowBuffer,scrollEndFlushMs:t.scrollEndFlushMs,frameBudgetMs:t.frameBudgetMs,scrollEndFrameBudgetMs:t.scrollEndFrameBudgetMs,cellRendererDefer:t.cellRendererDefer,deferRowDestroyOnScroll:t.deferRowDestroyOnScroll,rendererFrameBudgetMs:t.rendererFrameBudgetMs,cellRendererPresentation:t.cellRendererPresentation,stripe:t.stripe,rowSelection:t.rowSelection,selectable:t.selectable,isRowDisabled:t.isRowDisabled,rowStyle:t.rowStyle,editableCellStyle:t.editableCellStyle,showEditableCellIcon:t.showEditableCellIcon,disabledCellStyle:t.disabledCellStyle,showDisabledCellIcon:t.showDisabledCellIcon,reserveSelection:t.reserveSelection,preserveScrollOnSetData:t.preserveScrollOnSetData,editType:t.editType,editBehavior:t.editBehavior,editorOptions:t.editorOptions,invalidEditValueMode:t.invalidEditValueMode,rowValidator:t.rowValidator,asyncRowMutation:t.asyncRowMutation,showIndexColumn:t.showIndexColumn,indexColumn:C.value,selectionColumn:t.selectionColumn,showSummary:t.showSummary,navigateHeader:t.navigateHeader,navigateFooter:t.navigateFooter,summaryScope:t.summaryScope,summaryRowHeight:t.summaryRowHeight,summaryMethod:t.summaryMethod,headerAlign:t.headerAlign,headerValign:t.headerValign,align:t.align,valign:t.valign,footerAlign:t.footerAlign,footerValign:t.footerValign,defaultSort:t.defaultSort,sortable:t.sortable,enableHeaderSortClick:t.enableHeaderSortClick,columnMovable:t.columnMovable,resizable:t.resizable,colResizeDefault:t.colResizeDefault,skipHeaderOnAutoSize:t.skipHeaderOnAutoSize,autoSizePadding:t.autoSizePadding,autoSizeStrategy:t.autoSizeStrategy,suppressMoveWhenColumnDragging:t.suppressMoveWhenColumnDragging,suppressColumnMoveAnimation:t.suppressColumnMoveAnimation,allowCrossLaneColumnMove:t.allowCrossLaneColumnMove,showUnsortedSortHintOnHover:t.showUnsortedSortHintOnHover,quickFilterText:t.quickFilterText,filterable:t.filterable,floatingFilter:t.floatingFilter,filterSetValueMode:t.filterSetValueMode,filterSetDateLayoutMode:t.filterSetDateLayoutMode,rowDragManaged:_A(t.rowModelType,t.rowDragManaged),getRowHeight:t.getRowHeight,rowHeightMin:t.rowHeightMin,rowHeightMax:t.rowHeightMax,enableCellSpan:t.enableCellSpan,enableCellEditorCache:t.enableCellEditorCache,cellEditorCacheMaxEntries:t.cellEditorCacheMaxEntries,masterDetail:t.masterDetail,isRowMaster:t.isRowMaster,masterDefaultExpanded:t.masterDefaultExpanded,detailRowHeight:t.detailRowHeight,detailRowAutoHeight:t.detailRowAutoHeight,embedFullWidthRows:t.embedFullWidthRows,showExpandColumn:t.showExpandColumn,getDetailRowData:t.getDetailRowData,detailCellRenderer:dA(t.detailCellRenderer,i),loadMoreRowEnabled:t.loadMoreRow?.enabled??!1,loadMoreRowHeight:t.loadMoreRow?.height,loadMoreRowLoading:t.loadMoreRow?.loading??!1,loadMoreRowHasMore:t.loadMoreRow?.hasMore,loadMoreRowLabels:t.loadMoreRow?.labels,loadMoreRowRenderer:uA(t.loadMoreRowRenderer,i),rowGrouping:t.rowGrouping,groupDefaultExpanded:t.groupDefaultExpanded,showGroupHeader:t.showGroupHeader,showGroupFooter:t.showGroupFooter,groupDisplayType:t.groupDisplayType,showGroupColumn:t.showGroupColumn,autoGroupColumnDef:t.autoGroupColumnDef,groupKeyCreator:t.groupKeyCreator,groupComparator:t.groupComparator,groupSortKey:t.groupSortKey,groupFooterLabel:t.groupFooterLabel,groupCellRenderer:t.groupCellRenderer,tree:t.tree,getDataPath:t.getDataPath,showTreeColumn:t.showTreeColumn,autoTreeColumnDef:t.autoTreeColumnDef,treeValueGetter:t.treeValueGetter,treeDisplayType:t.treeDisplayType,treeDragScope:t.treeDragScope,treeHierarchyActions:t.treeHierarchyActions,setDataPath:t.setDataPath,treeLazyLoad:t.treeLazyLoad,hasTreeChildren:t.hasTreeChildren,loadTreeChildren:t.loadTreeChildren,cellCommentsDataSource:t.cellCommentsDataSource,suppressCellComments:t.suppressCellComments,cellCommentTrigger:t.cellCommentTrigger,cellCommentShowDelay:t.cellCommentShowDelay,cellCommentHideDelay:t.cellCommentHideDelay,cellSelection:S.value,enableCellCopy:t.enableCellCopy,enableCellPaste:t.enableCellPaste,enableHeaderHighlight:t.enableHeaderHighlight,enableIndexColumnHighlight:t.enableIndexColumnHighlight,processCellForClipboard:t.processCellForClipboard,processCellFromClipboard:t.processCellFromClipboard,processDataFromClipboard:t.processDataFromClipboard,enableTooltips:t.enableTooltips,tooltipShowMode:t.tooltipShowMode,tooltipShowDelay:t.tooltipShowDelay,tooltipSwitchShowDelay:t.tooltipSwitchShowDelay,tooltipHideDelay:t.tooltipHideDelay,tooltipInteraction:t.tooltipInteraction,tooltipMouseTrack:t.tooltipMouseTrack,tooltipComponent:sA(t.tooltipComponent,i),tooltipComponentParams:t.tooltipComponentParams,...lA(t,i),cellRenderers:{byColId:aA(t.columns,i)},cellEditors:{byColId:oA(t.columns,i),byName:t.cellEditorRegistry},onUnmountRenderer:e=>{fA(e)},onUnmountEditor:e=>{pA(e)}}),l.value=c.value.getApi();let s=l.value;s&&M(s),A(),N(c.value),t.rowModelType!==`infinite`&&c.value.setData(t.data),u=!1,s&&p(s),j(),P(),(0,n.nextTick)(()=>F())};return(0,n.onMounted)(()=>{I()}),(0,n.watch)(x,P),(0,n.watch)(()=>t.cellColor,P,{deep:!0}),(0,n.watch)(()=>t.quickFilterText,e=>{let t=c.value?.getApi();!t||t.getQuickFilterText()===e||t.setQuickFilterText(e)}),(0,n.watch)(()=>[t.cellCommentsDataSource,t.suppressCellComments,t.cellCommentTrigger,t.cellCommentShowDelay,t.cellCommentHideDelay],()=>{c.value?.updateCellCommentOptions({cellCommentsDataSource:t.cellCommentsDataSource,suppressCellComments:t.suppressCellComments,cellCommentTrigger:t.cellCommentTrigger,cellCommentShowDelay:t.cellCommentShowDelay,cellCommentHideDelay:t.cellCommentHideDelay})}),(0,n.watch)(()=>[S.value,t.enableCellCopy,t.enableCellPaste],()=>{c.value?.updateCellSelectionOptions({cellSelection:S.value,enableCellCopy:t.enableCellCopy,enableCellPaste:t.enableCellPaste})}),(0,n.watch)(()=>[t.enableHeaderHighlight,t.enableIndexColumnHighlight],()=>{c.value?.updateCellRangeVisualOptions({enableHeaderHighlight:t.enableHeaderHighlight,enableIndexColumnHighlight:t.enableIndexColumnHighlight})}),(0,n.watch)(()=>[t.processCellForClipboard,t.processCellFromClipboard,t.processDataFromClipboard],()=>{c.value?.updateCellClipboardOptions({processCellForClipboard:t.processCellForClipboard,processCellFromClipboard:t.processCellFromClipboard,processDataFromClipboard:t.processDataFromClipboard})}),(0,n.watch)(()=>[t.enableTooltips,t.tooltipShowMode,t.tooltipShowDelay,t.tooltipSwitchShowDelay,t.tooltipHideDelay,t.tooltipInteraction,t.tooltipMouseTrack,t.tooltipComponent,t.tooltipComponentParams,i.tooltip],()=>{c.value?.updateOverflowTooltipOptions({enableTooltips:t.enableTooltips,tooltipShowMode:t.tooltipShowMode,tooltipShowDelay:t.tooltipShowDelay,tooltipSwitchShowDelay:t.tooltipSwitchShowDelay,tooltipHideDelay:t.tooltipHideDelay,tooltipInteraction:t.tooltipInteraction,tooltipMouseTrack:t.tooltipMouseTrack,tooltipComponent:sA(t.tooltipComponent,i),tooltipComponentParams:t.tooltipComponentParams})}),(0,n.watch)(()=>[t.loadMoreRow?.enabled,t.loadMoreRow?.height,t.loadMoreRow?.loading,t.loadMoreRow?.hasMore,t.loadMoreRow?.labels,t.loadMoreRowRenderer,i[`load-more-row`]],()=>{c.value?.updateLoadMoreRowOptions({loadMoreRowEnabled:t.loadMoreRow?.enabled??!1,loadMoreRowHeight:t.loadMoreRow?.height,loadMoreRowLoading:t.loadMoreRow?.loading??!1,loadMoreRowHasMore:t.loadMoreRow?.hasMore,loadMoreRowLabels:t.loadMoreRow?.labels,loadMoreRowRenderer:uA(t.loadMoreRowRenderer,i)})}),(0,n.watch)(()=>[t.loading,t.suppressOverlays,t.suppressLoadingOverlay,t.suppressNoRowsOverlay,t.suppressNoMatchingRowsOverlay,t.overlayLoadingTemplate,t.overlayNoRowsTemplate,t.overlayNoMatchingRowsTemplate,t.overlayInteraction,t.loadingOverlayComponent,t.loadingOverlayComponentParams,t.noRowsOverlayComponent,t.noRowsOverlayComponentParams,t.noMatchingRowsOverlayComponent,t.noMatchingRowsOverlayComponentParams,t.overlayComponent,t.overlayComponentParams,i.loading,i[`no-rows`],i[`no-matching-rows`]],()=>{c.value?.updateEmptyStateOptions(lA(t,i))}),(0,n.watch)(()=>[t.showStatusBar,s.value],()=>{(0,n.nextTick)(()=>F())}),(0,n.watch)(()=>t.data,e=>{t.rowModelType!==`infinite`&&(c.value?.setData(e),j())}),(0,n.watch)(()=>t.defaultSelectedRows,()=>{A()}),(0,n.watch)(()=>t.selectable,e=>{c.value?.setSelectable(e)}),(0,n.watch)(()=>t.isRowDisabled,e=>{c.value?.setIsRowDisabled(e)}),(0,n.watch)(()=>t.rowStyle,e=>{c.value?.setRowStyle(e)}),(0,n.watch)(()=>t.editableCellStyle,e=>{c.value?.setEditableCellStyle(e)}),(0,n.watch)(()=>t.showEditableCellIcon,e=>{c.value?.setShowEditableCellIcon(e)}),(0,n.watch)(()=>t.disabledCellStyle,e=>{c.value?.setDisabledCellStyle(e)}),(0,n.watch)(()=>t.showDisabledCellIcon,e=>{c.value?.setShowDisabledCellIcon(e)}),(0,n.watch)(()=>t.reserveSelection,e=>{c.value?.setReserveSelection(e)}),(0,n.watch)(()=>t.preserveScrollOnSetData,e=>{c.value?.setPreserveScrollOnSetData(e)}),(0,n.watch)(()=>t.showUnsortedSortHintOnHover,e=>{c.value?.setShowUnsortedSortHintOnHover(e)}),(0,n.watch)(()=>t.sortable,e=>{c.value?.setColumnSortOptions({sortable:e})}),(0,n.watch)(()=>t.enableHeaderSortClick,e=>{c.value?.setColumnSortOptions({enableHeaderSortClick:e})}),(0,n.watch)(()=>t.filterable,e=>{c.value?.setColumnFilterOptions({filterable:e})}),(0,n.watch)(()=>t.resizable,e=>{c.value?.setColumnResizeOptions({resizable:e})}),(0,n.watch)(()=>[t.columnMovable,t.suppressMoveWhenColumnDragging,t.suppressColumnMoveAnimation,t.allowCrossLaneColumnMove],([e,t,n,r])=>{c.value?.setColumnMoveOptions({columnMovable:e,suppressMoveWhenColumnDragging:t,suppressColumnMoveAnimation:n,allowCrossLaneColumnMove:r})}),(0,n.watch)(()=>({rowHeight:y.value.rowHeight,rowHeightMin:t.rowHeightMin,rowHeightMax:t.rowHeightMax}),(e,t)=>{if(!c.value||!t)return;let r=c.value.getMetrics()?.scrollTop??0,i=c.value.getMetrics()?.scrollLeft??0;c.value.updateDimensions(e),(0,n.nextTick)(()=>{c.value?.scrollTo(r,i),requestAnimationFrame(()=>{c.value?.scrollTo(r,i)})})}),(0,n.watch)(()=>t.columns,()=>{c.value&&(c.value.setColumns(e.r(t.columns)),c.value.getApi().refreshCellStyles(),j())}),(0,n.watch)(()=>[t.size,t.headerHeight,t.rowBuffer,t.rowModelType,t.infiniteDatasource,t.blockSize,t.maxBlocksInCache,t.infiniteInitialRowCount,t.infiniteMaxRetries,t.infiniteLoadingRowVisible,t.scrollEndFlushMs,t.frameBudgetMs,t.scrollEndFrameBudgetMs,t.cellRendererDefer,t.deferRowDestroyOnScroll,t.rowKey,t.stripe,t.rowSelection,t.editType,t.editBehavior,t.editorOptions,t.invalidEditValueMode,t.rowValidator,t.asyncRowMutation,t.showIndexColumn,t.indexColumn,t.selectionColumn,t.showSummary,t.floatingFilter,t.navigateHeader,t.navigateFooter,t.summaryScope,t.summaryRowHeight,t.summaryMethod,t.headerAlign,t.headerValign,t.align,t.valign,t.footerAlign,t.footerValign,t.cellEditorRegistry,t.rowDragManaged,t.getRowHeight,t.enableCellSpan,t.enableCellEditorCache,t.cellEditorCacheMaxEntries,t.masterDetail,t.isRowMaster,t.masterDefaultExpanded,t.detailRowHeight,t.detailRowAutoHeight,t.embedFullWidthRows,t.showExpandColumn,t.getDetailRowData,t.detailCellRenderer,t.rowGrouping,t.groupDefaultExpanded,t.showGroupHeader,t.showGroupFooter,t.groupDisplayType,t.showGroupColumn,t.autoGroupColumnDef,t.groupKeyCreator,t.groupComparator,t.groupSortKey,t.groupFooterLabel,t.groupCellRenderer,t.tree,t.getDataPath,t.showTreeColumn,t.autoTreeColumnDef,t.treeValueGetter,t.treeDisplayType,t.treeDragScope,t.treeHierarchyActions,t.setDataPath,t.treeLazyLoad,t.hasTreeChildren,t.loadTreeChildren,i[`detail-row`]],()=>{I()}),(0,n.onUnmounted)(()=>{for(let e of d)e();d.length=0;let e=l.value,t=c.value;t&&e&&f(t,e,`unmount`),c.value?.destroy(),mA(),c.value=void 0,l.value=void 0}),{mountRef:a,portalRef:o,statusBarComponentRef:s,rootClass:O,rootStyle:E,statusBarContext:m,statusBarBindings:(0,n.computed)(()=>({context:m.value,barStyle:D.value,showDefaultPanels:t.showDefaultStatusBarPanels,showStatusBarRangeAggregation:t.showStatusBarRangeAggregation,statusBarRangeAggregationPosition:t.statusBarRangeAggregationPosition})),hasToolbarSlot:v,toolbarContext:T,exposeApi:{get api(){return l.value},getMetrics:()=>c.value?.getMetrics(),scrollTo:(e,t)=>{c.value?.scrollTo(e,t)},setSortModel:e=>{c.value?.setSortModel(e),j()},getSortModel:()=>c.value?.getSortModel()??[],setFilterModel:e=>{c.value?.setFilterModel(e),j()},getData:e=>c.value?.getData(e)??[],applyTransaction:async e=>{let t=await c.value?.applyTransaction(e);return j(),t},beginUpdate:()=>{c.value?.beginUpdate()},endUpdate:()=>{c.value?.endUpdate(),j()},ensureIndexVisible:(e,t)=>{c.value?.ensureIndexVisible(e,t)},flushFrames:()=>{c.value?.flushFrames()},getPendingFrameTaskCount:()=>c.value?.getPendingFrameTaskCount()??0,getPendingRendererTaskCount:()=>c.value?.getPendingRendererTaskCount()??0,setDefaultSelectedRows:(e,t)=>{l.value?.setDefaultSelectedRows(e,t)}}}}var yA=[`data-status-bar`,`data-toolbar`],bA={key:0,class:`magic-grid__toolbar`},xA=(0,n.defineComponent)({inheritAttrs:!1,__name:`MagicGrid`,props:y,emits:`scroll.scroll-start.scroll-end.scroll-top.scroll-bottom.load-more.data-rendered.grid-ready.grid-destroyed.first-rendered.cell-clicked.row-click.row-dblclick.selection-changed.index-focus-changed.cell-value-changed.row-data-changed.rows-data-changed.cell-editing-started.cell-editing-stopped.cell-commit-started.cell-commit-finished.edit-commit-aborted.row-commit-started.row-commit-finished.row-editing-started.row-editing-stopped.row-value-changed.cell-validation-failed.row-validation-failed.sort-changed.column-moved.column-resized.column-pinned.column-hidden-changed.filter-changed.rows-added.rows-removed.row-id-promoted.row-moved.row-drag-end.row-drag-commit-started.row-drag-commit-finished.row-height-changed.row-expanded.row-collapsed.row-group-opened.row-group-changed.tree-node-opened.tree-children-loading.tree-children-loaded.tree-children-load-failed.cell-comment-changed.cell-selection-changed.cell-selection-delete-start.cell-selection-delete-end.overlay-shown.overlay-hidden.infinite-block-loading.infinite-block-loaded.infinite-block-load-failed.infinite-cache-purged`.split(`.`),setup(e,{expose:t,emit:r}){let i=e,a=r,o=(0,n.useSlots)(),{mountRef:s,portalRef:c,statusBarComponentRef:l,exposeApi:u,rootClass:d,rootStyle:f,statusBarContext:p,statusBarBindings:m,hasToolbarSlot:h,toolbarContext:g}=vA(i,a,o);return t(u),(e,t)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{class:(0,n.normalizeClass)((0,n.unref)(d)),style:(0,n.normalizeStyle)((0,n.unref)(f)),"data-status-bar":i.showStatusBar?`true`:`false`,"data-toolbar":(0,n.unref)(h)?`true`:`false`},[(0,n.unref)(h)?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,bA,[(0,n.renderSlot)(e.$slots,`toolbar`,(0,n.normalizeProps)((0,n.guardReactiveProps)((0,n.unref)(g))))])):(0,n.createCommentVNode)(``,!0),(0,n.createElementVNode)(`div`,{ref_key:`mountRef`,ref:s,class:`magic-grid__mount`},null,512),(0,n.createElementVNode)(`div`,{ref_key:`portalRef`,ref:c,class:`magic-grid__portal`,"aria-hidden":`true`},null,512),i.showStatusBar?((0,n.openBlock)(),(0,n.createBlock)(v,(0,n.mergeProps)({key:1,ref_key:`statusBarComponentRef`,ref:l},(0,n.unref)(m),{"has-custom-status-bar-slot":!!(0,n.unref)(o)[`status-bar`],"has-left-slot":!!(0,n.unref)(o)[`status-bar-left`],"has-right-slot":!!(0,n.unref)(o)[`status-bar-right`]}),(0,n.createSlots)({"status-bar-left":(0,n.withCtx)(()=>[(0,n.renderSlot)(e.$slots,`status-bar-left`,(0,n.normalizeProps)((0,n.guardReactiveProps)((0,n.unref)(p))))]),"status-bar-right":(0,n.withCtx)(()=>[(0,n.renderSlot)(e.$slots,`status-bar-right`,(0,n.normalizeProps)((0,n.guardReactiveProps)((0,n.unref)(p))))]),_:2},[(0,n.unref)(o)[`status-bar`]?{name:`status-bar`,fn:(0,n.withCtx)(()=>[(0,n.renderSlot)(e.$slots,`status-bar`,(0,n.normalizeProps)((0,n.guardReactiveProps)((0,n.unref)(p))))]),key:`0`}:void 0]),1040,[`has-custom-status-bar-slot`,`has-left-slot`,`has-right-slot`])):(0,n.createCommentVNode)(``,!0)],14,yA))}}),SA={"sliders-vertical":[[`path`,{d:`M10 8h4`}],[`path`,{d:`M12 21v-9`}],[`path`,{d:`M12 8V3`}],[`path`,{d:`M17 16h4`}],[`path`,{d:`M19 12V3`}],[`path`,{d:`M19 21v-5`}],[`path`,{d:`M3 14h4`}],[`path`,{d:`M5 10V3`}],[`path`,{d:`M5 21v-7`}]],"list-restart":[[`path`,{d:`M21 6H3`}],[`path`,{d:`M7 12H3`}],[`path`,{d:`M7 18H3`}],[`path`,{d:`M12 18a5 5 0 0 0 9-3 4.5 4.5 0 0 0-4.5-4.5c-1.33 0-2.54.54-3.41 1.41L11 14`}],[`path`,{d:`M11 10v4h4`}]],sort:[[`path`,{d:`m21 16-4 4-4-4`}],[`path`,{d:`M17 20V4`}],[`path`,{d:`m3 8 4-4 4 4`}],[`path`,{d:`M7 4v16`}]],filter:[[`path`,{d:`M3 6h18`}],[`path`,{d:`M7 12h10`}],[`path`,{d:`M10 18h4`}]],width:[[`path`,{d:`m18 8 4 4-4 4`}],[`path`,{d:`m6 8-4 4 4 4`}],[`path`,{d:`M2 12h20`}]],order:[[`path`,{d:`M8 3 4 7 8 11`}],[`path`,{d:`M4 7h16`}],[`path`,{d:`m16 21 4-4-4-4`}],[`path`,{d:`M20 17H4`}]],pin:[[`path`,{d:`M12 17v5`}],[`path`,{d:`M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v3.76`}]],all:[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`}],[`path`,{d:`M9 3v18`}],[`path`,{d:`M15 3v18`}]]},CA={class:`mg-column-settings-menu__icon-svg`,xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},wA=(0,n.defineComponent)({__name:`ColumnSettingsMenuIcon`,props:{name:{}},setup(e){let t=e,r=(0,n.computed)(()=>SA[t.name]);return(t,i)=>((0,n.openBlock)(),(0,n.createElementBlock)(`svg`,CA,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(r.value,([t,r],i)=>((0,n.openBlock)(),(0,n.createBlock)((0,n.resolveDynamicComponent)(t),(0,n.mergeProps)({key:`${e.name}-${t}-${i}`},{ref_for:!0},r),null,16))),128))]))}}),TA={key:0,class:`mg-column-settings-menu__item-icon`},EA={class:`mg-column-settings-menu__item-label`},DA=(0,n.defineComponent)({__name:`ColumnSettingsMenuItem`,props:{label:{}},setup(e){return(t,r)=>((0,n.openBlock)(),(0,n.createElementBlock)(`button`,{type:`button`,class:(0,n.normalizeClass)((0,n.unref)(Xs)),role:`menuitem`},[t.$slots.icon?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,TA,[(0,n.renderSlot)(t.$slots,`icon`)])):(0,n.createCommentVNode)(``,!0),(0,n.createElementVNode)(`span`,EA,[(0,n.renderSlot)(t.$slots,`default`,{},()=>[(0,n.createTextVNode)((0,n.toDisplayString)(e.label),1)])])],2))}}),OA=[`aria-expanded`],kA={class:`mg-column-settings-menu__item-leading`},AA={class:`mg-column-settings-menu__item-icon`},jA=(0,n.defineComponent)({__name:`ColumnSettingsMenu`,props:{showDivider:{type:Boolean}},emits:[`column-settings`,`custom-action`,`reset`],setup(e,{emit:t}){let r=t,i=[{scope:`sort`,label:`排序`,icon:`sort`},{scope:`filter`,label:`筛选`,icon:`filter`},{scope:`width`,label:`列宽`,icon:`width`},{scope:`order`,label:`列顺序`,icon:`order`},{scope:`pin`,label:`固定列`,icon:`pin`},{scope:`all`,label:`全部`,icon:`all`}],a=(0,n.ref)(!1),o=(0,n.ref)(!1),s=(0,n.ref)(null),c=(0,n.ref)(null);function l(){r(`column-settings`)}function u(){let e=s.value?.querySelector(`.${nc}`),t=c.value;if(!e||!t)return;o.value=!1;let n=e.getBoundingClientRect(),r=t.offsetWidth;n.right+r>window.innerWidth-8&&(o.value=!0)}async function d(){a.value=!0,await(0,n.nextTick)(),u()}function f(){a.value=!1}function p(e){let t=e.relatedTarget,n=s.value;t instanceof Node&&n?.contains(t)||f()}function m(e){r(`reset`,e)}return(t,r)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{class:(0,n.normalizeClass)((0,n.unref)(Ys)),role:`menu`},[(0,n.createVNode)(DA,{label:`列设置`,onClick:l},{icon:(0,n.withCtx)(()=>[(0,n.createVNode)(wA,{name:`sliders-vertical`})]),_:1}),(0,n.createElementVNode)(`div`,{ref_key:`resetSubmenuRef`,ref:s,class:(0,n.normalizeClass)([(0,n.unref)(ec),{"mg-column-settings-menu__submenu--open":a.value}]),onMouseenter:d,onMouseleave:f,onFocusin:d,onFocusout:p},[(0,n.createElementVNode)(`button`,{type:`button`,class:(0,n.normalizeClass)([(0,n.unref)(Xs),(0,n.unref)(nc)]),role:`menuitem`,"aria-haspopup":`menu`,"aria-expanded":a.value},[(0,n.createElementVNode)(`span`,kA,[(0,n.createElementVNode)(`span`,AA,[(0,n.createVNode)(wA,{name:`list-restart`})]),r[1]||=(0,n.createElementVNode)(`span`,{class:`mg-column-settings-menu__item-label`},`重置`,-1)]),r[2]||=(0,n.createElementVNode)(`svg`,{class:`mg-column-settings-menu__item-chevron`,xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[(0,n.createElementVNode)(`path`,{d:`m9 18 6-6-6-6`})],-1)],10,OA),(0,n.withDirectives)((0,n.createElementVNode)(`div`,{ref_key:`resetSubmenuPanelRef`,ref:c,class:(0,n.normalizeClass)([(0,n.unref)(tc),{"mg-column-settings-menu__submenu-panel--flip":o.value}]),role:`menu`},[((0,n.openBlock)(),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(i,e=>(0,n.createVNode)(DA,{key:e.scope,label:e.label,onClick:t=>m(e.scope)},{icon:(0,n.withCtx)(()=>[(0,n.createVNode)(wA,{name:e.icon},null,8,[`name`])]),_:2},1032,[`label`,`onClick`])),64))],2),[[n.vShow,a.value]])],34),e.showDivider?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{key:0,class:(0,n.normalizeClass)((0,n.unref)($s)),role:`separator`,"aria-orientation":`horizontal`},null,2)):(0,n.createCommentVNode)(``,!0),e.showDivider?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{key:1,class:`mg-column-settings-menu__custom`,onClick:r[0]||=e=>t.$emit(`custom-action`)},[(0,n.renderSlot)(t.$slots,`default`)])):(0,n.createCommentVNode)(``,!0)],2))}}),MA=[`disabled`,`aria-disabled`,`title`],NA=(0,n.defineComponent)({__name:`ColumnSettingsClearFiltersBar`,props:{gridApi:{},canClearAllFilters:{type:Boolean}},emits:[`change`],setup(e,{emit:t}){let r=e,i=t;function a(){r.gridApi.clearAllFilters(),i(`change`)}return(t,r)=>((0,n.openBlock)(),(0,n.createElementBlock)(`button`,{type:`button`,class:(0,n.normalizeClass)((0,n.unref)(rc)),disabled:!e.canClearAllFilters,"aria-disabled":!e.canClearAllFilters,title:e.canClearAllFilters?void 0:`当前无筛选`,onClick:a},` 清除全部筛选 `,10,MA))}});function PA(e){let t=null,n=()=>{t!=null&&(clearTimeout(t),t=null)};return{applyInput(r,i){n();let a=e.getColumnFilterType(r),o=()=>{let t=sw(r,{operatorLogic:i.operatorLogic,operatorConditions:i.operatorConditions,setAllSelected:i.setAllSelected,selectedValues:i.selectedValues},e.getFilterModel(),a);e.setFilterModel(t)};if(i.source===`set`){o();return}t=setTimeout(()=>{t=null,o()},300)},clearColumn(t){n();let r=e.getColumnFilterType(t),i=lw(t,e.getFilterModel());return e.setFilterModel(i),aw(t,i,r,e.getColumnDistinctKeys(t))},destroy(){n()}}}var FA=(0,n.defineComponent)({__name:`ColumnFilterPanelEmbed`,props:{colId:{},gridApi:{},filterSetValueMode:{default:oa},filterSetDateLayoutMode:{default:sa}},emits:[`change`],setup(e,{emit:t}){let r=e,i=t,a=(0,n.ref)(null),o=null,s=null,c=PA({getFilterModel:()=>r.gridApi.getFilterModel(),setFilterModel:e=>{r.gridApi.setFilterModel(e),i(`change`)},getColumnFilterType:e=>r.gridApi.getColumns().find(t=>t.colId===e)?.filterType??`text`,getColumnDistinctKeys:e=>r.gridApi.getColumnDistinctFilterValues(e).map(e=>e.key)});function l(){let e=r.gridApi.getColumns().find(e=>e.colId===r.colId)?.filterType??`text`,t=r.gridApi.getColumnDistinctFilterValues(r.colId).map(e=>e.key);return aw(r.colId,r.gridApi.getFilterModel(),e,t)}function u(){d();let e=a.value;if(!e)return;let t=r.gridApi.getColumns().find(e=>e.colId===r.colId);t?.filterable&&(s=new AbortController,o=Lw({colId:r.colId,filterModel:r.gridApi.getFilterModel(),columnFilterType:t.filterType,distinctFilterValues:r.gridApi.getColumnDistinctFilterValues(r.colId),filterSetValueMode:r.filterSetValueMode,filterSetDateLayoutMode:r.filterSetDateLayoutMode,abortSignal:s.signal,onFilterInput:e=>{c.applyInput(r.colId,e)},onFilterClear:()=>{let e=c.clearColumn(r.colId);e&&o?.panelRoot&&o.syncState(e),i(`change`)}}),e.append(o.root))}function d(){s?.abort(),s=null,o=null,a.value?.replaceChildren()}function f(){o?.panelRoot&&o.syncState(l())}return(0,n.onMounted)(()=>{u()}),(0,n.onBeforeUnmount)(()=>{c.destroy(),d()}),(0,n.watch)(()=>r.colId,()=>{u()}),(0,n.watch)(()=>r.gridApi.getFilterModel(),()=>{f()},{deep:!0}),(e,t)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{ref_key:`hostRef`,ref:a,class:`mg-column-settings__filter-embed`},null,512))}});function IA(e){return e===null?`asc`:e===`asc`?`desc`:null}function LA(e,t,n){return t===null?zC(e,n):t===`asc`?LC(e,n):RC(e,n)}function RA(e,t,n){e.setSortModel(LA(t,n,e.getSortModel()))}function zA(e,t,n){let r=IA(n);return RA(e,t,r),r}function BA(e,t,n){return e.setColumnFixed(t,n)}function VA(e){return e===`asc`?`升序`:e===`desc`?`降序`:`无排序`}function HA(e){return e===`left`?`固定左侧`:e===`right`?`固定右侧`:`不固定`}var UA=`[magic-grid] ColumnSettings: at least one user column must remain visible.`;function WA(e){return e.filter(e=>lc(e.colId)&&zs(e)).length}function GA(e){return e.filter(e=>lc(e.colId)&&e.hidden).map(e=>e.colId)}function KA(e,t){if(!lc(e))return!1;let n=t.find(t=>t.colId===e);return!n||n.hidden?!1:WA(t)>1}function qA(e,t,n,r={}){let i=r.warn??(e=>console.warn(e));return!n&&!KA(t,e.getColumns())?(i(UA),!1):e.setColumnsHidden([t],!n)}function JA(e){let t=GA(e.getColumns());return t.length!==0&&e.setColumnsHidden(t,!1)}var YA=[`data-col-id`],XA={class:`mg-column-settings__row-main`},ZA=[`draggable`,`aria-disabled`,`title`],QA=[`title`],$A={key:1,class:`mg-column-settings__row-actions`},ej=[`aria-label`,`title`],tj=[`aria-expanded`,`aria-label`],nj=[`aria-label`],rj=[`aria-checked`,`aria-label`,`title`,`onClick`],ij=[`title`],aj=[`checked`,`aria-label`],oj=(0,n.defineComponent)({__name:`ColumnSettingsRow`,props:{row:{},gridApi:{},draggable:{type:Boolean},dragOver:{type:Boolean},dragging:{type:Boolean},showSort:{type:Boolean,default:!0},showPin:{type:Boolean,default:!0},showFilter:{type:Boolean,default:!0},showVisibility:{type:Boolean,default:!0},showDragHandle:{type:Boolean,default:!0},filterSetValueMode:{default:oa},filterSetDateLayoutMode:{default:sa}},emits:[`dragstart`,`dragend`,`change`],setup(e,{emit:t}){let r=e,i=t,a=(0,n.ref)(!1),o=[null,`left`,`right`];function s(){!r.gridApi||!r.row.sortable||(zA(r.gridApi,r.row.colId,r.row.sortDirection),i(`change`))}function c(e){!r.gridApi||r.row.fixed===e||BA(r.gridApi,r.row.colId,e)&&i(`change`)}function l(){a.value=!a.value}function u(e){if(!r.gridApi)return;let t=e.target,n=t.checked;if(!qA(r.gridApi,r.row.colId,n)){t.checked=!n;return}i(`change`)}function d(e){if(!r.draggable){e.preventDefault();return}i(`dragstart`,e)}function f(e){r.draggable&&i(`dragend`,e)}return(t,r)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{class:(0,n.normalizeClass)([(0,n.unref)(oc),{[(0,n.unref)(sc)]:e.row.filterActive,"mg-column-settings__row--drag-over":e.dragOver,"mg-column-settings__row--dragging":e.dragging}]),"data-col-id":e.row.colId},[(0,n.createElementVNode)(`div`,XA,[e.showDragHandle?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,{key:0,class:(0,n.normalizeClass)([`mg-column-settings__drag-handle`,{"mg-column-settings__drag-handle--disabled":!e.draggable}]),draggable:e.draggable===!0,"aria-disabled":e.draggable?void 0:`true`,title:e.draggable?`拖拽调整列顺序`:`此列不可拖拽`,onDragstart:d,onDragend:f},` ≡ `,42,ZA)):(0,n.createCommentVNode)(``,!0),(0,n.createElementVNode)(`span`,{class:`mg-column-settings__row-label`,title:e.row.label},(0,n.toDisplayString)(e.row.label),9,QA),e.gridApi?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,$A,[e.showSort&&e.row.sortable?((0,n.openBlock)(),(0,n.createElementBlock)(`button`,{key:0,type:`button`,class:(0,n.normalizeClass)([`mg-column-settings__sort-button`,{"mg-column-settings__sort-button--asc":e.row.sortDirection===`asc`,"mg-column-settings__sort-button--desc":e.row.sortDirection===`desc`}]),"aria-label":`${e.row.label} 排序:${(0,n.unref)(VA)(e.row.sortDirection)}`,title:(0,n.unref)(VA)(e.row.sortDirection),onClick:s},(0,n.toDisplayString)(e.row.sortDirection===`asc`?`↑`:e.row.sortDirection===`desc`?`↓`:`↕`),11,ej)):(0,n.createCommentVNode)(``,!0),e.showFilter&&e.row.filterable?((0,n.openBlock)(),(0,n.createElementBlock)(`button`,{key:1,type:`button`,class:(0,n.normalizeClass)([`mg-column-settings__filter-button`,{"mg-column-settings__filter-button--active":e.row.filterActive||a.value}]),"aria-expanded":a.value,"aria-label":`${e.row.label} 筛选`,title:`筛选`,onClick:l},[...r[1]||=[(0,n.createElementVNode)(`svg`,{class:`mg-column-settings__filter-icon`,xmlns:`http://www.w3.org/2000/svg`,width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[(0,n.createElementVNode)(`path`,{d:`M3 6h18`}),(0,n.createElementVNode)(`path`,{d:`M7 12h10`}),(0,n.createElementVNode)(`path`,{d:`M10 18h4`})],-1)]],10,tj)):(0,n.createCommentVNode)(``,!0),e.showPin?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{key:2,class:`mg-column-settings__pin-group`,role:`radiogroup`,"aria-label":`${e.row.label} 固定列`},[((0,n.openBlock)(),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(o,t=>(0,n.createElementVNode)(`button`,{key:t??`none`,type:`button`,class:(0,n.normalizeClass)([`mg-column-settings__pin-button`,{"mg-column-settings__pin-button--active":e.row.fixed===t}]),role:`radio`,"aria-checked":e.row.fixed===t,"aria-label":(0,n.unref)(HA)(t),title:(0,n.unref)(HA)(t),onClick:e=>c(t)},(0,n.toDisplayString)(t===`left`?`左`:t===`right`?`右`:`中`),11,rj)),64))],8,nj)):(0,n.createCommentVNode)(``,!0),e.showVisibility?((0,n.openBlock)(),(0,n.createElementBlock)(`label`,{key:3,class:`mg-column-settings__visibility`,title:e.row.hidden?`显示列`:`隐藏列`},[(0,n.createElementVNode)(`input`,{type:`checkbox`,class:`mg-column-settings__visibility-input`,checked:!e.row.hidden,"aria-label":`${e.row.label} 显示列`,onChange:u},null,40,aj),r[2]||=(0,n.createElementVNode)(`span`,{class:`mg-column-settings__visibility-label`,"aria-hidden":`true`},`显示`,-1)],8,ij)):(0,n.createCommentVNode)(``,!0)])):(0,n.createCommentVNode)(``,!0)]),a.value&&e.gridApi&&e.row.filterable?((0,n.openBlock)(),(0,n.createBlock)(FA,{key:0,class:`mg-column-settings__filter-panel`,"col-id":e.row.colId,"grid-api":e.gridApi,"filter-set-value-mode":e.filterSetValueMode,"filter-set-date-layout-mode":e.filterSetDateLayoutMode,onChange:r[0]||=e=>i(`change`)},null,8,[`col-id`,`grid-api`,`filter-set-value-mode`,`filter-set-date-layout-mode`])):(0,n.createCommentVNode)(``,!0)],10,YA))}});function sj(e,t){return lc(e.colId)&&!e.hidden&&uc(e.fixed)===t}function cj(e,t){return e.filter(e=>sj(e,t))}function lj(e,t,n,r){let i=cj(e,t),a=i.findIndex(e=>e.colId===n);if(a<0||!e.find(e=>e.colId===n)?.movable)return null;let o=Math.max(0,Math.min(r,i.length-1));if(a===o)return null;let s=i.map(e=>e.colId);s.splice(a,1),s.splice(o,0,n),e.map(e=>e.colId);let c=[],l=0;for(let n of e){if(sj(n,t)){let e=s[l];if(!e)return null;c.push(e),l+=1;continue}c.push(n.colId)}return c}function uj(e){let t=lj(e.columns,e.lane,e.colId,e.toDisplayIndex);if(!t)return null;let n=e.columns.findIndex(t=>t.colId===e.colId);if(n<0)return null;let r=t.indexOf(e.colId);if(r<0||n===r)return null;let i=fg(e.columns),a=e.columns;return!xg({columns:a,colId:e.colId,toGlobalIndex:r,fixedGroups:i,allowCrossLaneColumnMove:!1})||!Cg({columns:a,colId:e.colId,toGlobalIndex:r,fixedGroups:i,allowCrossLaneColumnMove:!1})?null:r}function dj(e,t,n,r){let i=uj({columns:e.getColumns(),lane:t,colId:n,toDisplayIndex:r});return i!=null&&(e.moveColumn(n,i),!0)}var fj=[`aria-label`],pj={class:`mg-column-settings__rows`},mj=[`onDragover`,`onDrop`],hj=(0,n.defineComponent)({__name:`ColumnSettingsList`,props:{lane:{},rows:{},gridApi:{},showFilter:{type:Boolean},showVisibility:{type:Boolean}},emits:[`reorder`,`change`],setup(e,{emit:t}){let r={left:`固定左侧列`,center:`中间列`,right:`固定右侧列`},i=e,a=t,o=(0,n.ref)(null),s=(0,n.ref)(null);function c(e,t){if(!i.rows.find(t=>t.colId===e)?.movable){t.preventDefault();return}o.value=e,s.value=i.rows.findIndex(t=>t.colId===e),t.dataTransfer?.setData(`text/plain`,e),t.dataTransfer&&(t.dataTransfer.effectAllowed=`move`)}function l(e,t){t.preventDefault(),t.dataTransfer&&(t.dataTransfer.dropEffect=`move`),s.value=e}function u(e,t){t.preventDefault();let n=o.value??t.dataTransfer?.getData(`text/plain`);if(!n){d();return}dj(i.gridApi,i.lane,n,e)&&(a(`reorder`),a(`change`)),d()}function d(){o.value=null,s.value=null}return(t,i)=>e.rows.length>0?((0,n.openBlock)(),(0,n.createElementBlock)(`section`,{key:0,class:(0,n.normalizeClass)([(0,n.unref)(ic),`mg-column-settings__group--${e.lane}`]),"aria-label":r[e.lane]},[(0,n.createElementVNode)(`div`,pj,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(e.rows,(t,r)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{key:t.colId,class:`mg-column-settings__row-host`,onDragover:e=>l(r,e),onDrop:e=>u(r,e)},[(0,n.createVNode)(oj,{row:t,"grid-api":e.gridApi,draggable:t.movable,"drag-over":s.value===r&&o.value!==t.colId,dragging:o.value===t.colId,"show-filter":e.showFilter,"show-visibility":e.showVisibility,onDragstart:e=>c(t.colId,e),onDragend:d,onChange:i[0]||=e=>a(`change`)},null,8,[`row`,`grid-api`,`draggable`,`drag-over`,`dragging`,`show-filter`,`show-visibility`,`onDragstart`])],40,mj))),128))])],10,fj)):(0,n.createCommentVNode)(``,!0)}}),gj={class:`mg-column-settings__groups`},_j={class:`mg-column-settings__visible-lanes`},vj={class:`mg-column-settings__hidden-divider`},yj={class:`mg-column-settings__hidden-divider-center`},bj=[`aria-expanded`],xj={key:0,class:`mg-column-settings__hidden-toggle-icon`,xmlns:`http://www.w3.org/2000/svg`,width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},Sj={key:1,class:`mg-column-settings__hidden-toggle-icon`,xmlns:`http://www.w3.org/2000/svg`,width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},Cj={class:`mg-column-settings__hidden-rows`},wj={class:`mg-column-settings__rows`},Tj=(0,n.defineComponent)({__name:`ColumnSettingsGroupedLists`,props:{grouped:{},gridApi:{},showFilter:{type:Boolean},showVisibility:{type:Boolean,default:!0}},emits:[`reorder`,`change`],setup(e,{emit:t}){let r=e,i=t,a=(0,n.ref)(!0);function o(){JA(r.gridApi)&&i(`change`)}return(t,r)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,gj,[(0,n.createElementVNode)(`div`,_j,[(0,n.createVNode)(hj,{lane:`left`,rows:e.grouped.left,"grid-api":e.gridApi,"show-filter":e.showFilter,"show-visibility":e.showVisibility,onReorder:r[0]||=e=>i(`reorder`),onChange:r[1]||=e=>i(`change`)},null,8,[`rows`,`grid-api`,`show-filter`,`show-visibility`]),(0,n.createVNode)(hj,{lane:`center`,rows:e.grouped.center,"grid-api":e.gridApi,"show-filter":e.showFilter,"show-visibility":e.showVisibility,onReorder:r[2]||=e=>i(`reorder`),onChange:r[3]||=e=>i(`change`)},null,8,[`rows`,`grid-api`,`show-filter`,`show-visibility`]),(0,n.createVNode)(hj,{lane:`right`,rows:e.grouped.right,"grid-api":e.gridApi,"show-filter":e.showFilter,"show-visibility":e.showVisibility,onReorder:r[4]||=e=>i(`reorder`),onChange:r[5]||=e=>i(`change`)},null,8,[`rows`,`grid-api`,`show-filter`,`show-visibility`])]),e.grouped.hidden.length>0?((0,n.openBlock)(),(0,n.createElementBlock)(`section`,{key:0,class:(0,n.normalizeClass)((0,n.unref)(cc))},[(0,n.createElementVNode)(`div`,vj,[r[10]||=(0,n.createElementVNode)(`span`,{class:`mg-column-settings__hidden-divider-line`,"aria-hidden":`true`},null,-1),(0,n.createElementVNode)(`div`,yj,[(0,n.createElementVNode)(`button`,{type:`button`,class:`mg-column-settings__hidden-toggle`,"aria-expanded":a.value,onClick:r[6]||=e=>a.value=!a.value},[(0,n.createTextVNode)(` 隐藏 (`+(0,n.toDisplayString)(e.grouped.hidden.length)+`) `,1),a.value?((0,n.openBlock)(),(0,n.createElementBlock)(`svg`,xj,[...r[8]||=[(0,n.createStaticVNode)(`<path d="m3 8 4-4 4 4"></path><path d="M7 4v16"></path><path d="M11 12h10"></path><path d="M11 16h7"></path><path d="M11 20h4"></path>`,5)]])):((0,n.openBlock)(),(0,n.createElementBlock)(`svg`,Sj,[...r[9]||=[(0,n.createStaticVNode)(`<path d="m3 16 4 4 4-4"></path><path d="M7 20V4"></path><path d="M11 4h10"></path><path d="M11 8h7"></path><path d="M11 12h4"></path>`,5)]]))],8,bj),(0,n.createElementVNode)(`button`,{type:`button`,class:`mg-column-settings__hidden-show-all`,onClick:o},` 显示全部 `)]),r[11]||=(0,n.createElementVNode)(`span`,{class:`mg-column-settings__hidden-divider-line`,"aria-hidden":`true`},null,-1)]),(0,n.withDirectives)((0,n.createElementVNode)(`div`,Cj,[(0,n.createElementVNode)(`h4`,{class:(0,n.normalizeClass)([(0,n.unref)(ac),`mg-column-settings__sr-only`])},` 已隐藏列 `,2),(0,n.createElementVNode)(`div`,wj,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(e.grouped.hidden,t=>((0,n.openBlock)(),(0,n.createBlock)(oj,{key:t.colId,row:t,"grid-api":e.gridApi,"show-sort":!1,"show-pin":!1,"show-filter":!1,"show-visibility":e.showVisibility,"show-drag-handle":!1,onChange:r[7]||=e=>i(`change`)},null,8,[`row`,`grid-api`,`show-visibility`]))),128))])],512),[[n.vShow,a.value]])],2)):(0,n.createCommentVNode)(``,!0)]))}});function Ej(e){return{colId:e.colId,label:e.label,prop:e.prop,movable:e.movable,sortable:e.sortable,filterable:e.filterable,fixed:e.fixed??null,hidden:e.hidden}}function Dj(e){return e.map(Ej)}function Oj(e,t={}){return pc({columns:Dj(e.getColumns()),sortModel:e.getSortModel(),filterModel:e.getFilterModel(),isColumnFilterActive:t=>e.isColumnFilterActive(t),includeHidden:t.includeHidden})}function kj(e,t={}){let n=Oj(e,t);return{rows:n,grouped:mc(n),canClearAllFilters:e.isAnyFilterActive()}}var Aj=[`sortChanged`,`filterChanged`,`columnMoved`,`columnPinned`,`columnHiddenChanged`];function jj(e,t){let n=Aj.map(n=>e.on(n,t));return()=>{for(let e of n)e()}}var Mj={class:`mg-column-settings__header-leading`},Nj=(0,n.defineComponent)({__name:`ColumnSettingsPanel`,props:{gridApi:{},open:{type:Boolean,default:!0},showVisibility:{type:Boolean,default:!0},showFilter:{type:Boolean,default:!0}},emits:[`close`],setup(e,{emit:t}){let r=e,i=t,a=(0,n.shallowRef)(kj(r.gridApi)),o=null;function s(){a.value=kj(r.gridApi)}function c(){l(),s(),o=jj(r.gridApi,s)}function l(){o?.(),o=null}(0,n.watch)(()=>r.open,e=>{if(e){c();return}l()},{immediate:!0}),(0,n.watch)(()=>r.gridApi,()=>{r.open&&s()}),(0,n.onBeforeUnmount)(()=>{l()});function u(){s()}return(t,r)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{class:(0,n.normalizeClass)((0,n.unref)(Us)),role:`document`,"aria-label":`列设置`},[(0,n.createElementVNode)(`header`,{class:(0,n.normalizeClass)((0,n.unref)(Ws))},[(0,n.createElementVNode)(`div`,Mj,[r[1]||=(0,n.createStaticVNode)(`<div class="mg-column-settings__title-group"><svg class="mg-column-settings__title-icon" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M10 8h4"></path><path d="M12 21v-9"></path><path d="M12 8V3"></path><path d="M17 16h4"></path><path d="M19 12V3"></path><path d="M19 21v-5"></path><path d="M3 14h4"></path><path d="M5 10V3"></path><path d="M5 21v-7"></path></svg><h3 class="mg-column-settings__title">列设置</h3></div>`,1),(0,n.createVNode)(NA,{"grid-api":e.gridApi,"can-clear-all-filters":a.value.canClearAllFilters,onChange:u},null,8,[`grid-api`,`can-clear-all-filters`])]),(0,n.createElementVNode)(`button`,{type:`button`,class:`mg-column-settings__close`,"aria-label":`关闭列设置`,onClick:r[0]||=e=>i(`close`)},` × `)],2),(0,n.createElementVNode)(`div`,{class:(0,n.normalizeClass)((0,n.unref)(Gs))},[(0,n.createVNode)(Tj,{grouped:a.value.grouped,"grid-api":e.gridApi,"show-filter":e.showFilter,"show-visibility":e.showVisibility,onChange:u,onReorder:u},null,8,[`grouped`,`grid-api`,`show-filter`,`show-visibility`])],2)],2))}});function Pj(e){e.getSortModel().length!==0&&e.setSortModel([])}function Fj(e){e.clearAllFilters()}function Ij(e){e.resetColumnWidths()}function Lj(e){let t=e.getColumns(),n=jD(t);MD(t.map(e=>e.colId),n)||e.resetColumnOrder()}function Rj(e){for(let t of e.getColumns())!lc(t.colId)||t.fixed===null||e.setColumnFixed(t.colId,null)}function zj(e,t){switch(t){case`sort`:Pj(e);break;case`filter`:Fj(e);break;case`width`:Ij(e);break;case`order`:Lj(e);break;case`pin`:Rj(e);break;case`all`:Pj(e),Fj(e),Ij(e),Lj(e),Rj(e)}}var Bj=[`disabled`,`aria-expanded`,`aria-label`,`title`],Vj=(0,n.defineComponent)({__name:`ColumnSettingsButton`,props:{gridApi:{},portalEl:{},label:{},disabled:{type:Boolean},size:{},open:{type:Boolean},defaultOpen:{type:Boolean},showVisibility:{type:Boolean,default:!0},showFilter:{type:Boolean,default:!0}},emits:[`update:open`,`open`,`close`],setup(e,{emit:t}){let r=e,i=t,a=(0,n.useSlots)(),o=(0,n.ref)(null),s=(0,n.ref)(null),c=(0,n.ref)(null),l=(0,n.ref)(!1),u=(0,n.ref)(r.open??r.defaultOpen??!1),d=(0,n.ref)(0),f=!1;function p(){let e=r.portalEl;return e instanceof HTMLElement&&e.isConnected?e:`body`}let m=(0,n.computed)(()=>p()),h=(0,n.computed)(()=>{let e=a.menu;return e?e().some(e=>e.type!==n.Comment):!1}),g=(0,n.computed)(()=>l.value||u.value),_=(0,n.computed)(()=>r.size?rr(r.size):void 0);(0,n.watch)(()=>r.open,e=>{e!==void 0&&(u.value=e,e&&(l.value=!1))});function v(e){if(r.disabled&&e)return;let t=u.value;u.value=e,i(`update:open`,e),e?(l.value=!1,i(`open`),f=!0,queueMicrotask(()=>{f=!1})):t&&i(`close`)}function y(e){r.disabled&&e||(l.value=e,e&&(f=!0,queueMicrotask(()=>{f=!1})))}function b(){if(!r.disabled){if(u.value){v(!1);return}y(!l.value)}}function x(){v(!0)}function S(e){zj(r.gridApi,e),w()}function C(){u.value&&v(!1)}function w(){l.value&&=!1}function T(){w(),C()}function E(e,t){let n=o.value;if(!n||!e)return;e.style.visibility=`hidden`,e.style.position=`fixed`,e.style.left=`0`,e.style.top=`0`;let r=n.getBoundingClientRect(),i=e.getBoundingClientRect(),{left:a,top:s}=t(r,i.width,i.height);e.style.left=`${a}px`,e.style.top=`${s}px`,e.style.visibility=``}function D(){E(s.value,sT)}function O(){E(c.value,oT)}function k(){l.value&&D(),u.value&&O()}(0,n.watch)(l,async e=>{e&&(await(0,n.nextTick)(),D())}),(0,n.watch)(u,async e=>{e&&(await(0,n.nextTick)(),O())}),(0,n.watch)(()=>[r.portalEl,r.size],()=>{T(),d.value+=1});function A(){let e=r.portalEl;if(!e)return;if(l.value||u.value){e.removeAttribute(`aria-hidden`);return}e.setAttribute(`aria-hidden`,`true`);let t=document.activeElement;t instanceof HTMLElement&&e.contains(t)&&(t.blur(),o.value?.focus())}(0,n.watch)([l,u],()=>{A()});function j(e){if(e.key===`Escape`){if(u.value){e.preventDefault(),e.stopPropagation(),C();return}l.value&&(e.preventDefault(),e.stopPropagation(),w())}}function M(e){if(!l.value&&!u.value||f||e.button!==0)return;let t=e.target;t instanceof Node&&(o.value?.contains(t)||s.value?.contains(t)||c.value?.contains(t)||T())}return(0,n.onMounted)(()=>{A(),document.addEventListener(`keydown`,j,!0),document.addEventListener(`pointerdown`,M,!0),window.addEventListener(`resize`,k),window.addEventListener(`scroll`,k,!0)}),(0,n.onBeforeUnmount)(()=>{l.value=!1,u.value=!1,A(),document.removeEventListener(`keydown`,j,!0),document.removeEventListener(`pointerdown`,M,!0),window.removeEventListener(`resize`,k),window.removeEventListener(`scroll`,k,!0)}),(t,r)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{class:(0,n.normalizeClass)((0,n.unref)(Ks)),style:(0,n.normalizeStyle)(_.value)},[(0,n.createElementVNode)(`button`,{ref_key:`triggerRef`,ref:o,type:`button`,class:`mg-column-settings-button__trigger`,disabled:e.disabled,"aria-haspopup":`menu`,"aria-expanded":g.value,"aria-label":e.label??`表格设置`,title:e.label??`表格设置`,onClick:b},[...r[0]||=[(0,n.createElementVNode)(`svg`,{class:`mg-column-settings-button__icon`,xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[(0,n.createElementVNode)(`path`,{d:`M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915`}),(0,n.createElementVNode)(`circle`,{cx:`12`,cy:`12`,r:`3`})],-1)]],8,Bj),((0,n.openBlock)(),(0,n.createBlock)(n.Teleport,{key:d.value,to:m.value},[l.value?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{key:0,class:(0,n.normalizeClass)((0,n.unref)(qs))},[(0,n.createElementVNode)(`div`,{ref_key:`menuRef`,ref:s,class:(0,n.normalizeClass)((0,n.unref)(Js))},[(0,n.createVNode)(jA,{"show-divider":h.value,onColumnSettings:x,onCustomAction:w,onReset:S},{default:(0,n.withCtx)(()=>[(0,n.renderSlot)(t.$slots,`menu`)]),_:3},8,[`show-divider`])],2)],2)):(0,n.createCommentVNode)(``,!0),u.value?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{key:1,class:(0,n.normalizeClass)((0,n.unref)(qs))},[(0,n.createElementVNode)(`div`,{ref_key:`panelRef`,ref:c,class:(0,n.normalizeClass)((0,n.unref)(Js)),role:`dialog`,"aria-modal":`false`,"aria-label":`列设置面板`},[(0,n.createVNode)(Nj,{"grid-api":e.gridApi,open:u.value,"show-visibility":e.showVisibility,"show-filter":e.showFilter,onClose:C},null,8,[`grid-api`,`open`,`show-visibility`,`show-filter`])],2)],2)):(0,n.createCommentVNode)(``,!0)],8,[`to`]))],6))}}),Hj={input:{deferEnterCommit:!1,commitOnChange:!1},overlay:{deferEnterCommit:!0,commitOnChange:!0}};async function Uj(e){e&&await e()}function Wj(e,t){let r=Hj[t.strategy??`input`],i=t.formatValue??(e=>String(e??``)),a=t.commitOnChange??r.commitOnChange,o=t.autoFocus!==!1;e.setGetValue?.(()=>i(t.getValue())),e.setKeyboardPolicy?.({deferEnterCommit:r.deferEnterCommit,suppressInitialAutoFocus:!o||void 0}),(0,n.onMounted)(()=>{(async()=>{await Uj(t.onMount),e.autoFocus!==!1&&await Uj(t.onStart)})()}),(0,n.onUnmounted)(()=>{Uj(t.onDestroy)});function s(){(async()=>{await Uj(t.onBeforeCommit);let n=await e.stopEditing(!0);n!=null&&n.committed===!0&&await Uj(t.onAfterCommit)})()}function c(){(async()=>{await Uj(t.onBeforeCancel),await e.stopEditing(!1)!=null&&await Uj(t.onAfterCancel)})()}function l(){a&&s()}function u(e){if(e instanceof KeyboardEvent){if(e.key===`Enter`){r.deferEnterCommit&&(0,n.nextTick)(s);return}e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),c())}}return{onKeydown:u,onChange:l,commit:s,cancel:c}}function Gj(e){return new Promise(t=>{requestAnimationFrame(()=>{let n=e.value;typeof n?.focus==`function`&&n.focus(),t()})})}function Kj(e){return(0,n.computed)(()=>e.value?.api)}function qj(e){let t={};return e.onReady&&(t[`onGrid-ready`]=e.onReady),e.onDestroyed&&(t[`onGrid-destroyed`]=e.onDestroyed),e.onFirstRendered&&(t[`onFirst-rendered`]=e.onFirstRendered),t}function Jj(e,t){return e.getRowNode(t)!=null}function Yj(e){let t=new Set,n=[],r=e=>{if(e==null||e===``)return;let r=String(e);t.has(r)||(t.add(r),n.push(e))};for(let t of e.selectedRowIds)r(t);for(let t of e.selectedRows)(t.rowId==null||t.rowId===``)&&r(t.internalRowId);return n}function Xj(e){let{currentIntent:t,materializedIds:n,isInModel:r}=e,i=[...t].filter(e=>!r(e));return[...new Set([...n,...i])]}function Zj(e,t){let n=[],r=[];for(let i of e)t(i)?n.push(i):r.push(i);return{onModel:n,offModel:r}}function Qj(e){return[...new Set(e)]}function $j(e){return Qj((0,n.toValue)(e))}function eM(e,t){let r=t.syncPendingOnInteraction!==!1,i=(0,n.shallowRef)($j(t.initialIntent));(0,n.watch)(()=>$j(t.initialIntent),e=>{i.value=e});let a=(0,n.computed)(()=>new Set(i.value));function o(t){let r=(0,n.toValue)(e);return r!=null&&Jj(r,t)}let s=(0,n.computed)(()=>Zj(a.value,o)),c=(0,n.computed)(()=>s.value.offModel),l=(0,n.computed)(()=>s.value.onModel);function u(e){i.value=Qj(e)}function d(e){i.value=Qj([...i.value,...e])}function f(){i.value=$j(t.initialIntent)}function p(){let t=(0,n.toValue)(e);t&&t.setDefaultSelectedRows([...i.value],{mode:`cover`})}function m(e){u(e),p()}function h(t){d(t);let r=(0,n.toValue)(e);r&&r.setDefaultSelectedRows([...t],{mode:`merge`})}function g(t){let r=(0,n.toValue)(e);if(!r)return;let o=Yj(t);i.value=Xj({currentIntent:a.value,materializedIds:o,isInModel:e=>Jj(r,e)})}function _(e){return g(e),r&&(e.source===`ui`||e.source===`api`)&&p(),{materializedIds:Yj(e),intentIds:[...i.value],offModelIds:s.value.offModel,source:e.source}}return{intentIds:(0,n.shallowReadonly)(i),offModelIds:c,onModelIds:l,replaceIntent:u,mergeIntent:d,resetIntent:f,applyIntentCover:p,coverIntent:m,mergeIntentToPending:h,handleSelectionChanged:_}}exports.BUILTIN_CELL_EDITOR_NAMES=Sn,exports.COLUMN_DRAG_THRESHOLD_PX=na,exports.ColumnSettingsButton=Vj,exports.ColumnSettingsMenuIcon=wA,exports.ColumnSettingsMenuItem=DA,exports.ColumnSettingsPanel=Nj,exports.DEFAULT_CELL_EDITOR_MODE=t.B,exports.DEFAULT_INDEX_COLUMN_START=t.et,exports.DEFAULT_SELECTION_SELECT_ALL_LABEL=t.K,exports.DEFAULT_STATUS_BAR_RANGE_AGGREGATION_PRECISION=a,exports.INDEX_COLUMN_ID=t.tt,exports.INDEX_COLUMN_MIN_WIDTH=t.rt,exports.INLINE_CHECKBOX_CLASS=Jd,exports.INLINE_SWITCH_CLASS=Yd,exports.MagicGrid=xA,exports.RowMutationPersistError=t.p,exports.SELECTION_COLUMN_DEFAULT_WIDTH=t.q,exports.SELECTION_COLUMN_ID=t.J,exports.SELECTION_COLUMN_MIN_WIDTH=t.Y,exports.SORT_AFTER_MOVE_GUARD_MS=ra,exports.SWITCH_EDITOR_CLASS=Xd,exports.VueCellEditorHost=Hk,exports.checkboxCellEditor=nf,exports.coerceCheckboxEditorValue=en,exports.coerceSwitchEditorValue=qt,exports.coerceToggleEditorValue=qt,exports.createSlotCellEditor=qk,exports.createVueCellEditor=Kk,exports.evaluateGridAcceptance=mk,exports.executeFocus=Gj,exports.formatCheckboxEditorRawValue=tn,exports.formatSwitchEditorRawValue=Yt,exports.generateFocusedRowIds=t.y,exports.generateRowId=t.b,exports.generateSelectedRowIds=t.x,exports.getCellEditor=df,exports.getGridAcceptanceThresholds=pk,exports.getGridSetDataLimit=fk,exports.getMaterializedSelectionIdsFromEvent=Yj,exports.getRegisteredCellEditorNames=pf,exports.getRowDragCommitHierarchy=t.t,exports.hasCellEditor=ff,exports.isBuiltInCellEditor=Cn,exports.isInlineEditorColumn=t.V,exports.isRowIdInGridModel=Jj,exports.isSyntheticRow=t.C,exports.magicGridVueCellRef=lp,exports.numberCellEditor=tf,exports.parseCheckboxEditorRawValue=rn,exports.parseSwitchEditorRawValue=Zt,exports.partitionDefaultSelectedRowsIntentByModel=Zj,exports.readCheckboxControlValue=nn,exports.readSwitchControlValue=Xt,exports.recomputeDefaultSelectedRowsIntent=Xj,exports.registerCellEditor=lf,exports.registerEditorSurfaceSelectors=zd,exports.resetEditorSurfaceSelectors=Bd,exports.resolveCellEditorMode=t.H,exports.resolveCheckboxEditorValues=$t,exports.resolveColumnCellEditorMode=t.U,exports.resolveSwitchEditorValues=Wt,exports.switchCellEditor=rf,exports.textCellEditor=ef,exports.toBusinessRowId=t.T,exports.toBusinessRowIdFromInternal=t.D,exports.toBusinessRowIdsFromInternal=t.O,exports.toggleHeaderSort=Lm,exports.unregisterCellEditor=uf,exports.useCellEditor=Wj,exports.useDefaultSelectedRowsIntent=eM,exports.useGridApi=Kj,exports.useGridLifecycle=qj,exports.vueCellEditorProps=Uk;
9
+ `){n.push(r),t.push(n),n=[],r=``,a+=2;continue}n.push(r),t.push(n),n=[],r=``,a+=1;continue}r+=o,a+=1}return(r.length>0||n.length>0||i)&&(n.push(r),t.push(n)),t}function Wx(e){return e.length===1&&(e[0]?.length??0)===1}var Gx=class{deps;constructor(e){this.deps=e}isCopyEnabled(){let e=this.deps.getCellSelectionOptions();return e.enabled&&e.enableCellCopy}isPasteEnabled(){let e=this.deps.getCellSelectionOptions();return e.enabled&&e.enableCellPaste}copySelectedRanges(){if(!this.isCopyEnabled())return!1;let e=this.deps.getCellRangeService();if(!e?.hasRanges())return!1;let t=this.deps.getCellRangeOperationContext(),n=e.getRanges(),r=this.serializeRanges(n,t);return r!==``&&(this.writeClipboard(r),this.deps.onCopyVisualFeedback?.(),!0)}async pasteFromClipboard(){if(!this.isPasteEnabled())return 0;this.deps.isEditing()&&await this.deps.stopEditing(!1);let e=this.resolvePasteAnchor();if(!e)return 0;let t;try{t=await this.readClipboard()}catch{return 0}let n=Ux(t);if(n.length===0)return 0;let r=this.deps.getCellRangeOperationContext(),i=this.deps.getCellClipboardOptions().processDataFromClipboard?.({data:n,anchor:e});if(i===null)return 0;let a=i??n,o=this.deps.getCellRangeService()?.getRanges()??[];return Wx(a)&&this.shouldPasteSingleCellToRanges(o,r)?await this.applySingleCellPasteToRanges(o,a[0][0]):await this.applyPasteMatrix(e,a)}serializeRanges(e,t){let n=t.displayedColIds,r=this.resolveIndexColumnDisplayOptions(),i=this.deps.getCellClipboardOptions(),a=this.deps.getCellSpanService?.()??null,o=[];for(let t of e){let e=W(t,n);if(!e)continue;let s=n.indexOf(e.leftColId),c=n.indexOf(e.rightColId);if(s<0||c<0)continue;let l=n.slice(s,c+1),u=[];for(let t=e.top;t<=e.bottom;t+=1){let e=this.deps.rowModel.getRow(t);if(!e)continue;let n=[];for(let o of l){if(!_s(o,e.rowKind)){n.push(``);continue}let s=this.deps.columnModel.getColumnById(o);if(!s){n.push(``);continue}if(W_(e,s,this.deps.columnModel,a)){n.push(``);continue}let c=Tx({rowId:e.id,rowIndex:t,colId:o,value:U(e,s),data:e.data,formattedValue:``,column:s,getApi:this.deps.getApi,gridSize:this.deps.gridSize});n.push(Px(t,e,s,r,c,i.processCellForClipboard,this.deps.getCellClipboardDisplayContext?.()))}u.push(Vx(n))}u.length>0&&o.push(u)}return Hx(o)}resolvePasteAnchor(){let e=this.deps.getCellRangeOperationContext().displayedColIds,t=this.deps.getCellRangeService(),n=t?.getRanges()??[],r=this.deps.cellFocusService.getFocusedCell();if(r&&!J(r)){let t=this.deps.rowModel.getRow(r.rowIndex);if(_s(r.colId,t?.rowKind)){let t={rowIndex:r.rowIndex,colId:r.colId};if(n.length===0||n.some(t=>{let n=W(t,e);return n!=null&&Os(r.rowIndex,r.colId,n,e)}))return t}}if(n.length===0)return null;let i=W(n[0],e);if(!i)return null;let a=t?.getAnchor();return a&&Os(a.rowIndex,a.colId,i,e)?{rowIndex:a.rowIndex,colId:a.colId}:{rowIndex:i.top,colId:i.leftColId}}shouldPasteSingleCellToRanges(e,t){if(e.length===0)return!1;let n=0,r=t.displayedColIds;for(let t of e){let e=W(t,r);if(!e)continue;let i=r.indexOf(e.leftColId),a=r.indexOf(e.rightColId);if(i<0||a<0)continue;let o=e.bottom-e.top+1,s=Math.abs(a-i)+1;if(n+=o*s,n>1)return!0}return!1}async applySingleCellPasteToRanges(e,t){let n=this.deps.getCellRangeOperationContext().displayedColIds,r=0,i=new Set,a=new Set,o=[];for(let s of e){let e=W(s,n);if(!e)continue;let c=n.indexOf(e.leftColId),l=n.indexOf(e.rightColId);if(c<0||l<0)continue;let u=Math.min(c,l),d=Math.max(c,l);for(let s=e.top;s<=e.bottom;s+=1){let e=this.deps.rowModel.getRow(s);if(e)for(let c=u;c<=d;c+=1){let l=n[c],u=await this.pasteCell(s,l,e.id,e,t);u.status===`applied`?(r+=1,i.add(e.id),a.add(l),o.push({rowIndex:s,colId:l,applied:!0})):u.showBlockedVisual&&o.push({rowIndex:s,colId:l,applied:!1})}}}return r>0&&this.deps.refreshCells({rowIds:[...i],colIds:[...a]}),o.length>0&&this.deps.onPasteVisualFeedback?.(o),r}async applyPasteMatrix(e,t){let n=this.deps.getCellRangeOperationContext().displayedColIds,r=n.indexOf(e.colId);if(r<0)return 0;let i=this.deps.rowModel.getRowCount(),a=0,o=new Set,s=new Set,c=[];for(let l=0;l<t.length;l+=1){let u=t[l],d=e.rowIndex+l;if(d>=i)break;let f=this.deps.rowModel.getRow(d);if(f)for(let e=0;e<u.length;e+=1){let t=r+e;if(t>=n.length)break;let i=n[t],l=await this.pasteCell(d,i,f.id,f,u[e]);l.status===`applied`?(a+=1,o.add(f.id),s.add(i),c.push({rowIndex:d,colId:i,applied:!0})):l.showBlockedVisual&&c.push({rowIndex:d,colId:i,applied:!1})}}return a>0&&this.deps.refreshCells({rowIds:[...o],colIds:[...s]}),c.length>0&&this.deps.onPasteVisualFeedback?.(c),a}async pasteCell(e,t,n,r,i){if(!vs(t,r.rowKind))return{status:`blocked`,showBlockedVisual:!0};let a=this.deps.columnModel.getColumnById(t);if(!a||!H(a,r,this.deps.getCellDisableContext())||wx(a,r.data))return{status:`blocked`,showBlockedVisual:!0};let o=U(r,a),s=await Lx(a,Tx({rowId:n,rowIndex:e,colId:t,value:o,data:r.data,formattedValue:String(o??``),column:a,getApi:this.deps.getApi,gridSize:this.deps.gridSize}),i,o,{rowIndex:e,rowNode:r,indexColumnOptions:this.resolveIndexColumnDisplayOptions(),processCellFromClipboard:this.deps.getCellClipboardOptions().processCellFromClipboard});return s.status===`blocked`?s:(await Qf(this.deps,async()=>{ep(this.deps.recordRowDataChange,r,a,o,s.parsed,`paste`),this.deps.applyTransaction({update:[r.data]}),this.deps.eventBus.emit(`cellValueChanged`,{rowId:n,colId:t,oldValue:o,newValue:s.parsed,rowNode:r}),await Zf(a,r,{oldValue:o,newValue:s.parsed},{gridSize:this.deps.gridSize,getApi:this.deps.getApi,buildRowSnapshot:this.deps.buildRowSnapshot,getIndexColumnOptions:()=>this.resolveIndexColumnDisplayOptions()},{source:`paste`})}),{status:`applied`})}resolveIndexColumnDisplayOptions(){let e=this.deps.getIndexColumnOptions();return e.showIndexColumn?e.indexColumn:void 0}async writeClipboard(e){if(this.deps.writeToClipboard){await this.deps.writeToClipboard(e);return}await Rx(e)}async readClipboard(){return this.deps.readFromClipboard?this.deps.readFromClipboard():zx()}};function Kx(e){return typeof e==`number`&&Number.isFinite(e)}function qx(e,t){return`${e}:${t}`}function Jx(e,t,n){let r=t.indexOf(e.leftColId),i=t.indexOf(e.rightColId);if(r<0||i<0)return;let a=Math.min(r,i),o=Math.max(r,i);for(let r=e.top;r<=e.bottom;r+=1)for(let e=a;e<=o;e+=1){let i=t[e];i&&n(r,i)}}function Yx(e,t){let n=new Set;return Jx(e,t,(e,t)=>{n.add(qx(e,t))}),n}function Xx(e){let{fixedAnchor:t,pointer:n,sourceRange:r,direction:i,displayedColIds:a}=e;if(a.indexOf(n.colId)<0)return null;let o=W(Ts(t,n),a);return o?i===`y`?{top:o.top,bottom:o.bottom,leftColId:r.leftColId,rightColId:r.rightColId}:i===`x`?{top:r.top,bottom:r.bottom,leftColId:o.leftColId,rightColId:o.rightColId}:o:null}function Zx(e,t,n,r){let i=[];for(let n=e.top;n<=e.bottom;n+=1)i.push(r(n,t));return i}function Qx(e,t,n,r){let i=n.indexOf(e.leftColId),a=n.indexOf(e.rightColId);if(i<0||a<0)return[];let o=[],s=Math.min(i,a),c=Math.max(i,a);for(let e=s;e<=c;e+=1){let i=n[e];i&&o.push(r(t,i))}return o}function $x(e,t){return e>t.bottom?e-t.bottom:e<t.top?e-t.top:null}function eS(e,t,n){let r=n.indexOf(t.leftColId),i=n.indexOf(t.rightColId);if(r<0||i<0)return null;let a=Math.min(r,i),o=Math.max(r,i);return e>o?e-o:e<a?e-a:null}function tS(e){let{rowIndex:t,colId:n,sourceRange:r,displayedColIds:i,getSourceValue:a,setFillValue:o,fillStrategy:s=Wo,rowNode:c,column:l,allowedDirection:u}=e,d=i.indexOf(n);if(d<0)return null;let f=$x(t,r),p=eS(d,r,i),m=null,h=0,g=[];if(f!=null&&f!==0&&(u===`y`||u===`xy`)?(m=`y`,h=f,g=Zx(r,n,i,a)):p!=null&&p!==0&&(u===`x`||u===`xy`)&&(m=`x`,h=p,g=Qx(r,Math.min(Math.max(t,r.top),r.bottom),i,a)),!m||g.length===0)return null;let _=g[g.length-1];return o?o({rowNode:c,column:l,baseValue:_,step:h,direction:m}):rS(g,h,s)}function nS(e,t){return t>0?e[e.length-1]:e[0]}function rS(e,t,n){if(e.length===0)return null;if(n===`copy`)return nS(e,t);if(e.every(Kx)){let n=e,r=n.length===1?1:(n[n.length-1]-n[0])/(n.length-1);return(t>0?n[n.length-1]:n[0])+r*t}return nS(e,t)}function iS(e,t,n){let r=Yx(t,n),i=e?Yx(e,n):new Set,a=[];for(let e of r)if(!i.has(e)){let[t,n]=e.split(`:`);a.push({rowIndex:Number(t),colId:n})}return a}function aS(e,t,n){return iS(t,e,n)}var oS=class{deps;constructor(e){this.deps=e}async commitFillRange(e){let t=0,n=new Set,r=new Set;for(let i of e.removed)if(await this.writeClearCell(i)){t+=1;let e=this.deps.rowModel.getRow(i.rowIndex);e&&(n.add(e.id),r.add(i.colId))}for(let i of e.added)if(await this.writeFillCell(i,e.sourceRange,e.displayedColIds,e.fillOptions)){t+=1;let e=this.deps.rowModel.getRow(i.rowIndex);e&&(n.add(e.id),r.add(i.colId))}return t>0&&this.deps.refreshCells({rowIds:[...n],colIds:[...r]}),t}async applyFillDiff(e){return this.commitFillRange({...e,removed:[]})}async writeClearCell(e){let t=this.deps.rowModel.getRow(e.rowIndex),n=this.deps.columnModel.getColumnById(e.colId);return!t||!n||!vs(e.colId,t.rowKind)||!H(n,t,this.deps.getCellDisableContext())?!1:this.writeCellValue(t.id,e.rowIndex,n,t,``)}async writeFillCell(e,t,n,r){let i=this.deps.rowModel.getRow(e.rowIndex),a=this.deps.columnModel.getColumnById(e.colId);if(!i||!a||!vs(e.colId,i.rowKind)||!H(a,i,this.deps.getCellDisableContext()))return!1;let o=tS({rowIndex:e.rowIndex,colId:e.colId,sourceRange:t,displayedColIds:n,getSourceValue:(e,t)=>{let n=this.deps.rowModel.getRow(e),r=this.deps.columnModel.getColumnById(t);if(!(!n||!r))return U(n,r)},setFillValue:r.setFillValue,fillStrategy:r.fillStrategy,rowNode:i,column:a,allowedDirection:r.direction});return o!==null&&this.writeCellValue(i.id,e.rowIndex,a,i,o)}async writeCellValue(e,t,n,r,i){let a=U(r,n);return Object.is(a,i)||!_n(n,Tx({rowId:e,rowIndex:t,colId:n.colId,value:a,data:r.data,formattedValue:String(a??``),column:n,getApi:this.deps.getApi,gridSize:this.deps.gridSize}),i)?!1:(await Qf(this.deps,async()=>{ep(this.deps.recordRowDataChange,r,n,a,i,`fill`),this.deps.applyTransaction({update:[r.data]}),this.deps.eventBus.emit(`cellValueChanged`,{rowId:e,colId:n.colId,oldValue:a,newValue:i,rowNode:r}),await Zf(n,r,{oldValue:a,newValue:i},this.deps,{source:`fill`})}),!0)}},sS=class{deps;constructor(e){this.deps=e}async clearRanges(e,t){let n=t.displayedColIds,r=0,i=new Set,a=new Set;for(let t of e){let e=W(t,n);if(e)for(let t=e.top;t<=e.bottom;t+=1){let o=this.deps.rowModel.getRow(t);if(o)for(let s of n)Os(t,s,e,n)&&await this.writeClearCell(t,s,o.id,o)&&(r+=1,i.add(o.id),a.add(s))}}return r>0&&this.deps.refreshCells({rowIds:[...i],colIds:[...a]}),r}async writeClearCell(e,t,n,r){if(!vs(t,r.rowKind))return!1;let i=this.deps.columnModel.getColumnById(t);if(!i||!H(i,r,this.deps.getCellDisableContext()))return!1;let a=U(r,i);return Object.is(a,``)||!_n(i,Tx({rowId:n,rowIndex:e,colId:t,value:a,data:r.data,formattedValue:String(a??``),column:i,getApi:this.deps.getApi,gridSize:this.deps.gridSize}),``)?!1:(await Qf(this.deps,async()=>{ep(this.deps.recordRowDataChange,r,i,a,``,`delete`),this.deps.applyTransaction({update:[r.data]}),this.deps.eventBus.emit(`cellValueChanged`,{rowId:n,colId:t,oldValue:a,newValue:``,rowNode:r}),await Zf(i,r,{oldValue:a,newValue:``},this.deps,{source:`delete`})}),!0)}};function cS(e){let t=e.textContent?.trim()??``;return t===``?null:t}function lS(e){let t=e.column.prop??e.column.colId,n=t?e.rowNode.data[t]:void 0;e.column.valueGetter&&(n=e.column.valueGetter(e.rowNode.data,n));let r=Jf(e.rowNode,e.column,e.indexColumnOptions);return{rowId:e.rowNode.id,colId:e.column.colId,data:e.rowNode.data,value:n,valueFormatted:r,column:e.column,location:e.location??`cell`}}function uS(e){let t=lS(e);if(e.tooltipValueGetter)try{let n=e.tooltipValueGetter(t);return n==null||n===``?null:n}catch(e){return console.warn(`[magic-grid] tooltipValueGetter failed:`,e),null}if(e.tooltipField){let t=e.rowNode.data[e.tooltipField];if(t!=null&&t!==``)return String(t)}return t.valueFormatted===``?e.anchorEl&&Ec(e.anchorEl)?cS(e.anchorEl):null:t.valueFormatted}function dS(e){let t=e.column.label??e.column.prop??e.column.colId;try{let n=e.headerTooltipValueGetter?.({colId:e.column.colId,column:e.column,headerLabel:t});if(n!=null&&n!==``)return n}catch(e){return console.warn(`[magic-grid] headerTooltipValueGetter failed:`,e),null}return e.headerTooltip!=null&&e.headerTooltip!==``?e.headerTooltip:t===``?null:t}function fS(e){let t={rowId:``,colId:e.column.colId,data:void 0,value:e.displayText,valueFormatted:e.displayText,column:e.column,location:`footer`};try{let n=e.tooltipValueGetter?.(t);if(n!=null&&n!==``)return n}catch(e){return console.warn(`[magic-grid] tooltipValueGetter failed:`,e),null}return e.tooltipField||e.displayText===``?null:e.displayText}function pS(e){let t=e.dataset.mgTooltip;if(t!=null&&t!==``)return t;let n=e.textContent?.trim()??``;return n===``?null:n}function Q(e){return e instanceof Element?e:e instanceof Text?e.parentElement:null}function mS(e,t){return e.getColumns().findIndex(e=>e.colId===t)}function hS(e,t){let n=Q(t);if(!n)return null;let r=n.closest(`.mg-footer-cell[data-col-id]`);return r?.dataset.colId?{colId:r.dataset.colId,colIndex:mS(e,r.dataset.colId)}:null}function gS(e){return Q(e)?.closest(`.mg-header-cell__column-handle`)??null}function _S(e){return Q(e)?.closest(`.mg-header-cell--tree .mg-cell__tree-expand`)??null}function vS(e){return Q(e)?.closest(`.mg-floating-filter-button`)??null}function yS(e,t){let n=Q(t);if(!n)return null;let r=n.closest(`.mg-header-cell[data-col-id]`);return r?.dataset.colId?{colId:r.dataset.colId,colIndex:mS(e,r.dataset.colId)}:null}function bS(e,t){let n=Q(t);if(!n)return null;let r=n.closest(`.mg-cell`),i=n.closest(`.mg-row`);if(!r||!i)return null;let a=i.dataset.rowId,o=r.dataset.colId;if(!a||!o)return null;let s=e.getRowIndexById(a),c=e.getRow(s);return!c||s<0?null:{rowId:a,colId:o,rowIndex:s,rowNode:c,rowElement:i}}function xS(e){return Q(e)?.closest(`.mg-header-cell[data-col-id]`)??null}function SS(e){return e.querySelector(`.mg-root`)??e}function CS(e){return e.ownerDocument}function wS(e){let t=[];if(!e)return t;let n=null;try{n=e.parent}catch{return t}for(;n&&n!==e;){t.push(n);try{if(n.parent===n)break;n=n.parent}catch{break}}return t}function TS(e,t){let n=CS(e),r={capture:!0};n.addEventListener(`mousemove`,t.mousemove),n.addEventListener(`mouseup`,t.mouseup);let i=wS(n.defaultView);for(let e of i)e.addEventListener(`mousemove`,t.mousemove,r),e.addEventListener(`mouseup`,t.mouseup,r);return{unbind:()=>{n.removeEventListener(`mousemove`,t.mousemove),n.removeEventListener(`mouseup`,t.mouseup);for(let e of i)e.removeEventListener(`mousemove`,t.mousemove,r),e.removeEventListener(`mouseup`,t.mouseup,r)}}}function ES(e){let t=Q(e);return t?t.closest(bc):null}function DS(e){return e.matches(`.mg-cell__text:not([hidden])`)||e.matches(`.mg-cell__renderer:not([hidden])`)?`cell`:e.matches(`.mg-header-cell__text`)?`header`:e.matches(`.mg-footer-cell__text:not([hidden])`)?`footer`:null}function OS(e){let t=Q(e);return t?t.closest(yc):null}function kS(e,t,n){let r=DS(e);if(!r)return null;if(r===`header`){let t=e.closest(`.mg-header-cell[data-col-id]`)?.dataset.colId;return t?{anchorEl:e,location:r,colId:t}:null}if(r===`footer`){let t=e.closest(`.mg-footer-cell[data-col-id]`)?.dataset.colId;return t?{anchorEl:e,location:r,colId:t}:null}let i=e.closest(`.mg-cell[data-col-id]`),a=e.closest(`.mg-row[data-row-id]`),o=i?.dataset.colId,s=a?.dataset.rowId;return!o||!s||!t.getColumnById(o)||!n.getRowById(s)?null:{anchorEl:e,location:r,colId:o,rowId:s}}var AS=class{deps;showTimer=null;activeAnchor=null;pendingAnchor=null;lastPointer=null;bound=!1;statusBarEl=null;statusBarBound=!1;constructor(e){this.deps=e}setStatusBarElement(e){this.statusBarEl!==e&&(this.unbindStatusBarListeners(),this.statusBarEl=e,e&&this.bound&&this.bindStatusBarListeners())}bindListeners(){this.bound||(this.bound=!0,this.deps.mountEl.addEventListener(`pointerover`,this.handlePointerOver,!0),this.deps.mountEl.addEventListener(`pointerout`,this.handlePointerOut,!0),this.deps.viewportEl.addEventListener(`scroll`,this.handleScroll,!0),this.deps.headerViewportEl.addEventListener(`scroll`,this.handleScroll,!0),this.deps.footerViewportEl?.addEventListener(`scroll`,this.handleScroll,!0),this.bindStatusBarListeners())}unbindListeners(){this.bound&&(this.bound=!1,this.deps.mountEl.removeEventListener(`pointerover`,this.handlePointerOver,!0),this.deps.mountEl.removeEventListener(`pointerout`,this.handlePointerOut,!0),this.deps.viewportEl.removeEventListener(`scroll`,this.handleScroll,!0),this.deps.headerViewportEl.removeEventListener(`scroll`,this.handleScroll,!0),this.deps.footerViewportEl?.removeEventListener(`scroll`,this.handleScroll,!0),this.unbindStatusBarListeners(),this.close())}destroy(){this.unbindListeners(),this.deps.tooltipService.destroy()}close(){this.clearShowTimer(),this.activeAnchor=null,this.pendingAnchor=null,this.lastPointer=null,this.deps.tooltipService.hide(!0)}refreshActiveTooltip(){if(!this.activeAnchor)return;let e=this.deps.getOptions(),t=this.resolveTooltipText(this.activeAnchor);if(!this.shouldShowForContext(this.activeAnchor,e,t)||!t){this.close();return}this.presentTooltip(this.activeAnchor,e,t),this.deps.tooltipService.refreshPosition()}bindStatusBarListeners(){!this.statusBarEl||this.statusBarBound||(this.statusBarBound=!0,this.statusBarEl.addEventListener(`pointerover`,this.handleStatusBarPointerOver,!0),this.statusBarEl.addEventListener(`pointerout`,this.handleStatusBarPointerOut,!0))}unbindStatusBarListeners(){!this.statusBarEl||!this.statusBarBound||(this.statusBarBound=!1,this.statusBarEl.removeEventListener(`pointerover`,this.handleStatusBarPointerOver,!0),this.statusBarEl.removeEventListener(`pointerout`,this.handleStatusBarPointerOut,!0))}handlePointerOver=e=>{if(e.pointerType===`touch`)return;let t=ES(e.target);if(!t)return;let n=kS(t,this.deps.columnModel,this.deps.rowModel);!n||!this.canShowTooltip(n)||this.queueShow(e,n)};handleStatusBarPointerOver=e=>{if(e.pointerType===`touch`)return;let t=OS(e.target);if(!t)return;let n={anchorEl:t,location:`statusBar`};this.canShowTooltip(n)&&this.queueShow(e,n)};queueShow(e,t){let n=this.deps.getOptions();if(!n.enableTooltips||n.tooltipShowMode===`never`)return;this.lastPointer={clientX:e.clientX,clientY:e.clientY};let r=this.activeAnchor?.anchorEl===t.anchorEl||this.pendingAnchor?.anchorEl===t.anchorEl;this.deps.tooltipService.isVisible()&&!r&&(this.deps.tooltipService.hide(!0),this.activeAnchor=null),this.pendingAnchor=t,this.scheduleShow(t,n)}handlePointerOut=e=>{this.handleAnchorPointerOut(e,ES(e.target))};handleStatusBarPointerOut=e=>{this.handleAnchorPointerOut(e,OS(e.target))};handleAnchorPointerOut(e,t){if(!t)return;let n=ES(e.relatedTarget),r=OS(e.relatedTarget),i=this.deps.getOptions();if(this.pendingAnchor?.anchorEl===t&&n!==t&&(this.clearShowTimer(),this.pendingAnchor=null),this.activeAnchor?.anchorEl===t&&n!==t&&r!==t){if(i.tooltipInteraction){let t=this.deps.tooltipService.getPopupEl();if(e.relatedTarget instanceof Node&&t?.contains(e.relatedTarget))return;this.activeAnchor=null,this.deps.tooltipService.scheduleHide(i.tooltipHideDelay);return}this.activeAnchor=null,this.deps.tooltipService.scheduleHide(i.tooltipHideDelay)}}handleScroll=()=>{this.close()};scheduleShow(e,t){this.clearShowTimer();let n=this.deps.tooltipService.isVisible()||this.activeAnchor?t.tooltipSwitchShowDelay:t.tooltipShowDelay;this.showTimer=setTimeout(()=>{this.showTimer=null,this.pendingAnchor?.anchorEl===e.anchorEl&&this.showTooltip(e,t)},n)}showTooltip(e,t){if(!this.canShowTooltip(e))return;let n=this.resolveTooltipText(e);!this.shouldShowForContext(e,t,n)||!n||(this.activeAnchor=e,this.pendingAnchor=null,this.presentTooltip(e,t,n))}shouldShowForContext(e,t,n){if(!n)return!1;let r=e.colId==null?void 0:this.deps.columnModel.getColumnById(e.colId);return Mc({mode:t.tooltipShowMode,text:n,anchorEl:e.anchorEl,isAutoHeight:e.location===`cell`&&r?r.autoHeight:!1,enableTooltips:t.enableTooltips})}presentTooltip(e,t,n){let r=e.colId==null?void 0:this.deps.columnModel.getColumnById(e.colId),i=this.resolveTooltipComponent(e,r),a=t.tooltipMouseTrack?this.lastPointer??void 0:void 0;if(i){this.deps.tooltipService.show({anchorEl:e.anchorEl,location:e.location,tooltipComponent:i,tooltipParams:this.buildTooltipParams(e,n,r),mouseTrack:t.tooltipMouseTrack,pointer:a,interaction:t.tooltipInteraction});return}this.deps.tooltipService.show({anchorEl:e.anchorEl,text:n,location:e.location,mouseTrack:t.tooltipMouseTrack,pointer:a,interaction:t.tooltipInteraction})}resolveTooltipComponent(e,t){let n=this.deps.getOptions().tooltipComponent;return e.location===`statusBar`?n:t?.tooltipComponent??n}buildTooltipParams(e,t,n){let r=e.rowId==null?void 0:this.deps.rowModel.getRowById(e.rowId);return{location:e.location,value:r?.data&&n?.prop?r.data[n.prop]:t,valueFormatted:t,colId:e.colId,rowId:e.rowId,data:r?.data,hideTooltipCallback:()=>this.close(),api:this.deps.getApi()}}canShowTooltip(e){if(this.deps.cellCommentService()?.getOpenEditorCell())return!1;if(e.location===`statusBar`)return!0;if(!e.colId)return!1;let t=this.deps.columnModel.getColumnById(e.colId);return!(!t||t.hidden||t.suppressTooltip||e.location===`cell`&&e.rowId&&(this.isEditingCell(e.rowId,e.colId)||this.hasValidationTooltip(e.rowId,e.colId)))}isEditingCell(e,t){if(!this.deps.isEditing())return!1;let n=this.deps.getEditingCell();return n?.rowId===e&&n?.colId===t}hasValidationTooltip(e,t){return!!this.deps.validationFeedback.getRegistry().get(e)?.get(t)?.length}resolveTooltipText(e){if(e.location===`statusBar`)return pS(e.anchorEl);if(!e.colId)return null;let t=this.deps.columnModel.getColumnById(e.colId);if(!t)return null;if(e.location===`header`)return dS({column:t,headerTooltip:t.headerTooltip,headerTooltipValueGetter:t.headerTooltipValueGetter});if(e.location===`footer`)return fS({column:t,displayText:e.anchorEl.textContent?.trim()??``,tooltipField:t.tooltipField,tooltipValueGetter:t.tooltipValueGetter});if(!e.rowId)return null;let n=this.deps.rowModel.getRowById(e.rowId);return n?uS({rowNode:n,column:t,tooltipField:t.tooltipField,tooltipValueGetter:t.tooltipValueGetter,indexColumnOptions:this.deps.getIndexColumnOptions(),location:`cell`,anchorEl:e.anchorEl}):null}clearShowTimer(){this.showTimer!=null&&(clearTimeout(this.showTimer),this.showTimer=null)}},jS=class{activeComp=null;activeMountEl=null;mount(e,t,n){this.destroy(),e.replaceChildren();let r=n(t,e);if(r&&typeof r.getGui==`function`){let n=r.getGui();n!==e&&!e.contains(n)&&e.replaceChildren(n),r.init?.(t),this.activeComp=r,this.activeMountEl=e;return}this.activeMountEl=e}refresh(e){return this.activeComp?.refresh?.(e)??!1}destroy(){this.activeComp?.destroy?.(),this.activeMountEl?.replaceChildren(),this.activeComp=null,this.activeMountEl=null}};function MS(e){let{viewportPadding:t}=_x(e.anchorEl??null);if(e.mouseTrack&&e.pointer){let n=e.pointer.clientX+16,r=e.pointer.clientY+16;return n=Math.max(t,Math.min(n,window.innerWidth-e.popupWidth-t)),r=Math.max(t,Math.min(r,window.innerHeight-e.popupHeight-t)),{left:n,top:r}}let n=e.anchorRect,r=n.left+n.width/2-e.popupWidth/2,i=n.bottom+8;return i+e.popupHeight>window.innerHeight-t&&(i=n.top-e.popupHeight-8),r=Math.max(t,Math.min(r,window.innerWidth-e.popupWidth-t)),i=Math.max(t,Math.min(i,window.innerHeight-e.popupHeight-t)),{left:r,top:i}}var NS=`mg-tooltip__text`,PS=`mg-tooltip__content`,FS=class{popupEl=null;textEl=null;contentEl=null;componentHost=new jS;anchorEl=null;hideTimer=null;mouseTrackListener=null;interactionCleanup=null;visible=!1;mouseTrack=!1;interaction=!1;lastPointer=null;show(e){this.cancelHide(),this.anchorEl=e.anchorEl,this.mouseTrack=e.mouseTrack===!0,this.interaction=e.interaction===!0,this.lastPointer=e.pointer??null;let t=this.ensurePopup();t.classList.toggle(`${xc}--interactive`,this.interaction),this.syncThemeFromAnchor(e.anchorEl),e.tooltipComponent&&e.tooltipParams?(this.textEl.hidden=!0,this.contentEl.hidden=!1,this.componentHost.mount(this.contentEl,e.tooltipParams,e.tooltipComponent)):(this.componentHost.destroy(),this.textEl.hidden=!1,this.contentEl.hidden=!0,this.textEl.textContent=e.text??``),t.hidden=!1,this.visible=!0,this.updatePosition(),this.syncMouseTrackListener(),this.syncInteractionListeners(t)}hide(e=!0){e&&this.cancelHide(),this.detachMouseTrackListener(),this.detachInteractionListeners(),this.componentHost.destroy(),this.popupEl&&(this.popupEl.hidden=!0,this.popupEl.dataset.theme=``),this.visible=!1,this.anchorEl=null,this.lastPointer=null}scheduleHide(e){this.cancelHide(),this.hideTimer=setTimeout(()=>{this.hideTimer=null,this.hide(!0)},e)}cancelHide(){this.hideTimer!=null&&(clearTimeout(this.hideTimer),this.hideTimer=null)}isVisible(){return this.visible}getAnchorEl(){return this.anchorEl}getPopupEl(){return this.popupEl}updatePointer(e){!this.visible||!this.mouseTrack||(this.lastPointer=e,this.updatePosition())}refreshPosition(){this.visible&&this.updatePosition()}destroy(){this.cancelHide(),this.detachMouseTrackListener(),this.detachInteractionListeners(),this.componentHost.destroy(),this.popupEl?.remove(),this.popupEl=null,this.textEl=null,this.contentEl=null,this.anchorEl=null,this.visible=!1}ensurePopup(){if(this.popupEl)return this.popupEl;let e=document.createElement(`div`);e.className=xc,e.hidden=!0,e.setAttribute(`role`,`tooltip`);let t=document.createElement(`div`);t.className=NS;let n=document.createElement(`div`);return n.className=PS,n.hidden=!0,e.append(t,n),document.body.append(e),this.popupEl=e,this.textEl=t,this.contentEl=n,e}syncThemeFromAnchor(e){let t=(e.closest(`.magic-grid[data-theme], .mg-root[data-theme]`)??e.closest(`.magic-grid, .mg-root`))?.getAttribute(`data-theme`)??`light`;this.popupEl.dataset.theme=t}updatePosition(){if(!this.popupEl||!this.anchorEl)return;let e=this.anchorEl.getBoundingClientRect(),t=this.popupEl.getBoundingClientRect(),n=MS({anchorRect:e,popupWidth:Math.min(t.width||420,420),popupHeight:t.height||this.popupEl.offsetHeight,anchorEl:this.anchorEl,mouseTrack:this.mouseTrack,pointer:this.lastPointer??void 0});this.popupEl.style.left=`${n.left}px`,this.popupEl.style.top=`${n.top}px`,this.popupEl.style.maxWidth=`420px`}syncMouseTrackListener(){if(!this.mouseTrack){this.detachMouseTrackListener();return}this.mouseTrackListener||(this.mouseTrackListener=e=>{this.updatePointer({clientX:e.clientX,clientY:e.clientY})},document.addEventListener(`mousemove`,this.mouseTrackListener))}detachMouseTrackListener(){this.mouseTrackListener&&=(document.removeEventListener(`mousemove`,this.mouseTrackListener),null)}syncInteractionListeners(e){if(this.detachInteractionListeners(),!this.interaction)return;let t=()=>{this.cancelHide()},n=()=>{this.hide(!0)};e.addEventListener(`pointerenter`,t),e.addEventListener(`pointerleave`,n),this.interactionCleanup=()=>{e.removeEventListener(`pointerenter`,t),e.removeEventListener(`pointerleave`,n)}}detachInteractionListeners(){this.interactionCleanup?.(),this.interactionCleanup=null}},IS=class{activeComp=null;activeMountEl=null;mount(e,t,n){this.destroy(),e.replaceChildren();let r=n(t,e);if(r&&typeof r.getGui==`function`){let n=r.getGui();n!==e&&!e.contains(n)&&e.replaceChildren(n),r.init?.(t),this.activeComp=r,this.activeMountEl=e;return}this.activeMountEl=e}refresh(e){return this.activeComp?.refresh?.(e)??!1}destroy(){this.activeComp?.destroy?.(),this.activeMountEl?.replaceChildren(),this.activeComp=null,this.activeMountEl=null}};function LS(e){return e.overlayType===`loading`?{blockEvents:!0,masked:!0}:e.overlayInteraction?{blockEvents:!0,masked:!1}:{blockEvents:!1,masked:!1}}function RS(e,t,n){let{blockEvents:r,masked:i}=LS(n),a=`${Ic}--interactive`;e.classList.toggle(a,r&&!i),e.classList.toggle(Rc,i);let o=r?`auto`:`none`;e.style.pointerEvents=o,t.style.pointerEvents=o}function zS(){let e=document.createElement(`div`);e.className=Ic,e.hidden=!0,e.setAttribute(`aria-hidden`,`true`);let t=document.createElement(`div`);t.className=Lc;let n=document.createElement(`div`);return n.className=`mg-overlay__mount`,t.appendChild(n),e.appendChild(t),{overlayEl:e,wrapperEl:t,contentEl:n}}var BS=new Set([`span`,`div`,`p`,`svg`,`strong`,`em`,`b`,`i`]);function VS(e){let t=e.trim();if(!t)return``;if(!t.includes(`<`))return t;let n=new DOMParser().parseFromString(t,`text/html`),r=n.body.firstElementChild;if(!r||n.body.children.length!==1)return n.body.textContent?.trim()??t;let i=r.tagName.toLowerCase();return BS.has(i)?r.cloneNode(!0):r.textContent?.trim()??t}function HS(e){switch(e){case`loading`:return Bc;case`noRows`:return Vc;case`noMatchingRows`:return Hc;default:return e}}function US(e,t={}){let n=document.createElement(`div`);n.className=`${zc} ${HS(e)}`;let r=t.overlayText??Wc(e);if(t.template){let e=VS(t.template);return typeof e==`string`?n.textContent=e:n.appendChild(e),n}if(e===`loading`){let e=document.createElement(`span`);e.className=Uc,e.setAttribute(`aria-hidden`,`true`);let t=document.createElement(`span`);return t.className=`mg-overlay__text`,t.textContent=r,n.append(e,t),n}return n.textContent=r,n}var WS=class{deps;visibleType=null;componentHost=new IS;constructor(e){this.deps=e}sync(e,t){if(!e||!t){this.hide();return}if(this.visibleType===e){this.syncLayout(e),this.renderContent(e,t);return}this.visibleType=e,this.deps.overlayEl.hidden=!1,this.deps.overlayEl.setAttribute(`aria-hidden`,`false`),this.deps.overlayEl.dataset.overlayType=e,this.syncLayout(e),this.renderContent(e,t)}hide(){this.componentHost.destroy(),this.deps.contentEl.replaceChildren(),this.visibleType=null,this.deps.overlayEl.hidden=!0,this.deps.overlayEl.setAttribute(`aria-hidden`,`true`),delete this.deps.overlayEl.dataset.overlayType,this.syncLayout(null)}destroy(){this.hide()}getVisibleType(){return this.visibleType}syncLayout(e=this.visibleType){RS(this.deps.overlayEl,this.deps.wrapperEl,{overlayType:e,overlayInteraction:this.deps.getOverlayInteraction()})}renderContent(e,t){let n={overlayType:e,api:this.deps.getApi(),overlayText:Wc(e)};if(t.component){this.componentHost.mount(this.deps.contentEl,n,t.component);return}this.componentHost.destroy(),this.deps.contentEl.replaceChildren(US(e,{template:t.template,overlayText:n.overlayText}))}};function GS(e){return e.filter(e=>P(e.rowKind)===`BUSINESS`).length}function KS(e){let t=t=>qc(t,e.suppressOverlays);return e.userForcedNoRows&&!t(`noRows`)?`noRows`:e.loading===!0&&!t(`loading`)||e.loading===void 0&&!e.rowDataReady&&!t(`loading`)?`loading`:e.sourceRowCount===0&&!t(`noRows`)?(e.infiniteVirtualRowCount??0)>0?null:`noRows`:e.sourceRowCount>0&&e.displayDataRowCount===0&&e.isAnyFilterActive&&!t(`noMatchingRows`)?`noMatchingRows`:null}function qS(e,t){switch(e){case`loading`:return{overlayType:e,component:t.loadingOverlayComponent,componentParams:t.loadingOverlayComponentParams,template:t.overlayLoadingTemplate};case`noRows`:return{overlayType:e,component:t.noRowsOverlayComponent,componentParams:t.noRowsOverlayComponentParams,template:t.overlayNoRowsTemplate};case`noMatchingRows`:return{overlayType:e,component:t.noMatchingRowsOverlayComponent,componentParams:t.noMatchingRowsOverlayComponentParams,template:t.overlayNoMatchingRowsTemplate};default:return e}}function JS(e,t){let n=qS(e,t);return n.component?n:t.overlayComponent?{overlayType:e,component:t.overlayComponent,componentParams:t.overlayComponentParams}:n}var YS=class{deps;userForcedNoRows=!1;rowDataReady=!1;currentType=null;destroyed=!1;constructor(e){this.deps=e}markRowDataReady(){this.rowDataReady=!0}isRowDataReady(){return this.rowDataReady}isUserForcedNoRows(){return this.userForcedNoRows}getOverlayType(){return this.currentType}isOverlayShowing(){return this.currentType!=null}getOverlayPresentation(){return this.currentType?JS(this.currentType,this.deps.getResolvedOptions()):null}buildResolveInput(){let e=this.deps.getResolvedOptions();return{loading:e.loading,suppressOverlays:e.suppressOverlays,sourceRowCount:this.deps.getSourceRowCount(),displayDataRowCount:GS(this.deps.getDisplayRows()),isAnyFilterActive:this.deps.isAnyFilterActive(),rowDataReady:this.rowDataReady,userForcedNoRows:this.userForcedNoRows,infiniteVirtualRowCount:this.deps.getInfiniteVirtualRowCount?.()??0}}updateOverlay(){if(this.destroyed)return;let e=KS(this.buildResolveInput());this.setCurrentType(e)}showNoRowsOverlay(){this.destroyed||(this.userForcedNoRows=!0,this.updateOverlay())}hideOverlay(){if(this.destroyed)return!1;if(this.deps.getResolvedOptions().loading===!0)return this.deps.warn?.(`[MagicGrid] hideOverlay() ignored while loading=true`),!1;if(this.currentType===`noMatchingRows`)return this.deps.warn?.(`[MagicGrid] hideOverlay() does not hide noMatchingRows overlay; clear filters instead`),!1;let e=this.userForcedNoRows;return this.userForcedNoRows=!1,(e||this.currentType!=null)&&this.updateOverlay(),!0}destroy(){this.destroyed||(this.destroyed=!0,this.setCurrentType(null),this.userForcedNoRows=!1)}setCurrentType(e){if(this.currentType===e)return;let t=this.currentType;this.currentType=e,this.deps.onOverlayChanged?.(e,t)}};async function XS(n,r,i={}){let a=i.signal??new AbortController().signal,o=i.invalidEditValueMode??`block`;e.l(a);let s={...n.data},c=[];for(let e of r){let t=gn(e.rawValue,e.column,e.editorParams);if(sn(t))return{ok:!1,failedColId:e.column.colId,revert:o===`revert`};c.push({column:e.column,editorParams:e.editorParams,oldValue:e.oldValue,parsedValue:t})}let l=[];try{let e=await Promise.all(c.map(async e=>{let t=await Wf(e.column,e.editorParams,e.parsedValue,a);return{colId:e.column.colId,errors:t}}));for(let t of e)t.errors&&l.push({colId:t.colId,errors:t.errors})}catch(t){throw e.c(t),t}let u;if(l.length>0)if(o===`keep`)u={cellErrors:l};else{let e=l[0];return{ok:!1,failedColId:e.colId,errors:e.errors,cellErrors:l,revert:o===`revert`}}let d=new Map(c.map(e=>[e.column.colId,e.parsedValue]));try{let e=await Gf(i.rowValidator,{rowId:i.rowKey?t.T(n,i.rowKey):n.id,rowIndex:n.rowIndex,data:n.data,draftValues:d,signal:a});if(e){let t=Uf(c.map(e=>e.column.colId),e.colIds);if(o===`keep`)u={...u,rowErrors:e.errors,rowErrorColIds:t};else return{ok:!1,failedColId:t[0]??c[0]?.column.colId??``,rowErrors:e.errors,rowErrorColIds:t,revert:o===`revert`}}}catch(t){throw e.c(t),t}let f=[];try{for(let t of c){e.l(a);let{column:r,editorParams:i,oldValue:c,parsedValue:l}=t;if(c!==l){if(!await vn(r,i,l,a))return Object.assign(n.data,s),{ok:!1,failedColId:r.colId,revert:o===`revert`};f.push({colId:r.colId,oldValue:c,newValue:l})}}}catch(t){throw Object.assign(n.data,s),e.c(t),t}return u?{ok:!0,changes:f,validationWarnings:u}:{ok:!0,changes:f}}async function ZS(t,n,r,i,a){try{let e=await XS(n,r.map(e=>({column:e.column,editorParams:{...e.params,value:e.oldValue,data:n.data,stopEditing:(e=!0)=>t.stopEditing(!e),cancelCommit:()=>t.cancelCommit(),getEditPhase:()=>t.getEditSessionPhase()},rawValue:i.get(e.column.colId)??``,oldValue:e.oldValue})),{signal:a.signal,rowValidator:t.deps.rowValidator,invalidEditValueMode:t.getInvalidEditValueMode(),rowKey:t.deps.rowModel.getRowKey()});return e.ok?(e.changes.length>0&&await Qf(t.deps,async()=>{for(let i of e.changes){let e=r.find(e=>e.column.colId===i.colId)?.column;e&&ep(t.deps.recordRowDataChange,n,e,i.oldValue,i.newValue,`rowEdit`)}t.deps.applyTransaction({update:[n.data]});for(let r of e.changes)t.deps.eventBus.emit(`cellValueChanged`,{rowId:n.id,colId:r.colId,oldValue:r.oldValue,newValue:r.newValue,rowNode:n});let i=new Map(e.changes.map(e=>[e.colId,e]));for(let e of r){let r=i.get(e.column.colId);r&&await Zf(e.column,n,{oldValue:r.oldValue,newValue:r.newValue},t.deps,{source:`rowEdit`,signal:a.signal})}t.deps.syncPinnedRows()}),{ok:!0,cells:r.map(t=>{let n=e.changes.find(e=>e.colId===t.column.colId);return{colId:t.column.colId,committed:!0,oldValue:t.oldValue,newValue:n?.newValue??t.oldValue}}),validationWarnings:e.validationWarnings}):e}catch(t){if(e.c(t))return{ok:`aborted`};throw t}}async function QS(t,n,r,i,a,o){if(!r.prop)return{ok:!0};try{let e=gn(i,r,a);if(sn(e))return{ok:!1};let s=a.value,c=await Wf(r,a,e,o.signal),l=t.getInvalidEditValueMode();return c&&l!==`keep`?{ok:!1,errors:c,revert:l===`revert`}:s===e?c?{ok:!0,newValue:e,validationErrors:c}:{ok:!0,newValue:e}:await vn(r,a,e,o.signal)?(await Qf(t.deps,async()=>{ep(t.deps.recordRowDataChange,n,r,s,e,`cellEdit`),t.deps.applyTransaction({update:[n.data]}),t.deps.eventBus.emit(`cellValueChanged`,{rowId:n.id,colId:r.colId,oldValue:s,newValue:e,rowNode:n}),await Zf(r,n,{oldValue:s,newValue:e},t.deps,{source:`cellEdit`,signal:o.signal}),t.deps.syncPinnedRows()}),c?{ok:!0,newValue:e,validationErrors:c}:{ok:!0,newValue:e}):{ok:!1}}catch(t){if(e.c(t))return{ok:`aborted`};throw t}}function $S(e,t,n){for(let{colId:r,errors:i}of Hf(t,n)){let t=e.find(e=>e.colId===r);t?t.errors=[...new Set([...t.errors,...i])]:e.push({colId:r,errors:[...i]})}}async function eC(e,n,r={}){let i=r.signal??new AbortController().signal,a=[];for(let t of n){if(!t.column.cellValidator)continue;let n=U(e,t.column),r=await Wf(t.column,t.editorParams,n,i);r&&a.push({colId:t.column.colId,errors:r})}if(r.rowValidator&&n.length>0){let o=new Map(n.map(t=>[t.column.colId,U(e,t.column)])),s=await Gf(r.rowValidator,{rowId:r.rowKey?t.T(e,r.rowKey):e.id,rowIndex:e.rowIndex,data:e.data,draftValues:o,signal:i});s&&$S(a,Uf(n.map(e=>e.column.colId),s.colIds),s.errors)}return a}async function tC(e,t={}){let n=t.signal??new AbortController().signal,r=t.showFeedback!==!1,i=iC(e.rowModel,t.rowIds),a=[],o=await Promise.all(i.map(async t=>({rowNode:t,invalidCells:await eC(t,aC(e,t),{rowValidator:e.rowValidator,signal:n,rowKey:e.rowModel.getRowKey()})}))),s=[];for(let{rowNode:e,invalidCells:t}of o){for(let n of t)a.push({rowId:e.id,rowIndex:e.rowIndex,colId:n.colId,errors:n.errors});s.push({rowId:e.id,cells:t})}return r&&(t.rowIds?e.validationFeedback.applyRowsValidationFeedback(e.mountEl,s):e.validationFeedback.applyGridValidationFeedback(e.mountEl,s)),{valid:a.length===0,cellErrors:a}}async function nC(e,n){let r=n.signal??new AbortController().signal,i=n.showFeedback!==!1,a=[];for(let{rowId:o,colId:s}of n.cells){let n=t.m(o),c=e.rowModel.getRowById(n),l=i?rC(e.mountEl,n):null;if(!c){i&&e.validationFeedback.clearRowCell(n,l,s);continue}let u=e.columnModel.getColumnById(s);if(!u||!H(u,c,e.getCellDisableContext?.())||!u.cellValidator){i&&e.validationFeedback.clearRowCell(n,l,s);continue}let d=await Wf(u,e.createEditorParams(c,u),U(c,u),r);d?(a.push({rowId:n,rowIndex:c.rowIndex,colId:s,errors:d}),i&&e.validationFeedback.setRowCellInvalid(n,l,{colId:s,errors:d})):i&&e.validationFeedback.clearRowCell(n,l,s)}return{valid:a.length===0,cellErrors:a}}function rC(e,t){return e.querySelector(`.mg-row[data-row-id="${t}"]`)}function iC(e,n){let r=t.g(n);if(r)return r.map(t=>e.getRowById(t)).filter(e=>e!=null);let i=[],a=e.getRowCount();for(let t=0;t<a;t++){let n=e.getRow(t);n&&i.push(n)}return i}function aC(e,t){let n=e.getCellDisableContext?.();return e.columnModel.getColumns().filter(e=>H(e,t,n)).map(n=>({column:n,editorParams:e.createEditorParams(t,n)}))}function oC(e,t){for(let[n,r]of t){let t=e.get(n);t||(t=new Set,e.set(n,t));for(let e of r)t.add(e)}}var sC=class{getCtx;isCommitIdle;awaitCommitIdle;pendingSeeds=new Map;flushScheduled=!1;flushing=!1;idleWaitScheduled=!1;constructor(e,t,n){this.getCtx=e,this.isCommitIdle=t,this.awaitCommitIdle=n}notifyEditSessionIdle(){if(this.pendingSeeds.size===0){this.idleWaitScheduled=!1;return}this.isCommitIdle()&&(this.idleWaitScheduled=!1,this.scheduleFlush())}enqueue(e){e.size!==0&&(oC(this.pendingSeeds,e),this.scheduleFlush())}scheduleFlush(){this.flushScheduled||this.flushing||(this.flushScheduled=!0,queueMicrotask(()=>{this.flushScheduled=!1,this.flush()}))}takePendingSnapshot(){let e=new Map;for(let[t,n]of this.pendingSeeds)e.set(t,[...n]);return this.pendingSeeds.clear(),e}restorePending(e){oC(this.pendingSeeds,e)}deferFlushUntilIdle(){this.idleWaitScheduled||this.pendingSeeds.size===0||(this.idleWaitScheduled=!0,window.setTimeout(()=>{if(!this.idleWaitScheduled||this.pendingSeeds.size===0){this.idleWaitScheduled=!1;return}if(this.getCtx().deps.isDestroyed()){this.pendingSeeds.clear(),this.idleWaitScheduled=!1;return}this.isCommitIdle()&&(this.idleWaitScheduled=!1,this.scheduleFlush())},0))}async flush(){if(!(this.flushing||this.pendingSeeds.size===0)){this.flushing=!0;try{let e=this.getCtx();if(e.deps.isDestroyed()){this.pendingSeeds.clear();return}if(this.isCommitIdle()||await this.awaitCommitIdle(),e.deps.isDestroyed()){this.pendingSeeds.clear();return}if(!this.isCommitIdle()){this.deferFlushUntilIdle();return}let t=this.takePendingSnapshot();if(t.size===0)return;for(let[n,r]of t){if(e.deps.isDestroyed()){this.restorePending(t);return}if(!this.isCommitIdle()){this.restorePending(t),this.deferFlushUntilIdle();return}await bC(e,n,[...r])}}finally{this.flushing=!1,this.pendingSeeds.size>0&&(this.isCommitIdle()?this.scheduleFlush():this.deferFlushUntilIdle())}}}};function cC(e){return e.invalidEditValueMode??`block`}function $(e){let t=e.mountEl.querySelector(`.mg-header-row`);t&&e.validationFeedback.syncHeaderDom(t,e.columnModel.getColumns())}function lC(e){e.deps.validationFeedback.syncDom(e.deps.mountEl),$(e.deps)}function uC(e,n){let r=n?.rowIds;if(r?.length){for(let n of r){let r=e.deps.mountEl.querySelector(`.mg-row[data-row-id="${n}"]`);e.deps.validationFeedback.clearRow(t.m(n),r)}$(e.deps);return}e.deps.validationFeedback.clear(e.deps.mountEl),$(e.deps)}function dC(e,t){uC(e,{rowIds:t.rowIds})}function fC(e,n){for(let{rowId:r,colId:i}of n.cells){let n=e.deps.mountEl.querySelector(`.mg-row[data-row-id="${r}"]`);e.deps.validationFeedback.clearRowCell(t.m(r),n,i)}$(e.deps)}async function pC(e,t){let n=await tC({mountEl:e.deps.mountEl,rowModel:e.deps.rowModel,columnModel:e.deps.columnModel,rowValidator:e.deps.rowValidator,validationFeedback:e.deps.validationFeedback,createEditorParams:(t,n)=>e.createCellEditorParams(t,n),getCellDisableContext:e.deps.getCellDisableContext},t);return e.deps.redrawImmediately(),lC(e),n}async function mC(e,t){return pC(e,{rowIds:t.rowIds,signal:t.signal,showFeedback:t.showFeedback})}async function hC(e,t){let n=await nC({mountEl:e.deps.mountEl,rowModel:e.deps.rowModel,columnModel:e.deps.columnModel,rowValidator:e.deps.rowValidator,validationFeedback:e.deps.validationFeedback,createEditorParams:(t,n)=>e.createCellEditorParams(t,n),getCellDisableContext:e.deps.getCellDisableContext},t);return e.deps.redrawImmediately(),lC(e),n}function gC(e,t){return e.columnModel.getColumns().filter(n=>H(n,t,e.getCellDisableContext())).map(e=>e.colId)}function _C(e,t,n){return e.rowValidator&&fn(e.editBehavior)?gC(e,t):n}function vC(e,t,n){yC(e,new Map([[t,n]]))}function yC(e,t){e.persistedValidationScheduler.enqueue(t)}async function bC(e,n,r){if(e.deps.isDestroyed()||e.isEditing())return;let i=e.deps.rowModel.getRowById(n);if(!i)return;let a=e.deps.mountEl.querySelector(`.mg-row[data-row-id="${n}"]`),o=_C(e.deps,i,r);if(o.length===0){e.deps.validationFeedback.clearRow(n,a),$(e.deps);return}let s=o.map(t=>{let n=e.deps.columnModel.getColumnById(t);return n?{column:n,editorParams:e.createCellEditorParams(i,n)}:null}).filter(e=>e!=null),c=[];try{c=await eC(i,s,{rowValidator:e.deps.rowValidator,rowKey:e.deps.rowModel.getRowKey()})}catch{return}if(fn(e.deps.editBehavior)){c.length>0?e.deps.validationFeedback.setRowInvalid(n,a,c):e.deps.validationFeedback.clearRow(t.m(n),a),$(e.deps);return}let l=new Set(o);for(let e of c)l.add(e.colId);for(let r of l){let i=c.find(e=>e.colId===r);i?e.deps.validationFeedback.setRowCellInvalid(n,a,i):e.deps.validationFeedback.clearRowCell(t.m(n),a,r)}$(e.deps)}function xC(e,t,n){e.eventBus.emit(`cellValidationFailed`,{rowId:t.rowId,colId:t.colId,rowIndex:t.rowIndex,errors:n,mode:`keep`})}function SC(e,t,n){let r=n.cellErrors?.[0]?.colId??t.colId;e.eventBus.emit(`rowValidationFailed`,{rowId:t.rowId,rowIndex:t.rowIndex,failedColId:r,cellErrors:n.cellErrors,rowErrors:n.rowErrors,mode:`keep`,rowNode:t.rowNode})}function CC(e,t,n,r){let i=e.getInvalidEditValueMode();e.deps.eventBus.emit(`cellValidationFailed`,{rowId:t.rowId,colId:t.colId,rowIndex:t.rowIndex,errors:n,mode:i}),r?(e.deps.validationFeedback.clearRow(t.rowId,t.rowElement),$(e.deps)):(e.deps.validationFeedback.showCellInvalid({rowId:t.rowId,rowElement:t.rowElement,colId:t.colId,errors:n,editorMountEl:e.deps.editingService.getEditorMountEl()}),$(e.deps))}function wC(e,t,n){let r=e.getInvalidEditValueMode();if(e.deps.eventBus.emit(`rowValidationFailed`,{rowId:t.rowId,rowIndex:t.rowIndex,failedColId:n.failedColId,cellErrors:n.cellErrors,rowErrors:n.rowErrors,mode:r,rowNode:t.rowNode}),n.revert)e.deps.validationFeedback.clearRow(t.rowId,t.rowElement),$(e.deps);else{let r=n.cellErrors&&n.cellErrors.length>0?n.cellErrors.map(t=>({colId:t.colId,errors:t.errors,editorMountEl:e.deps.rowEditingService.getEditorMountEl(t.colId)})):Hf(n.rowErrorColIds?.length?n.rowErrorColIds:[n.failedColId],n.rowErrors??n.errors??[`Validation failed`]).map(t=>({colId:t.colId,errors:t.errors,editorMountEl:e.deps.rowEditingService.getEditorMountEl(t.colId)}));e.deps.validationFeedback.showCellsInvalid({rowId:t.rowId,rowElement:t.rowElement,cells:r}),$(e.deps)}}function TC(e,t){let n=e.deps.rowModel.getRowById(t.rowId);for(let r of t.cells)e.deps.eventBus.emit(`cellEditingStopped`,{rowId:t.rowId,colId:r.colId,rowIndex:t.rowIndex,committed:r.committed,oldValue:r.oldValue,newValue:r.newValue,rowNode:n});let r=t.committed?t.cells.filter(e=>e.committed&&e.oldValue!==e.newValue).map(e=>({colId:e.colId,oldValue:e.oldValue,newValue:e.newValue})):void 0;if(e.deps.eventBus.emit(`rowEditingStopped`,{rowId:t.rowId,rowIndex:t.rowIndex,committed:t.committed,changes:r,rowNode:n}),t.committed&&r&&r.length>0&&n&&e.deps.eventBus.emit(`rowValueChanged`,{rowId:t.rowId,rowIndex:t.rowIndex,rowNode:n,changes:r}),e.deps.syncPinnedRows(),t.committed){let n=t.cells.filter(e=>e.committed&&e.oldValue!==e.newValue).map(e=>e.colId);n.length>0&&e.deps.refreshCells({rowIds:[t.rowId],colIds:n})}else e.deps.refreshCells({rowIds:[t.rowId],force:!0});e.deps.applyFocusVisuals(),queueMicrotask(()=>{!e.deps.isDestroyed()&&!e.isEditing()&&e.deps.viewportEl.focus({preventScroll:!0})}),vC(e.validationCtx(),t.rowId,t.cells.map(e=>e.colId)),e.validationCtx().persistedValidationScheduler.notifyEditSessionIdle()}function EC(e,t){let n=e.deps.rowModel.getRowById(t.rowId);e.deps.eventBus.emit(`cellEditingStopped`,{rowId:t.rowId,colId:t.colId,rowIndex:t.rowIndex,committed:t.committed,oldValue:t.oldValue,newValue:t.newValue,rowNode:n}),e.deps.syncPinnedRows(),t.committed?t.oldValue!==t.newValue&&e.deps.refreshCells({rowIds:[t.rowId],colIds:[t.colId]}):e.deps.refreshCells({rowIds:[t.rowId],colIds:[t.colId],force:!0}),e.deps.applyFocusVisuals(),queueMicrotask(()=>{!e.deps.isDestroyed()&&!e.isEditing()&&e.deps.viewportEl.focus({preventScroll:!0})}),vC(e.validationCtx(),t.rowId,[t.colId]),e.validationCtx().persistedValidationScheduler.notifyEditSessionIdle()}function DC(e,n){if(e.deps.isDestroyed())return;let r=e.deps.rowModel.getRow(n.rowIndex);if(!r)return;let i=e.deps.columnModel.getColumnById(n.colKey);if(!i||t.it(i.colId)||t.X(i.colId)||t.V(i)||!H(i,r,e.deps.getCellDisableContext()))return;let a=e.deps.getColIndex(i.colId);e.deps.cellFocusService.setFocusedCell({rowId:r.id,colId:i.colId,rowIndex:n.rowIndex,colIndex:a}),e.deps.applyFocusVisuals(),e.deps.ensureIndexVisible(n.rowIndex),e.deps.ensureColumnVisible(a),e.deps.redrawImmediately();let o=e.deps.mountEl.querySelector(`.mg-row[data-row-id="${r.id}"]`);o&&OC(e,{rowId:r.id,colId:i.colId,rowIndex:n.rowIndex,rowNode:r,rowElement:o})}function OC(e,t){if(fn(e.deps.editBehavior)){kC(e,t);return}AC(e,t)}function kC(e,n){if(e.deps.rowEditingService.isCommitting()){e.deps.rowEditingService.awaitCommitIdle().then(()=>{e.deps.rowEditingService.isCommitting()||kC(e,n)});return}if(e.deps.editingService.isEditing()){e.deps.editingService.stopEditing(!0).then(()=>{e.deps.editingService.isEditing()||kC(e,n)});return}if(e.deps.rowEditingService.isEditing()){if(e.deps.rowEditingService.getEditingRow()?.rowId===n.rowId)return;e.deps.rowEditingService.stopRowEditing(!0).then(t=>{t?.committed&&!e.deps.rowEditingService.isEditing()&&kC(e,n)});return}let r=e.deps.columnModel.getColumns().filter(r=>H(r,n.rowNode,e.deps.getCellDisableContext())&&!t.V(r)).map(t=>{let r=e.createCellEditorParams(n.rowNode,t),{stopEditing:i,setKeyboardPolicy:a,cancelCommit:o,getEditPhase:s,...c}=r;return{column:t,params:c,oldValue:r.value}});if(r.length===0)return;let i=e.validationCtx();if(e.deps.rowEditingService.startRowEditing({rowElement:n.rowElement,rowNode:n.rowNode,columns:r,focusColId:n.colId,onCommitRow:(t,i)=>ZS(e.commitCtx(),n.rowNode,r,t,i),onFocusColChange:t=>{let r=e.deps.getColIndex(t);e.deps.cellFocusService.setFocusedCell({rowId:n.rowId,colId:t,rowIndex:n.rowIndex,colIndex:r}),e.deps.applyFocusVisuals()},onRowEditingStopped:t=>{TC(e.lifecycleCtx(),t)},onCommitLifecycle:{onStarted:()=>{e.deps.eventBus.emit(`rowCommitStarted`,{rowId:n.rowId,rowIndex:n.rowIndex,editableColIds:r.map(e=>e.column.colId),rowNode:n.rowNode})},onFinished:t=>{e.deps.eventBus.emit(`rowCommitFinished`,{rowId:n.rowId,rowIndex:n.rowIndex,committed:t.ok===!0,aborted:t.ok===`aborted`,rowNode:n.rowNode}),t.ok===!1&&t.failedColId?wC(i,n,t):t.ok===!0&&t.validationWarnings&&SC(e.deps,n,t.validationWarnings)},onAborted:()=>{e.deps.eventBus.emit(`editCommitAborted`,{rowId:n.rowId,rowIndex:n.rowIndex})}}})){e.deps.eventBus.emit(`rowEditingStarted`,{rowId:n.rowId,rowIndex:n.rowIndex,editableColIds:r.map(e=>e.column.colId),rowNode:n.rowNode});for(let t of r)e.deps.eventBus.emit(`cellEditingStarted`,{rowId:n.rowId,colId:t.column.colId,rowIndex:n.rowIndex,value:t.oldValue,rowNode:n.rowNode});e.deps.applyFocusVisuals(),e.deps.syncPinnedRows()}}function AC(e,n){if(e.deps.rowEditingService.isCommitting())return;if(e.deps.editingService.isCommitting()){e.deps.editingService.awaitCommitIdle().then(()=>{e.deps.editingService.isCommitting()||AC(e,n)});return}if(e.deps.rowEditingService.isEditing()){e.deps.rowEditingService.stopRowEditing(!0).then(t=>{t?.committed&&!e.deps.rowEditingService.isEditing()&&AC(e,n)});return}let r=e.deps.columnModel.getColumnById(n.colId);if(!r||!H(r,n.rowNode,e.deps.getCellDisableContext())||t.V(r))return;let i=e.createCellEditorParams(n.rowNode,r),a=i.formattedValue,o=i.value,s=()=>{e.deps.validationFeedback.clearRowCell(n.rowId,n.rowElement??null,n.colId),$(e.deps)},c=e.validationCtx();e.deps.editingService.startEditing(n.rowElement,n.rowNode,r,a,o,{editorParams:i,onCommit:(t,a)=>QS(e.commitCtx(),n.rowNode,r,t,i,a),onCancel:()=>void 0,onEditingInput:s,onEditingStopped:t=>{EC(e.lifecycleCtx(),t)},onTab:t=>{e.deps.onTabChainEdit(t)},onCommitLifecycle:{onStarted:()=>{s(),e.deps.eventBus.emit(`cellCommitStarted`,{rowId:n.rowId,colId:n.colId,rowIndex:n.rowIndex})},onFinished:t=>{e.deps.eventBus.emit(`cellCommitFinished`,{rowId:n.rowId,colId:n.colId,rowIndex:n.rowIndex,committed:t.ok===!0,aborted:t.ok===`aborted`}),t.ok===!1&&t.errors?CC(c,n,t.errors,t.revert):t.ok===!0&&t.validationErrors?.length&&xC(e.deps,n,t.validationErrors)},onAborted:()=>{e.deps.eventBus.emit(`editCommitAborted`,{rowId:n.rowId,colId:n.colId,rowIndex:n.rowIndex})}}}),e.deps.eventBus.emit(`cellEditingStarted`,{rowId:n.rowId,colId:n.colId,rowIndex:n.rowIndex,value:o,rowNode:n.rowNode}),e.deps.applyFocusVisuals(),e.deps.syncPinnedRows()}var jC=class{deps;persistedValidationScheduler;constructor(e){this.deps=e,this.persistedValidationScheduler=new sC(()=>this.validationCtx(),()=>!this.isEditing()&&!this.isCommitting(),()=>this.awaitCommitIdle())}validate(e){return pC(this.validationCtx(),e)}validateRows(e){return mC(this.validationCtx(),e)}validateCells(e){return hC(this.validationCtx(),e)}clearValidation(e){uC(this.validationCtx(),e)}clearRowValidation(e){dC(this.validationCtx(),e)}clearCellValidation(e){fC(this.validationCtx(),e)}syncValidationDom(){lC(this.validationCtx())}syncValidationHeaderDom(){$(this.deps)}schedulePersistedValidationRefreshForRows(e){yC(this.validationCtx(),e)}startEditingCell(e){DC(this.startCtx(),e)}stopEditing(e=!1){return this.deps.rowEditingService.isEditing()?this.deps.rowEditingService.stopRowEditing(!e).then(e=>e?{committed:e.committed}:null):this.deps.editingService.isEditing()?this.deps.editingService.stopEditing(!e).then(e=>e?{committed:e.committed}:null):Promise.resolve(null)}async commit(e=!1){let t=await this.stopEditing(e);return t===null?!this.isEditing():e?!0:t.committed===!0}isCommitting(){return this.deps.editingService.isCommitting()||this.deps.rowEditingService.isCommitting()}awaitCommitIdle(){return Promise.all([this.deps.editingService.awaitCommitIdle(),this.deps.rowEditingService.awaitCommitIdle()]).then(()=>void 0)}cancelCommit(){if(this.deps.rowEditingService.isCommitting()){this.deps.rowEditingService.cancelCommit();return}this.deps.editingService.isEditing()&&this.deps.editingService.cancelCommit()}getEditSessionPhase(){return this.deps.rowEditingService.isEditing()?this.deps.rowEditingService.getEditSessionPhase():this.deps.editingService.getEditSessionPhase()}isEditing(){return this.deps.editingService.isEditing()||this.deps.rowEditingService.isEditing()}getEditingCell(){if(this.deps.rowEditingService.isEditing()){let e=this.deps.rowEditingService.getEditingRow(),t=this.deps.rowEditingService.getActiveColId();if(e&&t)return{rowId:e.rowId,colId:t};let n=this.deps.rowEditingService.getEditingCells()[0];return n?{rowId:n.rowId,colId:n.colId}:null}let e=this.deps.editingService.getEditingCell();return e?{rowId:e.rowId,colId:e.colId}:null}getEditingCells(){if(this.deps.rowEditingService.isEditing())return this.deps.rowEditingService.getEditingCells();let e=this.deps.editingService.getEditingCell();return e?[{rowId:e.rowId,rowIndex:e.rowIndex,colId:e.colId}]:[]}getEditingRowId(){return this.deps.rowEditingService.isEditing()?this.deps.rowEditingService.getEditingRow()?.rowId??null:this.deps.editingService.getEditingCell()?.rowId??null}focusRowEditingColumn(e){return this.deps.rowEditingService.focusEditingColumn(e)}cancelEditingForRemovedRows(e){let t=this.getEditingRowId();!t||!e.has(t)||this.stopEditing(!0)}registerCellEditor(e,t){this.deps.editorHost.register(e,t)}unregisterCellEditor(e){return this.deps.editorHost.unregister(e)}cancelEditingOnDestroy(){this.deps.editingService.cancelCommit(),this.deps.rowEditingService.cancelCommit(),this.deps.rowEditingService.isEditing()&&this.deps.rowEditingService.stopRowEditing(!1),this.deps.editingService.isEditing()&&this.deps.editingService.stopEditing(!1)}destroy(){this.deps.rowEditingService.destroy(),this.deps.editingService.destroy()}tryStartRowEditing(e){kC(this.startCtx(),e)}tryStartCellEditing(e){AC(this.startCtx(),e)}createCellEditorParams(e,t){return Ex(this.editorParamsCtx(),e,t)}validationCtx(){return{deps:this.deps,isEditing:()=>this.isEditing(),persistedValidationScheduler:this.persistedValidationScheduler,createCellEditorParams:(e,t)=>this.createCellEditorParams(e,t),getInvalidEditValueMode:()=>cC(this.deps)}}editorParamsCtx(){return{deps:this.deps,stopEditing:e=>this.stopEditing(e),cancelCommit:()=>this.cancelCommit(),getEditSessionPhase:()=>this.getEditSessionPhase()}}commitCtx(){return{deps:this.deps,stopEditing:e=>this.stopEditing(e),cancelCommit:()=>this.cancelCommit(),getEditSessionPhase:()=>this.getEditSessionPhase(),getInvalidEditValueMode:()=>cC(this.deps)}}lifecycleCtx(){return{deps:this.deps,isEditing:()=>this.isEditing(),validationCtx:()=>this.validationCtx()}}startCtx(){return{deps:this.deps,isEditing:()=>this.isEditing(),stopEditing:e=>this.stopEditing(e),cancelCommit:()=>this.cancelCommit(),getEditSessionPhase:()=>this.getEditSessionPhase(),editorParamsCtx:()=>this.editorParamsCtx(),commitCtx:()=>this.commitCtx(),validationCtx:()=>this.validationCtx(),lifecycleCtx:()=>this.lifecycleCtx(),createCellEditorParams:(e,t)=>this.createCellEditorParams(e,t)}}},MC=`mg-column-drag-ghost`,NC=`mg-column-drag-ghost__icon`,PC=`mg-column-drag-ghost__label`,FC=`mg-column-drop-indicator`,IC=class{ghostEl=null;indicatorEl=null;movingColId=null;lastMovingChangedAt=-1/0;isColumnMoving(e){return this.movingColId?!e||this.movingColId===e:!1}shouldSuppressSortClick(){return this.movingColId?!0:performance.now()-this.lastMovingChangedAt<50}setColumnMoving(e){this.movingColId=e,this.lastMovingChangedAt=performance.now()}startGhost(e){this.removeGhost();let t=document.createElement(`div`);t.className=MC,t.style.width=`${e.width}px`,t.style.height=`${e.height}px`,t.style.left=`${e.left}px`,t.style.top=`${e.top}px`;let n=document.createElement(`span`);n.className=NC,n.setAttribute(`aria-hidden`,`true`),n.append(hm());let r=document.createElement(`span`);r.className=PC,r.textContent=e.label,t.append(n,r),(e.mountEl??document.body).appendChild(t),this.ghostEl=t}moveGhost(e,t){this.ghostEl&&(this.ghostEl.style.left=`${e}px`,this.ghostEl.style.top=`${t}px`)}showDropIndicator(e,t,n){if(!this.indicatorEl){let e=document.createElement(`div`);e.className=FC,document.body.appendChild(e),this.indicatorEl=e}this.indicatorEl.style.left=`${e}px`,this.indicatorEl.style.top=`${t}px`,this.indicatorEl.style.height=`${n}px`,this.indicatorEl.style.display=`block`}hideDropIndicator(){this.indicatorEl&&(this.indicatorEl.style.display=`none`)}setSourceHeaderDragging(e,t){e&&e.classList.toggle(`mg-header-cell--dragging`,t)}setHeaderViewportDragging(e,t){e&&e.classList.toggle(`mg-header-viewport--column-dragging`,t)}cleanup(e,t){this.setSourceHeaderDragging(e,!1),this.setHeaderViewportDragging(t,!1),this.removeGhost(),this.removeIndicator(),this.setColumnMoving(null)}destroy(){this.removeGhost(),this.removeIndicator(),this.movingColId=null}removeGhost(){this.ghostEl?.remove(),this.ghostEl=null}removeIndicator(){this.indicatorEl?.remove(),this.indicatorEl=null}};function LC(e,t){return[{colId:e,sort:`asc`}]}function RC(e,t){return[{colId:e,sort:`desc`}]}function zC(e,t){return Xi(t.filter(t=>t.colId!==e))}function BC(e,t){return t.find(t=>t.colId===e)?.sort??null}function VC(e,t){return BC(e,t)!==null}var HC=[{value:`contains`,label:`包含`},{value:`notContains`,label:`不包含`},{value:`equals`,label:`等于`},{value:`notEqual`,label:`不等于`},{value:`startsWith`,label:`开头是`},{value:`endsWith`,label:`结尾是`},{value:`blank`,label:`空白`},{value:`notBlank`,label:`非空白`}],UC=[{value:`equals`,label:`等于`},{value:`notEqual`,label:`不等于`},{value:`lessThan`,label:`小于`},{value:`lessThanOrEqual`,label:`小于等于`},{value:`greaterThan`,label:`大于`},{value:`greaterThanOrEqual`,label:`大于等于`},{value:`blank`,label:`空白`},{value:`notBlank`,label:`非空白`}],WC=[{value:`equals`,label:`等于`},{value:`notEqual`,label:`不等于`},{value:`lessThan`,label:`早于`},{value:`greaterThan`,label:`晚于`},{value:`inRange`,label:`范围内`},{value:`blank`,label:`空白`},{value:`notBlank`,label:`非空白`}];function GC(e){switch(e){case`number`:return UC;case`date`:return WC;default:return HC}}function KC(e){switch(e){case`number`:return`equals`;case`date`:return`equals`;default:return`contains`}}function qC(e){return{type:KC(e),value:``,valueTo:``}}function JC(e){return!ri(e)}function YC(e){return e===`inRange`}function XC(e){return e===`number`?`number`:`text`}function ZC(e,t){return`过滤条件`}function QC(e){return`过滤条件`}function $C(e,t){return GC(t).some(t=>t.value===e)}function ew(e,t){let n=Zr(e);return n===void 0?{setAllSelected:!0,selectedValues:[...t]}:n.length===0?{setAllSelected:!1,selectedValues:[]}:t.length>0&&n.length===t.length&&t.every(e=>n.includes(e))?{setAllSelected:!0,selectedValues:[...t]}:{setAllSelected:!1,selectedValues:n}}function tw(e,t,n){if(ri(e))return{type:e};if(e===`inRange`){let r=t.trim(),i=n?.trim()??``;return r===``||i===``?null:{type:e,filter:r,filterTo:i}}let r=t.trim();return r===``?null:{type:e,filter:r}}function nw(e,t){return e?null:{setValues:t.filter(e=>e!==``)}}function rw(e,t,n){let r=Yr(e).map(e=>({type:$C(e.type,t)?e.type:n,value:e.filter??``,valueTo:e.filterTo??``}));return r.length>0?r:[qC(t)]}function iw(e,t,n){let r=t.map(e=>tw(e.type,e.value,e.valueTo)).filter(e=>e!==null);if(r.length===0)return null;if(r.length===1){let e=r[0];return{type:e.type,...e.filter===void 0?{}:{filter:e.filter},...e.filterTo===void 0?{}:{filterTo:e.filterTo}}}return{type:r[0]?.type??n,operator:e,conditions:r.map(e=>({type:e.type,...e.filter===void 0?{}:{filter:e.filter},...e.filterTo===void 0?{}:{filterTo:e.filterTo}}))}}function aw(e,t,n=`text`,r=[]){let i=t[e],a=KC(n),o=ew(void 0,r),s={operatorLogic:`AND`,operatorConditions:[qC(n)]};if(!i)return{customPredicate:!1,...s,...o};if(_r(i))return{customPredicate:!0,...s,...o};let c=ew(i,r);return{customPredicate:!1,operatorLogic:Xr(i),operatorConditions:rw(i,n,a),...c}}function ow(e,t,n,r,i){let a=iw(e,t,i),o=nw(n,r);return!a&&!o?null:{...a,type:a?.type??i,...o??{}}}function sw(e,t,n,r){let i={...n},a=KC(r),o=ow(t.operatorLogic,t.operatorConditions,t.setAllSelected,t.selectedValues,a);return o&&(Qr(o)||$r(o))?i[e]=o:delete i[e],i}function cw(e,t,n,r,i,a,o=!0,s=[]){return sw(e,{operatorLogic:`AND`,operatorConditions:[{type:t,value:n,valueTo:a??``}],setAllSelected:o,selectedValues:s},r,i)}function lw(e,t){if(!(e in t))return t;let n={...t};return delete n[e],n}function uw(e){return ri(e.type)?!1:e.type===`inRange`?e.value.trim()!==``||e.valueTo.trim()!==``:e.value.trim()!==``}function dw(e){let t=e[0];return t?uw(t):!1}function fw(e){let{columnFilterType:t,abortSignal:n,onInput:r,onStopPropagation:i}=e,a=GC(t),o=`mg-filter-logic-${Math.random().toString(36).slice(2)}`,s=document.createElement(`div`);s.className=`mg-column-handle-menu__filter-operator-panel`;let c=document.createElement(`fieldset`);c.className=`mg-column-handle-menu__filter-operator-logic`,c.setAttribute(`aria-label`,`条件组合方式`),c.hidden=!0;let l=document.createElement(`label`);l.className=`mg-column-handle-menu__filter-operator-logic-option`;let u=document.createElement(`input`);u.type=`radio`,u.name=o,u.value=`AND`,u.checked=!0,l.append(u,document.createTextNode(`并且`));let d=document.createElement(`label`);d.className=`mg-column-handle-menu__filter-operator-logic-option`;let f=document.createElement(`input`);f.type=`radio`,f.name=o,f.value=`OR`,d.append(f,document.createTextNode(`或者`)),c.append(l,d);let p=null,m=null,h=`AND`,g=null,_=e=>({type:e.typeSelect.value,value:e.input.value,valueTo:e.inputTo.value}),v=()=>f.checked?`OR`:`AND`,y=e=>{u.checked=e!==`OR`,f.checked=e===`OR`},b=e=>{let n=e.typeSelect.value;e.input.type=XC(t),e.input.placeholder=ZC(t,n),e.input.hidden=!JC(n),e.inputTo.type=XC(t),e.inputTo.placeholder=QC(t),e.inputTo.hidden=!YC(n)},x=()=>{let e=p?uw(_(p)):!1;c.hidden=!e,e&&!m&&p&&(m=C(g??qC(t),!0),m.rowEl.hidden=!1,s.append(m.rowEl)),m&&(m.rowEl.hidden=!e),!e&&m&&(uw(_(m))&&(g=_(m)),m.rowEl.remove(),m=null,c.hidden=!0)},S=()=>{x(),r()},C=(e,t=!1)=>{let r=document.createElement(`div`);r.className=`mg-column-handle-menu__filter-condition-row`,t&&r.classList.add(`mg-column-handle-menu__filter-condition-row--secondary`);let o=document.createElement(`select`);o.className=`mg-column-handle-menu__filter-type`,o.setAttribute(`aria-label`,t?`第二个筛选算子`:`筛选算子`);for(let e of a){let t=document.createElement(`option`);t.value=e.value,t.textContent=e.label,o.append(t)}o.value=e.type;let s=document.createElement(`input`);s.className=`mg-column-handle-menu__filter-input`,s.setAttribute(`aria-label`,t?`第二个筛选值`:`筛选值`),s.value=e.value;let c=document.createElement(`input`);c.className=`mg-column-handle-menu__filter-input-to`,c.setAttribute(`aria-label`,t?`第二个筛选结束值`:`筛选结束值`),c.value=e.valueTo,r.append(o,s,c);let l={rowEl:r,typeSelect:o,input:s,inputTo:c};b(l);let u=e=>{i?.(e)};o.addEventListener(`change`,()=>{b(l),S()},{signal:n}),s.addEventListener(`input`,S,{signal:n}),c.addEventListener(`input`,S,{signal:n});for(let e of[o,s,c])e.addEventListener(`mousedown`,u,{signal:n}),e.addEventListener(`click`,u,{signal:n});return l},w=e=>{s.replaceChildren();let n=e.operatorConditions.length>0?e.operatorConditions:[qC(t)];h=e.operatorLogic,g=n[1]??null,y(h),p=C(n[0]??qC(t)),m=null,s.append(p.rowEl,c),dw(n)?(m=C(n[1]??g??qC(t),!0),s.append(m.rowEl),c.hidden=!1):c.hidden=!0};w(e.initialState);for(let e of[u,f])e.addEventListener(`change`,()=>{h=v(),r()},{signal:n}),e.addEventListener(`mousedown`,e=>i?.(e),{signal:n}),e.addEventListener(`click`,e=>i?.(e),{signal:n});return c.addEventListener(`mousedown`,e=>i?.(e),{signal:n}),c.addEventListener(`click`,e=>i?.(e),{signal:n}),{element:s,readState:()=>{let e=p?[_(p)]:[];return p&&!c.hidden&&m&&e.push(_(m)),{operatorLogic:v(),operatorConditions:e}},syncState:e=>{w(e)}}}function pw(e,t){let n=t.trim().toLowerCase();return n===``?[...e]:e.filter(e=>e.label.toLowerCase().includes(n)||e.key.toLowerCase().includes(n))}var mw=class{allKeys;setAllSelected;selectedKeys;constructor(e,t){this.allKeys=e,this.setAllSelected=t.setAllSelected,this.selectedKeys=new Set(t.setAllSelected?[]:t.selectedValues)}isChecked(e){return this.setAllSelected||this.selectedKeys.has(e)}setSelectAll(e){this.setAllSelected=e,this.selectedKeys.clear()}toggleKey(e,t){this.setAllSelected&&(this.setAllSelected=!1,this.selectedKeys=new Set(this.allKeys)),t?this.selectedKeys.add(e):this.selectedKeys.delete(e),this.selectedKeys.size===this.allKeys.length&&(this.setAllSelected=!0,this.selectedKeys.clear())}getSelectAllState(){return this.getSelectAllStateForKeys(this.allKeys)}getSelectAllStateForKeys(e){if(e.length===0)return{checked:!1,indeterminate:!1};let t=e.filter(e=>this.isChecked(e)).length;return t===0?{checked:!1,indeterminate:!1}:t===e.length?{checked:!0,indeterminate:!1}:{checked:!1,indeterminate:!0}}setKeysChecked(e,t){for(let n of e)this.setKeyChecked(n,t)}setKeyChecked(e,t){this.isChecked(e)!==t&&(this.setAllSelected&&(this.setAllSelected=!1,this.selectedKeys=new Set(this.allKeys)),t?this.selectedKeys.add(e):this.selectedKeys.delete(e),this.selectedKeys.size===this.allKeys.length&&(this.setAllSelected=!0,this.selectedKeys.clear()))}snapshot(){return this.setAllSelected?{setAllSelected:!0,selectedValues:[...this.allKeys]}:{setAllSelected:!1,selectedValues:[...this.selectedKeys]}}applySnapshot(e){this.setAllSelected=e.setAllSelected,this.selectedKeys=new Set(e.setAllSelected?[]:e.selectedValues)}};function hw(e,t,n,r){if(t===`reserve`||!r)return e;if(n.length===0)return null;let i=new Set(n);if(e.setAllSelected)return{setAllSelected:!1,selectedValues:[...n]};let a=e.selectedValues.filter(e=>i.has(e));return a.length===0?{setAllSelected:!1,selectedValues:[]}:{setAllSelected:!1,selectedValues:a}}var gw=/^(\d{4})-(\d{2})-(\d{2})$/;function _w(e){let t=gw.exec(e),n=t?Number(t[3]):0;return{id:`d:${e}`,type:`day`,label:`${n}日`,key:e,children:[],leafKeys:[e]}}function vw(e,t){return e.id.localeCompare(t.id,void 0,{numeric:!0})}function yw(e,t){return(e.key??``).localeCompare(t.key??``,void 0,{numeric:!0})}function bw(e){let t=[],n=e.find(e=>e.blank);n&&t.push({id:`blank`,type:`blank`,label:n.label,key:n.key,children:[],leafKeys:[n.key]});let r=new Map;for(let t of e){if(t.blank)continue;let e=gw.exec(t.key);if(!e)continue;let n=Number(e[1]),i=Number(e[2]),a=r.get(n)??new Map,o=a.get(i)??[];o.push(_w(t.key)),a.set(i,o),r.set(n,a)}let i=[...r.keys()].sort((e,t)=>t-e);for(let e of i){let n=r.get(e),i=[];for(let t of[...n.keys()].sort((e,t)=>e-t)){let r=n.get(t).sort(yw);i.push({id:`y:${e}:m:${t}`,type:`month`,label:`${t}月`,children:r,leafKeys:r.map(e=>e.key)})}i.sort(vw),t.push({id:`y:${e}`,type:`year`,label:String(e),children:i,leafKeys:i.flatMap(e=>e.leafKeys)})}return t}function xw(e){let t=new Set;for(let n of e)n.type===`year`&&t.add(n.id);return t}function Sw(e,t){let n=[],r=(e,i)=>{for(let a of e){let e=a.children.length>0,o=e&&t.has(a.id);n.push({node:a,depth:i,hasChildren:e,expanded:o}),o&&r(a.children,i+1)}};return r(e,0),n}function Cw(e,t){let n=[];for(let r of e){let e=r.label.toLowerCase().includes(t)||(r.key?.toLowerCase().includes(t)??!1),i=r.children.length>0?Cw(r.children,t):[];if(!e&&i.length===0)continue;let a=i.length>0?i:e?[...r.children]:[];n.push({...r,children:a,leafKeys:a.length>0?a.flatMap(e=>e.leafKeys):r.leafKeys})}return n}function ww(e){let t=new Set,n=e=>{for(let r of e)r.children.length>0&&(t.add(r.id),n(r.children))};return n(e),t}function Tw(e,t,n){let r=t.trim().toLowerCase(),i=bw(e);if(r===``){let e=Sw(i,n);return{roots:i,expandedIds:new Set(n),rows:e,leafKeys:i.flatMap(e=>e.leafKeys)}}let a=Cw(i,r),o=ww(a);return{roots:a,expandedIds:o,rows:Sw(a,o),leafKeys:a.flatMap(e=>e.leafKeys)}}function Ew(e,t){return Tw(e,t,new Set).leafKeys}function Dw(e,t){for(let n of e){if(n.id===t)return n;let e=Dw(n.children,t);if(e)return e}}var Ow=4;function kw(e,t,n,r=28,i=Ow){if(n<=0)return{start:0,end:0};let a=Math.ceil(t/r),o=Math.max(0,n-a-i),s=Math.min(o,Math.max(0,Math.floor(e/r)-i));return{start:s,end:Math.min(n,s+a+i*2)}}var Aw=class{options;element;spacerEl;windowEl;emptyEl;rowEls=new Map;filteredOptions;constructor(e){this.options=e,this.filteredOptions=e.options,this.element=document.createElement(`div`),this.element.className=`mg-column-handle-menu__filter-set-list`,this.spacerEl=document.createElement(`div`),this.spacerEl.className=`mg-column-handle-menu__filter-set-list-spacer`,this.windowEl=document.createElement(`div`),this.windowEl.className=`mg-column-handle-menu__filter-set-list-window`,this.emptyEl=document.createElement(`div`),this.emptyEl.className=`mg-column-handle-menu__filter-set-empty`,this.emptyEl.hidden=!0,this.spacerEl.append(this.windowEl),this.element.append(this.spacerEl,this.emptyEl),this.element.addEventListener(`scroll`,()=>this.render(),{signal:e.abortSignal}),this.element.addEventListener(`change`,e=>{let t=e.target;!(t instanceof HTMLInputElement)||t.type!==`checkbox`||t.closest(`.mg-column-handle-menu__filter-set-option`)&&(this.options.selection.toggleKey(t.value,t.checked),this.options.onSelectionChange(),this.render())},{signal:e.abortSignal}),this.render()}setOptions(e){this.filteredOptions=e,this.scrollToTop(),this.render()}scrollToTop(){this.element.scrollTop=0}refresh(){this.render()}getVisibleRange(){return kw(this.element.scrollTop,this.element.clientHeight||160,this.filteredOptions.length)}render(){let{selection:e}=this.options,t=this.filteredOptions.length;if(this.spacerEl.hidden=t===0,this.spacerEl.style.height=`${t*28}px`,t===0){this.emptyEl.textContent=this.options.emptySearchLabel??`暂无可选值`,this.emptyEl.hidden=!1,this.clearRows();return}this.emptyEl.hidden=!0;let{start:n,end:r}=this.getVisibleRange();this.windowEl.style.transform=`translateY(${n*28}px)`;for(let[e,t]of this.rowEls)(e<n||e>=r)&&(t.remove(),this.rowEls.delete(e));for(let t=n;t<r;t+=1){let n=this.filteredOptions[t];if(!n)continue;let r=this.rowEls.get(t);r?this.updateRow(r,n,e.isChecked(n.key)):(r=this.createRow(n),this.rowEls.set(t,r)),this.windowEl.append(r)}}clearRows(){for(let e of this.rowEls.values())e.remove();this.rowEls.clear()}createRow(e){let t=document.createElement(`label`);t.className=`mg-column-handle-menu__filter-set-option`;let n=document.createElement(`input`);n.type=`checkbox`,n.value=e.key,n.checked=this.options.selection.isChecked(e.key);let r=document.createElement(`span`);return r.textContent=e.label,t.append(n,r),t}updateRow(e,t,n){let r=e.querySelector(`input`),i=e.querySelector(`span`);r instanceof HTMLInputElement&&(r.value=t.key,r.checked=n),i&&(i.textContent=t.label)}},jw=class{viewOptions;element;scrollEl;spacerEl;windowEl;emptyEl;rowEls=new Map;expandedIds;rows=[];searchQuery=``;constructor(e){this.viewOptions=e,this.searchQuery=e.searchQuery??``,this.expandedIds=xw(Tw(e.options,``,new Set).roots),this.element=document.createElement(`div`),this.element.className=`mg-column-handle-menu__filter-set-tree`,this.scrollEl=document.createElement(`div`),this.scrollEl.className=`mg-column-handle-menu__filter-set-list`,this.spacerEl=document.createElement(`div`),this.spacerEl.className=`mg-column-handle-menu__filter-set-list-spacer`,this.windowEl=document.createElement(`div`),this.windowEl.className=`mg-column-handle-menu__filter-set-list-window`,this.emptyEl=document.createElement(`div`),this.emptyEl.className=`mg-column-handle-menu__filter-set-empty`,this.emptyEl.hidden=!0,this.spacerEl.append(this.windowEl),this.scrollEl.append(this.spacerEl,this.emptyEl),this.element.append(this.scrollEl),this.scrollEl.addEventListener(`scroll`,()=>this.renderRows(),{signal:e.abortSignal}),this.scrollEl.addEventListener(`click`,e=>this.handleClick(e),{signal:e.abortSignal}),this.scrollEl.addEventListener(`change`,e=>this.handleChange(e),{signal:e.abortSignal}),this.syncViewState()}setSearchQuery(e){this.searchQuery=e,this.scrollEl.scrollTop=0,this.syncViewState()}refresh(){this.renderRows()}getVisibleLeafKeys(){return Tw(this.viewOptions.options,this.searchQuery,this.expandedIds).leafKeys}syncViewState(){let e=Tw(this.viewOptions.options,this.searchQuery,this.expandedIds);this.searchQuery.trim()!==``&&(this.expandedIds=e.expandedIds),this.rows=e.rows,this.renderRows()}renderRows(){let e=this.rows.length;if(this.spacerEl.hidden=e===0,this.spacerEl.style.height=`${e*28}px`,e===0){this.emptyEl.textContent=this.viewOptions.emptySearchLabel??`暂无可选值`,this.emptyEl.hidden=!1,this.clearRows();return}this.emptyEl.hidden=!0;let{start:t,end:n}=kw(this.scrollEl.scrollTop,this.scrollEl.clientHeight||160,e);this.windowEl.style.transform=`translateY(${t*28}px)`;for(let[e,r]of this.rowEls)(e<t||e>=n)&&(r.remove(),this.rowEls.delete(e));for(let e=t;e<n;e+=1){let t=this.rows[e];if(!t)continue;let n=this.rowEls.get(e);n?this.updateRowElement(n,t):(n=this.createRowElement(t),this.rowEls.set(e,n)),this.windowEl.append(n)}}clearRows(){for(let e of this.rowEls.values())e.remove();this.rowEls.clear()}createRowElement(e){let t=document.createElement(`div`);return t.className=`mg-column-handle-menu__filter-set-tree-row`,t.style.height=`28px`,t.dataset.nodeId=e.node.id,this.populateRowElement(t,e),t}updateRowElement(e,t){e.dataset.nodeId=t.node.id,this.populateRowElement(e,t)}populateRowElement(e,t){if(e.replaceChildren(),e.style.paddingLeft=`${8+t.depth*16}px`,t.hasChildren){let n=document.createElement(`button`);n.type=`button`,n.className=`mg-column-handle-menu__filter-set-tree-toggle`,n.dataset.action=`toggle`,n.dataset.nodeId=t.node.id,n.setAttribute(`aria-label`,t.expanded?`收起`:`展开`),n.textContent=t.expanded?`−`:`+`,e.append(n)}else{let t=document.createElement(`span`);t.className=`mg-column-handle-menu__filter-set-tree-toggle-spacer`,e.append(t)}let n=document.createElement(`label`);n.className=`mg-column-handle-menu__filter-set-tree-option`;let r=document.createElement(`input`);r.type=`checkbox`,r.dataset.nodeId=t.node.id,r.checked=this.isNodeChecked(t.node);let i=document.createElement(`span`);i.textContent=t.node.label,n.append(r,i),e.append(n),this.applyNodeCheckboxState(r,t.node)}isNodeChecked(e){return this.viewOptions.selection.getSelectAllStateForKeys(e.leafKeys).checked}applyNodeCheckboxState(e,t){let n=this.viewOptions.selection.getSelectAllStateForKeys(t.leafKeys);e.checked=n.checked,e.indeterminate=n.indeterminate}handleClick(e){let t=e.target;if(!(t instanceof Element))return;let n=t.closest(`[data-action="toggle"]`);if(!n?.dataset.nodeId)return;e.preventDefault(),e.stopPropagation();let r=n.dataset.nodeId;this.expandedIds.has(r)?this.expandedIds.delete(r):this.expandedIds.add(r),this.syncViewState()}handleChange(e){let t=e.target;if(!(t instanceof HTMLInputElement)||t.type!==`checkbox`)return;let n=t.dataset.nodeId;if(!n)return;let r=Dw(Tw(this.viewOptions.options,this.searchQuery,this.expandedIds).roots,n);r&&(this.viewOptions.selection.setKeysChecked(r.leafKeys,t.checked),this.viewOptions.onSelectionChange(),this.renderRows())}},Mw=new WeakMap,Nw=new WeakMap;function Pw(e,t){let n=Mw.get(e);n&&(n.selection.applySnapshot(t),n.searchInput&&(n.searchInput.value=``),n.mountOptionsView(),n.dateTreeView?.setSearchQuery(``),n.syncSelectAllUi(),n.virtualList?.refresh(),n.dateTreeView?.refresh())}function Fw(e){let t=document.createElement(`div`);return t.className=`mg-column-handle-menu__filter-group-heading`,t.textContent=e,t}function Iw(e,t){let n=document.createElement(`button`);return n.type=`button`,n.className=`mg-column-handle-menu__filter-reset`,n.textContent=`重置`,e?(n.addEventListener(`click`,t=>{t.preventDefault(),t.stopPropagation(),e()},{signal:t}),n):(n.dataset.action=`filter-clear`,n.setAttribute(`role`,`menuitem`),n)}function Lw(e){let{colId:t,filterModel:n,columnFilterType:r,distinctFilterValues:i,filterSetValueMode:a,filterSetDateLayoutMode:o,onFilterInput:s,onFilterClear:c,abortSignal:l}=e,u=i.map(e=>e.key),d=aw(t,n,r,u);if(d.customPredicate){let e=document.createElement(`div`);return e.className=`mg-column-handle-menu__filter-notice`,e.textContent=`该列使用自定义筛选,请在 API 中管理`,{root:e,panelRoot:null,customPredicate:!0,syncState:()=>{}}}let f=document.createElement(`div`);f.className=Hi;let p=document.createElement(`div`);p.className=`mg-column-handle-menu__filter-group`,p.append(Fw(`过滤器`));let m=e=>{e.stopPropagation()},h=document.createElement(`div`);h.className=`mg-column-handle-menu__filter-set-panel`,h.setAttribute(`role`,`group`),h.setAttribute(`aria-label`,`值选择`),h.append(Fw(`值选择`));let g=document.createElement(`input`);g.className=`mg-column-handle-menu__filter-set-search`,g.type=`search`,g.placeholder=`搜索列值`,g.setAttribute(`aria-label`,`搜索列值`),h.append(g);let _=r===`date`,v=new mw(u,{setAllSelected:d.setAllSelected,selectedValues:d.selectedValues}),y=()=>pw(i,g.value),b=()=>o,x=()=>_&&b()===`tree`?k?.getVisibleLeafKeys()??Ew(i,g.value):y().map(e=>e.key),S=()=>g.value.trim()!==``,C=()=>a,w=document.createElement(`label`);w.className=`mg-column-handle-menu__filter-set-option mg-column-handle-menu__filter-set-select-all`;let T=document.createElement(`input`);T.type=`checkbox`;let E=document.createElement(`span`);E.textContent=`全选`,w.append(T,E),h.append(w);let D=()=>{let e=x();if(S()){T.disabled=e.length===0;let t=v.getSelectAllStateForKeys(e);T.checked=t.checked,T.indeterminate=t.indeterminate;return}T.disabled=!1;let t=v.getSelectAllState();T.checked=t.checked,T.indeterminate=t.indeterminate},O=null,k=null,A=document.createElement(`div`);A.className=`mg-column-handle-menu__filter-set-list-host`;let j=()=>{if(A.replaceChildren(),O=null,k=null,i.length===0){let e=document.createElement(`div`);e.className=`mg-column-handle-menu__filter-set-empty`,e.textContent=`暂无可选值`,A.append(e),M();return}if(_&&b()===`tree`){k=new jw({options:i,selection:v,searchQuery:g.value,onSelectionChange:()=>{D(),N(`set`)},emptySearchLabel:`无匹配项`,abortSignal:l}),A.append(k.element),M();return}O=new Aw({options:y(),selection:v,onSelectionChange:()=>{D(),N(`set`)},emptySearchLabel:`无匹配项`,abortSignal:l}),A.append(O.element),M()},M=()=>{let e=Mw.get(h);e&&(e.virtualList=O,e.dateTreeView=k)},N=e=>{let t=v.snapshot(),n=hw(t,C(),x(),S());if(e===`set`&&n===null)return;let r=n??t,i=I.readState();s({source:e,operatorLogic:i.operatorLogic,operatorConditions:i.operatorConditions,setAllSelected:r.setAllSelected,selectedValues:r.selectedValues})},P=()=>{N(`operator`)},F=()=>{N(`set`)},I=fw({columnFilterType:r,initialState:{operatorLogic:d.operatorLogic,operatorConditions:d.operatorConditions},abortSignal:l,onInput:P,onStopPropagation:m});p.append(I.element),Nw.set(f,I),i.length===0&&(g.disabled=!0,T.disabled=!0),h.append(A),j(),Mw.set(h,{allOptions:i,searchInput:g,selection:v,virtualList:O,dateTreeView:k,mountOptionsView:j,getFilteredKeys:x,isSearchActive:S,getValueMode:C,syncSelectAllUi:D}),D(),g.addEventListener(`input`,()=>{_&&b()===`tree`?k?.setSearchQuery(g.value):O?.setOptions(y()),D(),C()===`current`&&F()},{signal:l}),g.addEventListener(`mousedown`,m,{signal:l}),g.addEventListener(`click`,m,{signal:l}),h.addEventListener(`mousedown`,m,{signal:l}),h.addEventListener(`click`,m,{signal:l}),h.addEventListener(`change`,e=>{let t=e.target;if(!(!(t instanceof HTMLInputElement)||t.type!==`checkbox`)&&t===T){let e=x();S()?v.setKeysChecked(e,T.checked):v.setSelectAll(T.checked),D(),O?.refresh(),k?.refresh(),F()}},{signal:l});let L=document.createElement(`div`);L.className=`mg-column-handle-menu__filter-actions`;let ee=Iw(c,l);return L.append(ee),f.append(p,h,L),{root:f,panelRoot:f,customPredicate:!1,syncState:e=>{Rw(f,e)}}}function Rw(e,t){let n=e.querySelector(`.mg-column-handle-menu__filter-set-panel`);Nw.get(e)?.syncState({operatorLogic:t.operatorLogic,operatorConditions:t.operatorConditions}),n&&Pw(n,t)}var zw=8,Bw=4;function Vw(e,t,n){let r=e.left,i=e.bottom+Bw;return i+n>window.innerHeight-zw&&(i=e.top-n-Bw),r=Math.max(zw,Math.min(r,window.innerWidth-t-zw)),i=Math.max(zw,Math.min(i,window.innerHeight-n-zw)),{left:r,top:i}}function Hw(e,t){let n=document.createElement(`span`);n.className=Ii,e&&n.append(e);let r=document.createElement(`span`);return r.className=Li,r.textContent=t,n.append(r),n}function Uw(e,t,n){let r=document.createElement(`button`);return r.type=`button`,r.className=Fi,r.dataset.action=t,n?.targetColId&&(r.dataset.targetColId=n.targetColId),r.append(Hw(n?.icon??null,e)),r.setAttribute(`role`,n?.role??`menuitem`),n?.role===`menuitemradio`&&r.setAttribute(`aria-checked`,n.checked?`true`:`false`),n?.checked&&r.classList.add(`mg-column-handle-menu__item--checked`),r}function Ww(){let e=document.createElement(`div`);return e.className=Vi,e.setAttribute(`role`,`separator`),e}function Gw(e,t){let n=document.createElement(`div`);n.className=`${Pi} ${Ui}`;let r=BC(e,t);return n.append(Uw(`升序`,`sort-asc`,{checked:r===`asc`,icon:_m()}),Uw(`降序`,`sort-desc`,{checked:r===`desc`,icon:vm()})),VC(e,t)&&n.append(Uw(`清除排序`,`sort-clear`,{icon:ym()})),n}function Kw(e,t){t.classList.remove(`mg-column-handle-menu__submenu-panel--flip`);let n=e.getBoundingClientRect(),r=t.offsetWidth;n.right+r>window.innerWidth-zw&&t.classList.add(`mg-column-handle-menu__submenu-panel--flip`)}function qw(e){let t=document.createElement(`div`);t.className=`${Pi} ${Wi}`;let n=document.createElement(`div`);n.className=zi;let r=document.createElement(`button`);r.type=`button`,r.className=`${Fi} ${Ri}`,r.setAttribute(`role`,`menuitem`),r.setAttribute(`aria-haspopup`,`menu`),r.setAttribute(`aria-expanded`,`false`),r.append(Hw(bm(),`固定列`)),r.append(wm());let i=document.createElement(`div`);i.className=Bi,i.setAttribute(`role`,`menu`),i.hidden=!0,i.append(Uw(`不固定`,`pin-none`,{role:`menuitemradio`,checked:e===null,icon:xm()}),Uw(`固定左侧`,`pin-left`,{role:`menuitemradio`,checked:e===`left`,icon:Sm()}),Uw(`固定右侧`,`pin-right`,{role:`menuitemradio`,checked:e===`right`,icon:Cm()}));let a=()=>{i.hidden=!1,r.setAttribute(`aria-expanded`,`true`),n.classList.add(`mg-column-handle-menu__submenu--open`),Kw(r,i)},o=()=>{i.hidden=!0,r.setAttribute(`aria-expanded`,`false`),n.classList.remove(`mg-column-handle-menu__submenu--open`)};return n.addEventListener(`mouseenter`,a),n.addEventListener(`mouseleave`,o),n.addEventListener(`focusin`,a),n.addEventListener(`focusout`,e=>{let t=e.relatedTarget;t instanceof Node&&n.contains(t)||o()}),n.append(r,i),t.append(n),t}function Jw(e,t,n){let r=()=>{n.hidden=!1,t.setAttribute(`aria-expanded`,`true`),e.classList.add(`mg-column-handle-menu__submenu--open`),Kw(t,n)},i=()=>{n.hidden=!0,t.setAttribute(`aria-expanded`,`false`),e.classList.remove(`mg-column-handle-menu__submenu--open`)};e.addEventListener(`mouseenter`,r),e.addEventListener(`mouseleave`,i),e.addEventListener(`focusin`,r),e.addEventListener(`focusout`,t=>{let n=t.relatedTarget;n instanceof Node&&e.contains(n)||i()})}function Yw(e){let t=document.createElement(`div`);t.className=`${Pi} ${Ki}`;let n=document.createElement(`div`);n.className=zi;let r=document.createElement(`button`);r.type=`button`,r.className=`${Fi} ${Ri}`,r.setAttribute(`role`,`menuitem`),r.setAttribute(`aria-haspopup`,`menu`),r.setAttribute(`aria-expanded`,`false`),r.append(Hw(Tm(),`列显隐`)),r.append(wm());let i=document.createElement(`div`);i.className=Bi,i.setAttribute(`role`,`menu`),i.hidden=!0,i.append(Uw(`隐藏此列`,`hide-column`,{icon:Em()})),e.length>0&&i.append(Ww());for(let t of e)i.append(Uw(t.label,`show-column`,{targetColId:t.colId,icon:Dm()}));return Jw(n,r,i),n.append(r,i),t.append(n),t}function Xw(e,t,n,r,i,a,o,s){let c=document.createElement(`div`);c.className=`${Pi} ${Gi}`;let l=Lw({colId:e,filterModel:t,columnFilterType:n,distinctFilterValues:r,filterSetValueMode:i,filterSetDateLayoutMode:a,onFilterInput:o,abortSignal:s});return c.append(l.root),c}var Zw=class{portalEl=null;menuEl=null;triggerHandle=null;onClose=null;handleDocumentClick=e=>{e.button===0&&(this.shouldIgnoreOutsideMenuClose(e.target)||this.onClose?.())};shouldIgnoreOutsideMenuClose(e){if(!(e instanceof Node)||this.menuEl?.contains(e)||this.triggerHandle?.contains(e))return!0;let t=document.activeElement;return!!(t instanceof HTMLSelectElement&&this.menuEl?.contains(t))}handleDocumentKeyDown=e=>{e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),this.onClose?.(),this.triggerHandle?.focus())};handleMenuClick=e=>{let t=e.target;if(!(t instanceof Element))return;let n=t.closest(`[data-action]`),r=n?.dataset.action;!r||!this.menuEl?.contains(n)||(e.preventDefault(),e.stopPropagation(),this.context?.onAction(r,n?.dataset.targetColId))};context=null;filterAbortController=null;open(e){this.close(),this.context=e,this.triggerHandle=e.triggerHandle,this.onClose=e.onClose,this.filterAbortController=new AbortController;let t=document.createElement(`div`);t.className=Ni;let n=document.createElement(`div`);n.className=Mi,n.setAttribute(`role`,`menu`),n.dataset.colId=e.colId;let r=[];e.sections.sort&&r.push(Gw(e.colId,e.sortModel)),e.sections.pin&&r.push(qw(e.fixed)),e.sections.visibility&&r.push(Yw(e.hiddenUserColumns)),e.sections.filter&&r.push(Xw(e.colId,e.filterModel,e.columnFilterType,e.distinctFilterValues,e.filterSetValueMode,e.filterSetDateLayoutMode,e.onFilterInput,this.filterAbortController.signal)),r.forEach((e,t)=>{t>0&&n.append(Ww()),n.append(e)}),n.addEventListener(`click`,this.handleMenuClick),t.append(n),e.mountEl.appendChild(t),this.portalEl=t,this.menuEl=n,this.positionMenu(n,e.anchorRect),this.syncHandleAria(e.triggerHandle,!0),document.addEventListener(`click`,this.handleDocumentClick,!0),document.addEventListener(`keydown`,this.handleDocumentKeyDown,!0)}close(){document.removeEventListener(`click`,this.handleDocumentClick,!0),document.removeEventListener(`keydown`,this.handleDocumentKeyDown,!0),this.filterAbortController?.abort(),this.filterAbortController=null,this.triggerHandle&&this.syncHandleAria(this.triggerHandle,!1),this.menuEl?.removeEventListener(`click`,this.handleMenuClick),this.portalEl?.remove(),this.portalEl=null,this.menuEl=null,this.triggerHandle=null,this.onClose=null,this.context=null}isOpen(){return this.menuEl!=null}getOpenColId(){return this.menuEl?.dataset.colId??null}syncFilterPanel(e){let t=this.menuEl?.querySelector(`.${Hi}`);t&&Rw(t,e)}positionMenu(e,t){e.style.visibility=`hidden`,e.style.position=`fixed`,e.style.left=`0`,e.style.top=`0`;let n=e.getBoundingClientRect(),{left:r,top:i}=Vw(t,n.width,n.height);e.style.left=`${r}px`,e.style.top=`${i}px`,e.style.visibility=``}syncHandleAria(e,t){e.setAttribute(`aria-expanded`,t?`true`:`false`)}},Qw=new Set([`sort-asc`,`sort-desc`,`sort-clear`]),$w={"pin-none":null,"pin-left":`left`,"pin-right":`right`},eT=class{deps;view=new Zw;openColId=null;filterDebounceTimer=null;constructor(e){this.deps=e}toggle(e){if(this.openColId===e.colId&&this.view.isOpen()){this.close();return}this.open(e)}open(e){let t=this.deps.columnModel.getColumnById(e.colId);if(!t)return;let n=Ji({colId:e.colId,sortable:t.sortable,filterable:t.filterable},e.mode??`full`);if(!Yi(n))return;this.close();let r=e.handleEl.getBoundingClientRect();this.openColId=e.colId,this.view.open({mountEl:this.deps.mountEl,colId:e.colId,anchorRect:r,sections:n,sortModel:this.deps.getSortModel(),fixed:t.fixed??null,filterModel:this.deps.getFilterModel(),columnFilterType:t.filterType,distinctFilterValues:this.deps.getColumnDistinctFilterValues(e.colId),filterSetValueMode:this.deps.filterSetValueMode,filterSetDateLayoutMode:this.deps.filterSetDateLayoutMode,triggerHandle:e.handleEl,hiddenUserColumns:Hs(this.deps.columnModel.getColumns()),onAction:(t,n)=>this.handleAction(t,e.colId,n),onFilterInput:n=>this.scheduleFilterUpdate(e.colId,n,t.filterType),onClose:()=>this.close()})}close(){this.clearFilterDebounce(),this.view.close(),this.openColId=null}isOpenFor(e){return this.openColId===e&&this.view.isOpen()}destroy(){this.close()}onHeaderRefresh(){this.view.isOpen()&&this.close()}handleAction(e,t,n){if(Qw.has(e)){this.applySortAction(e,t);return}let r=$w[e];if(r!==void 0){this.deps.setColumnFixed(t,r,`menu`);return}if(e===`filter-clear`){this.applyFilterClear(t);return}if(e===`hide-column`){this.deps.setColumnsHidden([t],!0,`menu`);return}e===`show-column`&&n&&this.deps.setColumnsHidden([n],!1,`menu`)}applySortAction(e,t){if(!this.deps.columnModel.getColumnById(t)?.sortable)return;let n=this.deps.getSortModel(),r;switch(e){case`sort-asc`:r=LC(t,n);break;case`sort-desc`:r=RC(t,n);break;case`sort-clear`:r=zC(t,n);break;default:return}this.deps.setSortModel(r)}scheduleFilterUpdate(e,t,n){if(!this.deps.columnModel.getColumnById(e)?.filterable)return;let r=this.deps.getFilterModel()[e];if(r&&_r(r))return;this.clearFilterDebounce();let i=()=>{let r=sw(e,{operatorLogic:t.operatorLogic,operatorConditions:t.operatorConditions,setAllSelected:t.setAllSelected,selectedValues:t.selectedValues},this.deps.getFilterModel(),n);this.deps.setFilterModel(r)};if(t.source===`set`){i();return}this.filterDebounceTimer=setTimeout(()=>{this.filterDebounceTimer=null,i()},300)}applyFilterClear(e){let t=this.deps.columnModel.getColumnById(e);if(!t?.filterable)return;this.clearFilterDebounce();let n=lw(e,this.deps.getFilterModel());this.deps.setFilterModel(n),this.view.syncFilterPanel(aw(e,n,t.filterType,this.deps.getColumnDistinctFilterValues(e).map(e=>e.key)))}clearFilterDebounce(){this.filterDebounceTimer!=null&&(clearTimeout(this.filterDebounceTimer),this.filterDebounceTimer=null)}},tT=8,nT=4,rT=320,iT=400,aT=168;function oT(e,t,n){let r=Math.min(iT,Math.max(rT,t)),i=e.right-r,a=e.bottom+nT;return a+n>window.innerHeight-tT&&(a=e.top-n-nT),i=Math.max(tT,Math.min(i,window.innerWidth-r-tT)),a=Math.max(tT,Math.min(a,window.innerHeight-n-tT)),{left:i,top:a}}function sT(e,t,n){let r=Math.max(aT,t),i=e.left,a=e.bottom+nT;return a+n>window.innerHeight-tT&&(a=e.top-n-nT),i=Math.max(tT,Math.min(i,window.innerWidth-r-tT)),a=Math.max(tT,Math.min(a,window.innerHeight-n-tT)),{left:i,top:a}}var cT=[{action:`promote`,label:`上移一级`,createIcon:jm},{action:`demote`,label:`下移一级`,createIcon:Am}];function lT(e){if(e.availableActions.length===0)return{close:()=>e.onClose?.()};let t=e.mountEl??document.body,n=document.createElement(`div`);n.className=qs;let r=document.createElement(`div`);r.className=Js;let i=document.createElement(`div`);i.className=Ys,i.setAttribute(`role`,`menu`);let a=new Set(e.availableActions);for(let t of cT){if(!a.has(t.action))continue;let n=document.createElement(`button`);n.type=`button`,n.className=Xs,n.dataset.action=t.action,n.setAttribute(`role`,`menuitem`);let r=document.createElement(`span`);r.className=Zs,r.append(t.createIcon());let o=document.createElement(`span`);o.className=Qs,o.textContent=t.label,n.append(r,o),n.addEventListener(`mousedown`,n=>{n.preventDefault(),n.stopPropagation(),e.onSelect(t.action),d()}),i.append(n)}if(i.childElementCount===0)return{close:()=>e.onClose?.()};r.append(i),n.append(r),t.append(n),r.style.visibility=`hidden`,r.style.position=`fixed`,r.style.left=`0`,r.style.top=`0`;let o=e.anchorEl.getBoundingClientRect(),s=i.getBoundingClientRect(),c=sT(o,s.width,s.height);r.style.left=`${c.left}px`,r.style.top=`${c.top}px`,r.style.visibility=``;let l=t=>{let r=t.target;r instanceof Node&&(n.contains(r)||e.anchorEl.contains(r))||d()},u=e=>{e.key===`Escape`&&d()};document.addEventListener(`mousedown`,l,!0),document.addEventListener(`keydown`,u,!0);function d(){document.removeEventListener(`mousedown`,l,!0),document.removeEventListener(`keydown`,u,!0),n.remove(),e.onClose?.()}return{close:d}}var uT=class{deps;openRowId=null;anchorEl=null;menuHandle=null;constructor(e){this.deps=e}isOpenForRow(e){return this.openRowId===e&&this.menuHandle!=null}toggle(e,t,n){if(n.length!==0){if(this.openRowId===e&&this.menuHandle){this.close();return}this.close(),this.openRowId=e,this.anchorEl=t,t.setAttribute(`aria-expanded`,`true`),this.menuHandle=lT({anchorEl:t,mountEl:this.deps.mountEl,availableActions:n,onSelect:t=>{this.deps.applyAction(e,t)},onClose:()=>{this.resetAnchorExpanded(),this.openRowId=null,this.menuHandle=null}})}}close(){this.menuHandle?.close(),this.resetAnchorExpanded(),this.openRowId=null,this.menuHandle=null}destroy(){this.close(),this.deps.mountEl.querySelectorAll(`button.${Xe}[aria-expanded="true"]`).forEach(e=>{e.setAttribute(`aria-expanded`,`false`)})}resetAnchorExpanded(){this.anchorEl?.setAttribute(`aria-expanded`,`false`),this.anchorEl=null}};function dT(e){let t=document.createElement(`div`);return t.className=`mg-header-row__lane mg-header-row__lane--${e}`,t}function fT(e){let t=document.createElement(`div`);return t.className=`mg-footer-row__lane mg-footer-row__lane--${e}`,t}function pT(e){let t=document.createElement(`div`);return t.className=`mg-floating-filter-row__lane mg-floating-filter-row__lane--${e}`,t}function mT(e,t={}){e.replaceChildren();let n=document.createElement(`div`);n.className=`mg-root`;let r=document.createElement(`div`);r.className=`mg-header-viewport`;let i=document.createElement(`div`);i.className=`mg-header-scroll`;let a=document.createElement(`div`);a.className=`mg-header-gutter`,a.setAttribute(`aria-hidden`,`true`);let o=document.createElement(`div`);o.className=`mg-header-row`;let s=dT(`left`),c=dT(`center`),l=dT(`right`);o.append(s,c,l);let u=document.createElement(`div`);u.className=`mg-header-span`,u.setAttribute(`aria-hidden`,`true`),i.append(o,u),r.append(i,a);let d=document.createElement(`div`);d.className=`mg-body`;let f=document.createElement(`div`);f.className=`mg-viewport`,f.tabIndex=0;let p=document.createElement(`div`);p.className=`mg-spacer`;let m=document.createElement(`div`);m.className=`mg-rows-layer`;let h=document.createElement(`div`);h.className=`mg-index-column-fill-host`,h.setAttribute(`aria-hidden`,`true`),h.hidden=!0;let g=document.createElement(`div`);g.className=`mg-index-column-fill`,h.appendChild(g);let _=document.createElement(`div`);_.className=`mg-rows-container`,m.append(h,_);let v=document.createElement(`div`);v.className=`mg-spanned-rows-container`,v.style.display=`none`,_.appendChild(v);let y=document.createElement(`div`);y.className=`mg-full-width-rows-container`,y.style.display=`none`,m.appendChild(y);let b=document.createElement(`div`);b.className=`mg-scroll-phantom`,b.setAttribute(`aria-hidden`,`true`),p.appendChild(m),p.appendChild(b),f.appendChild(p),d.appendChild(f);let{overlayEl:x,wrapperEl:S,contentEl:C}=zS();d.appendChild(x),n.appendChild(r);let w,T,E,D,O,k,A;if(t.floatingFilter){w=document.createElement(`div`),w.className=`mg-floating-filter-viewport`,T=document.createElement(`div`),T.className=`mg-floating-filter-scroll`,E=document.createElement(`div`),E.className=`mg-floating-filter-gutter`,E.setAttribute(`aria-hidden`,`true`),D=document.createElement(`div`),D.className=`mg-floating-filter-row`,O=pT(`left`),k=pT(`center`),A=pT(`right`),D.append(O,k,A);let e=document.createElement(`div`);e.className=`mg-floating-filter-span`,e.setAttribute(`aria-hidden`,`true`),T.append(D,e),w.append(T,E),n.appendChild(w)}n.appendChild(d);let j,M,N,P,F,I,L;if(t.showSummary){j=document.createElement(`div`),j.className=`mg-footer-viewport`,M=document.createElement(`div`),M.className=`mg-footer-scroll`,N=document.createElement(`div`),N.className=`mg-footer-gutter`,N.setAttribute(`aria-hidden`,`true`),P=document.createElement(`div`),P.className=`mg-footer-row`,F=fT(`left`),I=fT(`center`),L=fT(`right`),P.append(F,I,L);let e=document.createElement(`div`);e.className=`mg-footer-span`,e.setAttribute(`aria-hidden`,`true`),M.append(P,e),j.append(M,N),n.appendChild(j)}return e.appendChild(n),{rootEl:n,headerViewportEl:r,headerScrollEl:i,headerGutterEl:a,headerRowEl:o,headerLeftLaneEl:s,headerCenterLaneEl:c,headerRightLaneEl:l,viewportEl:f,spacerEl:p,scrollPhantomEl:b,rowsLayerEl:m,indexColumnFillHostEl:h,indexColumnFillEl:g,rowsContainerEl:_,spannedRowsContainerEl:v,fullWidthRowsContainerEl:y,footerViewportEl:j,footerScrollEl:M,footerGutterEl:N,footerRowEl:P,footerLeftLaneEl:F,footerCenterLaneEl:I,footerRightLaneEl:L,floatingFilterViewportEl:w,floatingFilterScrollEl:T,floatingFilterGutterEl:E,floatingFilterRowEl:D,floatingFilterLeftLaneEl:O,floatingFilterCenterLaneEl:k,floatingFilterRightLaneEl:A,overlayEl:x,overlayWrapperEl:S,overlayContentEl:C}}var hT=`mg-floating-filter-cell`,gT=`mg-floating-filter-cell--active`,_T=`mg-floating-filter-cell__inner`,vT=`mg-floating-filter-control`,yT=`mg-floating-filter-control--readonly`,bT=`mg-floating-filter-input`,xT=`mg-floating-filter-input--readonly`,ST=`mg-floating-filter-button`,CT=`mg-floating-filter-button--active`,wT=`contains`,TT={blank:`空白`,notBlank:`非空白`};function ET(e){return e===`OR`?`或者`:`并且`}function DT(e){if(ri(e.type))return TT[e.type];if(e.type===`inRange`){let t=e.filter?.trim()??``,n=e.filterTo?.trim()??``;return t!==``&&n!==``?`${t} - ${n}`:t||n}return e.filter?.trim()??``}function OT(e){return!e||_r(e)?!1:Yr(e).filter(Jr).length>=2}function kT(e){if(!e||_r(e))return``;let t=Yr(e),n=t.filter(Jr);if(n.length>=2){let[t,r]=n,i=ET(Xr(e));return`${DT(t)} ${i} ${DT(r)}`}let[r]=n.length>0?n:t;return r?(r.type,r.filter??``):``}function AT(e,t){return!(!e||t&&_r(t))}function jT(e,t){return AT(e,t)?!OT(t):!1}function MT(e,t,n){let r=ai(t,n);e.classList.toggle(gT,r);let i=e.querySelector(`.${ST}`);i&&(i.classList.toggle(CT,r),r?i.setAttribute(`aria-pressed`,`true`):i.removeAttribute(`aria-pressed`))}function NT(e,t){let n=Array.isArray(e)?e:[e];for(let e of n){let n=Array.from(e.querySelectorAll(`.${hT}[data-col-id]`));for(let e of n){let n=e.dataset.colId;n&&MT(e,n,t)}}}var PT=class{lanes;floatingRowEl;inputBindings=[];focusedColId=null;constructor(e){this.floatingRowEl=e.floatingRowEl,this.lanes={left:e.floatingLeftLaneEl,center:e.floatingCenterLaneEl,right:e.floatingRightLaneEl}}render(e){this.clearBindings();let t=Mp(e.columnModel,e.centerWindow);this.syncLaneWidths(e.columnModel),this.renderLane(`left`,t.left,e),this.renderLane(`center`,t.center,e),this.renderLane(`right`,t.right,e),this.floatingRowEl.style.width=`${e.columnModel.getTotalWidth()}px`}syncFromFilterModel(e,t){for(let n of this.inputBindings){if(n.colId===this.focusedColId)continue;let r=t.getColumnById(n.colId),i=e[n.colId],a=jT(r?.filterable??!1,i);n.input.readOnly=!a,n.input.classList.toggle(xT,!a),n.input.tabIndex=a?0:-1,n.control.classList.toggle(yT,!a),n.input.value=kT(i)}NT([this.lanes.left,this.lanes.center,this.lanes.right],e)}syncRowLayout(e){this.floatingRowEl.style.width=`${e.getTotalWidth()}px`,this.syncLaneWidths(e)}setFocusedColId(e){this.focusedColId=e}destroy(){this.inputBindings.length=0,this.focusedColId=null;for(let e of Object.values(this.lanes))e.replaceChildren()}clearBindings(){this.inputBindings.length=0}syncLaneWidths(e){this.lanes.left.style.width=`${e.getLeftFixedWidth()}px`,this.lanes.center.style.width=`${e.getCenterTotalWidth()}px`,this.lanes.right.style.width=`${e.getRightFixedWidth()}px`}renderLane(e,n,r){let i=this.lanes[e];i.replaceChildren();for(let e of n){let n=r.columnModel.getColumn(e);if(!n)continue;let a=document.createElement(`div`);a.className=hT,a.dataset.colId=n.colId,t.it(n.colId)?a.classList.add(`mg-floating-filter-cell--index`):t.X(n.colId)&&a.classList.add(`mg-floating-filter-cell--selection`);let o=r.filterModel[n.colId],s=AT(n.filterable,o),c=jT(n.filterable,o);if(n.filterable){let e=document.createElement(`div`);e.className=_T;let t=document.createElement(`div`);if(t.className=vT,s){let e=document.createElement(`input`);e.type=`text`,e.className=bT,e.setAttribute(`aria-label`,`${n.label??n.prop??n.colId} 筛选`),e.value=kT(o),e.readOnly=!c,c||(e.classList.add(xT),t.classList.add(yT),e.tabIndex=-1),c&&e.addEventListener(`input`,()=>{r.onInput(n.colId,e.value)}),e.addEventListener(`focus`,()=>{this.focusedColId=n.colId,r.onFocus?.(n.colId)}),e.addEventListener(`blur`,()=>{this.focusedColId===n.colId&&(this.focusedColId=null),r.onBlur?.(n.colId)}),t.append(e),this.inputBindings.push({colId:n.colId,input:e,control:t})}else{let e=document.createElement(`span`);e.className=`mg-floating-filter-cell__spacer`,e.setAttribute(`aria-hidden`,`true`),t.append(e)}let i=document.createElement(`button`);i.type=`button`,i.className=ST,i.title=`列筛选`,i.setAttribute(`aria-label`,`${n.label??n.prop??n.colId} 列筛选`),i.setAttribute(`aria-haspopup`,`menu`),i.setAttribute(`aria-expanded`,`false`),i.append(gm()),t.append(i),e.append(t),a.append(e)}MT(a,n.colId,r.filterModel),Pp(a,Np(n,r.columnModel),hT),i.appendChild(a)}}};function FT(e,t,n,r){e.style.width=`${r.getLeftFixedWidth()}px`,t.style.width=`${r.getCenterTotalWidth()}px`,n.style.width=`${r.getRightFixedWidth()}px`}function IT(e,t,n,r){Fp(e,r,hT),Fp(t,r,hT),Fp(n,r,hT)}function LT(e,t,n,r=`text`){let i=n[e],a=!0,o=[];if(i&&!_r(i)){let e=Zr(i);e!==void 0&&(a=!1,o=e)}return cw(e,wT,t,n,r,void 0,a,o)}var RT=class{deps;debounceTimers=new Map;constructor(e){this.deps=e}render(e){this.deps.renderer.render({columnModel:this.deps.columnModel,centerWindow:e,filterModel:this.deps.getFilterModel(),onInput:(e,t)=>this.scheduleUpdate(e,t),onFocus:e=>this.deps.renderer.setFocusedColId(e),onBlur:()=>{this.deps.renderer.setFocusedColId(null)}})}syncFromFilterModel(){this.deps.renderer.syncFromFilterModel(this.deps.getFilterModel(),this.deps.columnModel)}syncRowLayout(){this.deps.renderer.syncRowLayout(this.deps.columnModel)}destroy(){this.clearAllDebounce(),this.deps.renderer.destroy()}scheduleUpdate(e,t){let n=this.deps.columnModel.getColumnById(e);if(!n?.filterable)return;let r=this.deps.getFilterModel()[e];if(r&&_r(r))return;let i=this.debounceTimers.get(e);i!=null&&clearTimeout(i),this.debounceTimers.set(e,setTimeout(()=>{this.debounceTimers.delete(e);let r=LT(e,t,this.deps.getFilterModel(),n.filterType??`text`);this.deps.setFilterModel(r)},300))}clearAllDebounce(){for(let e of this.debounceTimers.values())clearTimeout(e);this.debounceTimers.clear()}};function zT(e,t){return Math.max(0,e-t)}function BT(e,t){let n=zT(e,t);return n<=2?0:n}function VT(e,t){return e>t+2}function HT(e,t){return e>t+2}function UT(e,t,n,r){let i=t.getColumn(e);if(!i||i.fixed===`left`||i.fixed===`right`)return null;let a=t.getLeftFixedWidth(),o=t.getRightFixedWidth(),s=a,c=r-o,l=a+i.left-n,u=l+i.width;return l>=s&&u<=c?null:l<s?i.left:a+i.left+i.width-c}function WT(e,t){return Math.max(0,e.getTotalWidth()-t)}function GT(e,t,n=2){return t<=n||e>=t-n}function KT(e,t,n){let r=WT(e,n);return Math.max(0,Math.min(t,r))}function qT(e,t,n,r,i){let a=KT(e,n,r);if(!i)return a===n?null:a;let o=e.getColumnById(t);if(!o||o.fixed!==null)return a===n?null:a;let s=JT(e,t);if(s<0)return a===n?null:a;let c=UT(s,e,a,r);return c!==null&&(a=KT(e,c,r)),a===n?null:a}function JT(e,t){for(let n=0;n<e.getColumnCount();n++)if(e.getColumn(n)?.colId===t)return n;return-1}function YT(e,t){return Math.abs(t-e)>=1}function XT(e,t,n){return e<t+40?-Math.min(1,(t+40-e)/40)*80:e>n-40?Math.min(1,(e-(n-40))/40)*80:0}function ZT(e,t,n){return XT(e,t,n)!==0}function QT(e,t,n,r){return[e+n,t-r]}function $T(e){return e.scrollWidth>e.clientWidth+1}function eE(e,t,n){return n===0?!1:n>0?e+1<=t:e>=1}function tE(e,t){let n=Math.max(0,e.scrollWidth-e.clientWidth);if(t){let e=Math.max(0,t());return n<=0&&e>0?e:Math.min(e,n)}return n}function nE(e,t,n,r,i){let a=XT(e,t,n);return a!==0&&!eE(r,i,a)}function rE(e,t,n,r,i){if(r<=0&&i<=0||n<=t)return null;let[a,o]=QT(t,n,r,i);return e<a?`left`:e>o?`right`:null}function iE(e){return!e.allowCrossLaneColumnMove&&e.pointerFixed!==e.sourceFixed?!1:e.hasDropTarget?e.canMoveToDropTarget:e.pointerFixed===e.sourceFixed}var aE=class{deps;host;drag=null;scrollRaf=null;pointerListeners=null;constructor(e,t){this.deps=e,this.host=t}get rootDoc(){return CS(this.deps.viewportEl)}isActive(){return this.drag!=null}canStart(e,n,r){if(r||!e?.movable||e.hidden||t.it(e.colId)||t.X(e.colId))return!1;let i=Q(n);return!(i?.closest(`.mg-selection-checkbox--header`)||!i?.closest(`.mg-header-cell__column-handle`))}begin(e){this.end(!1);let t=this.deps.columnModel.getColumnById(e.colId);t&&(this.drag={colId:e.colId,sourceCell:e.sourceCell,laneEl:this.resolveHeaderLaneEl(t.fixed??null),dropLaneEl:this.resolveHeaderLaneEl(t.fixed??null),startX:e.clientX,startY:e.clientY,pointerX:e.clientX,active:!1,didMove:!1,lastDropTarget:null,lastLiveMovePointerX:null,ghostOffsetX:0,ghostTop:0,dragDirection:`right`},this.pointerListeners=TS(this.deps.viewportEl,{mousemove:this.handleMove,mouseup:this.handleEnd}))}end(e){let t=this.drag;if(t){this.unbindPointerListeners();try{let n=this.resolveSourceCell(t);this.deps.columnDragController.cleanup(n?.isConnected?n:null,this.deps.headerViewportEl),this.deps.setColumnMoveLiveDragging(!1),this.rootDoc.body.classList.remove(ea,ta),e&&(this.host.setSuppressColumnClick(!0),this.host.setSuppressColumnHandleClick(!0),window.setTimeout(()=>{this.host.setSuppressColumnClick(!1),this.host.setSuppressColumnHandleClick(!1)},0))}finally{this.drag=null,this.scrollRaf!=null&&(cancelAnimationFrame(this.scrollRaf),this.scrollRaf=null)}}}unbindPointerListeners(){this.pointerListeners?.unbind(),this.pointerListeners=null}handleMove=e=>{let t=this.drag;if(!t)return;let n=e.clientX-t.startX,r=e.clientY-t.startY;if(!t.active){if(Math.abs(n)<=5||Math.abs(n)<Math.abs(r))return;t.active=!0,t.didMove=!0,this.rootDoc.body.classList.add(ea),this.deps.suppressMoveWhenColumnDragging()||this.deps.setColumnMoveLiveDragging(!0),this.refreshSourceCell(t);let i=this.resolveSourceCellRect(t),a=this.deps.columnModel.getColumnById(t.colId);t.ghostOffsetX=e.clientX-i.left,t.ghostTop=i.bottom;let o=this.resolveGhostPositionAtPointer(e.clientX,t);this.deps.columnDragController.setColumnMoving(t.colId);let s=this.resolveSourceCell(t);s?.isConnected&&(t.sourceCell=s,this.deps.columnDragController.setSourceHeaderDragging(s,!0)),this.deps.columnDragController.setHeaderViewportDragging(this.deps.headerViewportEl,!0),this.deps.columnDragController.startGhost({label:a?.label??a?.prop??t.colId,width:i.width,height:i.height,left:o.left,top:o.top,mountEl:this.deps.mountEl})}this.updateDragDirection(e.clientX,t);let i=this.resolveGhostPositionAtPointer(e.clientX,t);this.deps.columnDragController.moveGhost(i.left,i.top),t.pointerX=e.clientX,this.shouldSkipRenderAtPointerAtScrollBoundary(e.clientX,t)||this.renderAtPointer(t,e.clientX);let a=this.resolveScrollHost(t),[o,s]=this.getScrollBounds(t),c=XT(t.pointerX,o,s);c!==0&&this.canHostScrollBy(a,c)&&ZT(t.pointerX,o,s)&&this.ensureEdgeScrollLoop()};handleEnd=e=>{let t=this.drag;if(t){if(t.active)if(this.deps.suppressMoveWhenColumnDragging()){let n=this.resolveDropAtClientX(e.clientX,t,this.resolveHitLane(e.clientX,t));n&&this.deps.moveColumn(t.colId,n.globalIndex,!0,n.toFixed)}else this.commitLiveDragOnMouseup(e.clientX,t);this.end(t.didMove)}};commitLiveDragOnMouseup(e,t){if(!t.lastDropTarget){let n=this.resolveDropAtClientX(e,t,this.resolveHitLane(e,t));n?this.deps.moveColumn(t.colId,n.globalIndex,!0,n.toFixed):this.deps.finishColumnMove(t.colId);return}let n=this.resolveDropAtClientX(e,t,this.resolveHitLane(e,t));if((t.lastLiveMovePointerX==null||Math.abs(e-t.lastLiveMovePointerX)>=5)&&n&&!this.isSameDropTarget(n,t.lastDropTarget)){this.deps.moveColumn(t.colId,n.globalIndex,!0,n.toFixed);return}this.deps.finishColumnMove(t.colId)}renderAtPointer(e,t){let n=this.resolveHitLane(t,e),r=this.resolveDropAtClientX(t,e,n),i=this.isColumnDropAllowed(e,r,t);this.setColumnDropForbidden(!i),e.dropLaneEl=this.resolveDropLaneEl(t,r,e.colId,n),this.updateDropIndicator(e,i?r:null),this.deps.suppressMoveWhenColumnDragging()||this.applyLiveMove(e,i?r:null)}resolvePointerLaneFixed(e){let t=this.deps.viewportEl.getBoundingClientRect();return rE(e,t.left,t.right,this.deps.columnModel.getLeftFixedWidth(),this.deps.columnModel.getRightFixedWidth())}isColumnDropAllowed(e,t,n){let r=this.deps.columnModel.getColumnById(e.colId)?.fixed??null,i=this.resolvePointerLaneFixed(n);return iE({allowCrossLaneColumnMove:this.deps.allowCrossLaneColumnMove(),sourceFixed:r,pointerFixed:i,hasDropTarget:t!=null,canMoveToDropTarget:t?xg({columns:this.deps.columnModel.getColumns(),colId:e.colId,toGlobalIndex:t.globalIndex,fixedGroups:this.deps.columnModel.getFixedColumnGroups(),toFixed:t.toFixed,allowCrossLaneColumnMove:this.deps.allowCrossLaneColumnMove()}):!1})}setColumnDropForbidden(e){this.rootDoc.body.classList.toggle(ta,e)}getHeaderLaneElements(){return[{fixed:`left`,el:this.deps.headerLeftLaneEl},{fixed:null,el:this.deps.headerCenterLaneEl},{fixed:`right`,el:this.deps.headerRightLaneEl}]}resolveDropLaneEl(e,t,n,r){if(!this.deps.allowCrossLaneColumnMove()&&n){let e=this.deps.columnModel.getColumnById(n);return this.resolveHeaderLaneEl(e?.fixed??null)}if(t?.toFixed!==void 0)return this.resolveHeaderLaneEl(t.toFixed);if(t){let e=this.deps.columnModel.getColumn(t.globalIndex);if(e)return this.resolveHeaderLaneEl(e.fixed??null)}let i=this.getHeaderLaneElements();return r?r.el:i.find(({el:t})=>{let n=t.getBoundingClientRect();return e>=n.left&&e<=n.right})?.el??this.deps.headerCenterLaneEl}resolveHeaderLaneEl(e){return e===`left`?this.deps.headerLeftLaneEl:e===`right`?this.deps.headerRightLaneEl:this.deps.headerCenterLaneEl}resolveGhostPositionAtPointer(e,t){return{left:e-t.ghostOffsetX,top:t.ghostTop}}updateDragDirection(e,t){let n=Tg(e-t.pointerX,t.dragDirection);n!==t.dragDirection&&(t.lastLiveMovePointerX=null),t.dragDirection=n}constrainDropTargetByDragDirection(e,t){if(!e)return null;let n=this.deps.columnModel.getColumns().findIndex(e=>e.colId===t.colId);return n<0?e:t.dragDirection===`left`&&e.globalIndex>=n||t.dragDirection===`right`&&e.globalIndex<=n?null:e}isSameDropTarget(e,t){return!e||!t?e===t:e.globalIndex===t.globalIndex&&e.toFixed===t.toFixed}getScrollBounds(e){let t=this.resolveScrollHost(e);if(t===this.deps.viewportEl){let e=t.getBoundingClientRect();return QT(e.left,e.right,this.deps.columnModel.getLeftFixedWidth(),this.deps.columnModel.getRightFixedWidth())}let n=t.getBoundingClientRect();return[n.left,n.right]}resolveScrollHost(e){let t=this.deps.columnModel.getColumnById(e.colId);return t?.fixed===`left`?this.deps.headerLeftLaneEl:t?.fixed===`right`?this.deps.headerRightLaneEl:this.deps.viewportEl}resolveHostMaxScrollLeft(e){return tE(e,e===this.deps.viewportEl?()=>WT(this.deps.columnModel,e.clientWidth):void 0)}canHostScrollBy(e,t){return eE(e.scrollLeft,this.resolveHostMaxScrollLeft(e),t)}shouldSkipRenderAtPointerAtScrollBoundary(e,t){let n=this.resolveScrollHost(t),[r,i]=this.getScrollBounds(t);return nE(e,r,i,n.scrollLeft,this.resolveHostMaxScrollLeft(n))}ensureEdgeScrollLoop(){this.scrollRaf??=requestAnimationFrame(this.tickEdgeScroll)}tickEdgeScroll=()=>{let e=this.drag;if(!e?.active){this.scrollRaf=null;return}let t=this.resolveScrollHost(e);if(t!==this.deps.viewportEl&&!$T(t)){this.scrollRaf=null;return}let[n,r]=this.getScrollBounds(e),i=XT(e.pointerX,n,r),a=this.canHostScrollBy(t,i),o=!1;if(i!==0&&a){let n=t.scrollLeft;t===this.deps.viewportEl?this.deps.scrollByHorizontalDelta(i):t.scrollLeft=Math.max(0,Math.min(t.scrollLeft+i,t.scrollWidth-t.clientWidth)),o=YT(n,t.scrollLeft),o&&(e.lastLiveMovePointerX=null,this.renderAtPointer(e,e.pointerX))}if(ZT(e.pointerX,n,r)&&a&&o){this.scrollRaf=requestAnimationFrame(this.tickEdgeScroll);return}this.scrollRaf=null};updateDropIndicator(e,t){if(!t){this.deps.columnDragController.hideDropIndicator();return}let n=e.dropLaneEl,r=n.getBoundingClientRect(),i=(n.closest(`.mg-header-row`)??n.parentElement)?.getBoundingClientRect().top??r.top,a=r.height>0?r.height:32,o=this.deps.columnModel.getColumn(t.globalIndex);if(o){let e=Np(o,this.deps.columnModel),t=o.fixed??null,n=Math.round(t===null?c_(e.left,this.deps.viewportEl,this.deps.columnModel):r.left+e.left);this.deps.columnDragController.showDropIndicator(n,i,a);return}this.deps.columnDragController.showDropIndicator(Math.max(r.left,r.right-2),i,a)}applyLiveMove(e,t){!t||this.isSameDropTarget(t,e.lastDropTarget)||e.lastLiveMovePointerX!=null&&Math.abs(e.pointerX-e.lastLiveMovePointerX)<5||this.deps.moveColumn(e.colId,t.globalIndex,!1,t.toFixed)&&(e.laneEl=this.resolveHeaderLaneEl(this.deps.columnModel.getColumnById(e.colId)?.fixed??null),this.refreshSourceCell(e),e.lastDropTarget=t,e.lastLiveMovePointerX=e.pointerX)}resolveSourceCell(e){let t=this.deps.columnModel.getColumnById(e.colId)?.fixed??null;return this.resolveHeaderLaneEl(t).querySelector(`.mg-header-cell[data-col-id="${e.colId}"]`)}resolveSourceCellRect(e){if(e.sourceCell.isConnected)return e.sourceCell.getBoundingClientRect();let t=this.resolveSourceCell(e);return t?.isConnected?(e.sourceCell=t,t.getBoundingClientRect()):this.resolveSourceCellRectFromModel(e.colId)}resolveSourceCellRectFromModel(e){let t=this.deps.columnModel.getColumnById(e);if(!t)return new DOMRect(0,0,0,0);let n=t.fixed??null,r=this.resolveHeaderLaneEl(n),i=r.getBoundingClientRect(),a=Np(t,this.deps.columnModel),o=Math.round(n===null?c_(a.left,this.deps.viewportEl,this.deps.columnModel):i.left+a.left),s=(r.closest(`.mg-header-row`)??r.parentElement)?.getBoundingClientRect().top??i.top,c=i.height>0?i.height:32;return new DOMRect(o,s,t.width,c)}refreshSourceCell(e){let t=this.resolveSourceCell(e);t&&(e.active&&(e.sourceCell.isConnected&&this.deps.columnDragController.setSourceHeaderDragging(e.sourceCell,!1),this.deps.columnDragController.setSourceHeaderDragging(t,!0)),e.sourceCell=t)}resolvePhysicalHitLane(e){let t=this.getHeaderLaneElements().find(({el:t})=>{let n=t.getBoundingClientRect();return e>=n.left&&e<=n.right});if(t)return t;let n=this.resolvePointerLaneFixed(e);return n===`left`?{fixed:`left`,el:this.deps.headerLeftLaneEl}:n===`right`?{fixed:`right`,el:this.deps.headerRightLaneEl}:{fixed:null,el:this.deps.headerCenterLaneEl}}resolveHitLane(e,t){if(!this.deps.allowCrossLaneColumnMove()){let e=this.deps.columnModel.getColumnById(t.colId)?.fixed??null;return this.getHeaderLaneElements().find(({fixed:t})=>t===e)||{fixed:e,el:t.laneEl}}return this.resolvePhysicalHitLane(e)}resolveLaneSectionX(e,t){if(t.fixed===null)return s_(e,this.deps.viewportEl,this.deps.columnModel);let n=t.el.getBoundingClientRect(),r=t.el.querySelector(`.mg-header-cell[data-col-id]`),i=r?.getAttribute(`data-col-id`),a=i?this.deps.columnModel.getColumnById(i):null;if(r&&a){let t=Np(a,this.deps.columnModel);return e-r.getBoundingClientRect().left+t.left}return e-n.left}resolveDropAtClientX(e,t,n){let r=this.deps.columnModel.getColumns(),i=this.deps.columnModel.getFixedColumnGroups(),a=n.el.getBoundingClientRect(),o=Ng({columns:r,fixedGroups:i,sectionX:this.resolveLaneSectionX(e,n),clientX:e,laneRectLeft:a.left,laneRectRight:a.right,targetFixed:n.fixed,sourceColId:t.colId,dragDirection:t.dragDirection,leftFixedWidth:this.deps.columnModel.getLeftFixedWidth(),centerTotalWidth:this.deps.columnModel.getCenterTotalWidth()}),s=[...n.el.querySelectorAll(`.mg-header-cell[data-col-id]`)].flatMap(e=>{let t=e.getAttribute(`data-col-id`);if(!t)return[];let n=this.host.getColIndex(t);if(n<0)return[];let r=e.getBoundingClientRect();return[{colId:t,globalIndex:n,rectLeft:r.left,rectWidth:r.width}]}),c=Mg({columns:r,fixedGroups:i,clientX:e,laneRectLeft:a.left,laneRectRight:a.right,targetFixed:n.fixed,sourceColId:t.colId,dragDirection:t.dragDirection,laneHeaderCells:s});if(n.fixed===null&&this.deps.viewportEl.scrollLeft>0&&o)return this.constrainDropTargetByDragDirection(o,t);let l=r.findIndex(e=>e.colId===t.colId);return o&&c&&l>=0&&c.globalIndex===l&&o.globalIndex!==l&&xg({columns:r,colId:t.colId,toGlobalIndex:o.globalIndex,fixedGroups:i,toFixed:o.toFixed,allowCrossLaneColumnMove:this.deps.allowCrossLaneColumnMove()})?this.constrainDropTargetByDragDirection(o,t):this.constrainDropTargetByDragDirection(c??o,t)}};function oE(e,t){let n=t.clientX,r=0,i=!1,a=e.rootEl.ownerDocument,o=t=>{if(e.rootEl.classList.toggle(`mg-root--column-resizing`,t),t){a.body.style.cursor=`col-resize`,a.body.style.userSelect=`none`;return}a.body.style.removeProperty(`cursor`),a.body.style.removeProperty(`user-select`)},s=null,c=t=>{i||(i=!0,s?.unbind(),s=null,o(!1),t&&e.onResizeEnd(r))};return o(!0),e.onResizeStart(t.shiftKey),s=TS(e.rootEl,{mousemove:t=>{if(t.buttons===0){c(!0);return}r=t.clientX-n,e.onResizing(r)},mouseup:()=>{c(!0)}}),()=>c(!1)}function sE(e,t){return e}var cE=class{deps;columnResize=null;columnResizeFrame=null;pendingColumnResizeAmount=null;keyboardColumnResize=null;keyboardColumnResizeClearTimeout=null;constructor(e){this.deps=e}isActive(){return this.columnResize!=null}refreshVisualState(){let e=this.columnResize;if(!e)return;let t=SS(this.deps.mountEl).querySelector(`.mg-header-cell[data-col-id="${CSS.escape(e.colId)}"]`);t&&(e.sourceCell=t,this.markActiveCell(t))}canStart(e,t,n){return n||this.columnResize||!e?.resizable?!1:(t instanceof Element?t:t instanceof Text?t.parentElement:null)?.closest(`.mg-header-cell__resize-handle`)!=null}begin(e){this.end(!1);let t=this.deps.columnModel.getColumnById(e.colId);t?.resizable&&(this.deps.columnHandleMenuController.close(),this.columnResize={colId:e.colId,sourceCell:e.sourceCell,startWidth:t.width,shiftKey:e.event.shiftKey,endSession:oE({rootEl:SS(this.deps.mountEl),onResizeStart:()=>{},onResizing:e=>{this.scheduleResize(e)},onResizeEnd:e=>{this.applyResize(e,!0),this.end(!0)}},e.event)},this.markActiveCell(e.sourceCell))}end(e){let t=this.columnResize;t&&(this.columnResizeFrame!=null&&(cancelAnimationFrame(this.columnResizeFrame),this.columnResizeFrame=null),this.pendingColumnResizeAmount=null,this.clearActiveCell(),!e&&t.endSession&&t.endSession(),this.columnResize=null)}tryKeyboardResize(e,n){if(this.columnResize)return!1;let r=this.deps.cellFocusService.getFocusedCell();if(!r||!Tf(r))return!1;let i=r.colId;if(t.it(i)||t.X(i)||!this.deps.columnModel.getColumnById(i)?.resizable)return!1;(!this.keyboardColumnResize||this.keyboardColumnResize.colId!==i)&&(this.keyboardColumnResize={colId:i,multiplier:0}),this.keyboardColumnResize.multiplier+=1;let a=(e===`left`?-1:1)*this.keyboardColumnResize.multiplier,o=this.deps.mountEl.querySelector(`.mg-header-cell[data-col-id="${i}"]`);return o&&this.markActiveCell(o),this.deps.resizeHeaderColumn(i,a,n),!0}handleKeyUp(e){this.keyboardColumnResize&&(e.key===`ArrowLeft`||e.key===`ArrowRight`)&&(this.keyboardColumnResize=null,this.keyboardColumnResizeClearTimeout!=null&&window.clearTimeout(this.keyboardColumnResizeClearTimeout),this.keyboardColumnResizeClearTimeout=window.setTimeout(()=>{this.clearActiveCell(),this.keyboardColumnResizeClearTimeout=null},150))}markActiveCell(e){this.clearActiveCell(),e.setAttribute(`data-column-resize-active`,``),e.classList.add(`mg-header-cell--resizing`)}clearActiveCell(){SS(this.deps.mountEl).querySelectorAll(`.mg-header-cell[data-column-resize-active]`).forEach(e=>{e instanceof HTMLElement&&(e.removeAttribute(`data-column-resize-active`),e.classList.remove(`mg-header-cell--resizing`))})}scheduleResize(e){this.pendingColumnResizeAmount=e,this.columnResizeFrame??=requestAnimationFrame(()=>{this.columnResizeFrame=null;let e=this.pendingColumnResizeAmount;e==null||!this.columnResize||this.applyResize(e,!1)})}applyResize(e,t){let n=this.columnResize;if(!n)return;let r=this.deps.columnModel.getColumnById(n.colId);if(!r)return;let i=sE(e,r.fixed??null),a=n.startWidth+i;this.deps.setColumnWidths([{colId:n.colId,newWidth:a}],n.shiftKey,t)}},lE=class{deps;host;constructor(e,t){this.deps=e,this.host=t}syncSingleCellRangeToFocus(){this.deps.isCellSelectionEnabled?.()&&this.deps.selectFocusedCellRange?.()}applyFocusVisuals(){let e=this.deps.cellFocusService.getFocusedCell();this.syncHeaderFocusVisual(e&&Tf(e)?e.colId:null),this.syncFooterFocusVisual(e&&Ef(e)?e.colId:null),!e||J(e)?this.deps.rowRenderer.setFocusedCell(null):this.deps.rowRenderer.setFocusedCell({rowId:e.rowId,colId:e.colId}),this.deps.syncCellRangeHighlightVisuals?.()}navigateEditableTab(e){let t=this.deps.cellFocusService.getFocusedCell();if(!t)return;let n=this.deps.rowModel.getRowCount(),r=vf(this.deps.columnModel);if(n===0||r.length===0)return;let i=Nf(t,e,n,r,e=>this.deps.rowModel.getRow(e)?.id,e=>this.deps.columnModel.getColumn(e)?.colId,(e,t)=>{let n=this.deps.rowModel.getRow(e),r=this.deps.columnModel.getColumnById(t);return!!(n&&r&&H(r,n,this.deps.getCellDisableContext()))},this.getFocusChromeNavigation());if(!i){this.navigateTab(e);return}this.deps.ensureIndexVisible(i.rowIndex,`middle`),this.deps.ensureColumnVisible(i.colIndex),this.setFocusedCell(i),this.syncSingleCellRangeToFocus(),this.deps.redrawImmediately(),this.startEditingFocusedCell()}keyToFocusDirection(e){switch(e){case`ArrowUp`:return`up`;case`ArrowDown`:return`down`;case`ArrowLeft`:return`left`;case`ArrowRight`:return`right`;default:return null}}navigateFocus(e){let t=this.deps.rowModel.getRowCount(),n=vf(this.deps.columnModel);if(t===0||n.length===0)return;let r=this.deps.cellFocusService.move(e,t,n,e=>this.deps.rowModel.getRow(e)?.id,e=>this.deps.columnModel.getColumn(e)?.colId,this.getFocusChromeNavigation());r&&(J(r)||this.deps.ensureIndexVisible(r.rowIndex,`middle`),this.deps.ensureColumnVisible(r.colIndex),this.setFocusedCell(r))}navigateFocusToEdge(e){let t=this.deps.rowModel.getRowCount(),n=vf(this.deps.columnModel);if(t===0||n.length===0)return;let r=this.deps.cellFocusService.moveToEdge(e,t,n,e=>this.deps.rowModel.getRow(e)?.id,e=>this.deps.columnModel.getColumn(e)?.colId,this.getFocusChromeNavigation());r&&(J(r)||(e===`up`?this.deps.ensureIndexVisible(r.rowIndex,`top`):e===`down`?this.deps.ensureIndexVisible(r.rowIndex,`bottom`):this.deps.ensureIndexVisible(r.rowIndex,`middle`)),this.deps.ensureColumnVisible(r.colIndex),this.setFocusedCell(r))}navigateTab(e){let t=this.deps.rowModel.getRowCount(),n=vf(this.deps.columnModel);if(t===0||n.length===0)return;let r=this.deps.cellFocusService.moveTab(e,t,n,e=>this.deps.rowModel.getRow(e)?.id,e=>this.deps.columnModel.getColumn(e)?.colId,this.getFocusChromeNavigation());r&&(J(r)||this.deps.ensureIndexVisible(r.rowIndex,`middle`),this.deps.ensureColumnVisible(r.colIndex),this.setFocusedCell(r),this.syncSingleCellRangeToFocus())}setFocusedCell(e){let t=this.normalizeSpanFocus(e);if(this.deps.cellFocusService.setFocusedCell(t),this.applyFocusVisuals(),J(t)){let e=this.deps.rowModel.getRow(0);e&&this.emitCellFocused({rowId:t.rowId,colId:t.colId,rowIndex:t.rowIndex,rowNode:e});return}let n=this.deps.rowModel.getRow(t.rowIndex);n&&this.emitCellFocused({rowId:t.rowId,colId:t.colId,rowIndex:t.rowIndex,rowNode:n})}buildCellFocusedPayload(e){let t=this.deps.columnModel.getColumnById(e.colId),n=t?U(e.rowNode,t):e.rowNode.data[e.colId];return{...e,value:n}}emitCellFocused(e){this.deps.eventBus.emit(`cellFocused`,this.buildCellFocusedPayload(e))}normalizeSpanFocus(e){let t=this.deps.cellSpanService();if(!t?.active||J(e))return e;let n=t.normalizePosition(e.rowId,e.colId);if(n.rowId===e.rowId)return e;let r=this.deps.rowModel.getRowIndexById(n.rowId);return r<0?e:{rowId:n.rowId,colId:n.colId,rowIndex:r,colIndex:mS(this.deps.columnModel,n.colId)}}focusCellTarget(e){this.setFocusedCell({rowId:e.rowId,colId:e.colId,rowIndex:e.rowIndex,colIndex:mS(this.deps.columnModel,e.colId)})}toggleIndexFocusFromFocus(){let e=this.deps.cellFocusService.getFocusedCell();return!e||J(e)||!this.host.isIndexColumnEntry(e.colId)?!1:(this.host.applyIndexFocus(e.rowId,e.rowIndex,e.colId,{toggleOnReselect:!0}),!0)}toggleInlineEditorFromFocus(){let e=this.deps.cellFocusService.getFocusedCell();return!e||J(e)?!1:this.toggleInlineToggleAtCell(e.rowId,e.colId,e.rowIndex)}toggleRowSelectionFromFocus(){let e=this.deps.cellFocusService.getFocusedCell();return!e||J(e)||!this.host.isSelectionColumnEntry(e.colId)?!1:(this.host.applyRowSelection(e.rowId,e.rowIndex,e.colId,{toggleOnReselect:!0}),!0)}toggleRowExpandFromFocus(){let e=this.deps.cellFocusService.getFocusedCell();return!e||J(e)||!this.host.isExpandColumnEntry(e.colId)?!1:(this.host.applyRowExpansionToggle(e.rowId,e.rowIndex,e.colId),!0)}toggleRowGroupFromFocus(){let e=this.deps.cellFocusService.getFocusedCell();return!e||J(e)||!this.host.isGroupColumnEntry(e.colId)?!1:(this.host.applyRowGroupingToggle(e.rowId,e.rowIndex,e.colId),!0)}toggleTreeTableFromFocus(){let e=this.deps.cellFocusService.getFocusedCell();return!e||J(e)||!this.host.isTreeColumnEntry(e.colId)?!1:(this.host.applyTreeTableToggle(e.rowId,e.rowIndex,e.colId),!0)}tryMoveFocusedHeaderColumn(e){if(!this.isHeaderNavigationEnabled())return!1;let n=this.deps.cellFocusService.getFocusedCell();if(!n||!Tf(n))return!1;let r=n.colId;if(t.it(r)||t.X(r))return!1;let i=wg({columns:this.deps.columnModel.getColumns(),colId:r,toGlobalIndex:-1,fixedGroups:this.deps.columnModel.getFixedColumnGroups(),direction:e});return i==null||!this.deps.moveColumn(r,i,!0)?!1:(this.setFocusedCell({rowId:n.rowId,colId:r,rowIndex:n.rowIndex,colIndex:i}),!0)}toggleHeaderSortFromFocus(){let e=this.deps.cellFocusService.getFocusedCell();return!e||!Tf(e)||!this.host.canToggleHeaderSort(e.colId)?!1:(this.deps.toggleHeaderSort(e.colId),!0)}toggleHeaderSelectionFromFocus(){let e=this.deps.cellFocusService.getFocusedCell();return!e||!Tf(e)||!this.host.isSelectionColumnEntry(e.colId)||!this.host.isSelectionHeaderMultiple()?!1:(this.host.toggleSelectAllVisibleRows(),!0)}startEditingFocusedCell(){let e=this.deps.cellFocusService.getFocusedCell();if(!e||J(e))return;let n=this.deps.rowModel.getRow(e.rowIndex);if(!n)return;let r=this.deps.mountEl.querySelector(`.mg-row[data-row-id="${e.rowId}"]`);if(!r)return;if(fn(this.deps.editBehavior)){this.deps.tryStartRowEditing({rowId:e.rowId,colId:e.colId,rowIndex:e.rowIndex,rowNode:n,rowElement:r});return}let i=this.deps.columnModel.getColumnById(e.colId);!i||!H(i,n,this.deps.getCellDisableContext())||t.V(i)||this.deps.tryStartCellEditing({rowId:e.rowId,colId:e.colId,rowIndex:e.rowIndex,rowNode:n,rowElement:r})}isHeaderNavigationEnabled(){return this.deps.navigateHeader()}isFooterNavigationEnabled(){return this.deps.showSummary()&&this.deps.navigateFooter()}isInlineToggleClickTarget(e){return of(e)}toggleInlineToggleAtCell(e,n,r){let i=this.deps.columnModel.getColumnById(n);if(!i||!t.V(i)||!af(i.cellEditor))return!1;let a=this.deps.rowModel.getRow(r);if(!a||!H(i,a,this.deps.getCellDisableContext()))return!1;let o=this.deps.mountEl.querySelector(`.mg-row[data-row-id="${e}"] .mg-cell[data-col-id="${n}"]`);if(!o)return!1;let s=i.cellEditor===`switch`?Yd:Jd,c=o.querySelector(`input.${s}`);return!c||c.disabled?!1:(c.checked=!c.checked,c.dispatchEvent(new Event(`change`,{bubbles:!0})),!0)}isGroupOrTreeExpandClickTarget(e){return e instanceof Element?e.closest(`button.mg-cell__group-expand`)!=null||e.closest(`button.mg-cell__tree-expand`)!=null:!1}syncFooterFocusVisual(e){this.deps.mountEl.querySelectorAll(`.mg-footer-cell[data-col-id]`).forEach(t=>{t instanceof HTMLElement&&t.classList.toggle(`mg-footer-cell--focused`,e!==null&&t.dataset.colId===e)})}syncHeaderFocusVisual(e){this.deps.mountEl.querySelectorAll(`.mg-header-cell[data-col-id]`).forEach(t=>{t instanceof HTMLElement&&t.classList.toggle(`mg-header-cell--focused`,e!==null&&t.dataset.colId===e)})}getFocusChromeNavigation(){return{headerEnabled:this.isHeaderNavigationEnabled(),footerEnabled:this.isFooterNavigationEnabled()}}},uE=class{deps;host;drag=null;scrollRaf=null;constructor(e,t){this.deps=e,this.host=t}get rootDoc(){return CS(this.deps.viewportEl)}isActive(){return this.drag!=null}begin(e){this.end();let t=e.kind===`index`?this.deps.indexFocusService:this.deps.selectionService,n=null,r=null;e.ctrlKey&&t?.isMultiple()&&(n=t.isSelected(e.anchorRowId)?`remove`:`add`,r=new Set(t.getSelectedRowIds())),t?.setAnchorIndex(e.rowIndex),this.drag={kind:e.kind,anchorRowIndex:e.rowIndex,anchorRowId:e.anchorRowId,colId:e.colId,startY:e.clientY,moved:!1,pointerY:e.clientY,ctrlRangeMode:n,baselineRowIds:r},e.kind===`selection`&&this.host.clearCellRangesOnRowSelectionInteraction(),this.rootDoc.body.classList.add(`mg-row-drag-selecting`),this.host.setFocusedCell({rowId:e.anchorRowId,colId:e.colId,rowIndex:e.rowIndex,colIndex:this.host.getColIndex(e.colId)}),this.deps.viewportEl.focus(),this.rootDoc.addEventListener(`mousemove`,this.handleMove,!0),this.rootDoc.addEventListener(`mouseup`,this.handleUp,!0)}end(){this.rootDoc.removeEventListener(`mousemove`,this.handleMove,!0),this.rootDoc.removeEventListener(`mouseup`,this.handleUp,!0),this.rootDoc.body.classList.remove(`mg-row-drag-selecting`),this.scrollRaf!=null&&(cancelAnimationFrame(this.scrollRaf),this.scrollRaf=null),this.drag=null}handleMove=e=>{if(!this.drag)return;if(e.buttons===0){this.handleUp();return}this.drag.pointerY=e.clientY,this.updateFromPointer(e.clientX,e.clientY);let t=this.deps.viewportEl.getBoundingClientRect();$y(e.clientY,t.top,t.bottom)&&this.ensureEdgeScrollLoop()};handleUp=()=>{if(!this.drag)return;let e=this.drag;e.moved?this.host.setSuppressColumnClick(!0):e.kind===`index`?this.host.applyIndexFocus(e.anchorRowId,e.anchorRowIndex,e.colId,{toggleOnReselect:!0}):this.host.applyRowSelection(e.anchorRowId,e.anchorRowIndex,e.colId,{toggleOnReselect:!0}),this.end()};updateFromPointer(e,t){if(!this.drag)return;let n=Zy(this.deps.rowModel,this.deps.viewportEl,e,t,()=>this.deps.getLogicalScrollTop());n&&(Math.abs(t-this.drag.startY)>3||n.rowIndex!==this.drag.anchorRowIndex)&&(this.drag.moved=!0,this.applyRange(n.rowIndex),this.deps.ensureIndexVisible(n.rowIndex,`middle`))}ensureEdgeScrollLoop(){this.scrollRaf??=requestAnimationFrame(this.tickEdgeScroll)}tickEdgeScroll=()=>{if(!this.drag){this.scrollRaf=null;return}let e=this.drag,t=this.deps.viewportEl.getBoundingClientRect(),n=Xy(e.pointerY,t.top,t.bottom,this.deps.getRowHeight());if(n!==0&&this.deps.scrollByDelta(n),this.updateFromPointer(t.left+this.deps.viewportEl.clientWidth/2,e.pointerY),$y(e.pointerY,t.top,t.bottom)){this.scrollRaf=requestAnimationFrame(this.tickEdgeScroll);return}this.scrollRaf=null};applyRange(e){if(!this.drag)return;let t=e=>this.deps.rowModel.getRow(e)?.id,n=e=>this.deps.getSelectableRowIdAt(e),r=this.drag,i={rowCount:this.deps.rowModel.getRowCount(),getAllRowIdAt:t};if(r.kind===`index`){if(!this.deps.indexFocusService)return;r.ctrlRangeMode&&r.baselineRowIds?r.ctrlRangeMode===`add`?this.deps.indexFocusService.addRangeToSelection(r.anchorRowIndex,e,t,r.baselineRowIds):this.deps.indexFocusService.removeRangeFromSelection(r.anchorRowIndex,e,t,r.baselineRowIds):this.deps.indexFocusService.selectRangeBetween(r.anchorRowIndex,e,t),this.deps.applyIndexFocusVisuals(),this.deps.emitIndexFocusChanged(this.deps.indexFocusService.getFocusedRowIds()),this.host.syncCellRangeFromIndexFocus?.(e);return}this.deps.selectionService&&(r.ctrlRangeMode&&r.baselineRowIds?r.ctrlRangeMode===`add`?this.deps.selectionService.addRangeToSelection(r.anchorRowIndex,e,n,r.baselineRowIds):this.deps.selectionService.removeRangeFromSelection(r.anchorRowIndex,e,n,r.baselineRowIds,i):this.deps.selectionService.selectRangeBetween(r.anchorRowIndex,e,n,i),this.deps.applySelectionVisuals(),this.deps.emitSelectionChanged(this.deps.selectionService.getSelectedRowIds()))}};function dE(e,t,n,r){if(!n?.active)return r;let i=n.normalizePosition(r.rowId,r.colId);if(i.rowId===r.rowId)return r;let a=e.getRowIndexById(i.rowId);return a<0||t.getColumnById(i.colId)==null?r:{rowId:i.rowId,rowIndex:a,colId:i.colId}}function fE(e,t,n,r){return Xy(e,t,n,r)}function pE(e,t,n){return XT(e,t,n)}function mE(e,t,n){return $y(e,t,n)}function hE(e,t,n){return ZT(e,t,n)}function gE(e,t,n){return mE(t,n.top,n.bottom)||hE(e,n.left,n.right)}function _E(e){return e.fixed??`center`}function vE(e,t,n){if(!n)return!1;let r=_E(e);return r===`right`||r===t}function yE(e,t,n,r){let i=e-t.left,a=n.getLeftFixedWidth(),o=n.getRightFixedWidth(),s=Math.max(0,r-a-o);return i<a?`left`:i>=a+s?`right`:`center`}function bE(e,t,n){let r=n.getBoundingClientRect();return e>=r.left&&e<r.right&&t>=r.top&&t<r.bottom}var xE={left:[`left`,`center`,`right`],center:[`center`,`left`,`right`],right:[`right`,`center`,`left`]};function SE(e,t){let n=e.querySelectorAll?.(`.mg-row[data-row-id]`);if(!n)return null;for(let e of n)if(e instanceof HTMLElement&&e.dataset.rowId===t)return e;return null}function CE(e,t,n,r,i,a){let o=yE(t,a,r,i.clientWidth);for(let i of xE[o]){let a=e.querySelector(`.mg-row__lane--${i}`);if(a instanceof HTMLElement)for(let e of a.querySelectorAll(`.mg-cell[data-col-id]`)){if(!(e instanceof HTMLElement))continue;let i=e.dataset.colId;if(!i||!bE(t,n,e))continue;let a=r.getColumnById(i);if(!(!a||a.hidden)&&vE(a,o,!0))return i}}return null}function wE(e,t,n,r,i){let a=document.elementFromPoint(e,t)?.closest(`.mg-cell`),o=a?.dataset.colId;if(!o||!a)return null;let s=n.getColumnById(o);if(!s||s.hidden)return null;let c=yE(e,i,n,r.clientWidth),l=_E(s);if(vE(s,c,bE(e,t,a)))return o;if(l!==c)return null;if(c===`center`){let t=n.getLeftFixedWidth(),a=n.getRightFixedWidth(),o=n.getCenterTotalWidth(),s=Math.max(0,r.clientWidth-t-a),c=a_(r.scrollLeft,o,s);if(EE(e-i.left,t,o,c))return null}return o}function TE(e,t){return e.filter(e=>_E(e)===t)}function EE(e,t,n,r){return r+(e-t)>=n}function DE(e,t,n,r){let i=e.getDisplayedColumns();if(i.length===0)return null;let a=t.getBoundingClientRect(),o=n-a.left,s=e.getLeftFixedWidth(),c=e.getRightFixedWidth(),l=e.getCenterTotalWidth(),u=Math.max(0,t.clientWidth-s-c),d=yE(n,a,e,t.clientWidth);if(d===`left`){let e=TE(i,`left`);return e.length===0?null:e[n_(e,o)]?.colId??null}if(d===`right`){let e=TE(i,`right`);if(e.length===0)return null;let t=s+l,n=o-s-u;return e[n_(e.map(e=>({...e,left:e.left-t})),n)]?.colId??null}let f=TE(i,`center`);if(f.length===0)return null;let p=a_(r,l,u);return EE(o,s,l,p)?null:f[n_(f,p+(o-s))]?.colId??null}function OE(e,t,n,r,i,a,o){let s=Zy(e,n,r,i,a);if(!s)return null;let c=n.getBoundingClientRect(),l=o(),u=SE(n,s.rowId),d=(u==null?null:CE(u,r,i,t,n,c))??wE(r,i,t,n,c)??DE(t,n,r,l);return d?{rowIndex:s.rowIndex,colId:d}:null}var kE=class{deps;host;drag=null;scrollRaf=null;constructor(e,t){this.deps=e,this.host=t}get rootDoc(){return CS(this.deps.viewportEl)}isActive(){return this.drag!=null}canStart(e,t,n=`replace`){if(!this.deps.isCellSelectionEnabled()||!this.deps.getCellRangeService()||this.deps.isEditing()||this.deps.isCommitting())return!1;if(n===`replace`){if(t.shiftKey||t.ctrlKey||t.metaKey)return!1}else if(t.shiftKey||!t.ctrlKey&&!t.metaKey)return!1;else if(this.deps.getCellRangeService()?.isSuppressMultiRanges())return!1;if(this.deps.isInlineToggleClickTarget(t.target)||this.deps.isGroupOrTreeExpandClickTarget?.(t.target))return!1;let r=t.target?.closest(`.mg-cell`);if(r&&this.deps.isPointerOverCellCommentIndicator(r,t.clientX,t.clientY)||(t.target instanceof Element?t.target:null)?.closest(`.mg-cell__row-resize-handle, .mg-cell__row-drag-handle`))return!1;let i=e.rowNode.rowKind;return _s(e.colId,i)}begin(e){this.end();let t=e.mode??`replace`,n=this.deps.getCellRangeService(),r=t===`append`&&n?n.getRanges():[],i=dE(this.deps.rowModel,this.deps.columnModel,this.deps.getCellSpanService?.()??null,{rowId:e.anchorRowId,rowIndex:e.anchorRowIndex,colId:e.anchorColId});this.drag={mode:t,baseRanges:r,anchorRowIndex:i.rowIndex,anchorColId:i.colId,anchorRowId:i.rowId,startX:e.clientX,startY:e.clientY,moved:!1,pointerX:e.clientX,pointerY:e.clientY},this.rootDoc.body.classList.add(`mg-cell-range-dragging`),this.host.setFocusedCell({rowId:i.rowId,colId:i.colId,rowIndex:i.rowIndex,colIndex:this.host.getColIndex(i.colId)}),this.deps.viewportEl.focus(),this.rootDoc.addEventListener(`mousemove`,this.handleMove,!0),this.rootDoc.addEventListener(`mouseup`,this.handleUp,!0)}end(){this.rootDoc.removeEventListener(`mousemove`,this.handleMove,!0),this.rootDoc.removeEventListener(`mouseup`,this.handleUp,!0),this.rootDoc.body.classList.remove(`mg-cell-range-dragging`),this.scrollRaf!=null&&(cancelAnimationFrame(this.scrollRaf),this.scrollRaf=null),this.drag=null}handleMove=e=>{if(!this.drag)return;if(e.buttons===0){this.handleUp();return}this.drag.pointerX=e.clientX,this.drag.pointerY=e.clientY,this.updateFromPointer(e.clientX,e.clientY);let t=this.deps.viewportEl.getBoundingClientRect();gE(e.clientX,e.clientY,t)&&this.ensureEdgeScrollLoop()};handleUp=()=>{if(!this.drag)return;let e=this.drag;e.moved?this.host.setSuppressColumnClick(!0):e.mode===`append`?this.appendSingleCellRange(e.anchorRowIndex,e.anchorColId):this.applyRange(e.anchorRowIndex,e.anchorColId),this.end()};updateFromPointer(e,t){if(!this.drag)return;let n=OE(this.deps.rowModel,this.deps.columnModel,this.deps.viewportEl,e,t,()=>this.deps.getLogicalScrollTop(),()=>this.deps.getScrollLeft());if(!n)return;let r=this.deps.rowModel.getRow(n.rowIndex),i=r?.rowKind;if(!r||!_s(n.colId,i))return;let a=dE(this.deps.rowModel,this.deps.columnModel,this.deps.getCellSpanService?.()??null,{rowId:r.id,rowIndex:n.rowIndex,colId:n.colId});(Math.abs(e-this.drag.startX)>4||Math.abs(t-this.drag.startY)>4||a.rowIndex!==this.drag.anchorRowIndex||a.colId!==this.drag.anchorColId)&&(this.drag.moved=!0,this.applyRange(a.rowIndex,a.colId))}ensureEdgeScrollLoop(){this.scrollRaf??=requestAnimationFrame(this.tickEdgeScroll)}tickEdgeScroll=()=>{if(!this.drag){this.scrollRaf=null;return}let e=this.drag,t=this.deps.viewportEl.getBoundingClientRect(),n=fE(e.pointerY,t.top,t.bottom,this.deps.getRowHeight()),r=pE(e.pointerX,t.left,t.right);if(n!==0&&this.deps.scrollByDelta(n),r!==0&&this.deps.scrollByHorizontalDelta(r),this.updateFromPointer(e.pointerX,e.pointerY),gE(e.pointerX,e.pointerY,t)){this.scrollRaf=requestAnimationFrame(this.tickEdgeScroll);return}this.scrollRaf=null};applyRange(e,t){let n=this.deps.getCellRangeService();if(!this.drag||!n)return;let r=Ts({rowIndex:this.drag.anchorRowIndex,colId:this.drag.anchorColId},{rowIndex:e,colId:t}),i=this.deps.getCellRangeOperationContext(),a={rowIndex:this.drag.anchorRowIndex,colId:this.drag.anchorColId};(this.drag.mode===`append`?this.commitAppendRange(r,a,i):n.setRanges([r],i,a))&&(this.deps.applyCellRangeVisuals(),this.deps.emitCellSelectionChanged(`ui`))}commitAppendRange(e,t,n){let r=this.deps.getCellRangeService(),i=this.drag;return!r||!i?!1:r.setRanges([...i.baseRanges,e],n,t)}appendSingleCellRange(e,t){let n=this.deps.getCellRangeService(),r=this.drag;if(!n||!r)return;let i={rowIndex:e,colId:t},a=Ts(i,i),o=this.deps.getCellRangeOperationContext();n.addRange(a,o,i)&&(this.deps.applyCellRangeVisuals(),this.deps.emitCellSelectionChanged(`ui`))}},AE=class{deps;drag=null;scrollRaf=null;get rootDoc(){return CS(this.deps.viewportEl)}constructor(e){this.deps=e}isActive(){return this.drag!=null}canStart(){if(this.deps.isCommitting()||!xs(this.deps.getCellSelectionOptions()))return!1;let e=this.deps.getCellRangeService();return!(!e||e.getRanges().length!==1)}begin(e,t){if(!this.canStart())return!1;let n=this.deps.getCellRangeService(),r=this.deps.getCellRangeOperationContext(),i=n.getRanges()[0],a=W(i,r.displayedColIds);return a?(this.end(),this.drag={fixedAnchor:{rowIndex:a.top,colId:a.leftColId},sourceRange:a,previewRange:a,pointerX:e,pointerY:t},this.rootDoc.body.classList.add(`mg-fill-handle-dragging`),this.rootDoc.addEventListener(`mousemove`,this.handleMove,!0),this.rootDoc.addEventListener(`mouseup`,this.handleUp,!0),!0):!1}end(){this.rootDoc.removeEventListener(`mousemove`,this.handleMove,!0),this.rootDoc.removeEventListener(`mouseup`,this.handleUp,!0),this.rootDoc.body.classList.remove(`mg-fill-handle-dragging`),this.scrollRaf!=null&&(cancelAnimationFrame(this.scrollRaf),this.scrollRaf=null),this.drag=null}handleMove=e=>{if(!this.drag)return;if(e.buttons===0){this.handleUp();return}this.drag.pointerX=e.clientX,this.drag.pointerY=e.clientY,this.updateFromPointer(e.clientX,e.clientY);let t=this.deps.viewportEl.getBoundingClientRect();gE(e.clientX,e.clientY,t)&&this.ensureEdgeScrollLoop()};handleUp=()=>{this.drag&&(this.commitFill(),this.deps.emitCellSelectionChanged(`ui`),this.end())};commitFill(){let e=this.drag;if(!e)return;let t=this.getFillOptions();if(!t)return;let n=this.deps.getCellRangeOperationContext(),r=this.deps.getFillWriteService();if(!r)return;let i=iS(e.sourceRange,e.previewRange,n.displayedColIds),a=t.fillReverseStrategy===`clear`?aS(e.sourceRange,e.previewRange,n.displayedColIds):[];(i.length!==0||a.length!==0)&&r.commitFillRange({sourceRange:e.sourceRange,displayedColIds:n.displayedColIds,fillOptions:t,added:i,removed:a})}updateFromPointer(e,t){if(!this.drag)return;let n=OE(this.deps.rowModel,this.deps.columnModel,this.deps.viewportEl,e,t,()=>this.deps.getLogicalScrollTop(),()=>this.deps.getScrollLeft());if(!n)return;let r=this.deps.rowModel.getRow(n.rowIndex);if(!r)return;let i=dE(this.deps.rowModel,this.deps.columnModel,this.deps.getCellSpanService?.()??null,{rowId:r.id,rowIndex:n.rowIndex,colId:n.colId}),a=this.getFillOptions();if(!a)return;let o=this.deps.getCellRangeOperationContext(),s=Xx({fixedAnchor:this.drag.fixedAnchor,pointer:i,sourceRange:this.drag.sourceRange,direction:a.direction,displayedColIds:o.displayedColIds});if(!s)return;let c=this.deps.getCellRangeService();c&&(c.setRanges([Ds(s)],o,c.getAnchor())&&this.deps.applyCellRangeVisuals(),this.drag.previewRange=s)}getFillOptions(){let e=this.deps.getCellSelectionOptions().handle;return!e||e.mode!==`fill`?null:e}ensureEdgeScrollLoop(){this.scrollRaf??=requestAnimationFrame(this.tickEdgeScroll)}tickEdgeScroll=()=>{let e=this.drag;if(!e){this.scrollRaf=null;return}let t=this.deps.viewportEl.getBoundingClientRect(),n=fE(e.pointerY,t.top,t.bottom,this.deps.getRowHeight()),r=pE(e.pointerX,t.left,t.right);if(n!==0&&this.deps.scrollByDelta(n),r!==0&&this.deps.scrollByHorizontalDelta(r),this.updateFromPointer(e.pointerX,e.pointerY),gE(e.pointerX,e.pointerY,t)){this.scrollRaf=requestAnimationFrame(this.tickEdgeScroll);return}this.scrollRaf=null}},jE=class{deps;drag=null;scrollRaf=null;get rootDoc(){return CS(this.deps.viewportEl)}constructor(e){this.deps=e}isActive(){return this.drag!=null}canStart(){if(this.deps.isCommitting()||!Ss(this.deps.getCellSelectionOptions()))return!1;let e=this.deps.getCellRangeService();return!(!e||e.getRanges().length!==1)}begin(e,t){if(!this.canStart())return!1;let n=this.deps.getCellRangeService(),r=this.deps.getCellRangeOperationContext(),i=n.getRanges()[0],a=W(i,r.displayedColIds);if(!a)return!1;let o=n.getAnchor(),s=o??{rowIndex:a.top,colId:a.leftColId};return o||n.setAnchor(s),this.end(),this.drag={fixedAnchor:s,sourceRange:a,pointerX:e,pointerY:t},this.rootDoc.body.classList.add(`mg-range-handle-dragging`),this.rootDoc.addEventListener(`mousemove`,this.handleMove,!0),this.rootDoc.addEventListener(`mouseup`,this.handleUp,!0),!0}end(){this.rootDoc.removeEventListener(`mousemove`,this.handleMove,!0),this.rootDoc.removeEventListener(`mouseup`,this.handleUp,!0),this.rootDoc.body.classList.remove(`mg-range-handle-dragging`),this.scrollRaf!=null&&(cancelAnimationFrame(this.scrollRaf),this.scrollRaf=null),this.drag=null}handleMove=e=>{if(!this.drag)return;if(e.buttons===0){this.handleUp();return}this.drag.pointerX=e.clientX,this.drag.pointerY=e.clientY,this.updateFromPointer(e.clientX,e.clientY);let t=this.deps.viewportEl.getBoundingClientRect();gE(e.clientX,e.clientY,t)&&this.ensureEdgeScrollLoop()};handleUp=()=>{this.drag&&(this.deps.emitCellSelectionChanged(`ui`),this.end())};updateFromPointer(e,t){if(!this.drag)return;let n=OE(this.deps.rowModel,this.deps.columnModel,this.deps.viewportEl,e,t,()=>this.deps.getLogicalScrollTop(),()=>this.deps.getScrollLeft());if(!n)return;let r=this.deps.rowModel.getRow(n.rowIndex);if(!r)return;let i=dE(this.deps.rowModel,this.deps.columnModel,this.deps.getCellSpanService?.()??null,{rowId:r.id,rowIndex:n.rowIndex,colId:n.colId}),a=this.deps.getCellRangeService();if(!a)return;let o=this.deps.getCellRangeOperationContext();a.extendFromAnchor({rowIndex:i.rowIndex,colId:i.colId},o)&&this.deps.applyCellRangeVisuals()}ensureEdgeScrollLoop(){this.scrollRaf??=requestAnimationFrame(this.tickEdgeScroll)}tickEdgeScroll=()=>{let e=this.drag;if(!e){this.scrollRaf=null;return}let t=this.deps.viewportEl.getBoundingClientRect(),n=fE(e.pointerY,t.top,t.bottom,this.deps.getRowHeight()),r=pE(e.pointerX,t.left,t.right);if(n!==0&&this.deps.scrollByDelta(n),r!==0&&this.deps.scrollByHorizontalDelta(r),this.updateFromPointer(e.pointerX,e.pointerY),gE(e.pointerX,e.pointerY,t)){this.scrollRaf=requestAnimationFrame(this.tickEdgeScroll);return}this.scrollRaf=null}},ME=class{deps;constructor(e){this.deps=e}isEligibleDataCell(e,t){return _s(e,t)}normalizeTarget(e){let t=dE(this.deps.rowModel,this.deps.columnModel,this.deps.getCellSpanService?.()??null,{rowId:e.rowId,rowIndex:e.rowIndex,colId:e.colId});if(t.rowId===e.rowId&&t.rowIndex===e.rowIndex&&t.colId===e.colId)return e;let n=this.deps.rowModel.getRow(t.rowIndex)??e.rowNode;return{rowId:t.rowId,rowIndex:t.rowIndex,colId:t.colId,rowNode:n,rowElement:e.rowElement}}normalizePosition(e,t,n){return dE(this.deps.rowModel,this.deps.columnModel,this.deps.getCellSpanService?.()??null,{rowId:e,rowIndex:t,colId:n})}isActive(){return this.deps.isCellSelectionEnabled()&&this.deps.getCellRangeService()!=null}commitRangeChange(e=`ui`){this.deps.applyCellRangeVisuals(),this.deps.emitCellSelectionChanged(e)}clearAllRanges(e=`ui`){return this.deps.getCellRangeService()?.clear()?(this.commitRangeChange(e),!0):!1}tryHeaderColumnSelection(e){if(!this.deps.getCellSelectionOptions?.().enableColumnSelection||!this.isActive()||this.deps.isEditing()||this.deps.isCommitting()||ps(e))return!1;let t=this.deps.rowModel.getRowCount();if(t===0)return!1;let n=this.deps.getCellRangeService();if(!n)return!1;let r=this.deps.getCellRangeOperationContext(),i=js(e,t,r.rowKindAt??(()=>void 0));if(!i)return!1;let a={rowIndex:i.startRowIndex,colId:i.startColId};return!n.setRanges([i],r,a)||!n.hasRanges()?!1:(this.commitRangeChange(),!0)}tryClearOnBlankViewportClick(){return this.isActive()?this.clearAllRanges():!1}tryClearOnPlainClick(e){return this.isActive()?this.setSingleCellRange(e):!1}tryClearOnNonRangeTargetClick(){return!this.isActive()||!this.deps.getCellRangeService()?.hasRanges()?!1:this.clearAllRanges()}selectFocusedCellRange(){if(!this.isActive())return!1;let e=this.deps.cellFocusService.getFocusedCell();if(!e||J(e))return!1;let t=this.deps.rowModel.getRow(e.rowIndex);return t?this.isEligibleDataCell(e.colId,t.rowKind)?this.setSingleCellRange({rowId:t.id,rowIndex:e.rowIndex,colId:e.colId,rowNode:t}):this.tryClearOnNonRangeTargetClick():!1}setSingleCellRange(e,t=`ui`){let n=this.deps.getCellRangeService();if(!n)return!1;let r=this.normalizeTarget(e);if(!this.isEligibleDataCell(r.colId,r.rowNode.rowKind))return!1;let i={rowIndex:r.rowIndex,colId:r.colId},a=Ts(i,i);return n.setRanges([a],this.deps.getCellRangeOperationContext(),i)&&this.commitRangeChange(t),!0}tryHandleModifierMouseDown(e,t){if(!t.shiftKey&&!t.ctrlKey&&!t.metaKey||!this.isActive()||this.deps.isEditing()||this.deps.isCommitting()||!this.isEligibleDataCell(e.colId,e.rowNode.rowKind))return!1;t.preventDefault();let n=this.normalizeTarget(e);return t.shiftKey&&!t.ctrlKey&&!t.metaKey?this.handleShiftClick(n):this.handleCtrlClick(n),!0}handleShiftClick(e){let t=this.deps.getCellRangeService(),n=this.deps.getCellRangeOperationContext(),r=this.deps.cellFocusService.getFocusedCell(),i={rowIndex:e.rowIndex,colId:e.colId};r&&!J(r)?t.extendFocusedRange({rowIndex:r.rowIndex,colId:r.colId},i,n):t.setRanges([Ts(i,i)],n,i),this.commitRangeChange()}handleCtrlClick(e){let t=this.deps.getCellRangeService(),n=this.deps.getCellRangeOperationContext(),r={rowIndex:e.rowIndex,colId:e.colId},i=Ts(r,r);t.isSuppressMultiRanges()?t.setRanges([i],n,r):t.addRange(i,n,r),this.commitRangeChange()}onArrowKey(e,t){if(!this.isActive())return!1;if(!t)return!0;let n=this.deps.cellFocusService.getFocusedCell();if(!n||J(n)||!this.isEligibleDataCell(n.colId,this.deps.rowModel.getRow(n.rowIndex)?.rowKind))return!0;let r=Af(n,e,this.deps.rowModel.getRowCount(),vf(this.deps.columnModel),e=>this.deps.rowModel.getRow(e)?.id,e=>this.deps.columnModel.getColumn(e)?.colId,this.deps.getFocusChromeNavigation());if(!r||J(r))return!0;let i=this.deps.rowModel.getRow(r.rowIndex)?.id;if(!i)return!0;let a=this.normalizePosition(i,r.rowIndex,r.colId);return a.rowIndex===n.rowIndex&&a.colId===n.colId||(this.deps.getCellRangeService().extendFocusedRange({rowIndex:n.rowIndex,colId:n.colId},{rowIndex:a.rowIndex,colId:a.colId},this.deps.getCellRangeOperationContext()),this.commitRangeChange(),!0)}handleDeleteKey(){return!this.isActive()||!this.deps.getCellRangeService()?.hasRanges()||this.deps.isCommitting()?!1:(this.deps.handleCellSelectionDeleteKey?.(),!0)}syncFromIndexFocus(e){if(!this.deps.showIndexColumn?.()||!this.isActive())return!1;let t=this.deps.getCellRangeOperationContext(),n=t.rowKindAt??(()=>void 0),r=Ps({focusedRowIndices:(this.deps.getIndexFocusedRowIds?.()??[]).map(e=>this.deps.rowModel.getRowIndexById(e)).filter(e=>e>=0),displayedColIds:t.displayedColIds,rowKindAt:n,suppressMultiRanges:this.deps.getCellSelectionOptions?.().suppressMultiRanges??!0,currentRowIndex:e}),i=this.deps.getCellRangeService();if(!i)return!1;if(r.length===0)return i.hasRanges()?(i.clear(),this.commitRangeChange(),!0):!1;let a={rowIndex:r[0].startRowIndex,colId:r[0].startColId},o=i.setRanges(r,t,a);return o&&this.commitRangeChange(),o}};function NE(e,t){let n=t.clientY,r=0,i=!1,a=t=>{if(e.rootEl.classList.toggle(`mg-root--row-resizing`,t),t){document.body.style.cursor=`row-resize`,document.body.style.userSelect=`none`;return}document.body.style.removeProperty(`cursor`),document.body.style.removeProperty(`user-select`)},o=t=>{i||(i=!0,document.removeEventListener(`mousemove`,s,!0),document.removeEventListener(`mouseup`,c,!0),a(!1),t&&e.onResizeEnd(r))},s=t=>{if(t.buttons===0){o(!0);return}r=t.clientY-n,e.onResizing(r)},c=()=>{o(!0)};return a(!0),e.onResizeStart(t.shiftKey),document.addEventListener(`mousemove`,s,!0),document.addEventListener(`mouseup`,c,!0),()=>o(!1)}var PE=class{deps;rowResize=null;rowResizeFrame=null;pendingRowResizeAmount=null;constructor(e){this.deps=e}isActive(){return this.rowResize!=null}refreshVisualState(){let e=this.rowResize;if(!e)return;let n=SS(this.deps.mountEl).querySelector(`.mg-row[data-row-id="${CSS.escape(e.rowId)}"] .mg-cell[data-col-id="${CSS.escape(t.tt)}"]`);n&&(e.sourceCell=n,this.markActiveCell(n))}canStart(e,n,r){return r||this.rowResize||!this.deps.indexColumnOptions.showIndexColumn||!this.deps.indexColumnOptions.indexColumn.enableRowResizer||!t.it(e)?!1:Q(n)?.closest(`.${Fa}`)!=null}begin(e){this.end(!1);let t=this.deps.rowModel.getRowById(e.rowId);t&&(this.rowResize={rowId:e.rowId,sourceCell:e.sourceCell,startHeight:t.rowHeight,endSession:NE({rootEl:SS(this.deps.mountEl),onResizeStart:()=>{},onResizing:e=>{this.scheduleResize(e)},onResizeEnd:e=>{this.applyResize(e,!0),this.end(!0)}},e.event)},this.markActiveCell(e.sourceCell))}end(e){let t=this.rowResize;t&&(this.rowResizeFrame!=null&&(cancelAnimationFrame(this.rowResizeFrame),this.rowResizeFrame=null),this.pendingRowResizeAmount=null,this.clearActiveCell(),!e&&t.endSession&&t.endSession(),this.rowResize=null)}markActiveCell(e){this.clearActiveCell(),e.setAttribute(`data-row-resize-active`,``),e.classList.add(Ia)}clearActiveCell(){SS(this.deps.mountEl).querySelectorAll(`.mg-cell[data-row-resize-active]`).forEach(e=>{e instanceof HTMLElement&&(e.removeAttribute(`data-row-resize-active`),e.classList.remove(Ia))})}scheduleResize(e){this.pendingRowResizeAmount=e,this.rowResizeFrame??=requestAnimationFrame(()=>{this.rowResizeFrame=null;let e=this.pendingRowResizeAmount;e==null||!this.rowResize||this.applyResize(e,!1)})}applyResize(e,t){let n=this.rowResize;if(!n)return;let r=n.startHeight+e;this.deps.setRowHeights([{rowId:n.rowId,height:r}],t)}},FE=[`--mg-color-row-drop-indicator`,`--mg-row-drop-indicator-height`,`--mg-row-drop-indicator-z-index`],IE=class{ghostEl=null;indicatorEl=null;sourceCellEl=null;ghostMountEl=document.body;themeSourceEl=null;startGhost(e){this.removeGhost(),e.mountEl&&(this.ghostMountEl=e.mountEl,this.themeSourceEl=e.mountEl.closest(`.magic-grid`)??e.mountEl.closest(`.mg-root`)??e.mountEl);let t=document.createElement(`div`);t.className=`${xa} ${xa}--cell`,t.style.width=`${e.width}px`,t.style.height=`${e.height}px`,t.style.left=`${e.left}px`,t.style.top=`${e.top}px`;let n=document.createElement(`span`);n.className=`${xa}__label`,n.textContent=e.label,t.append(n),this.ghostMountEl.appendChild(t),this.ghostEl=t}moveGhost(e,t){this.ghostEl&&(this.ghostEl.style.left=`${e}px`,this.ghostEl.style.top=`${t}px`)}showDropIndicator(e,t,n){if(!this.indicatorEl){let e=document.createElement(`div`);e.className=ba,this.syncIndicatorTheme(e),document.body.appendChild(e),this.indicatorEl=e}let r=t-this.resolveIndicatorHeight()/2;this.indicatorEl.style.left=`${e}px`,this.indicatorEl.style.top=`${r}px`,this.indicatorEl.style.width=`${Math.max(0,n)}px`,this.indicatorEl.style.display=`block`}hideDropIndicator(){this.indicatorEl&&(this.indicatorEl.style.display=`none`)}setSourceCellDragging(e,t){this.sourceCellEl&&this.sourceCellEl!==e&&this.sourceCellEl.classList.remove(ya),this.sourceCellEl=e,e?.classList.toggle(ya,t)}cleanup(){this.setSourceCellDragging(this.sourceCellEl,!1),this.removeGhost(),this.removeIndicator(),this.themeSourceEl=null,this.ghostMountEl=document.body}destroy(){this.cleanup()}resolveIndicatorHeight(){if(!this.indicatorEl)return 2;let e=this.indicatorEl.style.getPropertyValue(`--mg-row-drop-indicator-height`),t=getComputedStyle(this.indicatorEl).height,n=e||t,r=Number.parseFloat(n);return Number.isFinite(r)&&r>0?r:2}syncIndicatorTheme(e){let t=this.themeSourceEl??this.ghostMountEl.closest(`.magic-grid`)??this.ghostMountEl.closest(`.mg-root`);if(!t)return;let n=getComputedStyle(t);for(let t of FE){let r=n.getPropertyValue(t).trim();r&&e.style.setProperty(t,r)}let r=n.getPropertyValue(`--mg-color-primary`).trim();r&&!e.style.getPropertyValue(`--mg-color-row-drop-indicator`)&&e.style.setProperty(`--mg-color-row-drop-indicator`,r)}removeGhost(){this.ghostEl?.remove(),this.ghostEl=null}removeIndicator(){this.indicatorEl?.remove(),this.indicatorEl=null}},LE=class{deps;drag=null;scrollRaf=null;dragController=new IE;constructor(e){this.deps=e}get rootDoc(){return CS(this.deps.viewportEl)}isActive(){return this.drag!=null}canStart(e,t,n){if(n||this.drag||this.deps.isRowDragCommitting?.()||!this.deps.isRowDragHandleEnabled(e))return!1;let r=Q(t);return r?.closest(`.mg-cell__row-drag-handle`)!=null&&RE(r)}begin(e){this.end(!1);let t=e.sourceCell.closest(`.mg-row`),n=e.sourceCell.dataset.colId;if(!t||!n)return;let r=this.resolveDragRowIds(e.rowId);if(this.deps.isRowGroupingActive?.()&&$u(this.deps.rowModel.getSourceRows(),r)===`mixed`)return;let i=new Map,a=this.deps.rowModel.getSourceRows();for(let e of r){let t=a.findIndex(t=>t.id===e);t>=0&&i.set(e,t)}this.drag={rowId:e.rowId,rowIds:r,sourceRowEl:t,sourceCell:e.sourceCell,sourceColId:n,startX:e.clientX,startY:e.clientY,pointerX:e.clientX,pointerY:e.clientY,ghostOffsetX:0,ghostOffsetY:0,active:!1,didMove:!1,overIndex:-1,lastDropInsertIndex:null,lastNestUnderRowId:null,nestUnderRowId:null,altKey:!1,startSourceIndices:i,startDisplayIndex:this.deps.rowModel.getRowIndexById(e.rowId),startTreePositions:Tb(a,r),startNestUnderRowId:null},this.rootDoc.addEventListener(`mousemove`,this.handleMove),this.rootDoc.addEventListener(`mouseup`,this.handleEnd)}end(e){let t=this.drag;t&&(this.rootDoc.removeEventListener(`mousemove`,this.handleMove),this.rootDoc.removeEventListener(`mouseup`,this.handleEnd),this.dragController.cleanup(),this.deps.setRowMoveLiveDragging(!1),this.rootDoc.body.classList.remove(`mg-row-dragging`,Sa),this.rootDoc.body.style.removeProperty(`cursor`),this.rootDoc.body.style.removeProperty(`user-select`),this.drag=null,this.scrollRaf!=null&&(cancelAnimationFrame(this.scrollRaf),this.scrollRaf=null),!e&&t.didMove&&this.hasDragResultChanged(t,t.nestUnderRowId,!1)&&this.deps.emitRowDragEnd(ja(t.rowId,t.overIndex,!1,t.rowIds)))}handleMove=e=>{let t=this.drag;if(!t)return;let n=e.clientX-t.startX,r=e.clientY-t.startY;if(!t.active){if(Math.abs(r)<=5||Math.abs(r)<Math.abs(n))return;t.active=!0,t.didMove=!0,this.rootDoc.body.classList.add(`mg-row-dragging`),this.rootDoc.body.style.userSelect=`none`,this.canLiveReorder()&&this.deps.setRowMoveLiveDragging(!0);let e=t.sourceCell.getBoundingClientRect();t.ghostOffsetX=t.startX-e.left,t.ghostOffsetY=t.startY-e.top,this.dragController.setSourceCellDragging(t.sourceCell,!0),this.dragController.startGhost({label:zE(t.sourceCell,t.rowId,t.rowIds.length),width:e.width,height:e.height,left:e.left,top:e.top,mountEl:SS(this.deps.mountEl)})}this.dragController.moveGhost(e.clientX-t.ghostOffsetX,e.clientY-t.ghostOffsetY),t.pointerY=e.clientY,t.pointerX=e.clientX,t.altKey=e.altKey,this.renderAtPointer(e.clientX,e.clientY,e.altKey);let i=this.deps.viewportEl.getBoundingClientRect();$y(t.pointerY,i.top,i.bottom)&&this.ensureEdgeScrollLoop()};handleEnd=e=>{let t=this.drag;if(t){if(t.active){let n=this.resolveTreeNestUnderRowId(t.pointerX,t.pointerY,e.altKey,t.rowIds);t.nestUnderRowId=n;let r=t.overIndex>=0&&this.isDropAllowed(t,t.overIndex,n);if(this.isDeferredManagedCommit()){if(r){let e=this.deps.planRowDragMove(this.deps.buildPlanRowDragMoveOptions({rowIds:t.rowIds,leaderRowId:t.rowId,displayInsertIndex:t.overIndex,treeNestUnderRowId:n}));if(e.ok){let i=this.deps.resolveTreeRowDragEndContext?.(t.rowId,t.overIndex,n,r);this.deps.commitDeferredRowDrag({plan:e.plan,rowIds:t.rowIds,sourceColId:t.sourceColId,nestUnderRowId:n,treeContext:i})}}}else{let e=this.hasDragResultChanged(t,n,r);if(e&&this.canLiveReorder()&&t.overIndex>=0&&r&&this.deps.finishRowMoves(t.rowIds,t.startSourceIndices,t.overIndex,t.startTreePositions),e){let e=this.deps.resolveTreeRowDragEndContext?.(t.rowId,t.overIndex,n,r);this.deps.emitRowDragEnd(ja(t.rowId,t.overIndex,!0,t.rowIds,e))}}}this.end(!0)}};renderAtPointer(e,t,n=!1){let r=this.drag;if(!r)return;let i=vb(this.deps.rowModel,this.deps.viewportEl,e,t,this.deps.getLogicalScrollTop);r.overIndex=i;let a=this.resolveTreeNestUnderRowId(e,t,n,r.rowIds);if(r.nestUnderRowId=a,i<0){this.dragController.hideDropIndicator();return}if(!this.isDropAllowed(r,i,a)){this.dragController.hideDropIndicator(),this.setDropForbidden(!0);return}this.setDropForbidden(!1),this.updateDropIndicator(i),this.canLiveReorder()&&this.applyLiveMove(r,i,a)}resolveTreeNestUnderRowId(e,t,n,r){return!this.deps.isTreeActive?.()||this.deps.getTreeDragScope?.()!==`hierarchy`?null:cb({rowModel:this.deps.rowModel,viewportEl:this.deps.viewportEl,clientX:e,clientY:t,getLogicalScrollTop:this.deps.getLogicalScrollTop,altKey:n,movingRowIds:r})}setDropForbidden(e){this.rootDoc.body.classList.toggle(Sa,e)}isDropAllowed(e,t,n){return this.deps.isTreeActive?.()?this.deps.validateTreeDisplayDrop?.(e.rowIds,t,{nestUnderRowId:n})??!1:this.deps.isRowGroupingActive?.()?this.deps.validateGroupedDisplayDrop?.(e.rowIds,t)??!1:!0}updateDropIndicator(e){let t=this.deps.rowModel.getRowCount(),n=this.deps.viewportEl.getBoundingClientRect(),r=Math.min(e,Math.max(0,t-1)),i=e>=t?this.deps.rowModel.getRow(t-1):this.deps.rowModel.getRow(r);if(!i){this.dragController.hideDropIndicator();return}let a=this.deps.viewportEl.querySelector(`.mg-row[data-row-id="${CSS.escape(i.id)}"]`);if(a){let r=a.getBoundingClientRect(),i=e>=t?r.bottom:r.top,o=Math.max(r.left,n.left),s=Math.min(r.right,n.right);this.dragController.showDropIndicator(o,i,s-o);return}let o=this.deps.rowModel.getRowBounds(r);if(!o){this.dragController.hideDropIndicator();return}let s=n.top+o.rowTop-this.deps.getLogicalScrollTop()+(e>=t?o.rowHeight:0);this.dragController.showDropIndicator(n.left,s,n.width)}applyLiveMove(e,t,n){if(t===e.lastDropInsertIndex&&n===e.lastNestUnderRowId)return;let r=bb(t,this.deps.rowModel.getRowCount()),i=this.deps.rowModel.getRowIndexById(e.rowId);if(i>=0&&r===i){e.lastDropInsertIndex=t;return}this.commitRowsMove(e,t,!1,n)&&(e.lastDropInsertIndex=t,e.lastNestUnderRowId=n,this.refreshSourceElements(e))}commitRowsMove(e,t,n,r=null){if(this.deps.isTreeActive?.())return this.deps.moveRows({rowIds:e.rowIds,leaderRowId:e.rowId,toIndex:0,displayInsertIndex:t,treeNestUnderRowId:typeof r==`string`?r:void 0,finished:n},`uiRowDrag`).moved;if(this.deps.isRowGroupingActive?.())return this.deps.moveRows({rowIds:e.rowIds,leaderRowId:e.rowId,toIndex:0,displayInsertIndex:t,finished:n},`uiRowDrag`).moved;let i=this.deps.rowModel.getSortModel().length>0,a=bb(t,this.deps.rowModel.getRowCount()),o=this.deps.rowModel.getRowIndexById(e.rowId);if(o>=0&&a===o)return!1;let s=Ju({sourceRows:this.deps.rowModel.getSourceRows(),displayRows:this.deps.rowModel.rowsToDisplay,sortModelLength:+!!i,filterModelKeyCount:Object.keys(this.deps.rowModel.getFilterModel()).length}),c=Qu(a,s.hasSortOrFilter&&!i?`display`:`source`,s,i);return c!=null&&this.deps.moveRows({rowIds:e.rowIds,leaderRowId:e.rowId,toIndex:c,indexMode:`source`,finished:n},`uiRowDrag`).moved}resolveDragRowIds(e){return this.deps.isIndexFocusMultiple()?Du(this.deps.rowModel.getSourceRows(),e,this.deps.getIndexFocusedRowIds()):[e]}refreshSourceElements(e){let t=this.deps.viewportEl.querySelector(`.mg-row[data-row-id="${CSS.escape(e.rowId)}"]`);if(!t)return;let n=t.querySelector(`.mg-cell[data-col-id="${CSS.escape(e.sourceColId)}"]`);n&&(e.active&&(this.dragController.setSourceCellDragging(e.sourceCell,!1),this.dragController.setSourceCellDragging(n,!0)),e.sourceRowEl=t,e.sourceCell=n)}hasDragResultChanged(e,t,n){return kb({rowIds:e.rowIds,leaderRowId:e.rowId,startSourceIndices:e.startSourceIndices,sourceRows:this.deps.rowModel.getSourceRows(),startTreePositions:e.startTreePositions,managed:this.isManagedRowDragEnabled(),dropInsertIndex:e.overIndex,dropAllowed:n,startDisplayIndex:e.startDisplayIndex,nestUnderRowId:t,startNestUnderRowId:e.startNestUnderRowId,rowCount:this.deps.rowModel.getRowCount()})}isManagedRowDragEnabled(){return this.deps.rowDragManaged&&!Oa(this.deps.hasSortOrFilterActive(),this.deps.rowDragManaged)}isDeferredManagedCommit(){return this.isManagedRowDragEnabled()&&this.deps.deferRowDragCommit}canLiveReorder(){return this.isManagedRowDragEnabled()&&!this.deps.deferRowDragCommit}ensureEdgeScrollLoop(){this.scrollRaf??=requestAnimationFrame(this.tickEdgeScroll)}tickEdgeScroll=()=>{let e=this.drag;if(!e?.active){this.scrollRaf=null;return}let t=this.deps.viewportEl.getBoundingClientRect(),n=Xy(e.pointerY,t.top,t.bottom,this.deps.getRowHeight());if(n!==0&&(this.deps.scrollByDelta(n),this.renderAtPointer(e.pointerX,e.pointerY,e.altKey)),$y(e.pointerY,t.top,t.bottom)){this.scrollRaf=requestAnimationFrame(this.tickEdgeScroll);return}this.scrollRaf=null}};function RE(e){let t=e?.closest(`.mg-row`);return t?!t.classList.contains(`mg-row--group-header`)&&!t.classList.contains(`mg-row--group-footer`):!1}function zE(e,t,n){return n>1?`${n} rows`:BE(e,t)}function BE(e,t){return e.querySelector(`.mg-cell__text:not([hidden])`)?.textContent?.trim()||e.querySelector(`.mg-cell__renderer:not([hidden])`)?.textContent?.trim()||t}var VE=`mg-cell-comment-context-menu__items`,HE=`mg-cell-comment-context-menu__item`,UE=`mg-cell-comment-context-menu__item-label`,WE=`mg-cell-comment-context-menu__item--committing`,GE=`mg-cell-comment-context-menu__loading-icon`,KE={remove:`删除中...`};function qE(e,t,n){let r=gx(e.mountEl??e.anchorEl??null);if(e.anchorEl){let r=_x(e.anchorEl),i=cx(e.anchorEl);return vx(e.anchorEl.getBoundingClientRect(),t,n,r,i)}let i=e.clientX,a=e.clientY;return i+t>window.innerWidth-r&&(i=Math.max(r,window.innerWidth-t-r)),a+n>window.innerHeight-r&&(a=Math.max(r,window.innerHeight-n-r)),{left:i,top:a}}function JE(e){let t=document.createElement(`div`);t.className=jo,t.setAttribute(`role`,`menu`);let n=document.createElement(`div`);n.className=VE;let r=[],i=new Map;for(let t of e.items){let e=document.createElement(`button`);e.type=`button`,e.className=HE,e.dataset.action=t.id,e.disabled=t.disabled===!0,e.setAttribute(`role`,`menuitem`);let a=document.createElement(`span`);a.className=UE,a.textContent=t.label,e.append(a),i.set(t.id,t.label),e.addEventListener(`click`,n=>{n.preventDefault(),n.stopPropagation(),!(e.disabled||s)&&p(t.id,e)}),r.push(e),n.append(e)}t.append(n),(e.mountEl??document.body).append(t);let a=t.getBoundingClientRect(),o=qE(e,a.width,a.height);t.style.position=`fixed`,t.style.left=`${o.left}px`,t.style.top=`${o.top}px`;let s=!1,c=!1,l=e=>{if(s)return;let n=e.target;n instanceof Node&&t.contains(n)||d()},u=e=>{if(e.key===`Escape`){if(s){e.preventDefault();return}e.preventDefault(),d()}};document.addEventListener(`mousedown`,l,!0),document.addEventListener(`keydown`,u,!0);function d(n=!1){c||s&&!n||(c=!0,document.removeEventListener(`mousedown`,l,!0),document.removeEventListener(`keydown`,u,!0),t.remove(),e.onClose?.())}function f(e,n,a){t.classList.toggle(Mo,a),n.classList.toggle(WE,a);for(let e of r)e.disabled=a||e.dataset.disabledInitially===`true`;if(a){h(n),m(n).textContent=KE[e],n.setAttribute(`aria-busy`,`true`);return}for(let e of r){g(e),e.removeAttribute(`aria-busy`);let t=e.dataset.action;t&&(m(e).textContent=i.get(t)??``)}}async function p(t,n){let r=t===`remove`;r&&(s=!0,f(t,n,!0));let i=!1;try{if(await e.onSelect(t)===!1)return;i=!0,s=!1,d()}catch{}finally{!i&&!c&&r&&(s=!1,f(t,n,!1))}}function m(e){return e.querySelector(`.${UE}`)}function h(e){if(e.querySelector(`.mg-cell-comment-context-menu__loading-icon`))return;let t=document.createElement(`span`);t.className=GE,t.setAttribute(`aria-hidden`,`true`),e.prepend(t)}function g(e){e.querySelector(`.${GE}`)?.remove()}for(let e of r)e.disabled&&(e.dataset.disabledInitially=`true`);return{close:d}}function YE(e,t,n,r){return t?r||!e.canView?null:e.canEdit&&!n?`edit`:`view`:e.canCreate?`create`:null}var XE=class{deps;showTimer=null;hideTimer=null;hoverCell=null;contextMenuClose=null;popupHoverListeners=null;bound=!1;constructor(e){this.deps=e}bindListeners(){this.bound||(this.bound=!0,this.deps.viewportEl.addEventListener(`mousemove`,this.handleViewportMouseMove),this.deps.viewportEl.addEventListener(`mouseleave`,this.handleViewportMouseLeave),this.deps.viewportEl.addEventListener(`scroll`,this.handleViewportScroll,!0),this.deps.viewportEl.addEventListener(`contextmenu`,this.handleContextMenu))}unbindListeners(){this.bound&&(this.bound=!1,this.deps.viewportEl.removeEventListener(`mousemove`,this.handleViewportMouseMove),this.deps.viewportEl.removeEventListener(`mouseleave`,this.handleViewportMouseLeave),this.deps.viewportEl.removeEventListener(`scroll`,this.handleViewportScroll,!0),this.deps.viewportEl.removeEventListener(`contextmenu`,this.handleContextMenu),this.closeAll())}destroy(){this.unbindListeners()}closeAll(){this.clearHoverTimers(),this.hoverCell=null,this.contextMenuClose?.(),this.contextMenuClose=null,this.detachPopupHoverListeners(),this.deps.cellCommentService()?.closeEditor()}handleShiftF2(){if(this.isShortcutBlocked())return!1;let e=this.deps.cellCommentService();if(!e?.active)return!1;let t=this.deps.cellFocusService.getFocusedCell();if(!t)return!1;let n=this.resolveCellElement(t.rowId,t.colId);if(!n)return!1;let r=e.hasComment(t.rowId,t.colId),i=e.resolveInteraction(t.rowId,t.colId),a=e.getComment(t.rowId,t.colId),o=this.deps.getOptions(),s=YE(i,r,a?.readOnly===!0,o.suppressCellComments);return s?(this.closeAll(),e.openEditor({rowId:t.rowId,colId:t.colId,anchorEl:n,preferredMode:s,onPopupClose:()=>this.detachPopupHoverListeners()})):!1}handleCellClick(e,t){if(this.deps.getOptions().cellCommentTrigger!==`click`)return!1;let n=this.deps.cellCommentService();if(!n?.active)return!1;let r=this.resolveCellElement(t.rowId,t.colId);if(!r||!ux(r,e.clientX,e.clientY))return!1;let i=n.hasComment(t.rowId,t.colId),a=n.resolveInteraction(t.rowId,t.colId);if(!i)return a.canCreate?(this.closeAll(),n.openEditor({rowId:t.rowId,colId:t.colId,anchorEl:r,preferredMode:`create`,onPopupClose:()=>this.detachPopupHoverListeners()})):!1;if(!a.canView)return!1;let o=n.getOpenEditorCell();if(o?.rowId===t.rowId&&o.colId===t.colId&&n.getPopup().isOpen)return n.closeEditor(),!0;let s=n.getComment(t.rowId,t.colId),c=a.canEdit&&s?.readOnly!==!0?`edit`:`view`;return this.closeAll(),n.openEditor({rowId:t.rowId,colId:t.colId,anchorEl:r,preferredMode:c,onPopupClose:()=>this.detachPopupHoverListeners()})}handleContextMenu=e=>{if(this.isShortcutBlocked())return;let t=this.deps.cellCommentService();if(!t?.active)return;let n=bS(this.deps.rowModel,e.target);if(!n)return;let r=ZE(t.resolveInteraction(n.rowId,n.colId),t.hasComment(n.rowId,n.colId));if(r.length===0)return;e.preventDefault(),e.stopPropagation(),this.closeAll();let i=this.resolveCellElement(n.rowId,n.colId);if(!i)return;let a=JE({clientX:e.clientX,clientY:e.clientY,items:r,mountEl:this.deps.mountEl,anchorEl:i,onSelect:e=>this.handleContextMenuAction(e,n.rowId,n.colId,i,t),onClose:()=>{this.contextMenuClose===a.close&&(this.contextMenuClose=null)}});this.contextMenuClose=a.close};async handleContextMenuAction(e,t,n,r,i){let a=e===`add`?`create`:e===`edit`?`edit`:e===`view`?`view`:null;return e===`remove`?i.setComment(t,n,null,`ui`):a?(i.openEditor({rowId:t,colId:n,anchorEl:r,preferredMode:a,onPopupClose:()=>this.detachPopupHoverListeners()}),!0):!1}handleViewportMouseMove=e=>{let t=this.deps.getOptions();if(t.cellCommentTrigger!==`hover`)return;if(Q(e.target)?.closest(`.mg-cell-comment-popup`)){this.clearHideTimer();return}let n=bS(this.deps.rowModel,e.target),r=this.deps.cellCommentService();if(!n||!r?.active){this.leaveIndicatorHover();return}let i=this.resolveCellElement(n.rowId,n.colId);if(!i||!r.hasComment(n.rowId,n.colId)||!ux(i,e.clientX,e.clientY)){this.leaveIndicatorHover();return}if(!r.resolveInteraction(n.rowId,n.colId).canView){this.leaveIndicatorHover();return}this.clearHideTimer(),(this.hoverCell?.rowId!==n.rowId||this.hoverCell?.colId!==n.colId)&&(this.clearHoverTimers(),this.hoverCell={rowId:n.rowId,colId:n.colId,anchorEl:i}),!(r.getPopup().isOpen||this.showTimer!=null)&&(this.showTimer=setTimeout(()=>{this.openHoverPopup(n.rowId,n.colId,i,r)},t.cellCommentShowDelay))};handleViewportMouseLeave=()=>{this.deps.getOptions().cellCommentTrigger===`hover`&&this.leaveIndicatorHover()};leaveIndicatorHover(){this.scheduleHide(),this.hoverCell=null}clearHideTimer(){this.hideTimer!=null&&(clearTimeout(this.hideTimer),this.hideTimer=null)}handleViewportScroll=()=>{this.syncAfterScroll()};syncAfterScroll(){let e=this.deps.cellCommentService();if(!e?.getPopup().isOpen){this.clearHoverTimers(),this.hoverCell=null;return}let t=e.getOpenEditorCell();if(!t){e.closeEditor();return}let n=this.resolveCellElement(t.rowId,t.colId);if(!n||!this.deps.viewportEl.contains(n)){this.closeAll();return}e.getPopup().updatePosition()}openHoverPopup(e,t,n,r){let i=r.getComment(e,t),a=r.resolveInteraction(e,t),o=i?.readOnly===!0||!a.canEdit?`view`:`edit`;r.openEditor({rowId:e,colId:t,anchorEl:n,preferredMode:o,onPopupClose:()=>{this.detachPopupHoverListeners(),this.scheduleHide()}}),this.attachPopupHoverListeners(r)}attachPopupHoverListeners(e){this.detachPopupHoverListeners();let t=e.getPopup().getRootEl();if(!t)return;let n=()=>{this.clearHoverTimers()},r=()=>{this.scheduleHide()};t.addEventListener(`mouseenter`,n),t.addEventListener(`mouseleave`,r),this.popupHoverListeners=()=>{t.removeEventListener(`mouseenter`,n),t.removeEventListener(`mouseleave`,r)}}detachPopupHoverListeners(){this.popupHoverListeners?.(),this.popupHoverListeners=null}scheduleHide(){this.clearHoverTimers();let e=this.deps.getOptions();this.hideTimer=setTimeout(()=>{let t=this.deps.cellCommentService();if(!t?.getPopup().isOpen){this.hoverCell=null;return}e.cellCommentTrigger===`hover`&&t.closeEditor(),this.hoverCell=null},e.cellCommentHideDelay)}clearHoverTimers(){this.showTimer!=null&&(clearTimeout(this.showTimer),this.showTimer=null),this.hideTimer!=null&&(clearTimeout(this.hideTimer),this.hideTimer=null)}isShortcutBlocked(){return this.deps.isEditing()}resolveCellElement(e,t){let n=this.deps.viewportEl.querySelector(`.mg-row[data-row-id="${CSS.escape(e)}"]`);return n?n.querySelector(`.mg-cell[data-col-id="${CSS.escape(t)}"]`):null}};function ZE(e,t){let n=[];return!t&&e.canCreate&&n.push({id:`add`,label:`添加批注`}),t&&e.canView&&n.push({id:e.canEdit?`edit`:`view`,label:e.canEdit?`编辑批注`:`查看批注`}),t&&e.canDelete&&n.push({id:`remove`,label:`删除批注`}),n}var QE=class{ctx;focusController=null;constructor(e){this.ctx=e}bindFocusController(e){this.focusController=e}get deps(){return this.ctx.deps}getColIndex(e){return mS(this.deps.columnModel,e)}resolveRootEl(){return SS(this.deps.mountEl)}setFocusedCell(e){this.focusController?.setFocusedCell(e)}isIndexColumnEntry(e){return t.it(e)&&this.deps.columnModel.getColumnById(e)!=null}isSelectionColumnEntry(e){return t.X(e)&&this.deps.columnModel.getColumnById(e)!=null&&this.deps.selectionService!=null}isExpandColumnEntry(e){let t=this.deps.columnModel.getColumnById(e);return!t||!this.deps.rowExpansionService?.active?!1:j(t)}isGroupColumnEntry(e){let t=this.deps.columnModel.getColumnById(e);return!t||!this.deps.rowGroupingService?.active?!1:Ee(t)}isTreeColumnEntry(e){let t=this.deps.columnModel.getColumnById(e);return!t||!this.deps.treeTableService?.active?!1:B(t.colId)}isSelectionHeaderMultiple(){return this.deps.selectionService?.isMultiple()??!1}canToggleHeaderSort(e){return this.ctx.isColumnResizing()||this.deps.columnDragController.shouldSuppressSortClick()||t.it(e)||t.X(e)||this.isExpandColumnEntry(e)||this.isGroupColumnEntry(e)||this.isTreeColumnEntry(e)||!this.deps.enableHeaderSortClick()?!1:this.deps.columnModel.getColumnById(e)?.sortable??!1}applyIndexFocus(e,t,n,r={}){!this.deps.indexFocusService||!this.isIndexColumnEntry(n)||(this.deps.indexFocusService.selectRow(e,t,e=>this.deps.rowModel.getRow(e)?.id,r),this.deps.applyIndexFocusVisuals(),this.deps.eventBus.emit(`indexFocusChanged`,{focusedRowIds:this.deps.indexFocusService.getFocusedRowIds()}),this.syncCellRangeFromIndexFocus(t))}syncCellRangeFromIndexFocus(e){this.ctx.cellRangeInteraction.syncFromIndexFocus(e)}clearCellRangesOnRowSelectionInteraction(){this.ctx.cellRangeInteraction.tryClearOnNonRangeTargetClick()}applyRowSelection(e,t,n,r={}){if(!this.deps.selectionService||!this.isSelectionColumnEntry(n))return;this.clearCellRangesOnRowSelectionInteraction();let i=this.deps.rowModel.getRow(t);!i||!this.deps.isRowNodeSelectable(i)||(this.deps.selectionService.selectRow(e,t,e=>this.deps.getSelectableRowIdAt(e),{...r,rangeSelection:r.shiftKey?this.buildSelectionRangeOptions():void 0}),this.deps.handleInteractiveRowSelection?.(e,t),this.deps.applySelectionVisuals(),this.deps.eventBus.emit(`selectionChanged`,{selectedRowIds:this.deps.selectionService.getSelectedRowIds(),source:`ui`}))}applyRowExpansionToggle(e,t,n){if(!this.deps.rowExpansionService?.active||!this.isExpandColumnEntry(n))return;let r=this.deps.rowModel.getRow(t);!r||L(r)||!this.deps.rowExpansionService.isRowMaster(r)||this.deps.rowExpansionService.toggleRow(e,`ui`)}applyRowGroupingToggle(e,t,n){if(!this.deps.rowGroupingService?.active||!this.isGroupColumnEntry(n))return;let r=this.deps.rowModel.getRow(t);if(!r||!Be(r))return;let i=r.sourceGroupId??ze(r.id)??r.groupId;i&&this.deps.rowGroupingService.toggleGroup(i,`ui`)}applyTreeTableToggle(e,t,n){if(!this.deps.treeTableService?.active||!this.isTreeColumnEntry(n))return;let r=this.deps.rowModel.getRow(t),i=this.deps.isTreeNodeExpandable?.(r)??(r!=null&&r.treeLeaf!==!0);if(!(!r||!V(r)||!i)){if(this.deps.requestTreeNodeToggle){this.deps.requestTreeNodeToggle(e,`ui`);return}this.deps.treeTableService.toggleNode(e,`ui`)}}applyTreeHeaderToggle(){let e=this.deps.treeTableService;if(e?.active){if(e.isAllExpandableNodesExpanded()){e.collapseAll();return}e.expandAll(`ui`)}}applyTreeHierarchyShortcut(e,t){this.deps.applyTreeHierarchyShortcut(e,t)}toggleTreeHierarchyMenu(e,t){this.deps.toggleTreeHierarchyMenu(e,t)}closeTreeHierarchyMenu(){this.deps.closeTreeHierarchyMenu()}buildSelectionRangeOptions(){return{rowCount:this.deps.rowModel.getRowCount(),getAllRowIdAt:e=>this.deps.rowModel.getRow(e)?.id}}toggleSelectAllVisibleRows(){if(!this.deps.selectionService)return;let e=this.deps.rowModel.getRowCount();this.deps.selectionService.toggleSelectAllVisibleRows(e,e=>this.deps.getSelectableRowIdAt(e))&&(this.clearCellRangesOnRowSelectionInteraction(),this.deps.applySelectionVisuals(),this.deps.eventBus.emit(`selectionChanged`,{selectedRowIds:this.deps.selectionService.getSelectedRowIds(),source:`ui`}))}clearIndexFocusState(){this.deps.indexFocusService&&this.deps.indexFocusService.getFocusedRowIds().length!==0&&(this.deps.indexFocusService.clear(),this.deps.applyIndexFocusVisuals({syncToSelectionColumn:!1}),this.deps.eventBus.emit(`indexFocusChanged`,{focusedRowIds:this.deps.indexFocusService.getFocusedRowIds()}),this.syncCellRangeFromIndexFocus())}clearIndexFocusIfNeeded(e){this.isIndexColumnEntry(e)||this.clearIndexFocusState()}};function $E(e){let t=Q(e);return!t||!!t.closest([`.mg-header-cell__resize-handle`,`.mg-header-cell__column-handle`,`.mg-header-cell__sort`,`.mg-floating-filter-button`,`.${Tp}`].join(`, `))}var eD=class{ctx;suppressHeaderSortClick=!1;constructor(e){this.ctx=e}handleHeaderMouseDown=e=>{if(e.button!==0)return;let t=yS(this.ctx.deps.columnModel,e.target);if(!t)return;if(_S(e.target)){e.preventDefault(),e.stopPropagation();return}this.ctx.host.clearIndexFocusState();let n=this.ctx.host.isSelectionColumnEntry(t.colId)&&this.ctx.deps.selectionService?.isMultiple(),r=xS(e.target),i=this.ctx.deps.columnModel.getColumnById(t.colId);if(this.ctx.focusController.isHeaderNavigationEnabled()?(e.preventDefault(),e.stopPropagation(),this.ctx.host.canToggleHeaderSort(t.colId)||this.ctx.host.setFocusedCell({rowId:Cf,colId:t.colId,rowIndex:-1,colIndex:t.colIndex}),n&&this.ctx.host.toggleSelectAllVisibleRows(),this.ctx.deps.viewportEl.focus()):n&&(e.preventDefault(),e.stopPropagation(),this.ctx.host.toggleSelectAllVisibleRows()),this.ctx.columnHeaderDragSession.isActive()&&this.ctx.columnHeaderDragSession.end(!1),this.ctx.columnHeaderDragSession.canStart(i,e.target,this.ctx.indexSelectionDragSession.isActive()||this.ctx.columnResizeSession.isActive()||this.ctx.rowResizeSession.isActive())&&r){e.preventDefault(),e.stopPropagation(),this.ctx.deps.clearCellSelection?.(),this.ctx.columnHeaderDragSession.begin({colId:t.colId,sourceCell:r,clientX:e.clientX,clientY:e.clientY});return}if(this.ctx.columnResizeSession.canStart(i,e.target,this.ctx.indexSelectionDragSession.isActive()||this.ctx.columnHeaderDragSession.isActive()||this.ctx.rowResizeSession.isActive())&&r){e.preventDefault(),e.stopPropagation(),this.ctx.columnResizeSession.begin({colId:t.colId,sourceCell:r,event:e});return}if(!this.shouldHeaderClickSortAndSelectColumn(t.colId)&&!$E(e.target)&&this.tryApplyHeaderColumnSelection(t.colId,t.colIndex)){e.preventDefault(),e.stopPropagation(),this.suppressHeaderSortClick=!0;return}};handleHeaderDblClick=e=>{if(e.button!==0||!Q(e.target)?.closest(`.mg-header-cell__resize-handle`))return;let t=yS(this.ctx.deps.columnModel,e.target);if(!t)return;let n=this.ctx.deps.columnModel.getColumnById(t.colId);!n?.resizable||n.suppressAutoSize||(e.preventDefault(),e.stopPropagation(),this.ctx.deps.autoSizeColumn(t.colId,`uiColumnResized`))};handleHeaderClick=e=>{if(e.button!==0)return;if(this.ctx.columnResizeSession.isActive()){e.preventDefault(),e.stopPropagation();return}if(this.suppressHeaderSortClick){this.suppressHeaderSortClick=!1,e.preventDefault(),e.stopPropagation();return}if(Q(e.target)?.closest(`.mg-selection-checkbox--header`))return;let t=yS(this.ctx.deps.columnModel,e.target);if(!t)return;if(_S(e.target)){e.preventDefault(),e.stopPropagation(),this.ctx.host.applyTreeHeaderToggle();return}let n=gS(e.target);if(n){if(this.ctx.getSuppressColumnHandleClick()){this.ctx.setSuppressColumnHandleClick(!1),e.preventDefault(),e.stopPropagation();return}e.preventDefault(),e.stopPropagation(),this.ctx.deps.columnHandleMenuController.toggle({colId:t.colId,handleEl:n});return}if(!this.ctx.host.canToggleHeaderSort(t.colId)){this.ctx.deps.columnDragController.shouldSuppressSortClick()&&(e.preventDefault(),e.stopPropagation());return}e.preventDefault(),e.stopPropagation(),this.ctx.deps.toggleHeaderSort(t.colId),this.shouldHeaderClickSortAndSelectColumn(t.colId)&&this.tryApplyHeaderColumnSelection(t.colId,t.colIndex)};handleFloatingFilterClick=e=>{let t=vS(e.target);if(!t)return;let n=t.closest(`.mg-floating-filter-cell[data-col-id]`)?.dataset.colId;n&&(e.preventDefault(),e.stopPropagation(),this.ctx.deps.columnHandleMenuController.toggle({colId:n,handleEl:t,mode:`filter-only`}))};handleFooterMouseDown=e=>{if(e.button!==0)return;let t=hS(this.ctx.deps.columnModel,e.target);t&&(this.ctx.host.clearIndexFocusState(),this.ctx.focusController.isFooterNavigationEnabled()&&(e.preventDefault(),e.stopPropagation(),this.ctx.host.setFocusedCell({rowId:wf,colId:t.colId,rowIndex:-2,colIndex:t.colIndex}),this.ctx.deps.viewportEl.focus()))};bind(e){e.addEventListener(`mousedown`,this.handleHeaderMouseDown,!0),e.addEventListener(`dblclick`,this.handleHeaderDblClick,!0),e.addEventListener(`click`,this.handleHeaderClick,!0),e.addEventListener(`click`,this.handleFloatingFilterClick,!0),e.addEventListener(`mousedown`,this.handleFooterMouseDown,!0)}unbind(e){e.removeEventListener(`mousedown`,this.handleHeaderMouseDown,!0),e.removeEventListener(`dblclick`,this.handleHeaderDblClick,!0),e.removeEventListener(`click`,this.handleHeaderClick,!0),e.removeEventListener(`click`,this.handleFloatingFilterClick,!0),e.removeEventListener(`mousedown`,this.handleFooterMouseDown,!0)}shouldHeaderClickSortAndSelectColumn(e){return!this.ctx.deps.isCellSelectionEnabled?.()||!this.ctx.deps.getCellSelectionOptions?.().enableColumnSelection?!1:this.ctx.host.canToggleHeaderSort(e)}tryApplyHeaderColumnSelection(e,t){if(!this.ctx.cellRangeInteraction.tryHeaderColumnSelection(e))return!1;let n=this.ctx.deps.rowModel.getRow(0);return n&&this.ctx.host.setFocusedCell({rowId:n.id,colId:e,rowIndex:0,colIndex:t}),!0}},tD=class{ctx;pendingSingleClickGesture=null;clearPendingSingleClickGesture=null;consumedPointerUpCellAction=null;constructor(e){this.ctx=e}handleCellMouseDown=async e=>{if(e.button!==0)return;if(this.clearPendingSingleClickGesture?.(),this.clearPendingSingleClickGesture=null,this.pendingSingleClickGesture=null,this.consumedPointerUpCellAction=null,e.target instanceof Element&&e.target.closest(`.mg-range-handle`)){if(e.preventDefault(),e.stopPropagation(),this.ctx.deps.isCommitting()&&await this.ctx.deps.awaitCommitIdle(),this.ctx.deps.isEditing()&&(await this.ctx.deps.commitEditing(),this.ctx.deps.isEditing()))return;this.ctx.rangeHandleSession.begin(e.clientX,e.clientY);return}if(e.target instanceof Element&&e.target.closest(`.mg-fill-handle`)){if(e.preventDefault(),e.stopPropagation(),this.ctx.deps.isCommitting()&&await this.ctx.deps.awaitCommitIdle(),this.ctx.deps.isEditing()&&(await this.ctx.deps.commitEditing(),this.ctx.deps.isEditing()))return;this.ctx.fillHandleSession.begin(e.clientX,e.clientY);return}if(this.ctx.fillHandleSession.isActive()||this.ctx.rangeHandleSession.isActive()||this.ctx.columnHeaderDragSession.isActive()||this.ctx.columnResizeSession.isActive()||this.ctx.rowResizeSession.isActive()||this.ctx.rowDragSession.isActive())return;let t=bS(this.ctx.deps.rowModel,e.target);if(t&&Ch(e.target)){if(this.ctx.deps.isRowDragCommitting?.())return;if(e.preventDefault(),e.stopPropagation(),this.ctx.host.isTreeColumnEntry(t.colId)){let n=Ch(e.target);n&&this.ctx.host.toggleTreeHierarchyMenu(t.rowId,n)}this.ctx.host.setFocusedCell({rowId:t.rowId,colId:t.colId,rowIndex:t.rowIndex,colIndex:this.ctx.host.getColIndex(t.colId)}),this.ctx.deps.viewportEl.focus({preventScroll:!0});return}if(e.target instanceof Element&&e.target.closest(`.mg-column-settings-menu`)){e.preventDefault(),e.stopPropagation();return}if(t&&!this.ctx.host.isIndexColumnEntry(t.colId)&&this.ctx.host.clearIndexFocusState(),t&&this.ctx.focusController.isGroupOrTreeExpandClickTarget(e.target)){e.preventDefault(),e.stopPropagation(),this.ctx.host.isGroupColumnEntry(t.colId)?this.ctx.host.applyRowGroupingToggle(t.rowId,t.rowIndex,t.colId):this.ctx.host.isTreeColumnEntry(t.colId)&&this.ctx.host.applyTreeTableToggle(t.rowId,t.rowIndex,t.colId),this.ctx.host.setFocusedCell({rowId:t.rowId,colId:t.colId,rowIndex:t.rowIndex,colIndex:this.ctx.host.getColIndex(t.colId)}),this.ctx.deps.viewportEl.focus({preventScroll:!0});return}if(t&&this.ctx.rowResizeSession.canStart(t.colId,e.target,this.ctx.indexSelectionDragSession.isActive()||this.ctx.rowDragSession.isActive())){let n=Q(e.target)?.closest(`.mg-cell`);if(n){e.preventDefault(),e.stopPropagation(),this.ctx.rowResizeSession.begin({rowId:t.rowId,sourceCell:n,event:e});return}}if(t&&this.ctx.rowDragSession.canStart(t.colId,e.target,this.ctx.indexSelectionDragSession.isActive()||this.ctx.columnHeaderDragSession.isActive()||this.ctx.columnResizeSession.isActive())){let n=Q(e.target)?.closest(`.mg-cell`);if(n){e.preventDefault(),e.stopPropagation(),this.ctx.rowDragSession.begin({rowId:t.rowId,sourceCell:n,clientX:e.clientX,clientY:e.clientY});return}}let n=t?this.resolveColumnDragKind(t.colId,e):null;if(t!=null&&n!=null&&!this.ctx.deps.isCommitting()&&!this.ctx.deps.isEditing()&&t&&n){e.preventDefault(),this.emitCellClicked(t),this.ctx.indexSelectionDragSession.begin({kind:n,anchorRowId:t.rowId,colId:t.colId,rowIndex:t.rowIndex,clientY:e.clientY,ctrlKey:e.ctrlKey||e.metaKey});return}let r=!1;if(t&&this.ctx.deps.isCellSelectionEnabled?.()&&!fn(this.ctx.deps.editBehavior)&&this.ctx.deps.isEditing()&&(!this.isSameEditingTarget(t)&&this.shouldSchedulePointerUpWhileEditingSwitch(t,e)&&(this.scheduleSingleClickEditingAfterPointerDown(t),r=!0),!await this.commitEditingForCellRangeInteraction(t,e))||t&&this.tryBeginCellRangeDragFromMouseDown(t,e,`replace`,r)||t&&this.tryBeginCellRangeDragFromMouseDown(t,e,`append`,r))return;if(t&&this.ctx.cellRangeInteraction.tryHandleModifierMouseDown(t,e)){this.emitCellClicked(t),this.ctx.host.clearIndexFocusIfNeeded(t.colId),this.ctx.host.setFocusedCell({rowId:t.rowId,colId:t.colId,rowIndex:t.rowIndex,colIndex:this.ctx.host.getColIndex(t.colId)}),this.ctx.deps.viewportEl.focus({preventScroll:!0});return}this.ctx.deps.isCommitting()&&(e.preventDefault(),await this.ctx.deps.awaitCommitIdle());let i=bS(this.ctx.deps.rowModel,e.target);if(this.ctx.deps.isEditing()){let t=i,n=this.resolveCellTargetUnderPointer(e);if(t&&!this.isSameEditingTarget(t)?i=t:n&&(i=n),i&&this.isSameEditingTarget(i)&&Ud(e.target)||Ud(e.target)&&!i)return}if(this.ctx.deps.isEditing()&&(i&&this.isSameEditingTarget(i)||(i&&(this.scheduleSingleClickEditingAfterPointerDown(i),r=!0),await this.ctx.deps.commitEditing(),this.ctx.deps.isEditing())))return;if(!i){this.ctx.host.clearIndexFocusState(),this.ctx.cellRangeInteraction.tryClearOnBlankViewportClick();return}let{rowId:a,colId:o,rowIndex:s}=i;(this.ctx.host.isExpandColumnEntry(o)||this.ctx.host.isGroupColumnEntry(o)||this.ctx.host.isTreeColumnEntry(o)||this.ctx.host.isSelectionColumnEntry(o)||e.shiftKey||e.ctrlKey||e.metaKey)&&e.preventDefault(),this.emitCellClicked(i),this.ctx.host.isIndexColumnEntry(o)?this.ctx.host.applyIndexFocus(a,s,o,{ctrlKey:e.ctrlKey||e.metaKey,shiftKey:e.shiftKey,toggleOnReselect:!0}):(this.ctx.host.clearIndexFocusIfNeeded(o),this.ctx.host.isExpandColumnEntry(o)?this.ctx.host.applyRowExpansionToggle(a,s,o):this.ctx.host.isSelectionColumnEntry(o)&&this.ctx.host.applyRowSelection(a,s,o,{ctrlKey:e.ctrlKey||e.metaKey,shiftKey:e.shiftKey,toggleOnReselect:!0})),this.ctx.host.setFocusedCell({rowId:a,colId:o,rowIndex:s,colIndex:this.ctx.host.getColIndex(o)}),this.ctx.deps.viewportEl.focus({preventScroll:!0}),!r&&this.isOverlaySingleClickEditableColumn(i)&&this.scheduleSingleClickEditingAfterPointerDown(i)};handleCellClick=async e=>{if(e.button!==0||(this.ctx.deps.isCommitting()&&(e.preventDefault(),await this.ctx.deps.awaitCommitIdle()),e.ctrlKey||e.metaKey||e.shiftKey))return;if(this.ctx.getSuppressColumnClick()){this.ctx.setSuppressColumnClick(!1);return}let t=bS(this.ctx.deps.rowModel,e.target);if(t){if(this.emitRowPointerEvent(`rowClicked`,t),this.ctx.cellRangeInteraction.tryClearOnPlainClick(t),this.ctx.deps.isEditing()){if(fn(this.ctx.deps.editBehavior)&&this.ctx.deps.getEditingRowId()===t.rowId&&t.colId!==this.ctx.deps.getEditingCell()?.colId&&this.ctx.deps.focusRowEditingColumn?.(t.colId))return;if(this.isSameEditingTarget(t))return this.ctx.cellCommentSession?.handleCellClick(e,t),void 0;if(await this.ctx.deps.commitEditing(),this.ctx.deps.isEditing())return}this.ctx.focusController.focusCellTarget(t),!this.ctx.cellCommentSession?.handleCellClick(e,t)&&(this.consumePointerUpCellActionIfMatched(t)||this.maybeStartSingleClickEditing(e,t))}};handleCellDoubleClick=async e=>{if(e.button!==0||(this.ctx.deps.isCommitting()&&(e.preventDefault(),await this.ctx.deps.awaitCommitIdle()),e.ctrlKey||e.metaKey||e.shiftKey))return;let n=bS(this.ctx.deps.rowModel,e.target);if(!n||(this.emitRowPointerEvent(`rowDoubleClicked`,n),this.ctx.deps.isEditing()&&(this.isSameEditingTarget(n)||(await this.ctx.deps.commitEditing(),this.ctx.deps.isEditing()))))return;this.ctx.focusController.focusCellTarget(n);let r=this.ctx.deps.columnModel.getColumnById(n.colId);if(fn(this.ctx.deps.editBehavior)){if(!r||un(r,this.ctx.deps.editType)!==`doubleClick`)return;this.ctx.cellCommentSession?.closeAll(),this.ctx.deps.tryStartRowEditing(n);return}!r||un(r,this.ctx.deps.editType)!==`doubleClick`||t.V(r)||(this.ctx.cellCommentSession?.closeAll(),this.ctx.deps.tryStartCellEditing(n))};bind(e){e.addEventListener(`mousedown`,this.handleCellMouseDown,!0),e.addEventListener(`click`,this.handleCellClick),e.addEventListener(`dblclick`,this.handleCellDoubleClick)}unbind(e){e.removeEventListener(`mousedown`,this.handleCellMouseDown,!0),e.removeEventListener(`click`,this.handleCellClick),e.removeEventListener(`dblclick`,this.handleCellDoubleClick)}tryBeginCellRangeDragFromMouseDown(e,t,n,r){return r||this.shouldSkipCellRangeDragForInlineToggleWhileEditing(e,t)||!this.ctx.cellRangeDragSession.canStart(e,t,n)?!1:(t.preventDefault(),this.ctx.host.clearIndexFocusIfNeeded(e.colId),this.emitCellClicked(e),this.ctx.cellRangeDragSession.begin({anchorRowId:e.rowId,anchorColId:e.colId,anchorRowIndex:e.rowIndex,clientX:t.clientX,clientY:t.clientY,mode:n}),!0)}async commitEditingForCellRangeInteraction(e,t){if(!this.ctx.deps.isEditing()||this.isSameEditingTarget(e))return!0;let n=bS(this.ctx.deps.rowModel,t.target);return n&&this.isSameEditingTarget(n)&&t.target instanceof Element&&Ud(t.target)?!0:(this.ctx.deps.isCommitting()&&await this.ctx.deps.awaitCommitIdle(),await this.ctx.deps.commitEditing(),!this.ctx.deps.isEditing())}resolveCellTargetUnderPointer(e){if(typeof document.elementsFromPoint!=`function`)return null;for(let t of document.elementsFromPoint(e.clientX,e.clientY)){let e=bS(this.ctx.deps.rowModel,t);if(e&&!(this.ctx.deps.isEditing()&&this.isSameEditingTarget(e)))return e}return null}resolveCellTargetByIds(e,t){let n=this.ctx.deps.mountEl.querySelector(`.mg-row[data-row-id="${this.escapeCssAttr(String(e))}"]`);if(!n)return null;let r=n.querySelector(`.mg-cell[data-col-id="${this.escapeCssAttr(t)}"]`);return r?bS(this.ctx.deps.rowModel,r):null}escapeCssAttr(e){return typeof CSS<`u`&&typeof CSS.escape==`function`?CSS.escape(e):e.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`)}async completeSingleClickEditingGesture(e,n,r){if(e.button!==0)return;this.ctx.deps.isCommitting()&&await this.ctx.deps.awaitCommitIdle();let i=this.resolveAnchoredCellTargetAtPointer(e,n,r)??this.resolveCellTargetByIds(n,r);if(!i)return;this.ctx.deps.isEditing()&&!this.isSameEditingTarget(i)&&await this.ctx.deps.commitEditing();let a=this.ctx.deps.columnModel.getColumnById(i.colId);if(a&&t.V(a)&&af(a.cellEditor)&&H(a,i.rowNode)){this.ctx.focusController.focusCellTarget(i),this.ctx.focusController.isInlineToggleClickTarget(e.target)||this.ctx.focusController.toggleInlineToggleAtCell(i.rowId,i.colId,i.rowIndex),this.markPointerUpCellActionConsumed(i);return}this.ctx.focusController.focusCellTarget(i),this.maybeStartSingleClickEditing(e,i),this.markPointerUpCellActionConsumed(i)}resolveAnchoredCellTargetAtPointer(e,t,n){let r=String(t);if(typeof document.elementsFromPoint==`function`)for(let t of document.elementsFromPoint(e.clientX,e.clientY)){let e=bS(this.ctx.deps.rowModel,t);if(e&&String(e.rowId)===r&&e.colId===n)return e}let i=bS(this.ctx.deps.rowModel,e.target);return i&&String(i.rowId)===r&&i.colId===n?i:null}scheduleSingleClickEditingAfterPointerDown(e){this.clearPendingSingleClickGesture?.();let t=Symbol(`single-click-edit`);this.pendingSingleClickGesture=t;let n=e.rowId,r=e.colId,i=CS(this.ctx.deps.viewportEl),a=e=>{this.pendingSingleClickGesture===t&&e.button===0&&(this.pendingSingleClickGesture=null,this.clearPendingSingleClickGesture=null,i.removeEventListener(`mouseup`,a,!0),i.removeEventListener(`pointerup`,a,!0),this.completeSingleClickEditingGesture(e,n,r))};i.addEventListener(`mouseup`,a,{capture:!0}),i.addEventListener(`pointerup`,a,{capture:!0}),this.clearPendingSingleClickGesture=()=>{i.removeEventListener(`mouseup`,a,!0),i.removeEventListener(`pointerup`,a,!0)}}shouldSchedulePointerUpWhileEditingSwitch(e,t){return this.isOverlaySingleClickEditableColumn(e)||this.shouldSkipCellRangeDragForInlineToggleWhileEditing(e,t)}isOverlaySingleClickEditableColumn(e){if(fn(this.ctx.deps.editBehavior))return!1;let n=this.ctx.deps.columnModel.getColumnById(e.colId);return!n||t.V(n)||un(n,this.ctx.deps.editType)!==`singleClick`?!1:H(n,e.rowNode)}shouldSkipCellRangeDragForInlineToggleWhileEditing(e,n){if(!this.ctx.deps.isEditing()||n.shiftKey||n.ctrlKey||n.metaKey||this.ctx.focusController.isInlineToggleClickTarget(n.target))return!1;let r=this.ctx.deps.columnModel.getColumnById(e.colId);return!r||!t.V(r)||!af(r.cellEditor)?!1:H(r,e.rowNode)}markPointerUpCellActionConsumed(e){this.consumedPointerUpCellAction={rowId:String(e.rowId),colId:e.colId}}consumePointerUpCellActionIfMatched(e){let t=this.consumedPointerUpCellAction;return!t||String(e.rowId)!==t.rowId||e.colId!==t.colId?!1:(this.consumedPointerUpCellAction=null,!0)}maybeStartSingleClickEditing(e,n){if(e.ctrlKey||e.metaKey||e.shiftKey||this.ctx.deps.isEditing()&&(fn(this.ctx.deps.editBehavior)&&this.ctx.deps.getEditingRowId()===n.rowId&&n.colId!==this.ctx.deps.getEditingCell()?.colId&&this.ctx.deps.focusRowEditingColumn?.(n.colId)||this.isSameEditingTarget(n)))return;if(fn(this.ctx.deps.editBehavior)){let e=this.ctx.deps.columnModel.getColumnById(n.colId);if(!e||un(e,this.ctx.deps.editType)!==`singleClick`)return;this.ctx.cellCommentSession?.closeAll(),this.ctx.deps.tryStartRowEditing(n);return}let r=this.ctx.deps.columnModel.getColumnById(n.colId);if(r){if(t.V(r)){(r.cellEditor===`checkbox`||r.cellEditor===`switch`)&&!this.ctx.focusController.isInlineToggleClickTarget(e.target)&&this.ctx.focusController.toggleInlineToggleAtCell(n.rowId,n.colId,n.rowIndex);return}un(r,this.ctx.deps.editType)===`singleClick`&&(this.ctx.cellCommentSession?.closeAll(),this.ctx.deps.tryStartCellEditing(n))}}isSameEditingTarget(e){if(!this.ctx.deps.isEditing())return!1;if(fn(this.ctx.deps.editBehavior))return this.ctx.deps.getEditingRowId()===e.rowId;let t=this.ctx.deps.getEditingCell();return t?.rowId===e.rowId&&t?.colId===e.colId}buildCellClickedPayload(e){let t=this.ctx.deps.columnModel.getColumnById(e.colId),n=t?U(e.rowNode,t):e.rowNode.data[e.colId];return{rowId:e.rowId,colId:e.colId,rowIndex:e.rowIndex,rowNode:e.rowNode,value:n}}emitCellClicked(e){this.ctx.deps.eventBus.emit(`cellClicked`,this.buildCellClickedPayload(e))}emitRowPointerEvent(e,t){z(t.rowNode)&&this.ctx.deps.eventBus.emit(e,{rowId:t.rowId,colId:t.colId,rowIndex:t.rowIndex,rowNode:t.rowNode})}resolveColumnDragKind(e,t){if(t.shiftKey)return null;let n=Q(t.target);return n?.closest(`.mg-cell__row-resize-handle`)||n?.closest(`.mg-cell__row-drag-handle`)?null:this.ctx.host.isIndexColumnEntry(e)&&this.ctx.deps.indexFocusService?.isMultiple()?`index`:this.ctx.host.isSelectionColumnEntry(e)&&this.ctx.deps.selectionService?.isMultiple()?`selection`:null}},nD=class{ctx;constructor(e){this.ctx=e}handleViewportKeyDown=e=>{if(e.key===`Escape`&&this.ctx.deps.isCommitting()){e.preventDefault(),this.ctx.deps.cancelCommit();return}if(this.ctx.deps.isEditing())return;if(e.key===`F2`&&e.shiftKey){this.ctx.cellCommentSession?.handleShiftF2()&&e.preventDefault();return}let t=this.ctx.focusController.keyToFocusDirection(e.key);if(t){if(e.preventDefault(),e.altKey&&(t===`left`||t===`right`)&&this.ctx.columnResizeSession.tryKeyboardResize(t,e.shiftKey)||e.shiftKey&&(t===`left`||t===`right`)&&this.ctx.focusController.tryMoveFocusedHeaderColumn(t))return;let n=this.ctx.cellRangeInteraction.onArrowKey(t,e.shiftKey);e.ctrlKey||e.metaKey?this.ctx.focusController.navigateFocusToEdge(t):this.ctx.focusController.navigateFocus(t),n&&!e.shiftKey&&this.ctx.cellRangeInteraction.selectFocusedCellRange();return}if(e.key===`Delete`||e.key===`Backspace`){this.ctx.cellRangeInteraction.handleDeleteKey()&&e.preventDefault();return}if((e.ctrlKey||e.metaKey)&&!e.shiftKey&&!e.altKey&&e.key.toLowerCase()===`c`){this.ctx.deps.copyCellSelectionToClipboard?.()&&e.preventDefault();return}if((e.ctrlKey||e.metaKey)&&!e.shiftKey&&!e.altKey&&e.key.toLowerCase()===`v`){this.ctx.deps.isCellSelectionEnabled?.()&&this.ctx.deps.getCellSelectionOptions?.().enableCellPaste&&(e.preventDefault(),this.ctx.deps.pasteCellSelectionFromClipboard?.());return}if(e.key===`Enter`){if(e.preventDefault(),this.ctx.focusController.toggleHeaderSortFromFocus()||this.ctx.focusController.toggleHeaderSelectionFromFocus()||this.ctx.focusController.toggleIndexFocusFromFocus()||this.ctx.focusController.toggleRowExpandFromFocus()||this.ctx.focusController.toggleRowGroupFromFocus()||this.ctx.focusController.toggleTreeTableFromFocus()||this.ctx.focusController.toggleRowSelectionFromFocus())return;this.ctx.cellCommentSession?.closeAll(),this.ctx.focusController.startEditingFocusedCell();return}if(e.key===` `||e.code===`Space`){if(e.preventDefault(),this.ctx.focusController.toggleHeaderSortFromFocus()||this.ctx.focusController.toggleHeaderSelectionFromFocus()||this.ctx.focusController.toggleIndexFocusFromFocus()||this.ctx.focusController.toggleInlineEditorFromFocus()||this.ctx.focusController.toggleRowExpandFromFocus()||this.ctx.focusController.toggleRowGroupFromFocus()||this.ctx.focusController.toggleTreeTableFromFocus())return;this.ctx.focusController.toggleRowSelectionFromFocus();return}e.key===`Tab`&&(e.preventDefault(),this.ctx.focusController.navigateEditableTab(e.shiftKey))};handleViewportKeyUp=e=>{this.ctx.columnResizeSession.handleKeyUp(e)};handleMountWheel=e=>{(e.ctrlKey||e.metaKey)&&e.preventDefault()};bind(e,t){e.addEventListener(`wheel`,this.handleMountWheel,{passive:!1,capture:!0}),t.addEventListener(`keydown`,this.handleViewportKeyDown),t.addEventListener(`keyup`,this.handleViewportKeyUp)}unbind(e,t){e.removeEventListener(`wheel`,this.handleMountWheel,!0),t.removeEventListener(`keydown`,this.handleViewportKeyDown),t.removeEventListener(`keyup`,this.handleViewportKeyUp)}};function rD(e){return e.getCellRangeOperationContext??(()=>({displayedColIds:e.columnModel.getDisplayedColumnIdsInLaneOrder()}))}function iD(e){return e.getCellSelectionOptions??(()=>({enabled:!1,suppressMultiRanges:!0,enableColumnSelection:!1,enableCellCopy:!1,enableCellPaste:!1,handle:null}))}function aD(e,t){return{getColIndex:t=>e.getColIndex(t),resolveRootEl:()=>e.resolveRootEl(),setFocusedCell:t=>e.setFocusedCell(t),setSuppressColumnClick:e=>t.setSuppressColumnClick(e),setSuppressColumnHandleClick:e=>t.setSuppressColumnHandleClick(e),isIndexColumnEntry:t=>e.isIndexColumnEntry(t),isSelectionColumnEntry:t=>e.isSelectionColumnEntry(t),applyIndexFocus:(t,n,r,i)=>e.applyIndexFocus(t,n,r,i),applyRowSelection:(t,n,r,i)=>e.applyRowSelection(t,n,r,i),clearCellRangesOnRowSelectionInteraction:()=>e.clearCellRangesOnRowSelectionInteraction(),applyRowExpansionToggle:(t,n,r)=>e.applyRowExpansionToggle(t,n,r),applyRowGroupingToggle:(t,n,r)=>e.applyRowGroupingToggle(t,n,r),applyTreeTableToggle:(t,n,r)=>e.applyTreeTableToggle(t,n,r),applyTreeHierarchyShortcut:(t,n)=>e.applyTreeHierarchyShortcut(t,n),toggleTreeHierarchyMenu:(t,n)=>e.toggleTreeHierarchyMenu(t,n),closeTreeHierarchyMenu:()=>e.closeTreeHierarchyMenu(),syncCellRangeFromIndexFocus:t=>e.syncCellRangeFromIndexFocus(t),isExpandColumnEntry:t=>e.isExpandColumnEntry(t),isGroupColumnEntry:t=>e.isGroupColumnEntry(t),isTreeColumnEntry:t=>e.isTreeColumnEntry(t),buildSelectionRangeOptions:()=>e.buildSelectionRangeOptions()}}var oD=class{deps;suppressColumnClick=!1;suppressColumnHandleClick=!1;sessionHost;hostActions;focusController;columnResizeSession;columnHeaderDragSession;indexSelectionDragSession;cellRangeDragSession;fillHandleSession;rangeHandleSession;cellRangeInteraction;rowResizeSession;rowDragSession;cellCommentSession;overflowTooltipSession;headerHandlers;cellBodyHandlers;keyboardHandlers;constructor(e){this.deps=e,this.columnResizeSession=new cE({mountEl:e.mountEl,columnModel:e.columnModel,columnHandleMenuController:e.columnHandleMenuController,cellFocusService:e.cellFocusService,setColumnWidths:e.setColumnWidths,resizeHeaderColumn:e.resizeHeaderColumn});let t=rD(e),n=iD(e);this.cellRangeInteraction=new ME({getCellRangeService:e.getCellRangeService??(()=>null),cellFocusService:e.cellFocusService,columnModel:e.columnModel,rowModel:e.rowModel,getCellSpanService:()=>e.cellSpanService,isCellSelectionEnabled:e.isCellSelectionEnabled??(()=>!1),getCellSelectionOptions:e.getCellSelectionOptions,getCellRangeOperationContext:t,applyCellRangeVisuals:e.applyCellRangeVisuals??(()=>{}),emitCellSelectionChanged:e.emitCellSelectionChanged??(()=>{}),handleCellSelectionDeleteKey:e.handleCellSelectionDeleteKey,getFocusChromeNavigation:()=>({headerEnabled:e.navigateHeader(),footerEnabled:e.navigateFooter()&&e.showSummary()}),isEditing:e.isEditing,isCommitting:e.isCommitting,showIndexColumn:()=>e.indexColumnOptions.showIndexColumn,getIndexFocusedRowIds:()=>e.indexFocusService?.getFocusedRowIds()??[]}),this.hostActions=new QE({deps:e,cellRangeInteraction:this.cellRangeInteraction,isColumnResizing:()=>this.columnResizeSession.isActive()}),this.focusController=new lE({mountEl:e.mountEl,rowModel:e.rowModel,columnModel:e.columnModel,rowRenderer:e.rowRenderer,eventBus:e.eventBus,cellFocusService:e.cellFocusService,editBehavior:e.editBehavior,editType:e.editType,ensureIndexVisible:e.ensureIndexVisible,ensureColumnVisible:e.ensureColumnVisible,redrawImmediately:e.redrawImmediately,tryStartCellEditing:e.tryStartCellEditing,tryStartRowEditing:e.tryStartRowEditing,navigateHeader:e.navigateHeader,navigateFooter:e.navigateFooter,showSummary:e.showSummary,cellSpanService:()=>e.cellSpanService,getCellDisableContext:e.getCellDisableContext,toggleHeaderSort:e.toggleHeaderSort,moveColumn:e.moveColumn,syncCellRangeHighlightVisuals:e.applyCellRangeVisuals??(()=>{}),isCellSelectionEnabled:e.isCellSelectionEnabled??(()=>!1),selectFocusedCellRange:()=>this.cellRangeInteraction.selectFocusedCellRange()},this.hostActions),this.hostActions.bindFocusController(this.focusController),this.sessionHost=aD(this.hostActions,{getSuppressColumnClick:()=>this.suppressColumnClick,setSuppressColumnClick:e=>{this.suppressColumnClick=e},getSuppressColumnHandleClick:()=>this.suppressColumnHandleClick,setSuppressColumnHandleClick:e=>{this.suppressColumnHandleClick=e}}),this.columnHeaderDragSession=new aE({mountEl:e.mountEl,viewportEl:e.viewportEl,headerViewportEl:e.headerViewportEl,headerLeftLaneEl:e.headerLeftLaneEl,headerCenterLaneEl:e.headerCenterLaneEl,headerRightLaneEl:e.headerRightLaneEl,columnModel:e.columnModel,columnDragController:e.columnDragController,moveColumn:e.moveColumn,finishColumnMove:e.finishColumnMove,suppressMoveWhenColumnDragging:e.suppressMoveWhenColumnDragging,setColumnMoveLiveDragging:e.setColumnMoveLiveDragging,allowCrossLaneColumnMove:e.allowCrossLaneColumnMove,scrollByHorizontalDelta:e.scrollByHorizontalDelta},this.sessionHost),this.indexSelectionDragSession=new uE({viewportEl:e.viewportEl,rowModel:e.rowModel,indexFocusService:e.indexFocusService,selectionService:e.selectionService,getLogicalScrollTop:e.getLogicalScrollTop,getRowHeight:e.getRowHeight,scrollByDelta:e.scrollByDelta,ensureIndexVisible:e.ensureIndexVisible,getSelectableRowIdAt:e.getSelectableRowIdAt,applyIndexFocusVisuals:e.applyIndexFocusVisuals,applySelectionVisuals:e.applySelectionVisuals,emitIndexFocusChanged:t=>{e.eventBus.emit(`indexFocusChanged`,{focusedRowIds:t})},emitSelectionChanged:t=>{e.eventBus.emit(`selectionChanged`,{selectedRowIds:t,source:`ui`})}},this.sessionHost),this.cellRangeDragSession=new kE({viewportEl:e.viewportEl,rowModel:e.rowModel,columnModel:e.columnModel,getCellRangeService:e.getCellRangeService??(()=>null),getCellSpanService:()=>e.cellSpanService,isCellSelectionEnabled:e.isCellSelectionEnabled??(()=>!1),getCellRangeOperationContext:t,getLogicalScrollTop:e.getLogicalScrollTop,getScrollLeft:()=>e.viewportEl.scrollLeft,getRowHeight:e.getRowHeight,scrollByDelta:e.scrollByDelta,scrollByHorizontalDelta:e.scrollByHorizontalDelta,ensureIndexVisible:e.ensureIndexVisible,ensureColumnVisible:e.ensureColumnVisible,applyCellRangeVisuals:e.applyCellRangeVisuals??(()=>{}),emitCellSelectionChanged:e.emitCellSelectionChanged??(()=>{}),isEditing:e.isEditing,isCommitting:e.isCommitting,isInlineToggleClickTarget:e=>this.focusController.isInlineToggleClickTarget(e),isGroupOrTreeExpandClickTarget:e=>this.focusController.isGroupOrTreeExpandClickTarget(e),isPointerOverCellCommentIndicator:e.isPointerOverCellCommentIndicator??(()=>!1)},this.sessionHost),this.fillHandleSession=new AE({viewportEl:e.viewportEl,rowModel:e.rowModel,columnModel:e.columnModel,getCellRangeService:e.getCellRangeService??(()=>null),getCellSpanService:()=>e.cellSpanService,getCellSelectionOptions:n,getCellRangeOperationContext:t,getLogicalScrollTop:e.getLogicalScrollTop,getScrollLeft:()=>e.viewportEl.scrollLeft,getRowHeight:e.getRowHeight,scrollByDelta:e.scrollByDelta,scrollByHorizontalDelta:e.scrollByHorizontalDelta,applyCellRangeVisuals:e.applyCellRangeVisuals??(()=>{}),emitCellSelectionChanged:e.emitCellSelectionChanged??(()=>{}),getFillWriteService:e.getFillWriteService??(()=>null),isEditing:e.isEditing,isCommitting:e.isCommitting}),this.rangeHandleSession=new jE({viewportEl:e.viewportEl,rowModel:e.rowModel,columnModel:e.columnModel,getCellRangeService:e.getCellRangeService??(()=>null),getCellSpanService:()=>e.cellSpanService,getCellSelectionOptions:n,getCellRangeOperationContext:t,getLogicalScrollTop:e.getLogicalScrollTop,getScrollLeft:()=>e.viewportEl.scrollLeft,getRowHeight:e.getRowHeight,scrollByDelta:e.scrollByDelta,scrollByHorizontalDelta:e.scrollByHorizontalDelta,applyCellRangeVisuals:e.applyCellRangeVisuals??(()=>{}),emitCellSelectionChanged:e.emitCellSelectionChanged??(()=>{}),isEditing:e.isEditing,isCommitting:e.isCommitting}),this.rowResizeSession=new PE({mountEl:e.mountEl,rowModel:e.rowModel,indexColumnOptions:e.indexColumnOptions,setRowHeights:e.setRowHeights}),this.rowDragSession=new LE({mountEl:e.mountEl,viewportEl:e.viewportEl,rowModel:e.rowModel,rowDragManaged:e.rowDragManaged,deferRowDragCommit:e.deferRowDragCommit,hasSortOrFilterActive:e.hasSortOrFilterActive,isRowDragHandleEnabled:e.isRowDragHandleEnabled,getLogicalScrollTop:e.getLogicalScrollTop,getRowHeight:e.getRowHeight,scrollByDelta:e.scrollByDelta,moveRows:e.moveRows,finishRowMoves:e.finishRowMoves,setRowMoveLiveDragging:e.setRowMoveLiveDragging,emitRowDragEnd:e.emitRowDragEnd,isRowDragCommitting:e.isRowDragCommitting,buildPlanRowDragMoveOptions:e.buildPlanRowDragMoveOptions,planRowDragMove:e.planRowDragMove,commitDeferredRowDrag:e.commitDeferredRowDrag,isIndexFocusMultiple:e.isIndexFocusMultiple,getIndexFocusedRowIds:e.getIndexFocusedRowIds,isRowGroupingActive:e.isRowGroupingActive,validateGroupedDisplayDrop:e.validateGroupedDisplayDrop,isTreeActive:e.isTreeActive,getTreeDragScope:e.getTreeDragScope,validateTreeDisplayDrop:e.validateTreeDisplayDrop,resolveTreeRowDragEndContext:e.resolveTreeRowDragEndContext}),this.cellCommentSession=e.cellCommentService&&e.getCellCommentOptions?new XE({viewportEl:e.viewportEl,mountEl:e.mountEl,rowModel:e.rowModel,cellFocusService:e.cellFocusService,cellCommentService:e.cellCommentService,getOptions:e.getCellCommentOptions,isEditing:e.isEditing}):null,this.overflowTooltipSession=e.overflowTooltipSession??null,this.headerHandlers=new eD({deps:e,host:this.hostActions,focusController:this.focusController,cellRangeInteraction:this.cellRangeInteraction,columnResizeSession:this.columnResizeSession,columnHeaderDragSession:this.columnHeaderDragSession,indexSelectionDragSession:this.indexSelectionDragSession,rowResizeSession:this.rowResizeSession,getSuppressColumnHandleClick:()=>this.suppressColumnHandleClick,setSuppressColumnHandleClick:e=>{this.suppressColumnHandleClick=e}}),this.cellBodyHandlers=new tD({deps:e,host:this.hostActions,focusController:this.focusController,cellRangeInteraction:this.cellRangeInteraction,columnResizeSession:this.columnResizeSession,columnHeaderDragSession:this.columnHeaderDragSession,indexSelectionDragSession:this.indexSelectionDragSession,cellRangeDragSession:this.cellRangeDragSession,fillHandleSession:this.fillHandleSession,rangeHandleSession:this.rangeHandleSession,rowResizeSession:this.rowResizeSession,rowDragSession:this.rowDragSession,cellCommentSession:this.cellCommentSession,getSuppressColumnClick:()=>this.suppressColumnClick,setSuppressColumnClick:e=>{this.suppressColumnClick=e}}),this.keyboardHandlers=new nD({deps:e,focusController:this.focusController,columnResizeSession:this.columnResizeSession,cellRangeInteraction:this.cellRangeInteraction,cellCommentSession:this.cellCommentSession})}isColumnResizing(){return this.columnResizeSession.isActive()}isRowResizing(){return this.rowResizeSession.isActive()}isRowDragging(){return this.rowDragSession.isActive()}refreshColumnResizeVisualState(){this.columnResizeSession.refreshVisualState()}refreshRowResizeVisualState(){this.rowResizeSession.refreshVisualState()}bindListeners(){this.headerHandlers.bind(this.deps.mountEl),this.cellBodyHandlers.bind(this.deps.viewportEl),this.keyboardHandlers.bind(this.deps.mountEl,this.deps.viewportEl),this.cellCommentSession?.bindListeners(),this.overflowTooltipSession?.bindListeners()}unbindListeners(){this.headerHandlers.unbind(this.deps.mountEl),this.cellBodyHandlers.unbind(this.deps.viewportEl),this.keyboardHandlers.unbind(this.deps.mountEl,this.deps.viewportEl),this.cellCommentSession?.unbindListeners(),this.overflowTooltipSession?.unbindListeners(),this.indexSelectionDragSession.end(),this.cellRangeDragSession.end(),this.fillHandleSession.end(),this.rangeHandleSession.end(),this.columnHeaderDragSession.end(!1),this.columnResizeSession.end(!1),this.rowResizeSession.end(!1),this.rowDragSession.end(!1),this.deps.columnHandleMenuController.close()}applyFocusVisuals(){this.focusController.applyFocusVisuals()}navigateEditableTab(e){this.focusController.navigateEditableTab(e)}syncCellRangeFromIndexFocus(e){this.hostActions.syncCellRangeFromIndexFocus(e)}};function sD(e){return t.$(e).mode}function cD(e){return t.$(e)}function lD(e){let t=e.getRowCount();if(t===0)return 0;let n=e.getRow(t-1);return n&&mo(n)?n.rowTop:e.getTotalHeight()}function uD(e,t,n){let r=lD(e);return Math.max(0,Math.floor(t+n-r))}function dD(e){let t=BT(e.totalHeight,e.clientHeight),n=VT(e.scrollHeight,e.clientHeight),r=HT(e.scrollWidth,e.clientWidth),i=e.totalWidth>e.clientWidth+2,a=n&&t>0,o=r&&i,s=e.totalHeight<e.clientHeight-.5,c=e.totalWidth<e.clientWidth-.5,l=e.scrollTop+e.clientHeight>=e.scrollHeight-1;return{hasVScrollbar:a,hasHScrollbar:o,innerRightClosesTable:a||c,innerBottomClosesTable:!(!s&&!o&&l)}}function fD(e){return e.parentElement?.parentElement??null}function pD(e,t){e.classList.toggle(`mg-grid--has-v-scrollbar`,t.hasVScrollbar),e.classList.toggle(`mg-grid--has-h-scrollbar`,t.hasHScrollbar),e.classList.toggle(`mg-grid--inner-right-closes`,t.innerRightClosesTable),e.classList.toggle(`mg-grid--inner-bottom-closes`,t.innerBottomClosesTable)}function mD(e){let{anchorScrollTop:t,atScrollBottom:n,detailRowTop:r,heightDelta:i,logicalMaxScroll:a}=e;return i===0?hD(t,a):n?a:hD(t>r?t+i:t,a)}function hD(e,t){return Math.max(0,Math.min(e,t))}function gD(e,t,n,r){return n>0&&e>0&&r<=2?Math.floor(t):e}function _D(e,t,n,r){let i=BT(e,t);if(r===0||e<=16777216)return{totalHeight:e,viewportHeight:t,rowHeight:n,rowCount:r,compressed:!1,physicalSpacerHeight:gD(e,t,r,i),physicalMaxScroll:i,logicalMaxScroll:i};let a=Math.max(0,Math.ceil(i/n));return{totalHeight:e,viewportHeight:t,rowHeight:n,rowCount:r,compressed:!0,physicalSpacerHeight:a+t+1,physicalMaxScroll:a,logicalMaxScroll:i}}function vD(e,t){return t.compressed?e>=t.physicalMaxScroll?t.logicalMaxScroll:SD(e*t.rowHeight,0,t.logicalMaxScroll):SD(e,0,t.logicalMaxScroll)}function yD(e,t){return t.compressed?e>=t.logicalMaxScroll?t.physicalMaxScroll:SD(e/t.rowHeight,0,t.physicalMaxScroll):SD(e,0,t.physicalMaxScroll)}function bD(e,t,n=1){return e>=t.logicalMaxScroll-n}function xD(e,t=1){return e<=t}function SD(e,t,n){return Math.max(t,Math.min(e,n))}var CD=null;function wD(e=document){if(CD!==null)return CD;let t=e.createElement(`div`);t.style.cssText=`visibility:hidden;overflow:scroll;width:100px;height:100px;position:absolute;top:-9999px`,e.body.appendChild(t);let n=Math.max(0,t.offsetWidth-t.clientWidth);return t.remove(),n===0&&ED(e)?(CD=8,CD):(CD=n,CD)}function TD(){CD=null}function ED(e=document){let t=e.createElement(`div`);t.style.cssText=`width:100px;height:100px;overflow:scroll;visibility:hidden;position:absolute;top:-9999px`;let n=e.createElement(`div`);n.style.height=`200px`,t.appendChild(n),e.body.appendChild(t);let r=t.offsetWidth===t.clientWidth;return t.remove(),r}function DD(e,t){return e.hasVScrollbar?!0:!t&&e.liveGutterWidth>0}function OD(e){let t=e.overlayScrollbars??ED(),n=e.measuredWidth??wD();if(!DD(e,t))return{layout:0,visual:0};if(t)return{layout:0,visual:n};let r=e.liveGutterWidth>0?e.liveGutterWidth:n;return{layout:r,visual:r}}function kD(e,t,n){let r=Math.max(0,t.offsetWidth-t.clientWidth),i=VT(t.scrollHeight,t.clientHeight),a=e.magicGridEl,o=a?.classList.contains(`mg-grid--has-v-scrollbar`)??!1,s=OD({hasVScrollbar:a?o:i,liveGutterWidth:a?o?r:0:r,overlayScrollbars:n});e.rootEl.style.setProperty(`--mg-v-scrollbar-layout`,`${s.layout}px`),e.rootEl.style.setProperty(`--mg-v-scrollbar-visual`,`${s.visual}px`);let c=s.layout>0?0:s.visual;return e.rootEl.style.setProperty(`--mg-v-scrollbar-visual-overlay`,`${c}px`),e.headerViewportEl.style.removeProperty(`padding-right`),e.footerViewportEl?.style.removeProperty(`padding-right`),e.floatingFilterViewportEl?.style.removeProperty(`padding-right`),e.magicGridEl&&e.magicGridEl.classList.toggle(`magic-grid--overlay-scrollbar`,n),s}var AD=class{deps;lastScrollLeft=0;onAfterRedraw=null;resizeObserver=null;overlayScrollbars=null;scrollEndTimer=null;scrollSessionEndTimer=null;scrollSessionActive=!1;atScrollTop=!0;atScrollBottom=!1;programmaticScrollDepth=0;constructor(e){this.deps=e}setOnAfterRedraw(e){this.onAfterRedraw=e}get viewportEl(){return this.deps.viewportEl}bindScrollListener(){this.deps.viewportEl.addEventListener(`scroll`,this.handleScroll,{passive:!0}),this.resizeObserver=new ResizeObserver(()=>{this.handleViewportResize()}),this.resizeObserver.observe(this.deps.viewportEl)}unbindScrollListener(){this.deps.viewportEl.removeEventListener(`scroll`,this.handleScroll),this.clearScrollEndTimer(),this.clearScrollSessionEndTimer(),this.scrollSessionActive=!1,this.resizeObserver?.disconnect(),this.resizeObserver=null}clearScrollEndTimer(){this.scrollEndTimer!=null&&(clearTimeout(this.scrollEndTimer),this.scrollEndTimer=null)}clearScrollSessionEndTimer(){this.scrollSessionEndTimer!=null&&(clearTimeout(this.scrollSessionEndTimer),this.scrollSessionEndTimer=null)}getScrollSessionEndDebounceMs(){let{scrollEndFlushMs:e}=this.deps.scrollRenderOptions;return e>0?e:150}scheduleScrollEndIdle(){this.clearScrollEndTimer();let{scrollEndFlushMs:e,deferRowDestroyOnScroll:t,cellRendererPresentation:n}=this.deps.scrollRenderOptions,r=e>0?e:t||n===`placeholder-then-vue`?150:0;r<=0||(this.scrollEndTimer=setTimeout(()=>{this.scrollEndTimer=null,!this.deps.isDestroyed()&&this.deps.onScrollEndIdle?.()},r))}getLogicalScrollTop(){return vD(this.deps.viewportEl.scrollTop,this.getScrollRange())}getRenderViewportHeight(){return this.getRenderViewportHeightInternal()}scrollTo(e,t){let n=this.getScrollRange(),r=Math.max(0,Math.min(e,n.logicalMaxScroll));this.applyPhysicalScrollFromLogical(r),this.deps.scrollBridge.syncScrollTop(r),this.deps.frameService.setScrollDirection(this.deps.scrollBridge.isScrollGoingDown()),t!==void 0&&(this.deps.viewportEl.scrollLeft=t,this.lastScrollLeft=t),this.deps.headerScrollEl.scrollLeft=this.deps.viewportEl.scrollLeft,this.syncFooterScrollLeft(),this.syncFloatingFilterScrollLeft(),this.redrawImmediately(),this.emitScrollPositionEvents(r,this.deps.viewportEl.scrollLeft),this.deps.onScroll?.()}scrollByDelta(e){e===0||!Number.isFinite(e)||this.scrollTo(this.getLogicalScrollTop()+e)}scrollByHorizontalDelta(e){if(e===0)return;let t=this.deps.viewportEl.clientWidth,n=WT(this.deps.columnModel,t),r=Math.max(0,Math.min(this.deps.viewportEl.scrollLeft+e,n));Math.abs(r-this.deps.viewportEl.scrollLeft)<1||this.scrollTo(this.getLogicalScrollTop(),r)}ensureIndexVisible(e,t=`middle`){let n=this.deps.rowModel.getRowBounds(e);if(!n)return;let r=this.getRenderViewportHeightInternal(),i=this.getScrollRange(),a=this.getLogicalScrollTop();a=t===`top`?n.rowTop:t===`bottom`?n.rowTop+n.rowHeight-r:n.rowTop-(r-n.rowHeight)/2,a=Math.max(0,Math.min(a,i.logicalMaxScroll)),this.scrollTo(a,this.deps.viewportEl.scrollLeft)}ensureColumnVisible(e){let t=this.deps.viewportEl.clientWidth,n=this.deps.viewportEl.scrollLeft,r=UT(e,this.deps.columnModel,n,t);if(r===null)return;let i=WT(this.deps.columnModel,t),a=Math.max(0,Math.min(r,i));a!==n&&this.scrollTo(this.deps.scrollBridge.getScrollTop(),a)}syncHorizontalScrollLeft(e){this.deps.viewportEl.scrollLeft=e,this.lastScrollLeft=e,this.deps.headerScrollEl.scrollLeft=e,this.syncFooterScrollLeft(),this.syncFloatingFilterScrollLeft()}applyColumnStructureVisuals(){this.deps.applySelectionVisuals(),this.deps.applyFocusVisuals(),this.syncBorderClosureState(),this.deps.applyCellRangeVisuals?.()}syncHorizontalLayout(){let e=this.deps.columnModel.getTotalWidth();this.syncHeaderFooterRowWidth(),this.deps.spacerEl.style.minWidth=`${e}px`,this.deps.rowsContainerEl.style.width=`${e}px`,Xh(this.deps.headerLeftLaneEl,this.deps.headerCenterLaneEl,this.deps.headerRightLaneEl,this.deps.columnModel),this.syncFooterHorizontalLayout(),this.syncFloatingFilterHorizontalLayout(),this.syncScrollChrome(),this.syncIndexColumnFill()}syncColumnCellLayouts(){Zh(this.deps.headerLeftLaneEl,this.deps.headerCenterLaneEl,this.deps.headerRightLaneEl,this.deps.columnModel),this.deps.footerLeftLaneEl&&this.deps.footerCenterLaneEl&&this.deps.footerRightLaneEl&&Q_(this.deps.footerLeftLaneEl,this.deps.footerCenterLaneEl,this.deps.footerRightLaneEl,this.deps.columnModel),this.deps.floatingFilterLeftLaneEl&&this.deps.floatingFilterCenterLaneEl&&this.deps.floatingFilterRightLaneEl&&IT(this.deps.floatingFilterLeftLaneEl,this.deps.floatingFilterCenterLaneEl,this.deps.floatingFilterRightLaneEl,this.deps.columnModel)}syncBorderClosureState(){let e=fD(this.deps.rootEl);if(!e)return;let t=this.deps.viewportEl;pD(e,dD({scrollTop:t.scrollTop,scrollHeight:t.scrollHeight,scrollWidth:t.scrollWidth,clientHeight:t.clientHeight,clientWidth:t.clientWidth,totalHeight:this.deps.rowModel.getTotalHeight(),totalWidth:this.deps.columnModel.getTotalWidth()})),this.syncHorizontalScrollEndState(e,t)}syncHorizontalScrollEndState(e,t=this.deps.viewportEl){let n=e??fD(this.deps.rootEl);if(!n)return;let r=WT(this.deps.columnModel,t.clientWidth),i=GT(t.scrollLeft,r);n.classList.toggle(`mg-grid--at-h-scroll-end`,i)}captureScrollAnchor(){let e=this.resolveLogicalScrollTopForSync();return{logicalScrollTop:e,atScrollBottom:bD(e,this.getScrollRange())}}syncViewportHeightWithDetailCompensation(e){let t=this.getViewportHeight(),n=this.getScrollRange(t);this.applySpacerLayoutFromRange(t,n),this.syncScrollMode(t);let r=this.getScrollRange(t),i=mD({anchorScrollTop:e.anchor.logicalScrollTop,atScrollBottom:e.anchor.atScrollBottom,detailRowTop:e.detailRowTop,heightDelta:e.heightDelta,logicalMaxScroll:r.logicalMaxScroll});this.deps.scrollBridge.syncScrollTop(i),this.applyPhysicalScrollFromLogical(i),this.syncAtScrollTopState(i),this.syncAtScrollBottomState(i),this.syncHeaderFooterRowWidth(),this.syncScrollChrome(),this.syncIndexColumnFill()}syncViewportHeight(){let e=this.captureScrollAnchor();this.syncViewportHeightWithDetailCompensation({anchor:e,detailRowTop:0,heightDelta:0})}scrollGridIfNeeded(){let e=this.deps.viewportEl.scrollLeft,t=!1;return t=this.deps.scrollBridge.scrollGridIfNeeded(t=>{this.redrawViewport(t,e)})||t,e!==this.lastScrollLeft&&(t||this.redrawViewport(this.deps.scrollBridge.getScrollTop(),e),t=!0),this.lastScrollLeft=this.deps.viewportEl.scrollLeft,t}redrawImmediately(){if(this.deps.isDestroyed())return;let e=this.getLogicalScrollTop();this.deps.scrollBridge.syncScrollTop(e),this.deps.frameService.flushAllFrames(),this.redrawViewport(e,this.deps.viewportEl.scrollLeft),this.lastScrollLeft=this.deps.viewportEl.scrollLeft,this.deps.frameService.flushAllFrames(),this.deps.applySelectionVisuals(),this.deps.applyFocusVisuals(),this.syncBorderClosureState()}redrawRowExpansionIncremental(){if(this.deps.isDestroyed())return;let e=this.resolveLogicalScrollTopForSync();this.deps.scrollBridge.syncScrollTop(e),this.applyPhysicalScrollFromLogical(Math.min(e,this.getScrollRange().logicalMaxScroll)),this.deps.frameService.flushAllFrames(),this.syncPinnedRows();let t=this.deps.viewportEl.scrollLeft,n=this.deps.viewportEl.clientWidth;this.deps.columnViewport.update(t,n);let r=this.deps.columnViewport.getWindow(),i=this.getRenderViewportHeightInternal();this.deps.rowRenderer.syncRowExpansionDisplay(e,i,r),this.deps.applySelectionVisuals(),this.deps.applyFocusVisuals(),this.syncBorderClosureState(),this.deps.applyCellRangeVisuals?.(),this.syncIndexColumnFill(),this.deps.frameService.flushAllFrames()}resetScrollOnSetData(){this.atScrollTop=!0,this.atScrollBottom=!1,this.scrollSessionActive=!1,this.clearScrollSessionEndTimer(),this.deps.scrollBridge.syncScrollTop(0),this.applyPhysicalScrollFromLogical(0),this.deps.viewportEl.scrollTop=0,this.deps.viewportEl.scrollLeft=0,this.lastScrollLeft=0,this.deps.headerScrollEl.scrollLeft=0,this.syncFooterScrollLeft(),this.syncFloatingFilterScrollLeft()}scheduleCompressedSetDataRedraw(e){this.getScrollRange().compressed&&requestAnimationFrame(()=>{this.deps.isDestroyed()||e()})}syncPinnedRows(){this.deps.rowRenderer.setPinnedRowIds(this.deps.getPinnedRowIds())}handleScroll=()=>{let e=this.getLogicalScrollTop(),t=this.deps.viewportEl.scrollLeft;if(this.deps.scrollBridge.notifyScroll(e),this.deps.frameService.setScrollDirection(this.deps.scrollBridge.isScrollGoingDown()),this.deps.onScrollActivity?.(),this.deps.headerScrollEl.scrollLeft=t,this.syncFooterScrollLeft(),this.syncFloatingFilterScrollLeft(),this.syncBorderClosureState(),this.syncPinnedRows(),!(this.programmaticScrollDepth>0)){if(this.trackUserScrollSession(e,t),this.getScrollRange().compressed){this.deps.scrollBridge.syncScrollTop(e),this.redrawViewport(e,this.deps.viewportEl.scrollLeft),this.deps.frameService.flushAllFrames(),this.emitScrollPositionEvents(e,t);return}this.deps.frameService.schedule(),this.scheduleScrollEndIdle(),this.emitScrollPositionEvents(e,t),this.deps.applyCellRangeScrollVisuals?.()}};emitScrollPositionEvents(e,t){this.maybeEmitScrollTop(e,t),this.maybeEmitScrollBottom(e,t),this.emitScrollEvent(`scroll`,e,t)}emitScrollEvent(e,t,n){this.deps.onEmitScrollEvent?.(e,{scrollTop:t,scrollLeft:n})}trackUserScrollSession(e,t){this.scrollSessionActive||(this.scrollSessionActive=!0,this.emitScrollEvent(`scrollStart`,e,t)),this.scheduleScrollSessionEnd()}scheduleScrollSessionEnd(){this.clearScrollSessionEndTimer(),this.scrollSessionEndTimer=setTimeout(()=>{this.scrollSessionEndTimer=null,!(this.deps.isDestroyed()||!this.scrollSessionActive)&&(this.scrollSessionActive=!1,this.emitScrollEvent(`scrollEnd`,this.getLogicalScrollTop(),this.deps.viewportEl.scrollLeft))},this.getScrollSessionEndDebounceMs())}maybeEmitScrollTop(e,t){let n=xD(e),r=this.atScrollTop;this.atScrollTop=n,n&&!r&&this.emitScrollEvent(`scrollTop`,e,t)}maybeEmitScrollBottom(e,t){let n=bD(e,this.getScrollRange()),r=this.atScrollBottom;this.atScrollBottom=n,n&&!r&&this.emitScrollEvent(`scrollBottom`,e,t)}syncAtScrollTopState(e){let t=e??this.getLogicalScrollTop();this.atScrollTop=xD(t)}syncAtScrollBottomState(e){let t=this.getScrollRange(),n=e??this.getLogicalScrollTop();this.atScrollBottom=bD(n,t)}isColumnMoveLiveDragging(){return this.deps.rootEl.classList.contains(`magic-grid--column-move-live`)}redrawViewport(e,t){let n=this.getViewportHeight();this.syncCompressedLayerHeight(n);let r=e??this.getLogicalScrollTop(),i=t??this.deps.viewportEl.scrollLeft,a=this.deps.viewportEl.clientWidth;this.syncViewportInlineSize(a);let o=KT(this.deps.columnModel,i,a);o!==i&&(this.deps.viewportEl.scrollLeft=o,this.lastScrollLeft=o,this.deps.headerScrollEl.scrollLeft=o,this.syncFooterScrollLeft(),this.syncFloatingFilterScrollLeft());let s=this.getRenderViewportHeightInternal(),c=this.deps.columnViewport.update(o,a),l=this.deps.columnViewport.getWindow();c&&(this.reorderHeaderCells(!0),this.isColumnMoveLiveDragging()?this.syncColumnCellLayouts():(this.deps.refreshFooter?.(),this.deps.refreshFloatingFilter?.()),this.deps.applyFocusVisuals()),this.syncFooterScrollLeft(),this.syncFloatingFilterScrollLeft(),this.syncPinnedRows(),this.deps.ensureInfiniteRowsLoaded?.(r,s),this.deps.rowRenderer.redraw(r,s,l,c),this.deps.applyCellRangeVisuals?.(),this.syncIndexColumnFill(),this.onAfterRedraw?.()}syncScrollbarGutter(){kD({rootEl:this.deps.rootEl,headerViewportEl:this.deps.headerViewportEl,footerViewportEl:this.deps.footerViewportEl,floatingFilterViewportEl:this.deps.floatingFilterViewportEl,magicGridEl:fD(this.deps.rootEl)},this.deps.viewportEl,this.getOverlayScrollbars())}getOverlayScrollbars(){return this.overlayScrollbars===null&&(this.overlayScrollbars=ED()),this.overlayScrollbars}handleViewportResize(){if(this.deps.isDestroyed())return;TD(),this.overlayScrollbars=null;let e=this.getViewportHeight(),t=this.getScrollRange(e);this.applySpacerLayoutFromRange(e,t),this.syncHeaderFooterRowWidth(),this.syncScrollChrome(),this.syncIndexColumnFill()}syncScrollChrome(){this.syncBorderClosureState(),this.stabilizeShortContentSpacer(),this.syncScrollbarGutter()}stabilizeShortContentSpacer(){let e=this.getScrollRange();if(e.compressed||e.logicalMaxScroll>0)return;let t=this.deps.viewportEl.clientHeight;if(t<=0)return;let n=this.deps.rowModel.getTotalHeight(),r=Math.max(n,Math.floor(t)),i=Number.parseFloat(this.deps.spacerEl.style.height);(!Number.isFinite(i)||Math.abs(i-r)>2)&&(this.deps.spacerEl.style.height=`${r}px`)}applySpacerLayoutFromRange(e,t){if(t.compressed){this.deps.spacerEl.style.height=``,this.deps.scrollPhantomEl.style.height=`${t.physicalMaxScroll+1}px`,this.syncCompressedLayerHeight(e);return}this.deps.spacerEl.style.height=`${t.physicalSpacerHeight}px`,this.deps.scrollPhantomEl.style.height=`0px`,this.deps.viewportEl.style.removeProperty(`--mg-viewport-px`)}syncHeaderFooterRowWidth(){let e=this.deps.columnModel.getTotalWidth();this.deps.headerRowEl.style.width=`${e}px`,this.deps.footerRowEl&&(this.deps.footerRowEl.style.width=`${e}px`),this.deps.floatingFilterRowEl&&(this.deps.floatingFilterRowEl.style.width=`${e}px`)}syncFooterHorizontalLayout(){!this.deps.footerRowEl||!this.deps.footerLeftLaneEl||!this.deps.footerCenterLaneEl||!this.deps.footerRightLaneEl||(Z_(this.deps.footerLeftLaneEl,this.deps.footerCenterLaneEl,this.deps.footerRightLaneEl,this.deps.columnModel),this.syncFooterScrollLeft())}refreshFloatingFilterActiveState(){this.deps.isDestroyed()||!this.deps.floatingFilterLeftLaneEl||!this.deps.floatingFilterCenterLaneEl||!this.deps.floatingFilterRightLaneEl||NT([this.deps.floatingFilterLeftLaneEl,this.deps.floatingFilterCenterLaneEl,this.deps.floatingFilterRightLaneEl],this.deps.rowModel.getFilterModel())}syncFloatingFilterHorizontalLayout(){!this.deps.floatingFilterRowEl||!this.deps.floatingFilterLeftLaneEl||!this.deps.floatingFilterCenterLaneEl||!this.deps.floatingFilterRightLaneEl||(FT(this.deps.floatingFilterLeftLaneEl,this.deps.floatingFilterCenterLaneEl,this.deps.floatingFilterRightLaneEl,this.deps.columnModel),this.syncFloatingFilterScrollLeft())}syncFloatingFilterScrollLeft(){if(!this.deps.floatingFilterScrollEl)return;let e=this.deps.viewportEl.scrollLeft;this.deps.floatingFilterScrollEl.scrollLeft!==e&&(this.deps.floatingFilterScrollEl.scrollLeft=e)}syncFooterScrollLeft(){if(!this.deps.footerScrollEl)return;let e=this.deps.viewportEl.scrollLeft;this.deps.footerScrollEl.scrollLeft!==e&&(this.deps.footerScrollEl.scrollLeft=e)}renderHeader(e){Yh({headerLeftLaneEl:this.deps.headerLeftLaneEl,headerCenterLaneEl:this.deps.headerCenterLaneEl,headerRightLaneEl:this.deps.headerRightLaneEl,columnModel:this.deps.columnModel,centerWindow:e,sortModel:this.deps.rowModel.getSortModel(),filterModel:this.deps.rowModel.getFilterModel(),validationFeedback:this.deps.validationFeedback,selectionColumnOptions:this.deps.selectionColumnOptions,showUnsortedSortHintOnHover:this.deps.showUnsortedSortHintOnHover(),enableHeaderSortClick:this.deps.enableHeaderSortClick(),getTreeHeaderExpanded:this.deps.getTreeHeaderExpanded})}syncTreeHeaderExpandState(){this.deps.isDestroyed()||kh([this.deps.headerLeftLaneEl,this.deps.headerCenterLaneEl,this.deps.headerRightLaneEl],this.deps.getTreeHeaderExpanded?.()??!1)}refreshHeader(){this.deps.isDestroyed()||(this.deps.onHeaderRefresh?.(),this.renderHeader(this.deps.columnViewport.getWindow()))}reorderHeaderCells(e=!1){this.deps.isDestroyed()||eg({headerLeftLaneEl:this.deps.headerLeftLaneEl,headerCenterLaneEl:this.deps.headerCenterLaneEl,headerRightLaneEl:this.deps.headerRightLaneEl,columnModel:this.deps.columnModel,centerWindow:this.deps.columnViewport.getWindow(),fillColumnWindowGaps:e,sortModel:this.deps.rowModel.getSortModel(),filterModel:this.deps.rowModel.getFilterModel(),validationFeedback:this.deps.validationFeedback,selectionColumnOptions:this.deps.selectionColumnOptions,showUnsortedSortHintOnHover:this.deps.showUnsortedSortHintOnHover(),enableHeaderSortClick:this.deps.enableHeaderSortClick(),getTreeHeaderExpanded:this.deps.getTreeHeaderExpanded})}refreshHeaderIndicatorState(){this.deps.isDestroyed()||Zm([this.deps.headerLeftLaneEl,this.deps.headerCenterLaneEl,this.deps.headerRightLaneEl],{sortModel:this.deps.rowModel.getSortModel(),filterModel:this.deps.rowModel.getFilterModel(),getColumnById:e=>{let t=this.deps.columnModel.getColumnById(e);if(t)return{colId:t.colId,sortable:t.sortable,filterable:t.filterable,headerAlign:t.headerAlign}},showUnsortedSortHintOnHover:this.deps.showUnsortedSortHintOnHover(),enableHeaderSortClick:this.deps.enableHeaderSortClick()})}getViewportHeight(){let e=this.deps.viewportEl.clientHeight;return e>0?e:this.deps.viewportEl.getBoundingClientRect().height}getRenderViewportHeightInternal(){if(this.deps.rowsLayerEl.classList.contains(`mg-rows-layer--compressed`)){let e=this.deps.rowsLayerEl.clientHeight;if(e>0)return e}return this.getViewportHeight()}syncCompressedLayerHeight(e){this.getScrollRange(e).compressed&&(this.deps.rowsLayerEl.style.height=`${e}px`,this.deps.viewportEl.style.setProperty(`--mg-viewport-px`,`${e}px`))}syncViewportInlineSize(e){e>0&&this.deps.viewportEl.style.setProperty(`--mg-viewport-inline-size`,`${e}px`)}syncIndexColumnFill(){let{indexColumnFillHostEl:e,indexColumnFillEl:n}=this.deps;if(!this.deps.showIndexColumn){e.hidden=!0;return}let r=this.deps.columnModel.getColumnById(t.tt);if(!r||r.hidden){e.hidden=!0;return}let i=this.deps.rowModel.getRowCount(),a=this.getViewportHeight(),o=Math.floor(a),s=this.getLogicalScrollTop(),c=uD(this.deps.rowModel,s,o);if(i===0||c<=0){e.hidden=!0;return}let l=this.getScrollRange(a).compressed,u=lD(this.deps.rowModel),d=l?u-s:u;e.hidden=!1,n.style.top=`${d}px`,n.style.left=`${r.left}px`,n.style.width=`${r.width}px`,n.style.height=`${c}px`}getScrollRange(e){let t=e??this.getViewportHeight();return _D(this.deps.rowModel.getTotalHeight(),t,this.deps.getDefaultRowHeight(),this.deps.rowModel.getRowCount())}resolveLogicalScrollTopForSync(){return Math.max(this.getLogicalScrollTop(),this.deps.scrollBridge.getNextScrollTop(),this.deps.scrollBridge.getScrollTop())}applyPhysicalScrollFromLogical(e){this.programmaticScrollDepth++;try{let t=this.getScrollRange();this.deps.viewportEl.scrollTop=yD(e,t)}finally{this.programmaticScrollDepth--}}syncScrollMode(e){let t=e??this.getViewportHeight(),n=this.getScrollRange(t).compressed;this.deps.rowsLayerEl.parentElement!==this.deps.spacerEl&&this.deps.spacerEl.prepend(this.deps.rowsLayerEl),this.deps.rowsContainerEl.style.transform=``,this.deps.spacerEl.classList.toggle(`mg-spacer--compressed`,n),this.deps.scrollPhantomEl.classList.toggle(`mg-scroll-phantom--active`,n),this.deps.rowsLayerEl.classList.toggle(`mg-rows-layer--compressed`,n),this.deps.rowRenderer.setCompressedScroll(n)}};function jD(e){let t=[`left`,`center`,`right`],n=[];for(let r of t){let t=r===`center`?null:r,i=e.filter(e=>(e.fixed??null)===t),a=i.filter(e=>!lc(e.colId)),o=i.filter(e=>lc(e.colId)).sort((e,t)=>e.defOrder-t.defOrder);n.push(...a.map(e=>e.colId),...o.map(e=>e.colId))}return n}function MD(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}function ND(e,t){for(let n=0;n<t.length;n+=1){let r=t[n];if(!(!r||e[n]===r))return{fromColId:r,toIndex:n}}return null}var PD=class{deps;columnMoveOptions;columnResizeOptions;pendingColumnResizeColIds=[];pendingColumnResizeFinished=!1;constructor(e,t,n){this.deps=e,this.columnMoveOptions=t,this.columnResizeOptions=n}setColumnMoveOptions(e){let t=this.columnMoveOptions;this.columnMoveOptions=ia({...t,...e});let n=e.columnMovable!==void 0&&e.columnMovable!==t.columnMovable,r=e.allowCrossLaneColumnMove!==void 0&&e.allowCrossLaneColumnMove!==t.allowCrossLaneColumnMove;(n||r)&&(this.deps.columnModel.setColumnMoveGridOptions(this.columnMoveOptions),n&&this.deps.viewport.refreshHeader()),this.syncColumnMovePresentationClasses()}setColumnResizeOptions(e){let t=this.columnResizeOptions;this.columnResizeOptions=Lg({...t,...e}),e.resizable!==void 0&&e.resizable!==t.resizable&&(this.deps.columnModel.setColumnResizeGridOptions(this.columnResizeOptions),this.deps.viewport.refreshHeader())}syncColumnLayoutAfterResize(){this.deps.isDestroyed()||(this.deps.viewport.syncHorizontalLayout(),this.applyHorizontalScrollAfterColumnLayout(),this.deps.viewport.syncColumnCellLayouts(),this.deps.rowRenderer.syncColumnLayouts(),this.deps.footerRenderer?.syncColumnLayouts(),this.deps.columnViewport.invalidate(),this.pendingColumnResizeFinished&&this.deps.viewport.redrawImmediately(),this.deps.refreshColumnResizeVisualState(),this.deps.applyCellRangeVisuals?.())}applyHorizontalScrollAfterColumnLayout(){let e=this.deps.mountEl.querySelector(`.mg-viewport`);if(!e)return;let t=e.scrollLeft,n=e.clientWidth,r=this.pendingColumnResizeFinished;for(let e of this.pendingColumnResizeColIds){let i=qT(this.deps.columnModel,e,t,n,r);i!==null&&(t=i)}let i=KT(this.deps.columnModel,t,n);i!==e.scrollLeft&&this.deps.viewport.scrollTo(this.deps.viewport.getLogicalScrollTop(),i)}setColumnWidths(e,t=!0,n=`api`){let r=e.map(e=>({colId:e.colId,newWidth:e.width}));this.applyColumnWidths(r,!1,t,n)}setColumnWidth(e,t,n=!0,r=`api`){this.setColumnWidths([{colId:e,width:t}],n,r)}getColumnWidth(e){return this.deps.columnModel.getColumnWidth(e)}refreshFlexedColumns(e){if(!this.deps.columnModel.hasFlexColumns())return!1;let t=this.deps.mountEl.querySelector(`.mg-viewport`)?.clientWidth??0,n=t>0?t:this.deps.mountEl.clientWidth,r=this.deps.columnFlexService.resolveCenterViewportWidth(n),i=this.deps.columnFlexService.refreshFlexedColumns({viewportWidth:r,resizingColIds:e?.resizingColIds});if(!i.changed)return!1;if(this.syncColumnLayoutAfterResize(),e?.fireResizedEvent){let e=[...new Set(i.changedColIds)];this.deps.eventBus.emit(`columnResized`,Bg(e.map(e=>({colId:e})),this.deps.columnModel,!0,`flex`,i.flexColIds))}return!0}autoSizeColumn(e,t,n=`autosizeColumns`){this.autoSizeColumns([e],t,n)}autoSizeColumns(e,t,n=`autosizeColumns`){let r=this.deps.columnAutosizeService.autoSizeColumns(e,t);r.length!==0&&this.applyColumnWidths(r,!1,!0,n)}sizeColumnsToFit(e){let t=this.resolveViewportWidth(),n=e?.gridWidth??t,r=this.deps.columnAutosizeService.sizeColumnsToFit(n,e);r.length!==0&&this.applyColumnWidths(r,!1,!0,`sizeColumnsToFit`)}applyAutoSizeFitWidthStrategy(e){let t=this.resolveViewportWidth(),n=this.deps.columnAutosizeService.buildFitWidthStrategyParams(e,t);this.sizeColumnsToFit(n)}applyAutoSizeFitCellContentsStrategy(e){let{contentChanges:t,scaleUpParams:n}=this.deps.columnAutosizeService.buildFitCellContentsChanges(e);if(t.length>0&&this.applyColumnWidths(t,!1,!0,`autosizeColumns`),n){let e=this.resolveViewportWidth(),t=this.deps.columnAutosizeService.sizeColumnsToFit(e,n);t.length>0&&this.applyColumnWidths(t,!1,!0,`sizeColumnsToFit`)}}resolveViewportWidth(){let e=this.deps.mountEl.querySelector(`.mg-viewport`)?.clientWidth??0;return e>0?e:this.deps.mountEl.clientWidth}resizeHeaderColumn(e,t,n){let r=this.deps.columnModel.getColumnById(e);r?.resizable&&this.applyColumnWidths([{colId:e,newWidth:r.width+t}],n,!0,`uiColumnResized`)}applyColumnWidths(e,t,n,r){if(e.length===0)return;let{affectedColIds:i}=f_(this.deps.columnModel,e,t,this.columnResizeOptions);this.pendingColumnResizeColIds=i,this.pendingColumnResizeFinished=n;let a=this.deps.columnResizeService.setColumnWidths(e,t,n,r,this.columnResizeOptions);this.pendingColumnResizeColIds=[],this.pendingColumnResizeFinished=!1;let o=[...new Set([...a.affectedColIds.length>0?a.affectedColIds:e.map(e=>e.colId),...a.flexColIds])];(a.changed||n)&&this.deps.eventBus.emit(`columnResized`,Bg(o.map(e=>({colId:e})),this.deps.columnModel,n,r,a.flexColIds.length>0?a.flexColIds:void 0))}moveColumn(e,t,n=!0,r){let i=this.deps.columnModel.getColumnById(e)?.fixed??null;if(!this.deps.columnModel.moveColumn(e,t,r))return!1;let a=this.deps.columnModel.getColumns().map(e=>e.colId),o=this.deps.columnModel.getColumnById(e)?.fixed??null,s=a.indexOf(e);this.syncColumnLayoutAfterOrderChange(n);let c={columnOrder:a,fromColId:e,toIndex:s>=0?s:t,finished:n};return i!==o&&(c.toFixed=o),this.deps.eventBus.emit(`columnMoved`,c),n&&(this.deps.clearCellSelection?.(),this.deps.syncColumnOrderVisuals?.()),!0}syncColumnLayoutAfterOrderChange(e){this.deps.columnViewport.invalidate(),this.deps.viewport.syncHorizontalLayout();let t=this.deps.mountEl.querySelector(`.mg-viewport`);if(t){let e=t.clientWidth,n=KT(this.deps.columnModel,t.scrollLeft,e);this.deps.columnViewport.update(n,e)}e?this.deps.rootEl.classList.contains(`magic-grid--column-move-live`)&&!this.columnMoveOptions.suppressMoveWhenColumnDragging?(this.deps.viewport.reorderHeaderCells(),this.deps.viewport.syncColumnCellLayouts(),this.syncVisibleStructureAfterColumnOrderChange(),this.refreshFlexedColumns()):(this.deps.viewport.refreshHeader(),this.deps.viewport.syncColumnCellLayouts(),this.deps.refreshFooter(),this.deps.refreshFloatingFilter(),this.refreshFlexedColumns(),this.deps.viewport.redrawImmediately()):(this.deps.viewport.reorderHeaderCells(),this.deps.viewport.syncColumnCellLayouts(),this.syncVisibleStructureAfterColumnOrderChange(),this.refreshFlexedColumns()),!e&&!this.deps.rootEl.classList.contains(`magic-grid--column-move-live`)&&this.deps.syncColumnOrderVisuals?.()}syncVisibleStructureAfterColumnOrderChange(){let e=this.deps.columnViewport.getWindow();this.deps.rowRenderer.refreshVisibleColumnStructure(e),this.deps.footerRenderer?.refreshVisibleColumnStructure(e)}resetColumnOrder(){let e=this.deps.columnModel.getColumns(),t=e.map(e=>e.colId),n=jD(e);if(MD(t,n)||!this.deps.columnModel.resetColumnsOrder(n))return!1;this.deps.columnViewport.invalidate(),this.deps.viewport.syncHorizontalLayout(),this.deps.viewport.refreshHeader(),this.deps.viewport.redrawImmediately(),this.deps.refreshFooter(),this.deps.refreshFloatingFilter(),this.refreshFlexedColumns();let r=ND(t,n);return this.deps.eventBus.emit(`columnMoved`,{columnOrder:n,fromColId:r?.fromColId??n[0]??``,toIndex:r?.toIndex??0,finished:!0}),this.deps.clearCellSelection?.(),!0}setColumnFixed(e,t,n=`api`){let r=this.deps.columnModel.getColumnById(e),i=r?.fixed??null;return!r||i===t||!this.deps.columnModel.setColumnFixed(e,t)?!1:(this.deps.columnViewport.invalidate(),this.deps.viewport.syncHorizontalLayout(),this.deps.viewport.refreshHeader(),this.deps.viewport.redrawImmediately(),this.deps.refreshFooter(),this.deps.refreshFloatingFilter(),this.refreshFlexedColumns(),this.deps.eventBus.emit(`columnPinned`,{colId:e,fixed:t,fromFixed:i,source:n}),this.deps.clearCellSelection?.(),!0)}setColumnsHidden(e,t,n=`api`){let r=this.deps.columnModel.setColumnsHidden(e,t);return r.length!==0&&(this.syncAfterColumnStructureChange(),this.deps.eventBus.emit(`columnHiddenChanged`,{colIds:r,hidden:t,source:n}),this.deps.clearCellSelection?.(),!0)}syncAfterColumnStructureChange(){this.deps.columnViewport.invalidate(),this.deps.viewport.syncHorizontalLayout();let e=this.deps.mountEl.querySelector(`.mg-viewport`),t=this.resolveViewportWidth(),n=this.deps.columnViewport.getWindow(),r=e?.scrollLeft??0;r=KT(this.deps.columnModel,r,t),e&&r!==e.scrollLeft&&this.deps.viewport.syncHorizontalScrollLeft(r),this.deps.columnViewport.update(r,t),n=this.deps.columnViewport.getWindow(),this.deps.viewport.refreshHeader(),this.deps.viewport.syncColumnCellLayouts(),this.deps.rowRenderer.refreshVisibleColumnStructure(n),this.deps.footerRenderer?.syncColumnLayouts(),this.deps.refreshFooter(),this.deps.refreshFloatingFilter(),this.refreshFlexedColumns(),this.deps.syncColumnOrderVisuals?.()}resetColumnWidths(){let e=this.deps.columnModel.resetColumnsWidth();return e.length!==0&&(this.syncColumnLayoutAfterResize(),this.deps.refreshFooter(),this.deps.refreshFloatingFilter(),this.refreshFlexedColumns(),this.deps.eventBus.emit(`columnResized`,Bg(e.map(e=>({colId:e})),this.deps.columnModel,!0,`api`)),this.deps.clearCellSelection?.(),!0)}finishColumnMove(e){let t=this.deps.columnModel.getColumns(),n=t.findIndex(t=>t.colId===e);n<0||(this.deps.clearCellSelection?.(),this.deps.syncColumnOrderVisuals?.(),this.deps.eventBus.emit(`columnMoved`,{columnOrder:t.map(e=>e.colId),fromColId:e,toIndex:n,finished:!0}))}setColumnMoveLiveDragging(e){this.deps.rootEl.classList.toggle(`magic-grid--column-move-live`,e)}syncColumnMovePresentationClasses(){this.deps.rootEl.classList.toggle(`magic-grid--suppress-column-move-animation`,this.columnMoveOptions.suppressColumnMoveAnimation)}},FD=class{deps;constructor(e){this.deps=e}setFilterModel(e){this.deps.rowModel.setFilterModel(e),this.afterFilterPipelineChange()}getFilterModel(){return this.deps.rowModel.getFilterModel()}getColumnFilter(e){return this.deps.rowModel.getFilterModel()[e]??null}getColumnDistinctFilterValues(e){let t=this.deps.columnModel.getColumnById(e);return t?.filterable?gi({rows:this.deps.rowModel.getSourceRows(),colId:e,filterType:t.filterType,getFilterValue:t=>this.getColumnFilterValue(t,e)}):[]}isColumnFilterActive(e){return ai(e,this.deps.rowModel.getFilterModel())}isAnyFilterActive(){return oi(this.deps.rowModel.getFilterModel(),this.deps.rowModel.getQuickFilterText())}getQuickFilterText(){return this.deps.rowModel.getQuickFilterText()}setQuickFilterText(e){this.deps.rowModel.getQuickFilterText()!==e&&(this.deps.rowModel.setQuickFilterText(e),this.afterFilterPipelineChange())}clearAllFilters(){this.isAnyFilterActive()&&(this.deps.rowModel.setFilterModel({}),this.deps.rowModel.setQuickFilterText(``),this.afterFilterPipelineChange())}setColumnFilter(e,t){let n={...this.deps.rowModel.getFilterModel()};t===null?delete n[e]:n[e]=t,this.setFilterModel(n)}refreshFloatingFilter(){this.renderFloatingFilter(()=>this.deps.columnViewport.getWindow())}renderFloatingFilter(e){let t=this.deps.getFloatingFilterController();t&&(t.syncRowLayout(),t.render(e()))}syncFloatingFilterFromFilterModel(){this.deps.getFloatingFilterController()?.syncFromFilterModel()}getColumnFilterValue(e,t){let n=this.deps.columnModel.getColumnById(t);return n?$_(e,n):e.data[t]}afterFilterPipelineChange(){this.deps.rowModel.repositionDisplayRows();let e=this.deps.getViewport();e.syncViewportHeight(),this.deps.valueCache.bump(),this.deps.refreshCellSpans(),this.deps.reconcileRowPoolAfterDisplayChange(),e.redrawImmediately(),e.refreshHeaderIndicatorState(),this.syncFloatingFilterFromFilterModel(),this.deps.applySelectionVisuals(),this.deps.clearCellSelection?.(),this.deps.refreshOverlay?.(),this.emitFilterChanged(),this.deps.refreshFooter()}emitFilterChanged(){this.deps.eventBus.emit(`filterChanged`,{filterModel:this.deps.rowModel.getFilterModel(),quickFilterText:this.deps.rowModel.getQuickFilterText()})}};function ID(e,t){return e===t}function LD(e,t,n){return e.length===0||!ID(t,n)?[]:[...e]}function RD(e){return e.rowKind==null||e.rowKind===`BUSINESS`}function zD(e,t){let n=e[t];if(!n||!V(n))return[];let r=n.treeLevel??0,i=[];for(let n=t+1;n<e.length;n+=1){let t=e[n];if((t.treeLevel??0)<=r)break;RD(t)&&i.push(t.id)}return i}function BD(e,t){let n=e.findIndex(e=>e.id===t);if(n<0)return[];let r=e[n].treeLevel??0,i=[];for(let t=n+1;t<e.length;t+=1){let n=e[t],a=n.treeLevel??0;if(a<=r)break;a===r+1&&RD(n)&&i.push(n.id)}return i}function VD(e,t){let n=new Set;for(let r=0;r<e.length;r+=1){let i=e[r];if(!V(i)||i.treeLeaf===!0)continue;let a=BD(e,i.id);if(a.length===0)continue;let o=a.filter(e=>t.has(e)).length;o!==0&&(o<a.length||!t.has(i.id))&&n.add(i.id)}return n}function HD(e){if(!e.groupSelectsChildren)return!1;let t=e.displayRows.findIndex(t=>t.id===e.rowId);if(t<0)return!1;let n=!1,r=zD(e.displayRows,t);for(let t of r){if(e.selected){e.selectedIds.has(t)||(e.selectedIds.add(t),n=!0);continue}e.selectedIds.delete(t)&&(n=!0)}return n}function UD(e,t){let n=!1;for(let r=e.length-1;r>=0;--r){let i=e[r];if(!V(i)||i.treeLeaf===!0)continue;let a=BD(e,i.id);if(a.length===0)continue;let o=a.filter(e=>t.has(e)).length,s=o===a.length,c=t.has(i.id);if(s&&!c){t.add(i.id),n=!0;continue}!s&&c&&o>0||!s&&c&&o===0&&(t.delete(i.id),n=!0)}return n}var WD=class{deps;getDefaultSelectedRowsRuntime;selectableFn;reserveSelection;pendingDefaultSelection=null;presetSelectionEmitQueued=!1;presetSelectionEmitRevision=0;presetTransientNotifyPending=!1;constructor(e,t,n,r){this.deps=e,this.getDefaultSelectedRowsRuntime=r,this.selectableFn=t,this.reserveSelection=n}clearPendingDefaultSelectedRows(){this.presetSelectionEmitRevision+=1,this.presetTransientNotifyPending=!1,this.pendingDefaultSelection=null}flushPendingPresetTransientSelectionNotify(){!this.presetTransientNotifyPending||!this.pendingDefaultSelection||(this.presetTransientNotifyPending=!1,this.queuePresetSelectionChangedEmit())}queuePresetSelectionChangedEmit(){if(!this.pendingDefaultSelection||!this.deps.selectionService||this.presetSelectionEmitQueued)return;let e=this.presetSelectionEmitRevision;this.presetSelectionEmitQueued=!0,queueMicrotask(()=>{this.presetSelectionEmitQueued=!1,!(e!==this.presetSelectionEmitRevision||!this.pendingDefaultSelection||!this.deps.selectionService)&&(this.presetTransientNotifyPending=!1,this.deps.eventBus.emit(`selectionChanged`,{selectedRowIds:this.deps.selectionService.getSelectedRowIds(),source:`preset`}))})}setSelectable(e){this.selectableFn=lg(e),this.deps.rowRenderer.setIsRowNodeSelectable(e=>this.isRowNodeSelectable(e)),this.applySelectionVisuals()}setReserveSelection(e){this.reserveSelection=e}setDefaultSelectedRows(e,t={},n){let r=n??this.getDefaultSelectedRowsRuntime(),i=t.mode??`cover`;!r.rowSelectionEnabled||!this.deps.selectionService||(this.pendingDefaultSelection={input:e,mode:i},this.reconcilePendingDefaultSelectedRows(r))}reconcilePendingDefaultSelectedRows(e){let t=e??this.getDefaultSelectedRowsRuntime();if(!this.pendingDefaultSelection||!t.rowSelectionEnabled||!this.deps.selectionService)return;let{input:n,mode:r}=this.pendingDefaultSelection,i=Nd(n,t.getResolveContext()),a=this.resolvePresetTargetRowIds(i);if(a.length===0&&r===`merge`)return;this.deps.selectionService.isMultiple()||(i.length,a=a.slice(0,1));let o;if(r===`merge`){if(o=new Set([...this.deps.selectionService.getSelectedRowIds(),...a]),!this.deps.selectionService.isMultiple()&&o.size>1){let e=a[0]??[...o][0];o=new Set(e==null?[]:[e])}}else o=new Set(a);let s=[...o],c=this.deps.selectionService.getSelectedRowIds();if(!(s.length!==c.length||s.some(e=>!c.includes(e))))return;let l=s.length>0?this.deps.rowModel.getRowIndexById(s[0]):-1;this.deps.selectionService.replaceWithRowIds(s,l),this.syncTreeSelectionCascade(),this.applySelectionVisuals(),this.shouldDeferPresetSelectionChangedEmit(s)?this.presetTransientNotifyPending=!0:(this.presetTransientNotifyPending=!1,this.queuePresetSelectionChangedEmit())}shouldDeferPresetSelectionChangedEmit(e){if(e.length===0)return!1;for(let t of e){let e=this.deps.rowModel.getRowById(t);if(!e)return!1;let n=e.data[this.deps.rowKey];if(n==null||n===``)return!0}return!1}resolvePresetTargetRowIds(e){let n=[],r=new Set;for(let i of e){let e=t.m(i);if(r.has(e))continue;r.add(e);let a=this.deps.rowModel.getRowById(e)??this.deps.rowModel.resolveRowById(e);!a||!this.isRowNodeSelectable(a)||n.push(a.id)}return n}toggleRowSelection(e,n,r){if(!this.deps.selectionService)return;let i=t.h(e),a=!1,o=this.deps.selectionService.isMultiple(),s=[];for(let e of i){let t=this.deps.rowModel.getRowById(e);if(!t)continue;let i=this.deps.selectionService.isSelected(e),c=r===!0||this.isRowNodeSelectable(t),l=!1;if(n===void 0)if(i){if(!c)continue;this.deps.selectionService.removeRowIds([e])&&(l=!0)}else c&&(o?this.deps.selectionService.addRowId(e,t.rowIndex)&&(l=!0):this.deps.selectionService.replaceWithRowIds([e],t.rowIndex)&&(l=!0));else if(n){if(i||!c)continue;o?this.deps.selectionService.addRowId(e,t.rowIndex)&&(l=!0):this.deps.selectionService.replaceWithRowIds([e],t.rowIndex)&&(l=!0)}else if(i){if(!c)continue;this.deps.selectionService.removeRowIds([e])&&(l=!0)}l&&(a=!0,s.push({rowId:e,rowIndex:t.rowIndex}))}a&&(this.syncTreeSelectionCascade(s),this.applySelectionVisuals(),this.deps.eventBus.emit(`selectionChanged`,{selectedRowIds:this.deps.selectionService.getSelectedRowIds(),source:`api`}))}handleInteractiveRowSelection(e,t){this.deps.selectionService&&this.syncTreeSelectionCascade({rowId:e,rowIndex:t})}syncTreeSelectionCascade(e){if(!this.deps.selectionService||!this.deps.isTreeActive?.()||!this.deps.groupSelectsChildren?.())return;let t=this.deps.rowModel.rowsToDisplay,n=new Set(this.deps.selectionService.getSelectedRowIds()),r=e==null?[]:Array.isArray(e)?[...e]:[e];for(let{rowId:e}of r)HD({displayRows:t,rowId:e,selected:n.has(e),groupSelectsChildren:!0,selectedIds:n});UD(t,n),this.deps.selectionService.replaceWithRowIds([...n],r.length>0?r[r.length-1].rowIndex:-1)}setIndexFocus(e,n={}){if(!this.deps.indexFocusService)return;let r=t.h(e).map(e=>{let t=this.deps.rowModel.getRowIndexById(e);return t>=0?{id:e,rowIndex:t}:null}).filter(e=>e!=null),i=!1;if(r.length===0?(i=this.deps.indexFocusService.getFocusedRowIds().length>0,i&&this.deps.indexFocusService.clear()):i=this.deps.indexFocusService.isMultiple()?this.deps.indexFocusService.replaceWithRowIds(r.map(e=>e.id),r[0].rowIndex):this.deps.indexFocusService.replaceWithRowIds([r[0].id],r[0].rowIndex),!i)return;let a=(n.mode??`default`)===`manual`?{syncToSelectionColumn:n.syncToSelectionColumn??!1}:{};this.applyIndexFocusVisuals(a),this.deps.eventBus.emit(`indexFocusChanged`,{focusedRowIds:this.deps.indexFocusService.getFocusedRowIds()})}toggleAllSelection(e){if(!this.deps.selectionService)return;let t=this.deps.rowModel.getRowCount(),n=e=>this.getSelectableRowIdAt(e),r=!1;r=e===void 0?this.deps.selectionService.toggleSelectAllVisibleRows(t,n):e?this.deps.selectionService.selectAllVisibleRows(t,n):this.deps.selectionService.deselectAllVisibleRows(t,n),r&&(this.syncTreeSelectionCascade(),this.applySelectionVisuals(),this.deps.eventBus.emit(`selectionChanged`,{selectedRowIds:this.deps.selectionService.getSelectedRowIds(),source:`api`}))}clearRowSelection(e={}){if(!this.deps.selectionService)return;let t=e.scope??`all`,n=!1;if(t===`all`)n=this.deps.selectionService.getSelectedRowIds().length>0,n&&this.deps.selectionService.clear();else{let e=new Set(this.deps.rowModel.rowsToDisplay.map(e=>e.id)),t=this.deps.selectionService.getSelectedRowIds().filter(t=>e.has(t));t.length>0&&(n=this.deps.selectionService.removeRowIds(t))}n&&(this.syncTreeSelectionCascade(),this.applySelectionVisuals(),this.deps.eventBus.emit(`selectionChanged`,{selectedRowIds:this.deps.selectionService.getSelectedRowIds(),source:`api`}))}isRowNodeSelectable(e){return L(e)||He(e)||e.__infiniteBlockState!=null&&e.__infiniteBlockState!==`loaded`?!1:ug(this.selectableFn,e,this.deps.rowKey)}getSelectableRowIdAt(e){let t=this.deps.rowModel.getRow(e);if(!(!t||!this.isRowNodeSelectable(t)))return t.id}applySelectionVisuals(){if(!this.deps.selectionService)return;let e=new Set(this.deps.selectionService.getSelectedRowIds()),t=this.deps.isTreeActive?.()?VD(this.deps.rowModel.rowsToDisplay,e):new Set;this.deps.rowRenderer.refreshSelection(e,t),jp(this.deps.mountEl,{selectionColumnOptions:this.deps.selectionColumnOptions,selectedIds:e,indeterminateIds:t,rowModel:this.deps.rowModel}),this.deps.applyCellRangeVisuals?.()}refreshSelectionAfterDataChange(){this.reconcilePendingDefaultSelectedRows(),this.applySelectionVisuals()}applyIndexFocusVisuals(e={}){if(!this.deps.indexFocusService)return;let t=new Set(this.deps.indexFocusService.getFocusedRowIds());this.deps.rowRenderer.refreshIndexFocus(t),this.shouldSyncIndexFocusToSelection(e)&&this.syncIndexFocusToSelection()}onRowsRemoved(e){this.deps.selectionService?.removeRowIds(e)&&(this.applySelectionVisuals(),this.deps.eventBus.emit(`selectionChanged`,{selectedRowIds:this.deps.selectionService.getSelectedRowIds(),source:`api`})),this.deps.indexFocusService?.removeRowIds(e)&&(this.applyIndexFocusVisuals({syncToSelectionColumn:!1}),this.deps.eventBus.emit(`indexFocusChanged`,{focusedRowIds:this.deps.indexFocusService.getFocusedRowIds()}))}finalizePromoteRowId(e,t){let n=this.pendingDefaultSelection!=null,r=!1;this.deps.selectionService?.migrateRowId(e,t)&&(r=!0,this.applySelectionVisuals(),n||this.deps.eventBus.emit(`selectionChanged`,{selectedRowIds:this.deps.selectionService.getSelectedRowIds(),source:`api`})),this.deps.indexFocusService?.migrateRowId(e,t)&&(this.applyIndexFocusVisuals({syncToSelectionColumn:!1}),this.deps.eventBus.emit(`indexFocusChanged`,{focusedRowIds:this.deps.indexFocusService.getFocusedRowIds()})),this.reconcilePendingDefaultSelectedRows(),n&&r&&this.queuePresetSelectionChangedEmit()}reconcileSelectionAfterSetData(e,t){let n=!this.reserveSelection&&t;if(e&&this.deps.selectionService){let t=e.filter(e=>this.deps.rowModel.getRowById(e));n||=this.deps.selectionService.replaceWithRowIds(t)}return n}shouldSyncIndexFocusToSelection(e){return e.syncToSelectionColumn===!1?!1:e.syncToSelectionColumn===!0||this.deps.indexColumnOptions.indexColumn.syncToSelectionColumn}syncIndexFocusToSelection(){if(!this.deps.indexFocusService||!this.deps.selectionService)return;let e=this.deps.indexColumnOptions.indexColumn.focusMode,t=this.deps.selectionColumnOptions.mode;if(!ID(e,t))return;let n=this.deps.indexFocusService.getFocusedRowIds();if(n.length===0){if(!this.deps.selectionService.replaceWithRowIds([],-1))return;this.applySelectionVisuals(),this.deps.applyCellRangeVisuals?.(),this.deps.eventBus.emit(`selectionChanged`,{selectedRowIds:this.deps.selectionService.getSelectedRowIds(),source:`ui`});return}let r=LD(n,e,t).filter(e=>{let t=this.deps.rowModel.getRowIndexById(e);if(t<0)return!1;let n=this.deps.rowModel.getRow(t);return n?this.isRowNodeSelectable(n):!1});r.length!==0&&this.deps.selectionService.replaceWithRowIds(r,this.deps.indexFocusService.getAnchorIndex())&&(this.applySelectionVisuals(),this.deps.applyCellRangeVisuals?.(),this.deps.eventBus.emit(`selectionChanged`,{selectedRowIds:this.deps.selectionService.getSelectedRowIds(),source:`ui`}))}};function GD(e){return{id:e,data:{},rowHeight:0,rowTop:0,rowIndex:0,sourceIndex:0,estimated:!1,isTransient:!0}}function KD(e,t){return e===`display`||t.hasSortOrFilter?t.displayRows.length:t.sourceRows.length}function qD(e,t,n){let r=KD(t,n),i=r;return e.map(e=>{if(e.index===void 0){let t={...e,index:i};return i+=1,t}let t=e.index;return t>r&&(t=r),i=Math.max(i,t+1),{...e,index:t}})}function JD(e){return e.map((e,t)=>({item:e,sortIndex:e.index,originalOrder:t}))}function YD(e){return[...e].sort((e,t)=>t.sortIndex===e.sortIndex?t.originalOrder-e.originalOrder:t.sortIndex-e.sortIndex).map(({item:e,sortIndex:t})=>({data:e.row,index:t}))}function XD(e,t,n){let r=[...e].sort((e,t)=>e.sortIndex===t.sortIndex?e.originalOrder-t.originalOrder:e.sortIndex-t.sortIndex),i=[...n.sourceRows],a=[...n.displayRows],o=[];for(let{item:e}of r){let r=Ju({sourceRows:i,displayRows:a,sortModelLength:+!!n.hasSortOrFilter,filterModelKeyCount:+!!n.hasSortOrFilter}),s=Yu(e.index,t,r);if(s===void 0)continue;o.push({data:e.row,index:s});let c=GD(`__mg_add_rows_by_array_${o.length}`);if(i=Xl(i,[c],s),t===`display`&&n.hasSortOrFilter){let t=Yu(e.index,`display`,r);t!==void 0&&(a=Xl(a,[c],t))}else a=Xl(a,[c],s)}return o}function ZD(e,t,n,r=`desc`){if(e.length===0)return{};let i=JD(qD(e,t,n));return{add:r===`asc`?XD(i,t,n):YD(i)}}function QD(e){let t=[],n=e;for(;n.includes(se);){let e=n.lastIndexOf(se),r=(e===0?n:n.slice(e)).match(/^group::L(\d+)::([^:]+)::(.+)$/);if(!r)break;t.unshift({level:Number.parseInt(r[1],10),field:decodeURIComponent(r[2]),key:decodeURIComponent(r[3])}),n=e===0?``:n.slice(0,e-2)}return t}function $D(e,t){for(let n of e){let e=n.leafGroupPathKey;if(e&&(e===t||e.endsWith(`/${t}`)))return e}return null}function eO(e,t,n){if(e.length===0||e.length>t.length)return null;let r=[],i=[],a;for(let o=0;o<e.length;o+=1){let s=e[o],c=t[o];if(!c)return null;let l=n(c)??s.field,u=Me(s.key),d=Ne(o,l,u,a);r.push(d),i.push({field:l,key:u}),a=d}return{leafGroupId:r[r.length-1],groupPathKey:Pe(r),groupPath:i,groupIds:r}}function tO(e,t){return eO(e.map((e,t)=>({level:t,field:e.field,key:e.key})),t.rowGroupColumns,t.getColumnField)}function nO(e,t,n){let r=t.getGroupedTreeRoots?Kl(t.getGroupedTreeRoots(),e):void 0;if(r?.groupId){let e=eO(QD(r.groupId),t.rowGroupColumns,t.getColumnField);if(e)return e}let i=$D(n,e),a=eO(QD(e),t.rowGroupColumns,t.getColumnField);return!a||i&&a.groupPathKey!==i?null:a}function rO(e,t,n=[]){return`groupPath`in e?tO(e.groupPath,t):nO(e.groupId,t,n)}function iO(e){return e===`(Blanks)`?null:e}function aO(e,t){let n={...e};for(let e of t)n[e.field]=iO(e.key);return n}function oO(e,t,n){let{sourceRows:r,displayRows:i,hasSortOrFilter:a}=n;if(t===`display`||a){let t=0;for(let n of i)z(n)&&r.find(e=>e.id===n.id)?.leafGroupPathKey===e&&(t+=1);return t}return r.filter(t=>t.leafGroupPathKey===e).length}function sO(e){let{sourceRows:t,displayRows:n,groupPathKey:r,withinGroupIndex:i,indexMode:a,hasSortOrFilter:o}=e,s=[];for(let e=0;e<t.length;e+=1)t[e]?.leafGroupPathKey===r&&s.push(e);if(a===`display`&&o){let e=[];for(let i=0;i<n.length;i+=1){let a=n[i];z(a)&&t.find(e=>e.id===a.id)?.leafGroupPathKey===r&&e.push(i)}let a=Math.max(0,Math.min(i,e.length));if(e.length===0)return t.length;if(a===e.length){let r=n[e[e.length-1]],i=t.findIndex(e=>e.id===r?.id);return i>=0?i+1:t.length}let o=n[e[a]],s=t.findIndex(e=>e.id===o?.id);return s>=0?s:t.length}let c=Math.max(0,Math.min(i,s.length));return s.length===0?t.length:c===s.length?s[s.length-1]+1:s[c]}function cO(e,t,n){if(e.rows.length===0)return{transaction:{},expandGroupIds:[]};let r=rO(e.target,n,t.sourceRows);if(!r)return{transaction:{},expandGroupIds:[]};let i=e.indexMode??`source`,a=oO(r.groupPathKey,i,t),o=e.index??a,s=sO({sourceRows:t.sourceRows,displayRows:t.displayRows,groupPathKey:r.groupPathKey,withinGroupIndex:o,indexMode:i,hasSortOrFilter:t.hasSortOrFilter});return{transaction:{add:e.rows.map((e,t)=>({data:aO(e.data,r.groupPath),index:s+t}))},expandGroupIds:r.groupIds}}function lO(e){return{id:e,data:{},rowHeight:0,rowTop:0,rowIndex:0,sourceIndex:0,estimated:!1,isTransient:!0}}function uO(e,t,n,r){let i=new Map,a=[];return e.forEach((e,o)=>{let s=rO(e.target,r,n.sourceRows);if(!s)return;let c=oO(s.groupPathKey,t,n),l=i.get(s.groupPathKey)??c,u=e.index;u===void 0?(u=l,l+=1):(u>c&&(u=c),l=Math.max(l,u+1)),i.set(s.groupPathKey,l),a.push({item:{...e,index:u},resolved:s,globalInsertIndex:sO({sourceRows:n.sourceRows,displayRows:n.displayRows,groupPathKey:s.groupPathKey,withinGroupIndex:u,indexMode:t,hasSortOrFilter:n.hasSortOrFilter}),originalOrder:o})}),a}function dO(e){let t=new Set;for(let n of e)for(let e of n.resolved.groupIds)t.add(e);return[...t]}function fO(e){return[...e].sort((e,t)=>t.globalInsertIndex===e.globalInsertIndex?t.originalOrder-e.originalOrder:t.globalInsertIndex-e.globalInsertIndex).map(({item:e,resolved:t,globalInsertIndex:n})=>({data:aO(e.row,t.groupPath),index:n}))}function pO(e,t,n){let r=[...e].sort((e,t)=>e.globalInsertIndex===t.globalInsertIndex?e.originalOrder-t.originalOrder:e.globalInsertIndex-t.globalInsertIndex),i=[...t.sourceRows],a=[...t.displayRows],o=[];for(let{item:e,resolved:s}of r){let r=Ju({sourceRows:i,displayRows:a,sortModelLength:+!!t.hasSortOrFilter,filterModelKeyCount:+!!t.hasSortOrFilter}),c=sO({sourceRows:r.sourceRows,displayRows:r.displayRows,groupPathKey:s.groupPathKey,withinGroupIndex:e.index,indexMode:n,hasSortOrFilter:t.hasSortOrFilter});o.push({data:aO(e.row,s.groupPath),index:c});let l=lO(`__mg_add_group_rows_by_array_${o.length}`);i=Xl(i,[l],c),a=Xl(a,[l],c)}return o}function mO(e,t,n,r){if(e.length===0)return{transaction:{},expandGroupIds:[]};let i=t?.indexMode??`source`,a=t?.order??`desc`,o=uO(e,i,n,r);return o.length===0?{transaction:{},expandGroupIds:[]}:{transaction:{add:a===`asc`?pO(o,n,i):fO(o)},expandGroupIds:dO(o)}}function hO(e,t){let n=e.indexMode??`source`,r=Yu(e.index,n,t);return{add:e.rows.map((e,t)=>({data:e.data,index:r===void 0?void 0:r+t}))}}function gO(e,n){let r=new Set(t.g(e.rowIds)??[]);if(e.indexes?.length){let t=e.indexMode??`source`;for(let i of Xu(e.indexes,t,n))r.add(i)}return r.size===0?{}:{remove:[...r]}}function _O(e){return e.rows.length===0?{}:{update:e.rows.map(e=>e.rowId!==void 0&&e.rowId!==null?{data:{...e.data},rowId:String(e.rowId)}:{...e.data})}}function vO(e){return e.remove?.length?e.remove.filter(e=>typeof e==`string`):[]}function yO(e,n,r){return{rows:e.map(e=>({rowId:e.id,rowIndex:r(e.id),data:t.N(e,n),isTransient:e.isTransient??!1}))}}function bO(e,n){return{rows:e.map(e=>({rowId:e.id,data:t.N(e,n)}))}}function xO(e,n,r){return{oldRowId:e,newRowId:n.id,data:t.N(n,r)}}var SO=class{deps;pendingTransaction=null;pendingUpdateRefreshNewData=!1;rowMoveService;constructor(e){this.deps=e,this.rowMoveService=new Kb({getSourceRows:()=>this.deps.rowModel.getSourceRows(),getDisplayRows:()=>this.deps.rowModel.rowsToDisplay,getSortModelLength:()=>this.deps.rowModel.getSortModel().length,getFilterModelKeyCount:()=>Object.keys(this.deps.rowModel.getFilterModel()).length,isSortOrFilterActive:()=>this.deps.rowModel.getSortModel().length>0||this.deps.filterOps.isAnyFilterActive(),setSourceRows:e=>this.deps.rowModel.setSourceRows(e),emitRowMoved:e=>this.deps.eventBus.emit(`rowMoved`,e),isRowGroupingActive:()=>this.deps.isRowGroupingActive?.()??!1,isTreeActive:()=>this.deps.isTreeActive?.()??!1,getTreeDragScope:()=>this.deps.getTreeDragScope?.()??`siblings`,getDataPath:()=>this.deps.getDataPath?.(),setDataPath:()=>this.deps.setDataPath?.()})}async applyTransaction(e){e.newData&&(this.pendingUpdateRefreshNewData=!0);let t=this.collectAsyncMutationLoadingRowIds(e),n=async()=>{let t=await ix(e,{rowKey:this.deps.rowKey,handlers:this.deps.asyncRowMutation,getRowById:e=>this.deps.rowModel.getRowById(e),sourceRows:this.deps.rowModel.getSourceRows()}),n=vO(t);if(n.length>0){this.prepareRemoveRows(new Set(n));let e=this.commitTransaction(t);return this.finalizeRemoveRows(new Set(n)),e}return this.commitTransaction(t)};return t.length===0?n():this.withAsyncMutationLoading(t,n)}commitTransaction(e){e.newData&&(this.pendingUpdateRefreshNewData=!0),this.recordMutationChannelChanges(e);let t=this.deps.rowModel.applyTransaction(e);return this.deps.viewport.syncViewportHeight(),this.queueTransactionFlush(t),t}recordRowDataChange=e=>{this.deps.rowDataChangeTracker.record(e)};async addRows(e){let t=hO(e,this.createRowIndexContext());return this.applyTransaction(t)}async addRowsByArray(e,t){if(e.length===0)return{add:[],remove:[],update:[]};let n=t?.indexMode??`source`,r=t?.order??`desc`,i=ZD(e,n,this.createRowIndexContext(),r);return this.applyTransaction(i)}async addGroupRows(e){let t=this.requireGroupInsertDeps(`addGroupRows`),{transaction:n,expandGroupIds:r}=cO(e,this.createRowIndexContext(),t);if(!n.add?.length)return{add:[],remove:[],update:[]};let i=await this.applyTransaction(n);return this.expandTargetGroups(r),i}async addGroupRowsByArray(e,t){if(e.length===0)return{add:[],remove:[],update:[]};let n=this.requireGroupInsertDeps(`addGroupRowsByArray`),{transaction:r,expandGroupIds:i}=mO(e,t,this.createRowIndexContext(),n);if(!r.add?.length)return{add:[],remove:[],update:[]};let a=await this.applyTransaction(r);return this.expandTargetGroups(i),a}async removeRows(e){let n=gO(e.rowIds?{...e,rowIds:t.g(e.rowIds)}:e,this.createRowIndexContext());return vO(n).length===0?{add:[],remove:[],update:[]}:this.applyTransaction(n)}async updateRows(e){if(e.rows.length===0)return{add:[],remove:[],update:[]};e.newData&&(this.pendingUpdateRefreshNewData=!0);let t=_O(e);return this.applyTransaction(t)}moveRowSync(e,t=`api`){this.deps.beginRowOrderVisualCapture?.();let n=this.rowMoveService.moveRow(e,t);return n.moved&&this.afterRowOrderChanged(),n}moveRowsSync(e,t=`api`){this.deps.beginRowOrderVisualCapture?.();let n=this.rowMoveService.moveRows(e,t);return n.moved&&this.afterRowOrderChanged(),n}async moveRow(e,t=`api`){if(!(t===`api`&&this.deps.asyncRowMutation?.move))return this.moveRowSync(e,t);this.deps.beginRowOrderVisualCapture?.();let n=this.rowMoveService.moveRow({...e,deferCommit:!0},t);if(!n.moved||!n.commitPlan)return n;let r=n.moves??n.commitPlan.moves;await this.withAsyncMutationLoading([e.rowId],()=>ox({rowIds:[e.rowId],leaderRowId:e.rowId,toIndex:e.toIndex,indexMode:e.indexMode,moves:r,source:t},{handlers:this.deps.asyncRowMutation,getRowById:e=>this.deps.rowModel.getRowById(e)})),this.rowMoveService.commitPlan(n.commitPlan),this.afterRowOrderChanged();let{commitPlan:i,...a}=n;return a}async moveRows(e,t=`api`){if(!(t===`api`&&this.deps.asyncRowMutation?.move))return this.moveRowsSync(e,t);this.deps.beginRowOrderVisualCapture?.();let n=this.rowMoveService.moveRows({...e,deferCommit:!0},t);if(!n.moved||!n.commitPlan)return n;let r=n.moves??n.commitPlan.moves;await this.withAsyncMutationLoading(e.rowIds,()=>ox({rowIds:e.rowIds,leaderRowId:e.leaderRowId,toIndex:e.toIndex,indexMode:e.indexMode,moves:r,source:t},{handlers:this.deps.asyncRowMutation,getRowById:e=>this.deps.rowModel.getRowById(e)})),this.rowMoveService.commitPlan(n.commitPlan),this.afterRowOrderChanged();let{commitPlan:i,...a}=n;return a}finishRowMove(e,t=`uiRowDrag`){this.finishRowMoves([e],t)}finishRowMoves(e,t=`uiRowDrag`,n){let r=this.deps.rowModel.getSourceRows();for(let i of e){let e=r.findIndex(e=>e.id===i);if(e<0)continue;let a=n?.startSourceIndices?.get(i)??e,o=n?.resolveTreeDrop?.(i),s=o?.siblingIndex!==void 0&&o.treeLevel!==void 0?{parentRowId:o.parentRowId??null,siblingIndex:o.siblingIndex,treeLevel:o.treeLevel}:q(r,i)??void 0;if(!Ab({fromIndex:a,toIndex:e,startTreePosition:n?.startTreePositions?.get(i),currentTreePosition:s}))continue;let c=n?.displayIndex!==void 0||o?{displayIndex:n?.displayIndex,...o}:void 0;this.deps.eventBus.emit(`rowMoved`,Aa(i,a,e,t,!0,c))}}applyRowDragPlan(e,t=`uiRowDrag`){this.deps.beginRowOrderVisualCapture?.(),this.deps.rowModel.setSourceRows([...e.rows]),this.afterRowOrderChanged();for(let n of e.moves)this.deps.eventBus.emit(`rowMoved`,Aa(n.rowId,n.fromIndex,n.toIndex,t,!0,cd(e.rows,n.rowId,e.treeDrop?.displayIndex)??e.treeDrop))}afterRowOrderChanged(){this.deps.viewport.syncViewportHeight(),this.deps.refreshCellSpans(),this.deps.rowRenderer.setValueCacheVersion(this.deps.valueCache.getVersion()),this.deps.reconcileRowPoolAfterDisplayChange(),this.deps.viewport.redrawImmediately(),this.deps.selectionOps.refreshSelectionAfterDataChange(),this.deps.finishRowOrderVisualSync?.(),this.deps.refreshFooter()}getData(e){let n=e?.sourceOrder===!1?this.deps.rowModel.rowsToDisplay:this.deps.rowModel.getSourceRows();return t.M(n,this.deps.rowModel.getRowKey())}promoteRowId(e){let n=t.m(e.rowId),{businessId:r}=e;if(this.deps.isEditingTargetRow(n))return{ok:!1,reason:`Row is being edited`};let i=this.deps.rowModel.promoteRowId(n,r);if(!i.ok)return i;this.finalizePromoteRowId(n,i.rowId,r);let a=this.deps.rowModel.getRowById(i.rowId);return a&&this.deps.eventBus.emit(`rowIdPromoted`,xO(n,a,this.deps.rowModel.getRowKey())),{ok:!0,rowId:t.D(i.rowId,{rowKey:this.deps.rowModel.getRowKey(),getRowById:e=>this.deps.rowModel.resolveRowById(e)})}}beginUpdate(){this.deps.changeDetection.beginDeferred()}endUpdate(){this.deps.changeDetection.endDeferred(()=>{this.flushPendingTransaction()})}createRowIndexContext(){return Ju({sourceRows:this.deps.rowModel.getSourceRows(),displayRows:this.deps.rowModel.rowsToDisplay,sortModelLength:this.deps.rowModel.getSortModel().length,filterModelKeyCount:Object.keys(this.deps.rowModel.getFilterModel()).length})}requireGroupInsertDeps(e){if(!this.deps.isRowGroupingActive?.())throw Error(`${e} requires rowGrouping to be enabled`);let t=this.deps.getGroupInsertDeps?.();if(!t)throw Error(`${e} requires rowGrouping to be enabled`);return t}expandTargetGroups(e){e.length!==0&&this.deps.expandGroups?.(e)}prepareRemoveRows(e){this.deps.cellEditing.cancelEditingForRemovedRows(e),this.deps.cellEditing.clearRowValidation({rowIds:[...e]})}finalizeRemoveRows(e){let t=this.deps.cellFocusService.getFocusedCell();t&&e.has(t.rowId)&&(this.deps.cellFocusService.clear(),this.deps.applyFocusVisuals()),this.deps.selectionOps.onRowsRemoved(e)}finalizePromoteRowId(e,t,n){this.deps.rowRenderer.migrateRowId(e,t),this.deps.validationFeedback.migrateRowId(e,t,this.deps.mountEl),this.deps.migrateCellEditorCacheOnPromoteRowId(e,n);let r=this.deps.cellFocusService.getFocusedCell();r?.rowId===e&&(this.deps.cellFocusService.setFocusedCell({...r,rowId:t}),this.deps.applyFocusVisuals()),this.deps.selectionOps.finalizePromoteRowId(e,t);let i=this.deps.rowModel.getSortModel().length>0||this.deps.filterOps.isAnyFilterActive();if(this.deps.refreshCellSpans(),this.deps.rowRenderer.setValueCacheVersion(this.deps.valueCache.getVersion()),i){this.deps.reconcileRowPoolAfterDisplayChange(),this.deps.viewport.redrawImmediately();return}this.deps.rowRenderer.refreshRows({rowIds:[t],newData:!0}),this.deps.frameService.flushAllFrames()}queueTransactionFlush(e){this.pendingTransaction||={add:[],remove:[],update:[]},this.pendingTransaction.add.push(...e.add),this.pendingTransaction.remove.push(...e.remove),this.pendingTransaction.update.push(...e.update),this.deps.changeDetection.isDeferred()||this.flushPendingTransaction()}flushPendingTransaction(){if(!this.pendingTransaction)return;let e=this.pendingTransaction;this.pendingTransaction=null,this.flushAfterTransaction(e)}flushAfterTransaction(e){let t=this.deps.rowDataChangeTracker.peekPendingColIdsByRow(this.deps.resolveColIdByField),n=e.remove.length>0?e.remove.map(e=>e.id):[];n.length>0&&(this.deps.clearCellEditorCacheForRemovedRows(n),this.deps.clearCellStyleOverridesForRemovedRows(n),this.deps.rowRenderer.releaseRows(n)),this.emitRowMutationEvents(e),this.flushRowDataChangedEvents();let r=e.add.length>0||e.remove.length>0||this.deps.rowModel.getSortModel().length>0||this.deps.filterOps.isAnyFilterActive();if(this.deps.refreshCellSpans(),this.deps.rowRenderer.setValueCacheVersion(this.deps.valueCache.getVersion()),e.update.length>0&&this.deps.isCellSpanActive())this.pendingUpdateRefreshNewData=!1,this.deps.rowRenderer.invalidate(),this.deps.viewport.redrawImmediately();else if(r)this.pendingUpdateRefreshNewData=!1,this.deps.viewport.redrawImmediately();else if(e.update.length>0){let t=this.pendingUpdateRefreshNewData;this.pendingUpdateRefreshNewData=!1,this.deps.rowRenderer.refreshRows({rowIds:e.update.map(e=>e.id),newData:t||void 0}),this.deps.frameService.flushAllFrames()}else this.pendingUpdateRefreshNewData=!1;e.add.length>0&&this.scrollAddedRowsIntoView(e.add),this.deps.selectionOps.refreshSelectionAfterDataChange(),this.deps.refreshFooter(),this.deps.refreshOverlay?.(),t.size>0&&this.deps.cellEditing.schedulePersistedValidationRefreshForRows(t)}scrollAddedRowsIntoView(e){let t=e[0];if(!t)return;let n=this.deps.rowModel.getRowIndexById(t.id);n<0||this.deps.ensureIndexVisible(n,`middle`)}flushRowDataChangedEvents(){this.deps.rowDataChangeTracker.flush({eventBus:this.deps.eventBus,buildRowSnapshot:this.deps.buildRowSnapshot,resolveColIdByField:this.deps.resolveColIdByField})}recordMutationChannelChanges(e){if(!e.update?.length)return;let t=this.deps.rowKey;for(let n of e.update){let e,r;if(nu(n))r=this.deps.rowModel.getRowById(n.rowId),e=n.data;else{e=n;let i=e[t];r=i==null?this.deps.rowModel.getSourceRows().find(t=>t.data===e):this.deps.rowModel.getRowById(String(i))}if(!(!r||r.data===e))for(let t of Object.keys(e)){let n=r.data[t],i=e[t];Object.is(n,i)||this.deps.rowDataChangeTracker.record({rowNode:r,field:t,colId:this.deps.resolveColIdByField?.(t),oldValue:n,newValue:i,source:`api`})}}}emitRowMutationEvents(e){let t=this.deps.rowModel.getRowKey();e.add.length>0&&this.deps.eventBus.emit(`rowsAdded`,yO(e.add,t,e=>this.deps.rowModel.getSourceRowIndexById(e))),e.remove.length>0&&this.deps.eventBus.emit(`rowsRemoved`,bO(e.remove,t))}async withAsyncMutationLoading(e,t){let n=this.deps.setAsyncMutationLoading;if(!n||e.length===0)return t();n(e,!0);try{return await t()}finally{n(e,!1)}}collectAsyncMutationLoadingRowIds(e){let t=this.deps.asyncRowMutation;if(!t)return[];let n=new Set;if(t.remove&&e.remove?.length)for(let t of vO(e))n.add(t);if(t.update&&e.update?.length)for(let t of e.update){if(nu(t)){let e=this.deps.rowModel.getRowById(t.rowId);e&&n.add(e.id);continue}let e=t[this.deps.rowKey];if(e==null)continue;let r=this.deps.rowModel.getRowById(String(e));r&&n.add(r.id)}return[...n]}};function CO(e){return e==null||e===``||typeof e==`string`&&e.trim()===``}function wO(e){if(typeof e==`number`)return Number.isFinite(e)?e:null;if(typeof e==`string`){let t=e.trim();if(t===``)return null;let n=Number(t);return Number.isFinite(n)?n:null}return null}var TO={count:0,numericCount:0,sum:null,average:null};function EO(e){let{ranges:t,displayedColIds:n,rowKindAt:r,getCellValue:i,normalizePosition:a=(e,t)=>({rowIndex:e,colId:t})}=e;if(t.length===0)return{...TO};let o=new Set,s=0,c=0,l=0;for(let e of t){let t=W(e,n);t&&DO(t,n,(e,t)=>{if(!vs(t,r(e)))return;let n=a(e,t),u=`${n.rowIndex}:${n.colId}`;if(o.has(u))return;o.add(u);let d=i(n.rowIndex,n.colId);if(CO(d))return;s+=1;let f=wO(d);f!=null&&(c+=1,l+=f)})}return{count:s,numericCount:c,sum:c>0?l:null,average:c>0?l/c:null}}function DO(e,t,n){let r=t.indexOf(e.leftColId),i=t.indexOf(e.rightColId);if(!(r<0||i<0))for(let a=e.top;a<=e.bottom;a++)for(let e=r;e<=i;e++)n(a,t[e])}var OO=[`left`,`center`,`right`];function kO(e,t){let n=OO.filter(t=>e.includes(t)),r=n.indexOf(t);return r<0?{top:!0,right:!0,bottom:!0,left:!0}:{top:!0,bottom:!0,left:r===0,right:r===n.length-1}}function AO(e){return{top:e.top,height:e.height}}function jO(e){return e.fixed??`center`}function MO(e,t,n,r,i=0){let a=t.indexOf(e.leftColId),o=t.indexOf(e.rightColId);if(a<0||o<0)return null;let s=Math.min(a,o),c=Math.max(a,o),l=null,u=null;for(let e=s;e<=c;e++){let i=t[e];if(!i)continue;let a=n.find(e=>e.colId===i);!a||a.hidden||jO(a)===r&&(l||=a,u=a)}return!l||!u?null:{left:l.left-i,width:u.left+u.width-l.left}}function NO(e,t){return e===`right`?t.getLeftFixedWidth()+t.getCenterTotalWidth():0}function PO(e,t){if(t<=0)return null;let n=e.top+e.height,r=Math.max(0,e.top),i=Math.min(t,n)-r;return i<=0?null:{top:r,height:i,lanes:e.lanes}}function FO(e,t,n,r,i,a){let{topRowIndex:o,bottomRowIndex:s}=Y_(e,t,a??{rowModel:r,columnModel:n,cellSpanService:null}),c=r.getRow(o),l=r.getRow(s);if(!c||!l)return null;let u=n.getColumns(),d={};for(let r of[`left`,`center`,`right`]){let i=MO(e,t,u,r,NO(r,n));i&&(d[r]=i)}if(Object.keys(d).length===0)return null;let f=c.rowTop,p=l.rowTop+l.rowHeight-c.rowTop,m={top:i.compressedScroll?f-i.scrollTop:f,height:p,lanes:d};return!i.compressedScroll||i.viewportHeight==null?m:PO(m,i.viewportHeight)}function IO(e,t){let n=new Set;for(let r of e){let e=t.indexOf(r.leftColId),i=t.indexOf(r.rightColId);if(e<0||i<0)continue;let a=Math.min(e,i),o=Math.max(e,i);for(let e=a;e<=o;e++){let r=t[e];r&&n.add(r)}}return n}function LO(e){let t=new Set;for(let n of e)for(let e=n.top;e<=n.bottom;e+=1)t.add(e);return t}function RO(e,t){if(t<=0)return{rect:{...e,left:0,width:0},clippedLeft:!0,clippedRight:!0};let n=e.left,r=e.width,i=!1,a=!1;n<0&&(r+=n,n=0,i=!0);let o=n+r-t;return o>0&&(r-=o,a=!0),r<=0?{rect:{...e,left:n,width:0},clippedLeft:i,clippedRight:a}:{rect:{...e,left:n,width:r},clippedLeft:i,clippedRight:a}}function zO(e,t,n){if(n<=0)return{rect:{...e,left:0,width:0},clippedLeft:!0,clippedRight:!0};let r=t,i=t+n;e.left+e.width;let a=e.left,o=e.width,s=!1,c=!1;return a<r&&(o-=r-a,a=r,s=!0),a+o>i&&(o-=a+o-i,c=!0),o<=0?{rect:{...e,left:a,width:0},clippedLeft:s,clippedRight:c}:{rect:{...e,left:a,width:o},clippedLeft:s,clippedRight:c}}function BO(e,t){return{top:e.top,bottom:e.bottom,left:e.left&&!t.clippedLeft,right:e.right&&!t.clippedRight}}function VO(e,t,n){return o_(e,t,n)}function HO(e){return e===`right`}function UO(e,t,n,r,i,a){let o=a??FO(e,t,n,r,i);if(!o)return null;let s=e.rightColId,c=n.getColumnById(s);if(!c||c.hidden)return null;let l=jO(c),u=o.lanes[l];if(!u)return null;let d=u.left+u.width-6/2,{top:f,height:p}=AO(o);return{lane:l,left:d,top:f+p-6/2}}var WO=class{deps;overlayEl=null;overlayLanes=null;pasteFlashOverlayEl=null;pasteFlashLanes=null;pasteFlashCleanupTimer=null;fillHandleEl=null;rangeHandleEl=null;normalizedRanges=[];anchor=null;displayedColIds=[];constructor(e){this.deps=e}refresh(e){this.displayedColIds=e.displayedColIds,this.anchor=e.anchor,this.normalizedRanges=e.ranges.map(t=>W(t,e.displayedColIds)).filter(e=>e!=null),this.syncRangeSelectionVisuals(),this.syncHeaderHighlight(),this.syncIndexColumnHighlight()}clear(){this.normalizedRanges=[],this.anchor=null,this.displayedColIds=[],this.syncRangeSelectionVisuals(),this.syncHeaderHighlight(),this.syncIndexColumnHighlight()}syncRangeSelectionVisuals(){if(!this.deps.isCellSelectionVisualEnabled?.()){this.deps.rowRenderer.setCellRangeVisualState(null,null),this.clearBorderOverlays(),this.clearSelectionHandles();return}this.syncCellClasses(),this.syncBorderOverlays(),this.syncSelectionHandle()}syncCellClasses(){let e=this.displayedColIds,t=this.normalizedRanges,n=this.anchor;if(t.length===0){this.deps.rowRenderer.setCellRangeVisualState(null,null);return}this.deps.rowRenderer.setCellRangeVisualState((n,r)=>t.some(t=>Os(n,r,t,e)),n)}ensureOverlay(){if(this.overlayEl&&this.overlayLanes)return this.overlayLanes;this.deps.mountEl.querySelectorAll(`.${es}`).forEach(e=>{e.remove()});let e=document.createElement(`div`);e.className=es;let t=t=>{let n=document.createElement(`div`);return n.className=`mg-cell-range-overlay__lane mg-cell-range-overlay__lane--${t}`,e.appendChild(n),n},n={left:t(`left`),center:t(`center`),right:t(`right`)};return this.deps.rowsLayerEl.appendChild(e),this.overlayEl=e,this.overlayLanes=n,n}resolveBandOptions(){let e=this.deps.isCompressedScroll();return{scrollTop:this.deps.getScrollTop(),scrollLeft:this.deps.getScrollLeft(),compressedScroll:e,viewportHeight:e?this.deps.getViewportHeight():void 0}}findCellElement(e,t){let n=this.deps.rowModel.getRow(e);if(!n)return null;let r=GO(n.id),i=GO(t),a=this.deps.mountEl.querySelector(`.mg-row[data-row-id="${r}"] .mg-cell[data-col-id="${i}"]`);return a instanceof HTMLElement?a:null}syncOverlayLaneLayoutFor(e,t){let{leftFixedWidth:n,centerTotalWidth:r,rightFixedWidth:i}=t;e.left.style.width=`${n}px`,e.center.style.width=`${r}px`,e.right.style.width=`${i}px`,e.center.style.position=`relative`,e.center.style.left=``,e.center.style.transform=``}resolveOverlayLaneLayoutParams(){return{leftFixedWidth:this.deps.columnModel.getLeftFixedWidth(),centerTotalWidth:this.deps.columnModel.getCenterTotalWidth(),rightFixedWidth:this.deps.columnModel.getRightFixedWidth()}}syncOverlayRootWidth(e){let t=this.deps.columnModel.getTotalWidth();e.style.left=`0`,e.style.right=`auto`,e.style.width=`${t}px`,e.style.minWidth=`${t}px`}syncOverlayLaneLayout(e){let t=this.overlayLanes;t&&(this.overlayEl&&this.syncOverlayRootWidth(this.overlayEl),this.syncOverlayLaneLayoutFor(t,e))}findRowLaneElement(e,t){let n=this.deps.rowModel.getRow(e);if(!n)return null;let r=this.deps.mountEl.querySelector(`.mg-row[data-row-id="${GO(n.id)}"]`);if(!(r instanceof HTMLElement))return null;let i=r.querySelector(`.mg-row__lane--${t}`);return i instanceof HTMLElement?i:null}resolveLaneContentRectForRange(e,t){return MO(e,this.displayedColIds,this.deps.columnModel.getColumns(),t,NO(t,this.deps.columnModel))}resolveRangeBand(e,t){let n={rowModel:this.deps.rowModel,columnModel:this.deps.columnModel,cellSpanService:this.deps.getCellSpanService?.()??null};return{band:FO(e,this.displayedColIds,this.deps.columnModel,this.deps.rowModel,t,n),domMeasuredLanes:new Set}}syncBorderOverlays(){if(this.normalizedRanges.length===0){this.clearBorderOverlays();return}let e=this.ensureOverlay(),t=this.resolveBandOptions(),{scrollLeft:n}=t,r=this.deps.columnModel.getLeftFixedWidth(),i=this.deps.columnModel.getCenterTotalWidth(),a=this.deps.columnModel.getRightFixedWidth(),o=this.deps.getViewportWidth(),s=VO(o,r,a),c=o>0&&s>0&&s<i;e.left.replaceChildren(),e.center.replaceChildren(),e.right.replaceChildren(),this.syncOverlayLaneLayout({leftFixedWidth:r,centerTotalWidth:i,rightFixedWidth:a}),e.center.offsetWidth,e.right.offsetWidth;for(let r of this.normalizedRanges){let{band:o}=this.resolveRangeBand(r,t);if(!o)continue;let l=[`left`,`center`,`right`].filter(e=>this.resolveLaneContentRectForRange(r,e)!=null);for(let t of l){let u=this.resolveLaneContentRectForRange(r,t),d=u,f;if(f=t===`center`&&c?zO(u,a_(n,i,s),s):t===`center`||t===`right`?RO(d,t===`center`?i:a):{rect:d,clippedLeft:!1,clippedRight:!1},f.rect.width<=0)continue;let p=BO(kO(l,t),f);t===`center`&&!l.includes(`left`)&&f.clippedLeft&&(p={...p,left:!1});let{top:m,height:h}=AO(o);if(t===`center`){this.appendSegmentedBorder(e[t],p,m,h,f.rect.left,f.rect.width);continue}HO(t)?this.appendSegmentedBorder(e[t],p,m,h,f.rect.left,f.rect.width):this.appendEnvelopeBorder(e[t],p,m,h,f.rect.left,f.rect.width)}}this.ensureOverlayOnTop()}ensureOverlayOnTop(){this.overlayEl?.parentElement===this.deps.rowsLayerEl&&this.deps.rowsLayerEl.appendChild(this.overlayEl)}appendEnvelopeBorder(e,t,n,r,i,a){let o=document.createElement(`div`);o.className=qo,t.top&&o.classList.add(Jo),t.right&&o.classList.add(Yo),t.bottom&&o.classList.add(Xo),t.left&&o.classList.add(Zo),o.style.top=`${n}px`,o.style.height=`${r}px`,o.style.left=`${i}px`,o.style.width=`${a}px`,e.appendChild(o)}appendSegmentedBorder(e,t,n,r,i,a){let o=(t,n)=>{let r=document.createElement(`div`);r.className=`${qo} ${t}`;for(let[e,t]of Object.entries(n))r.style.setProperty(e,t);e.appendChild(r)};t.top&&o(Qo,{top:`${n}px`,left:`${i}px`,width:`${a}px`,height:`2px`}),t.bottom&&o(Qo,{top:`${n+r-2}px`,left:`${i}px`,width:`${a}px`,height:`2px`}),t.left&&o($o,{top:`${n}px`,left:`${i}px`,width:`2px`,height:`${r}px`}),t.right&&o($o,{top:`${n}px`,left:`${i+a-2}px`,width:`2px`,height:`${r}px`})}playCopyFlash(){if(this.normalizedRanges.length===0)return;this.deps.rowRenderer.playCellRangeCopyFlash(),this.ensureOverlay();let e=this.overlayEl;if(!e)return;e.classList.remove(ns),e.offsetWidth,e.classList.add(ns);let t=()=>{e.classList.remove(ns),e.removeEventListener(`animationend`,t)};e.addEventListener(`animationend`,t)}playPasteFlash(e){e.length!==0&&(this.deps.rowRenderer.playCellRangePasteFlash(e),this.playPasteTargetOverlayFlash(e))}measurePasteTargetCellOverlayRect(e,t,n){let r=this.findCellElement(e,t);if(!r)return null;let i=this.deps.columnModel.getColumnById(t);if(!i)return null;let a=i.fixed??`center`,o=n[a],s=r.getBoundingClientRect(),c=o.getBoundingClientRect(),l=s.top-c.top,u=s.left-c.left,d=s.width,f=s.height;return d<=0||f<=0?null:{lane:a,top:l,left:u,width:d,height:f}}playPasteTargetOverlayFlash(e){this.clearPasteFlashOverlay();let t=this.ensurePasteFlashOverlay();this.syncPasteFlashOverlayLayout();let n=[];for(let r of e){let e=this.measurePasteTargetCellOverlayRect(r.rowIndex,r.colId,t);if(!e)continue;let i=document.createElement(`div`);i.className=`${as} ${r.applied?os:ss}`,i.style.top=`${e.top}px`,i.style.left=`${e.left}px`,i.style.width=`${e.width}px`,i.style.height=`${e.height}px`,t[e.lane].appendChild(i),n.push(i)}n.length!==0&&(this.pasteFlashCleanupTimer=window.setTimeout(()=>{this.pasteFlashCleanupTimer=null;for(let e of n)e.remove()},520))}syncOverlayPosition(){if(this.normalizedRanges.length===0){this.syncPasteFlashOverlayLayout();return}this.syncBorderOverlays(),this.syncSelectionHandle(),this.syncPasteFlashOverlayLayout()}clearPasteFlashOverlay(){this.pasteFlashCleanupTimer!=null&&(window.clearTimeout(this.pasteFlashCleanupTimer),this.pasteFlashCleanupTimer=null),this.pasteFlashLanes?.left.replaceChildren(),this.pasteFlashLanes?.center.replaceChildren(),this.pasteFlashLanes?.right.replaceChildren()}ensurePasteFlashOverlay(){if(this.pasteFlashOverlayEl&&this.pasteFlashLanes)return this.pasteFlashLanes;let e=document.createElement(`div`);e.className=cs;let t=t=>{let n=document.createElement(`div`);return n.className=`mg-cell-range-overlay__lane mg-cell-range-overlay__lane--${t}`,e.appendChild(n),n},n={left:t(`left`),center:t(`center`),right:t(`right`)};return this.deps.rowsLayerEl.appendChild(e),this.pasteFlashOverlayEl=e,this.pasteFlashLanes=n,n}syncPasteFlashOverlayLayout(){let e=this.pasteFlashLanes;e&&(e.left.childElementCount>0||e.center.childElementCount>0||e.right.childElementCount>0)&&(this.syncOverlayLaneLayoutFor(e,this.resolveOverlayLaneLayoutParams()),this.pasteFlashOverlayEl&&this.syncOverlayRootWidth(this.pasteFlashOverlayEl),this.pasteFlashOverlayEl?.parentElement===this.deps.rowsLayerEl&&this.deps.rowsLayerEl.appendChild(this.pasteFlashOverlayEl))}clearBorderOverlays(){this.overlayLanes?.left.replaceChildren(),this.overlayLanes?.center.replaceChildren(),this.overlayLanes?.right.replaceChildren()}ensureFillHandle(){if(this.fillHandleEl)return this.fillHandleEl;let e=document.createElement(`div`);return e.className=ls,e.style.width=`6px`,e.style.height=`6px`,this.fillHandleEl=e,e}clearSelectionHandles(){this.fillHandleEl?.remove(),this.fillHandleEl=null,this.rangeHandleEl?.remove(),this.rangeHandleEl=null}syncSelectionHandle(){let e=this.deps.getCellSelectionOptions?.();if(!e||this.normalizedRanges.length!==1){this.clearSelectionHandles();return}let t=this.normalizedRanges[0],n=this.resolveBandOptions(),{band:r}=this.resolveRangeBand(t,n),i=UO(t,this.displayedColIds,this.deps.columnModel,this.deps.rowModel,{...n,viewportWidth:this.deps.getViewportWidth()},null);if(!i){this.clearSelectionHandles();return}if(xs(e)){this.rangeHandleEl?.remove(),this.rangeHandleEl=null,this.mountHandle(this.ensureFillHandle(),i);return}if(Ss(e)){this.fillHandleEl?.remove(),this.fillHandleEl=null,this.mountHandle(this.ensureRangeHandle(),i);return}this.clearSelectionHandles()}mountHandle(e,t){let n=this.ensureOverlay()[t.lane],r=t.lane===`left`?this.deps.columnModel.getLeftFixedWidth():t.lane===`center`?this.deps.columnModel.getCenterTotalWidth():this.deps.columnModel.getRightFixedWidth(),i=Math.max(0,r-6),a=Math.min(Math.max(t.left,0),i);if(r<=0){e.remove();return}e.parentElement!==n&&(e.remove(),n.appendChild(e)),e.style.left=`${a}px`,e.style.top=`${t.top}px`}ensureRangeHandle(){if(this.rangeHandleEl)return this.rangeHandleEl;let e=document.createElement(`div`);return e.className=us,e.style.width=`6px`,e.style.height=`6px`,this.rangeHandleEl=e,e}syncHeaderHighlight(){let e=this.deps.isHeaderHighlightEnabled()?IO(this.normalizedRanges,this.displayedColIds):new Set;this.deps.mountEl.querySelectorAll(`.mg-header-cell[data-col-id]`).forEach(t=>{if(!(t instanceof HTMLElement))return;let n=t.dataset.colId;t.classList.toggle(ds,n!=null&&e.has(n))})}syncIndexColumnHighlight(){if(!this.deps.isIndexColumnHighlightEnabled()){this.deps.rowRenderer.setIndexColumnHighlight(null);return}let e=Fs({rangeRowIndices:LO(this.normalizedRanges),indexFocusedRowIds:this.deps.getIndexFocusedRowIds?.()??[],selectedRowIds:this.deps.getSelectedRowIds?.()??[],rowIndexById:e=>this.deps.rowModel.getRowIndexById(e)});this.deps.rowRenderer.setIndexColumnHighlight(t=>e.has(t))}destroy(){this.clear(),this.clearPasteFlashOverlay(),this.overlayEl?.remove(),this.overlayEl=null,this.overlayLanes=null,this.pasteFlashOverlayEl?.remove(),this.pasteFlashOverlayEl=null,this.pasteFlashLanes=null,this.fillHandleEl=null,this.rangeHandleEl=null}};function GO(e){return typeof CSS<`u`&&typeof CSS.escape==`function`?CSS.escape(e):e.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`)}function KO(e){return{startRowIndex:e.startRowIndex,endRowIndex:e.endRowIndex,startColId:e.startColId,endColId:e.endColId}}function qO(e){return{rowIndex:e.rowIndex,colId:e.colId}}function JO(e,t){return e.length===t.length&&e.every((e,n)=>ks(e,t[n]))}function YO(e,t){let n=t.expandRangeForCellSpans?.(e)??e,r=W(n,t.displayedColIds);return!r||t.rowKindAt&&!As(n,t.rowKindAt)?null:Ds(r)}function XO(e,t){let n=[];for(let r of e){let e=YO(r,t);e&&n.push(e)}return n}function ZO(e,t,n){for(let r=0;r<t.length;r++){let i=W(t[r],n);if(i&&Os(e.rowIndex,e.colId,i,n))return r}return-1}var QO=class{suppressMultiRanges;ranges=[];anchor=null;constructor(e=!0){this.suppressMultiRanges=e}getRanges(){return this.ranges.map(KO)}getAnchor(){return this.anchor?qO(this.anchor):null}hasRanges(){return this.ranges.length>0}isSuppressMultiRanges(){return this.suppressMultiRanges}setSuppressMultiRanges(e){this.suppressMultiRanges=e,e&&this.ranges.length>1&&(this.ranges=this.ranges.slice(0,1))}setAnchor(e){this.anchor=e?qO(e):null}clear(){return this.ranges.length===0&&this.anchor===null?!1:(this.ranges=[],this.anchor=null,!0)}setRanges(e,t,n){let r=XO(e,t);this.suppressMultiRanges&&r.length>1&&(r=r.slice(0,1));let i=!JO(this.ranges,r);return!i&&n==null?!1:(this.ranges=r,n===null?this.anchor=null:n===void 0?r.length===0&&(this.anchor=null):this.anchor=qO(n),i||n!==void 0)}addRange(e,t,n){let r=YO(e,t);return r?this.suppressMultiRanges?this.setRanges([r],t,n??this.anchor):!this.ranges.some(e=>ks(e,r))&&(this.ranges=[...this.ranges,r],n&&(this.anchor=qO(n)),!0):!1}extendFromAnchor(e,t){if(!this.anchor)return!1;let n=YO(Ts(this.anchor,e),t);if(!n)return!1;let r=ZO(this.anchor,this.ranges,t.displayedColIds);if(r>=0){let e=[...this.ranges];return e[r]=n,this.setRanges(e,t,this.anchor)}return this.setRanges([n],t,this.anchor)}extendFocusedRange(e,t,n){if(this.anchor)return this.extendFromAnchor(t,n);let r=YO(Ts(e,t),n);if(!r)return!1;let i=ZO(e,this.ranges,n.displayedColIds);if(i>=0){let t=[...this.ranges];return t[i]=r,this.setRanges(t,n,e)}return this.ranges.length===0||this.suppressMultiRanges?this.setRanges([r],n,e):this.addRange(r,n,e)}isCellInAnyRange(e,t,n){return ZO({rowIndex:e,colId:t},this.ranges,n)>=0}},$O=class{deps;cellSelectionGridOptions;cellSelectionOptions;cellRangeVisualGridOptions;cellRangeVisualOptions;cellClipboardGridOptions;cellRangeService;cellRangeVisualController;rowOrderRangeIndexSnapshot=null;constructor(e,t){this.deps=e,this.cellSelectionGridOptions={cellSelection:t.cellSelection,enableCellCopy:t.enableCellCopy,enableCellPaste:t.enableCellPaste},this.cellSelectionOptions=ws(this.cellSelectionGridOptions),this.cellRangeVisualGridOptions={enableHeaderHighlight:t.enableHeaderHighlight,enableIndexColumnHighlight:t.enableIndexColumnHighlight},this.cellRangeVisualOptions=Cs(this.cellRangeVisualGridOptions),this.cellClipboardGridOptions={processCellForClipboard:t.processCellForClipboard,processCellFromClipboard:t.processCellFromClipboard,processDataFromClipboard:t.processDataFromClipboard},this.cellRangeService=new QO(this.cellSelectionOptions.suppressMultiRanges),this.cellRangeVisualController=this.createCellRangeVisualController()}getCellRangeService(){return this.cellRangeService}getCellSelectionOptions(){return this.cellSelectionOptions}getCellClipboardOptions(){return this.cellClipboardGridOptions}isCellSelectionEnabled(){return this.cellSelectionOptions.enabled}clearCellSelectionOnStructuralChange(){this.cellRangeService.hasRanges()&&this.clearCellSelection()}getCellRanges(){return[...this.cellRangeService.getRanges()]}getCellSelectionAggregation(){if(!this.cellSelectionOptions.enabled||!this.cellRangeService.hasRanges())return null;let e=this.getCellRangeOperationContext(),t=EO({ranges:this.cellRangeService.getRanges(),displayedColIds:e.displayedColIds,rowKindAt:e.rowKindAt??(()=>void 0),getCellValue:(e,t)=>{let n=this.deps.rowModel.getRow(e),r=this.deps.columnModel.getColumnById(t);if(!(!n||!r))return U(n,r)},normalizePosition:(e,t)=>{let n=this.deps.rowModel.getRow(e);if(!n)return{rowIndex:e,colId:t};let r=dE(this.deps.rowModel,this.deps.columnModel,this.deps.cellSpanService,{rowId:n.id,rowIndex:e,colId:t});return{rowIndex:r.rowIndex,colId:r.colId}}});return t.count>0?t:null}clearCellSelection(){this.cellRangeService.clear()&&(this.applyCellRangeVisuals(),this.emitCellSelectionChanged(`api`))}addCellRange(e){if(!this.cellSelectionOptions.enabled){Is(e,`cellSelection is disabled`);return}let t=this.getCellRangeOperationContext(),n=t.rowKindAt??(()=>void 0);if(!W(e,t.displayedColIds)){Is(e,`column ids not in displayed columns`);return}if(!As(e,n)){Is(e,`range includes ineligible cells`);return}this.cellRangeService.addRange(e,t)&&(this.applyCellRangeVisuals(),this.emitCellSelectionChanged(`api`))}copySelectedRangeToClipboard(){return this.deps.getCellClipboardService()?.copySelectedRanges()??!1}async pasteFromClipboard(){await this.deps.getCellClipboardService()?.pasteFromClipboard()}updateCellRangeVisualOptions(e){this.cellRangeVisualGridOptions={...this.cellRangeVisualGridOptions,...e},this.cellRangeVisualOptions=Cs(this.cellRangeVisualGridOptions),this.applyCellRangeVisuals()}updateCellSelectionOptions(e){let t=this.cellSelectionOptions.enabled,n=t?[...this.getCellRanges()]:[];this.cellSelectionGridOptions={...this.cellSelectionGridOptions,...e},this.cellSelectionOptions=ws(this.cellSelectionGridOptions),this.syncCellRangeSelectionRuntime(t),t&&!this.cellSelectionOptions.enabled&&n.length>0&&this.deps.eventBus.emit(`cellSelectionChanged`,{ranges:[],source:`api`})}updateCellClipboardOptions(e){this.cellClipboardGridOptions={...this.cellClipboardGridOptions,...e}}playCellRangeCopyFlash(){this.cellRangeVisualController.playCopyFlash()}playCellRangePasteFlash(e){requestAnimationFrame(()=>{this.cellRangeVisualController.playPasteFlash(e)})}getCellRangeOperationContext(){let e=this.deps.columnModel.getDisplayedColumnIdsInLaneOrder();return{displayedColIds:e,rowKindAt:e=>this.deps.rowModel.getRow(e)?.rowKind,expandRangeForCellSpans:t=>J_(t,{rowModel:this.deps.rowModel,columnModel:this.deps.columnModel,cellSpanService:this.deps.cellSpanService,displayedColIds:e})}}applyCellRangeVisuals(){let e=this.deps.columnModel.getDisplayedColumnIdsInLaneOrder(),t=this.cellRangeService.getRanges(),n=Es({serviceRanges:t,enableHeaderHighlight:this.cellRangeVisualOptions.enableHeaderHighlight,enableIndexColumnHighlight:this.cellRangeVisualOptions.enableIndexColumnHighlight,editingRanges:this.resolveRowEditingHighlightRanges(),focus:this.resolveHighlightProjectionCell(),focusEligible:this.isHighlightProjectionCellEligible()});if(n.length===0){this.cellRangeVisualController.clear();return}let r=t.length>0?this.cellRangeService.getAnchor():this.resolveHighlightProjectionCell();this.cellRangeVisualController.refresh({ranges:n,anchor:r,displayedColIds:e})}applyCellRangeScrollVisuals(){this.cellRangeService.hasRanges()&&this.cellRangeVisualController.syncOverlayPosition()}emitCellSelectionChanged(e){this.deps.eventBus.emit(`cellSelectionChanged`,{ranges:[...this.cellRangeService.getRanges()],source:e})}async handleCellSelectionDeleteKey(){if(!this.cellSelectionOptions.enabled||!this.cellRangeService.hasRanges())return;this.deps.cellEditing.isEditing()&&await this.deps.cellEditing.stopEditing(!0);let e=[...this.cellRangeService.getRanges()];this.deps.eventBus.emit(`cellSelectionDeleteStart`,{ranges:e});let t=await this.deps.getCellRangeDeleteWriteService()?.clearRanges(e,this.getCellRangeOperationContext())??0;this.deps.eventBus.emit(`cellSelectionDeleteEnd`,{ranges:e,changedCellCount:t})}beginRowOrderVisualCapture(){this.rowOrderRangeIndexSnapshot=this.captureCellRangeRowIndexSnapshot()}finishRowOrderVisualSync(){this.remapCellFocusAfterRowOrderChanged(),this.remapCellRangeSelectionAfterRowOrderChanged(this.rowOrderRangeIndexSnapshot),this.rowOrderRangeIndexSnapshot=null,this.deps.applyIndexFocusVisuals(),this.deps.syncCellRangeFromIndexFocus(),this.deps.applyFocusVisuals(),this.applyCellRangeVisuals()}destroy(){this.cellRangeService.clear(),this.cellRangeVisualController.destroy()}createCellRangeVisualController(){return new WO({mountEl:this.deps.mountEl,rowsLayerEl:this.deps.rowsLayerEl,rowModel:this.deps.rowModel,columnModel:this.deps.columnModel,rowRenderer:this.deps.rowRenderer,getScrollTop:()=>this.deps.viewport.getLogicalScrollTop(),getScrollLeft:()=>this.deps.viewport.viewportEl.scrollLeft,getViewportWidth:()=>this.deps.viewport.viewportEl.clientWidth,isCompressedScroll:()=>this.deps.rowsLayerEl.classList.contains(`mg-rows-layer--compressed`),getViewportHeight:()=>this.deps.viewport.getRenderViewportHeight(),isHeaderHighlightEnabled:()=>this.cellRangeVisualOptions.enableHeaderHighlight,isIndexColumnHighlightEnabled:()=>this.cellRangeVisualOptions.enableIndexColumnHighlight&&this.deps.indexColumnOptions.showIndexColumn,getIndexFocusedRowIds:()=>this.deps.indexFocusService?.getFocusedRowIds()??[],getSelectedRowIds:()=>this.deps.selectionService?.getSelectedRowIds()??[],isSyncToSelectionColumnEnabled:()=>this.deps.indexColumnOptions.indexColumn.syncToSelectionColumn?ID(this.deps.indexColumnOptions.indexColumn.focusMode,this.deps.selectionColumnOptions.mode):!1,isCellSelectionVisualEnabled:()=>this.cellSelectionOptions.enabled,getCellSelectionOptions:()=>this.cellSelectionOptions,getCellSpanService:()=>this.deps.cellSpanService})}syncCellRangeSelectionRuntime(e){if(e&&!this.cellSelectionOptions.enabled){this.cellRangeService.clear(),this.applyCellRangeVisuals();return}this.cellRangeService.setSuppressMultiRanges(this.cellSelectionOptions.suppressMultiRanges),this.applyCellRangeVisuals()}resolveRowEditingHighlightRanges(){if(!this.deps.cellEditing.isEditing())return[];let e=this.deps.cellEditing.getEditingCells();if(e.length<=1)return[];let t=e[0].rowIndex,n=this.deps.rowModel.getRow(t)?.rowKind,r=this.deps.columnModel.getDisplayedColumnIdsInLaneOrder(),i=e.map(e=>e.colId).filter(e=>_s(e,n)).map(e=>r.indexOf(e)).filter(e=>e>=0).sort((e,t)=>e-t);if(i.length===0)return[];let a=r[i[0]],o=r[i[i.length-1]];return[Ts({rowIndex:t,colId:a},{rowIndex:t,colId:o})]}captureCellRangeRowIndexSnapshot(){if(!this.cellRangeService.hasRanges())return null;let e=new Set;for(let t of this.cellRangeService.getRanges()){let n=Math.min(t.startRowIndex,t.endRowIndex),r=Math.max(t.startRowIndex,t.endRowIndex);for(let t=n;t<=r;t+=1)e.add(t)}let t=this.cellRangeService.getAnchor();if(t&&e.add(t.rowIndex),e.size===0)return null;let n=new Map;for(let t of e){let e=this.deps.rowModel.getRow(t);e&&n.set(t,e.id)}return n.size>0?n:null}remapCellFocusAfterRowOrderChanged(){let e=this.deps.cellFocusService.getFocusedCell();if(!e||J(e))return;let t=this.deps.rowModel.getRowIndexById(e.rowId);if(t<0){this.deps.cellFocusService.clear();return}t!==e.rowIndex&&this.deps.cellFocusService.setFocusedCell({...e,rowIndex:t})}remapCellRangeSelectionAfterRowOrderChanged(e){if(!e||!this.cellRangeService.hasRanges())return;let t=this.getCellRangeOperationContext(),n=t=>{let n=e.get(t);if(!n)return t;let r=this.deps.rowModel.getRowIndexById(n);return r>=0?r:t},r=this.cellRangeService.getRanges().map(e=>({startRowIndex:n(e.startRowIndex),endRowIndex:n(e.endRowIndex),startColId:e.startColId,endColId:e.endColId})),i=this.cellRangeService.getAnchor(),a=i?{rowIndex:n(i.rowIndex),colId:i.colId}:null;this.cellRangeService.setRanges(r,t,a)}resolveHighlightProjectionCell(){if(this.deps.cellEditing.isEditing()){let e=this.deps.cellEditing.getEditingCell();if(e){let t=this.deps.rowModel.getRowIndexById(String(e.rowId));if(t>=0)return{rowIndex:t,colId:e.colId}}}let e=this.deps.cellFocusService.getFocusedCell();return!e||J(e)?null:{rowIndex:e.rowIndex,colId:e.colId}}isHighlightProjectionCellEligible(){let e=this.resolveHighlightProjectionCell();if(!e)return!1;let t=this.deps.rowModel.getRow(e.rowIndex)?.rowKind;return _s(e.colId,t)}},ek=class{deps;constructor(e){this.deps=e}reconcileOrInvalidateRowPool(){if(this.deps.isCellSpanActive()){this.deps.rowRenderer.invalidate();return}this.deps.reconcileRowPoolAfterDisplayChange()}expandRow(e){return this.deps.rowExpansionOptions.masterDetail?this.deps.rowExpansionService.expandRow(t.m(e),`api`):!1}collapseRow(e){return this.deps.rowExpansionOptions.masterDetail?this.deps.rowExpansionService.collapseRow(t.m(e),`api`):!1}isRowExpanded(e){return this.deps.rowExpansionOptions.masterDetail?this.deps.rowExpansionService.isExpanded(t.m(e)):!1}setDetailRowData(e,n){return this.deps.rowExpansionOptions.masterDetail?this.deps.rowExpansionService.setDetailRowData(t.m(e),n):!1}reloadDetailRowData(e){return this.deps.rowExpansionOptions.masterDetail?this.deps.rowExpansionService.reloadDetailRowData(t.m(e)):!1}expandAll(){this.deps.treeTableService.active?this.deps.treeTableService.expandAll(`api`):this.deps.rowGroupingService.active&&this.deps.rowGroupingService.expandAll(`api`),this.deps.rowExpansionOptions.masterDetail&&this.deps.rowExpansionService.expandAll(`api`)}collapseAll(){this.deps.treeTableService.active?this.deps.treeTableService.collapseAll():this.deps.rowGroupingService.active&&this.deps.rowGroupingService.collapseAll(`api`),this.deps.rowExpansionOptions.masterDetail&&this.deps.rowExpansionService.collapseAll(`api`)}setRowGroupColumns(e){this.deps.rowGroupingOptions.rowGrouping&&(this.deps.rowGroupingService.setRowGroupColumns(e,`api`),this.deps.rowModel.refreshModel({applyDefaultExpanded:!0}))}getRowGroupColumns(){return this.deps.rowGroupingService.getRowGroupColumns()}expandGroup(e){return this.deps.rowGroupingService.active?this.deps.rowGroupingService.isExpanded(e)?!0:(this.deps.rowGroupingService.expandGroup(e,`api`),this.deps.rowGroupingService.isExpanded(e)):!1}expandGroupsInPath(e){if(this.deps.rowGroupingService.active)for(let t of e)this.expandGroup(t)}collapseGroup(e){return this.deps.rowGroupingService.active?!this.deps.rowGroupingService.isExpanded(e)||(this.deps.rowGroupingService.collapseGroup(e,`api`),!this.deps.rowGroupingService.isExpanded(e)):!1}isGroupExpanded(e){return this.deps.rowGroupingService.active?this.deps.rowGroupingService.isExpanded(e):!1}expandNode(e){if(!this.deps.treeTableService.active)return!1;let n=t.m(e);return this.deps.treeTableService.isExpanded(n)?!0:(this.deps.treeTableService.requestToggleNode(n,`api`),this.deps.treeTableService.isExpanded(n))}collapseNode(e){if(!this.deps.treeTableService.active)return!1;let n=t.m(e);return!this.deps.treeTableService.isExpanded(n)||(this.deps.treeTableService.collapseNode(n,`api`),!this.deps.treeTableService.isExpanded(n))}isNodeExpanded(e){return this.deps.treeTableService.active?this.deps.treeTableService.isExpanded(t.m(e)):!1}getDataPath(e){if(this.deps.treeTableService.active)return this.deps.treeTableService.getDataPathForRow(t.m(e))}resolveTreeHierarchyActions(e){if(!V(e))return{visible:!1};let t=this.queryTreeHierarchyAvailableActions(e.id);return!t||!t.promote&&!t.demote?{visible:!1}:{visible:!0}}resolveTreeHierarchyMenuActions(e){let t=this.queryTreeHierarchyAvailableActions(e);return t?Lb(t):[]}applyTreeHierarchyShortcut(e,t){if(!this.isTreeHierarchyActionsEnabled()||this.deps.getRowDragCommitService()?.isCommitting())return;let n=this.deps.rowModel.rowsToDisplay,r=Bb({sourceRows:this.deps.rowModel.getSourceRows(),displayRows:n,getDataPath:this.deps.treeTableOptions.getDataPath,setDataPath:this.deps.treeTableOptions.setDataPath,action:t,rowId:e});if(!r.ok)return;let{plan:i}=r;if(this.deps.asyncRowMutation?.move){let r=Nb({action:t,rowId:e,displayRows:n}),a=r?.kind===`outdent`?r.nestUnderRowId:void 0,o=q(i.rows,i.leaderRowId)??void 0;this.deps.getRowDragCommitService()?.commit({plan:i,rowIds:zb(i),sourceColId:Ge,nestUnderRowId:a,treeContext:o});return}this.deps.applyRowDragPlan(i,`api`)}syncRowExpansionDisplay(e){if(!this.deps.rowExpansionOptions.masterDetail)return;let n=this.deps.viewport.captureScrollAnchor(),r=0,i=0;if(e?.rowId!=null){let n=t.m(e.rowId);if(e.expanded){let e=this.deps.rowModel.getDisplayRowById(n);e&&(r=e.rowTop+e.rowHeight)}else{let e=this.deps.rowModel.getDisplayRowById(F(n));e&&(r=e.rowTop,i=-e.rowHeight)}}if(this.deps.rowModel.rebuildDisplayProjection(),e?.expanded&&e.rowId!=null){let n=this.deps.rowModel.getDisplayRowById(F(t.m(e.rowId)));n&&(r=n.rowTop,i=n.rowHeight)}if(this.deps.viewport.syncViewportHeightWithDetailCompensation({anchor:n,detailRowTop:r,heightDelta:i}),this.deps.rowExpansionOptions.embedFullWidthRows){this.deps.rowRenderer.invalidate(),this.deps.viewport.redrawImmediately();return}this.deps.viewport.redrawRowExpansionIncremental()}syncRowGroupingDisplay(){this.deps.rowGroupingService.active&&(this.deps.rowModel.rebuildGroupedMapProjection(),this.deps.viewport.syncViewportHeight(),this.deps.refreshCellSpanCache(),this.reconcileOrInvalidateRowPool(),this.deps.viewport.redrawImmediately())}syncTreeTableDisplay(){this.deps.treeTableService.active&&(this.deps.rowModel.rebuildTreeMapProjection(),this.deps.viewport.syncViewportHeight(),this.deps.viewport.syncTreeHeaderExpandState(),this.deps.refreshCellSpanCache(),this.reconcileOrInvalidateRowPool(),this.deps.viewport.redrawImmediately(),this.deps.selectionOps.refreshSelectionAfterDataChange())}refreshTreeLoadingVisuals(e){if(!this.deps.treeTableService.active)return;let t={force:!0,colIds:[Ge]};e&&(t.rowIds=[e]),this.deps.rowRenderer.refreshRows(t)}refreshDetailRowContent(e){!this.deps.rowExpansionOptions.masterDetail||e.length===0||this.deps.rowRenderer.refreshDetailRows(e)}isTreeHierarchyActionsEnabled(){return this.deps.treeTableService.active&&this.deps.treeTableOptions.treeDragScope===`hierarchy`&&this.deps.treeTableOptions.treeHierarchyActions&&typeof this.deps.treeTableOptions.getDataPath==`function`&&typeof this.deps.treeTableOptions.setDataPath==`function`}queryTreeHierarchyAvailableActions(e){return this.isTreeHierarchyActionsEnabled()?Ib({sourceRows:this.deps.rowModel.getSourceRows(),displayRows:this.deps.rowModel.rowsToDisplay,getRowById:e=>this.deps.rowModel.getRowById(e),getDataPath:this.deps.treeTableOptions.getDataPath,setDataPath:this.deps.treeTableOptions.setDataPath,rowId:e}):null}},tk=class{deps;constructor(e){this.deps=e}refresh(){let e=this.deps.getFooterRenderer();if(!e)return;let t=this.deps.summaryOptions.summaryScope===`all`?this.deps.rowModel.getSourceRows():this.deps.rowModel.rowsToDisplay,n=ul({columns:this.deps.columnModel.getColumns(),rows:t,summaryMethod:this.deps.summaryOptions.summaryMethod});e.syncRowLayout(this.deps.columnModel),e.render({columnModel:this.deps.columnModel,centerWindow:this.deps.columnViewport.getWindow(),summaryCells:n,valueCacheVersion:this.deps.valueCache.getVersion()}),this.deps.frameService.flushAllFrames()}};function nk(e){return{rowKey:e.rowKey,displayRows:e.rowModel.rowsToDisplay,resolveRowById:t=>e.rowModel.resolveRowById(t)}}function rk(e){return{gridSize:e.gridSize,getApi:e.getApi,buildRowSnapshot:t=>Lu(t,e.getDisplayRowContext()),getIndexColumnOptions:()=>e.indexColumnOptions.showIndexColumn?e.indexColumnOptions.indexColumn:void 0}}function ik(e,t){return rk({gridSize:e.gridSize,getApi:()=>t.getApi(),getDisplayRowContext:()=>nk(e),indexColumnOptions:e.indexColumnOptions})}function ak(e,n,r){let i={};i.valueCache=new Sy,i.changeDetection=new Fd,i.eventBus=new ag,i.cellFocusService=new kf,i.validationFeedback=new tg,i.columnDragController=new IC,i.rowDataChangeTracker=new $f,i.destroyed=!1,i.centerViewportWidth=0,i.autoSizeCellContentsPending=!1,i.suppressRowLayoutViewportSync=!1,i.preserveScrollOnSetData=n.preserveScrollOnSetData??!0,i.mountEl=e,i.scrollRenderOptions=_a(n),i.cellRenderersByColId=n.cellRenderers?.byColId??{},i.cellEditorsByColId=n.cellEditors?.byColId??{},i.onUnmountRenderer=n.onUnmountRenderer,i.onUnmountEditor=n.onUnmountEditor,i.summaryOptions=st(n),i.chromeNavigationOptions=Cy(n),i.indexColumnOptions=t.ot(n),i.selectionColumnOptions=t.Z(n);let a=t.z(n)===`infinite`;a&&n.rowDragManaged===!0&&console.warn(`[MagicGrid] rowModelType "infinite" does not support rowDragManaged; it has been disabled.`),i.rowDragOptions=wa({...n,rowDragManaged:!a&&n.rowDragManaged}),i.cellSpanOptions=qa(n),i.cellEditorCacheOptions=t.s(n),i.editorOptions=t.f(n),i.cellEditorCacheService=new wu({maxEntries:i.cellEditorCacheOptions.cellEditorCacheMaxEntries}),i.rowExpansionOptions=k(n),i.gridSize=n.size??`default`,i.loadMoreRowOptionsRaw={loadMoreRowEnabled:n.loadMoreRowEnabled,loadMoreRowHeight:n.loadMoreRowHeight,loadMoreRowLoading:n.loadMoreRowLoading,loadMoreRowHasMore:n.loadMoreRowHasMore,loadMoreRowLabels:n.loadMoreRowLabels,loadMoreRowRenderer:n.loadMoreRowRenderer},i.loadMoreRowGridOptions=fo(i.loadMoreRowOptionsRaw,i.gridSize);let o=Jy({tree:n.tree,rowGrouping:n.rowGrouping});i.treeTableOptions=et(n),o.mode===`tree`&&at(!0,i.treeTableOptions.getDataPath),i.rowGroupingOptions=_e({...n,rowGrouping:o.mode===`group`&&n.rowGrouping}),i.rowSelectionOptions=cD(n.rowSelection),i.userColumns=[...n.columns],i.userColumns,rt(i.userColumns);let s=ia(n),c=Lg(n),l=Eu(n);i.filterGridOptions=ca(n);let u=Qi(n);i.columnSortOptions=u,i.showUnsortedSortHintOnHover=u.showUnsortedSortHintOnHover,i.columnModel=new Wg(Un(i.userColumns,i.indexColumnOptions,i.selectionColumnOptions,{rowExpansion:i.rowExpansionOptions,rowGrouping:o.mode===`group`?i.rowGroupingOptions:void 0,treeTable:o.mode===`tree`?i.treeTableOptions:void 0}),i.cellRenderersByColId,i.cellEditorsByColId,Bp(n),s,c,u,i.filterGridOptions),i.columnViewport=new __(i.columnModel);let d=n.rowHeight??ar;i.resolvedSummaryRowHeight=ct(i.summaryOptions.summaryRowHeight,d);let f=n.stripe??!1,{editBehavior:p,editType:m}=dn(n);i.cellDisableContext=vt({isRowDisabled:n.isRowDisabled}),i.cellStyleOverrideService=new zf,i.cellStyleContext={rowStyle:n.rowStyle,editableCellStyle:n.editableCellStyle,showEditableCellIcon:n.showEditableCellIcon??!1,disabledCellStyle:n.disabledCellStyle,showDisabledCellIcon:n.showDisabledCellIcon??!1,getCellStyleOverride:(e,t)=>i.cellStyleOverrideService.get(e,t),getCellDisableContext:()=>i.cellDisableContext},i.invalidEditValueMode=n.invalidEditValueMode??`block`,i.rowValidator=n.rowValidator,i.asyncRowMutation=n.asyncRowMutation,i.editorHost=new gf({onUnmountEditor:n.onUnmountEditor,byName:n.cellEditors?.byName,editorOptions:i.editorOptions}),i.editingService=new _f(i.editorHost),i.rowEditingService=new If(i.editorHost),i.selectionService=sD(n.rowSelection)===!1||!i.selectionColumnOptions.enabled?null:new sg(sD(n.rowSelection)),i.indexFocusService=i.indexColumnOptions.showIndexColumn?new dg(i.indexColumnOptions.indexColumn.focusMode):null,i.frameService=new Pd({frameBudgetMs:i.scrollRenderOptions.frameBudgetMs,rendererFrameBudgetMs:i.scrollRenderOptions.rendererFrameBudgetMs}),i.scrollBridge=new xy;let h=(e,t)=>{let n=i.columnModel.getColumnById(t);return n?U(e,n):e.data[t]},g=ke(i.userColumns).length,{rowModel:_,resolvedInfinite:v}=yu({rowModelType:n.rowModelType,infiniteDatasource:n.infiniteDatasource,blockSize:n.blockSize,maxBlocksInCache:n.maxBlocksInCache,infiniteInitialRowCount:n.infiniteInitialRowCount,infiniteMaxRetries:n.infiniteMaxRetries,infiniteLoadingRowVisible:n.infiniteLoadingRowVisible,rowKey:n.rowKey,rowHeight:d,getCellValue:h,getColumnComparator:e=>i.columnModel.getColumnById(e)?.comparator,filterColumnContext:ev(e=>i.columnModel.getColumnById(e),h),quickFilterText:n.quickFilterText,getQuickFilterColIds:()=>i.columnModel.getColumns().filter(e=>e.filterable).map(e=>e.colId),rowGroupingColumnCount:g,hasTreeTable:typeof n.getDataPath==`function`,hasMasterDetail:typeof n.detailCellRenderer==`function`,rowDragManaged:!a&&n.rowDragManaged===!0,hasTreeLazyLoad:typeof n.loadTreeChildren==`function`});i.rowModel=_,i.resolvedInfiniteOptions=v,i.rowKey=n.rowKey,i.businessRowIdCtx={rowKey:n.rowKey,getRowById:e=>i.rowModel.resolveRowById(e)},i.eventBus.setProjector(og(i.businessRowIdCtx)),i.cellSpanService=new U_({getEnableCellSpan:()=>i.cellSpanOptions.enableCellSpan,getColumnModel:()=>i.columnModel,getDisplayRows:()=>i.rowModel.rowsToDisplay,getRowById:e=>{let t=i.rowModel.getRowIndexById(e);return t>=0?i.rowModel.getRow(t):void 0},getRowByIndex:e=>i.rowModel.getRow(e),getRowCount:()=>i.rowModel.getRowCount()}),i.rowExpansionService=new My({getOptions:()=>i.rowExpansionOptions,getBaseDisplayRows:()=>i.rowModel.getBaseDisplayRows(),onExpansionChanged:e=>{i.eventBus.emit(e.expanded?`rowExpanded`:`rowCollapsed`,e),i.hierarchyOps.syncRowExpansionDisplay(e)},onDetailDataChanged:e=>{i.hierarchyOps.refreshDetailRowContent([e])}}),vu(i.rowModel)&&i.rowModel.setRowExpansionService(i.rowExpansionService),i.loadMoreRowService=new Fy({getOptions:()=>i.loadMoreRowGridOptions,isClientSideRowModel:()=>vu(i.rowModel)}),vu(i.rowModel)&&i.rowModel.setLoadMoreRowService(i.loadMoreRowService),i.rowGroupingService=new Iy({getOptions:()=>i.rowGroupingOptions,getRowGroupColumnsFromDefs:()=>ke(i.userColumns),getGroupedTreeRoots:()=>i.rowModel.getGroupedTreeRoots(),onGroupOpened:e=>{i.eventBus.emit(`rowGroupOpened`,e),i.hierarchyOps.syncRowGroupingDisplay()},onGroupChanged:e=>{i.eventBus.emit(`rowGroupChanged`,e)},onGroupingStateChanged:()=>{i.hierarchyOps.syncRowGroupingDisplay()}}),vu(i.rowModel)&&i.rowModel.setRowGroupingDeps({active:()=>i.rowGroupingService.active,getRowGroupColumns:()=>i.rowGroupingService.getRowGroupColumns(),getGroupKeyCreator:()=>i.rowGroupingOptions.groupKeyCreator,getGroupComparator:()=>i.rowGroupingOptions.groupComparator,getGroupSortKey:()=>i.rowGroupingOptions.groupSortKey,getColumns:()=>i.columnModel.getColumns(),getColumnField:e=>i.columnModel.getColumnById(e)?.prop??e,getMapStageOptions:()=>i.rowGroupingService.getMapStageOptions(),pruneExpanded:e=>i.rowGroupingService.pruneExpanded(e),applyDefaultExpanded:e=>i.rowGroupingService.applyDefaultExpanded(e),clearExpanded:()=>i.rowGroupingService.clearExpanded()}),i.treeTableService=new Hy({getOptions:()=>i.treeTableOptions,getGroupDefaultExpanded:()=>i.rowGroupingOptions.groupDefaultExpanded,getTreeTreeRoots:()=>i.rowModel.getTreeTreeRoots(),getLazyLoadHost:()=>i.treeLazyLoadService,onNodeOpened:e=>{i.eventBus.emit(`treeNodeOpened`,e)},onTreeStateChanged:()=>{i.hierarchyOps.syncTreeTableDisplay()}}),vu(i.rowModel)&&i.rowModel.setTreeTableDeps({active:()=>i.treeTableService.active,getDataPath:()=>i.treeTableOptions.getDataPath,getMapStageOptions:()=>i.treeTableService.getMapStageOptions(),prepareTreeTree:e=>i.treeTableService.prepareTreeTree(e),applyDefaultExpanded:e=>i.treeTableService.applyDefaultExpandedToTree(e),clearExpanded:()=>i.treeTableService.clearExpanded()}),i.headerSortService=new Bm({getSortModel:()=>i.rowModel.getSortModel(),setSortModel:e=>r.setSortModel(e),getColumnById:e=>i.columnModel.getColumnById(e)}),i.columnHandleMenuController=new eT({mountEl:i.mountEl,columnModel:i.columnModel,getSortModel:()=>i.rowModel.getSortModel(),setSortModel:e=>r.setSortModel(e),getFilterModel:()=>r.getFilterModel(),setFilterModel:e=>r.setFilterModel(e),setColumnFixed:(e,t,n)=>r.setColumnFixed(e,t,n),setColumnsHidden:(e,t,n)=>i.columnLayout.setColumnsHidden(e,t,n),getColumnDistinctFilterValues:e=>r.getColumnDistinctFilterValues(e),filterSetValueMode:i.filterGridOptions.filterSetValueMode,filterSetDateLayoutMode:i.filterGridOptions.filterSetDateLayoutMode}),i.treeHierarchyMenuController=new uT({mountEl:i.mountEl,applyAction:(e,t)=>r.applyTreeHierarchyShortcut(e,t)});let y=Zi(n);y.length>0&&i.rowModel.setSortModel(y);let b=mT(e,{showSummary:i.summaryOptions.showSummary,floatingFilter:n.floatingFilter??!1});if(i.rootEl=b.rootEl,i.rowsLayerEl=b.rowsLayerEl,b.footerViewportEl&&b.footerRowEl&&b.footerLeftLaneEl&&b.footerCenterLaneEl&&b.footerRightLaneEl&&(i.footerRenderer=new X_({footerLeftLaneEl:b.footerLeftLaneEl,footerCenterLaneEl:b.footerCenterLaneEl,footerRightLaneEl:b.footerRightLaneEl,footerRowEl:b.footerRowEl,frameService:i.frameService,onUnmountRenderer:i.onUnmountRenderer,enableCellSpan:i.cellSpanOptions.enableCellSpan})),b.floatingFilterRowEl&&b.floatingFilterLeftLaneEl&&b.floatingFilterCenterLaneEl&&b.floatingFilterRightLaneEl){let e=new PT({floatingLeftLaneEl:b.floatingFilterLeftLaneEl,floatingCenterLaneEl:b.floatingFilterCenterLaneEl,floatingRightLaneEl:b.floatingFilterRightLaneEl,floatingRowEl:b.floatingFilterRowEl});i.floatingFilterController=new RT({columnModel:i.columnModel,getFilterModel:()=>r.getFilterModel(),setFilterModel:e=>r.setFilterModel(e),renderer:e})}i.rowRenderer=new yy(b.rowsContainerEl,{rowModel:i.rowModel,columnModel:i.columnModel,rowHeight:d,rowBuffer:n.rowBuffer??10,stripe:f,frameService:i.frameService,onUnmountRenderer:i.onUnmountRenderer,onUnmountEditor:i.onUnmountEditor,indexColumnOptions:i.indexColumnOptions.showIndexColumn?i.indexColumnOptions.indexColumn:void 0,selectionColumnOptions:i.selectionColumnOptions.enabled?i.selectionColumnOptions:void 0,isRowDragHandleEnabled:e=>r.isRowDragHandleEnabled(e),enableCellSpan:i.cellSpanOptions.enableCellSpan,cellSpanService:i.cellSpanService,spannedRowsContainerEl:b.spannedRowsContainerEl,fullWidthRowsContainerEl:b.fullWidthRowsContainerEl,masterDetail:i.rowExpansionOptions.masterDetail,embedFullWidthRows:i.rowExpansionOptions.embedFullWidthRows,getDetailCellRenderer:()=>i.rowExpansionOptions.detailCellRenderer,getMasterRowById:e=>i.rowModel.getRowById(e),rowExpansionHost:{active:()=>i.rowExpansionOptions.masterDetail,isRowMaster:e=>i.rowExpansionService.isRowMaster(e),isExpanded:e=>i.rowExpansionService.isExpanded(e)},rowGroupingHost:{active:()=>i.rowGroupingService.active,isExpanded:e=>i.rowGroupingService.isExpanded(e),getGroupFooterLabel:()=>i.rowGroupingOptions.groupFooterLabel},treeTableHost:{active:()=>i.treeTableService.active,isExpanded:e=>i.treeTableService.isExpanded(e),getTreeValue:e=>i.treeTableService.getTreeDisplayValue(e),isTreeNodeExpandable:e=>i.treeTableService.isNodeExpandable(e),isTreeNodeLoading:e=>i.treeTableService.isNodeLoading(e),getTreeHierarchyActions:e=>i.hierarchyOps.resolveTreeHierarchyActions(e)},resolveBusinessRowId:e=>t.T(e,n.rowKey),getCellDisableContext:()=>r.getCellDisableContext(),getCellStyleContext:()=>r.getCellStyleContext(),cellRendererDefer:i.scrollRenderOptions.cellRendererDefer,deferRowDestroyOnScroll:i.scrollRenderOptions.deferRowDestroyOnScroll,cellRendererPresentation:i.scrollRenderOptions.cellRendererPresentation,infiniteLoadingRowVisible:G(i.rowModel)?i.resolvedInfiniteOptions.infiniteLoadingRowVisible:void 0,getLoadMoreRowEnabled:()=>i.loadMoreRowGridOptions.enabled,getLoadMoreRowRenderer:()=>i.loadMoreRowGridOptions.loadMoreRowRenderer,getLoadMoreRowLoading:()=>i.loadMoreRowGridOptions.loading,getLoadMoreRowHasMore:()=>i.loadMoreRowGridOptions.hasMore,getLoadMoreRowGridSize:()=>i.gridSize,getLoadMoreRowLabels:()=>i.loadMoreRowGridOptions.labels,onLoadMore:()=>{i.eventBus.emit(`loadMore`,{})},getApi:()=>r.getApi()}),i.selectionOps=new WD({mountEl:i.mountEl,rowModel:i.rowModel,rowRenderer:i.rowRenderer,eventBus:i.eventBus,selectionService:i.selectionService,indexFocusService:i.indexFocusService,indexColumnOptions:i.indexColumnOptions,selectionColumnOptions:i.selectionColumnOptions,rowKey:n.rowKey,isTreeActive:()=>i.treeTableService.active,groupSelectsChildren:()=>i.rowSelectionOptions.groupSelectsChildren,applyCellRangeVisuals:()=>i.cellRangeOps.applyCellRangeVisuals()},lg(n.selectable),n.reserveSelection??!1,()=>({rowKey:n.rowKey,rowSelectionEnabled:i.selectionColumnOptions.enabled,getResolveContext:()=>Md(i.rowModel.getSourceRows(),n.rowKey,r.getApi())})),i.rowRenderer.setIsRowNodeSelectable(e=>i.selectionOps.isRowNodeSelectable(e)),i.rowHeightGridOptions={getRowHeight:n.getRowHeight,rowHeightMin:n.rowHeightMin,rowHeightMax:n.rowHeightMax},i.rowHeightService=new vv({getDisplayRows:()=>i.rowModel.rowsToDisplay,getRowById:e=>i.rowModel.resolveRowById(e),getAutoHeightColumnIds:()=>i.columnModel.getAutoHeightColumnIds(),repositionDisplayRows:()=>{i.rowModel.repositionDisplayRows({getRowHeight:i.rowHeightService.getPositionRowHeightFn()})},emitRowHeightChanged:e=>{i.eventBus.emit(`rowHeightChanged`,e),r.syncRowLayoutAfterRowHeightChange(e.rows)}},d,i.rowHeightGridOptions),i.rowModel.setPositionGetRowHeight(i.rowHeightService.getPositionRowHeightFn()),i.rowAutoHeightService=new wv({rowHeightService:i.rowHeightService,getRowById:e=>i.rowModel.getRowById(e),isColumnAutoHeight:e=>i.columnModel.isColumnAutoHeight(e),getAutoHeightColumnIds:()=>i.columnModel.getAutoHeightColumnIds()}),i.rowRenderer.setRowAutoHeightService(i.rowAutoHeightService),i.detailRowAutoHeightService=i.rowExpansionOptions.detailRowAutoHeight?new Ay({rowHeightService:i.rowHeightService,getRowById:e=>i.rowModel.resolveRowById(e),isEnabled:()=>i.rowExpansionOptions.detailRowAutoHeight,getMinDetailRowHeight:e=>te(i.rowExpansionOptions.detailRowHeight,{rowId:e.id,data:e.data,masterRowId:e.masterRowId??e.id})}):null,i.rowRenderer.setDetailRowAutoHeightService(i.detailRowAutoHeightService),i.gridFooter=new tk({columnModel:i.columnModel,columnViewport:i.columnViewport,rowModel:i.rowModel,frameService:i.frameService,valueCache:i.valueCache,summaryOptions:i.summaryOptions,getFooterRenderer:()=>i.footerRenderer}),i.filterOps=new FD({rowModel:i.rowModel,columnModel:i.columnModel,columnViewport:i.columnViewport,getViewport:()=>i.viewport,rowRenderer:i.rowRenderer,valueCache:i.valueCache,eventBus:i.eventBus,getFloatingFilterController:()=>i.floatingFilterController,applySelectionVisuals:()=>i.selectionOps.applySelectionVisuals(),refreshFooter:()=>i.gridFooter.refresh(),refreshCellSpans:()=>r.refreshCellSpanCache(),reconcileRowPoolAfterDisplayChange:()=>r.reconcileRowPoolAfterDisplayChange(),clearCellSelection:()=>i.cellRangeOps.clearCellSelectionOnStructuralChange(),refreshOverlay:()=>r.syncEmptyStateOverlay()});let x={};i.viewport=new AD({rootEl:b.rootEl,headerViewportEl:b.headerViewportEl,headerScrollEl:b.headerScrollEl,headerRowEl:b.headerRowEl,headerLeftLaneEl:b.headerLeftLaneEl,headerCenterLaneEl:b.headerCenterLaneEl,headerRightLaneEl:b.headerRightLaneEl,viewportEl:b.viewportEl,spacerEl:b.spacerEl,scrollPhantomEl:b.scrollPhantomEl,rowsLayerEl:b.rowsLayerEl,indexColumnFillHostEl:b.indexColumnFillHostEl,indexColumnFillEl:b.indexColumnFillEl,rowsContainerEl:b.rowsContainerEl,footerViewportEl:b.footerViewportEl,footerScrollEl:b.footerScrollEl,footerRowEl:b.footerRowEl,footerLeftLaneEl:b.footerLeftLaneEl,footerCenterLaneEl:b.footerCenterLaneEl,footerRightLaneEl:b.footerRightLaneEl,floatingFilterViewportEl:b.floatingFilterViewportEl,floatingFilterScrollEl:b.floatingFilterScrollEl,floatingFilterRowEl:b.floatingFilterRowEl,floatingFilterLeftLaneEl:b.floatingFilterLeftLaneEl,floatingFilterCenterLaneEl:b.floatingFilterCenterLaneEl,floatingFilterRightLaneEl:b.floatingFilterRightLaneEl,refreshFooter:()=>i.gridFooter.refresh(),refreshFloatingFilter:()=>i.filterOps.refreshFloatingFilter(),rowModel:i.rowModel,columnModel:i.columnModel,columnViewport:i.columnViewport,validationFeedback:i.validationFeedback,rowRenderer:i.rowRenderer,scrollBridge:i.scrollBridge,frameService:i.frameService,scrollRenderOptions:i.scrollRenderOptions,onScrollActivity:()=>{i.frameService.setScrollActive(!0),i.rowRenderer.setScrollActive(!0)},onScrollEndIdle:()=>{i.frameService.setScrollActive(!1),i.scrollRenderOptions.deferRowDestroyOnScroll&&i.rowRenderer.flushDeferredDestroys(),i.scrollRenderOptions.cellRendererPresentation===`placeholder-then-vue`&&i.rowRenderer.promoteRendererPlaceholders(),i.scrollRenderOptions.scrollEndFlushMs>0&&i.frameService.flushAllFrames(i.scrollRenderOptions.scrollEndFrameBudgetMs),i.rowRenderer.setScrollActive(!1)},getPinnedRowIds:()=>r.getPinnedRowIds(),selectionColumnOptions:i.selectionColumnOptions,showIndexColumn:i.indexColumnOptions.showIndexColumn,showUnsortedSortHintOnHover:()=>r.getShowUnsortedSortHintOnHover(),enableHeaderSortClick:()=>r.getEnableHeaderSortClick(),getDefaultRowHeight:()=>i.rowHeightService.getDefaultRowHeight(),headerHeight:n.headerHeight??or,isDestroyed:()=>i.destroyed,onEmitScrollEvent:(e,t)=>{i.eventBus.emit(e,t),e===`scrollBottom`&&i.infiniteDatasourceService&&i.infiniteDatasourceService.ensurePrefetchOnScrollBottom()},applySelectionVisuals:()=>i.selectionOps.applySelectionVisuals(),applyFocusVisuals:()=>r.applyFocusVisuals(),applyCellRangeVisuals:()=>i.cellRangeOps.applyCellRangeVisuals(),applyCellRangeScrollVisuals:()=>i.cellRangeOps.applyCellRangeScrollVisuals(),onHeaderRefresh:()=>i.columnHandleMenuController.onHeaderRefresh(),getTreeHeaderExpanded:()=>i.treeTableService.isAllExpandableNodesExpanded(),ensureInfiniteRowsLoaded:(e,t)=>{x.ensure?.(e,t)}}),G(i.rowModel)&&n.infiniteDatasource&&(i.infiniteDatasourceService=new fv({rowModel:i.rowModel,datasource:n.infiniteDatasource,options:i.resolvedInfiniteOptions,rowBuffer:n.rowBuffer??10,rowHeight:d,eventBus:i.eventBus,getApi:()=>i.api,getSortModel:()=>i.rowModel.getSortModel(),getFilterModel:()=>i.rowModel.getFilterModel(),onModelChanged:e=>{if(i.viewport.syncViewportHeight(),e?.replacedStubIds?.length)for(let t of e.replacedStubIds)i.rowRenderer.releaseRow(t);e?.refreshedRowIds?.length?i.rowRenderer.refreshRows({rowIds:[...e.refreshedRowIds],force:!0}):i.rowRenderer.invalidate(),i.viewport.redrawImmediately(),i.gridFooter.refresh(),r.syncEmptyStateOverlay()}}),x.ensure=(e,t)=>{i.infiniteDatasourceService.ensureBlocksForViewport(e,t)}),i.hierarchyOps=new ek({rowModel:i.rowModel,viewport:i.viewport,rowRenderer:i.rowRenderer,rowExpansionService:i.rowExpansionService,rowGroupingService:i.rowGroupingService,treeTableService:i.treeTableService,rowExpansionOptions:i.rowExpansionOptions,rowGroupingOptions:i.rowGroupingOptions,treeTableOptions:i.treeTableOptions,selectionOps:i.selectionOps,refreshCellSpanCache:()=>r.refreshCellSpanCache(),reconcileRowPoolAfterDisplayChange:()=>r.reconcileRowPoolAfterDisplayChange(),isCellSpanActive:()=>i.cellSpanService.active,applyRowDragPlan:(e,t)=>i.rowMutation.applyRowDragPlan(e,t),getRowDragCommitService:()=>i.rowDragCommitService,asyncRowMutation:i.asyncRowMutation});let S=e=>i.rowDataChangeTracker.record(e),C={beginUpdate:()=>r.beginUpdate(),endUpdate:()=>r.endUpdate()};i.cellEditing=new jC({mountEl:i.mountEl,viewportEl:b.viewportEl,rowModel:i.rowModel,columnModel:i.columnModel,editingService:i.editingService,rowEditingService:i.rowEditingService,editBehavior:p,editType:m,invalidEditValueMode:i.invalidEditValueMode,rowValidator:i.rowValidator,validationFeedback:i.validationFeedback,editorHost:i.editorHost,eventBus:i.eventBus,cellFocusService:i.cellFocusService,isDestroyed:()=>i.destroyed,getColIndex:e=>r.getColIndex(e),ensureIndexVisible:(e,t)=>r.ensureIndexVisible(e,t),ensureColumnVisible:e=>r.ensureColumnVisible(e),redrawImmediately:()=>i.viewport.redrawImmediately(),applyFocusVisuals:()=>r.applyFocusVisuals(),syncPinnedRows:()=>i.viewport.syncPinnedRows(),refreshCells:e=>r.refreshCells(e),applyTransaction:e=>r.commitTransaction(e),onTabChainEdit:e=>i.interaction.navigateEditableTab(e),getCellDisableContext:()=>r.getCellDisableContext(),cellEditorCacheService:i.cellEditorCacheService,enableCellEditorCache:i.cellEditorCacheOptions.enableCellEditorCache,recordRowDataChange:e=>i.rowDataChangeTracker.record(e),...C,...ik(i,r)});let w=new Sp({...ik(i,r),...C,eventBus:i.eventBus,applyTransaction:e=>r.commitTransaction(e),syncPinnedRows:()=>i.viewport.syncPinnedRows(),invalidEditValueMode:i.invalidEditValueMode,recordRowDataChange:S,onUnmountEditor:i.onUnmountEditor,byName:n.cellEditors?.byName,editorOptions:i.editorOptions});return i.inlineCellEditorService=w,i.rowRenderer.setInlineCellEditorContext(w.getRefreshContext()),i.rowRenderer.setOverlayEditingTargetsResolver(()=>i.cellEditing.getEditingCells().map(e=>({rowId:e.rowId,colId:e.colId}))),i.columnFlexService=new d_(i.columnModel),i.columnResizeService=new p_(i.columnModel,()=>{i.columnLayout.syncColumnLayoutAfterResize()},i.columnFlexService,()=>r.getCenterViewportWidth()),i.columnAutosizeService=new e_(i.mountEl,i.columnModel,l),i.columnLayout=new PD({mountEl:i.mountEl,rootEl:i.rootEl,columnModel:i.columnModel,columnViewport:i.columnViewport,columnResizeService:i.columnResizeService,columnAutosizeService:i.columnAutosizeService,columnFlexService:i.columnFlexService,viewport:i.viewport,rowRenderer:i.rowRenderer,footerRenderer:i.footerRenderer,eventBus:i.eventBus,isDestroyed:()=>i.destroyed,refreshColumnResizeVisualState:()=>i.interaction.refreshColumnResizeVisualState(),refreshFooter:()=>i.gridFooter.refresh(),refreshFloatingFilter:()=>i.filterOps.refreshFloatingFilter(),applyCellRangeVisuals:()=>i.cellRangeOps.applyCellRangeVisuals(),clearCellSelection:()=>i.cellRangeOps.clearCellSelectionOnStructuralChange(),syncColumnOrderVisuals:()=>{let e=i.cellFocusService.getFocusedCell();if(e&&!J(e)){let t=r.getColIndex(e.colId);t>=0&&t!==e.colIndex&&i.cellFocusService.setFocusedCell({...e,colIndex:t})}i.viewport.applyColumnStructureVisuals()}},s,c),i.columnLayout.syncColumnMovePresentationClasses(),i.viewport.setOnAfterRedraw(()=>{!i.destroyed&&!i.cellEditing.isEditing()&&i.cellEditing.syncValidationDom()}),i.cellCommentOptions=No(n),i.cellCommentService=new xx({getOptions:()=>r.getCellCommentOptions(),getRowKey:()=>n.rowKey,getRowNode:e=>i.rowModel.getRowById(e),getColumn:e=>i.columnModel.getColumnById(e)??void 0,getMountEl:()=>i.mountEl,onCommentChanged:e=>i.eventBus.emit(`cellCommentChanged`,e),onCommentsRefresh:e=>i.rowRenderer.syncVisibleCellCommentIndicators({rowIds:e?.rowIds?.map(e=>String(e)),colIds:e?.colIds})}),i.rowRenderer.setCellCommentHost(i.cellCommentService.createHost()),i.overflowTooltipOptions=wc(n),i.cellRangeOps=new $O({mountEl:i.mountEl,rowsLayerEl:i.rowsLayerEl,rowModel:i.rowModel,columnModel:i.columnModel,rowRenderer:i.rowRenderer,cellSpanService:i.cellSpanService,eventBus:i.eventBus,viewport:i.viewport,cellEditing:i.cellEditing,cellFocusService:i.cellFocusService,indexFocusService:i.indexFocusService,selectionService:i.selectionService,indexColumnOptions:i.indexColumnOptions,selectionColumnOptions:i.selectionColumnOptions,getCellRangeDeleteWriteService:()=>i.cellRangeDeleteWriteService,getCellClipboardService:()=>i.cellClipboardService,applyFocusVisuals:()=>r.applyFocusVisuals(),applyIndexFocusVisuals:()=>i.selectionOps.applyIndexFocusVisuals({syncToSelectionColumn:!1}),syncCellRangeFromIndexFocus:()=>i.interaction.syncCellRangeFromIndexFocus()},{cellSelection:n.cellSelection,enableCellCopy:n.enableCellCopy,enableCellPaste:n.enableCellPaste,enableHeaderHighlight:n.enableHeaderHighlight,enableIndexColumnHighlight:n.enableIndexColumnHighlight,processCellForClipboard:n.processCellForClipboard,processCellFromClipboard:n.processCellFromClipboard,processDataFromClipboard:n.processDataFromClipboard}),i.tooltipService=new FS,i.overflowTooltipSession=new AS({mountEl:i.mountEl,viewportEl:b.viewportEl,headerViewportEl:b.headerViewportEl,footerViewportEl:b.footerViewportEl??null,columnModel:i.columnModel,rowModel:i.rowModel,tooltipService:i.tooltipService,validationFeedback:i.validationFeedback,cellCommentService:()=>i.cellCommentService,getOptions:()=>r.getOverflowTooltipOptions(),getIndexColumnOptions:()=>i.indexColumnOptions,getApi:()=>r.getApi(),isEditing:()=>i.cellEditing.isEditing(),getEditingCell:()=>i.cellEditing.getEditingCell()}),i.emptyStateOptionsRaw={loading:n.loading,suppressOverlays:n.suppressOverlays,suppressLoadingOverlay:n.suppressLoadingOverlay,suppressNoRowsOverlay:n.suppressNoRowsOverlay,suppressNoMatchingRowsOverlay:n.suppressNoMatchingRowsOverlay,overlayLoadingTemplate:n.overlayLoadingTemplate,overlayNoRowsTemplate:n.overlayNoRowsTemplate,overlayNoMatchingRowsTemplate:n.overlayNoMatchingRowsTemplate,loadingOverlayComponent:n.loadingOverlayComponent,loadingOverlayComponentParams:n.loadingOverlayComponentParams,noRowsOverlayComponent:n.noRowsOverlayComponent,noRowsOverlayComponentParams:n.noRowsOverlayComponentParams,noMatchingRowsOverlayComponent:n.noMatchingRowsOverlayComponent,noMatchingRowsOverlayComponentParams:n.noMatchingRowsOverlayComponentParams,overlayComponent:n.overlayComponent,overlayComponentParams:n.overlayComponentParams,overlayInteraction:n.overlayInteraction},i.emptyStateGridOptions=Kc(i.emptyStateOptionsRaw),i.overlayService=new YS({getResolvedOptions:()=>r.getEmptyStateGridOptions(),getSourceRowCount:()=>i.rowModel.getSourceRows().length,getDisplayRows:()=>i.rowModel.rowsToDisplay,isAnyFilterActive:()=>i.filterOps.isAnyFilterActive(),getInfiniteVirtualRowCount:()=>G(i.rowModel)?i.rowModel.getRowCount():0,onOverlayChanged:(e,t)=>r.handleOverlayChanged(e,t),warn:e=>console.warn(e)}),i.overlayRenderer=new WS({overlayEl:b.overlayEl,wrapperEl:b.overlayWrapperEl,contentEl:b.overlayContentEl,getApi:()=>r.getApi(),getOverlayInteraction:()=>r.getEmptyStateGridOptions().overlayInteraction}),i.interaction=new oD({mountEl:i.mountEl,viewportEl:b.viewportEl,headerViewportEl:b.headerViewportEl,headerLeftLaneEl:b.headerLeftLaneEl,headerCenterLaneEl:b.headerCenterLaneEl,headerRightLaneEl:b.headerRightLaneEl,rowModel:i.rowModel,columnModel:i.columnModel,rowRenderer:i.rowRenderer,eventBus:i.eventBus,cellFocusService:i.cellFocusService,selectionService:i.selectionService,indexFocusService:i.indexFocusService,indexColumnOptions:i.indexColumnOptions,columnDragController:i.columnDragController,columnHandleMenuController:i.columnHandleMenuController,editBehavior:p,editType:m,isEditing:()=>i.cellEditing.isEditing(),getEditingCell:()=>i.cellEditing.getEditingCell(),getEditingRowId:()=>i.cellEditing.getEditingRowId(),focusRowEditingColumn:e=>i.cellEditing.focusRowEditingColumn(e),isCommitting:()=>r.isCommitting(),awaitCommitIdle:()=>r.awaitCommitIdle(),commitEditing:()=>i.cellEditing.stopEditing(!1).then(()=>void 0),cancelCommit:()=>r.cancelCommit(),ensureIndexVisible:(e,t)=>r.ensureIndexVisible(e,t),ensureColumnVisible:e=>r.ensureColumnVisible(e),getLogicalScrollTop:()=>i.viewport.getLogicalScrollTop(),scrollByDelta:e=>i.viewport.scrollByDelta(e),scrollByHorizontalDelta:e=>i.viewport.scrollByHorizontalDelta(e),getRowHeight:()=>i.rowHeightService.getDefaultRowHeight(),redrawImmediately:()=>i.viewport.redrawImmediately(),tryStartCellEditing:e=>i.cellEditing.tryStartCellEditing(e),tryStartRowEditing:e=>i.cellEditing.tryStartRowEditing(e),applyIndexFocusVisuals:e=>i.selectionOps.applyIndexFocusVisuals(e),applySelectionVisuals:()=>i.selectionOps.applySelectionVisuals(),handleInteractiveRowSelection:(e,t)=>i.selectionOps.handleInteractiveRowSelection(e,t),isRowNodeSelectable:e=>i.selectionOps.isRowNodeSelectable(e),getSelectableRowIdAt:e=>i.selectionOps.getSelectableRowIdAt(e),showSummary:()=>i.summaryOptions.showSummary,navigateHeader:()=>i.chromeNavigationOptions.navigateHeader,navigateFooter:()=>i.chromeNavigationOptions.navigateFooter,toggleHeaderSort:e=>i.headerSortService.toggleSort(e),enableHeaderSortClick:()=>r.getEnableHeaderSortClick(),moveColumn:(e,t,n,i)=>r.moveColumn(e,t,n,i),finishColumnMove:e=>r.finishColumnMove(e),suppressMoveWhenColumnDragging:()=>i.columnLayout.columnMoveOptions.suppressMoveWhenColumnDragging,setColumnMoveLiveDragging:e=>r.setColumnMoveLiveDragging(e),allowCrossLaneColumnMove:()=>i.columnLayout.columnMoveOptions.allowCrossLaneColumnMove,setColumnWidths:(e,t,n)=>i.columnLayout.applyColumnWidths(e,t,n,`uiColumnResized`),autoSizeColumn:(e,t)=>i.columnLayout.autoSizeColumn(e,void 0,t??`uiColumnResized`),resizeHeaderColumn:(e,t,n)=>i.columnLayout.resizeHeaderColumn(e,t,n),setRowHeights:(e,t)=>i.rowHeightService.setRowHeights(e,{finished:t,source:`uiRowResized`}),rowDragManaged:i.rowDragOptions.rowDragManaged,deferRowDragCommit:!!i.asyncRowMutation?.move,cellSpanService:i.cellSpanService,hasSortOrFilterActive:()=>i.rowModel.getSortModel().length>0||r.isAnyFilterActive(),isRowDragHandleEnabled:e=>r.isRowDragHandleEnabled(e),moveRow:(e,t)=>i.rowMutation.moveRowSync(e,t),moveRows:(e,t)=>i.rowMutation.moveRowsSync(e,t),finishRowMove:e=>i.rowMutation.finishRowMove(e),finishRowMoves:(e,t,n,r)=>i.rowMutation.finishRowMoves(e,`uiRowDrag`,{startSourceIndices:t,startTreePositions:r,displayIndex:n,resolveTreeDrop:i.treeTableService.active?e=>q(i.rowModel.getSourceRows(),e)??void 0:void 0}),isIndexFocusMultiple:()=>i.indexFocusService?.isMultiple()??!1,getIndexFocusedRowIds:()=>i.indexFocusService?.getFocusedRowIds()??[],setRowMoveLiveDragging:e=>r.setRowMoveLiveDragging(e),emitRowDragEnd:e=>{i.eventBus.emit(`rowDragEnd`,e)},isRowDragCommitting:()=>i.rowDragCommitService?.isCommitting()??!1,buildPlanRowDragMoveOptions:e=>r.buildPlanRowDragMoveOptions(e),planRowDragMove:e=>Qb(e),commitDeferredRowDrag:e=>i.rowDragCommitService.commit(e),rowExpansionService:i.rowExpansionOptions.masterDetail?i.rowExpansionService:null,rowGroupingService:i.rowGroupingOptions.rowGrouping?i.rowGroupingService:null,treeTableService:i.treeTableService.active?i.treeTableService:null,requestTreeNodeToggle:(e,t)=>i.treeTableService.requestToggleNode(e,t),isTreeNodeExpandable:e=>i.treeTableService.isNodeExpandable(e),isRowGroupingActive:()=>i.rowGroupingService.active,isTreeActive:()=>i.treeTableService.active,getTreeDragScope:()=>i.treeTableOptions.treeDragScope,validateGroupedDisplayDrop:(e,t)=>{if(!i.rowGroupingService.active)return!0;let n=$u(i.rowModel.getSourceRows(),e);return n===`mixed`||n===`missing`?!1:n===null||ad(i.rowModel.rowsToDisplay,e=>i.rowModel.getRowById(e),e,t,n)},validateTreeDisplayDrop:(e,t,n)=>{if(!i.treeTableService.active)return!0;let r=i.rowModel.getSourceRows(),a=e=>i.rowModel.getRowById(e);if(i.treeTableOptions.treeDragScope===`hierarchy`){let o=i.treeTableOptions.getDataPath;return o?ub(r,i.rowModel.rowsToDisplay,a,e,t,o,tb(n?.nestUnderRowId)):!1}let o=ld(r,e);return o===`mixed`||o===`missing`?!1:md(i.rowModel.rowsToDisplay,a,e,t,o)},resolveTreeRowDragEndContext:(e,t,n,r)=>{if(!i.treeTableService.active||!r||t<0)return;if(i.rowDragOptions.rowDragManaged)return q(i.rowModel.getSourceRows(),e)??void 0;let a=i.treeTableOptions.getDataPath;if(a)return db({sourceRows:i.rowModel.getSourceRows(),displayRows:i.rowModel.rowsToDisplay,rowIds:[e],insertIndex:t,nestUnderRowId:n,treeDragScope:i.treeTableOptions.treeDragScope,getDataPath:a})??void 0},cellCommentService:()=>i.cellCommentService,getCellCommentOptions:()=>r.getCellCommentOptions(),overflowTooltipSession:i.overflowTooltipSession,getCellDisableContext:()=>r.getCellDisableContext(),getCellRangeService:()=>i.cellRangeOps.getCellRangeService(),isCellSelectionEnabled:()=>i.cellRangeOps.isCellSelectionEnabled(),getCellSelectionOptions:()=>i.cellRangeOps.getCellSelectionOptions(),getFillWriteService:()=>i.cellRangeFillWriteService,getCellRangeOperationContext:()=>i.cellRangeOps.getCellRangeOperationContext(),applyCellRangeVisuals:()=>i.cellRangeOps.applyCellRangeVisuals(),clearCellSelection:()=>i.cellRangeOps.clearCellSelection(),emitCellSelectionChanged:e=>i.cellRangeOps.emitCellSelectionChanged(e),handleCellSelectionDeleteKey:()=>void i.cellRangeOps.handleCellSelectionDeleteKey(),copyCellSelectionToClipboard:()=>i.cellRangeOps.copySelectedRangeToClipboard(),pasteCellSelectionFromClipboard:()=>i.cellRangeOps.pasteFromClipboard(),isPointerOverCellCommentIndicator:(e,t,n)=>ux(e,t,n),applyTreeHierarchyShortcut:(e,t)=>r.applyTreeHierarchyShortcut(e,t),toggleTreeHierarchyMenu:(e,t)=>{let n=i.hierarchyOps.resolveTreeHierarchyMenuActions(e);i.treeHierarchyMenuController.toggle(e,t,n)},closeTreeHierarchyMenu:()=>i.treeHierarchyMenuController.close()}),i.rowMutation=new SO({rowKey:n.rowKey,asyncRowMutation:i.asyncRowMutation,rowModel:i.rowModel,rowRenderer:i.rowRenderer,viewport:i.viewport,valueCache:i.valueCache,frameService:i.frameService,changeDetection:i.changeDetection,eventBus:i.eventBus,cellFocusService:i.cellFocusService,validationFeedback:i.validationFeedback,mountEl:i.mountEl,cellEditing:i.cellEditing,filterOps:i.filterOps,selectionOps:i.selectionOps,ensureIndexVisible:(e,t)=>r.ensureIndexVisible(e,t),applyFocusVisuals:()=>r.applyFocusVisuals(),refreshFooter:()=>i.gridFooter.refresh(),refreshCellSpans:()=>r.refreshCellSpanCache(),reconcileRowPoolAfterDisplayChange:()=>r.reconcileRowPoolAfterDisplayChange(),refreshOverlay:()=>r.syncEmptyStateOverlay(),beginRowOrderVisualCapture:()=>i.cellRangeOps.beginRowOrderVisualCapture(),finishRowOrderVisualSync:()=>i.cellRangeOps.finishRowOrderVisualSync(),setAsyncMutationLoading:(e,t)=>i.rowRenderer.setAsyncMutationLoading(e,t),isCellSpanActive:()=>i.cellSpanService.active,isEditingTargetRow:e=>r.isEditingTargetRow(e),clearCellEditorCacheForRemovedRows:e=>r.clearCellEditorCacheForRemovedRows(e),clearCellStyleOverridesForRemovedRows:e=>r.clearCellStyleOverridesForRemovedRows(e),migrateCellEditorCacheOnPromoteRowId:(e,t)=>i.cellEditorCacheService.promoteRowId(e,t),isRowGroupingActive:()=>i.rowGroupingService.active,getGroupInsertDeps:()=>i.rowGroupingService.active?{rowGroupColumns:i.rowGroupingService.getRowGroupColumns(),getColumnField:e=>i.columnModel.getColumnById(e)?.prop??e,getGroupedTreeRoots:()=>i.rowModel.getGroupedTreeRoots()}:null,expandGroups:e=>i.hierarchyOps.expandGroupsInPath(e),isTreeActive:()=>i.treeTableService.active,getTreeDragScope:()=>i.treeTableOptions.treeDragScope,getDataPath:()=>i.treeTableOptions.getDataPath,setDataPath:()=>i.treeTableOptions.setDataPath,rowDataChangeTracker:i.rowDataChangeTracker,buildRowSnapshot:e=>Lu(e,nk(i)),resolveColIdByField:e=>i.columnModel.getColumns().find(t=>t.prop===e)?.colId}),i.cellRangeFillWriteService=new oS({...ik(i,r),rowModel:i.rowModel,columnModel:i.columnModel,eventBus:i.eventBus,getCellDisableContext:()=>r.getCellDisableContext(),applyTransaction:e=>r.commitTransaction(e),refreshCells:e=>r.refreshCells(e),recordRowDataChange:S,...C}),i.cellRangeDeleteWriteService=new sS({...ik(i,r),rowModel:i.rowModel,columnModel:i.columnModel,eventBus:i.eventBus,getCellDisableContext:()=>r.getCellDisableContext(),applyTransaction:e=>r.commitTransaction(e),refreshCells:e=>r.refreshCells(e),recordRowDataChange:S,...C}),i.cellClipboardService=new Gx({...ik(i,r),rowModel:i.rowModel,columnModel:i.columnModel,eventBus:i.eventBus,cellFocusService:i.cellFocusService,getCellRangeService:()=>i.cellRangeOps.getCellRangeService(),getCellRangeOperationContext:()=>i.cellRangeOps.getCellRangeOperationContext(),getCellSelectionOptions:()=>i.cellRangeOps.getCellSelectionOptions(),getIndexColumnOptions:()=>i.indexColumnOptions,getCellDisableContext:()=>r.getCellDisableContext(),applyTransaction:e=>r.commitTransaction(e),refreshCells:e=>r.refreshCells(e),recordRowDataChange:S,...C,isEditing:()=>i.cellEditing.isEditing(),stopEditing:e=>i.cellEditing.stopEditing(e).then(()=>void 0),onCopyVisualFeedback:()=>i.cellRangeOps.playCellRangeCopyFlash(),onPasteVisualFeedback:e=>i.cellRangeOps.playCellRangePasteFlash(e),getCellClipboardOptions:()=>i.cellRangeOps.getCellClipboardOptions(),getCellSpanService:()=>i.cellSpanService,getCellClipboardDisplayContext:()=>({getRowGroupingHost:()=>({active:()=>i.rowGroupingService.active,isExpanded:e=>i.rowGroupingService.isExpanded(e),getGroupFooterLabel:()=>i.rowGroupingOptions.groupFooterLabel}),getTreeTableHost:()=>({active:()=>i.treeTableService.active,isExpanded:e=>i.treeTableService.isExpanded(e),getTreeValue:e=>i.treeTableService.getTreeDisplayValue(e),isTreeNodeExpandable:e=>i.treeTableService.isNodeExpandable(e),isTreeNodeLoading:e=>i.treeTableService.isNodeLoading(e),getTreeHierarchyActions:e=>i.hierarchyOps.resolveTreeHierarchyActions(e)})})}),i.treeTableOptions.treeLazyLoad&&typeof i.treeTableOptions.loadTreeChildren==`function`&&(i.treeLazyLoadService=new Uy({getOptions:()=>i.treeTableOptions,rowKey:n.rowKey,getDataPath:()=>i.treeTableOptions.getDataPath,getNodeById:e=>i.rowModel.getRowById(e),getExistingRowKeys:()=>{let e=new Set;for(let t of i.rowModel.getSourceRows()){e.add(t.id);let r=t.data[n.rowKey];r!=null&&r!==``&&e.add(String(r))}return e},applyTransaction:e=>{r.commitTransaction(e)},onLoading:e=>{i.eventBus.emit(`treeChildrenLoading`,e),i.hierarchyOps.refreshTreeLoadingVisuals(String(e.parentRowId))},onLoaded:e=>{i.eventBus.emit(`treeChildrenLoaded`,e),i.hierarchyOps.refreshTreeLoadingVisuals(String(e.parentRowId))},onLoadFailed:e=>{i.eventBus.emit(`treeChildrenLoadFailed`,e),i.hierarchyOps.refreshTreeLoadingVisuals(String(e.parentRowId))},onStateChanged:()=>{i.hierarchyOps.refreshTreeLoadingVisuals()}})),i.rowDragCommitService=new $b({persistMove:()=>{if(i.asyncRowMutation?.move)return e=>sx(e,{handlers:i.asyncRowMutation,getRowById:e=>i.rowModel.getRowById(e)})},applyPlan:e=>i.rowMutation.applyRowDragPlan(e),emitStarted:e=>{i.eventBus.emit(`rowDragCommitStarted`,e)},emitFinished:e=>{i.eventBus.emit(`rowDragCommitFinished`,e)},emitRowDragEnd:e=>{i.eventBus.emit(`rowDragEnd`,e)},setCommittingVisual:e=>r.setRowDragCommittingVisual(e)}),{ctx:i,dom:b,finalize:(e,t)=>{i.viewport.syncHorizontalLayout(),t.refreshFlexedColumnsOnViewportChange(!1),t.scheduleAutoSizeStrategy(),i.frameService.setScrollGridIfNeeded(()=>i.viewport.scrollGridIfNeeded()),t.refreshCellSpanCache(),i.rowRenderer.setValueCacheVersion(i.valueCache.getVersion()),i.viewport.redrawImmediately(),i.floatingFilterController&&i.filterOps.refreshFloatingFilter(),i.api=Id(e),i.cellCommentService.init(i.api),i.viewport.bindScrollListener(),i.interaction.bindListeners(),i.resizeObserver=new ResizeObserver(()=>{i.viewport.syncViewportHeight(),t.refreshFlexedColumnsOnViewportChange(!0),i.viewport.redrawImmediately(),t.syncEmptyStateOverlay()}),i.resizeObserver.observe(b.viewportEl),t.syncEmptyStateOverlay(),i.infiniteDatasourceService&&(i.infiniteDatasourceService.init(),i.infiniteDatasourceService.loadInitialBlocks())}}}function ok(e){return e?.rowIds?{...e,rowIds:t.g(e.rowIds)}:e}function sk(e){return{...e,rowIds:t.g(e.rowIds)}}function ck(e){return{...e,cells:e.cells.map(e=>({...e,rowId:t.m(e.rowId)}))}}function lk(e){return e?.rowIds?{...e,rowIds:t.g(e.rowIds)}:e}function uk(e){return{...e,rowIds:t.g(e.rowIds)}}function dk(e){return{...e,cells:e.cells.map(e=>({...e,rowId:t.m(e.rowId)}))}}function fk(e){return e>=1e6?2e3:e>=1e5?500:e>=1e4?200:e>=1e3?100:50}function pk(e){return{maxDomRows:80,maxSetDataMs:fk(e)}}function mk(e,t){let n=pk(t),r=e.activeDomRowCount<=n.maxDomRows,i=e.lastSetDataMs<=n.maxSetDataMs;return{domRowsPass:r,setDataPass:i,allPass:r&&i}}var hk=class{mountEl;rowModel;rowRenderer;frameService;columnViewport;rootEl;columnModel;valueCache;changeDetection;eventBus;rowKey;businessRowIdCtx;selectionService;indexFocusService;editingService;rowEditingService;cellFocusService;api;viewport;columnDragController;columnHandleMenuController;treeHierarchyMenuController;interaction;cellEditing;inlineCellEditorService;validationFeedback;cellRenderersByColId;cellEditorsByColId;summaryOptions;indexColumnOptions;selectionColumnOptions;filterGridOptions;showUnsortedSortHintOnHover;columnSortOptions;resolvedSummaryRowHeight;footerRenderer=null;floatingFilterController=null;lastSetDataMs=0;columnAutosizeService;columnFlexService;columnLayout;rowHeightService;rowAutoHeightService;rowDragOptions;rowDragCommitService;cellEditorCacheService;cellSpanService;rowExpansionOptions;rowExpansionService;rowGroupingOptions;rowGroupingService;treeTableOptions;treeTableService;treeLazyLoadService=null;infiniteDatasourceService=null;userColumns;detailRowAutoHeightService;cellCommentOptions;cellCommentService;overflowTooltipOptions;overflowTooltipSession;emptyStateGridOptions;emptyStateOptionsRaw={};loadMoreRowGridOptions;loadMoreRowOptionsRaw={};gridSize;overlayService;overlayRenderer;cellRangeOps;hierarchyOps;cellDisableContext;cellStyleContext;cellStyleOverrideService;rowHeightGridOptions;filterOps;selectionOps;rowMutation;gridFooter;resizeObserver=null;centerViewportWidth;autoSizeCellContentsPending;destroyed;suppressRowLayoutViewportSync;preserveScrollOnSetData;constructor(e,t){let n=this.createBootstrapHost(),r=ak(e,t,n);Object.assign(this,r.ctx),r.finalize(this,n),Object.assign(this,r.ctx)}createBootstrapHost(){let e=this;return{setSortModel:t=>e.setSortModel(t),getFilterModel:()=>e.getFilterModel(),setFilterModel:t=>e.setFilterModel(t),setColumnFixed:(t,n,r)=>e.setColumnFixed(t,n,r),getColumnDistinctFilterValues:t=>e.getColumnDistinctFilterValues(t),applyTreeHierarchyShortcut:(t,n)=>e.applyTreeHierarchyShortcut(t,n),beginUpdate:()=>e.beginUpdate(),endUpdate:()=>e.endUpdate(),commitTransaction:t=>e.commitTransaction(t),ensureIndexVisible:(t,n)=>e.ensureIndexVisible(t,n),ensureColumnVisible:t=>e.ensureColumnVisible(t),applyFocusVisuals:()=>e.applyFocusVisuals(),refreshCells:t=>e.refreshCells(t),getApi:()=>e.getApi(),getCellDisableContext:()=>e.getCellDisableContext(),getCellStyleContext:()=>e.getCellStyleContext(),getColIndex:t=>e.getColIndex(t),getPinnedRowIds:()=>e.getPinnedRowIds(),getCenterViewportWidth:()=>e.getCenterViewportWidth(),moveColumn:(t,n,r,i)=>e.moveColumn(t,n,r,i),finishColumnMove:t=>e.finishColumnMove(t),setColumnMoveLiveDragging:t=>e.setColumnMoveLiveDragging(t),setRowMoveLiveDragging:t=>e.setRowMoveLiveDragging(t),isAnyFilterActive:()=>e.isAnyFilterActive(),isCommitting:()=>e.isCommitting(),awaitCommitIdle:()=>e.awaitCommitIdle(),cancelCommit:()=>e.cancelCommit(),isEditingTargetRow:t=>e.isEditingTargetRow(t),clearCellEditorCacheForRemovedRows:t=>e.clearCellEditorCacheForRemovedRows(t),clearCellStyleOverridesForRemovedRows:t=>e.clearCellStyleOverridesForRemovedRows(t),refreshCellSpanCache:()=>e.refreshCellSpanCache(),reconcileRowPoolAfterDisplayChange:()=>e.reconcileRowPoolAfterDisplayChange(),syncEmptyStateOverlay:()=>e.syncEmptyStateOverlay(),handleOverlayChanged:(t,n)=>e.handleOverlayChanged(t,n),refreshFlexedColumnsOnViewportChange:t=>e.refreshFlexedColumnsOnViewportChange(t),scheduleAutoSizeStrategy:()=>e.scheduleAutoSizeStrategy(),setRowDragCommittingVisual:t=>e.setRowDragCommittingVisual(t),buildPlanRowDragMoveOptions:t=>e.buildPlanRowDragMoveOptions(t),isRowDragHandleEnabled:t=>e.isRowDragHandleEnabled(t),syncRowLayoutAfterRowHeightChange:t=>e.syncRowLayoutAfterRowHeightChange(t),getResolveDisplayRowContext:()=>e.getResolveDisplayRowContext(),getShowUnsortedSortHintOnHover:()=>e.showUnsortedSortHintOnHover,getEnableHeaderSortClick:()=>e.getEnableHeaderSortClick(),getEmptyStateGridOptions:()=>e.emptyStateGridOptions,getCellCommentOptions:()=>e.cellCommentOptions,getOverflowTooltipOptions:()=>e.overflowTooltipOptions}}getApi(){return this.api}setSelectable(e){this.selectionOps.setSelectable(e)}getCellDisableContext(){return this.cellDisableContext}getCellStyleContext(){return this.cellStyleContext}setIsRowDisabled(e){this.cellDisableContext=bt(this.cellDisableContext,e),this.rowRenderer.setGetCellDisableContext(()=>this.getCellDisableContext()),this.refreshDisabledState()}setRowStyle(e){this.cellStyleContext={...this.cellStyleContext,rowStyle:e},this.rowRenderer.setGetCellStyleContext(()=>this.getCellStyleContext()),this.refreshCellStyles()}setEditableCellStyle(e){this.cellStyleContext={...this.cellStyleContext,editableCellStyle:e},this.rowRenderer.setGetCellStyleContext(()=>this.getCellStyleContext()),this.refreshCellStyles()}setShowEditableCellIcon(e){this.cellStyleContext={...this.cellStyleContext,showEditableCellIcon:e},this.rowRenderer.setGetCellStyleContext(()=>this.getCellStyleContext()),this.refreshCellStyles()}setDisabledCellStyle(e){this.cellStyleContext={...this.cellStyleContext,disabledCellStyle:e},this.rowRenderer.setGetCellStyleContext(()=>this.getCellStyleContext()),this.refreshCellStyles()}setShowDisabledCellIcon(e){this.cellStyleContext={...this.cellStyleContext,showDisabledCellIcon:e},this.rowRenderer.setGetCellStyleContext(()=>this.getCellStyleContext()),this.refreshCellStyles()}refreshDisabledState(e){this.refreshCells({rowIds:e?.rowIds?.map(e=>String(e)),colIds:e?.colIds?[...e.colIds]:void 0,force:!0})}refreshCellStyles(e){this.refreshCells({rowIds:e?.rowIds?.map(e=>String(e)),colIds:e?.colIds?[...e.colIds]:void 0,force:!0})}setCellStyle(e,n,r){let i=t.m(e),a=this.rowModel.getRowById(i),o=this.columnModel.getColumnById(n);if(!a){Et(i,n,`row not found`);return}if(!o){Et(i,n,`column not found`);return}if(!kt(o,a)){Et(i,n,`cell is not style-eligible`);return}let s=!1;if(r===null)s=this.cellStyleOverrideService.delete(i,n);else if(Tt(r)){Et(i,n,`style must include backgroundColor or color`);return}else s=this.cellStyleOverrideService.set(i,n,r);s&&this.refreshCellStyles({rowIds:[i],colIds:[n]})}getCellStyle(e,n){let r=t.m(e),i=this.rowModel.getRowById(r),a=this.columnModel.getColumnById(n);return!i||!a?{}:Ln(a,i,this.getCellStyleContext())}getCellStyleOverride(e,n){return this.cellStyleOverrideService.get(t.m(e),n)}clearCellStyles(e){this.cellStyleOverrideService.clear(e),this.refreshCellStyles(e)}setReserveSelection(e){this.selectionOps.setReserveSelection(e)}setPreserveScrollOnSetData(e){this.preserveScrollOnSetData=e}setColumnMoveOptions(e){this.columnLayout.setColumnMoveOptions(e)}setColumnResizeOptions(e){this.columnLayout.setColumnResizeOptions(e)}setColumnSortOptions(e){if(e.sortable===void 0&&e.enableHeaderSortClick===void 0)return;let t=this.columnSortOptions.sortable,n=this.columnSortOptions.enableHeaderSortClick;this.columnSortOptions=Qi({...this.columnSortOptions,...e});let r=e.sortable!==void 0&&e.sortable!==t,i=e.enableHeaderSortClick!==void 0&&e.enableHeaderSortClick!==n;r&&this.columnModel.setColumnSortGridOptions(this.columnSortOptions),(r||i)&&this.viewport.refreshHeader()}getEnableHeaderSortClick(){return this.columnSortOptions.enableHeaderSortClick}setColumnFilterOptions(e){if(e.filterable===void 0)return;let t=this.filterGridOptions.filterable;this.filterGridOptions=ca({...this.filterGridOptions,filterable:e.filterable}),e.filterable!==t&&(this.columnModel.setColumnFilterGridOptions(this.filterGridOptions),this.viewport.refreshHeader(),this.filterOps.refreshFloatingFilter())}setColumnAutosizeOptions(e){let t=Eu(e);this.columnAutosizeService.setAutosizeOptions(t)}autoSizeColumn(e,t){this.columnLayout.autoSizeColumn(e,t,`autosizeColumns`)}autoSizeColumns(e,t){this.columnLayout.autoSizeColumns(e,t,`autosizeColumns`)}sizeColumnsToFit(e){this.columnLayout.sizeColumnsToFit(e)}setColumnWidths(e,t=!0,n=`api`){this.columnLayout.setColumnWidths(e,t,n)}setColumnWidth(e,t,n=!0,r=`api`){this.columnLayout.setColumnWidth(e,t,n,r)}getColumnWidth(e){return this.columnLayout.getColumnWidth(e)}setShowUnsortedSortHintOnHover(e){this.showUnsortedSortHintOnHover=e,this.viewport.refreshHeader()}toggleRowSelection(e,t,n){this.selectionOps.toggleRowSelection(e,t,n)}setIndexFocus(e,t){this.selectionOps.setIndexFocus(e,t),this.cellRangeOps.isCellSelectionEnabled()&&this.indexColumnOptions.showIndexColumn&&this.interaction.syncCellRangeFromIndexFocus()}toggleAllSelection(e){this.selectionOps.toggleAllSelection(e)}clearRowSelection(e){this.selectionOps.clearRowSelection(e)}setDefaultSelectedRows(e,t){this.selectionOps.setDefaultSelectedRows(e,t??{})}clearPendingDefaultSelectedRows(){this.selectionOps.clearPendingDefaultSelectedRows()}reconcileDefaultSelectedRows(){this.selectionOps.reconcilePendingDefaultSelectedRows(),this.selectionOps.flushPendingPresetTransientSelectionNotify()}getSelectedRowIds(){return this.selectionService?t.O(this.selectionService.getSelectedRowIds(),this.businessRowIdCtx):[]}getSelectedRows(){return this.selectionService?t.v(this.selectionService.getSelectedRowIds(),this.businessRowIdCtx):[]}async removeSelectedRows(e={}){if(!this.selectionService)return{add:[],remove:[],update:[]};let t=(e.scope??`all`)===`all`?[...this.selectionService.getSelectedRowIds()]:this.selectionService.getSelectedRowIds().filter(e=>this.rowModel.rowsToDisplay.some(t=>t.id===e));return t.length===0?{add:[],remove:[],update:[]}:(K(this.rowModel,`removeSelectedRows`),this.rowMutation.removeRows({rowIds:t}))}getIndexFocusedRowIds(e){return this.indexFocusService?t.x(this.getIndexFocusedRows(e),{mode:`all`}):[]}getIndexFocusedRows(e){return this.indexFocusService?t._(this.indexFocusService.getFocusedRowIds(),this.businessRowIdCtx,e):[]}isRowNodeSelectable(e){return this.selectionOps.isRowNodeSelectable(e)}getSelectableRowIdAt(e){return this.selectionOps.getSelectableRowIdAt(e)}getSummaryOptions(){return{...this.summaryOptions,summaryRowHeight:this.resolvedSummaryRowHeight}}getIndexColumnOptions(){return this.indexColumnOptions}getSelectionColumnOptions(){return this.selectionColumnOptions}on(e,t){return this.eventBus.on(e,t)}emitGridLifecycleEvent(e,t){this.destroyed||this.eventBus.emit(e,t)}getRowNode(e){return this.rowModel.getRowById(t.m(e))}getSiblingRowsByRowId(e,t){return Vu(e,t,this.getResolveDisplayRowContext())}getSiblingRowByIterator(e,t){return Hu(e,t,this.getResolveDisplayRowContext())}getRowKind(e){return kd(e,this.getResolveDisplayRowContext())}getRowIndex(e,t){return Ed(e,this.getResolveRowIndexContext(),t)}getRowIndexes(e,t){return Dd(e,this.getResolveRowIndexContext(),t)}getRowByIndex(e){return Wu(e,this.getResolveDisplayRowContext())}getRowsByIndexes(e){return Gu(e,this.getResolveDisplayRowContext())}getRowSnapshots(e){return Ku(this.getResolveDisplayRowContext(),e)}getRowIds(e){return qu(this.getResolveDisplayRowContext(),e)}getResolveDisplayRowContext(){return nk({rowKey:this.rowKey,rowModel:this.rowModel})}getResolveRowIndexContext(){return{...this.getResolveDisplayRowContext(),sourceRows:this.rowModel.getSourceRows(),hasSortOrFilter:this.rowModel.getSortModel().length>0||Object.keys(this.rowModel.getFilterModel()).length>0}}ensureIndexVisible(e,t=`middle`){G(this.rowModel)&&this.infiniteDatasourceService?.ensureBlocksForRange(e,e),this.viewport.ensureIndexVisible(e,t)}ensureColumnVisible(e){this.viewport.ensureColumnVisible(e)}setData(e){K(this.rowModel,`setData`);let t=this.preserveScrollOnSetData,n=t?this.viewport.getLogicalScrollTop():0,r=t?this.viewport.viewportEl.scrollLeft:0,i=performance.now(),a=this.selectionOps.reserveSelection&&this.selectionService?this.selectionService.getSelectedRowIds():null,o=(this.selectionService?.getSelectedRowIds().length??0)>0;this.selectionOps.reserveSelection||this.selectionService?.clear(),this.indexFocusService?.clear(),this.cellFocusService.clear(),this.validationFeedback.clear(this.mountEl),this.cellEditing.syncValidationHeaderDom(),this.treeLazyLoadService?.reset(),this.cellStyleOverrideService.clear();let s=new Set(this.rowModel.getSourceRows().map(e=>e.id));this.rowModel.setData(e);let c=new Set(this.rowModel.getSourceRows().map(e=>e.id)),l=[...s].filter(e=>!c.has(e));l.length>0&&(this.clearCellEditorCacheForRemovedRows(l),this.clearCellStyleOverridesForRemovedRows(l));let u=this.selectionOps.reconcileSelectionAfterSetData(a,o);t||this.viewport.resetScrollOnSetData(),this.viewport.syncViewportHeight(),this.valueCache.bump(),this.refreshCellSpanCache(),this.reconcileRowPoolAfterDisplayChange(c),t?this.viewport.scrollTo(n,r):this.viewport.scrollTo(0,0),this.selectionOps.applySelectionVisuals(),this.selectionOps.applyIndexFocusVisuals({syncToSelectionColumn:!1}),this.selectionOps.reconcilePendingDefaultSelectedRows(),this.applyFocusVisuals(),this.lastSetDataMs=performance.now()-i,this.viewport.scheduleCompressedSetDataRedraw(()=>{this.viewport.syncViewportHeight(),this.viewport.redrawImmediately(),t&&this.viewport.scrollTo(n,r),this.gridFooter.refresh()}),this.gridFooter.refresh(),this.maybeApplyFitCellContentsStrategy(e.length),u&&this.selectionService&&this.eventBus.emit(`selectionChanged`,{selectedRowIds:this.selectionService.getSelectedRowIds(),source:`api`}),this.overlayService.markRowDataReady(),this.syncEmptyStateOverlay()}setColumns(e){this.userColumns=[...e],this.userColumns,rt(this.userColumns),this.rowGroupingService.syncRowGroupColumnsFromDefs(),this.columnModel.setColumns(Un(this.userColumns,this.indexColumnOptions,this.selectionColumnOptions,{rowExpansion:this.rowExpansionOptions,rowGrouping:this.rowGroupingService.active?this.rowGroupingOptions:void 0,treeTable:this.treeTableService.active?this.treeTableOptions:void 0}),this.cellRenderersByColId,this.cellEditorsByColId,void 0,this.columnLayout.columnMoveOptions,this.columnLayout.columnResizeOptions,this.columnSortOptions,this.filterGridOptions),this.overflowTooltipSession.close(),this.refreshCellSpanCache(),this.columnLayout.syncAfterColumnStructureChange(),this.syncEmptyStateOverlay()}getCenterViewportWidth(){let e=this.mountEl.querySelector(`.mg-viewport`)?.clientWidth??0,t=e>0?e:this.mountEl.clientWidth;return this.columnFlexService.resolveCenterViewportWidth(t)}refreshFlexedColumnsOnViewportChange(e){let t=this.getCenterViewportWidth();t===this.centerViewportWidth&&e||(this.centerViewportWidth=t,this.columnLayout.refreshFlexedColumns({fireResizedEvent:e}))}scheduleAutoSizeStrategy(){let e=this.columnAutosizeService.getAutoSizeStrategy();if(e){if(e.type===`fitGridWidth`||e.type===`fitProvidedWidth`){window.setTimeout(()=>{this.destroyed||this.columnLayout.applyAutoSizeFitWidthStrategy(e)},0);return}e.type===`fitCellContents`&&(this.autoSizeCellContentsPending=!0)}}maybeApplyFitCellContentsStrategy(e){if(!this.autoSizeCellContentsPending||e===0)return;let t=this.columnAutosizeService.getAutoSizeStrategy();!t||t.type!==`fitCellContents`||(this.autoSizeCellContentsPending=!1,window.setTimeout(()=>{this.destroyed||this.columnLayout.applyAutoSizeFitCellContentsStrategy(t)},0))}setSortModel(e){let t=Xi(e);if(G(this.rowModel)){this.rowModel.setSortModel(t),this.viewport.scrollTo(0,0),this.infiniteDatasourceService?.refreshCache(`sort`),this.viewport.refreshHeader(),this.eventBus.emit(`sortChanged`,{sortModel:this.rowModel.getSortModel()}),this.cellRangeOps.clearCellSelectionOnStructuralChange(),this.gridFooter.refresh();return}this.rowModel.setSortModel(t),this.viewport.syncViewportHeight(),this.valueCache.bump(),this.refreshCellSpanCache(),this.reconcileRowPoolAfterDisplayChange(),this.viewport.redrawImmediately(),this.viewport.refreshHeader(),this.eventBus.emit(`sortChanged`,{sortModel:this.rowModel.getSortModel()}),this.cellRangeOps.clearCellSelectionOnStructuralChange(),this.gridFooter.refresh()}getSortModel(){return this.rowModel.getSortModel()}setFilterModel(e){if(G(this.rowModel)){this.rowModel.setFilterModel(e),this.afterInfiniteFilterChange();return}this.filterOps.setFilterModel(e)}afterInfiniteFilterChange(){this.viewport.scrollTo(0,0),this.infiniteDatasourceService?.refreshCache(`filter`),this.viewport.refreshHeaderIndicatorState(),this.emitInfiniteFilterChanged()}emitInfiniteFilterChanged(){this.eventBus.emit(`filterChanged`,{filterModel:this.rowModel.getFilterModel(),quickFilterText:this.rowModel.getQuickFilterText()}),this.cellRangeOps.clearCellSelectionOnStructuralChange(),this.gridFooter.refresh()}refreshInfiniteCache(){this.infiniteDatasourceService?.refreshCache(`api`)}setInfiniteDatasource(e){if(!G(this.rowModel))throw Error(`[MagicGrid] setInfiniteDatasource() requires rowModelType "infinite"`);if(!this.infiniteDatasourceService)throw Error(`[MagicGrid] infinite datasource service is not initialized`);this.infiniteDatasourceService.setDatasource(e)}retryInfiniteBlock(e){this.infiniteDatasourceService?.retryBlock(e)}getLoadedRowData(){return this.infiniteDatasourceService?.getLoadedRowData()??[]}getInfiniteRowCount(){return this.infiniteDatasourceService?.getInfiniteRowCount()??this.rowModel.getRowCount()}getFilterModel(){return this.filterOps.getFilterModel()}getColumnFilter(e){return this.filterOps.getColumnFilter(e)}getColumnDistinctFilterValues(e){return G(this.rowModel)?[]:this.filterOps.getColumnDistinctFilterValues(e)}isColumnFilterActive(e){return this.filterOps.isColumnFilterActive(e)}isAnyFilterActive(){return this.filterOps.isAnyFilterActive()}getQuickFilterText(){return this.filterOps.getQuickFilterText()}setQuickFilterText(e){if(G(this.rowModel)){if(this.rowModel.getQuickFilterText()===e)return;this.rowModel.setQuickFilterText(e),this.afterInfiniteFilterChange();return}this.filterOps.setQuickFilterText(e)}clearAllFilters(){if(G(this.rowModel)){if(!this.isAnyFilterActive())return;this.rowModel.setFilterModel({}),this.rowModel.setQuickFilterText(``),this.afterInfiniteFilterChange();return}this.filterOps.clearAllFilters()}setColumnFilter(e,t){if(G(this.rowModel)){let n={...this.rowModel.getFilterModel()};t===null?delete n[e]:n[e]=t,this.setFilterModel(n);return}this.filterOps.setColumnFilter(e,t)}moveColumn(e,t,n=!0,r){return this.columnLayout.moveColumn(e,t,n,r)}resetColumnOrder(){return this.columnLayout.resetColumnOrder()}resetColumnWidths(){return this.columnLayout.resetColumnWidths()}setColumnFixed(e,t,n=`api`){return this.columnLayout.setColumnFixed(e,t,n)}setColumnsHidden(e,t){return this.columnLayout.setColumnsHidden(e,t,`api`)}isColumnHidden(e){return this.columnModel.isColumnHidden(e)}getDisplayedColumnIds(){return this.columnModel.getDisplayedColumnIds()}getColumns(){return this.columnModel.getColumns()}getDisplayedColumns(){return this.columnModel.getDisplayedColumns()}finishColumnMove(e){this.columnLayout.finishColumnMove(e)}setColumnMoveLiveDragging(e){this.columnLayout.setColumnMoveLiveDragging(e)}setRowMoveLiveDragging(e){this.rootEl.classList.toggle(`magic-grid--row-move-live`,e)}buildPlanRowDragMoveOptions(e){return{sourceRows:this.rowModel.getSourceRows(),displayRows:this.rowModel.rowsToDisplay,rowIds:e.rowIds,leaderRowId:e.leaderRowId,displayInsertIndex:e.displayInsertIndex,sortModelLength:this.rowModel.getSortModel().length,filterModelKeyCount:Object.keys(this.rowModel.getFilterModel()).length,isRowGroupingActive:this.rowGroupingService.active,isTreeActive:this.treeTableService.active,treeDragScope:this.treeTableOptions.treeDragScope,getDataPath:this.treeTableOptions.getDataPath,setDataPath:this.treeTableOptions.setDataPath,treeNestUnderRowId:typeof e.treeNestUnderRowId==`string`?e.treeNestUnderRowId:void 0}}setRowDragCommittingVisual(e){this.rootEl.classList.toggle(Ca,e!=null),this.rowRenderer.setRowDragCommittingRows(e?.rowIds??null)}finishRowMove(e){this.rowMutation.finishRowMove(t.m(e))}applyTransaction(e){return K(this.rowModel,`applyTransaction`),this.rowMutation.applyTransaction(e)}commitTransaction(e){return K(this.rowModel,`commitTransaction`),this.rowMutation.commitTransaction(e)}addRows(e){return K(this.rowModel,`addRows`),this.rowMutation.addRows(e)}addRowsByArray(e,t){return K(this.rowModel,`addRowsByArray`),this.rowMutation.addRowsByArray(e,t)}addGroupRows(e){return K(this.rowModel,`addGroupRows`),this.rowMutation.addGroupRows(e)}addGroupRowsByArray(e,t){return K(this.rowModel,`addGroupRowsByArray`),this.rowMutation.addGroupRowsByArray(e,t)}removeRows(e){return K(this.rowModel,`removeRows`),this.rowMutation.removeRows(e)}updateRows(e){return K(this.rowModel,`updateRows`),this.rowMutation.updateRows(e)}patchRow(e){return this.updateRows({rows:[{rowId:t.b(e.row),data:e.data}]})}moveRow(e,n,r=`source`){return K(this.rowModel,`moveRow`),this.rowMutation.moveRow({rowId:t.m(e),toIndex:n,indexMode:r})}moveRows(e){K(this.rowModel,`moveRows`);let n=t.g(e.rowIds)??[];if(n.length===0)return Promise.resolve({moved:!1,reason:`no rows to move`});let r=this.rowModel.getSourceRows(),i=e.leaderRowId==null?Ou(r,n):t.m(e.leaderRowId);return this.rowMutation.moveRows({rowIds:n,leaderRowId:i,toIndex:e.toIndex,indexMode:e.indexMode},`api`)}moveUp(e){return this.moveRowByStep(e,`up`)}moveDown(e){return this.moveRowByStep(e,`down`)}moveUps(e){return this.moveRowsByStep(e,`up`)}moveDowns(e){return this.moveRowsByStep(e,`down`)}async moveRowsByStep(e,n){let r=t.g(e)??[];if(r.length===0)return[];let i=this.getResolveRowIndexContext(),a=new Set;for(let e of r){let t=Mu(e,i);if(t==null)return[];a.add(i.sourceRows[t].id)}let o=i.sourceRows.filter(e=>a.has(e.id)).map(e=>e.id),s=wd({sourceRows:i.sourceRows,displayRows:i.displayRows,rowIds:o,direction:n,isRowGroupingActive:this.rowGroupingService.active,isTreeActive:this.treeTableService.active});if(s==null||!(await this.moveRows({rowIds:o,toIndex:s.toIndex,indexMode:s.indexMode})).moved)return[];let c=this.getResolveDisplayRowContext(),l=[];for(let e of o){let t=this.rowModel.getRowById(e);if(!t)continue;let n=Lu(t,c);n&&l.push(n)}return l}async moveRowByStep(e,n){let r=this.getResolveRowIndexContext(),i=Mu(t.m(e),r);if(i==null)return null;let a=r.sourceRows[i].id,o=Td({sourceRows:r.sourceRows,displayRows:r.displayRows,rowId:a,direction:n,isRowGroupingActive:this.rowGroupingService.active,isTreeActive:this.treeTableService.active});if(o==null||!(await this.moveRow(a,o.toIndex,o.indexMode)).moved)return null;let s=this.rowModel.getRowById(a);return s?Lu(s,this.getResolveDisplayRowContext())??null:null}setRowHeight(e,n,r=!0){this.rowHeightService.setRowHeight(t.m(e),n,r,`api`)}setRowHeights(e,n=!0){this.rowHeightService.setRowHeights(e.map(e=>({rowId:t.m(e.rowId),height:e.height})),{finished:n,source:`api`})}getRowHeight(e){return this.rowHeightService.getRowHeight(t.m(e))}resetRowHeights(e){this.rowHeightService.resetRowHeights(e?.map(e=>t.m(e)))}expandRow(e){return this.hierarchyOps.expandRow(e)}collapseRow(e){return this.hierarchyOps.collapseRow(e)}isRowExpanded(e){return this.hierarchyOps.isRowExpanded(e)}setDetailRowData(e,t){return this.hierarchyOps.setDetailRowData(e,t)}reloadDetailRowData(e){return this.hierarchyOps.reloadDetailRowData(e)}expandAll(){this.hierarchyOps.expandAll()}collapseAll(){this.hierarchyOps.collapseAll()}setRowGroupColumns(e){this.hierarchyOps.setRowGroupColumns(e)}getRowGroupColumns(){return this.hierarchyOps.getRowGroupColumns()}expandGroup(e){return this.hierarchyOps.expandGroup(e)}collapseGroup(e){return this.hierarchyOps.collapseGroup(e)}isGroupExpanded(e){return this.hierarchyOps.isGroupExpanded(e)}expandNode(e){return this.hierarchyOps.expandNode(e)}collapseNode(e){return this.hierarchyOps.collapseNode(e)}isNodeExpanded(e){return this.hierarchyOps.isNodeExpanded(e)}getDataPath(e){return this.hierarchyOps.getDataPath(e)}applyTreeHierarchyShortcut(e,t){this.hierarchyOps.applyTreeHierarchyShortcut(e,t)}getCellComment(e,n){return this.cellCommentService.getComment(t.m(e),n)}async setCellComment(e,n,r){await this.cellCommentService.setComment(t.m(e),n,r??null,`api`)}refreshCellComments(e){this.cellCommentService.requestRefresh(e),this.closeCellCommentPopupIfAnchorNotVisible()}getCellRanges(){return this.cellRangeOps.getCellRanges()}getCellSelectionAggregation(){return this.cellRangeOps.getCellSelectionAggregation()}clearCellSelection(){this.cellRangeOps.clearCellSelection()}addCellRange(e){this.cellRangeOps.addCellRange(e)}copySelectedRangeToClipboard(){this.cellRangeOps.copySelectedRangeToClipboard()}async pasteFromClipboard(){await this.cellRangeOps.pasteFromClipboard()}showLoadingOverlay(){this.updateEmptyStateOptions({loading:!0})}showNoRowsOverlay(){this.overlayService.showNoRowsOverlay()}hideOverlay(){this.overlayService.hideOverlay()}isOverlayShowing(){return this.overlayService.isOverlayShowing()}getOverlayType(){return this.overlayService.getOverlayType()}updateEmptyStateOptions(e){this.emptyStateOptionsRaw={...this.emptyStateOptionsRaw,...e},this.emptyStateGridOptions=Kc(this.emptyStateOptionsRaw),this.syncEmptyStateOverlay(),this.refreshOverlayPresentation()}updateLoadMoreRowOptions(e){let t=this.loadMoreRowGridOptions.enabled,n=this.loadMoreRowGridOptions.height;if(this.loadMoreRowOptionsRaw={...this.loadMoreRowOptionsRaw,...e},Object.assign(this.loadMoreRowGridOptions,fo(this.loadMoreRowOptionsRaw,this.gridSize)),t!==this.loadMoreRowGridOptions.enabled||n!==this.loadMoreRowGridOptions.height){this.syncLoadMoreRowDisplay();return}this.rowRenderer.refreshLoadMoreRowContent(),this.viewport.redrawImmediately()}syncLoadMoreRowDisplay(){vu(this.rowModel)&&(this.rowModel.rebuildDisplayProjection(),this.viewport.syncViewportHeight(),this.rowRenderer.invalidate(),this.viewport.redrawImmediately())}refreshOverlayPresentation(){let e=this.overlayService.getOverlayType();e!=null&&this.overlayRenderer.sync(e,this.overlayService.getOverlayPresentation())}handleOverlayChanged(e,t){t!=null&&this.eventBus.emit(`overlayHidden`,{overlayType:t}),this.overlayRenderer.sync(e,e==null?null:this.overlayService.getOverlayPresentation()),e!=null&&this.eventBus.emit(`overlayShown`,{overlayType:e})}syncEmptyStateOverlay(){this.destroyed||(G(this.rowModel)&&this.rowModel.getSourceRowCount()>0&&!this.overlayService.isRowDataReady()&&this.overlayService.markRowDataReady(),this.overlayRenderer.syncLayout(),this.overlayService.updateOverlay())}updateCellRangeVisualOptions(e){this.cellRangeOps.updateCellRangeVisualOptions(e)}updateCellSelectionOptions(e){this.cellRangeOps.updateCellSelectionOptions(e)}updateCellClipboardOptions(e){this.cellRangeOps.updateCellClipboardOptions(e)}applyFocusVisuals(){this.interaction.applyFocusVisuals()}updateCellCommentOptions(e){let t=this.cellCommentOptions.cellCommentsDataSource;this.cellCommentOptions=No({...this.cellCommentOptions,...e}),t!==this.cellCommentOptions.cellCommentsDataSource&&(this.cellCommentService.resetDatasourceLifecycle(),this.destroyed||this.cellCommentService.init(this.api)),this.rowRenderer.setCellCommentHost(this.cellCommentService.createHost()),this.refreshCellComments()}updateOverflowTooltipOptions(e){this.overflowTooltipOptions=wc({...this.overflowTooltipOptions,...e}),this.overflowTooltipSession.close()}setStatusBarElement(e){this.overflowTooltipSession.setStatusBarElement(e)}closeCellCommentPopupIfAnchorNotVisible(){let e=this.cellCommentService.getOpenEditorCell();if(!e)return;let t=this.rowModel.getRowIndexById(e.rowId);if(t<0){this.cellCommentService.closeEditor();return}let{firstRow:n,lastRow:r}=this.rowRenderer.getCurrentWindow();(t<n||t>r)&&this.cellCommentService.closeEditor()}updateDimensions(e){if(this.destroyed)return;let t=this.viewport.getLogicalScrollTop(),n=this.viewport.viewportEl.scrollLeft,r={...this.rowHeightGridOptions,rowHeightMin:e.rowHeightMin??this.rowHeightGridOptions.rowHeightMin,rowHeightMax:e.rowHeightMax??this.rowHeightGridOptions.rowHeightMax};this.rowHeightGridOptions=r;let i=e.rowHeight??this.rowHeightService.getDefaultRowHeight();this.rowModel.setDefaultRowHeight(i),this.rowRenderer.setDefaultRowHeight(i),this.suppressRowLayoutViewportSync=!0;try{this.rowHeightService.updateDefaultRowHeight(i,r)}finally{this.suppressRowLayoutViewportSync=!1}this.viewport.syncViewportHeight(),this.viewport.redrawImmediately(),this.viewport.scrollTo(t,n)}isRowDragHandleEnabled(e){if(this.rowDragCommitService?.isCommitting())return!1;let n=this.isSortOrFilterActive(),{rowDragManaged:r}=this.rowDragOptions;return t.it(e)?ka(this.indexColumnOptions.indexColumn.showRowDragHandle,n,r):this.columnModel.getColumnById(e)?.rowDrag?ka(!0,n,r):!1}isSortOrFilterActive(){return this.rowModel.getSortModel().length>0||this.isAnyFilterActive()}getData(e){return G(this.rowModel)?(xu(),this.getLoadedRowData()):this.rowMutation.getData(e)}promoteRowId(e){return K(this.rowModel,`promoteRowId`),this.rowMutation.promoteRowId(e)}beginUpdate(){this.rowMutation.beginUpdate()}endUpdate(){this.rowMutation.endUpdate()}refreshCells(e){this.rowRenderer.setValueCacheVersion(this.valueCache.getVersion()),this.frameService.flushAllFrames();let t=this.rowRenderer.refreshRows(e??{});return this.frameService.flushAllFrames(),t}refreshCellSpans(){this.refreshCellSpanCache(),this.valueCache.bump(),this.rowRenderer.setValueCacheVersion(this.valueCache.getVersion()),this.rowRenderer.invalidate(),this.viewport.redrawImmediately(),this.gridFooter.refresh()}getCellSpan(e,n){return this.cellSpanService.getCellSpan(t.m(e),n)}getColumnModel(){return this.columnModel}getRowModel(){return this.rowModel}getActiveDomRowCount(){return this.rowRenderer.getActiveRowCount()}getRenderedRowWindow(){return this.rowRenderer.getCurrentWindow()}getMetrics(){let e=this.rowRenderer.getCurrentWindow(),t=this.viewport.getLogicalScrollTop();return{rowCount:this.rowModel.getRowCount(),sourceRowCount:this.rowModel.getSourceRowCount(),columnCount:this.columnModel.getColumnCount(),activeDomRowCount:this.rowRenderer.getActiveRowCount(),domCellCount:this.mountEl.querySelectorAll(`.mg-cell`).length,scrollTop:t,scrollLeft:this.viewport.viewportEl.scrollLeft,totalHeight:this.rowModel.getTotalHeight(),totalWidth:this.columnModel.getTotalWidth(),renderedFirstRow:e.firstRow,renderedLastRow:e.lastRow,renderedFirstCol:e.firstCol,renderedLastCol:e.lastCol,lastSetDataMs:this.lastSetDataMs}}refreshCellSpanCache(){this.cellSpanService.refresh()}reconcileRowPoolAfterDisplayChange(e=this.collectSourceRowIds()){this.rowRenderer.reconcileRowPoolAfterModelChange(e,this.cellSpanService.active)}collectSourceRowIds(){return new Set(this.rowModel.getSourceRows().map(e=>e.id))}syncRowLayoutAfterRowHeightChange(e){let t=e.map(e=>e.rowId);if(this.suppressRowLayoutViewportSync){this.rowRenderer.syncVisibleRowLayouts(t);return}let n=this.viewport.captureScrollAnchor(),r=0,i=0;if(vu(this.rowModel))for(let t of e){if(!I(t.rowId))continue;let e=t.previousRowHeight;if(e==null||e===t.rowHeight)continue;let n=this.rowModel.getDisplayRowById(t.rowId);n&&(r=n.rowTop,i+=t.rowHeight-e)}this.viewport.syncViewportHeightWithDetailCompensation({anchor:n,detailRowTop:r,heightDelta:i}),this.rowRenderer.syncVisibleRowLayouts(),this.viewport.syncBorderClosureState()}scrollTo(e,t){this.viewport.scrollTo(e,t)}flushFrames(){this.frameService.flushAllFrames()}getPendingFrameTaskCount(){return this.frameService.getPendingTaskCount()}getPendingRendererTaskCount(){return this.frameService.getPendingRendererTaskCount()}startEditingCell(e){this.cellEditing.startEditingCell(e)}stopEditing(e=!1){return this.cellEditing.stopEditing(e).then(()=>void 0)}async commit(e=!1){let t=await this.cellEditing.commit(e);return e||await this.awaitCommitIdle(),e?t:t&&!this.cellEditing.isEditing()}isCommitting(){return this.cellEditing.isCommitting()||this.inlineCellEditorService.isCommitting()}cancelCommit(){this.cellEditing.cancelCommit(),this.inlineCellEditorService.cancelCommit()}async awaitCommitIdle(){await this.cellEditing.awaitCommitIdle(),await this.inlineCellEditorService.awaitCommitIdle()}isEditing(){return this.cellEditing.isEditing()}getEditSessionPhase(){return this.cellEditing.getEditSessionPhase()}getEditingCell(){let e=this.cellEditing.getEditingCell();return e?{colId:e.colId,rowId:t.D(e.rowId,this.businessRowIdCtx)}:null}getEditingCells(){return this.cellEditing.getEditingCells().map(e=>{let n=this.rowModel.getRowById(e.rowId),r=this.columnModel.getColumnById(e.colId),i=n&&r?U(n,r):n?.data[e.colId];return{rowId:t.D(e.rowId,this.businessRowIdCtx),rowIndex:e.rowIndex,colId:e.colId,data:n?t.N(n,this.rowKey):{},value:i}})}validate(e){return this.cellEditing.validate(ok(e)).then(e=>t.w(e,this.businessRowIdCtx))}validateRows(e){return this.cellEditing.validateRows(sk(e)).then(e=>t.w(e,this.businessRowIdCtx))}validateCells(e){return this.cellEditing.validateCells(ck(e)).then(e=>t.w(e,this.businessRowIdCtx))}clearValidation(e){this.cellEditing.clearValidation(lk(e))}clearRowValidation(e){this.cellEditing.clearRowValidation(uk(e))}clearCellValidation(e){this.cellEditing.clearCellValidation(dk(e))}registerCellEditor(e,t){this.cellEditing.registerCellEditor(e,t)}unregisterCellEditor(e){return this.cellEditing.unregisterCellEditor(e)}resolveCellEditorCacheAccess(e){return t.o(e,{rowKey:this.rowKey,resolveRowById:e=>this.rowModel.resolveRowById(e),getSourceRows:()=>this.rowModel.getSourceRows()})}getCellEditorCache(e,t,n){let r=this.resolveCellEditorCacheAccess(e);return this.cellEditorCacheService.get(r.rowId,t,n,{internalRowId:r.internalRowId})}setCellEditorCache(e,t,n,r){let i=this.resolveCellEditorCacheAccess(e);this.cellEditorCacheService.set(i.rowId,t,n,r,{internalRowId:i.internalRowId})}clearCellEditorCache(e,t,n){if(e==null){this.cellEditorCacheService.clear(void 0,t,n);return}let r=this.resolveCellEditorCacheAccess(e);this.cellEditorCacheService.clear(r.rowId,t,n,{internalRowId:r.internalRowId})}clearAllCellEditorCache(){this.cellEditorCacheService.clearAll()}clearCellStyleOverridesForRemovedRows(e){e.length!==0&&this.cellStyleOverrideService.clear({rowIds:e})}clearCellEditorCacheForRemovedRows(e){let{businessRowIds:t,transientInternalRowIds:n}=Tu(e,{rowKey:this.rowModel.getRowKey(),getRowById:e=>this.rowModel.getRowById(e)});this.cellEditorCacheService.removeByRowIds(t,{internalRowIds:n})}destroy(){this.destroyed||(this.destroyed=!0,this.infiniteDatasourceService?.destroy(),this.infiniteDatasourceService=null,this.rowDragCommitService?.destroy(),this.cellCommentService.destroy(),this.cellStyleOverrideService.clear(),this.cellRangeOps.destroy(),this.overflowTooltipSession.destroy(),this.overlayRenderer?.destroy(),this.overlayService?.destroy(),this.rowRenderer.setCellCommentHost(void 0),this.cellEditing.cancelEditingOnDestroy(),this.cellEditorCacheService.clearAll(),this.changeDetection.reset(),this.eventBus.destroy(),this.cellEditing.destroy(),this.resizeObserver?.disconnect(),this.resizeObserver=null,this.viewport.unbindScrollListener(),this.interaction.unbindListeners(),this.columnHandleMenuController.destroy(),this.treeHierarchyMenuController.destroy(),this.columnDragController.destroy(),this.frameService.flushAllFrames(),this.frameService.destroy(),this.rowAutoHeightService.destroy(),this.detailRowAutoHeightService?.destroy(),this.rowRenderer.destroy(),this.footerRenderer?.destroy(),this.footerRenderer=null,this.floatingFilterController?.destroy(),this.floatingFilterController=null,this.rootEl.remove())}getColIndex(e){return this.columnModel.getColumns().findIndex(t=>t.colId===e)}getPinnedRowIds(){let e=new Set;for(let t of this.editingService.getPinnedRowIds())e.add(t);for(let t of this.rowEditingService.getPinnedRowIds())e.add(t);if(this.rowExpansionOptions.masterDetail)for(let t of this.rowExpansionService.getPinnedRowIds())e.add(t);return e}isEditingTargetRow(e){return this.cellEditing.getEditingCell()?.rowId===e||this.cellEditing.getEditingCells().some(t=>t.rowId===e)}},gk=`--mg-color-bg-cell`,_k=`--mg-color-text-regular`,vk=`--mg-color-text-primary`,yk=[gk,_k,vk];function bk(e){if(e==null)return;let t=e.trim();return t===``?void 0:t}function xk(e){let t=bk(e?.backgroundColor),n=bk(e?.color);return t===void 0&&n===void 0?{}:{...t===void 0?{}:{backgroundColor:t},...n===void 0?{}:{color:n}}}function Sk(e){let t=xk(e),n={};return t.backgroundColor!==void 0&&(n[gk]=t.backgroundColor),t.color!==void 0&&(n[_k]=t.color,n[vk]=t.color),n}function Ck(e){return e??`light`}function wk(e){return`magic-grid--theme-${e}`}function Tk(e,t){return e===`dark`?Sk(t):{}}function Ek(e,t,n){if(!e)return;for(let t of yk)e.style.removeProperty(t);let r=Tk(t,n);for(let[t,n]of Object.entries(r))e.style.setProperty(t,n)}function Dk(e){if(e===!1)return!1;let t=e===!0||e==null?{}:e,n=typeof e==`object`&&!!e&&`handleMode`in e,r={...t,enableColumnSelection:t.enableColumnSelection??!0};if(n){let e=t.handleMode??`off`;r.handleMode=e,e===`fill`&&(r.fillStrategy=t.fillStrategy??`copy`)}return r}function Ok(e){return{...e,syncToSelectionColumn:e?.syncToSelectionColumn??!0}}function kk(e){return ws({cellSelection:e}).enabled}function Ak(e){let r=(0,n.ref)(0),i=(0,n.ref)(0),a=()=>{r.value+=1};return{statusBarContext:(0,n.computed)(()=>{r.value;let n=e.api.value,a=n?.getMetrics(),s=t.$(e.rowSelection.value).mode!==!1,c=kk(e.cellSelection.value),l=e.rowModelType.value===`infinite`;return{api:n,totalRowCount:l?n?.getInfiniteRowCount()??a?.rowCount??0:a?.sourceRowCount??0,displayedRowCount:a?.rowCount??0,isFiltered:l?n?.isAnyFilterActive()??!1:n?.isAnyFilterActive()??(a!=null&&a.sourceRowCount!==a.rowCount),selectedRowCount:i.value,rowSelectionEnabled:s,cellSelectionEnabled:c,cellSelectionAggregation:c?n?.getCellSelectionAggregation()??null:null,statusBarRangeAggregationPrecision:o(e.statusBarRangeAggregationPrecision.value),metrics:a}}),bumpRefresh:a,onSelectionChanged:e=>{i.value=e.length,a()},resetSelectionCount:()=>{i.value=0}}}var jk=class{appContext=null;setAppContext(e){this.appContext=e}getAppContext(){return this.appContext}render(e,t){this.appContext&&(t.appContext=this.appContext),(0,n.render)(t,e)}unmount(e){op(e),(0,n.render)(null,e)}};function Mk(e,t){let r={...t.props??{}};return r.ref=up(e,r.ref),(0,n.cloneVNode)(t,r)}function Nk(e,t){return da((n,r)=>{e.render(r.mountEl,Mk(r.mountEl,t(n))),dp(r.mountEl)})}function Pk(e,t){return Nk(e,e=>{let n=t(e);return Array.isArray(n)?n[0]:n})}var Fk=class{render(e,t){(0,n.render)(t,e)}unmount(e){(0,n.render)(null,e)}};function Ik(e,t){return(n,r)=>{e.render(r.mountEl,t(n))}}function Lk(e,t){return Ik(e,e=>{let n=t(e);return Array.isArray(n)?n[0]:n})}var Rk=class{render(e,t){(0,n.render)(t,e)}unmount(e){(0,n.render)(null,e)}};function zk(e,t){return(n,r)=>{e.render(r.mountEl,t(n))}}function Bk(e,t){return zk(e,e=>{let n=t(e);return Array.isArray(n)?n[0]:n})}var Vk=new Rk,Hk=class{render(e,t){(0,n.render)(t,e)}unmount(e){op(e),(0,n.render)(null,e)}};function Uk(e){return{params:e,...e.cellEditorParams??{}}}function Wk(e){return typeof e==`function`}function Gk(e,t,r,i){let a=Wk(r)?r(i):(0,n.h)(r,{...Uk(i),ref:up(t,void 0)});e.render(t,a),dp(t)}function Kk(e,t){return bn((n,r)=>{Gk(e,r.mountEl,t,n)})}function qk(e,t){return Kk(e,e=>{let n=t(e);return Array.isArray(n)?n[0]:n})}var Jk=class{mountEl=null;render(e,t){this.unmount(),this.mountEl=e,(0,n.render)(t,e)}unmount(){this.mountEl&&=((0,n.render)(null,this.mountEl),null)}};function Yk(e,t){return(n,r)=>{let i=t(n),a=Array.isArray(i)?i[0]:i;return e.render(r,a),{getGui:()=>r,destroy:()=>e.unmount()}}}var Xk=class{mountEl=null;render(e,t){this.unmount(),this.mountEl=e,(0,n.render)(t,e)}unmount(){this.mountEl&&=((0,n.render)(null,this.mountEl),null)}};function Zk(e,t){return(n,r)=>{let i=t(n),a=Array.isArray(i)?i[0]:i;return e.render(r,a),{getGui:()=>r,destroy:()=>e.unmount()}}}var Qk=new jk,$k=new Fk,eA=new Hk,tA=new Jk,nA=new Xk;function rA(e,t){return e.key??e.prop??`col_${t}`}function iA(){Qk.setAppContext((0,n.getCurrentInstance)()?.appContext??null)}function aA(e,t){let n={};return e.forEach((e,r)=>{let i=rA(e,r);e.cellRenderer&&(n[i]=e.cellRenderer);let a=t[`cell-${i}`];a&&(n[i]=Pk(Qk,e=>a({row:e.data,value:e.value,formattedValue:e.formattedValue,rowIndex:e.rowIndex,rowId:e.rowId,colId:e.colId,isSummaryRow:e.isSummaryRow??!1})))}),n}function oA(e,t){let n={};return e.forEach((e,r)=>{let i=rA(e,r);e.cellEditor&&typeof e.cellEditor==`function`&&(n[i]=e.cellEditor);let a=t[`cell-editor-${i}`];a&&(n[i]=qk(eA,e=>a({params:e,row:e.data,value:e.value,formattedValue:e.formattedValue,rowIndex:e.rowIndex,rowId:e.rowId,colId:e.colId,stopEditing:e.stopEditing})))}),n}function sA(e,t){let n=t.tooltip;return n?Yk(tA,e=>n(e)):e}function cA(e,t,n){let r=t[e];return r?Zk(nA,e=>r({overlayType:e.overlayType,api:e.api,overlayText:e.overlayText})):n}function lA(e,t){return{loading:e.loading,suppressOverlays:e.suppressOverlays,suppressLoadingOverlay:e.suppressLoadingOverlay,suppressNoRowsOverlay:e.suppressNoRowsOverlay,suppressNoMatchingRowsOverlay:e.suppressNoMatchingRowsOverlay,overlayLoadingTemplate:e.overlayLoadingTemplate,overlayNoRowsTemplate:e.overlayNoRowsTemplate,overlayNoMatchingRowsTemplate:e.overlayNoMatchingRowsTemplate,overlayInteraction:e.overlayInteraction,overlayComponent:e.overlayComponent,overlayComponentParams:e.overlayComponentParams,loadingOverlayComponent:cA(`loading`,t,e.loadingOverlayComponent),loadingOverlayComponentParams:e.loadingOverlayComponentParams,noRowsOverlayComponent:cA(`no-rows`,t,e.noRowsOverlayComponent),noRowsOverlayComponentParams:e.noRowsOverlayComponentParams,noMatchingRowsOverlayComponent:cA(`no-matching-rows`,t,e.noMatchingRowsOverlayComponent),noMatchingRowsOverlayComponentParams:e.noMatchingRowsOverlayComponentParams}}function uA(e,t){let n=t[`load-more-row`];return n?Bk(Vk,e=>n({...e})):e}function dA(e,t){let n=t[`detail-row`];return n?Lk($k,e=>n({row:e.data,rowId:e.rowId,masterRowId:e.masterRowId,detailRowData:e.detailRowData,loading:e.loading,loadFailed:e.loadFailed,loadError:e.loadError})):e}function fA(e){Qk.unmount(e),$k.unmount(e),Vk.unmount(e)}function pA(e){eA.unmount(e)}function mA(){tA.unmount(),nA.unmount()}function hA(e){if(typeof e==`number`)return Number.isFinite(e)?`${e}px`:`100%`;let t=e.trim();return t.length===0?`100%`:/^\d+(\.\d+)?$/.test(t)?`${t}px`:t}function gA(e,t){e===`infinite`&&t.length>0&&console.warn(`[MagicGrid] row-model-type="infinite" ignores the data prop; use infinite-datasource instead.`)}function _A(e,t){return e===`infinite`?(t&&console.warn(`[MagicGrid] row-model-type="infinite" does not support row-drag-managed; it has been disabled.`),!1):t}function vA(t,r,i){let a=(0,n.ref)(),o=(0,n.ref)(),s=(0,n.ref)(),c=(0,n.shallowRef)(),l=(0,n.shallowRef)(),u=!1,d=[];function f(e,t,n){let i={api:t,reason:n};e.emitGridLifecycleEvent(`gridDestroyed`,i),r(`grid-destroyed`,i)}function p(e){let t={api:e};r(`grid-ready`,t),queueMicrotask(()=>{c.value&&l.value===e&&c.value.emitGridLifecycleEvent(`gridReady`,t)})}let{statusBarContext:m,bumpRefresh:h,onSelectionChanged:g,resetSelectionCount:_}=Ak({api:l,rowModelType:(0,n.computed)(()=>t.rowModelType),rowSelection:(0,n.computed)(()=>t.rowSelection),cellSelection:(0,n.computed)(()=>t.cellSelection),statusBarRangeAggregationPrecision:(0,n.computed)(()=>t.statusBarRangeAggregationPrecision)}),v=(0,n.computed)(()=>!!i.toolbar),y=(0,n.computed)(()=>qn({size:t.size,rowHeight:t.rowHeight,headerHeight:t.headerHeight})),b=(0,n.computed)(()=>Kn({rounded:t.rounded,sizeBorderRadius:y.value.borderRadius})),x=(0,n.computed)(()=>Ck(t.theme)),S=(0,n.computed)(()=>Dk(t.cellSelection)),C=(0,n.computed)(()=>Ok(t.indexColumn)),w=(0,n.computed)(()=>Jn(t.statusBarHeight,y.value.statusBarHeight)),T=(0,n.computed)(()=>({api:l.value,size:y.value.size,portalEl:o.value??void 0})),E=(0,n.computed)(()=>({height:hA(t.height),width:hA(t.width),...ir({...y.value,statusBarHeight:w.value},b.value,t.summaryRowHeight),...Sk(t.cellColor)})),D=(0,n.computed)(()=>{let e=w.value,{fontSize:t,spacing:n}=y.value,r=Yn(e);return{height:`${e}px`,minHeight:`${e}px`,maxHeight:`${e}px`,fontSize:`${t}px`,paddingLeft:`${n}px`,paddingRight:`${n}px`,gap:`${n}px`,"--mg-status-bar-height":`${e}px`,"--mg-status-bar-font-size":`${t}px`,"--mg-status-bar-control-height":`${r}px`}}),O=(0,n.computed)(()=>[`magic-grid`,`magic-grid--border-${t.border}`,`magic-grid--size-${y.value.size}`,wk(x.value),t.showSummary&&`magic-grid--has-footer`,t.showStatusBar&&`magic-grid--has-status-bar`,v.value&&`magic-grid--has-toolbar`]),k=()=>{if(!c.value)return;let e=c.value.getMetrics();r(`data-rendered`,e);let t=l.value;if(!u&&t){u=!0;let n={api:t,metrics:e};c.value.emitGridLifecycleEvent(`firstRendered`,n),r(`first-rendered`,n)}h(),l.value?.reconcileDefaultSelectedRows()},A=()=>{if(t.rowModelType===`infinite`)return;let e=l.value;if(!e)return;let n=t.defaultSelectedRows;if(n==null){e.clearPendingDefaultSelectedRows();return}e.setDefaultSelectedRows(n,{mode:`cover`})},j=()=>{requestAnimationFrame(()=>{k()})},M=e=>{let t=e.setData.bind(e);e.setData=e=>{t(e),j()}},N=e=>{for(let e of d)e();d.length=0,d.push(e.on(`cellClicked`,e=>r(`cell-clicked`,e)),e.on(`rowClicked`,e=>r(`row-click`,e)),e.on(`rowDoubleClicked`,e=>r(`row-dblclick`,e)),e.on(`selectionChanged`,e=>{g(e.selectedRowIds),r(`selection-changed`,e)}),e.on(`indexFocusChanged`,e=>r(`index-focus-changed`,e)),e.on(`cellValueChanged`,e=>{r(`cell-value-changed`,e),h()}),e.on(`rowDataChanged`,e=>r(`row-data-changed`,e)),e.on(`rowsDataChanged`,e=>r(`rows-data-changed`,e)),e.on(`cellEditingStarted`,e=>r(`cell-editing-started`,e)),e.on(`cellEditingStopped`,e=>r(`cell-editing-stopped`,e)),e.on(`cellCommitStarted`,e=>r(`cell-commit-started`,e)),e.on(`cellCommitFinished`,e=>r(`cell-commit-finished`,e)),e.on(`editCommitAborted`,e=>r(`edit-commit-aborted`,e)),e.on(`rowCommitStarted`,e=>r(`row-commit-started`,e)),e.on(`rowCommitFinished`,e=>r(`row-commit-finished`,e)),e.on(`rowEditingStarted`,e=>r(`row-editing-started`,e)),e.on(`rowEditingStopped`,e=>r(`row-editing-stopped`,e)),e.on(`rowValueChanged`,e=>r(`row-value-changed`,e)),e.on(`cellValidationFailed`,e=>r(`cell-validation-failed`,e)),e.on(`rowValidationFailed`,e=>r(`row-validation-failed`,e)),e.on(`sortChanged`,e=>r(`sort-changed`,e.sortModel)),e.on(`columnMoved`,e=>r(`column-moved`,e)),e.on(`columnResized`,e=>r(`column-resized`,e)),e.on(`columnPinned`,e=>r(`column-pinned`,e)),e.on(`columnHiddenChanged`,e=>r(`column-hidden-changed`,e)),e.on(`filterChanged`,e=>{r(`filter-changed`,e.filterModel),h()}),e.on(`rowsAdded`,e=>{r(`rows-added`,e),h(),j()}),e.on(`rowsRemoved`,e=>{r(`rows-removed`,e),h()}),e.on(`rowIdPromoted`,e=>{r(`row-id-promoted`,e),j()}),e.on(`rowMoved`,e=>r(`row-moved`,e)),e.on(`rowDragEnd`,e=>r(`row-drag-end`,e)),e.on(`rowDragCommitStarted`,e=>r(`row-drag-commit-started`,e)),e.on(`rowDragCommitFinished`,e=>r(`row-drag-commit-finished`,e)),e.on(`rowHeightChanged`,e=>r(`row-height-changed`,e)),e.on(`rowExpanded`,e=>r(`row-expanded`,e)),e.on(`rowCollapsed`,e=>r(`row-collapsed`,e)),e.on(`rowGroupOpened`,e=>r(`row-group-opened`,e)),e.on(`treeNodeOpened`,e=>r(`tree-node-opened`,e)),e.on(`treeChildrenLoading`,e=>r(`tree-children-loading`,e)),e.on(`treeChildrenLoaded`,e=>r(`tree-children-loaded`,e)),e.on(`treeChildrenLoadFailed`,e=>r(`tree-children-load-failed`,e)),e.on(`rowGroupChanged`,e=>r(`row-group-changed`,e)),e.on(`cellCommentChanged`,e=>r(`cell-comment-changed`,e)),e.on(`cellSelectionChanged`,e=>{r(`cell-selection-changed`,e),h()}),e.on(`cellSelectionDeleteStart`,e=>r(`cell-selection-delete-start`,e)),e.on(`cellSelectionDeleteEnd`,e=>r(`cell-selection-delete-end`,e)),e.on(`overlayShown`,e=>r(`overlay-shown`,e)),e.on(`overlayHidden`,e=>r(`overlay-hidden`,e)),e.on(`scroll`,e=>r(`scroll`,e)),e.on(`scrollStart`,e=>r(`scroll-start`,e)),e.on(`scrollEnd`,e=>r(`scroll-end`,e)),e.on(`scrollTop`,e=>r(`scroll-top`,e)),e.on(`scrollBottom`,e=>r(`scroll-bottom`,e)),e.on(`loadMore`,e=>r(`load-more`,e)),e.on(`infiniteBlockLoading`,e=>r(`infinite-block-loading`,e)),e.on(`infiniteBlockLoaded`,e=>r(`infinite-block-loaded`,e)),e.on(`infiniteBlockLoadFailed`,e=>r(`infinite-block-load-failed`,e)),e.on(`infiniteCachePurged`,e=>r(`infinite-cache-purged`,e)))},P=()=>{Ek(a.value?.querySelector(`.mg-body`),x.value,t.cellColor)};function F(){c.value?.setStatusBarElement(t.showStatusBar?s.value?.statusBarEl??null:null)}let I=()=>{if(!a.value)return;iA();for(let e of d)e();d.length=0;let r=c.value,o=l.value;r&&o&&f(r,o,`reinit`),r?.destroy(),_(),t.columns,t.columns,t.columns,rt(t.columns),gA(t.rowModelType,t.data),Jy({tree:t.tree,rowGrouping:t.rowGrouping}),c.value=new hk(a.value,{columns:e.r(t.columns),rowKey:t.rowKey,rowModelType:t.rowModelType,infiniteDatasource:t.infiniteDatasource,blockSize:t.blockSize,maxBlocksInCache:t.maxBlocksInCache,infiniteInitialRowCount:t.infiniteInitialRowCount,infiniteMaxRetries:t.infiniteMaxRetries,infiniteLoadingRowVisible:t.infiniteLoadingRowVisible,rowHeight:y.value.rowHeight,headerHeight:y.value.headerHeight,size:y.value.size,rowBuffer:t.rowBuffer,scrollEndFlushMs:t.scrollEndFlushMs,frameBudgetMs:t.frameBudgetMs,scrollEndFrameBudgetMs:t.scrollEndFrameBudgetMs,cellRendererDefer:t.cellRendererDefer,deferRowDestroyOnScroll:t.deferRowDestroyOnScroll,rendererFrameBudgetMs:t.rendererFrameBudgetMs,cellRendererPresentation:t.cellRendererPresentation,stripe:t.stripe,rowSelection:t.rowSelection,selectable:t.selectable,isRowDisabled:t.isRowDisabled,rowStyle:t.rowStyle,editableCellStyle:t.editableCellStyle,showEditableCellIcon:t.showEditableCellIcon,disabledCellStyle:t.disabledCellStyle,showDisabledCellIcon:t.showDisabledCellIcon,reserveSelection:t.reserveSelection,preserveScrollOnSetData:t.preserveScrollOnSetData,editType:t.editType,editBehavior:t.editBehavior,editorOptions:t.editorOptions,invalidEditValueMode:t.invalidEditValueMode,rowValidator:t.rowValidator,asyncRowMutation:t.asyncRowMutation,showIndexColumn:t.showIndexColumn,indexColumn:C.value,selectionColumn:t.selectionColumn,showSummary:t.showSummary,navigateHeader:t.navigateHeader,navigateFooter:t.navigateFooter,summaryScope:t.summaryScope,summaryRowHeight:t.summaryRowHeight,summaryMethod:t.summaryMethod,headerAlign:t.headerAlign,headerValign:t.headerValign,align:t.align,valign:t.valign,footerAlign:t.footerAlign,footerValign:t.footerValign,defaultSort:t.defaultSort,sortable:t.sortable,enableHeaderSortClick:t.enableHeaderSortClick,columnMovable:t.columnMovable,resizable:t.resizable,colResizeDefault:t.colResizeDefault,skipHeaderOnAutoSize:t.skipHeaderOnAutoSize,autoSizePadding:t.autoSizePadding,autoSizeStrategy:t.autoSizeStrategy,suppressMoveWhenColumnDragging:t.suppressMoveWhenColumnDragging,suppressColumnMoveAnimation:t.suppressColumnMoveAnimation,allowCrossLaneColumnMove:t.allowCrossLaneColumnMove,showUnsortedSortHintOnHover:t.showUnsortedSortHintOnHover,quickFilterText:t.quickFilterText,filterable:t.filterable,floatingFilter:t.floatingFilter,filterSetValueMode:t.filterSetValueMode,filterSetDateLayoutMode:t.filterSetDateLayoutMode,rowDragManaged:_A(t.rowModelType,t.rowDragManaged),getRowHeight:t.getRowHeight,rowHeightMin:t.rowHeightMin,rowHeightMax:t.rowHeightMax,enableCellSpan:t.enableCellSpan,enableCellEditorCache:t.enableCellEditorCache,cellEditorCacheMaxEntries:t.cellEditorCacheMaxEntries,masterDetail:t.masterDetail,isRowMaster:t.isRowMaster,masterDefaultExpanded:t.masterDefaultExpanded,detailRowHeight:t.detailRowHeight,detailRowAutoHeight:t.detailRowAutoHeight,embedFullWidthRows:t.embedFullWidthRows,showExpandColumn:t.showExpandColumn,getDetailRowData:t.getDetailRowData,detailCellRenderer:dA(t.detailCellRenderer,i),loadMoreRowEnabled:t.loadMoreRow?.enabled??!1,loadMoreRowHeight:t.loadMoreRow?.height,loadMoreRowLoading:t.loadMoreRow?.loading??!1,loadMoreRowHasMore:t.loadMoreRow?.hasMore,loadMoreRowLabels:t.loadMoreRow?.labels,loadMoreRowRenderer:uA(t.loadMoreRowRenderer,i),rowGrouping:t.rowGrouping,groupDefaultExpanded:t.groupDefaultExpanded,showGroupHeader:t.showGroupHeader,showGroupFooter:t.showGroupFooter,groupDisplayType:t.groupDisplayType,showGroupColumn:t.showGroupColumn,autoGroupColumnDef:t.autoGroupColumnDef,groupKeyCreator:t.groupKeyCreator,groupComparator:t.groupComparator,groupSortKey:t.groupSortKey,groupFooterLabel:t.groupFooterLabel,groupCellRenderer:t.groupCellRenderer,tree:t.tree,getDataPath:t.getDataPath,showTreeColumn:t.showTreeColumn,autoTreeColumnDef:t.autoTreeColumnDef,treeValueGetter:t.treeValueGetter,treeDisplayType:t.treeDisplayType,treeDragScope:t.treeDragScope,treeHierarchyActions:t.treeHierarchyActions,setDataPath:t.setDataPath,treeLazyLoad:t.treeLazyLoad,hasTreeChildren:t.hasTreeChildren,loadTreeChildren:t.loadTreeChildren,cellCommentsDataSource:t.cellCommentsDataSource,suppressCellComments:t.suppressCellComments,cellCommentTrigger:t.cellCommentTrigger,cellCommentShowDelay:t.cellCommentShowDelay,cellCommentHideDelay:t.cellCommentHideDelay,cellSelection:S.value,enableCellCopy:t.enableCellCopy,enableCellPaste:t.enableCellPaste,enableHeaderHighlight:t.enableHeaderHighlight,enableIndexColumnHighlight:t.enableIndexColumnHighlight,processCellForClipboard:t.processCellForClipboard,processCellFromClipboard:t.processCellFromClipboard,processDataFromClipboard:t.processDataFromClipboard,enableTooltips:t.enableTooltips,tooltipShowMode:t.tooltipShowMode,tooltipShowDelay:t.tooltipShowDelay,tooltipSwitchShowDelay:t.tooltipSwitchShowDelay,tooltipHideDelay:t.tooltipHideDelay,tooltipInteraction:t.tooltipInteraction,tooltipMouseTrack:t.tooltipMouseTrack,tooltipComponent:sA(t.tooltipComponent,i),tooltipComponentParams:t.tooltipComponentParams,...lA(t,i),cellRenderers:{byColId:aA(t.columns,i)},cellEditors:{byColId:oA(t.columns,i),byName:t.cellEditorRegistry},onUnmountRenderer:e=>{fA(e)},onUnmountEditor:e=>{pA(e)}}),l.value=c.value.getApi();let s=l.value;s&&M(s),A(),N(c.value),t.rowModelType!==`infinite`&&c.value.setData(t.data),u=!1,s&&p(s),j(),P(),(0,n.nextTick)(()=>F())};return(0,n.onMounted)(()=>{I()}),(0,n.watch)(x,P),(0,n.watch)(()=>t.cellColor,P,{deep:!0}),(0,n.watch)(()=>t.quickFilterText,e=>{let t=c.value?.getApi();!t||t.getQuickFilterText()===e||t.setQuickFilterText(e)}),(0,n.watch)(()=>[t.cellCommentsDataSource,t.suppressCellComments,t.cellCommentTrigger,t.cellCommentShowDelay,t.cellCommentHideDelay],()=>{c.value?.updateCellCommentOptions({cellCommentsDataSource:t.cellCommentsDataSource,suppressCellComments:t.suppressCellComments,cellCommentTrigger:t.cellCommentTrigger,cellCommentShowDelay:t.cellCommentShowDelay,cellCommentHideDelay:t.cellCommentHideDelay})}),(0,n.watch)(()=>[S.value,t.enableCellCopy,t.enableCellPaste],()=>{c.value?.updateCellSelectionOptions({cellSelection:S.value,enableCellCopy:t.enableCellCopy,enableCellPaste:t.enableCellPaste})}),(0,n.watch)(()=>[t.enableHeaderHighlight,t.enableIndexColumnHighlight],()=>{c.value?.updateCellRangeVisualOptions({enableHeaderHighlight:t.enableHeaderHighlight,enableIndexColumnHighlight:t.enableIndexColumnHighlight})}),(0,n.watch)(()=>[t.processCellForClipboard,t.processCellFromClipboard,t.processDataFromClipboard],()=>{c.value?.updateCellClipboardOptions({processCellForClipboard:t.processCellForClipboard,processCellFromClipboard:t.processCellFromClipboard,processDataFromClipboard:t.processDataFromClipboard})}),(0,n.watch)(()=>[t.enableTooltips,t.tooltipShowMode,t.tooltipShowDelay,t.tooltipSwitchShowDelay,t.tooltipHideDelay,t.tooltipInteraction,t.tooltipMouseTrack,t.tooltipComponent,t.tooltipComponentParams,i.tooltip],()=>{c.value?.updateOverflowTooltipOptions({enableTooltips:t.enableTooltips,tooltipShowMode:t.tooltipShowMode,tooltipShowDelay:t.tooltipShowDelay,tooltipSwitchShowDelay:t.tooltipSwitchShowDelay,tooltipHideDelay:t.tooltipHideDelay,tooltipInteraction:t.tooltipInteraction,tooltipMouseTrack:t.tooltipMouseTrack,tooltipComponent:sA(t.tooltipComponent,i),tooltipComponentParams:t.tooltipComponentParams})}),(0,n.watch)(()=>[t.loadMoreRow?.enabled,t.loadMoreRow?.height,t.loadMoreRow?.loading,t.loadMoreRow?.hasMore,t.loadMoreRow?.labels,t.loadMoreRowRenderer,i[`load-more-row`]],()=>{c.value?.updateLoadMoreRowOptions({loadMoreRowEnabled:t.loadMoreRow?.enabled??!1,loadMoreRowHeight:t.loadMoreRow?.height,loadMoreRowLoading:t.loadMoreRow?.loading??!1,loadMoreRowHasMore:t.loadMoreRow?.hasMore,loadMoreRowLabels:t.loadMoreRow?.labels,loadMoreRowRenderer:uA(t.loadMoreRowRenderer,i)})}),(0,n.watch)(()=>[t.loading,t.suppressOverlays,t.suppressLoadingOverlay,t.suppressNoRowsOverlay,t.suppressNoMatchingRowsOverlay,t.overlayLoadingTemplate,t.overlayNoRowsTemplate,t.overlayNoMatchingRowsTemplate,t.overlayInteraction,t.loadingOverlayComponent,t.loadingOverlayComponentParams,t.noRowsOverlayComponent,t.noRowsOverlayComponentParams,t.noMatchingRowsOverlayComponent,t.noMatchingRowsOverlayComponentParams,t.overlayComponent,t.overlayComponentParams,i.loading,i[`no-rows`],i[`no-matching-rows`]],()=>{c.value?.updateEmptyStateOptions(lA(t,i))}),(0,n.watch)(()=>[t.showStatusBar,s.value],()=>{(0,n.nextTick)(()=>F())}),(0,n.watch)(()=>t.data,e=>{t.rowModelType!==`infinite`&&(c.value?.setData(e),j())}),(0,n.watch)(()=>t.defaultSelectedRows,()=>{A()}),(0,n.watch)(()=>t.selectable,e=>{c.value?.setSelectable(e)}),(0,n.watch)(()=>t.isRowDisabled,e=>{c.value?.setIsRowDisabled(e)}),(0,n.watch)(()=>t.rowStyle,e=>{c.value?.setRowStyle(e)}),(0,n.watch)(()=>t.editableCellStyle,e=>{c.value?.setEditableCellStyle(e)}),(0,n.watch)(()=>t.showEditableCellIcon,e=>{c.value?.setShowEditableCellIcon(e)}),(0,n.watch)(()=>t.disabledCellStyle,e=>{c.value?.setDisabledCellStyle(e)}),(0,n.watch)(()=>t.showDisabledCellIcon,e=>{c.value?.setShowDisabledCellIcon(e)}),(0,n.watch)(()=>t.reserveSelection,e=>{c.value?.setReserveSelection(e)}),(0,n.watch)(()=>t.preserveScrollOnSetData,e=>{c.value?.setPreserveScrollOnSetData(e)}),(0,n.watch)(()=>t.showUnsortedSortHintOnHover,e=>{c.value?.setShowUnsortedSortHintOnHover(e)}),(0,n.watch)(()=>t.sortable,e=>{c.value?.setColumnSortOptions({sortable:e})}),(0,n.watch)(()=>t.enableHeaderSortClick,e=>{c.value?.setColumnSortOptions({enableHeaderSortClick:e})}),(0,n.watch)(()=>t.filterable,e=>{c.value?.setColumnFilterOptions({filterable:e})}),(0,n.watch)(()=>t.resizable,e=>{c.value?.setColumnResizeOptions({resizable:e})}),(0,n.watch)(()=>[t.columnMovable,t.suppressMoveWhenColumnDragging,t.suppressColumnMoveAnimation,t.allowCrossLaneColumnMove],([e,t,n,r])=>{c.value?.setColumnMoveOptions({columnMovable:e,suppressMoveWhenColumnDragging:t,suppressColumnMoveAnimation:n,allowCrossLaneColumnMove:r})}),(0,n.watch)(()=>({rowHeight:y.value.rowHeight,rowHeightMin:t.rowHeightMin,rowHeightMax:t.rowHeightMax}),(e,t)=>{if(!c.value||!t)return;let r=c.value.getMetrics()?.scrollTop??0,i=c.value.getMetrics()?.scrollLeft??0;c.value.updateDimensions(e),(0,n.nextTick)(()=>{c.value?.scrollTo(r,i),requestAnimationFrame(()=>{c.value?.scrollTo(r,i)})})}),(0,n.watch)(()=>t.columns,()=>{c.value&&(c.value.setColumns(e.r(t.columns)),c.value.getApi().refreshCellStyles(),j())}),(0,n.watch)(()=>[t.size,t.headerHeight,t.rowBuffer,t.rowModelType,t.infiniteDatasource,t.blockSize,t.maxBlocksInCache,t.infiniteInitialRowCount,t.infiniteMaxRetries,t.infiniteLoadingRowVisible,t.scrollEndFlushMs,t.frameBudgetMs,t.scrollEndFrameBudgetMs,t.cellRendererDefer,t.deferRowDestroyOnScroll,t.rowKey,t.stripe,t.rowSelection,t.editType,t.editBehavior,t.editorOptions,t.invalidEditValueMode,t.rowValidator,t.asyncRowMutation,t.showIndexColumn,t.indexColumn,t.selectionColumn,t.showSummary,t.floatingFilter,t.navigateHeader,t.navigateFooter,t.summaryScope,t.summaryRowHeight,t.summaryMethod,t.headerAlign,t.headerValign,t.align,t.valign,t.footerAlign,t.footerValign,t.cellEditorRegistry,t.rowDragManaged,t.getRowHeight,t.enableCellSpan,t.enableCellEditorCache,t.cellEditorCacheMaxEntries,t.masterDetail,t.isRowMaster,t.masterDefaultExpanded,t.detailRowHeight,t.detailRowAutoHeight,t.embedFullWidthRows,t.showExpandColumn,t.getDetailRowData,t.detailCellRenderer,t.rowGrouping,t.groupDefaultExpanded,t.showGroupHeader,t.showGroupFooter,t.groupDisplayType,t.showGroupColumn,t.autoGroupColumnDef,t.groupKeyCreator,t.groupComparator,t.groupSortKey,t.groupFooterLabel,t.groupCellRenderer,t.tree,t.getDataPath,t.showTreeColumn,t.autoTreeColumnDef,t.treeValueGetter,t.treeDisplayType,t.treeDragScope,t.treeHierarchyActions,t.setDataPath,t.treeLazyLoad,t.hasTreeChildren,t.loadTreeChildren,i[`detail-row`]],()=>{I()}),(0,n.onUnmounted)(()=>{for(let e of d)e();d.length=0;let e=l.value,t=c.value;t&&e&&f(t,e,`unmount`),c.value?.destroy(),mA(),c.value=void 0,l.value=void 0}),{mountRef:a,portalRef:o,statusBarComponentRef:s,rootClass:O,rootStyle:E,statusBarContext:m,statusBarBindings:(0,n.computed)(()=>({context:m.value,barStyle:D.value,showDefaultPanels:t.showDefaultStatusBarPanels,showStatusBarRangeAggregation:t.showStatusBarRangeAggregation,statusBarRangeAggregationPosition:t.statusBarRangeAggregationPosition})),hasToolbarSlot:v,toolbarContext:T,exposeApi:{get api(){return l.value},getMetrics:()=>c.value?.getMetrics(),scrollTo:(e,t)=>{c.value?.scrollTo(e,t)},setSortModel:e=>{c.value?.setSortModel(e),j()},getSortModel:()=>c.value?.getSortModel()??[],setFilterModel:e=>{c.value?.setFilterModel(e),j()},getData:e=>c.value?.getData(e)??[],applyTransaction:async e=>{let t=await c.value?.applyTransaction(e);return j(),t},beginUpdate:()=>{c.value?.beginUpdate()},endUpdate:()=>{c.value?.endUpdate(),j()},ensureIndexVisible:(e,t)=>{c.value?.ensureIndexVisible(e,t)},flushFrames:()=>{c.value?.flushFrames()},getPendingFrameTaskCount:()=>c.value?.getPendingFrameTaskCount()??0,getPendingRendererTaskCount:()=>c.value?.getPendingRendererTaskCount()??0,setDefaultSelectedRows:(e,t)=>{l.value?.setDefaultSelectedRows(e,t)}}}}var yA=[`data-status-bar`,`data-toolbar`],bA={key:0,class:`magic-grid__toolbar`},xA=(0,n.defineComponent)({inheritAttrs:!1,__name:`MagicGrid`,props:y,emits:`scroll.scroll-start.scroll-end.scroll-top.scroll-bottom.load-more.data-rendered.grid-ready.grid-destroyed.first-rendered.cell-clicked.row-click.row-dblclick.selection-changed.index-focus-changed.cell-value-changed.row-data-changed.rows-data-changed.cell-editing-started.cell-editing-stopped.cell-commit-started.cell-commit-finished.edit-commit-aborted.row-commit-started.row-commit-finished.row-editing-started.row-editing-stopped.row-value-changed.cell-validation-failed.row-validation-failed.sort-changed.column-moved.column-resized.column-pinned.column-hidden-changed.filter-changed.rows-added.rows-removed.row-id-promoted.row-moved.row-drag-end.row-drag-commit-started.row-drag-commit-finished.row-height-changed.row-expanded.row-collapsed.row-group-opened.row-group-changed.tree-node-opened.tree-children-loading.tree-children-loaded.tree-children-load-failed.cell-comment-changed.cell-selection-changed.cell-selection-delete-start.cell-selection-delete-end.overlay-shown.overlay-hidden.infinite-block-loading.infinite-block-loaded.infinite-block-load-failed.infinite-cache-purged`.split(`.`),setup(e,{expose:t,emit:r}){let i=e,a=r,o=(0,n.useSlots)(),{mountRef:s,portalRef:c,statusBarComponentRef:l,exposeApi:u,rootClass:d,rootStyle:f,statusBarContext:p,statusBarBindings:m,hasToolbarSlot:h,toolbarContext:g}=vA(i,a,o);return t(u),(e,t)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{class:(0,n.normalizeClass)((0,n.unref)(d)),style:(0,n.normalizeStyle)((0,n.unref)(f)),"data-status-bar":i.showStatusBar?`true`:`false`,"data-toolbar":(0,n.unref)(h)?`true`:`false`},[(0,n.unref)(h)?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,bA,[(0,n.renderSlot)(e.$slots,`toolbar`,(0,n.normalizeProps)((0,n.guardReactiveProps)((0,n.unref)(g))))])):(0,n.createCommentVNode)(``,!0),(0,n.createElementVNode)(`div`,{ref_key:`mountRef`,ref:s,class:`magic-grid__mount`},null,512),(0,n.createElementVNode)(`div`,{ref_key:`portalRef`,ref:c,class:`magic-grid__portal`,"aria-hidden":`true`},null,512),i.showStatusBar?((0,n.openBlock)(),(0,n.createBlock)(v,(0,n.mergeProps)({key:1,ref_key:`statusBarComponentRef`,ref:l},(0,n.unref)(m),{"has-custom-status-bar-slot":!!(0,n.unref)(o)[`status-bar`],"has-left-slot":!!(0,n.unref)(o)[`status-bar-left`],"has-right-slot":!!(0,n.unref)(o)[`status-bar-right`]}),(0,n.createSlots)({"status-bar-left":(0,n.withCtx)(()=>[(0,n.renderSlot)(e.$slots,`status-bar-left`,(0,n.normalizeProps)((0,n.guardReactiveProps)((0,n.unref)(p))))]),"status-bar-right":(0,n.withCtx)(()=>[(0,n.renderSlot)(e.$slots,`status-bar-right`,(0,n.normalizeProps)((0,n.guardReactiveProps)((0,n.unref)(p))))]),_:2},[(0,n.unref)(o)[`status-bar`]?{name:`status-bar`,fn:(0,n.withCtx)(()=>[(0,n.renderSlot)(e.$slots,`status-bar`,(0,n.normalizeProps)((0,n.guardReactiveProps)((0,n.unref)(p))))]),key:`0`}:void 0]),1040,[`has-custom-status-bar-slot`,`has-left-slot`,`has-right-slot`])):(0,n.createCommentVNode)(``,!0)],14,yA))}}),SA={"sliders-vertical":[[`path`,{d:`M10 8h4`}],[`path`,{d:`M12 21v-9`}],[`path`,{d:`M12 8V3`}],[`path`,{d:`M17 16h4`}],[`path`,{d:`M19 12V3`}],[`path`,{d:`M19 21v-5`}],[`path`,{d:`M3 14h4`}],[`path`,{d:`M5 10V3`}],[`path`,{d:`M5 21v-7`}]],"list-restart":[[`path`,{d:`M21 6H3`}],[`path`,{d:`M7 12H3`}],[`path`,{d:`M7 18H3`}],[`path`,{d:`M12 18a5 5 0 0 0 9-3 4.5 4.5 0 0 0-4.5-4.5c-1.33 0-2.54.54-3.41 1.41L11 14`}],[`path`,{d:`M11 10v4h4`}]],sort:[[`path`,{d:`m21 16-4 4-4-4`}],[`path`,{d:`M17 20V4`}],[`path`,{d:`m3 8 4-4 4 4`}],[`path`,{d:`M7 4v16`}]],filter:[[`path`,{d:`M3 6h18`}],[`path`,{d:`M7 12h10`}],[`path`,{d:`M10 18h4`}]],width:[[`path`,{d:`m18 8 4 4-4 4`}],[`path`,{d:`m6 8-4 4 4 4`}],[`path`,{d:`M2 12h20`}]],order:[[`path`,{d:`M8 3 4 7 8 11`}],[`path`,{d:`M4 7h16`}],[`path`,{d:`m16 21 4-4-4-4`}],[`path`,{d:`M20 17H4`}]],pin:[[`path`,{d:`M12 17v5`}],[`path`,{d:`M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v3.76`}]],all:[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`}],[`path`,{d:`M9 3v18`}],[`path`,{d:`M15 3v18`}]]},CA={class:`mg-column-settings-menu__icon-svg`,xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},wA=(0,n.defineComponent)({__name:`ColumnSettingsMenuIcon`,props:{name:{}},setup(e){let t=e,r=(0,n.computed)(()=>SA[t.name]);return(t,i)=>((0,n.openBlock)(),(0,n.createElementBlock)(`svg`,CA,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(r.value,([t,r],i)=>((0,n.openBlock)(),(0,n.createBlock)((0,n.resolveDynamicComponent)(t),(0,n.mergeProps)({key:`${e.name}-${t}-${i}`},{ref_for:!0},r),null,16))),128))]))}}),TA={key:0,class:`mg-column-settings-menu__item-icon`},EA={class:`mg-column-settings-menu__item-label`},DA=(0,n.defineComponent)({__name:`ColumnSettingsMenuItem`,props:{label:{}},setup(e){return(t,r)=>((0,n.openBlock)(),(0,n.createElementBlock)(`button`,{type:`button`,class:(0,n.normalizeClass)((0,n.unref)(Xs)),role:`menuitem`},[t.$slots.icon?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,TA,[(0,n.renderSlot)(t.$slots,`icon`)])):(0,n.createCommentVNode)(``,!0),(0,n.createElementVNode)(`span`,EA,[(0,n.renderSlot)(t.$slots,`default`,{},()=>[(0,n.createTextVNode)((0,n.toDisplayString)(e.label),1)])])],2))}}),OA=[`aria-expanded`],kA={class:`mg-column-settings-menu__item-leading`},AA={class:`mg-column-settings-menu__item-icon`},jA=(0,n.defineComponent)({__name:`ColumnSettingsMenu`,props:{showDivider:{type:Boolean}},emits:[`column-settings`,`custom-action`,`reset`],setup(e,{emit:t}){let r=t,i=[{scope:`sort`,label:`排序`,icon:`sort`},{scope:`filter`,label:`筛选`,icon:`filter`},{scope:`width`,label:`列宽`,icon:`width`},{scope:`order`,label:`列顺序`,icon:`order`},{scope:`pin`,label:`固定列`,icon:`pin`},{scope:`all`,label:`全部`,icon:`all`}],a=(0,n.ref)(!1),o=(0,n.ref)(!1),s=(0,n.ref)(null),c=(0,n.ref)(null);function l(){r(`column-settings`)}function u(){let e=s.value?.querySelector(`.${nc}`),t=c.value;if(!e||!t)return;o.value=!1;let n=e.getBoundingClientRect(),r=t.offsetWidth;n.right+r>window.innerWidth-8&&(o.value=!0)}async function d(){a.value=!0,await(0,n.nextTick)(),u()}function f(){a.value=!1}function p(e){let t=e.relatedTarget,n=s.value;t instanceof Node&&n?.contains(t)||f()}function m(e){r(`reset`,e)}return(t,r)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{class:(0,n.normalizeClass)((0,n.unref)(Ys)),role:`menu`},[(0,n.createVNode)(DA,{label:`列设置`,onClick:l},{icon:(0,n.withCtx)(()=>[(0,n.createVNode)(wA,{name:`sliders-vertical`})]),_:1}),(0,n.createElementVNode)(`div`,{ref_key:`resetSubmenuRef`,ref:s,class:(0,n.normalizeClass)([(0,n.unref)(ec),{"mg-column-settings-menu__submenu--open":a.value}]),onMouseenter:d,onMouseleave:f,onFocusin:d,onFocusout:p},[(0,n.createElementVNode)(`button`,{type:`button`,class:(0,n.normalizeClass)([(0,n.unref)(Xs),(0,n.unref)(nc)]),role:`menuitem`,"aria-haspopup":`menu`,"aria-expanded":a.value},[(0,n.createElementVNode)(`span`,kA,[(0,n.createElementVNode)(`span`,AA,[(0,n.createVNode)(wA,{name:`list-restart`})]),r[1]||=(0,n.createElementVNode)(`span`,{class:`mg-column-settings-menu__item-label`},`重置`,-1)]),r[2]||=(0,n.createElementVNode)(`svg`,{class:`mg-column-settings-menu__item-chevron`,xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[(0,n.createElementVNode)(`path`,{d:`m9 18 6-6-6-6`})],-1)],10,OA),(0,n.withDirectives)((0,n.createElementVNode)(`div`,{ref_key:`resetSubmenuPanelRef`,ref:c,class:(0,n.normalizeClass)([(0,n.unref)(tc),{"mg-column-settings-menu__submenu-panel--flip":o.value}]),role:`menu`},[((0,n.openBlock)(),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(i,e=>(0,n.createVNode)(DA,{key:e.scope,label:e.label,onClick:t=>m(e.scope)},{icon:(0,n.withCtx)(()=>[(0,n.createVNode)(wA,{name:e.icon},null,8,[`name`])]),_:2},1032,[`label`,`onClick`])),64))],2),[[n.vShow,a.value]])],34),e.showDivider?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{key:0,class:(0,n.normalizeClass)((0,n.unref)($s)),role:`separator`,"aria-orientation":`horizontal`},null,2)):(0,n.createCommentVNode)(``,!0),e.showDivider?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{key:1,class:`mg-column-settings-menu__custom`,onClick:r[0]||=e=>t.$emit(`custom-action`)},[(0,n.renderSlot)(t.$slots,`default`)])):(0,n.createCommentVNode)(``,!0)],2))}}),MA=[`disabled`,`aria-disabled`,`title`],NA=(0,n.defineComponent)({__name:`ColumnSettingsClearFiltersBar`,props:{gridApi:{},canClearAllFilters:{type:Boolean}},emits:[`change`],setup(e,{emit:t}){let r=e,i=t;function a(){r.gridApi.clearAllFilters(),i(`change`)}return(t,r)=>((0,n.openBlock)(),(0,n.createElementBlock)(`button`,{type:`button`,class:(0,n.normalizeClass)((0,n.unref)(rc)),disabled:!e.canClearAllFilters,"aria-disabled":!e.canClearAllFilters,title:e.canClearAllFilters?void 0:`当前无筛选`,onClick:a},` 清除全部筛选 `,10,MA))}});function PA(e){let t=null,n=()=>{t!=null&&(clearTimeout(t),t=null)};return{applyInput(r,i){n();let a=e.getColumnFilterType(r),o=()=>{let t=sw(r,{operatorLogic:i.operatorLogic,operatorConditions:i.operatorConditions,setAllSelected:i.setAllSelected,selectedValues:i.selectedValues},e.getFilterModel(),a);e.setFilterModel(t)};if(i.source===`set`){o();return}t=setTimeout(()=>{t=null,o()},300)},clearColumn(t){n();let r=e.getColumnFilterType(t),i=lw(t,e.getFilterModel());return e.setFilterModel(i),aw(t,i,r,e.getColumnDistinctKeys(t))},destroy(){n()}}}var FA=(0,n.defineComponent)({__name:`ColumnFilterPanelEmbed`,props:{colId:{},gridApi:{},filterSetValueMode:{default:oa},filterSetDateLayoutMode:{default:sa}},emits:[`change`],setup(e,{emit:t}){let r=e,i=t,a=(0,n.ref)(null),o=null,s=null,c=PA({getFilterModel:()=>r.gridApi.getFilterModel(),setFilterModel:e=>{r.gridApi.setFilterModel(e),i(`change`)},getColumnFilterType:e=>r.gridApi.getColumns().find(t=>t.colId===e)?.filterType??`text`,getColumnDistinctKeys:e=>r.gridApi.getColumnDistinctFilterValues(e).map(e=>e.key)});function l(){let e=r.gridApi.getColumns().find(e=>e.colId===r.colId)?.filterType??`text`,t=r.gridApi.getColumnDistinctFilterValues(r.colId).map(e=>e.key);return aw(r.colId,r.gridApi.getFilterModel(),e,t)}function u(){d();let e=a.value;if(!e)return;let t=r.gridApi.getColumns().find(e=>e.colId===r.colId);t?.filterable&&(s=new AbortController,o=Lw({colId:r.colId,filterModel:r.gridApi.getFilterModel(),columnFilterType:t.filterType,distinctFilterValues:r.gridApi.getColumnDistinctFilterValues(r.colId),filterSetValueMode:r.filterSetValueMode,filterSetDateLayoutMode:r.filterSetDateLayoutMode,abortSignal:s.signal,onFilterInput:e=>{c.applyInput(r.colId,e)},onFilterClear:()=>{let e=c.clearColumn(r.colId);e&&o?.panelRoot&&o.syncState(e),i(`change`)}}),e.append(o.root))}function d(){s?.abort(),s=null,o=null,a.value?.replaceChildren()}function f(){o?.panelRoot&&o.syncState(l())}return(0,n.onMounted)(()=>{u()}),(0,n.onBeforeUnmount)(()=>{c.destroy(),d()}),(0,n.watch)(()=>r.colId,()=>{u()}),(0,n.watch)(()=>r.gridApi.getFilterModel(),()=>{f()},{deep:!0}),(e,t)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{ref_key:`hostRef`,ref:a,class:`mg-column-settings__filter-embed`},null,512))}});function IA(e){return e===null?`asc`:e===`asc`?`desc`:null}function LA(e,t,n){return t===null?zC(e,n):t===`asc`?LC(e,n):RC(e,n)}function RA(e,t,n){e.setSortModel(LA(t,n,e.getSortModel()))}function zA(e,t,n){let r=IA(n);return RA(e,t,r),r}function BA(e,t,n){return e.setColumnFixed(t,n)}function VA(e){return e===`asc`?`升序`:e===`desc`?`降序`:`无排序`}function HA(e){return e===`left`?`固定左侧`:e===`right`?`固定右侧`:`不固定`}var UA=`[magic-grid] ColumnSettings: at least one user column must remain visible.`;function WA(e){return e.filter(e=>lc(e.colId)&&zs(e)).length}function GA(e){return e.filter(e=>lc(e.colId)&&e.hidden).map(e=>e.colId)}function KA(e,t){if(!lc(e))return!1;let n=t.find(t=>t.colId===e);return!n||n.hidden?!1:WA(t)>1}function qA(e,t,n,r={}){let i=r.warn??(e=>console.warn(e));return!n&&!KA(t,e.getColumns())?(i(UA),!1):e.setColumnsHidden([t],!n)}function JA(e){let t=GA(e.getColumns());return t.length!==0&&e.setColumnsHidden(t,!1)}var YA=[`data-col-id`],XA={class:`mg-column-settings__row-main`},ZA=[`draggable`,`aria-disabled`,`title`],QA=[`title`],$A={key:1,class:`mg-column-settings__row-actions`},ej=[`aria-label`,`title`],tj=[`aria-expanded`,`aria-label`],nj=[`aria-label`],rj=[`aria-checked`,`aria-label`,`title`,`onClick`],ij=[`title`],aj=[`checked`,`aria-label`],oj=(0,n.defineComponent)({__name:`ColumnSettingsRow`,props:{row:{},gridApi:{},draggable:{type:Boolean},dragOver:{type:Boolean},dragging:{type:Boolean},showSort:{type:Boolean,default:!0},showPin:{type:Boolean,default:!0},showFilter:{type:Boolean,default:!0},showVisibility:{type:Boolean,default:!0},showDragHandle:{type:Boolean,default:!0},filterSetValueMode:{default:oa},filterSetDateLayoutMode:{default:sa}},emits:[`dragstart`,`dragend`,`change`],setup(e,{emit:t}){let r=e,i=t,a=(0,n.ref)(!1),o=[null,`left`,`right`];function s(){!r.gridApi||!r.row.sortable||(zA(r.gridApi,r.row.colId,r.row.sortDirection),i(`change`))}function c(e){!r.gridApi||r.row.fixed===e||BA(r.gridApi,r.row.colId,e)&&i(`change`)}function l(){a.value=!a.value}function u(e){if(!r.gridApi)return;let t=e.target,n=t.checked;if(!qA(r.gridApi,r.row.colId,n)){t.checked=!n;return}i(`change`)}function d(e){if(!r.draggable){e.preventDefault();return}i(`dragstart`,e)}function f(e){r.draggable&&i(`dragend`,e)}return(t,r)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{class:(0,n.normalizeClass)([(0,n.unref)(oc),{[(0,n.unref)(sc)]:e.row.filterActive,"mg-column-settings__row--drag-over":e.dragOver,"mg-column-settings__row--dragging":e.dragging}]),"data-col-id":e.row.colId},[(0,n.createElementVNode)(`div`,XA,[e.showDragHandle?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,{key:0,class:(0,n.normalizeClass)([`mg-column-settings__drag-handle`,{"mg-column-settings__drag-handle--disabled":!e.draggable}]),draggable:e.draggable===!0,"aria-disabled":e.draggable?void 0:`true`,title:e.draggable?`拖拽调整列顺序`:`此列不可拖拽`,onDragstart:d,onDragend:f},` ≡ `,42,ZA)):(0,n.createCommentVNode)(``,!0),(0,n.createElementVNode)(`span`,{class:`mg-column-settings__row-label`,title:e.row.label},(0,n.toDisplayString)(e.row.label),9,QA),e.gridApi?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,$A,[e.showSort&&e.row.sortable?((0,n.openBlock)(),(0,n.createElementBlock)(`button`,{key:0,type:`button`,class:(0,n.normalizeClass)([`mg-column-settings__sort-button`,{"mg-column-settings__sort-button--asc":e.row.sortDirection===`asc`,"mg-column-settings__sort-button--desc":e.row.sortDirection===`desc`}]),"aria-label":`${e.row.label} 排序:${(0,n.unref)(VA)(e.row.sortDirection)}`,title:(0,n.unref)(VA)(e.row.sortDirection),onClick:s},(0,n.toDisplayString)(e.row.sortDirection===`asc`?`↑`:e.row.sortDirection===`desc`?`↓`:`↕`),11,ej)):(0,n.createCommentVNode)(``,!0),e.showFilter&&e.row.filterable?((0,n.openBlock)(),(0,n.createElementBlock)(`button`,{key:1,type:`button`,class:(0,n.normalizeClass)([`mg-column-settings__filter-button`,{"mg-column-settings__filter-button--active":e.row.filterActive||a.value}]),"aria-expanded":a.value,"aria-label":`${e.row.label} 筛选`,title:`筛选`,onClick:l},[...r[1]||=[(0,n.createElementVNode)(`svg`,{class:`mg-column-settings__filter-icon`,xmlns:`http://www.w3.org/2000/svg`,width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[(0,n.createElementVNode)(`path`,{d:`M3 6h18`}),(0,n.createElementVNode)(`path`,{d:`M7 12h10`}),(0,n.createElementVNode)(`path`,{d:`M10 18h4`})],-1)]],10,tj)):(0,n.createCommentVNode)(``,!0),e.showPin?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{key:2,class:`mg-column-settings__pin-group`,role:`radiogroup`,"aria-label":`${e.row.label} 固定列`},[((0,n.openBlock)(),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(o,t=>(0,n.createElementVNode)(`button`,{key:t??`none`,type:`button`,class:(0,n.normalizeClass)([`mg-column-settings__pin-button`,{"mg-column-settings__pin-button--active":e.row.fixed===t}]),role:`radio`,"aria-checked":e.row.fixed===t,"aria-label":(0,n.unref)(HA)(t),title:(0,n.unref)(HA)(t),onClick:e=>c(t)},(0,n.toDisplayString)(t===`left`?`左`:t===`right`?`右`:`中`),11,rj)),64))],8,nj)):(0,n.createCommentVNode)(``,!0),e.showVisibility?((0,n.openBlock)(),(0,n.createElementBlock)(`label`,{key:3,class:`mg-column-settings__visibility`,title:e.row.hidden?`显示列`:`隐藏列`},[(0,n.createElementVNode)(`input`,{type:`checkbox`,class:`mg-column-settings__visibility-input`,checked:!e.row.hidden,"aria-label":`${e.row.label} 显示列`,onChange:u},null,40,aj),r[2]||=(0,n.createElementVNode)(`span`,{class:`mg-column-settings__visibility-label`,"aria-hidden":`true`},`显示`,-1)],8,ij)):(0,n.createCommentVNode)(``,!0)])):(0,n.createCommentVNode)(``,!0)]),a.value&&e.gridApi&&e.row.filterable?((0,n.openBlock)(),(0,n.createBlock)(FA,{key:0,class:`mg-column-settings__filter-panel`,"col-id":e.row.colId,"grid-api":e.gridApi,"filter-set-value-mode":e.filterSetValueMode,"filter-set-date-layout-mode":e.filterSetDateLayoutMode,onChange:r[0]||=e=>i(`change`)},null,8,[`col-id`,`grid-api`,`filter-set-value-mode`,`filter-set-date-layout-mode`])):(0,n.createCommentVNode)(``,!0)],10,YA))}});function sj(e,t){return lc(e.colId)&&!e.hidden&&uc(e.fixed)===t}function cj(e,t){return e.filter(e=>sj(e,t))}function lj(e,t,n,r){let i=cj(e,t),a=i.findIndex(e=>e.colId===n);if(a<0||!e.find(e=>e.colId===n)?.movable)return null;let o=Math.max(0,Math.min(r,i.length-1));if(a===o)return null;let s=i.map(e=>e.colId);s.splice(a,1),s.splice(o,0,n),e.map(e=>e.colId);let c=[],l=0;for(let n of e){if(sj(n,t)){let e=s[l];if(!e)return null;c.push(e),l+=1;continue}c.push(n.colId)}return c}function uj(e){let t=lj(e.columns,e.lane,e.colId,e.toDisplayIndex);if(!t)return null;let n=e.columns.findIndex(t=>t.colId===e.colId);if(n<0)return null;let r=t.indexOf(e.colId);if(r<0||n===r)return null;let i=fg(e.columns),a=e.columns;return!xg({columns:a,colId:e.colId,toGlobalIndex:r,fixedGroups:i,allowCrossLaneColumnMove:!1})||!Cg({columns:a,colId:e.colId,toGlobalIndex:r,fixedGroups:i,allowCrossLaneColumnMove:!1})?null:r}function dj(e,t,n,r){let i=uj({columns:e.getColumns(),lane:t,colId:n,toDisplayIndex:r});return i!=null&&(e.moveColumn(n,i),!0)}var fj=[`aria-label`],pj={class:`mg-column-settings__rows`},mj=[`onDragover`,`onDrop`],hj=(0,n.defineComponent)({__name:`ColumnSettingsList`,props:{lane:{},rows:{},gridApi:{},showFilter:{type:Boolean},showVisibility:{type:Boolean}},emits:[`reorder`,`change`],setup(e,{emit:t}){let r={left:`固定左侧列`,center:`中间列`,right:`固定右侧列`},i=e,a=t,o=(0,n.ref)(null),s=(0,n.ref)(null);function c(e,t){if(!i.rows.find(t=>t.colId===e)?.movable){t.preventDefault();return}o.value=e,s.value=i.rows.findIndex(t=>t.colId===e),t.dataTransfer?.setData(`text/plain`,e),t.dataTransfer&&(t.dataTransfer.effectAllowed=`move`)}function l(e,t){t.preventDefault(),t.dataTransfer&&(t.dataTransfer.dropEffect=`move`),s.value=e}function u(e,t){t.preventDefault();let n=o.value??t.dataTransfer?.getData(`text/plain`);if(!n){d();return}dj(i.gridApi,i.lane,n,e)&&(a(`reorder`),a(`change`)),d()}function d(){o.value=null,s.value=null}return(t,i)=>e.rows.length>0?((0,n.openBlock)(),(0,n.createElementBlock)(`section`,{key:0,class:(0,n.normalizeClass)([(0,n.unref)(ic),`mg-column-settings__group--${e.lane}`]),"aria-label":r[e.lane]},[(0,n.createElementVNode)(`div`,pj,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(e.rows,(t,r)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{key:t.colId,class:`mg-column-settings__row-host`,onDragover:e=>l(r,e),onDrop:e=>u(r,e)},[(0,n.createVNode)(oj,{row:t,"grid-api":e.gridApi,draggable:t.movable,"drag-over":s.value===r&&o.value!==t.colId,dragging:o.value===t.colId,"show-filter":e.showFilter,"show-visibility":e.showVisibility,onDragstart:e=>c(t.colId,e),onDragend:d,onChange:i[0]||=e=>a(`change`)},null,8,[`row`,`grid-api`,`draggable`,`drag-over`,`dragging`,`show-filter`,`show-visibility`,`onDragstart`])],40,mj))),128))])],10,fj)):(0,n.createCommentVNode)(``,!0)}}),gj={class:`mg-column-settings__groups`},_j={class:`mg-column-settings__visible-lanes`},vj={class:`mg-column-settings__hidden-divider`},yj={class:`mg-column-settings__hidden-divider-center`},bj=[`aria-expanded`],xj={key:0,class:`mg-column-settings__hidden-toggle-icon`,xmlns:`http://www.w3.org/2000/svg`,width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},Sj={key:1,class:`mg-column-settings__hidden-toggle-icon`,xmlns:`http://www.w3.org/2000/svg`,width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},Cj={class:`mg-column-settings__hidden-rows`},wj={class:`mg-column-settings__rows`},Tj=(0,n.defineComponent)({__name:`ColumnSettingsGroupedLists`,props:{grouped:{},gridApi:{},showFilter:{type:Boolean},showVisibility:{type:Boolean,default:!0}},emits:[`reorder`,`change`],setup(e,{emit:t}){let r=e,i=t,a=(0,n.ref)(!0);function o(){JA(r.gridApi)&&i(`change`)}return(t,r)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,gj,[(0,n.createElementVNode)(`div`,_j,[(0,n.createVNode)(hj,{lane:`left`,rows:e.grouped.left,"grid-api":e.gridApi,"show-filter":e.showFilter,"show-visibility":e.showVisibility,onReorder:r[0]||=e=>i(`reorder`),onChange:r[1]||=e=>i(`change`)},null,8,[`rows`,`grid-api`,`show-filter`,`show-visibility`]),(0,n.createVNode)(hj,{lane:`center`,rows:e.grouped.center,"grid-api":e.gridApi,"show-filter":e.showFilter,"show-visibility":e.showVisibility,onReorder:r[2]||=e=>i(`reorder`),onChange:r[3]||=e=>i(`change`)},null,8,[`rows`,`grid-api`,`show-filter`,`show-visibility`]),(0,n.createVNode)(hj,{lane:`right`,rows:e.grouped.right,"grid-api":e.gridApi,"show-filter":e.showFilter,"show-visibility":e.showVisibility,onReorder:r[4]||=e=>i(`reorder`),onChange:r[5]||=e=>i(`change`)},null,8,[`rows`,`grid-api`,`show-filter`,`show-visibility`])]),e.grouped.hidden.length>0?((0,n.openBlock)(),(0,n.createElementBlock)(`section`,{key:0,class:(0,n.normalizeClass)((0,n.unref)(cc))},[(0,n.createElementVNode)(`div`,vj,[r[10]||=(0,n.createElementVNode)(`span`,{class:`mg-column-settings__hidden-divider-line`,"aria-hidden":`true`},null,-1),(0,n.createElementVNode)(`div`,yj,[(0,n.createElementVNode)(`button`,{type:`button`,class:`mg-column-settings__hidden-toggle`,"aria-expanded":a.value,onClick:r[6]||=e=>a.value=!a.value},[(0,n.createTextVNode)(` 隐藏 (`+(0,n.toDisplayString)(e.grouped.hidden.length)+`) `,1),a.value?((0,n.openBlock)(),(0,n.createElementBlock)(`svg`,xj,[...r[8]||=[(0,n.createStaticVNode)(`<path d="m3 8 4-4 4 4"></path><path d="M7 4v16"></path><path d="M11 12h10"></path><path d="M11 16h7"></path><path d="M11 20h4"></path>`,5)]])):((0,n.openBlock)(),(0,n.createElementBlock)(`svg`,Sj,[...r[9]||=[(0,n.createStaticVNode)(`<path d="m3 16 4 4 4-4"></path><path d="M7 20V4"></path><path d="M11 4h10"></path><path d="M11 8h7"></path><path d="M11 12h4"></path>`,5)]]))],8,bj),(0,n.createElementVNode)(`button`,{type:`button`,class:`mg-column-settings__hidden-show-all`,onClick:o},` 显示全部 `)]),r[11]||=(0,n.createElementVNode)(`span`,{class:`mg-column-settings__hidden-divider-line`,"aria-hidden":`true`},null,-1)]),(0,n.withDirectives)((0,n.createElementVNode)(`div`,Cj,[(0,n.createElementVNode)(`h4`,{class:(0,n.normalizeClass)([(0,n.unref)(ac),`mg-column-settings__sr-only`])},` 已隐藏列 `,2),(0,n.createElementVNode)(`div`,wj,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(e.grouped.hidden,t=>((0,n.openBlock)(),(0,n.createBlock)(oj,{key:t.colId,row:t,"grid-api":e.gridApi,"show-sort":!1,"show-pin":!1,"show-filter":!1,"show-visibility":e.showVisibility,"show-drag-handle":!1,onChange:r[7]||=e=>i(`change`)},null,8,[`row`,`grid-api`,`show-visibility`]))),128))])],512),[[n.vShow,a.value]])],2)):(0,n.createCommentVNode)(``,!0)]))}});function Ej(e){return{colId:e.colId,label:e.label,prop:e.prop,movable:e.movable,sortable:e.sortable,filterable:e.filterable,fixed:e.fixed??null,hidden:e.hidden}}function Dj(e){return e.map(Ej)}function Oj(e,t={}){return pc({columns:Dj(e.getColumns()),sortModel:e.getSortModel(),filterModel:e.getFilterModel(),isColumnFilterActive:t=>e.isColumnFilterActive(t),includeHidden:t.includeHidden})}function kj(e,t={}){let n=Oj(e,t);return{rows:n,grouped:mc(n),canClearAllFilters:e.isAnyFilterActive()}}var Aj=[`sortChanged`,`filterChanged`,`columnMoved`,`columnPinned`,`columnHiddenChanged`];function jj(e,t){let n=Aj.map(n=>e.on(n,t));return()=>{for(let e of n)e()}}var Mj={class:`mg-column-settings__header-leading`},Nj=(0,n.defineComponent)({__name:`ColumnSettingsPanel`,props:{gridApi:{},open:{type:Boolean,default:!0},showVisibility:{type:Boolean,default:!0},showFilter:{type:Boolean,default:!0}},emits:[`close`],setup(e,{emit:t}){let r=e,i=t,a=(0,n.shallowRef)(kj(r.gridApi)),o=null;function s(){a.value=kj(r.gridApi)}function c(){l(),s(),o=jj(r.gridApi,s)}function l(){o?.(),o=null}(0,n.watch)(()=>r.open,e=>{if(e){c();return}l()},{immediate:!0}),(0,n.watch)(()=>r.gridApi,()=>{r.open&&s()}),(0,n.onBeforeUnmount)(()=>{l()});function u(){s()}return(t,r)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{class:(0,n.normalizeClass)((0,n.unref)(Us)),role:`document`,"aria-label":`列设置`},[(0,n.createElementVNode)(`header`,{class:(0,n.normalizeClass)((0,n.unref)(Ws))},[(0,n.createElementVNode)(`div`,Mj,[r[1]||=(0,n.createStaticVNode)(`<div class="mg-column-settings__title-group"><svg class="mg-column-settings__title-icon" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M10 8h4"></path><path d="M12 21v-9"></path><path d="M12 8V3"></path><path d="M17 16h4"></path><path d="M19 12V3"></path><path d="M19 21v-5"></path><path d="M3 14h4"></path><path d="M5 10V3"></path><path d="M5 21v-7"></path></svg><h3 class="mg-column-settings__title">列设置</h3></div>`,1),(0,n.createVNode)(NA,{"grid-api":e.gridApi,"can-clear-all-filters":a.value.canClearAllFilters,onChange:u},null,8,[`grid-api`,`can-clear-all-filters`])]),(0,n.createElementVNode)(`button`,{type:`button`,class:`mg-column-settings__close`,"aria-label":`关闭列设置`,onClick:r[0]||=e=>i(`close`)},` × `)],2),(0,n.createElementVNode)(`div`,{class:(0,n.normalizeClass)((0,n.unref)(Gs))},[(0,n.createVNode)(Tj,{grouped:a.value.grouped,"grid-api":e.gridApi,"show-filter":e.showFilter,"show-visibility":e.showVisibility,onChange:u,onReorder:u},null,8,[`grouped`,`grid-api`,`show-filter`,`show-visibility`])],2)],2))}});function Pj(e){e.getSortModel().length!==0&&e.setSortModel([])}function Fj(e){e.clearAllFilters()}function Ij(e){e.resetColumnWidths()}function Lj(e){let t=e.getColumns(),n=jD(t);MD(t.map(e=>e.colId),n)||e.resetColumnOrder()}function Rj(e){for(let t of e.getColumns())!lc(t.colId)||t.fixed===null||e.setColumnFixed(t.colId,null)}function zj(e,t){switch(t){case`sort`:Pj(e);break;case`filter`:Fj(e);break;case`width`:Ij(e);break;case`order`:Lj(e);break;case`pin`:Rj(e);break;case`all`:Pj(e),Fj(e),Ij(e),Lj(e),Rj(e)}}var Bj=[`disabled`,`aria-expanded`,`aria-label`,`title`],Vj=(0,n.defineComponent)({__name:`ColumnSettingsButton`,props:{gridApi:{},portalEl:{},label:{},disabled:{type:Boolean},size:{},open:{type:Boolean},defaultOpen:{type:Boolean},showVisibility:{type:Boolean,default:!0},showFilter:{type:Boolean,default:!0}},emits:[`update:open`,`open`,`close`],setup(e,{emit:t}){let r=e,i=t,a=(0,n.useSlots)(),o=(0,n.ref)(null),s=(0,n.ref)(null),c=(0,n.ref)(null),l=(0,n.ref)(!1),u=(0,n.ref)(r.open??r.defaultOpen??!1),d=(0,n.ref)(0),f=!1;function p(){let e=r.portalEl;return e instanceof HTMLElement&&e.isConnected?e:`body`}let m=(0,n.computed)(()=>p()),h=(0,n.computed)(()=>{let e=a.menu;return e?e().some(e=>e.type!==n.Comment):!1}),g=(0,n.computed)(()=>l.value||u.value),_=(0,n.computed)(()=>r.size?rr(r.size):void 0);(0,n.watch)(()=>r.open,e=>{e!==void 0&&(u.value=e,e&&(l.value=!1))});function v(e){if(r.disabled&&e)return;let t=u.value;u.value=e,i(`update:open`,e),e?(l.value=!1,i(`open`),f=!0,queueMicrotask(()=>{f=!1})):t&&i(`close`)}function y(e){r.disabled&&e||(l.value=e,e&&(f=!0,queueMicrotask(()=>{f=!1})))}function b(){if(!r.disabled){if(u.value){v(!1);return}y(!l.value)}}function x(){v(!0)}function S(e){zj(r.gridApi,e),w()}function C(){u.value&&v(!1)}function w(){l.value&&=!1}function T(){w(),C()}function E(e,t){let n=o.value;if(!n||!e)return;e.style.visibility=`hidden`,e.style.position=`fixed`,e.style.left=`0`,e.style.top=`0`;let r=n.getBoundingClientRect(),i=e.getBoundingClientRect(),{left:a,top:s}=t(r,i.width,i.height);e.style.left=`${a}px`,e.style.top=`${s}px`,e.style.visibility=``}function D(){E(s.value,sT)}function O(){E(c.value,oT)}function k(){l.value&&D(),u.value&&O()}(0,n.watch)(l,async e=>{e&&(await(0,n.nextTick)(),D())}),(0,n.watch)(u,async e=>{e&&(await(0,n.nextTick)(),O())}),(0,n.watch)(()=>[r.portalEl,r.size],()=>{T(),d.value+=1});function A(){let e=r.portalEl;if(!e)return;if(l.value||u.value){e.removeAttribute(`aria-hidden`);return}e.setAttribute(`aria-hidden`,`true`);let t=document.activeElement;t instanceof HTMLElement&&e.contains(t)&&(t.blur(),o.value?.focus())}(0,n.watch)([l,u],()=>{A()});function j(e){if(e.key===`Escape`){if(u.value){e.preventDefault(),e.stopPropagation(),C();return}l.value&&(e.preventDefault(),e.stopPropagation(),w())}}function M(e){if(!l.value&&!u.value||f||e.button!==0)return;let t=e.target;t instanceof Node&&(o.value?.contains(t)||s.value?.contains(t)||c.value?.contains(t)||T())}return(0,n.onMounted)(()=>{A(),document.addEventListener(`keydown`,j,!0),document.addEventListener(`pointerdown`,M,!0),window.addEventListener(`resize`,k),window.addEventListener(`scroll`,k,!0)}),(0,n.onBeforeUnmount)(()=>{l.value=!1,u.value=!1,A(),document.removeEventListener(`keydown`,j,!0),document.removeEventListener(`pointerdown`,M,!0),window.removeEventListener(`resize`,k),window.removeEventListener(`scroll`,k,!0)}),(t,r)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{class:(0,n.normalizeClass)((0,n.unref)(Ks)),style:(0,n.normalizeStyle)(_.value)},[(0,n.createElementVNode)(`button`,{ref_key:`triggerRef`,ref:o,type:`button`,class:`mg-column-settings-button__trigger`,disabled:e.disabled,"aria-haspopup":`menu`,"aria-expanded":g.value,"aria-label":e.label??`表格设置`,title:e.label??`表格设置`,onClick:b},[...r[0]||=[(0,n.createElementVNode)(`svg`,{class:`mg-column-settings-button__icon`,xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[(0,n.createElementVNode)(`path`,{d:`M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915`}),(0,n.createElementVNode)(`circle`,{cx:`12`,cy:`12`,r:`3`})],-1)]],8,Bj),((0,n.openBlock)(),(0,n.createBlock)(n.Teleport,{key:d.value,to:m.value},[l.value?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{key:0,class:(0,n.normalizeClass)((0,n.unref)(qs))},[(0,n.createElementVNode)(`div`,{ref_key:`menuRef`,ref:s,class:(0,n.normalizeClass)((0,n.unref)(Js))},[(0,n.createVNode)(jA,{"show-divider":h.value,onColumnSettings:x,onCustomAction:w,onReset:S},{default:(0,n.withCtx)(()=>[(0,n.renderSlot)(t.$slots,`menu`)]),_:3},8,[`show-divider`])],2)],2)):(0,n.createCommentVNode)(``,!0),u.value?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{key:1,class:(0,n.normalizeClass)((0,n.unref)(qs))},[(0,n.createElementVNode)(`div`,{ref_key:`panelRef`,ref:c,class:(0,n.normalizeClass)((0,n.unref)(Js)),role:`dialog`,"aria-modal":`false`,"aria-label":`列设置面板`},[(0,n.createVNode)(Nj,{"grid-api":e.gridApi,open:u.value,"show-visibility":e.showVisibility,"show-filter":e.showFilter,onClose:C},null,8,[`grid-api`,`open`,`show-visibility`,`show-filter`])],2)],2)):(0,n.createCommentVNode)(``,!0)],8,[`to`]))],6))}}),Hj={input:{deferEnterCommit:!1,commitOnChange:!1},overlay:{deferEnterCommit:!0,commitOnChange:!0}};async function Uj(e){e&&await e()}function Wj(e,t){let r=Hj[t.strategy??`input`],i=t.formatValue??(e=>String(e??``)),a=t.commitOnChange??r.commitOnChange,o=t.autoFocus!==!1;e.setGetValue?.(()=>i(t.getValue())),e.setKeyboardPolicy?.({deferEnterCommit:r.deferEnterCommit,suppressInitialAutoFocus:!o||void 0}),(0,n.onMounted)(()=>{(async()=>{await Uj(t.onMount),e.autoFocus!==!1&&await Uj(t.onStart)})()}),(0,n.onUnmounted)(()=>{Uj(t.onDestroy)});function s(){(async()=>{await Uj(t.onBeforeCommit);let n=await e.stopEditing(!0);n!=null&&n.committed===!0&&await Uj(t.onAfterCommit)})()}function c(){(async()=>{await Uj(t.onBeforeCancel),await e.stopEditing(!1)!=null&&await Uj(t.onAfterCancel)})()}function l(){a&&s()}function u(e){if(e instanceof KeyboardEvent){if(e.key===`Enter`){r.deferEnterCommit&&(0,n.nextTick)(s);return}e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),c())}}return{onKeydown:u,onChange:l,commit:s,cancel:c}}function Gj(e){return new Promise(t=>{requestAnimationFrame(()=>{let n=e.value;typeof n?.focus==`function`&&n.focus(),t()})})}function Kj(e){return(0,n.computed)(()=>e.value?.api)}function qj(e){let t={};return e.onReady&&(t[`onGrid-ready`]=e.onReady),e.onDestroyed&&(t[`onGrid-destroyed`]=e.onDestroyed),e.onFirstRendered&&(t[`onFirst-rendered`]=e.onFirstRendered),t}function Jj(e,t){return e.getRowNode(t)!=null}function Yj(e){let t=new Set,n=[],r=e=>{if(e==null||e===``)return;let r=String(e);t.has(r)||(t.add(r),n.push(e))};for(let t of e.selectedRowIds)r(t);for(let t of e.selectedRows)(t.rowId==null||t.rowId===``)&&r(t.internalRowId);return n}function Xj(e){let{currentIntent:t,materializedIds:n,isInModel:r}=e,i=[...t].filter(e=>!r(e));return[...new Set([...n,...i])]}function Zj(e,t){let n=[],r=[];for(let i of e)t(i)?n.push(i):r.push(i);return{onModel:n,offModel:r}}function Qj(e){return[...new Set(e)]}function $j(e){return Qj((0,n.toValue)(e))}function eM(e,t){let r=t.syncPendingOnInteraction!==!1,i=(0,n.shallowRef)($j(t.initialIntent));(0,n.watch)(()=>$j(t.initialIntent),e=>{i.value=e});let a=(0,n.computed)(()=>new Set(i.value));function o(t){let r=(0,n.toValue)(e);return r!=null&&Jj(r,t)}let s=(0,n.computed)(()=>Zj(a.value,o)),c=(0,n.computed)(()=>s.value.offModel),l=(0,n.computed)(()=>s.value.onModel);function u(e){i.value=Qj(e)}function d(e){i.value=Qj([...i.value,...e])}function f(){i.value=$j(t.initialIntent)}function p(){let t=(0,n.toValue)(e);t&&t.setDefaultSelectedRows([...i.value],{mode:`cover`})}function m(e){u(e),p()}function h(t){d(t);let r=(0,n.toValue)(e);r&&r.setDefaultSelectedRows([...t],{mode:`merge`})}function g(t){let r=(0,n.toValue)(e);if(!r)return;let o=Yj(t);i.value=Xj({currentIntent:a.value,materializedIds:o,isInModel:e=>Jj(r,e)})}function _(e){return g(e),r&&(e.source===`ui`||e.source===`api`)&&p(),{materializedIds:Yj(e),intentIds:[...i.value],offModelIds:s.value.offModel,source:e.source}}return{intentIds:(0,n.shallowReadonly)(i),offModelIds:c,onModelIds:l,replaceIntent:u,mergeIntent:d,resetIntent:f,applyIntentCover:p,coverIntent:m,mergeIntentToPending:h,handleSelectionChanged:_}}exports.BUILTIN_CELL_EDITOR_NAMES=Sn,exports.COLUMN_DRAG_THRESHOLD_PX=na,exports.ColumnSettingsButton=Vj,exports.ColumnSettingsMenuIcon=wA,exports.ColumnSettingsMenuItem=DA,exports.ColumnSettingsPanel=Nj,exports.DEFAULT_CELL_EDITOR_MODE=t.B,exports.DEFAULT_INDEX_COLUMN_START=t.et,exports.DEFAULT_SELECTION_SELECT_ALL_LABEL=t.K,exports.DEFAULT_STATUS_BAR_RANGE_AGGREGATION_PRECISION=a,exports.INDEX_COLUMN_ID=t.tt,exports.INDEX_COLUMN_MIN_WIDTH=t.rt,exports.INLINE_CHECKBOX_CLASS=Jd,exports.INLINE_SWITCH_CLASS=Yd,exports.MagicGrid=xA,exports.RowMutationPersistError=t.p,exports.SELECTION_COLUMN_DEFAULT_WIDTH=t.q,exports.SELECTION_COLUMN_ID=t.J,exports.SELECTION_COLUMN_MIN_WIDTH=t.Y,exports.SORT_AFTER_MOVE_GUARD_MS=ra,exports.SWITCH_EDITOR_CLASS=Xd,exports.VueCellEditorHost=Hk,exports.checkboxCellEditor=nf,exports.coerceCheckboxEditorValue=en,exports.coerceSwitchEditorValue=qt,exports.coerceToggleEditorValue=qt,exports.createSlotCellEditor=qk,exports.createVueCellEditor=Kk,exports.evaluateGridAcceptance=mk,exports.executeFocus=Gj,exports.formatCheckboxEditorRawValue=tn,exports.formatSwitchEditorRawValue=Yt,exports.generateFocusedRowIds=t.y,exports.generateRowId=t.b,exports.generateSelectedRowIds=t.x,exports.getCellEditor=df,exports.getGridAcceptanceThresholds=pk,exports.getGridSetDataLimit=fk,exports.getMaterializedSelectionIdsFromEvent=Yj,exports.getRegisteredCellEditorNames=pf,exports.getRowDragCommitHierarchy=t.t,exports.hasCellEditor=ff,exports.isBuiltInCellEditor=Cn,exports.isInlineEditorColumn=t.V,exports.isRowIdInGridModel=Jj,exports.isSyntheticRow=t.C,exports.magicGridVueCellRef=lp,exports.numberCellEditor=tf,exports.parseCheckboxEditorRawValue=rn,exports.parseSwitchEditorRawValue=Zt,exports.partitionDefaultSelectedRowsIntentByModel=Zj,exports.readCheckboxControlValue=nn,exports.readSwitchControlValue=Xt,exports.recomputeDefaultSelectedRowsIntent=Xj,exports.registerCellEditor=lf,exports.registerEditorSurfaceSelectors=zd,exports.resetEditorSurfaceSelectors=Bd,exports.resolveCellEditorMode=t.H,exports.resolveCheckboxEditorValues=$t,exports.resolveColumnCellEditorMode=t.U,exports.resolveSwitchEditorValues=Wt,exports.switchCellEditor=rf,exports.textCellEditor=ef,exports.toBusinessRowId=t.T,exports.toBusinessRowIdFromInternal=t.D,exports.toBusinessRowIdsFromInternal=t.O,exports.toggleHeaderSort=Lm,exports.unregisterCellEditor=uf,exports.useCellEditor=Wj,exports.useDefaultSelectedRowsIntent=eM,exports.useGridApi=Kj,exports.useGridLifecycle=qj,exports.vueCellEditorProps=Uk;
10
10
  //# sourceMappingURL=index.cjs.js.map