@taocompany/magic-grid 0.3.2 → 0.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs.js CHANGED
@@ -5,5 +5,5 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=requi
5
5
 
6
6
  `)}function yg(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===`
7
7
  `){n.push(r),t.push(n),n=[],r=``,a+=1;continue}if(o===`\r`){if(e[a+1]===`
8
- `){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 bg(e){return e.length===1&&(e[0]?.length??0)===1}var xg=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=yg(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 bg(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=Y(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(!q(o,e.rowKind)){n.push(``);continue}let s=this.deps.columnModel.getColumnById(o);if(!s){n.push(``);continue}if(Js(e,s,this.deps.columnModel,a)){n.push(``);continue}let c={rowId:e.id,rowIndex:t,colId:o,value:U(e,s),data:e.data,formattedValue:``,stopEditing:async()=>{},cancelCommit:()=>{},getEditPhase:()=>`idle`,validate:async()=>({valid:!0})};n.push(fg(t,e,s,r,c,i.processCellForClipboard,this.deps.getCellClipboardDisplayContext?.()))}u.push(_g(n))}u.length>0&&o.push(u)}return vg(o)}resolvePasteAnchor(){let e=this.deps.getCellRangeOperationContext().displayedColIds,t=this.deps.getCellRangeService(),n=t?.getRanges()??[],r=this.deps.cellFocusService.getFocusedCell();if(r&&!F(r)){let t=this.deps.rowModel.getRow(r.rowIndex);if(q(r.colId,t?.rowKind)){let t={rowIndex:r.rowIndex,colId:r.colId};if(n.length===0||n.some(t=>{let n=Y(t,e);return n!=null&&zs(r.rowIndex,r.colId,n,e)}))return t}}if(n.length===0)return null;let i=Y(n[0],e);if(!i)return null;let a=t?.getAnchor();return a&&zs(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=Y(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=Y(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(!As(t,r.rowKind))return{status:`blocked`,showBlockedVisual:!0};let a=this.deps.columnModel.getColumnById(t);if(!a||!H(a,r,this.deps.getCellDisableContext())||ig(a,r.data))return{status:`blocked`,showBlockedVisual:!0};let o=U(r,a),s=await hg(a,{rowId:n,rowIndex:e,colId:t,value:o,data:r.data,formattedValue:String(o??``),stopEditing:async()=>{},cancelCommit:()=>{},getEditPhase:()=>`idle`,validate:async()=>({valid:!0})},i,o,{rowIndex:e,rowNode:r,indexColumnOptions:this.resolveIndexColumnDisplayOptions(),processCellFromClipboard:this.deps.getCellClipboardOptions().processCellFromClipboard});return s.status===`blocked`?s:(this.deps.applyTransaction({update:[r.data]}),this.deps.eventBus.emit(`cellValueChanged`,{rowId:n,colId:t,oldValue:o,newValue:s.parsed,rowNode:r}),{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}typeof navigator<`u`&&navigator.clipboard?.writeText&&await navigator.clipboard.writeText(e)}async readClipboard(){if(this.deps.readFromClipboard)return this.deps.readFromClipboard();if(typeof navigator<`u`&&navigator.clipboard?.readText)return navigator.clipboard.readText();throw Error(`Clipboard read unavailable`)}};function Sg(e){return typeof e==`number`&&Number.isFinite(e)}function Cg(e,t){return`${e}:${t}`}function wg(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 Tg(e,t){let n=new Set;return wg(e,t,(e,t)=>{n.add(Cg(e,t))}),n}function Eg(e){let{fixedAnchor:t,pointer:n,sourceRange:r,direction:i,displayedColIds:a}=e;if(a.indexOf(n.colId)<0)return null;let o=Y(J(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 Dg(e,t,n,r){let i=[];for(let n=e.top;n<=e.bottom;n+=1)i.push(r(n,t));return i}function Og(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 kg(e,t){return e>t.bottom?e-t.bottom:e<t.top?e-t.top:null}function Ag(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 jg(e){let{rowIndex:t,colId:n,sourceRange:r,displayedColIds:i,getSourceValue:a,setFillValue:o,fillStrategy:s=rs,rowNode:c,column:l,allowedDirection:u}=e,d=i.indexOf(n);if(d<0)return null;let f=kg(t,r),p=Ag(d,r,i),m=null,h=0,g=[];if(f!=null&&f!==0&&(u===`y`||u===`xy`)?(m=`y`,h=f,g=Dg(r,n,i,a)):p!=null&&p!==0&&(u===`x`||u===`xy`)&&(m=`x`,h=p,g=Og(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}):Ng(g,h,s)}function Mg(e,t){return t>0?e[e.length-1]:e[0]}function Ng(e,t,n){if(e.length===0)return null;if(n===`copy`)return Mg(e,t);if(e.every(Sg)){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 Mg(e,t)}function Pg(e,t,n){let r=Tg(t,n),i=e?Tg(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 Fg(e,t,n){return Pg(t,e,n)}var Ig=class{deps;constructor(e){this.deps=e}commitFillRange(e){let t=0,n=new Set,r=new Set;for(let i of e.removed)if(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(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}applyFillDiff(e){return this.commitFillRange({...e,removed:[]})}writeClearCell(e){let t=this.deps.rowModel.getRow(e.rowIndex),n=this.deps.columnModel.getColumnById(e.colId);return!t||!n||!As(e.colId,t.rowKind)||!H(n,t,this.deps.getCellDisableContext())?!1:this.writeCellValue(t.id,e.rowIndex,n,t,``)}writeFillCell(e,t,n,r){let i=this.deps.rowModel.getRow(e.rowIndex),a=this.deps.columnModel.getColumnById(e.colId);if(!i||!a||!As(e.colId,i.rowKind)||!H(a,i,this.deps.getCellDisableContext()))return!1;let o=jg({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)}writeCellValue(e,t,n,r,i){let a=U(r,n);return Object.is(a,i)||!zn(n,{rowId:e,rowIndex:t,colId:n.colId,value:a,data:r.data,formattedValue:String(a??``),stopEditing:async()=>{},cancelCommit:()=>{},getEditPhase:()=>`idle`,validate:async()=>({valid:!0})},i)?!1:(this.deps.applyTransaction({update:[r.data]}),this.deps.eventBus.emit(`cellValueChanged`,{rowId:e,colId:n.colId,oldValue:a,newValue:i,rowNode:r}),!0)}},Lg=class{deps;constructor(e){this.deps=e}clearRanges(e,t){let n=t.displayedColIds,r=0,i=new Set,a=new Set;for(let t of e){let e=Y(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)zs(t,s,e,n)&&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}writeClearCell(e,t,n,r){if(!As(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,``)||!zn(i,{rowId:n,rowIndex:e,colId:t,value:a,data:r.data,formattedValue:String(a??``),stopEditing:async()=>{},cancelCommit:()=>{},getEditPhase:()=>`idle`,validate:async()=>({valid:!0})},``)?!1:(this.deps.applyTransaction({update:[r.data]}),this.deps.eventBus.emit(`cellValueChanged`,{rowId:n,colId:t,oldValue:a,newValue:``,rowNode:r}),!0)}};function Rg(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 zg(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=lr(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 Bg(e){let t=zg(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===``?null:t.valueFormatted}function Vg(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 Hg(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 Ug(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 Wg(e,t){return e.getColumns().findIndex(e=>e.colId===t)}function Gg(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:Wg(e,r.dataset.colId)}:null}function Kg(e){return Q(e)?.closest(`.mg-header-cell__column-handle`)??null}function qg(e){return Q(e)?.closest(`.mg-floating-filter-button`)??null}function Jg(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:Wg(e,r.dataset.colId)}:null}function Yg(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 Xg(e){return Q(e)?.closest(`.mg-header-cell[data-col-id]`)??null}function Zg(e){return e.querySelector(`.mg-root`)??e}function Qg(e){let t=Q(e);return t?t.closest(Ba):null}function $g(e){return e.matches(`.mg-cell__text:not([hidden])`)?`cell`:e.matches(`.mg-header-cell__text`)?`header`:e.matches(`.mg-footer-cell__text:not([hidden])`)?`footer`:null}function e_(e){let t=Q(e);return t?t.closest(za):null}function t_(e,t,n){let r=$g(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 n_=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=Qg(e.target);if(!t)return;let n=t_(t,this.deps.columnModel,this.deps.rowModel);!n||!this.canShowTooltip(n)||this.queueShow(e,n)};handleStatusBarPointerOver=e=>{if(e.pointerType===`touch`)return;let t=e_(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,Qg(e.target))};handleStatusBarPointerOut=e=>{this.handleAnchorPointerOut(e,e_(e.target))};handleAnchorPointerOut(e,t){if(!t)return;let n=Qg(e.relatedTarget),r=e_(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 Ka({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 Ug(e.anchorEl);if(!e.colId)return null;let t=this.deps.columnModel.getColumnById(e.colId);if(!t)return null;if(e.location===`header`)return Vg({column:t,headerTooltip:t.headerTooltip,headerTooltipValueGetter:t.headerTooltipValueGetter});if(e.location===`footer`)return Hg({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?Bg({rowNode:n,column:t,tooltipField:t.tooltipField,tooltipValueGetter:t.tooltipValueGetter,indexColumnOptions:this.deps.getIndexColumnOptions(),location:`cell`}):null}clearShowTimer(){this.showTimer!=null&&(clearTimeout(this.showTimer),this.showTimer=null)}},r_=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 i_(e){let{viewportPadding:t}=Wh(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 a_=`mg-tooltip__text`,o_=`mg-tooltip__content`,s_=class{popupEl=null;textEl=null;contentEl=null;componentHost=new r_;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(`${Va}--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=Va,e.hidden=!0,e.setAttribute(`role`,`tooltip`);let t=document.createElement(`div`);t.className=a_;let n=document.createElement(`div`);return n.className=o_,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=i_({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}},c_=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 l_(e){return e.overlayType===`loading`?{blockEvents:!0,masked:!0}:e.overlayInteraction?{blockEvents:!0,masked:!1}:{blockEvents:!1,masked:!1}}function u_(e,t,n){let{blockEvents:r,masked:i}=l_(n),a=`${Cu}--interactive`;e.classList.toggle(a,r&&!i),e.classList.toggle(Tu,i);let o=r?`auto`:`none`;e.style.pointerEvents=o,t.style.pointerEvents=o}function d_(){let e=document.createElement(`div`);e.className=Cu,e.hidden=!0,e.setAttribute(`aria-hidden`,`true`);let t=document.createElement(`div`);t.className=wu;let n=document.createElement(`div`);return n.className=`mg-overlay__mount`,t.appendChild(n),e.appendChild(t),{overlayEl:e,wrapperEl:t,contentEl:n}}var f_=new Set([`span`,`div`,`p`,`svg`,`strong`,`em`,`b`,`i`]);function p_(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 f_.has(i)?r.cloneNode(!0):r.textContent?.trim()??t}function m_(e){switch(e){case`loading`:return Du;case`noRows`:return Ou;case`noMatchingRows`:return ku;default:return e}}function h_(e,t={}){let n=document.createElement(`div`);n.className=`${Eu} ${m_(e)}`;let r=t.overlayText??ju(e);if(t.template){let e=p_(t.template);return typeof e==`string`?n.textContent=e:n.appendChild(e),n}if(e===`loading`){let e=document.createElement(`span`);e.className=Au,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 g_=class{deps;visibleType=null;componentHost=new c_;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){u_(this.deps.overlayEl,this.deps.wrapperEl,{overlayType:e,overlayInteraction:this.deps.getOverlayInteraction()})}renderContent(e,t){let n={overlayType:e,api:this.deps.getApi(),overlayText:ju(e)};if(t.component){this.componentHost.mount(this.deps.contentEl,n,t.component);return}this.componentHost.destroy(),this.deps.contentEl.replaceChildren(h_(e,{template:t.template,overlayText:n.overlayText}))}};function __(e){return e.filter(e=>ot(e.rowKind)===`data`).length}function v_(e){let t=t=>Pu(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`)?`noRows`:e.sourceRowCount>0&&e.displayDataRowCount===0&&e.isAnyFilterActive&&!t(`noMatchingRows`)?`noMatchingRows`:null}function y_(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 b_(e,t){let n=y_(e,t);return n.component?n:t.overlayComponent?{overlayType:e,component:t.overlayComponent,componentParams:t.overlayComponentParams}:n}var x_=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?b_(this.currentType,this.deps.getResolvedOptions()):null}buildResolveInput(){let e=this.deps.getResolvedOptions();return{loading:e.loading,suppressOverlays:e.suppressOverlays,sourceRowCount:this.deps.getSourceRowCount(),displayDataRowCount:__(this.deps.getDisplayRows()),isAnyFilterActive:this.deps.isAnyFilterActive(),rowDataReady:this.rowDataReady,userForcedNoRows:this.userForcedNoRows}}updateOverlay(){if(this.destroyed)return;let e=v_(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)}};function S_(e={}){let t=`autoSizeStrategy`in e&&e.autoSizeStrategy!==void 0?e.autoSizeStrategy??null:null;return{skipHeaderOnAutoSize:e.skipHeaderOnAutoSize??!1,autoSizePadding:e.autoSizePadding??16,autoSizeStrategy:t}}function C_(e,t,n){let r={rowId:Cr(t,e.deps.rowModel.getRowKey()),rowIndex:t.rowIndex,colId:n.colId,value:U(t,n),data:t.data,formattedValue:lr(t,n),stopEditing:(t=!0)=>e.stopEditing(!t),cancelCommit:()=>e.cancelCommit(),getEditPhase:()=>e.getEditSessionPhase()};return{...r,validate:async t=>{let i=e.deps.rowEditingService.isEditing()?e.deps.rowEditingService.getEditorValue(n.colId):e.deps.editingService.getEditorValue();if(i==null)return{valid:!0};let a={...r,validate:async()=>({valid:!0})},o;try{if(o=Rn(i,n,a),An(o))return{valid:!1,errors:[`Invalid value`]}}catch(e){return{valid:!1,errors:[e instanceof Error?e.message:`Invalid value`]}}return sr(n,a,o,t?.signal)}}}async function w_(t,n,r={}){let i=r.signal??new AbortController().signal,a=r.invalidEditValueMode??`block`;e.l(i);let o={...t.data},s=[];for(let e of n){let t=Rn(e.rawValue,e.column,e.editorParams);if(An(t))return{ok:!1,failedColId:e.column.colId,revert:a===`revert`};s.push({column:e.column,editorParams:e.editorParams,oldValue:e.oldValue,parsedValue:t})}let c=[];try{let e=await Promise.all(s.map(async e=>{let t=await ar(e.column,e.editorParams,e.parsedValue,i);return{colId:e.column.colId,errors:t}}));for(let t of e)t.errors&&c.push({colId:t.colId,errors:t.errors})}catch(t){throw e.c(t),t}let l;if(c.length>0)if(a===`keep`)l={cellErrors:c};else{let e=c[0];return{ok:!1,failedColId:e.colId,errors:e.errors,cellErrors:c,revert:a===`revert`}}let u=new Map(s.map(e=>[e.column.colId,e.parsedValue]));try{let e=await or(r.rowValidator,{rowId:r.rowKey?Cr(t,r.rowKey):t.id,rowIndex:t.rowIndex,data:t.data,draftValues:u,signal:i});if(e){let t=ir(s.map(e=>e.column.colId),e.colIds);if(a===`keep`)l={...l,rowErrors:e.errors,rowErrorColIds:t};else return{ok:!1,failedColId:t[0]??s[0]?.column.colId??``,rowErrors:e.errors,rowErrorColIds:t,revert:a===`revert`}}}catch(t){throw e.c(t),t}let d=[];try{for(let n of s){e.l(i);let{column:r,editorParams:s,oldValue:c,parsedValue:l}=n;if(c!==l){if(!await Bn(r,s,l,i))return Object.assign(t.data,o),{ok:!1,failedColId:r.colId,revert:a===`revert`};d.push({colId:r.colId,oldValue:c,newValue:l})}}}catch(n){throw Object.assign(t.data,o),e.c(n),n}return l?{ok:!0,changes:d,validationWarnings:l}:{ok:!0,changes:d}}async function T_(t,n,r,i,a){try{let e=await w_(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()});if(!e.ok)return e;if(e.changes.length>0){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});t.deps.syncPinnedRows()}return{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}}catch(t){if(e.c(t))return{ok:`aborted`};throw t}}async function E_(t,n,r,i,a,o){if(!r.prop)return{ok:!0};try{let e=Rn(i,r,a);if(An(e))return{ok:!1};let s=a.value,c=await ar(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 Bn(r,a,e,o.signal)?(t.deps.applyTransaction({update:[n.data]}),t.deps.eventBus.emit(`cellValueChanged`,{rowId:n.id,colId:r.colId,oldValue:s,newValue:e,rowNode:n}),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 D_(e,t,n){for(let r of t){let t=e.find(e=>e.colId===r);t?t.errors=[...new Set([...t.errors,...n])]:e.push({colId:r,errors:[...n]})}}async function O_(e,t,n={}){let r=n.signal??new AbortController().signal,i=[];for(let n of t){if(!n.column.cellValidator)continue;let t=U(e,n.column),a=await ar(n.column,n.editorParams,t,r);a&&i.push({colId:n.column.colId,errors:a})}if(n.rowValidator&&t.length>0){let a=new Map(t.map(t=>[t.column.colId,U(e,t.column)])),o=await or(n.rowValidator,{rowId:n.rowKey?Cr(e,n.rowKey):e.id,rowIndex:e.rowIndex,data:e.data,draftValues:a,signal:r});o&&D_(i,ir(t.map(e=>e.column.colId),o.colIds),o.errors)}return i}async function k_(e,t={}){let n=t.signal??new AbortController().signal,r=t.showFeedback!==!1,i=M_(e.rowModel,t.rowIds),a=[],o=await Promise.all(i.map(async t=>({rowNode:t,invalidCells:await O_(t,N_(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 A_(e,t){let n=t.signal??new AbortController().signal,r=t.showFeedback!==!1,i=[];for(let{rowId:a,colId:o}of t.cells){let t=X(a),s=e.rowModel.getRowById(t),c=r?j_(e.mountEl,t):null;if(!s){r&&e.validationFeedback.clearRowCell(t,c,o);continue}let l=e.columnModel.getColumnById(o);if(!l||!H(l,s,e.getCellDisableContext?.())||!l.cellValidator){r&&e.validationFeedback.clearRowCell(t,c,o);continue}let u=await ar(l,e.createEditorParams(s,l),U(s,l),n);u?(i.push({rowId:t,rowIndex:s.rowIndex,colId:o,errors:u}),r&&e.validationFeedback.setRowCellInvalid(t,c,{colId:o,errors:u})):r&&e.validationFeedback.clearRowCell(t,c,o)}return{valid:i.length===0,cellErrors:i}}function j_(e,t){return e.querySelector(`.mg-row[data-row-id="${t}"]`)}function M_(e,t){let n=fl(t);if(n)return n.map(t=>e.getRowById(t)).filter(e=>e!=null);let r=[],i=e.getRowCount();for(let t=0;t<i;t++){let n=e.getRow(t);n&&r.push(n)}return r}function N_(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 P_(e){return e.invalidEditValueMode??`block`}function $(e){let t=e.mountEl.querySelector(`.mg-header-row`);t&&e.validationFeedback.syncHeaderDom(t,e.columnModel.getColumns())}function F_(e){e.deps.validationFeedback.syncDom(e.deps.mountEl),$(e.deps)}function I_(e,t){let n=t?.rowIds;if(n?.length){for(let t of n){let n=e.deps.mountEl.querySelector(`.mg-row[data-row-id="${t}"]`);e.deps.validationFeedback.clearRow(X(t),n)}$(e.deps);return}e.deps.validationFeedback.clear(e.deps.mountEl),$(e.deps)}function L_(e,t){I_(e,{rowIds:t.rowIds})}function R_(e,t){for(let{rowId:n,colId:r}of t.cells){let t=e.deps.mountEl.querySelector(`.mg-row[data-row-id="${n}"]`);e.deps.validationFeedback.clearRowCell(X(n),t,r)}$(e.deps)}async function z_(e,t){let n=await k_({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(),F_(e),n}async function B_(e,t){return z_(e,{rowIds:t.rowIds,signal:t.signal,showFeedback:t.showFeedback})}async function V_(e,t){let n=await A_({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(),F_(e),n}function H_(e,t){return e.columnModel.getColumns().filter(n=>H(n,t,e.getCellDisableContext())).map(e=>e.colId)}function U_(e,t,n){return e.rowValidator&&Fn(e.editBehavior)?H_(e,t):n}function W_(e,t,n){queueMicrotask(()=>{e.deps.isDestroyed()||e.isEditing()||G_(e,t,n)})}async function G_(e,t,n){if(e.deps.isDestroyed()||e.isEditing())return;let r=e.deps.rowModel.getRowById(t);if(!r)return;let i=e.deps.mountEl.querySelector(`.mg-row[data-row-id="${t}"]`),a=U_(e.deps,r,n);if(a.length===0){e.deps.validationFeedback.clearRow(t,i),$(e.deps);return}let o=a.map(t=>{let n=e.deps.columnModel.getColumnById(t);return n?{column:n,editorParams:e.createCellEditorParams(r,n)}:null}).filter(e=>e!=null),s=[];try{s=await O_(r,o,{rowValidator:Fn(e.deps.editBehavior)?e.deps.rowValidator:void 0,rowKey:e.deps.rowModel.getRowKey()})}catch{return}if(Fn(e.deps.editBehavior)){s.length>0?e.deps.validationFeedback.setRowInvalid(t,i,s):e.deps.validationFeedback.clearRow(X(t),i),$(e.deps);return}for(let n of a){let r=s.find(e=>e.colId===n);r?e.deps.validationFeedback.setRowCellInvalid(t,i,r):e.deps.validationFeedback.clearRowCell(X(t),i,n)}$(e.deps)}function K_(e,t,n){e.eventBus.emit(`cellValidationFailed`,{rowId:t.rowId,colId:t.colId,rowIndex:t.rowIndex,errors:n,mode:`keep`})}function q_(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`})}function J_(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 Y_(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}),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)})):(n.rowErrorColIds?.length?n.rowErrorColIds:[n.failedColId]).map(t=>({colId:t,errors:n.rowErrors??n.errors??[`Validation failed`],editorMountEl:e.deps.rowEditingService.getEditorMountEl(t)}));e.deps.validationFeedback.showCellsInvalid({rowId:t.rowId,rowElement:t.rowElement,cells:r}),$(e.deps)}}function X_(e,t){for(let n of t.cells)e.deps.eventBus.emit(`cellEditingStopped`,{rowId:t.rowId,colId:n.colId,rowIndex:t.rowIndex,committed:n.committed,oldValue:n.oldValue,newValue:n.newValue});let n=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:n}),t.committed&&n&&n.length>0){let r=e.deps.rowModel.getRowById(t.rowId);r&&e.deps.eventBus.emit(`rowValueChanged`,{rowId:t.rowId,rowIndex:t.rowIndex,rowNode:r,data:r.data,changes:n})}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})}),W_(e.validationCtx(),t.rowId,t.cells.map(e=>e.colId))}function Z_(e,t){e.deps.eventBus.emit(`cellEditingStopped`,{rowId:t.rowId,colId:t.colId,rowIndex:t.rowIndex,committed:t.committed,oldValue:t.oldValue,newValue:t.newValue}),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})}),W_(e.validationCtx(),t.rowId,[t.colId])}function Q_(e,t){if(e.deps.isDestroyed())return;let n=e.deps.rowModel.getRow(t.rowIndex);if(!n)return;let r=e.deps.columnModel.getColumnById(t.colKey);if(!r||I(r.colId)||L(r.colId)||ka(r)||!H(r,n,e.deps.getCellDisableContext()))return;let i=e.deps.getColIndex(r.colId);e.deps.cellFocusService.setFocusedCell({rowId:n.id,colId:r.colId,rowIndex:t.rowIndex,colIndex:i}),e.deps.applyFocusVisuals(),e.deps.ensureIndexVisible(t.rowIndex),e.deps.ensureColumnVisible(i),e.deps.redrawImmediately();let a=e.deps.mountEl.querySelector(`.mg-row[data-row-id="${n.id}"]`);a&&$_(e,{rowId:n.id,colId:r.colId,rowIndex:t.rowIndex,rowNode:n,rowElement:a})}function $_(e,t){if(Fn(e.deps.editBehavior)){ev(e,t);return}tv(e,t)}function ev(e,t){if(e.deps.rowEditingService.isCommitting())return;if(e.deps.editingService.isEditing()){e.deps.editingService.stopEditing(!0).then(()=>{e.deps.editingService.isEditing()||ev(e,t)});return}if(e.deps.rowEditingService.isEditing()){if(e.deps.rowEditingService.getEditingRow()?.rowId===t.rowId)return;e.deps.rowEditingService.stopRowEditing(!0).then(n=>{n?.committed&&!e.deps.rowEditingService.isEditing()&&ev(e,t)});return}let n=e.deps.columnModel.getColumns().filter(n=>H(n,t.rowNode,e.deps.getCellDisableContext())&&!ka(n)).map(n=>{let r=e.createCellEditorParams(t.rowNode,n);return{column:n,params:{rowId:r.rowId,rowIndex:r.rowIndex,colId:r.colId,value:r.value,data:r.data,formattedValue:r.formattedValue,validate:r.validate},oldValue:r.value}});if(n.length===0)return;let r=e.validationCtx();if(e.deps.rowEditingService.startRowEditing({rowElement:t.rowElement,rowNode:t.rowNode,columns:n,focusColId:t.colId,onCommitRow:(r,i)=>T_(e.commitCtx(),t.rowNode,n,r,i),onFocusColChange:n=>{let r=e.deps.getColIndex(n);e.deps.cellFocusService.setFocusedCell({rowId:t.rowId,colId:n,rowIndex:t.rowIndex,colIndex:r}),e.deps.applyFocusVisuals()},onRowEditingStopped:t=>{X_(e.lifecycleCtx(),t)},onCommitLifecycle:{onStarted:()=>{e.deps.eventBus.emit(`rowCommitStarted`,{rowId:t.rowId,rowIndex:t.rowIndex,editableColIds:n.map(e=>e.column.colId)})},onFinished:n=>{e.deps.eventBus.emit(`rowCommitFinished`,{rowId:t.rowId,rowIndex:t.rowIndex,committed:n.ok===!0,aborted:n.ok===`aborted`}),n.ok===!1&&n.failedColId?Y_(r,t,n):n.ok===!0&&n.validationWarnings&&q_(e.deps,t,n.validationWarnings)},onAborted:()=>{e.deps.eventBus.emit(`editCommitAborted`,{rowId:t.rowId,rowIndex:t.rowIndex})}}})){e.deps.eventBus.emit(`rowEditingStarted`,{rowId:t.rowId,rowIndex:t.rowIndex,editableColIds:n.map(e=>e.column.colId)});for(let r of n)e.deps.eventBus.emit(`cellEditingStarted`,{rowId:t.rowId,colId:r.column.colId,rowIndex:t.rowIndex,value:r.oldValue});e.deps.applyFocusVisuals(),e.deps.syncPinnedRows()}}function tv(e,t){if(e.deps.rowEditingService.isCommitting())return;if(e.deps.rowEditingService.isEditing()){e.deps.rowEditingService.stopRowEditing(!0).then(n=>{n?.committed&&!e.deps.rowEditingService.isEditing()&&tv(e,t)});return}let n=e.deps.columnModel.getColumnById(t.colId);if(!n||!H(n,t.rowNode,e.deps.getCellDisableContext())||ka(n))return;let r=e.createCellEditorParams(t.rowNode,n),i=r.formattedValue,a=r.value,o=()=>{e.deps.validationFeedback.clearRowCell(t.rowId,t.rowElement??null,t.colId),$(e.deps)},s=e.validationCtx();e.deps.editingService.startEditing(t.rowElement,t.rowNode,n,i,a,{editorParams:r,onCommit:(i,a)=>E_(e.commitCtx(),t.rowNode,n,i,r,a),onCancel:()=>void 0,onEditingInput:o,onEditingStopped:t=>{Z_(e.lifecycleCtx(),t)},onTab:t=>{e.deps.onTabChainEdit(t)},onCommitLifecycle:{onStarted:()=>{o(),e.deps.eventBus.emit(`cellCommitStarted`,{rowId:t.rowId,colId:t.colId,rowIndex:t.rowIndex})},onFinished:n=>{e.deps.eventBus.emit(`cellCommitFinished`,{rowId:t.rowId,colId:t.colId,rowIndex:t.rowIndex,committed:n.ok===!0,aborted:n.ok===`aborted`}),n.ok===!1&&n.errors?J_(s,t,n.errors,n.revert):n.ok===!0&&n.validationErrors?.length&&K_(e.deps,t,n.validationErrors)},onAborted:()=>{e.deps.eventBus.emit(`editCommitAborted`,{rowId:t.rowId,colId:t.colId,rowIndex:t.rowIndex})}}}),e.deps.eventBus.emit(`cellEditingStarted`,{rowId:t.rowId,colId:t.colId,rowIndex:t.rowIndex,value:a}),e.deps.applyFocusVisuals(),e.deps.syncPinnedRows()}var nv=class{deps;constructor(e){this.deps=e}validate(e){return z_(this.validationCtx(),e)}validateRows(e){return B_(this.validationCtx(),e)}validateCells(e){return V_(this.validationCtx(),e)}clearValidation(e){I_(this.validationCtx(),e)}clearRowValidation(e){L_(this.validationCtx(),e)}clearCellValidation(e){R_(this.validationCtx(),e)}syncValidationDom(){F_(this.validationCtx())}syncValidationHeaderDom(){$(this.deps)}startEditingCell(e){Q_(this.startCtx(),e)}stopEditing(e=!1){return this.deps.rowEditingService.isEditing()?this.deps.rowEditingService.stopRowEditing(!e).then(()=>void 0):this.deps.editingService.isEditing()?this.deps.editingService.stopEditing(!e).then(()=>void 0):Promise.resolve()}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){ev(this.startCtx(),e)}tryStartCellEditing(e){tv(this.startCtx(),e)}createCellEditorParams(e,t){return C_(this.editorParamsCtx(),e,t)}validationCtx(){return{deps:this.deps,isEditing:()=>this.isEditing(),createCellEditorParams:(e,t)=>this.createCellEditorParams(e,t),getInvalidEditValueMode:()=>P_(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:()=>P_(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)}}},rv=`mg-column-drag-ghost`,iv=`mg-column-drag-ghost__icon`,av=`mg-column-drag-ghost__label`,ov=`mg-column-drop-indicator`,sv=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=rv,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=iv,n.setAttribute(`aria-hidden`,`true`),n.append(Vf());let r=document.createElement(`span`);r.className=av,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=ov,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 cv(e,t){return[{colId:e,sort:`asc`}]}function lv(e,t){return[{colId:e,sort:`desc`}]}function uv(e,t){return va(t.filter(t=>t.colId!==e))}function dv(e,t){return t.find(t=>t.colId===e)?.sort??null}function fv(e,t){return dv(e,t)!==null}var pv=[{value:`contains`,label:`包含`},{value:`notContains`,label:`不包含`},{value:`equals`,label:`等于`},{value:`notEqual`,label:`不等于`},{value:`startsWith`,label:`开头是`},{value:`endsWith`,label:`结尾是`},{value:`blank`,label:`空白`},{value:`notBlank`,label:`非空白`}],mv=[{value:`equals`,label:`等于`},{value:`notEqual`,label:`不等于`},{value:`lessThan`,label:`小于`},{value:`lessThanOrEqual`,label:`小于等于`},{value:`greaterThan`,label:`大于`},{value:`greaterThanOrEqual`,label:`大于等于`},{value:`blank`,label:`空白`},{value:`notBlank`,label:`非空白`}],hv=[{value:`equals`,label:`等于`},{value:`notEqual`,label:`不等于`},{value:`lessThan`,label:`早于`},{value:`greaterThan`,label:`晚于`},{value:`inRange`,label:`范围内`},{value:`blank`,label:`空白`},{value:`notBlank`,label:`非空白`}];function gv(e){switch(e){case`number`:return mv;case`date`:return hv;default:return pv}}function _v(e){switch(e){case`number`:return`equals`;case`date`:return`equals`;default:return`contains`}}function vv(e){return{type:_v(e),value:``,valueTo:``}}function yv(e){return!Mi(e)}function bv(e){return e===`inRange`}function xv(e){return e===`number`?`number`:`text`}function Sv(e,t){return`过滤条件`}function Cv(e){return`过滤条件`}function wv(e,t){return gv(t).some(t=>t.value===e)}function Tv(e,t){let n=Ei(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 Ev(e,t,n){if(Mi(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 Dv(e,t){return e?null:{setValues:t.filter(e=>e!==``)}}function Ov(e,t,n){let r=wi(e).map(e=>({type:wv(e.type,t)?e.type:n,value:e.filter??``,valueTo:e.filterTo??``}));return r.length>0?r:[vv(t)]}function kv(e,t,n){let r=t.map(e=>Ev(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 Av(e,t,n=`text`,r=[]){let i=t[e],a=_v(n),o=Tv(void 0,r),s={operatorLogic:`AND`,operatorConditions:[vv(n)]};if(!i)return{customPredicate:!1,...s,...o};if(xi(i))return{customPredicate:!0,...s,...o};let c=Tv(i,r);return{customPredicate:!1,operatorLogic:Ti(i),operatorConditions:Ov(i,n,a),...c}}function jv(e,t,n,r,i){let a=kv(e,t,i),o=Dv(n,r);return!a&&!o?null:{...a,type:a?.type??i,...o??{}}}function Mv(e,t,n,r){let i={...n},a=_v(r),o=jv(t.operatorLogic,t.operatorConditions,t.setAllSelected,t.selectedValues,a);return o&&(Di(o)||Oi(o))?i[e]=o:delete i[e],i}function Nv(e,t,n,r,i,a,o=!0,s=[]){return Mv(e,{operatorLogic:`AND`,operatorConditions:[{type:t,value:n,valueTo:a??``}],setAllSelected:o,selectedValues:s},r,i)}function Pv(e,t){if(!(e in t))return t;let n={...t};return delete n[e],n}function Fv(e){return Mi(e.type)?!1:e.type===`inRange`?e.value.trim()!==``||e.valueTo.trim()!==``:e.value.trim()!==``}function Iv(e){let t=e[0];return t?Fv(t):!1}function Lv(e){let{columnFilterType:t,abortSignal:n,onInput:r,onStopPropagation:i}=e,a=gv(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=xv(t),e.input.placeholder=Sv(t,n),e.input.hidden=!yv(n),e.inputTo.type=xv(t),e.inputTo.placeholder=Cv(t),e.inputTo.hidden=!bv(n)},ee=()=>{let e=p?Fv(_(p)):!1;c.hidden=!e,e&&!m&&p&&(m=S(g??vv(t),!0),m.rowEl.hidden=!1,s.append(m.rowEl)),m&&(m.rowEl.hidden=!e),!e&&m&&(Fv(_(m))&&(g=_(m)),m.rowEl.remove(),m=null,c.hidden=!0)},x=()=>{ee(),r()},S=(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),x()},{signal:n}),s.addEventListener(`input`,x,{signal:n}),c.addEventListener(`input`,x,{signal:n});for(let e of[o,s,c])e.addEventListener(`mousedown`,u,{signal:n}),e.addEventListener(`click`,u,{signal:n});return l},C=e=>{s.replaceChildren();let n=e.operatorConditions.length>0?e.operatorConditions:[vv(t)];h=e.operatorLogic,g=n[1]??null,y(h),p=S(n[0]??vv(t)),m=null,s.append(p.rowEl,c),Iv(n)?(m=S(n[1]??g??vv(t),!0),s.append(m.rowEl),c.hidden=!1):c.hidden=!0};C(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=>{C(e)}}}function Rv(e,t){let n=t.trim().toLowerCase();return n===``?[...e]:e.filter(e=>e.label.toLowerCase().includes(n)||e.key.toLowerCase().includes(n))}var zv=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 Bv(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 Vv=/^(\d{4})-(\d{2})-(\d{2})$/;function Hv(e){let t=Vv.exec(e),n=t?Number(t[3]):0;return{id:`d:${e}`,type:`day`,label:`${n}日`,key:e,children:[],leafKeys:[e]}}function Uv(e,t){return e.id.localeCompare(t.id,void 0,{numeric:!0})}function Wv(e,t){return(e.key??``).localeCompare(t.key??``,void 0,{numeric:!0})}function Gv(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=Vv.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(Hv(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(Wv);i.push({id:`y:${e}:m:${t}`,type:`month`,label:`${t}月`,children:r,leafKeys:r.map(e=>e.key)})}i.sort(Uv),t.push({id:`y:${e}`,type:`year`,label:String(e),children:i,leafKeys:i.flatMap(e=>e.leafKeys)})}return t}function Kv(e){let t=new Set;for(let n of e)n.type===`year`&&t.add(n.id);return t}function qv(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 Jv(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?Jv(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 Yv(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 Xv(e,t,n){let r=t.trim().toLowerCase(),i=Gv(e);if(r===``){let e=qv(i,n);return{roots:i,expandedIds:new Set(n),rows:e,leafKeys:i.flatMap(e=>e.leafKeys)}}let a=Jv(i,r),o=Yv(a);return{roots:a,expandedIds:o,rows:qv(a,o),leafKeys:a.flatMap(e=>e.leafKeys)}}function Zv(e,t){return Xv(e,t,new Set).leafKeys}function Qv(e,t){for(let n of e){if(n.id===t)return n;let e=Qv(n.children,t);if(e)return e}}var $v=4;function ey(e,t,n,r=28,i=$v){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 ty=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 ey(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)}},ny=class{viewOptions;element;scrollEl;spacerEl;windowEl;emptyEl;rowEls=new Map;expandedIds;rows=[];searchQuery=``;constructor(e){this.viewOptions=e,this.searchQuery=e.searchQuery??``,this.expandedIds=Kv(Xv(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 Xv(this.viewOptions.options,this.searchQuery,this.expandedIds).leafKeys}syncViewState(){let e=Xv(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}=ey(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=Qv(Xv(this.viewOptions.options,this.searchQuery,this.expandedIds).roots,n);r&&(this.viewOptions.selection.setKeysChecked(r.leafKeys,t.checked),this.viewOptions.onSelectionChange(),this.renderRows())}},ry=new WeakMap,iy=new WeakMap;function ay(e,t){let n=ry.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 oy(e){let t=document.createElement(`div`);return t.className=`mg-column-handle-menu__filter-group-heading`,t.textContent=e,t}function sy(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 cy(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=Av(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=wl;let p=document.createElement(`div`);p.className=`mg-column-handle-menu__filter-group`,p.append(oy(`过滤器`));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(oy(`值选择`));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 zv(u,{setAllSelected:d.setAllSelected,selectedValues:d.selectedValues}),y=()=>Rv(i,g.value),b=()=>o,ee=()=>_&&b()===`tree`?O?.getVisibleLeafKeys()??Zv(i,g.value):y().map(e=>e.key),x=()=>g.value.trim()!==``,S=()=>a,C=document.createElement(`label`);C.className=`mg-column-handle-menu__filter-set-option mg-column-handle-menu__filter-set-select-all`;let w=document.createElement(`input`);w.type=`checkbox`;let T=document.createElement(`span`);T.textContent=`全选`,C.append(w,T),h.append(C);let E=()=>{let e=ee();if(x()){w.disabled=e.length===0;let t=v.getSelectAllStateForKeys(e);w.checked=t.checked,w.indeterminate=t.indeterminate;return}w.disabled=!1;let t=v.getSelectAllState();w.checked=t.checked,w.indeterminate=t.indeterminate},D=null,O=null,k=document.createElement(`div`);k.className=`mg-column-handle-menu__filter-set-list-host`;let A=()=>{if(k.replaceChildren(),D=null,O=null,i.length===0){let e=document.createElement(`div`);e.className=`mg-column-handle-menu__filter-set-empty`,e.textContent=`暂无可选值`,k.append(e),j();return}if(_&&b()===`tree`){O=new ny({options:i,selection:v,searchQuery:g.value,onSelectionChange:()=>{E(),M(`set`)},emptySearchLabel:`无匹配项`,abortSignal:l}),k.append(O.element),j();return}D=new ty({options:y(),selection:v,onSelectionChange:()=>{E(),M(`set`)},emptySearchLabel:`无匹配项`,abortSignal:l}),k.append(D.element),j()},j=()=>{let e=ry.get(h);e&&(e.virtualList=D,e.dateTreeView=O)},M=e=>{let t=v.snapshot(),n=Bv(t,S(),ee(),x());if(e===`set`&&n===null)return;let r=n??t,i=ne.readState();s({source:e,operatorLogic:i.operatorLogic,operatorConditions:i.operatorConditions,setAllSelected:r.setAllSelected,selectedValues:r.selectedValues})},N=()=>{M(`operator`)},te=()=>{M(`set`)},ne=Lv({columnFilterType:r,initialState:{operatorLogic:d.operatorLogic,operatorConditions:d.operatorConditions},abortSignal:l,onInput:N,onStopPropagation:m});p.append(ne.element),iy.set(f,ne),i.length===0&&(g.disabled=!0,w.disabled=!0),h.append(k),A(),ry.set(h,{allOptions:i,searchInput:g,selection:v,virtualList:D,dateTreeView:O,mountOptionsView:A,getFilteredKeys:ee,isSearchActive:x,getValueMode:S,syncSelectAllUi:E}),E(),g.addEventListener(`input`,()=>{_&&b()===`tree`?O?.setSearchQuery(g.value):D?.setOptions(y()),E(),S()===`current`&&te()},{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===w){let e=ee();x()?v.setKeysChecked(e,w.checked):v.setSelectAll(w.checked),E(),D?.refresh(),O?.refresh(),te()}},{signal:l});let P=document.createElement(`div`);P.className=`mg-column-handle-menu__filter-actions`;let re=sy(c,l);return P.append(re),f.append(p,h,P),{root:f,panelRoot:f,customPredicate:!1,syncState:e=>{ly(f,e)}}}function ly(e,t){let n=e.querySelector(`.mg-column-handle-menu__filter-set-panel`);iy.get(e)?.syncState({operatorLogic:t.operatorLogic,operatorConditions:t.operatorConditions}),n&&ay(n,t)}var uy=8,dy=4;function fy(e,t,n){let r=e.left,i=e.bottom+dy;return i+n>window.innerHeight-uy&&(i=e.top-n-dy),r=Math.max(uy,Math.min(r,window.innerWidth-t-uy)),i=Math.max(uy,Math.min(i,window.innerHeight-n-uy)),{left:r,top:i}}function py(e,t){let n=document.createElement(`span`);n.className=vl,e&&n.append(e);let r=document.createElement(`span`);return r.className=yl,r.textContent=t,n.append(r),n}function my(e,t,n){let r=document.createElement(`button`);return r.type=`button`,r.className=_l,r.dataset.action=t,n?.targetColId&&(r.dataset.targetColId=n.targetColId),r.append(py(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 hy(){let e=document.createElement(`div`);return e.className=Cl,e.setAttribute(`role`,`separator`),e}function gy(e,t){let n=document.createElement(`div`);n.className=`${gl} ${Tl}`;let r=dv(e,t);return n.append(my(`升序`,`sort-asc`,{checked:r===`asc`,icon:Uf()}),my(`降序`,`sort-desc`,{checked:r===`desc`,icon:Wf()})),fv(e,t)&&n.append(my(`清除排序`,`sort-clear`)),n}function _y(e,t){t.classList.remove(`mg-column-handle-menu__submenu-panel--flip`);let n=e.getBoundingClientRect(),r=t.offsetWidth;n.right+r>window.innerWidth-uy&&t.classList.add(`mg-column-handle-menu__submenu-panel--flip`)}function vy(e){let t=document.createElement(`div`);t.className=`${gl} ${El}`;let n=document.createElement(`div`);n.className=xl;let r=document.createElement(`button`);r.type=`button`,r.className=`${_l} ${bl}`,r.setAttribute(`role`,`menuitem`),r.setAttribute(`aria-haspopup`,`menu`),r.setAttribute(`aria-expanded`,`false`),r.append(py(Gf(),`固定列`)),r.append(Yf());let i=document.createElement(`div`);i.className=Sl,i.setAttribute(`role`,`menu`),i.hidden=!0,i.append(my(`不固定`,`pin-none`,{role:`menuitemradio`,checked:e===null,icon:Kf()}),my(`固定左侧`,`pin-left`,{role:`menuitemradio`,checked:e===`left`,icon:qf()}),my(`固定右侧`,`pin-right`,{role:`menuitemradio`,checked:e===`right`,icon:Jf()}));let a=()=>{i.hidden=!1,r.setAttribute(`aria-expanded`,`true`),n.classList.add(`mg-column-handle-menu__submenu--open`),_y(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 yy(e,t,n){let r=()=>{n.hidden=!1,t.setAttribute(`aria-expanded`,`true`),e.classList.add(`mg-column-handle-menu__submenu--open`),_y(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 by(e){let t=document.createElement(`div`);t.className=`${gl} ${Ol}`;let n=document.createElement(`div`);n.className=xl;let r=document.createElement(`button`);r.type=`button`,r.className=`${_l} ${bl}`,r.setAttribute(`role`,`menuitem`),r.setAttribute(`aria-haspopup`,`menu`),r.setAttribute(`aria-expanded`,`false`),r.append(py(Xf(),`列显隐`)),r.append(Yf());let i=document.createElement(`div`);i.className=Sl,i.setAttribute(`role`,`menu`),i.hidden=!0,i.append(my(`隐藏此列`,`hide-column`,{icon:Zf()})),e.length>0&&i.append(hy());for(let t of e)i.append(my(t.label,`show-column`,{targetColId:t.colId,icon:Qf()}));return yy(n,r,i),n.append(r,i),t.append(n),t}function xy(e,t,n,r,i,a,o,s){let c=document.createElement(`div`);c.className=`${gl} ${Dl}`;let l=cy({colId:e,filterModel:t,columnFilterType:n,distinctFilterValues:r,filterSetValueMode:i,filterSetDateLayoutMode:a,onFilterInput:o,abortSignal:s});return c.append(l.root),c}var Sy=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=hl;let n=document.createElement(`div`);n.className=ml,n.setAttribute(`role`,`menu`),n.dataset.colId=e.colId;let r=[];e.sections.sort&&r.push(gy(e.colId,e.sortModel)),e.sections.pin&&r.push(vy(e.fixed)),e.sections.visibility&&r.push(by(e.hiddenUserColumns)),e.sections.filter&&r.push(xy(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(hy()),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(`.${wl}`);t&&ly(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}=fy(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`)}},Cy=new Set([`sort-asc`,`sort-desc`,`sort-clear`]),wy={"pin-none":null,"pin-left":`left`,"pin-right":`right`},Ty=class{deps;view=new Sy;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=Al({colId:e.colId,sortable:t.sortable,filterable:t.filterable},e.mode??`full`);if(!jl(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:Fa(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(Cy.has(e)){this.applySortAction(e,t);return}let r=wy[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=cv(t,n);break;case`sort-desc`:r=lv(t,n);break;case`sort-clear`:r=uv(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&&xi(r))return;this.clearFilterDebounce();let i=()=>{let r=Mv(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=Pv(e,this.deps.getFilterModel());this.deps.setFilterModel(n),this.view.syncFilterPanel(Av(e,n,t.filterType,this.deps.getColumnDistinctFilterValues(e).map(e=>e.key)))}clearFilterDebounce(){this.filterDebounceTimer!=null&&(clearTimeout(this.filterDebounceTimer),this.filterDebounceTimer=null)}};function Ey(e){let{current:t,colId:n,sortable:r}=e;if(!r)return va(t);let i=va(t).find(e=>e.colId===n);return i?i.sort===`asc`?[{colId:n,sort:`desc`}]:[]:[{colId:n,sort:`asc`}]}function Dy(e,t){return t.find(t=>t.colId===e)?.sort??null}function Oy(e){return e===`asc`?`ascending`:e===`desc`?`descending`:`none`}var ky=class{deps;constructor(e){this.deps=e}toggleSort(e){if(!this.deps.getColumnById(e)?.sortable)return;let t=Ey({current:this.deps.getSortModel(),colId:e,sortable:!0});this.deps.setSortModel(t)}getSortState(e){return Dy(e,this.deps.getSortModel())}};function Ay(e){let t=document.createElement(`div`);return t.className=`mg-header-row__lane mg-header-row__lane--${e}`,t}function jy(e){let t=document.createElement(`div`);return t.className=`mg-footer-row__lane mg-footer-row__lane--${e}`,t}function My(e){let t=document.createElement(`div`);return t.className=`mg-floating-filter-row__lane mg-floating-filter-row__lane--${e}`,t}function Ny(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=Ay(`left`),c=Ay(`center`),l=Ay(`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`,m.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:ee,wrapperEl:x,contentEl:S}=d_();d.appendChild(ee),n.appendChild(r);let C,w,T,E,D,O,k;if(t.floatingFilter){C=document.createElement(`div`),C.className=`mg-floating-filter-viewport`,w=document.createElement(`div`),w.className=`mg-floating-filter-scroll`,T=document.createElement(`div`),T.className=`mg-floating-filter-gutter`,T.setAttribute(`aria-hidden`,`true`),E=document.createElement(`div`),E.className=`mg-floating-filter-row`,D=My(`left`),O=My(`center`),k=My(`right`),E.append(D,O,k);let e=document.createElement(`div`);e.className=`mg-floating-filter-span`,e.setAttribute(`aria-hidden`,`true`),w.append(E,e),C.append(w,T),n.appendChild(C)}n.appendChild(d);let A,j,M,N,te,ne,P;if(t.showSummary){A=document.createElement(`div`),A.className=`mg-footer-viewport`,j=document.createElement(`div`),j.className=`mg-footer-scroll`,M=document.createElement(`div`),M.className=`mg-footer-gutter`,M.setAttribute(`aria-hidden`,`true`),N=document.createElement(`div`),N.className=`mg-footer-row`,te=jy(`left`),ne=jy(`center`),P=jy(`right`),N.append(te,ne,P);let e=document.createElement(`div`);e.className=`mg-footer-span`,e.setAttribute(`aria-hidden`,`true`),j.append(N,e),A.append(j,M),n.appendChild(A)}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:A,footerScrollEl:j,footerGutterEl:M,footerRowEl:N,footerLeftLaneEl:te,footerCenterLaneEl:ne,footerRightLaneEl:P,floatingFilterViewportEl:C,floatingFilterScrollEl:w,floatingFilterGutterEl:T,floatingFilterRowEl:E,floatingFilterLeftLaneEl:D,floatingFilterCenterLaneEl:O,floatingFilterRightLaneEl:k,overlayEl:ee,overlayWrapperEl:x,overlayContentEl:S}}var Py=`mg-floating-filter-cell`,Fy=`mg-floating-filter-cell--active`,Iy=`mg-floating-filter-cell__inner`,Ly=`mg-floating-filter-control`,Ry=`mg-floating-filter-control--readonly`,zy=`mg-floating-filter-input`,By=`mg-floating-filter-input--readonly`,Vy=`mg-floating-filter-button`,Hy=`mg-floating-filter-button--active`,Uy=`contains`,Wy={blank:`空白`,notBlank:`非空白`};function Gy(e){return e===`OR`?`或者`:`并且`}function Ky(e){if(Mi(e.type))return Wy[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 qy(e){return!e||xi(e)?!1:wi(e).filter(Ci).length>=2}function Jy(e){if(!e||xi(e))return``;let t=wi(e),n=t.filter(Ci);if(n.length>=2){let[t,r]=n,i=Gy(Ti(e));return`${Ky(t)} ${i} ${Ky(r)}`}let[r]=n.length>0?n:t;return r?(r.type,r.filter??``):``}function Yy(e,t){return!(!e||t&&xi(t))}function Xy(e,t){return Yy(e,t)?!qy(t):!1}function Zy(e,t,n){let r=Pi(t,n);e.classList.toggle(Fy,r);let i=e.querySelector(`.${Vy}`);i&&(i.classList.toggle(Hy,r),r?i.setAttribute(`aria-pressed`,`true`):i.removeAttribute(`aria-pressed`))}function Qy(e,t){let n=Array.isArray(e)?e:[e];for(let e of n){let n=Array.from(e.querySelectorAll(`.${Py}[data-col-id]`));for(let e of n){let n=e.dataset.colId;n&&Zy(e,n,t)}}}var $y=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=Wo(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=Xy(r?.filterable??!1,i);n.input.readOnly=!a,n.input.classList.toggle(By,!a),n.input.tabIndex=a?0:-1,n.control.classList.toggle(Ry,!a),n.input.value=Jy(i)}Qy([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,t,n){let r=this.lanes[e];r.replaceChildren();for(let e of t){let t=n.columnModel.getColumn(e);if(!t)continue;let i=document.createElement(`div`);i.className=Py,i.dataset.colId=t.colId,I(t.colId)?i.classList.add(`mg-floating-filter-cell--index`):L(t.colId)&&i.classList.add(`mg-floating-filter-cell--selection`);let a=n.filterModel[t.colId],o=Yy(t.filterable,a),s=Xy(t.filterable,a);if(t.filterable){let e=document.createElement(`div`);e.className=Iy;let r=document.createElement(`div`);if(r.className=Ly,o){let e=document.createElement(`input`);e.type=`text`,e.className=zy,e.setAttribute(`aria-label`,`${t.label??t.prop??t.colId} 筛选`),e.value=Jy(a),e.readOnly=!s,s||(e.classList.add(By),r.classList.add(Ry),e.tabIndex=-1),s&&e.addEventListener(`input`,()=>{n.onInput(t.colId,e.value)}),e.addEventListener(`focus`,()=>{this.focusedColId=t.colId,n.onFocus?.(t.colId)}),e.addEventListener(`blur`,()=>{this.focusedColId===t.colId&&(this.focusedColId=null),n.onBlur?.(t.colId)}),r.append(e),this.inputBindings.push({colId:t.colId,input:e,control:r})}else{let e=document.createElement(`span`);e.className=`mg-floating-filter-cell__spacer`,e.setAttribute(`aria-hidden`,`true`),r.append(e)}let c=document.createElement(`button`);c.type=`button`,c.className=Vy,c.title=`列筛选`,c.setAttribute(`aria-label`,`${t.label??t.prop??t.colId} 列筛选`),c.setAttribute(`aria-haspopup`,`menu`),c.setAttribute(`aria-expanded`,`false`),c.append(Hf()),r.append(c),e.append(r),i.append(e)}Zy(i,t.colId,n.filterModel),Ao(i,ko(t,n.columnModel),Py),r.appendChild(i)}}};function eb(e,t,n,r){e.style.width=`${r.getLeftFixedWidth()}px`,t.style.width=`${r.getCenterTotalWidth()}px`,n.style.width=`${r.getRightFixedWidth()}px`}function tb(e,t,n,r){jo(e,r,Py),jo(t,r,Py),jo(n,r,Py)}function nb(e,t,n,r=`text`){let i=n[e],a=!0,o=[];if(i&&!xi(i)){let e=Ei(i);e!==void 0&&(a=!1,o=e)}return Nv(e,Uy,t,n,r,void 0,a,o)}var rb=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&&xi(r))return;let i=this.debounceTimers.get(e);i!=null&&clearTimeout(i),this.debounceTimers.set(e,setTimeout(()=>{this.debounceTimers.delete(e);let r=nb(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 ib(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 ab(e,t,n){return ib(e,t,n)!==0}function ob(e){return e.scrollWidth>e.clientWidth+1}var sb=class{deps;host;drag=null;scrollRaf=null;constructor(e,t){this.deps=e,this.host=t}isActive(){return this.drag!=null}canStart(e,t,n){if(n||this.drag||!e?.movable||e.hidden||I(e.colId)||L(e.colId))return!1;let r=Q(t);return!(r?.closest(`.mg-selection-checkbox--header`)||!r?.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},document.addEventListener(`mousemove`,this.handleMove),document.addEventListener(`mouseup`,this.handleEnd))}end(e){let t=this.drag;t&&(document.removeEventListener(`mousemove`,this.handleMove),document.removeEventListener(`mouseup`,this.handleEnd),this.deps.columnDragController.cleanup(t.sourceCell,this.deps.headerViewportEl),this.deps.setColumnMoveLiveDragging(!1),this.drag=null,this.scrollRaf!=null&&(cancelAnimationFrame(this.scrollRaf),this.scrollRaf=null),e&&(this.host.setSuppressColumnClick(!0),this.host.setSuppressColumnHandleClick(!0),window.setTimeout(()=>{this.host.setSuppressColumnClick(!1),this.host.setSuppressColumnHandleClick(!1)},0)))}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.deps.suppressMoveWhenColumnDragging()||this.deps.setColumnMoveLiveDragging(!0);let e=t.sourceCell.getBoundingClientRect(),i=this.deps.columnModel.getColumnById(t.colId),a=this.resolveGhostPosition(e);this.deps.columnDragController.setColumnMoving(t.colId),this.deps.columnDragController.setSourceHeaderDragging(t.sourceCell,!0),this.deps.columnDragController.setHeaderViewportDragging(this.deps.headerViewportEl,!0),this.deps.columnDragController.startGhost({label:i?.label??i?.prop??t.colId,width:e.width,height:e.height,left:a.left,top:a.top,mountEl:this.deps.mountEl})}let i=t.sourceCell.getBoundingClientRect(),a=this.resolveGhostPosition(i);this.deps.columnDragController.moveGhost(a.left,a.top),t.pointerX=e.clientX,this.renderAtPointer(t,e.clientX),ab(t.pointerX,...this.getScrollBounds(t))&&this.ensureEdgeScrollLoop()};handleEnd=e=>{let t=this.drag;if(t){if(t.active)if(this.deps.suppressMoveWhenColumnDragging()){let n=this.resolveDropAtClientX(e.clientX,t);n&&this.deps.moveColumn(t.colId,n.globalIndex,!0,n.toFixed)}else this.deps.finishColumnMove(t.colId);this.end(t.didMove)}};renderAtPointer(e,t){let n=this.resolveDropAtClientX(t,e);e.dropLaneEl=this.resolveDropLaneEl(t,n,e.colId),this.updateDropIndicator(e,n),this.deps.suppressMoveWhenColumnDragging()||this.applyLiveMove(e,n)}resolveDropLaneEl(e,t,n){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)}return[{fixed:`left`,el:this.deps.headerLeftLaneEl},{fixed:null,el:this.deps.headerCenterLaneEl},{fixed:`right`,el:this.deps.headerRightLaneEl}].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}resolveGhostPosition(e){return{left:e.left,top:e.bottom}}isSameDropTarget(e,t){return!e||!t?e===t:e.globalIndex===t.globalIndex&&e.toFixed===t.toFixed}getScrollBounds(e){let t=this.resolveScrollHost(e).getBoundingClientRect();return[t.left,t.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}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&&!ob(t)){this.scrollRaf=null;return}let n=t.getBoundingClientRect(),r=ib(e.pointerX,n.left,n.right);if(r!==0&&(t===this.deps.viewportEl?this.deps.scrollByHorizontalDelta(r):t.scrollLeft=Math.max(0,Math.min(t.scrollLeft+r,t.scrollWidth-t.clientWidth)),this.renderAtPointer(e,e.pointerX)),ab(e.pointerX,n.left,n.right)){this.scrollRaf=requestAnimationFrame(this.tickEdgeScroll);return}this.scrollRaf=null};updateDropIndicator(e,t){if(!t){this.deps.columnDragController.hideDropIndicator();return}let n=this.deps.columnModel.getColumn(t.globalIndex),r=n?e.dropLaneEl.querySelector(`.mg-header-cell[data-col-id="${n.colId}"]`):null;if(r){let e=r.getBoundingClientRect();this.deps.columnDragController.showDropIndicator(e.left,e.top,e.height);return}let i=e.dropLaneEl.getBoundingClientRect();this.deps.columnDragController.showDropIndicator(Math.max(i.left,i.right-2),i.top,i.height)}applyLiveMove(e,t){!t||this.isSameDropTarget(t,e.lastDropTarget)||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)}refreshSourceCell(e){let t=e.laneEl.querySelector(`.mg-header-cell[data-col-id="${e.colId}"]`);t&&(e.active&&(this.deps.columnDragController.setSourceHeaderDragging(e.sourceCell,!1),this.deps.columnDragController.setSourceHeaderDragging(t,!0)),e.sourceCell=t)}resolveHitLane(e,t){let n=[{fixed:`left`,el:this.deps.headerLeftLaneEl},{fixed:null,el:this.deps.headerCenterLaneEl},{fixed:`right`,el:this.deps.headerRightLaneEl}];if(!this.deps.allowCrossLaneColumnMove()){let e=this.deps.columnModel.getColumnById(t.colId)?.fixed??null;return n.find(({fixed:t})=>t===e)||{fixed:e,el:t.laneEl}}return n.find(({el:t})=>{let n=t.getBoundingClientRect();return e>=n.left&&e<=n.right})??n.find(({el:e})=>e===t.laneEl)??{fixed:null,el:this.deps.headerCenterLaneEl}}resolveDropAtClientX(e,t){let n=this.resolveHitLane(e,t),r=this.deps.columnModel.getColumns(),i=this.deps.columnModel.getFixedColumnGroups(),a=n.el.getBoundingClientRect(),o=[...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}]});return $r({columns:r,fixedGroups:i,clientX:e,laneRectLeft:a.left,laneRectRight:a.right,targetFixed:n.fixed,laneHeaderCells:o})}};function cb(e,t){let n=t.clientX,r=0,i=!1,a=t=>{if(e.rootEl.classList.toggle(`mg-root--column-resizing`,t),t){document.body.style.cursor=`col-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.clientX-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)}function lb(e,t){return e}var ub=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=Zg(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:cb({rootEl:Zg(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,t){if(this.columnResize)return!1;let n=this.deps.cellFocusService.getFocusedCell();if(!n||!be(n))return!1;let r=n.colId;if(I(r)||L(r)||!this.deps.columnModel.getColumnById(r)?.resizable)return!1;(!this.keyboardColumnResize||this.keyboardColumnResize.colId!==r)&&(this.keyboardColumnResize={colId:r,multiplier:0}),this.keyboardColumnResize.multiplier+=1;let i=(e===`left`?-1:1)*this.keyboardColumnResize.multiplier,a=this.deps.mountEl.querySelector(`.mg-header-cell[data-col-id="${r}"]`);return a&&this.markActiveCell(a),this.deps.resizeHeaderColumn(r,i,t),!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(){Zg(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=lb(e,r.fixed??null),a=n.startWidth+i;this.deps.setColumnWidths([{colId:n.colId,newWidth:a}],n.shiftKey,t)}};function db(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`,`.${_f}`].join(`, `))}var fb=class{deps;host;constructor(e,t){this.deps=e,this.host=t}applyFocusVisuals(){let e=this.deps.cellFocusService.getFocusedCell();this.syncHeaderFocusVisual(e&&be(e)?e.colId:null),this.syncFooterFocusVisual(e&&xe(e)?e.colId:null),!e||F(e)?this.deps.rowRenderer.setFocusedCell(null):this.deps.rowRenderer.setFocusedCell({rowId:e.rowId,colId:e.colId}),this.deps.syncCellRangeHighlightVisuals?.()}navigateTabChainEdit(e,t){let n=this.deps.cellFocusService.getFocusedCell();if(!n)return;let r=this.deps.rowModel.getRowCount(),i=pe(this.deps.columnModel);if(r===0||i.length===0)return;let a=Oe(n,e,r,i,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(!a){t(e);return}this.deps.ensureIndexVisible(a.rowIndex,`middle`),this.deps.ensureColumnVisible(a.colIndex),this.setFocusedCell(a),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=pe(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&&(F(r)||this.deps.ensureIndexVisible(r.rowIndex,`middle`),this.deps.ensureColumnVisible(r.colIndex),this.setFocusedCell(r))}navigateFocusToEdge(e){let t=this.deps.rowModel.getRowCount(),n=pe(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&&(F(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=pe(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&&(F(r)||this.deps.ensureIndexVisible(r.rowIndex,`middle`),this.deps.ensureColumnVisible(r.colIndex),this.setFocusedCell(r))}setFocusedCell(e){let t=this.normalizeSpanFocus(e);if(this.deps.cellFocusService.setFocusedCell(t),this.applyFocusVisuals(),F(t)){let e=this.deps.rowModel.getRow(0);e&&this.deps.eventBus.emit(`cellFocused`,{rowId:t.rowId,colId:t.colId,rowIndex:t.rowIndex,rowNode:e});return}let n=this.deps.rowModel.getRow(t.rowIndex);n&&this.deps.eventBus.emit(`cellFocused`,{rowId:t.rowId,colId:t.colId,rowIndex:t.rowIndex,rowNode:n})}normalizeSpanFocus(e){let t=this.deps.cellSpanService();if(!t?.active||F(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:Wg(this.deps.columnModel,n.colId)}}focusCellTarget(e){this.setFocusedCell({rowId:e.rowId,colId:e.colId,rowIndex:e.rowIndex,colIndex:Wg(this.deps.columnModel,e.colId)})}toggleIndexFocusFromFocus(){let e=this.deps.cellFocusService.getFocusedCell();return!e||F(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||F(e)?!1:this.toggleInlineCheckboxAtCell(e.rowId,e.colId,e.rowIndex)}toggleRowSelectionFromFocus(){let e=this.deps.cellFocusService.getFocusedCell();return!e||F(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||F(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||F(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||F(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 t=this.deps.cellFocusService.getFocusedCell();if(!t||!be(t))return!1;let n=t.colId;if(I(n)||L(n))return!1;let r=Qr({columns:this.deps.columnModel.getColumns(),colId:n,toGlobalIndex:-1,fixedGroups:this.deps.columnModel.getFixedColumnGroups(),direction:e});return r==null||!this.deps.moveColumn(n,r,!0)?!1:(this.setFocusedCell({rowId:t.rowId,colId:n,rowIndex:t.rowIndex,colIndex:r}),!0)}toggleHeaderSortFromFocus(){let e=this.deps.cellFocusService.getFocusedCell();return!e||!be(e)||!this.host.canToggleHeaderSort(e.colId)?!1:(this.deps.toggleHeaderSort(e.colId),!0)}toggleHeaderSelectionFromFocus(){let e=this.deps.cellFocusService.getFocusedCell();return!e||!be(e)||!this.host.isSelectionColumnEntry(e.colId)||!this.host.isSelectionHeaderMultiple()?!1:(this.host.toggleSelectAllVisibleRows(),!0)}startEditingFocusedCell(){let e=this.deps.cellFocusService.getFocusedCell();if(!e||F(e))return;let t=this.deps.rowModel.getRow(e.rowIndex);if(!t)return;let n=this.deps.mountEl.querySelector(`.mg-row[data-row-id="${e.rowId}"]`);if(!n)return;if(Fn(this.deps.editBehavior)){this.deps.tryStartRowEditing({rowId:e.rowId,colId:e.colId,rowIndex:e.rowIndex,rowNode:t,rowElement:n});return}let r=this.deps.columnModel.getColumnById(e.colId);!r||!H(r,t,this.deps.getCellDisableContext())||ka(r)||this.deps.tryStartCellEditing({rowId:e.rowId,colId:e.colId,rowIndex:e.rowIndex,rowNode:t,rowElement:n})}isHeaderNavigationEnabled(){return this.deps.navigateHeader()}isFooterNavigationEnabled(){return this.deps.showSummary()&&this.deps.navigateFooter()}isInlineCheckboxClickTarget(e){return e instanceof Element&&e.closest(`input.mg-inline-checkbox`)!=null}isGroupOrTreeExpandClickTarget(e){return e instanceof Element?e.closest(`button.mg-cell__group-expand`)!=null||e.closest(`button.mg-cell__tree-expand`)!=null:!1}toggleInlineCheckboxAtCell(e,t,n){let r=this.deps.columnModel.getColumnById(t);if(!r||!ka(r)||r.cellEditor!==`checkbox`)return!1;let i=this.deps.rowModel.getRow(n);if(!i||!H(r,i,this.deps.getCellDisableContext()))return!1;let a=this.deps.mountEl.querySelector(`.mg-row[data-row-id="${e}"] .mg-cell[data-col-id="${t}"]`);if(!a)return!1;let o=a.querySelector(`input.${O}`);return!o||o.disabled?!1:(o.checked=!o.checked,o.dispatchEvent(new Event(`change`,{bubbles:!0})),!0)}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()}}},pb=class{deps;host;drag=null;scrollRaf=null;constructor(e,t){this.deps=e,this.host=t}isActive(){return this.drag!=null}begin(e){this.end(),(e.kind===`index`?this.deps.indexFocusService:this.deps.selectionService)?.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},document.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(),document.addEventListener(`mousemove`,this.handleMove,!0),document.addEventListener(`mouseup`,this.handleUp,!0)}end(){document.removeEventListener(`mousemove`,this.handleMove,!0),document.removeEventListener(`mouseup`,this.handleUp,!0),document.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();qm(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=Gm(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=Wm(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),qm(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);if(this.drag.kind===`index`){if(!this.deps.indexFocusService)return;this.deps.indexFocusService.selectRangeBetween(this.drag.anchorRowIndex,e,t),this.deps.applyIndexFocusVisuals(),this.deps.emitIndexFocusChanged(this.deps.indexFocusService.getFocusedRowIds()),this.host.syncCellRangeFromIndexFocus?.(e);return}this.deps.selectionService&&(this.deps.selectionService.selectRangeBetween(this.drag.anchorRowIndex,e,n,{rowCount:this.deps.rowModel.getRowCount(),getAllRowIdAt:t}),this.deps.applySelectionVisuals(),this.deps.emitSelectionChanged(this.deps.selectionService.getSelectedRowIds()))}};function mb(e,t,n,r){return Wm(e,t,n,r)}function hb(e,t,n){return ib(e,t,n)}function gb(e,t,n){return qm(e,t,n)}function _b(e,t,n){return ab(e,t,n)}function vb(e,t,n){return gb(t,n.top,n.bottom)||_b(e,n.left,n.right)}function yb(e){return e.fixed??`center`}function bb(e,t,n){if(!n)return!1;let r=yb(e);return r===`right`||r===t}function xb(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 Sb(e,t,n){let r=n.getBoundingClientRect();return e>=r.left&&e<r.right&&t>=r.top&&t<r.bottom}var Cb={left:[`left`,`center`,`right`],center:[`center`,`left`,`right`],right:[`right`,`center`,`left`]};function wb(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 Tb(e,t,n,r,i,a){let o=xb(t,a,r,i.clientWidth);for(let i of Cb[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||!Sb(t,n,e))continue;let a=r.getColumnById(i);if(!(!a||a.hidden)&&bb(a,o,!0))return i}}return null}function Eb(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=xb(e,i,n,r.clientWidth),l=yb(s);if(bb(s,c,Sb(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=lo(r.scrollLeft,o,s);if(Ob(e-i.left,t,o,c))return null}return o}function Db(e,t){return e.filter(e=>yb(e)===t)}function Ob(e,t,n,r){return r+(e-t)>=n}function kb(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=xb(n,a,e,t.clientWidth);if(d===`left`){let e=Db(i,`left`);return e.length===0?null:e[oo(e,o)]?.colId??null}if(d===`right`){let e=Db(i,`right`);if(e.length===0)return null;let t=s+l,n=o-s-u;return e[oo(e.map(e=>({...e,left:e.left-t})),n)]?.colId??null}let f=Db(i,`center`);if(f.length===0)return null;let p=lo(r,l,u);return Ob(o,s,l,p)?null:f[oo(f,p+(o-s))]?.colId??null}function Ab(e,t,n,r,i,a,o){let s=Gm(e,n,r,i,a);if(!s)return null;let c=n.getBoundingClientRect(),l=o(),u=wb(n,s.rowId),d=(u==null?null:Tb(u,r,i,t,n,c))??Eb(r,i,t,n,c)??kb(t,n,r,l);return d?{rowIndex:s.rowIndex,colId:d}:null}var jb=class{deps;host;drag=null;scrollRaf=null;constructor(e,t){this.deps=e,this.host=t}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.isInlineCheckboxClickTarget(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 q(e.colId,i)}begin(e){this.end();let t=e.mode??`replace`,n=this.deps.getCellRangeService(),r=t===`append`&&n?n.getRanges():[],i=Rg(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},document.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(),document.addEventListener(`mousemove`,this.handleMove,!0),document.addEventListener(`mouseup`,this.handleUp,!0)}end(){document.removeEventListener(`mousemove`,this.handleMove,!0),document.removeEventListener(`mouseup`,this.handleUp,!0),document.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();vb(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=Ab(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||!q(n.colId,i))return;let a=Rg(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=mb(e.pointerY,t.top,t.bottom,this.deps.getRowHeight()),r=hb(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),vb(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=J({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=J(i,i),o=this.deps.getCellRangeOperationContext();n.addRange(a,o,i)&&(this.deps.applyCellRangeVisuals(),this.deps.emitCellSelectionChanged(`ui`))}},Mb=class{deps;drag=null;scrollRaf=null;constructor(e){this.deps=e}isActive(){return this.drag!=null}canStart(){if(this.deps.isCommitting()||!Ns(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=Y(i,r.displayedColIds);return a?(this.end(),this.drag={fixedAnchor:{rowIndex:a.top,colId:a.leftColId},sourceRange:a,previewRange:a,pointerX:e,pointerY:t},document.body.classList.add(`mg-fill-handle-dragging`),document.addEventListener(`mousemove`,this.handleMove,!0),document.addEventListener(`mouseup`,this.handleUp,!0),!0):!1}end(){document.removeEventListener(`mousemove`,this.handleMove,!0),document.removeEventListener(`mouseup`,this.handleUp,!0),document.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();vb(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=Pg(e.sourceRange,e.previewRange,n.displayedColIds),a=t.fillReverseStrategy===`clear`?Fg(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=Ab(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=Rg(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=Eg({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([Rs(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=mb(e.pointerY,t.top,t.bottom,this.deps.getRowHeight()),r=hb(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),vb(e.pointerX,e.pointerY,t)){this.scrollRaf=requestAnimationFrame(this.tickEdgeScroll);return}this.scrollRaf=null}},Nb=class{deps;drag=null;scrollRaf=null;constructor(e){this.deps=e}isActive(){return this.drag!=null}canStart(){if(this.deps.isCommitting()||!Ps(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=Y(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},document.body.classList.add(`mg-range-handle-dragging`),document.addEventListener(`mousemove`,this.handleMove,!0),document.addEventListener(`mouseup`,this.handleUp,!0),!0}end(){document.removeEventListener(`mousemove`,this.handleMove,!0),document.removeEventListener(`mouseup`,this.handleUp,!0),document.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();vb(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=Ab(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=Rg(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=mb(e.pointerY,t.top,t.bottom,this.deps.getRowHeight()),r=hb(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),vb(e.pointerX,e.pointerY,t)){this.scrollRaf=requestAnimationFrame(this.tickEdgeScroll);return}this.scrollRaf=null}},Pb=class{deps;constructor(e){this.deps=e}isEligibleDataCell(e,t){return q(e,t)}normalizeTarget(e){let t=Rg(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 Rg(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()||Es(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=Hs(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}selectFocusedCellRange(){if(!this.isActive())return!1;let e=this.deps.cellFocusService.getFocusedCell();if(!e||F(e))return!1;let t=this.deps.rowModel.getRow(e.rowIndex);return t?this.setSingleCellRange({rowId:t.id,rowIndex:e.rowIndex,colId:e.colId,rowNode:t}):!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=J(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&&!F(r)?t.extendFocusedRange({rowIndex:r.rowIndex,colId:r.colId},i,n):t.setRanges([J(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=J(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||F(n)||!this.isEligibleDataCell(n.colId,this.deps.rowModel.getRow(n.rowIndex)?.rowKind))return!0;let r=Te(n,e,this.deps.rowModel.getRowCount(),pe(this.deps.columnModel),e=>this.deps.rowModel.getRow(e)?.id,e=>this.deps.columnModel.getColumn(e)?.colId,this.deps.getFocusChromeNavigation());if(!r||F(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=Gs({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 Fb(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 Ib=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 t=Zg(this.deps.mountEl).querySelector(`.mg-row[data-row-id="${CSS.escape(e.rowId)}"] .mg-cell[data-col-id="${CSS.escape(Me)}"]`);t&&(e.sourceCell=t,this.markActiveCell(t))}canStart(e,t,n){return n||this.rowResize||!this.deps.indexColumnOptions.showIndexColumn||!this.deps.indexColumnOptions.indexColumn.enableRowResizer||!I(e)?!1:Q(t)?.closest(`.${Ji}`)!=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:Fb({rootEl:Zg(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(Yi)}clearActiveCell(){Zg(this.deps.mountEl).querySelectorAll(`.mg-cell[data-row-resize-active]`).forEach(e=>{e instanceof HTMLElement&&(e.removeAttribute(`data-row-resize-active`),e.classList.remove(Yi))})}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)}},Lb=[`--mg-color-row-drop-indicator`,`--mg-row-drop-indicator-height`,`--mg-row-drop-indicator-z-index`],Rb=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=`${aa} ${aa}--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=`${aa}__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=ia,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(ra),this.sourceCellEl=e,e?.classList.toggle(ra,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 Lb){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}};function zb(e,t){return e==null&&t==null?!0:e==null||t==null?!1:e.parentRowId===t.parentRowId&&e.siblingIndex===t.siblingIndex&&e.treeLevel===t.treeLevel}function Bb(e,t){let n=new Map;for(let r of t){let t=Im(e,r);t&&n.set(r,t)}return n}function Vb(e,t,n){for(let r of e){let e=t.get(r);if(e===void 0)continue;let i=n.findIndex(e=>e.id===r);if(i>=0&&e!==i)return!0}return!1}function Hb(e,t,n){if(!t||t.size===0)return!1;for(let r of e)if(!zb(t.get(r),Im(n,r)))return!0;return!1}function Ub(e,t,n,r,i){return r===i?e<0||Th(t,n)===e:!1}function Wb(e){return Vb(e.rowIds,e.startSourceIndices,e.sourceRows)||Hb(e.rowIds,e.startTreePositions,e.sourceRows)?!0:!e.dropAllowed||e.managed?!1:!Ub(e.startDisplayIndex,e.dropInsertIndex,e.rowCount,e.nestUnderRowId,e.startNestUnderRowId)}function Gb(e){return e.fromIndex!==e.toIndex||!zb(e.startTreePosition,e.currentTreePosition)}var Kb=class{deps;drag=null;scrollRaf=null;dragController=new Rb;constructor(e){this.deps=e}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&&qb(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?.()&&ch(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:Bb(a,r),startNestUnderRowId:null},document.addEventListener(`mousemove`,this.handleMove),document.addEventListener(`mouseup`,this.handleEnd)}end(e){let t=this.drag;t&&(document.removeEventListener(`mousemove`,this.handleMove),document.removeEventListener(`mouseup`,this.handleEnd),this.dragController.cleanup(),this.deps.setRowMoveLiveDragging(!1),document.body.classList.remove(`mg-row-dragging`,oa),document.body.style.removeProperty(`cursor`),document.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(ma(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,document.body.classList.add(`mg-row-dragging`),document.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:Jb(t.sourceCell,t.rowId,t.rowIds.length),width:e.width,height:e.height,left:e.left,top:e.top,mountEl:Zg(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();qm(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(ma(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=Ch(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:$m({rowModel:this.deps.rowModel,viewportEl:this.deps.viewportEl,clientX:e,clientY:t,getLogicalScrollTop:this.deps.getLogicalScrollTop,altKey:n,movingRowIds:r})}setDropForbidden(e){document.body.classList.toggle(oa,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=Th(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:r,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.hasSortModel(),a=Th(t,this.deps.rowModel.getRowCount()),o=this.deps.rowModel.getRowIndexById(e.rowId);if(o>=0&&a===o)return!1;let s=km({sourceRows:this.deps.rowModel.getSourceRows(),displayRows:this.deps.rowModel.rowsToDisplay,sortModelLength:+!!i,filterModelKeyCount:Object.keys(this.deps.rowModel.getFilterModel()).length}),c=Nm(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()?gh(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 Wb({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(){let e=(this.deps.isRowGroupingActive?.()??!1)||(this.deps.isTreeActive?.()??!1);return this.deps.rowDragManaged&&!fa(this.deps.hasSortModel(),this.deps.rowDragManaged,e)}isDeferredManagedCommit(){return this.isManagedRowDragEnabled()&&this.deps.rowDragCommitMode===`deferred`}canLiveReorder(){return this.isManagedRowDragEnabled()&&this.deps.rowDragCommitMode!==`deferred`}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=Wm(e.pointerY,t.top,t.bottom,this.deps.getRowHeight());if(n!==0&&(this.deps.scrollByDelta(n),this.renderAtPointer(e.pointerX,e.pointerY,e.altKey)),qm(e.pointerY,t.top,t.bottom)){this.scrollRaf=requestAnimationFrame(this.tickEdgeScroll);return}this.scrollRaf=null}};function qb(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 Jb(e,t,n){return n>1?`${n} rows`:Yb(e,t)}function Yb(e,t){return e.querySelector(`.mg-cell__text:not([hidden])`)?.textContent?.trim()||e.querySelector(`.mg-cell__renderer:not([hidden])`)?.textContent?.trim()||t}var Xb=`mg-cell-comment-context-menu__items`,Zb=`mg-cell-comment-context-menu__item`,Qb=`mg-cell-comment-context-menu__item-label`,$b=`mg-cell-comment-context-menu__item--committing`,ex=`mg-cell-comment-context-menu__loading-icon`,tx={remove:`删除中...`};function nx(e,t,n){let r=Uh(e.mountEl??e.anchorEl??null);if(e.anchorEl){let r=Wh(e.anchorEl),i=Fh(e.anchorEl);return Gh(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 rx(e){let t=document.createElement(`div`);t.className=Ll,t.setAttribute(`role`,`menu`);let n=document.createElement(`div`);n.className=Xb;let r=[],i=new Map;for(let t of e.items){let e=document.createElement(`button`);e.type=`button`,e.className=Zb,e.dataset.action=t.id,e.disabled=t.disabled===!0,e.setAttribute(`role`,`menuitem`);let a=document.createElement(`span`);a.className=Qb,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=nx(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(Rl,a),n.classList.toggle($b,a);for(let e of r)e.disabled=a||e.dataset.disabledInitially===`true`;if(a){h(n),m(n).textContent=tx[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(`.${Qb}`)}function h(e){if(e.querySelector(`.mg-cell-comment-context-menu__loading-icon`))return;let t=document.createElement(`span`);t.className=ex,t.setAttribute(`aria-hidden`,`true`),e.prepend(t)}function g(e){e.querySelector(`.${ex}`)?.remove()}for(let e of r)e.disabled&&(e.dataset.disabledInitially=`true`);return{close:d}}function ix(e,t,n,r){return t?r||!e.canView?null:e.canEdit&&!n?`edit`:`view`:e.canCreate?`create`:null}var ax=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=ix(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||!Lh(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=Yg(this.deps.rowModel,e.target);if(!n)return;let r=ox(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=rx({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=Yg(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)||!Lh(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 ox(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 sx=class{deps;suppressColumnClick=!1;suppressColumnHandleClick=!1;suppressHeaderSortClick=!1;focusController;columnResizeSession;columnHeaderDragSession;indexSelectionDragSession;cellRangeDragSession;fillHandleSession;rangeHandleSession;cellRangeInteraction;rowResizeSession;rowDragSession;cellCommentSession;overflowTooltipSession;constructor(e){this.deps=e,this.focusController=new fb({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??(()=>{})},this),this.columnResizeSession=new ub({mountEl:e.mountEl,columnModel:e.columnModel,columnHandleMenuController:e.columnHandleMenuController,cellFocusService:e.cellFocusService,setColumnWidths:e.setColumnWidths,resizeHeaderColumn:e.resizeHeaderColumn}),this.columnHeaderDragSession=new sb({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),this.indexSelectionDragSession=new pb({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})}},this),this.cellRangeDragSession=new jb({viewportEl:e.viewportEl,rowModel:e.rowModel,columnModel:e.columnModel,getCellRangeService:e.getCellRangeService??(()=>null),getCellSpanService:()=>e.cellSpanService,isCellSelectionEnabled:e.isCellSelectionEnabled??(()=>!1),getCellRangeOperationContext:e.getCellRangeOperationContext??(()=>({displayedColIds:e.columnModel.getDisplayedColumnIds()})),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,isInlineCheckboxClickTarget:e=>this.focusController.isInlineCheckboxClickTarget(e),isGroupOrTreeExpandClickTarget:e=>this.focusController.isGroupOrTreeExpandClickTarget(e),isPointerOverCellCommentIndicator:e.isPointerOverCellCommentIndicator??(()=>!1)},this),this.fillHandleSession=new Mb({viewportEl:e.viewportEl,rowModel:e.rowModel,columnModel:e.columnModel,getCellRangeService:e.getCellRangeService??(()=>null),getCellSpanService:()=>e.cellSpanService,getCellSelectionOptions:e.getCellSelectionOptions??(()=>({enabled:!1,suppressMultiRanges:!0,enableColumnSelection:!1,enableCellCopy:!1,enableCellPaste:!1,handle:null})),getCellRangeOperationContext:e.getCellRangeOperationContext??(()=>({displayedColIds:e.columnModel.getDisplayedColumnIds()})),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 Nb({viewportEl:e.viewportEl,rowModel:e.rowModel,columnModel:e.columnModel,getCellRangeService:e.getCellRangeService??(()=>null),getCellSpanService:()=>e.cellSpanService,getCellSelectionOptions:e.getCellSelectionOptions??(()=>({enabled:!1,suppressMultiRanges:!0,enableColumnSelection:!1,enableCellCopy:!1,enableCellPaste:!1,handle:null})),getCellRangeOperationContext:e.getCellRangeOperationContext??(()=>({displayedColIds:e.columnModel.getDisplayedColumnIds()})),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.cellRangeInteraction=new Pb({getCellRangeService:e.getCellRangeService??(()=>null),cellFocusService:e.cellFocusService,columnModel:e.columnModel,rowModel:e.rowModel,getCellSpanService:()=>e.cellSpanService,isCellSelectionEnabled:e.isCellSelectionEnabled??(()=>!1),getCellSelectionOptions:e.getCellSelectionOptions,getCellRangeOperationContext:e.getCellRangeOperationContext??(()=>({displayedColIds:e.columnModel.getDisplayedColumnIds()})),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.rowResizeSession=new Ib({mountEl:e.mountEl,rowModel:e.rowModel,indexColumnOptions:e.indexColumnOptions,setRowHeights:e.setRowHeights}),this.rowDragSession=new Kb({mountEl:e.mountEl,viewportEl:e.viewportEl,rowModel:e.rowModel,rowDragManaged:e.rowDragManaged,rowDragCommitMode:e.rowDragCommitMode,hasSortModel:e.hasSortModel,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 ax({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}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.deps.mountEl.addEventListener(`mousedown`,this.handleHeaderMouseDown,!0),this.deps.mountEl.addEventListener(`dblclick`,this.handleHeaderDblClick,!0),this.deps.mountEl.addEventListener(`click`,this.handleHeaderClick,!0),this.deps.mountEl.addEventListener(`click`,this.handleFloatingFilterClick,!0),this.deps.mountEl.addEventListener(`mousedown`,this.handleFooterMouseDown,!0),this.deps.viewportEl.addEventListener(`mousedown`,this.handleCellMouseDown,!0),this.deps.viewportEl.addEventListener(`click`,this.handleCellClick),this.deps.viewportEl.addEventListener(`dblclick`,this.handleCellDoubleClick),this.deps.viewportEl.addEventListener(`keydown`,this.handleViewportKeyDown),this.deps.viewportEl.addEventListener(`keyup`,this.handleViewportKeyUp),this.cellCommentSession?.bindListeners(),this.overflowTooltipSession?.bindListeners()}unbindListeners(){this.deps.mountEl.removeEventListener(`mousedown`,this.handleHeaderMouseDown,!0),this.deps.mountEl.removeEventListener(`dblclick`,this.handleHeaderDblClick,!0),this.deps.mountEl.removeEventListener(`click`,this.handleHeaderClick,!0),this.deps.mountEl.removeEventListener(`click`,this.handleFloatingFilterClick,!0),this.deps.mountEl.removeEventListener(`mousedown`,this.handleFooterMouseDown,!0),this.deps.viewportEl.removeEventListener(`mousedown`,this.handleCellMouseDown,!0),this.deps.viewportEl.removeEventListener(`click`,this.handleCellClick),this.deps.viewportEl.removeEventListener(`dblclick`,this.handleCellDoubleClick),this.deps.viewportEl.removeEventListener(`keydown`,this.handleViewportKeyDown),this.deps.viewportEl.removeEventListener(`keyup`,this.handleViewportKeyUp),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()}navigateTabChainEdit(e){this.focusController.navigateTabChainEdit(e,e=>this.focusController.navigateTab(e))}getColIndex(e){return Wg(this.deps.columnModel,e)}resolveRootEl(){return Zg(this.deps.mountEl)}setFocusedCell(e){this.focusController.setFocusedCell(e)}setSuppressColumnClick(e){this.suppressColumnClick=e}setSuppressColumnHandleClick(e){this.suppressColumnHandleClick=e}isIndexColumnEntry(e){return I(e)&&this.deps.columnModel.getColumnById(e)!=null}isSelectionColumnEntry(e){return L(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:rt(t)}isGroupColumnEntry(e){let t=this.deps.columnModel.getColumnById(e);return!t||!this.deps.rowGroupingService?.active?!1:Ft(t)}isTreeColumnEntry(e){let t=this.deps.columnModel.getColumnById(e);return!t||!this.deps.treeTableService?.active?!1:un(t.colId)}isSelectionHeaderMultiple(){return this.deps.selectionService?.isMultiple()??!1}canToggleHeaderSort(e){return this.columnResizeSession.isActive()||this.deps.columnDragController.shouldSuppressSortClick()||I(e)||L(e)||this.isExpandColumnEntry(e)||this.isGroupColumnEntry(e)||this.isTreeColumnEntry(e)?!1:this.deps.columnModel.getColumnById(e)?.sortable??!1}shouldHeaderClickSortAndSelectColumn(e){return!this.deps.isCellSelectionEnabled?.()||!this.deps.getCellSelectionOptions?.().enableColumnSelection?!1:this.canToggleHeaderSort(e)}tryApplyHeaderColumnSelection(e,t){if(!this.cellRangeInteraction.tryHeaderColumnSelection(e))return!1;let n=this.deps.rowModel.getRow(0);return n&&this.setFocusedCell({rowId:n.id,colId:e,rowIndex:0,colIndex:t}),!0}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.cellRangeInteraction.syncFromIndexFocus(e)}applyRowSelection(e,t,n,r={}){if(!this.deps.selectionService||!this.isSelectionColumnEntry(n))return;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()}))}applyRowExpansionToggle(e,t,n){if(!this.deps.rowExpansionService?.active||!this.isExpandColumnEntry(n))return;let r=this.deps.rowModel.getRow(t);!r||z(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||!Yt(r))return;let i=r.sourceGroupId??Jt(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`)}}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.deps.applySelectionVisuals(),this.deps.eventBus.emit(`selectionChanged`,{selectedRowIds:this.deps.selectionService.getSelectedRowIds()}))}handleHeaderMouseDown=e=>{if(e.button!==0)return;let t=Jg(this.deps.columnModel,e.target);if(!t)return;this.clearIndexFocusState();let n=this.isSelectionColumnEntry(t.colId)&&this.deps.selectionService?.isMultiple(),r=Xg(e.target),i=this.deps.columnModel.getColumnById(t.colId);if(this.focusController.isHeaderNavigationEnabled()?(e.preventDefault(),e.stopPropagation(),this.canToggleHeaderSort(t.colId)||this.setFocusedCell({rowId:ve,colId:t.colId,rowIndex:-1,colIndex:t.colIndex}),n&&this.toggleSelectAllVisibleRows(),this.deps.viewportEl.focus()):n&&(e.preventDefault(),e.stopPropagation(),this.toggleSelectAllVisibleRows()),this.columnHeaderDragSession.canStart(i,e.target,this.indexSelectionDragSession.isActive()||this.columnResizeSession.isActive()||this.rowResizeSession.isActive())&&r){e.preventDefault(),e.stopPropagation(),this.columnHeaderDragSession.begin({colId:t.colId,sourceCell:r,clientX:e.clientX,clientY:e.clientY});return}if(this.columnResizeSession.canStart(i,e.target,this.indexSelectionDragSession.isActive()||this.columnHeaderDragSession.isActive()||this.rowResizeSession.isActive())&&r){e.preventDefault(),e.stopPropagation(),this.columnResizeSession.begin({colId:t.colId,sourceCell:r,event:e});return}if(!this.shouldHeaderClickSortAndSelectColumn(t.colId)&&!db(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=Jg(this.deps.columnModel,e.target);if(!t)return;let n=this.deps.columnModel.getColumnById(t.colId);!n?.resizable||n.suppressAutoSize||(e.preventDefault(),e.stopPropagation(),this.deps.autoSizeColumn(t.colId,`uiColumnResized`))};handleHeaderClick=e=>{if(e.button!==0)return;if(this.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=Jg(this.deps.columnModel,e.target);if(!t)return;let n=Kg(e.target);if(n){if(this.suppressColumnHandleClick){this.suppressColumnHandleClick=!1,e.preventDefault(),e.stopPropagation();return}e.preventDefault(),e.stopPropagation(),this.deps.columnHandleMenuController.toggle({colId:t.colId,handleEl:n});return}if(!this.canToggleHeaderSort(t.colId)){this.deps.columnDragController.shouldSuppressSortClick()&&(e.preventDefault(),e.stopPropagation());return}e.preventDefault(),e.stopPropagation(),this.deps.toggleHeaderSort(t.colId),this.shouldHeaderClickSortAndSelectColumn(t.colId)&&this.tryApplyHeaderColumnSelection(t.colId,t.colIndex)};handleFloatingFilterClick=e=>{let t=qg(e.target);if(!t)return;let n=t.closest(`.mg-floating-filter-cell[data-col-id]`)?.dataset.colId;n&&(e.preventDefault(),e.stopPropagation(),this.deps.columnHandleMenuController.toggle({colId:n,handleEl:t,mode:`filter-only`}))};handleFooterMouseDown=e=>{if(e.button!==0)return;let t=Gg(this.deps.columnModel,e.target);t&&(this.clearIndexFocusState(),this.focusController.isFooterNavigationEnabled()&&(e.preventDefault(),e.stopPropagation(),this.setFocusedCell({rowId:ye,colId:t.colId,rowIndex:-2,colIndex:t.colIndex}),this.deps.viewportEl.focus()))};handleCellMouseDown=async e=>{if(e.button!==0)return;if(e.target instanceof Element&&e.target.closest(`.mg-range-handle`)){if(e.preventDefault(),e.stopPropagation(),this.deps.isCommitting()&&await this.deps.awaitCommitIdle(),this.deps.isEditing()&&(await this.deps.commitEditing(),this.deps.isEditing()))return;this.rangeHandleSession.begin(e.clientX,e.clientY);return}if(e.target instanceof Element&&e.target.closest(`.mg-fill-handle`)){if(e.preventDefault(),e.stopPropagation(),this.deps.isCommitting()&&await this.deps.awaitCommitIdle(),this.deps.isEditing()&&(await this.deps.commitEditing(),this.deps.isEditing()))return;this.fillHandleSession.begin(e.clientX,e.clientY);return}if(this.fillHandleSession.isActive()||this.rangeHandleSession.isActive()||this.columnHeaderDragSession.isActive()||this.columnResizeSession.isActive()||this.rowResizeSession.isActive()||this.rowDragSession.isActive())return;let t=Yg(this.deps.rowModel,e.target);if(t&&!this.isIndexColumnEntry(t.colId)&&this.clearIndexFocusState(),t&&this.focusController.isGroupOrTreeExpandClickTarget(e.target)){e.preventDefault(),e.stopPropagation(),this.isGroupColumnEntry(t.colId)?this.applyRowGroupingToggle(t.rowId,t.rowIndex,t.colId):this.isTreeColumnEntry(t.colId)&&this.applyTreeTableToggle(t.rowId,t.rowIndex,t.colId),this.setFocusedCell({rowId:t.rowId,colId:t.colId,rowIndex:t.rowIndex,colIndex:this.getColIndex(t.colId)}),this.deps.viewportEl.focus();return}if(t&&this.rowResizeSession.canStart(t.colId,e.target,this.indexSelectionDragSession.isActive()||this.rowDragSession.isActive())){let n=Q(e.target)?.closest(`.mg-cell`);if(n){e.preventDefault(),e.stopPropagation(),this.rowResizeSession.begin({rowId:t.rowId,sourceCell:n,event:e});return}}if(t&&this.rowDragSession.canStart(t.colId,e.target,this.indexSelectionDragSession.isActive()||this.columnHeaderDragSession.isActive()||this.columnResizeSession.isActive())){let n=Q(e.target)?.closest(`.mg-cell`);if(n){e.preventDefault(),e.stopPropagation(),this.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.deps.isCommitting()&&!this.deps.isEditing()&&t&&n){e.preventDefault(),this.deps.eventBus.emit(`cellClicked`,{rowId:t.rowId,colId:t.colId,rowIndex:t.rowIndex,rowNode:t.rowNode}),this.indexSelectionDragSession.begin({kind:n,anchorRowId:t.rowId,colId:t.colId,rowIndex:t.rowIndex,clientY:e.clientY});return}if(t&&this.deps.isCellSelectionEnabled?.()&&!Fn(this.deps.editBehavior)&&!await this.commitEditingForCellRangeInteraction(t,e))return;if(t&&this.cellRangeDragSession.canStart(t,e,`replace`)){e.preventDefault(),this.clearIndexFocusIfNeeded(t.colId),this.deps.eventBus.emit(`cellClicked`,{rowId:t.rowId,colId:t.colId,rowIndex:t.rowIndex,rowNode:t.rowNode}),this.cellRangeDragSession.begin({anchorRowId:t.rowId,anchorColId:t.colId,anchorRowIndex:t.rowIndex,clientX:e.clientX,clientY:e.clientY,mode:`replace`});return}if(t&&this.cellRangeDragSession.canStart(t,e,`append`)){e.preventDefault(),this.clearIndexFocusIfNeeded(t.colId),this.deps.eventBus.emit(`cellClicked`,{rowId:t.rowId,colId:t.colId,rowIndex:t.rowIndex,rowNode:t.rowNode}),this.cellRangeDragSession.begin({anchorRowId:t.rowId,anchorColId:t.colId,anchorRowIndex:t.rowIndex,clientX:e.clientX,clientY:e.clientY,mode:`append`});return}if(t&&this.cellRangeInteraction.tryHandleModifierMouseDown(t,e)){this.deps.eventBus.emit(`cellClicked`,{rowId:t.rowId,colId:t.colId,rowIndex:t.rowIndex,rowNode:t.rowNode}),this.clearIndexFocusIfNeeded(t.colId),this.setFocusedCell({rowId:t.rowId,colId:t.colId,rowIndex:t.rowIndex,colIndex:this.getColIndex(t.colId)}),this.deps.viewportEl.focus();return}if(this.deps.isCommitting()&&(e.preventDefault(),await this.deps.awaitCommitIdle()),this.deps.isEditing()&&w(e.target))return;let r=Yg(this.deps.rowModel,e.target);if(this.deps.isEditing()&&(r&&this.isSameEditingTarget(r)||(await this.deps.commitEditing(),this.deps.isEditing())))return;if(!r){this.clearIndexFocusState(),this.cellRangeInteraction.tryClearOnBlankViewportClick();return}let{rowId:i,colId:a,rowIndex:o,rowNode:s}=r;(this.isExpandColumnEntry(a)||this.isGroupColumnEntry(a)||this.isTreeColumnEntry(a)||this.isSelectionColumnEntry(a)||e.shiftKey||e.ctrlKey||e.metaKey)&&e.preventDefault(),this.deps.eventBus.emit(`cellClicked`,{rowId:i,colId:a,rowIndex:o,rowNode:s}),this.isIndexColumnEntry(a)?this.applyIndexFocus(i,o,a,{ctrlKey:e.ctrlKey||e.metaKey,shiftKey:e.shiftKey,toggleOnReselect:!0}):(this.clearIndexFocusIfNeeded(a),this.isExpandColumnEntry(a)?this.applyRowExpansionToggle(i,o,a):this.isSelectionColumnEntry(a)&&this.applyRowSelection(i,o,a,{ctrlKey:e.ctrlKey||e.metaKey,shiftKey:e.shiftKey,toggleOnReselect:!0})),this.setFocusedCell({rowId:i,colId:a,rowIndex:o,colIndex:this.getColIndex(a)}),this.deps.viewportEl.focus()};handleViewportKeyDown=e=>{if(e.key===`Escape`&&this.deps.isCommitting()){e.preventDefault(),this.deps.cancelCommit();return}if(this.deps.isEditing())return;if(e.key===`F2`&&e.shiftKey){this.cellCommentSession?.handleShiftF2()&&e.preventDefault();return}let t=this.focusController.keyToFocusDirection(e.key);if(t){if(e.preventDefault(),e.altKey&&(t===`left`||t===`right`)&&this.columnResizeSession.tryKeyboardResize(t,e.shiftKey)||e.shiftKey&&(t===`left`||t===`right`)&&this.focusController.tryMoveFocusedHeaderColumn(t))return;let n=this.cellRangeInteraction.onArrowKey(t,e.shiftKey);e.ctrlKey||e.metaKey?this.focusController.navigateFocusToEdge(t):this.focusController.navigateFocus(t),n&&!e.shiftKey&&this.cellRangeInteraction.selectFocusedCellRange();return}if(e.key===`Delete`||e.key===`Backspace`){this.cellRangeInteraction.handleDeleteKey()&&e.preventDefault();return}if((e.ctrlKey||e.metaKey)&&!e.shiftKey&&!e.altKey&&e.key.toLowerCase()===`c`){this.deps.copyCellSelectionToClipboard?.()&&e.preventDefault();return}if((e.ctrlKey||e.metaKey)&&!e.shiftKey&&!e.altKey&&e.key.toLowerCase()===`v`){this.deps.isCellSelectionEnabled?.()&&this.deps.getCellSelectionOptions?.().enableCellPaste&&(e.preventDefault(),this.deps.pasteCellSelectionFromClipboard?.());return}if(e.key===`Enter`){if(e.preventDefault(),this.focusController.toggleHeaderSortFromFocus()||this.focusController.toggleHeaderSelectionFromFocus()||this.focusController.toggleIndexFocusFromFocus()||this.focusController.toggleRowExpandFromFocus()||this.focusController.toggleRowGroupFromFocus()||this.focusController.toggleTreeTableFromFocus()||this.focusController.toggleRowSelectionFromFocus())return;this.cellCommentSession?.closeAll(),this.focusController.startEditingFocusedCell();return}if(e.key===` `||e.code===`Space`){if(e.preventDefault(),this.focusController.toggleHeaderSortFromFocus()||this.focusController.toggleHeaderSelectionFromFocus()||this.focusController.toggleIndexFocusFromFocus()||this.focusController.toggleInlineEditorFromFocus()||this.focusController.toggleRowExpandFromFocus()||this.focusController.toggleRowGroupFromFocus()||this.focusController.toggleTreeTableFromFocus())return;this.focusController.toggleRowSelectionFromFocus();return}e.key===`Tab`&&(e.preventDefault(),this.focusController.navigateTab(e.shiftKey))};handleViewportKeyUp=e=>{this.columnResizeSession.handleKeyUp(e)};handleCellClick=async e=>{if(e.button!==0||(this.deps.isCommitting()&&(e.preventDefault(),await this.deps.awaitCommitIdle()),e.ctrlKey||e.metaKey||e.shiftKey))return;if(this.suppressColumnClick){this.suppressColumnClick=!1;return}let t=Yg(this.deps.rowModel,e.target);if(!t)return;if(this.emitRowPointerEvent(`rowClicked`,t),this.cellRangeInteraction.tryClearOnPlainClick(t),this.deps.isEditing()){if(Fn(this.deps.editBehavior)&&this.deps.getEditingRowId()===t.rowId&&t.colId!==this.deps.getEditingCell()?.colId&&this.deps.focusRowEditingColumn?.(t.colId))return;if(this.isSameEditingTarget(t))return this.cellCommentSession?.handleCellClick(e,t),void 0;if(await this.deps.commitEditing(),this.deps.isEditing())return}if(this.focusController.focusCellTarget(t),this.cellCommentSession?.handleCellClick(e,t))return;if(Fn(this.deps.editBehavior)){let e=this.deps.columnModel.getColumnById(t.colId);if(!e||Nn(e,this.deps.editType)!==`singleClick`)return;this.cellCommentSession?.closeAll(),this.deps.tryStartRowEditing(t);return}let n=this.deps.columnModel.getColumnById(t.colId);if(n){if(ka(n)){n.cellEditor===`checkbox`&&!this.focusController.isInlineCheckboxClickTarget(e.target)&&this.focusController.toggleInlineCheckboxAtCell(t.rowId,t.colId,t.rowIndex);return}Nn(n,this.deps.editType)===`singleClick`&&(this.cellCommentSession?.closeAll(),this.deps.tryStartCellEditing(t))}};handleCellDoubleClick=async e=>{if(e.button!==0||(this.deps.isCommitting()&&(e.preventDefault(),await this.deps.awaitCommitIdle()),e.ctrlKey||e.metaKey||e.shiftKey))return;let t=Yg(this.deps.rowModel,e.target);if(!t||(this.emitRowPointerEvent(`rowDoubleClicked`,t),this.deps.isEditing()&&(this.isSameEditingTarget(t)||(await this.deps.commitEditing(),this.deps.isEditing()))))return;this.focusController.focusCellTarget(t);let n=this.deps.columnModel.getColumnById(t.colId);if(Fn(this.deps.editBehavior)){if(!n||Nn(n,this.deps.editType)!==`doubleClick`)return;this.cellCommentSession?.closeAll(),this.deps.tryStartRowEditing(t);return}!n||Nn(n,this.deps.editType)!==`doubleClick`||ka(n)||(this.cellCommentSession?.closeAll(),this.deps.tryStartCellEditing(t))};async commitEditingForCellRangeInteraction(e,t){return!this.deps.isEditing()||this.isSameEditingTarget(e)||t.target instanceof Element&&w(t.target)?!0:(this.deps.isCommitting()&&await this.deps.awaitCommitIdle(),await this.deps.commitEditing(),!this.deps.isEditing())}isSameEditingTarget(e){if(!this.deps.isEditing())return!1;if(Fn(this.deps.editBehavior))return this.deps.getEditingRowId()===e.rowId;let t=this.deps.getEditingCell();return t?.rowId===e.rowId&&t?.colId===e.colId}emitRowPointerEvent(e,t){Qt(t.rowNode)&&this.deps.eventBus.emit(e,{rowId:t.rowId,colId:t.colId,rowIndex:t.rowIndex,rowNode:t.rowNode})}resolveColumnDragKind(e,t){if(t.shiftKey||t.ctrlKey||t.metaKey)return null;let n=Q(t.target);return n?.closest(`.mg-cell__row-resize-handle`)||n?.closest(`.mg-cell__row-drag-handle`)?null:this.isIndexColumnEntry(e)&&this.deps.indexFocusService?.isMultiple()?`index`:this.isSelectionColumnEntry(e)&&this.deps.selectionService?.isMultiple()?`selection`:null}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 cx(e){return ze(e).mode}function lx(e){return ze(e)}var ux=`mg-header-cell--filtered`,dx=`.mg-header-cell__column-handle`;function fx(e,t,n){let r=Pi(t,n);e.classList.toggle(ux,r);let i=e.querySelector(dx);i&&(r?i.setAttribute(`aria-pressed`,`true`):i.removeAttribute(`aria-pressed`))}function px(e,t){let n=Array.isArray(e)?e:[e];for(let e of n){let n=Array.from(e.querySelectorAll(`.mg-header-cell[data-col-id]`));for(let e of n){let n=e.dataset.colId;n&&fx(e,n,t)}}}function mx(e){return e??`center`}function hx(){let e=document.createElement(`div`);return e.className=`mg-header-cell__label`,e}function gx(e){let t=document.createElement(`span`);return t.className=`mg-header-cell__text`,t.textContent=I(e.colId)?e.label??``:e.label??e.prop??e.colId,t}function _x(e){return I(e.colId)||L(e.colId)||R(e.colId)?!1:e.sortable||e.movable||e.filterable}function vx(e){let t=document.createElement(`span`);return t.className=`mg-header-cell__column-handle`,t.title=`列操作`,t.setAttribute(`aria-haspopup`,`menu`),t.setAttribute(`aria-expanded`,`false`),t.tabIndex=-1,t.dataset.columnHandleMovable=e.movable?`true`:`false`,t.dataset.columnHandleSortable=e.sortable?`true`:`false`,t.dataset.columnHandleFilterable=e.filterable?`true`:`false`,t.append(Rf()),t}function yx(e){if(!_x(e))return null;let t=document.createElement(`div`);return t.className=`mg-header-cell__chrome`,t.append(vx({movable:e.movable,sortable:e.sortable,filterable:e.filterable})),t}function bx(){let e=document.createElement(`div`);return e.className=`mg-header-cell__resize-handle`,e.setAttribute(`role`,`presentation`),e.dataset.resizable=`true`,e}function xx(e,t){t&&e.append(bx())}function Sx(){return Bf()}function Cx(e){return zf(e)}function wx(e,t,n){let r=e.querySelector(`.mg-header-cell__sort`);return r||(r=document.createElement(`span`),r.className=`mg-header-cell__sort`,r.setAttribute(`aria-hidden`,`true`),n?e.insertBefore(r,t):e.append(r)),r}function Tx(e){e.querySelector(`.mg-header-cell__sort`)?.remove()}function Ex(e,t,n,r){let i=e.querySelector(`.mg-header-cell__label`);if(!i||!t.sortable)return;let a=i.querySelector(`.mg-header-cell__text`);if(!a)return;let o=mx(t.headerAlign)===`right`,s=Dy(t.colId,n);if(e.classList.remove(`mg-header-cell--sort-hint`),s===`asc`||s===`desc`){wx(i,a,o).replaceChildren(Cx(s));return}if(r){wx(i,a,o).replaceChildren(Sx()),e.classList.add(`mg-header-cell--sort-hint`);return}Tx(i)}function Dx(e,t){let n=mx(t.headerAlign),r=hx(),i=gx(t);r.append(i);let a=yx(t);n===`right`&&a?e.append(a,r):a?e.append(r,a):e.append(r)}function Ox(e,t,n,r){if(!t.sortable){e.classList.remove(`mg-header-cell--sortable`,`mg-header-cell--sorted`,`mg-header-cell--sorted-asc`,`mg-header-cell--sorted-desc`,`mg-header-cell--sort-hint`),e.removeAttribute(`aria-sort`);let t=e.querySelector(`.mg-header-cell__label`);t&&Tx(t);return}e.classList.add(`mg-header-cell--sortable`),e.setAttribute(`role`,`columnheader`);let i=Dy(t.colId,n);e.setAttribute(`aria-sort`,Oy(i)),e.classList.remove(`mg-header-cell--sorted-asc`,`mg-header-cell--sorted-desc`,`mg-header-cell--sorted`),i===`asc`?e.classList.add(`mg-header-cell--sorted`,`mg-header-cell--sorted-asc`):i===`desc`&&e.classList.add(`mg-header-cell--sorted`,`mg-header-cell--sorted-desc`),Ex(e,t,n,r)}function kx(e,t){let n=_x(t),r=!I(t.colId)&&!L(t.colId)&&!R(t.colId);e.classList.toggle(`mg-header-cell--has-column-handle`,n),e.classList.toggle(`mg-header-cell--movable`,r&&t.movable),e.classList.toggle(`mg-header-cell--filterable`,r&&t.filterable)}function Ax(e,t){e.classList.toggle(`mg-header-cell--resizable`,t.resizable)}function jx(e,t,n,r,i,a,o,s={}){e.replaceChildren();for(let c of t){let t=n.getColumn(c);if(!t)continue;let l=document.createElement(`div`);if(l.className=`mg-header-cell`,l.dataset.colId=t.colId,L(t.colId))if(l.classList.add(`mg-header-cell--selection`),o?.enabled&&o.mode===`multiple`){let e=vf({checked:!1,ariaLabel:o.selectionColumn.selectAllLabel});e.classList.add(_f),l.append(e)}else{let e=document.createElement(`span`);e.className=`mg-header-cell__text`,e.textContent=``,l.append(e)}else if(I(t.colId)){let e=gx(t);l.append(e),l.classList.add(`mg-header-cell--index`)}else if(R(t.colId)){let e=document.createElement(`span`);e.className=`mg-header-cell__text`,e.textContent=``,l.append(e),l.classList.add(`mg-header-cell--expand`)}else if(B(t.colId)){let e=document.createElement(`span`);e.className=`mg-header-cell__text`,e.textContent=t.label??`分组`,l.append(e),l.classList.add(`mg-header-cell--group`)}else Dx(l,t),xx(l,t.resizable);Ox(l,t,r,a),kx(l,t),Ax(l,t),fx(l,t.colId,s),Ao(l,ko(t,n),`mg-header-cell`),ci(l,t.headerAlign,t.headerValign,`mg-header-cell`),t.validationRequired&&l.classList.add(`mg-header-cell--required`),i.hasColErrors(t.colId)&&l.classList.add(`mg-header-cell--invalid`),e.appendChild(l)}}function Mx(e){let{headerLeftLaneEl:t,headerCenterLaneEl:n,headerRightLaneEl:r,columnModel:i,centerWindow:a,sortModel:o,validationFeedback:s,selectionColumnOptions:c,showUnsortedSortHintOnHover:l=!1,filterModel:u={}}=e,d=Wo(i,a);t.style.width=`${i.getLeftFixedWidth()}px`,n.style.width=`${i.getCenterTotalWidth()}px`,r.style.width=`${i.getRightFixedWidth()}px`,jx(t,d.left,i,o,s,l,c,u),jx(n,d.center,i,o,s,l,c,u),jx(r,d.right,i,o,s,l,c,u)}function Nx(e,t,n,r){e.style.width=`${r.getLeftFixedWidth()}px`,t.style.width=`${r.getCenterTotalWidth()}px`,n.style.width=`${r.getRightFixedWidth()}px`}function Px(e,t,n,r){jo(e,r,`mg-header-cell`),jo(t,r,`mg-header-cell`),jo(n,r,`mg-header-cell`)}function Fx(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 Ix(e,t){return Math.max(0,e.getTotalWidth()-t)}function Lx(e,t,n){let r=Ix(e,n);return Math.max(0,Math.min(t,r))}function Rx(e,t,n,r,i){let a=Lx(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=zx(e,t);if(s<0)return a===n?null:a;let c=Fx(s,e,a,r);return c!==null&&(a=Lx(e,c,r)),a===n?null:a}function zx(e,t){for(let n=0;n<e.getColumnCount();n++)if(e.getColumn(n)?.colId===t)return n;return-1}function Bx(e){let t=e.scrollHeight>e.clientHeight+1,n=e.scrollWidth>e.clientWidth+1,r=e.totalHeight<e.clientHeight-.5,i=e.totalWidth<e.clientWidth-.5,a=e.scrollTop+e.clientHeight>=e.scrollHeight-1;return{hasVScrollbar:t,hasHScrollbar:n,innerRightClosesTable:t||i,innerBottomClosesTable:!(!r&&!n&&a)}}function Vx(e){return e.parentElement?.parentElement??null}function Hx(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 Ux(e,t,n,r){let i=Math.max(0,e-t);if(r===0||e<=16777216)return{totalHeight:e,viewportHeight:t,rowHeight:n,rowCount:r,compressed:!1,physicalSpacerHeight:e,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 Wx(e,t){return t.compressed?e>=t.physicalMaxScroll?t.logicalMaxScroll:Kx(e*t.rowHeight,0,t.logicalMaxScroll):Kx(e,0,t.logicalMaxScroll)}function Gx(e,t){return t.compressed?e>=t.logicalMaxScroll?t.physicalMaxScroll:Kx(e/t.rowHeight,0,t.physicalMaxScroll):Kx(e,0,t.physicalMaxScroll)}function Kx(e,t,n){return Math.max(t,Math.min(e,n))}var qx=null;function Jx(e=document){if(qx!==null)return qx;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&&Xx(e)?(qx=8,qx):(qx=n,qx)}function Yx(){qx=null}function Xx(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 Zx(e){if(!e.hasVScrollbar)return{layout:0,visual:0};let t=e.overlayScrollbars??Xx(),n=e.measuredWidth??Jx();if(t)return{layout:0,visual:n};let r=e.liveGutterWidth>0?e.liveGutterWidth:n;return{layout:r,visual:r}}function Qx(e,t,n){let r=Math.max(0,t.offsetWidth-t.clientWidth),i=Zx({hasVScrollbar:t.scrollHeight>t.clientHeight+1,liveGutterWidth:r,overlayScrollbars:n});e.rootEl.style.setProperty(`--mg-v-scrollbar-layout`,`${i.layout}px`),e.rootEl.style.setProperty(`--mg-v-scrollbar-visual`,`${i.visual}px`);let a=i.layout>0?0:i.visual;return e.rootEl.style.setProperty(`--mg-v-scrollbar-visual-overlay`,`${a}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),i}var $x=class{deps;lastScrollLeft=0;onAfterRedraw=null;resizeObserver=null;overlayScrollbars=null;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.resizeObserver?.disconnect(),this.resizeObserver=null}getLogicalScrollTop(){return Wx(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()}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=Ix(this.deps.columnModel,t),r=Math.max(0,Math.min(this.deps.viewportEl.scrollLeft+e,n));r!==this.deps.viewportEl.scrollLeft&&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=Fx(e,this.deps.columnModel,n,t);if(r===null)return;let i=Ix(this.deps.columnModel,t),a=Math.max(0,Math.min(r,i));a!==n&&this.scrollTo(this.deps.scrollBridge.getScrollTop(),a)}syncHorizontalLayout(){let e=this.deps.columnModel.getTotalWidth();this.syncHeaderFooterRowWidth(),this.deps.spacerEl.style.minWidth=`${e}px`,this.deps.rowsContainerEl.style.width=`${e}px`,Nx(this.deps.headerLeftLaneEl,this.deps.headerCenterLaneEl,this.deps.headerRightLaneEl,this.deps.columnModel),this.syncFooterHorizontalLayout(),this.syncFloatingFilterHorizontalLayout(),this.syncScrollbarGutter(),this.syncBorderClosureState(),this.syncIndexColumnFill()}syncColumnCellLayouts(){Px(this.deps.headerLeftLaneEl,this.deps.headerCenterLaneEl,this.deps.headerRightLaneEl,this.deps.columnModel),this.deps.footerLeftLaneEl&&this.deps.footerCenterLaneEl&&this.deps.footerRightLaneEl&&nc(this.deps.footerLeftLaneEl,this.deps.footerCenterLaneEl,this.deps.footerRightLaneEl,this.deps.columnModel),this.deps.floatingFilterLeftLaneEl&&this.deps.floatingFilterCenterLaneEl&&this.deps.floatingFilterRightLaneEl&&tb(this.deps.floatingFilterLeftLaneEl,this.deps.floatingFilterCenterLaneEl,this.deps.floatingFilterRightLaneEl,this.deps.columnModel)}syncBorderClosureState(){let e=Vx(this.deps.rootEl);if(!e)return;let t=this.deps.viewportEl;Hx(e,Bx({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()}))}syncViewportHeight(){let e=this.getViewportHeight(),t=this.resolveLogicalScrollTopForSync(),n=this.getScrollRange(e);n.compressed?(this.deps.spacerEl.style.height=``,this.deps.scrollPhantomEl.style.height=`${n.physicalMaxScroll+1}px`,this.syncCompressedLayerHeight(e)):(this.deps.spacerEl.style.height=`${n.physicalSpacerHeight}px`,this.deps.scrollPhantomEl.style.height=`0px`,this.deps.viewportEl.style.removeProperty(`--mg-viewport-px`)),this.syncScrollMode(e);let r=Math.min(t,n.logicalMaxScroll);this.deps.scrollBridge.syncScrollTop(r),this.applyPhysicalScrollFromLogical(r),this.syncHeaderFooterRowWidth(),this.syncScrollbarGutter(),this.syncBorderClosureState(),this.syncIndexColumnFill()}scrollGridIfNeeded(){let e=this.deps.viewportEl.scrollLeft,t=!1;return t=this.deps.scrollBridge.scrollGridIfNeeded(t=>{this.redrawViewport(t,e)})||t,e!==this.lastScrollLeft&&(this.lastScrollLeft=e,t||this.redrawViewport(this.deps.scrollBridge.getScrollTop(),e),t=!0),t}redrawImmediately(){if(this.deps.isDestroyed())return;let e=this.getLogicalScrollTop();this.deps.scrollBridge.syncScrollTop(e),this.lastScrollLeft=this.deps.viewportEl.scrollLeft,this.deps.frameService.flushAllFrames(),this.redrawViewport(e,this.deps.viewportEl.scrollLeft),this.deps.frameService.flushAllFrames(),this.deps.applySelectionVisuals(),this.deps.applyFocusVisuals(),this.syncBorderClosureState()}resetScrollOnSetData(){this.getScrollRange().compressed&&(this.deps.scrollBridge.syncScrollTop(0),this.deps.viewportEl.scrollTop=0,this.deps.viewportEl.scrollLeft=0,this.lastScrollLeft=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();if(this.deps.scrollBridge.notifyScroll(e),this.deps.frameService.setScrollDirection(this.deps.scrollBridge.isScrollGoingDown()),this.deps.headerScrollEl.scrollLeft=this.deps.viewportEl.scrollLeft,this.syncFooterScrollLeft(),this.syncFloatingFilterScrollLeft(),this.syncBorderClosureState(),this.syncPinnedRows(),this.getScrollRange().compressed){this.deps.scrollBridge.syncScrollTop(e),this.redrawViewport(e,this.deps.viewportEl.scrollLeft),this.deps.frameService.flushAllFrames(),this.deps.onBodyScroll(e,this.deps.viewportEl.scrollLeft),this.deps.onScroll?.();return}this.deps.frameService.schedule(),this.deps.onBodyScroll(e,this.deps.viewportEl.scrollLeft),this.deps.onScroll?.(),this.deps.applyCellRangeScrollVisuals?.()};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,o=Lx(this.deps.columnModel,i,a);if(o!==i){this.scrollTo(r,o);return}let s=this.getRenderViewportHeightInternal(),c=this.deps.columnViewport.update(o,a),l=this.deps.columnViewport.getWindow();c&&(this.renderHeader(l),this.deps.refreshFooter?.(),this.deps.refreshFloatingFilter?.(),this.deps.applyFocusVisuals()),this.syncFooterScrollLeft(),this.syncFloatingFilterScrollLeft(),this.syncPinnedRows(),this.deps.rowRenderer.redraw(r,s,l,c),this.deps.applyCellRangeVisuals?.(),this.syncIndexColumnFill(),this.onAfterRedraw?.()}syncScrollbarGutter(){Qx({rootEl:this.deps.rootEl,headerViewportEl:this.deps.headerViewportEl,footerViewportEl:this.deps.footerViewportEl,floatingFilterViewportEl:this.deps.floatingFilterViewportEl,magicGridEl:Vx(this.deps.rootEl)},this.deps.viewportEl,this.getOverlayScrollbars())}getOverlayScrollbars(){return this.overlayScrollbars===null&&(this.overlayScrollbars=Xx()),this.overlayScrollbars}handleViewportResize(){this.deps.isDestroyed()||(Yx(),this.overlayScrollbars=null,this.syncHeaderFooterRowWidth(),this.syncScrollbarGutter(),this.syncBorderClosureState(),this.syncIndexColumnFill())}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||(tc(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||Qy([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||(eb(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){Mx({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()})}refreshHeader(){this.deps.isDestroyed()||(this.deps.onHeaderRefresh?.(),this.renderHeader(this.deps.columnViewport.getWindow()))}refreshHeaderFilterActiveState(){this.deps.isDestroyed()||px([this.deps.headerLeftLaneEl,this.deps.headerCenterLaneEl,this.deps.headerRightLaneEl],this.deps.rowModel.getFilterModel())}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`))}syncIndexColumnFill(){let{indexColumnFillHostEl:e,indexColumnFillEl:t}=this.deps;if(!this.deps.showIndexColumn){e.hidden=!0;return}let n=this.deps.columnModel.getColumnById(Me);if(!n||n.hidden){e.hidden=!0;return}let r=this.deps.rowModel.getRowCount(),i=this.deps.rowModel.getTotalHeight(),a=this.getViewportHeight(),o=this.getLogicalScrollTop(),s=Math.max(0,o+a-i);if(r===0||s<=0){e.hidden=!0;return}let c=this.getScrollRange(a).compressed?i-o:i;e.hidden=!1,t.style.top=`${c}px`,t.style.left=`${n.left}px`,t.style.width=`${n.width}px`,t.style.height=`${s}px`}getScrollRange(e){let t=e??this.getViewportHeight();return Ux(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){let t=this.getScrollRange();this.deps.viewportEl.scrollTop=Gx(e,t)}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 eS(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=>!mu(e.colId)),o=i.filter(e=>mu(e.colId)).sort((e,t)=>e.defOrder-t.defOrder);n.push(...a.map(e=>e.colId),...o.map(e=>e.colId))}return n}function tS(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}function nS(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 rS=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=di({...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=pi({...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=Rx(this.deps.columnModel,e,t,n,r);i!==null&&(t=i)}let i=Lx(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`,gi(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}=ho(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`,gi(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.deps.columnViewport.invalidate(),this.deps.viewport.syncHorizontalLayout(),this.deps.viewport.refreshHeader(),this.deps.viewport.redrawImmediately(),this.deps.refreshFooter(),this.deps.refreshFloatingFilter(),this.refreshFlexedColumns();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?.(),!0}resetColumnOrder(){let e=this.deps.columnModel.getColumns(),t=e.map(e=>e.colId),n=eS(e);if(tS(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=nS(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.deps.columnViewport.invalidate(),this.deps.viewport.syncHorizontalLayout(),this.applyHorizontalScrollAfterColumnLayout(),this.deps.viewport.refreshHeader(),this.deps.viewport.redrawImmediately(),this.deps.refreshFooter(),this.deps.refreshFloatingFilter(),this.refreshFlexedColumns(),this.deps.eventBus.emit(`columnHiddenChanged`,{colIds:r,hidden:t,source:n}),this.deps.clearCellSelection?.(),!0)}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`,gi(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.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)}},iS=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?Yc({rows:this.deps.rowModel.getSourceRows(),colId:e,filterType:t.filterType,getFilterValue:t=>this.getColumnFilterValue(t,e)}):[]}isColumnFilterActive(e){return Pi(e,this.deps.rowModel.getFilterModel())}isAnyFilterActive(){return Fi(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?cc(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.rowRenderer.invalidate(),e.redrawImmediately(),e.refreshHeaderFilterActiveState(),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 aS(e){return e.rowKind==null||e.rowKind===`data`}function oS(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;aS(t)&&i.push(t.id)}return i}function sS(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&&aS(n)&&i.push(n.id)}return i}function cS(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=sS(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 lS(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=oS(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 uS(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=sS(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 dS=class{deps;selectableFn;reserveSelection;constructor(e,t,n){this.deps=e,this.selectableFn=t,this.reserveSelection=n}setSelectable(e){this.selectableFn=Fr(e),this.deps.rowRenderer.setIsRowNodeSelectable(e=>this.isRowNodeSelectable(e)),this.applySelectionVisuals()}setReserveSelection(e){this.reserveSelection=e}toggleRowSelection(e,t,n){if(!this.deps.selectionService)return;let r=dl(e),i=!1,a=this.deps.selectionService.isMultiple(),o=[];for(let e of r){let r=this.deps.rowModel.getRowById(e);if(!r)continue;let s=this.deps.selectionService.isSelected(e),c=n===!0||this.isRowNodeSelectable(r),l=!1;if(t===void 0)if(s){if(!c)continue;this.deps.selectionService.removeRowIds([e])&&(l=!0)}else c&&(a?this.deps.selectionService.addRowId(e,r.rowIndex)&&(l=!0):this.deps.selectionService.replaceWithRowIds([e],r.rowIndex)&&(l=!0));else if(t){if(s||!c)continue;a?this.deps.selectionService.addRowId(e,r.rowIndex)&&(l=!0):this.deps.selectionService.replaceWithRowIds([e],r.rowIndex)&&(l=!0)}else if(s){if(!c)continue;this.deps.selectionService.removeRowIds([e])&&(l=!0)}l&&(i=!0,o.push({rowId:e,rowIndex:r.rowIndex}))}i&&(this.syncTreeSelectionCascade(o),this.applySelectionVisuals(),this.deps.eventBus.emit(`selectionChanged`,{selectedRowIds:this.deps.selectionService.getSelectedRowIds()}))}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)lS({displayRows:t,rowId:e,selected:n.has(e),groupSelectsChildren:!0,selectedIds:n});uS(t,n),this.deps.selectionService.replaceWithRowIds([...n],r.length>0?r[r.length-1].rowIndex:-1)}setIndexFocus(e){if(!this.deps.indexFocusService)return;let t=dl(e).map(e=>{let t=this.deps.rowModel.getRowIndexById(e);return t>=0?{id:e,rowIndex:t}:null}).filter(e=>e!=null),n=!1;t.length===0?(n=this.deps.indexFocusService.getFocusedRowIds().length>0,n&&this.deps.indexFocusService.clear()):n=this.deps.indexFocusService.isMultiple()?this.deps.indexFocusService.replaceWithRowIds(t.map(e=>e.id),t[0].rowIndex):this.deps.indexFocusService.replaceWithRowIds([t[0].id],t[0].rowIndex),n&&(this.applyIndexFocusVisuals({syncToSelectionColumn:!1}),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()}))}isRowNodeSelectable(e){return z(e)||Zt(e)?!1:Ir(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?.()?cS(this.deps.rowModel.rowsToDisplay,e):new Set;this.deps.rowRenderer.refreshSelection(e,t),Cf(this.deps.mountEl,{selectionColumnOptions:this.deps.selectionColumnOptions,selectedIds:e,indeterminateIds:t,rowModel:this.deps.rowModel}),this.deps.applyCellRangeVisuals?.()}refreshSelectionAfterDataChange(){this.applySelectionVisuals()}applyIndexFocusVisuals(e={}){if(!this.deps.indexFocusService)return;let t=new Set(this.deps.indexFocusService.getFocusedRowIds());this.deps.rowRenderer.refreshIndexFocus(t),e.syncToSelectionColumn!==!1&&this.maybeSyncIndexFocusToSelection()}onRowsRemoved(e){this.deps.selectionService?.removeRowIds(e)&&(this.applySelectionVisuals(),this.deps.eventBus.emit(`selectionChanged`,{selectedRowIds:this.deps.selectionService.getSelectedRowIds()})),this.deps.indexFocusService?.removeRowIds(e)&&(this.applyIndexFocusVisuals({syncToSelectionColumn:!1}),this.deps.eventBus.emit(`indexFocusChanged`,{focusedRowIds:this.deps.indexFocusService.getFocusedRowIds()}))}finalizePromoteRowId(e,t){this.deps.selectionService?.migrateRowId(e,t)&&(this.applySelectionVisuals(),this.deps.eventBus.emit(`selectionChanged`,{selectedRowIds:this.deps.selectionService.getSelectedRowIds()})),this.deps.indexFocusService?.migrateRowId(e,t)&&(this.applyIndexFocusVisuals({syncToSelectionColumn:!1}),this.deps.eventBus.emit(`indexFocusChanged`,{focusedRowIds:this.deps.indexFocusService.getFocusedRowIds()}))}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}maybeSyncIndexFocusToSelection(){if(!this.deps.indexColumnOptions.indexColumn.syncToSelectionColumn||!this.deps.indexFocusService||!this.deps.selectionService)return;let e=this.deps.indexColumnOptions.indexColumn.focusMode,t=this.deps.selectionColumnOptions.mode;if(!Rr(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()});return}let r=zr(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()}))}};function fS(e,t){let n={...e.data};return e.isTransient&&(n[t]=null),n}function pS(e,t){return e.map(e=>fS(e,t))}function mS(e,t){let n=e.indexMode??`source`,r=Am(e.index,n,t);return{add:e.rows.map((e,t)=>({data:e.data,index:r===void 0?void 0:r+t}))}}function hS(e,t){let n=new Set(fl(e.rowIds)??[]);if(e.indexes?.length){let r=e.indexMode??`source`;for(let i of jm(e.indexes,r,t))n.add(i)}return n.size===0?{}:{remove:[...n]}}function gS(e){return e.remove?.length?e.remove.filter(e=>typeof e==`string`):[]}function _S(e,t,n){return{rows:e.map(e=>({rowId:e.id,rowIndex:n(e.id),data:fS(e,t),isTransient:e.isTransient??!1}))}}function vS(e,t){return{rows:e.map(e=>({rowId:e.id,data:fS(e,t)}))}}function yS(e,t,n){return{oldRowId:e,newRowId:t.id,data:fS(t,n)}}function bS(e,t){return e.remove?.length?e.remove.map(e=>{if(typeof e==`string`)return e;let n=e[t];if(n==null)throw new pl(`Missing rowKey "${t}" in remove item`);return String(n)}):[]}function xS(e,t,n,r){let i=e[t];return i==null?r?.find(t=>t.data===e&&t.isTransient):n(String(i))}function SS(e,t,n){return!e.add?.length||!n?.rows?.length?e:{...e,add:e.add.map((e,r)=>{let i=n.rows?.[r];if(!i)return e;let a={...Vd(e,t)},o=i.data?{...a,...i.data}:a;return i.businessId!==void 0&&(o[t]=i.businessId),Bd(e,t)?{...e,data:o}:o})}}async function CS(e,t){try{return await t()}catch(t){throw t instanceof pl?t:new pl(`${e} persist failed`,t)}}async function wS(e,t){let{handlers:n,rowKey:r,getRowById:i,sourceRows:a,signal:o=new AbortController().signal}=t;if(!n?.add&&!n?.update&&!n?.remove)return e;let s=e;if(n.remove&&e.remove?.length){let t=bS(e,r),a=t.map(e=>{let t=i(e);return{rowId:e,data:t?{...t.data}:{}}});await CS(`remove`,()=>n.remove({rowIds:t,rows:a,signal:o}))}if(n.update&&e.update?.length){let t=e.update.map(e=>{let t=xS(e,r,i,a);if(!t)throw new pl(`Update target row not found for rowKey "${r}"`);return{rowId:t.id,data:e}});await CS(`update`,()=>n.update({rows:t,signal:o}))}if(n.add&&e.add?.length){let t=e.add.map(e=>({data:Vd(e,r)})),i=e.add[0],a=i?Hd(i,r):void 0,c=i&&Bd(i,r)?i.indexMode:void 0,l=await CS(`add`,()=>n.add({rows:t,index:a,indexMode:c,signal:o}));s=SS(s,r,l)}return s}var TS=class{deps;pendingTransaction=null;rowMoveService;constructor(e){this.deps=e,this.rowMoveService=new Sh({getSourceRows:()=>this.deps.rowModel.getSourceRows(),getDisplayRows:()=>this.deps.rowModel.rowsToDisplay,getSortModelLength:()=>this.deps.rowModel.getSortModel().length,getFilterModelKeyCount:()=>Object.keys(this.deps.rowModel.getFilterModel()).length,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){let t=await wS(e,{rowKey:this.deps.rowKey,handlers:this.deps.asyncRowMutation,getRowById:e=>this.deps.rowModel.getRowById(e),sourceRows:this.deps.rowModel.getSourceRows()}),n=gS(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)}commitTransaction(e){let t=this.deps.rowModel.applyTransaction(e);return this.deps.viewport.syncViewportHeight(),this.queueTransactionFlush(t),t}async addRows(e){let t=mS(e,this.createRowIndexContext());return this.applyTransaction(t)}async removeRows(e){let t=hS(e.rowIds?{...e,rowIds:fl(e.rowIds)}:e,this.createRowIndexContext());return gS(t).length===0?{add:[],remove:[],update:[]}:this.applyTransaction(t)}moveRow(e,t=`api`){let n=this.rowMoveService.moveRow(e,t);return n.moved&&this.afterRowOrderChanged(),n}moveRows(e,t=`api`){let n=this.rowMoveService.moveRows(e,t);return n.moved&&this.afterRowOrderChanged(),n}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}:Im(r,i)??void 0;if(!Gb({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`,K(i,a,e,t,!0,c))}}applyRowDragPlan(e,t=`uiRowDrag`){this.deps.rowModel.setSourceRows([...e.rows]),this.afterRowOrderChanged();for(let n of e.moves)this.deps.eventBus.emit(`rowMoved`,K(n.rowId,n.fromIndex,n.toIndex,t,!0,e.treeDrop))}afterRowOrderChanged(){this.deps.viewport.syncViewportHeight(),this.deps.refreshCellSpans(),this.deps.rowRenderer.setValueCacheVersion(this.deps.valueCache.getVersion()),this.deps.rowRenderer.invalidate(),this.deps.viewport.redrawImmediately(),this.deps.selectionOps.refreshSelectionAfterDataChange(),this.deps.refreshFooter()}getData(e){return pS(e?.sourceOrder===!1?this.deps.rowModel.rowsToDisplay:this.deps.rowModel.getSourceRows(),this.deps.rowModel.getRowKey())}promoteRowId(e){let t=X(e.rowId),{businessId:n}=e;if(this.deps.isEditingTargetRow(t))return{ok:!1,reason:`Row is being edited`};let r=this.deps.rowModel.promoteRowId(t,n);if(!r.ok)return r;this.finalizePromoteRowId(t,r.rowId);let i=this.deps.rowModel.getRowById(r.rowId);return i&&this.deps.eventBus.emit(`rowIdPromoted`,yS(t,i,this.deps.rowModel.getRowKey())),{ok:!0,rowId:Tr(r.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 km({sourceRows:this.deps.rowModel.getSourceRows(),displayRows:this.deps.rowModel.rowsToDisplay,sortModelLength:this.deps.rowModel.getSortModel().length,filterModelKeyCount:Object.keys(this.deps.rowModel.getFilterModel()).length})}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){this.deps.rowRenderer.migrateRowId(e,t),this.deps.validationFeedback.migrateRowId(e,t,this.deps.mountEl);let n=this.deps.cellFocusService.getFocusedCell();n?.rowId===e&&(this.deps.cellFocusService.setFocusedCell({...n,rowId:t}),this.deps.applyFocusVisuals()),this.deps.selectionOps.finalizePromoteRowId(e,t);let r=this.deps.rowModel.getSortModel().length>0||this.deps.filterOps.isAnyFilterActive();if(this.deps.refreshCellSpans(),this.deps.rowRenderer.setValueCacheVersion(this.deps.valueCache.getVersion()),r){this.deps.rowRenderer.invalidate(),this.deps.viewport.redrawImmediately();return}this.deps.rowRenderer.refreshRows({rowIds:[t],force:!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){this.emitRowMutationEvents(e);let t=e.add.length>0||e.remove.length>0||this.deps.rowModel.getSortModel().length>0||this.deps.filterOps.isAnyFilterActive();this.deps.refreshCellSpans(),this.deps.rowRenderer.setValueCacheVersion(this.deps.valueCache.getVersion()),t||e.update.length>0&&this.deps.isCellSpanActive()?(this.deps.rowRenderer.invalidate(),this.deps.viewport.redrawImmediately()):e.update.length>0&&(this.deps.rowRenderer.refreshRows({rowIds:e.update.map(e=>e.id)}),this.deps.frameService.flushAllFrames()),e.add.length>0&&this.scrollAddedRowsIntoView(e.add),this.deps.selectionOps.refreshSelectionAfterDataChange(),this.deps.refreshFooter(),this.deps.refreshOverlay?.()}scrollAddedRowsIntoView(e){let t=e[0];if(!t)return;let n=this.deps.rowModel.getRowIndexById(t.id);n<0||this.deps.ensureIndexVisible(n,`middle`)}emitRowMutationEvents(e){let t=this.deps.rowModel.getRowKey();e.add.length>0&&this.deps.eventBus.emit(`rowsAdded`,_S(e.add,t,e=>this.deps.rowModel.getSourceRowIndexById(e))),e.remove.length>0&&this.deps.eventBus.emit(`rowsRemoved`,vS(e.remove,t))}},ES=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=Zu({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 DS(e){return e?.rowIds?{...e,rowIds:fl(e.rowIds)}:e}function OS(e){return{...e,rowIds:fl(e.rowIds)}}function kS(e){return{...e,cells:e.cells.map(e=>({...e,rowId:X(e.rowId)}))}}function AS(e){return e?.rowIds?{...e,rowIds:fl(e.rowIds)}:e}function jS(e){return{...e,rowIds:fl(e.rowIds)}}function MS(e){return{...e,cells:e.cells.map(e=>({...e,rowId:X(e.rowId)}))}}function NS(e){return e>=1e6?2e3:e>=1e5?500:e>=1e4?200:e>=1e3?100:50}function PS(e){return{maxDomRows:80,maxSetDataMs:NS(e)}}function FS(e,t){let n=PS(t),r=e.activeDomRowCount<=n.maxDomRows,i=e.lastSetDataMs<=n.maxSetDataMs;return{domRowsPass:r,setDataPass:i,allPass:r&&i}}var IS=class{mountEl;rowModel;rowRenderer;frameService;scrollBridge;columnViewport;rootEl;rowsLayerEl;columnModel;valueCache=new am;changeDetection=new _;eventBus=new jr;rowKey;businessRowIdCtx;selectionService;indexFocusService;editorHost;editingService;rowEditingService;cellFocusService=new we;api;viewport;headerSortService;columnDragController=new sv;columnHandleMenuController;interaction;cellEditing;inlineCellEditorService;validationFeedback=new hr;invalidEditValueMode;rowValidator;asyncRowMutation;cellRenderersByColId;cellEditorsByColId;onUnmountRenderer;onUnmountEditor;summaryOptions;chromeNavigationOptions;indexColumnOptions;selectionColumnOptions;filterGridOptions;showUnsortedSortHintOnHover;columnSortOptions;resolvedSummaryRowHeight;footerRenderer=null;floatingFilterController=null;lastSetDataMs=0;columnResizeService;columnAutosizeService;columnFlexService;columnLayout;rowHeightService;rowAutoHeightService;rowDragOptions;onRowDragCommit;rowDragCommitService;cellSpanOptions;cellSpanService;rowExpansionOptions;rowExpansionService;rowGroupingOptions;rowGroupingService;treeTableOptions;treeTableService;treeLazyLoadService=null;rowSelectionOptions;userColumns;detailRowAutoHeightService;cellCommentOptions;cellCommentService;overflowTooltipOptions;tooltipService;overflowTooltipSession;emptyStateGridOptions;emptyStateOptionsRaw={};overlayService;overlayRenderer;cellSelectionGridOptions;cellSelectionOptions;cellRangeVisualGridOptions;cellRangeVisualOptions;cellClipboardGridOptions;cellRangeService;cellRangeVisualController=null;cellRangeFillWriteService=null;cellRangeDeleteWriteService=null;cellClipboardService=null;cellDisableContext=En();cellStyleContext=qn();rowHeightGridOptions;filterOps;selectionOps;rowMutation;gridFooter;resizeObserver=null;centerViewportWidth=0;autoSizeCellContentsPending=!1;destroyed=!1;suppressRowLayoutViewportSync=!1;constructor(e,t){this.mountEl=e,this.cellRenderersByColId=t.cellRenderers?.byColId??{},this.cellEditorsByColId=t.cellEditors?.byColId??{},this.onUnmountRenderer=t.onUnmountRenderer,this.onUnmountEditor=t.onUnmountEditor,this.summaryOptions=_n(t),this.chromeNavigationOptions=om(t),this.indexColumnOptions=Le(t),this.selectionColumnOptions=Ke(t),this.rowDragOptions=la(t),this.onRowDragCommit=t.onRowDragCommit,this.cellSpanOptions=Li(t),this.rowExpansionOptions=nt(t);let n=Om({tree:t.tree,rowGrouping:t.rowGrouping});this.treeTableOptions=ln(t),n.mode===`tree`&&hn(!0,this.treeTableOptions.getDataPath),this.rowGroupingOptions=Et({...t,rowGrouping:n.mode===`group`&&t.rowGrouping}),this.rowSelectionOptions=lx(t.rowSelection),this.userColumns=[...t.columns],this.userColumns,pn(this.userColumns);let r=di(t),i=pi(t),a=S_(t);this.filterGridOptions=wa(t);let o=ba(t);this.columnSortOptions=o,this.showUnsortedSortHintOnHover=o.showUnsortedSortHintOnHover,this.columnModel=new Ja(To(this.userColumns,this.indexColumnOptions,this.selectionColumnOptions,{rowExpansion:this.rowExpansionOptions,rowGrouping:n.mode===`group`?this.rowGroupingOptions:void 0,treeTable:n.mode===`tree`?this.treeTableOptions:void 0}),this.cellRenderersByColId,this.cellEditorsByColId,oi(t),r,i,o,this.filterGridOptions),this.columnViewport=new Eo(this.columnModel);let s=t.rowHeight??m;this.resolvedSummaryRowHeight=vn(this.summaryOptions.summaryRowHeight,s);let c=t.stripe??!1,{editBehavior:l,editType:u}=Pn(t);this.cellDisableContext=En({isRowDisabled:t.isRowDisabled}),this.cellStyleContext=qn({rowStyle:t.rowStyle}),this.invalidEditValueMode=t.invalidEditValueMode??`block`,this.rowValidator=t.rowValidator,this.asyncRowMutation=t.asyncRowMutation,this.editorHost=new de({onUnmountEditor:t.onUnmountEditor,byName:t.cellEditors?.byName}),this.editingService=new fe(this.editorHost),this.rowEditingService=new je(this.editorHost),this.selectionService=cx(t.rowSelection)===!1||!this.selectionColumnOptions.enabled?null:new Nr(cx(t.rowSelection)),this.indexFocusService=this.indexColumnOptions.showIndexColumn?new Lr(this.indexColumnOptions.indexColumn.focusMode):null,this.frameService=new g,this.scrollBridge=new im;let d=(e,t)=>{let n=this.columnModel.getColumnById(t);return n?U(e,n):e.data[t]};this.rowModel=new Kd({rowKey:t.rowKey,rowHeight:s,getCellValue:d,getColumnComparator:e=>this.columnModel.getColumnById(e)?.comparator,filterColumnContext:lc(e=>this.columnModel.getColumnById(e),d),quickFilterText:t.quickFilterText,getQuickFilterColIds:()=>this.columnModel.getColumns().filter(e=>e.filterable).map(e=>e.colId)}),this.rowKey=t.rowKey,this.businessRowIdCtx={rowKey:t.rowKey,getRowById:e=>this.rowModel.resolveRowById(e)},this.eventBus.setProjector(Mr(this.businessRowIdCtx)),this.cellSpanService=new ns({getEnableCellSpan:()=>this.cellSpanOptions.enableCellSpan,getColumnModel:()=>this.columnModel,getDisplayRows:()=>this.rowModel.rowsToDisplay,getRowById:e=>{let t=this.rowModel.getRowIndexById(e);return t>=0?this.rowModel.getRow(t):void 0},getRowByIndex:e=>this.rowModel.getRow(e),getRowCount:()=>this.rowModel.getRowCount()}),this.rowExpansionService=new hm({getOptions:()=>this.rowExpansionOptions,getBaseDisplayRows:()=>this.rowModel.getBaseDisplayRows(),onExpansionChanged:e=>{this.eventBus.emit(e.expanded?`rowExpanded`:`rowCollapsed`,e),this.syncRowExpansionDisplay()},onDetailDataChanged:e=>{this.refreshDetailRowContent([e])}}),this.rowModel.setRowExpansionService(this.rowExpansionService),this.rowGroupingService=new gm({getOptions:()=>this.rowGroupingOptions,getRowGroupColumnsFromDefs:()=>Rt(this.userColumns),getGroupedTreeRoots:()=>this.rowModel.getGroupedTreeRoots(),onGroupOpened:e=>{this.eventBus.emit(`rowGroupOpened`,e),this.syncRowGroupingDisplay()},onGroupChanged:e=>{this.eventBus.emit(`rowGroupChanged`,e)},onGroupingStateChanged:()=>{this.syncRowGroupingDisplay()}}),this.rowModel.setRowGroupingDeps({active:()=>this.rowGroupingService.active,getRowGroupColumns:()=>this.rowGroupingService.getRowGroupColumns(),getGroupKeyCreator:()=>this.rowGroupingOptions.groupKeyCreator,getGroupComparator:()=>this.rowGroupingOptions.groupComparator,getColumns:()=>this.columnModel.getColumns(),getColumnField:e=>this.columnModel.getColumnById(e)?.prop??e,getMapStageOptions:()=>this.rowGroupingService.getMapStageOptions(),pruneExpanded:e=>this.rowGroupingService.pruneExpanded(e),applyDefaultExpanded:e=>this.rowGroupingService.applyDefaultExpanded(e),clearExpanded:()=>this.rowGroupingService.clearExpanded()}),this.treeTableService=new Sm({getOptions:()=>this.treeTableOptions,getGroupDefaultExpanded:()=>this.rowGroupingOptions.groupDefaultExpanded,getTreeTreeRoots:()=>this.rowModel.getTreeTreeRoots(),getLazyLoadHost:()=>this.treeLazyLoadService,onNodeOpened:e=>{this.eventBus.emit(`treeNodeOpened`,e),this.syncTreeTableDisplay()},onTreeStateChanged:()=>{this.syncTreeTableDisplay()}}),this.rowModel.setTreeTableDeps({active:()=>this.treeTableService.active,getDataPath:()=>this.treeTableOptions.getDataPath,getMapStageOptions:()=>this.treeTableService.getMapStageOptions(),prepareTreeTree:e=>this.treeTableService.prepareTreeTree(e),applyDefaultExpanded:e=>this.treeTableService.applyDefaultExpandedToTree(e),clearExpanded:()=>this.treeTableService.clearExpanded()}),this.headerSortService=new ky({getSortModel:()=>this.rowModel.getSortModel(),setSortModel:e=>this.setSortModel(e),getColumnById:e=>this.columnModel.getColumnById(e)}),this.columnHandleMenuController=new Ty({mountEl:this.mountEl,columnModel:this.columnModel,getSortModel:()=>this.rowModel.getSortModel(),setSortModel:e=>this.setSortModel(e),getFilterModel:()=>this.getFilterModel(),setFilterModel:e=>this.setFilterModel(e),setColumnFixed:(e,t,n)=>this.setColumnFixed(e,t,n),setColumnsHidden:(e,t,n)=>this.columnLayout.setColumnsHidden(e,t,n),getColumnDistinctFilterValues:e=>this.getColumnDistinctFilterValues(e),filterSetValueMode:this.filterGridOptions.filterSetValueMode,filterSetDateLayoutMode:this.filterGridOptions.filterSetDateLayoutMode});let f=ya(t);f.length>0&&this.rowModel.setSortModel(f);let p=Ny(e,{showSummary:this.summaryOptions.showSummary,floatingFilter:t.floatingFilter??!1});if(this.rootEl=p.rootEl,this.rowsLayerEl=p.rowsLayerEl,p.footerViewportEl&&p.footerRowEl&&p.footerLeftLaneEl&&p.footerCenterLaneEl&&p.footerRightLaneEl&&(this.footerRenderer=new ec({footerLeftLaneEl:p.footerLeftLaneEl,footerCenterLaneEl:p.footerCenterLaneEl,footerRightLaneEl:p.footerRightLaneEl,footerRowEl:p.footerRowEl,frameService:this.frameService,onUnmountRenderer:this.onUnmountRenderer,enableCellSpan:this.cellSpanOptions.enableCellSpan})),p.floatingFilterRowEl&&p.floatingFilterLeftLaneEl&&p.floatingFilterCenterLaneEl&&p.floatingFilterRightLaneEl){let e=new $y({floatingLeftLaneEl:p.floatingFilterLeftLaneEl,floatingCenterLaneEl:p.floatingFilterCenterLaneEl,floatingRightLaneEl:p.floatingFilterRightLaneEl,floatingRowEl:p.floatingFilterRowEl});this.floatingFilterController=new rb({columnModel:this.columnModel,getFilterModel:()=>this.getFilterModel(),setFilterModel:e=>this.setFilterModel(e),renderer:e})}this.rowRenderer=new Rp(p.rowsContainerEl,{rowModel:this.rowModel,columnModel:this.columnModel,rowHeight:s,rowBuffer:t.rowBuffer??10,stripe:c,frameService:this.frameService,onUnmountRenderer:this.onUnmountRenderer,onUnmountEditor:this.onUnmountEditor,indexColumnOptions:this.indexColumnOptions.showIndexColumn?this.indexColumnOptions.indexColumn:void 0,selectionColumnOptions:this.selectionColumnOptions.enabled?this.selectionColumnOptions:void 0,isRowDragHandleEnabled:e=>this.isRowDragHandleEnabled(e),enableCellSpan:this.cellSpanOptions.enableCellSpan,cellSpanService:this.cellSpanService,spannedRowsContainerEl:p.spannedRowsContainerEl,fullWidthRowsContainerEl:p.fullWidthRowsContainerEl,masterDetail:this.rowExpansionOptions.masterDetail,embedFullWidthRows:this.rowExpansionOptions.embedFullWidthRows,getDetailCellRenderer:()=>this.rowExpansionOptions.detailCellRenderer,getMasterRowById:e=>this.rowModel.getRowById(e),rowExpansionHost:{active:()=>this.rowExpansionOptions.masterDetail,isRowMaster:e=>this.rowExpansionService.isRowMaster(e),isExpanded:e=>this.rowExpansionService.isExpanded(e)},rowGroupingHost:{active:()=>this.rowGroupingService.active,isExpanded:e=>this.rowGroupingService.isExpanded(e),getGroupFooterLabel:()=>this.rowGroupingOptions.groupFooterLabel},treeTableHost:{active:()=>this.treeTableService.active,isExpanded:e=>this.treeTableService.isExpanded(e),getTreeValue:e=>this.treeTableService.getTreeDisplayValue(e),isTreeNodeExpandable:e=>this.treeTableService.isNodeExpandable(e),isTreeNodeLoading:e=>this.treeTableService.isNodeLoading(e)},resolveBusinessRowId:e=>Cr(e,t.rowKey),getCellDisableContext:()=>this.getCellDisableContext(),getCellStyleContext:()=>this.getCellStyleContext()}),this.selectionOps=new dS({mountEl:this.mountEl,rowModel:this.rowModel,rowRenderer:this.rowRenderer,eventBus:this.eventBus,selectionService:this.selectionService,indexFocusService:this.indexFocusService,indexColumnOptions:this.indexColumnOptions,selectionColumnOptions:this.selectionColumnOptions,rowKey:t.rowKey,isTreeActive:()=>this.treeTableService.active,groupSelectsChildren:()=>this.rowSelectionOptions.groupSelectsChildren,applyCellRangeVisuals:()=>this.applyCellRangeVisuals()},Fr(t.selectable),t.reserveSelection??!1),this.rowRenderer.setIsRowNodeSelectable(e=>this.selectionOps.isRowNodeSelectable(e)),this.rowHeightGridOptions={getRowHeight:t.getRowHeight,rowHeightMin:t.rowHeightMin,rowHeightMax:t.rowHeightMax},this.rowHeightService=new $d({getDisplayRows:()=>this.rowModel.rowsToDisplay,getRowById:e=>this.rowModel.resolveRowById(e),getAutoHeightColumnIds:()=>this.columnModel.getAutoHeightColumnIds(),repositionDisplayRows:()=>{this.rowModel.repositionDisplayRows({getRowHeight:this.rowHeightService.getPositionRowHeightFn()})},emitRowHeightChanged:e=>{this.eventBus.emit(`rowHeightChanged`,e),this.syncRowLayoutAfterRowHeightChange(e.rows.map(e=>e.rowId))}},s,this.rowHeightGridOptions),this.rowModel.setPositionGetRowHeight(this.rowHeightService.getPositionRowHeightFn()),this.rowAutoHeightService=new of({rowHeightService:this.rowHeightService,getRowById:e=>this.rowModel.getRowById(e),isColumnAutoHeight:e=>this.columnModel.isColumnAutoHeight(e),getAutoHeightColumnIds:()=>this.columnModel.getAutoHeightColumnIds()}),this.rowRenderer.setRowAutoHeightService(this.rowAutoHeightService),this.detailRowAutoHeightService=this.rowExpansionOptions.detailRowAutoHeight?new pm({rowHeightService:this.rowHeightService,getRowById:e=>this.rowModel.resolveRowById(e),isEnabled:()=>this.rowExpansionOptions.detailRowAutoHeight,getMinDetailRowHeight:e=>ut(this.rowExpansionOptions.detailRowHeight,{rowId:e.id,data:e.data,masterRowId:e.masterRowId??e.id})}):null,this.rowRenderer.setDetailRowAutoHeightService(this.detailRowAutoHeightService),this.gridFooter=new ES({columnModel:this.columnModel,columnViewport:this.columnViewport,rowModel:this.rowModel,frameService:this.frameService,valueCache:this.valueCache,summaryOptions:this.summaryOptions,getFooterRenderer:()=>this.footerRenderer}),this.filterOps=new iS({rowModel:this.rowModel,columnModel:this.columnModel,columnViewport:this.columnViewport,getViewport:()=>this.viewport,rowRenderer:this.rowRenderer,valueCache:this.valueCache,eventBus:this.eventBus,getFloatingFilterController:()=>this.floatingFilterController,applySelectionVisuals:()=>this.selectionOps.applySelectionVisuals(),refreshFooter:()=>this.gridFooter.refresh(),refreshCellSpans:()=>this.refreshCellSpanCache(),clearCellSelection:()=>this.clearCellSelectionOnStructuralChange(),refreshOverlay:()=>this.syncEmptyStateOverlay()}),this.viewport=new $x({rootEl:p.rootEl,headerViewportEl:p.headerViewportEl,headerScrollEl:p.headerScrollEl,headerRowEl:p.headerRowEl,headerLeftLaneEl:p.headerLeftLaneEl,headerCenterLaneEl:p.headerCenterLaneEl,headerRightLaneEl:p.headerRightLaneEl,viewportEl:p.viewportEl,spacerEl:p.spacerEl,scrollPhantomEl:p.scrollPhantomEl,rowsLayerEl:p.rowsLayerEl,indexColumnFillHostEl:p.indexColumnFillHostEl,indexColumnFillEl:p.indexColumnFillEl,rowsContainerEl:p.rowsContainerEl,footerViewportEl:p.footerViewportEl,footerScrollEl:p.footerScrollEl,footerRowEl:p.footerRowEl,footerLeftLaneEl:p.footerLeftLaneEl,footerCenterLaneEl:p.footerCenterLaneEl,footerRightLaneEl:p.footerRightLaneEl,floatingFilterViewportEl:p.floatingFilterViewportEl,floatingFilterScrollEl:p.floatingFilterScrollEl,floatingFilterRowEl:p.floatingFilterRowEl,floatingFilterLeftLaneEl:p.floatingFilterLeftLaneEl,floatingFilterCenterLaneEl:p.floatingFilterCenterLaneEl,floatingFilterRightLaneEl:p.floatingFilterRightLaneEl,refreshFooter:()=>this.gridFooter.refresh(),refreshFloatingFilter:()=>this.filterOps.refreshFloatingFilter(),rowModel:this.rowModel,columnModel:this.columnModel,columnViewport:this.columnViewport,validationFeedback:this.validationFeedback,rowRenderer:this.rowRenderer,scrollBridge:this.scrollBridge,frameService:this.frameService,getPinnedRowIds:()=>this.getPinnedRowIds(),selectionColumnOptions:this.selectionColumnOptions,showIndexColumn:this.indexColumnOptions.showIndexColumn,showUnsortedSortHintOnHover:()=>this.showUnsortedSortHintOnHover,getDefaultRowHeight:()=>this.rowHeightService.getDefaultRowHeight(),headerHeight:t.headerHeight??h,isDestroyed:()=>this.destroyed,onBodyScroll:(e,t)=>{this.eventBus.emit(`bodyScroll`,{scrollTop:e,scrollLeft:t})},onScroll:t.onScroll,applySelectionVisuals:()=>this.selectionOps.applySelectionVisuals(),applyFocusVisuals:()=>this.applyFocusVisuals(),applyCellRangeVisuals:()=>this.applyCellRangeVisuals(),applyCellRangeScrollVisuals:()=>this.applyCellRangeScrollVisuals(),onHeaderRefresh:()=>this.columnHandleMenuController.onHeaderRefresh()}),this.cellEditing=new nv({mountEl:this.mountEl,viewportEl:p.viewportEl,rowModel:this.rowModel,columnModel:this.columnModel,editingService:this.editingService,rowEditingService:this.rowEditingService,editBehavior:l,editType:u,invalidEditValueMode:this.invalidEditValueMode,rowValidator:this.rowValidator,validationFeedback:this.validationFeedback,editorHost:this.editorHost,eventBus:this.eventBus,cellFocusService:this.cellFocusService,isDestroyed:()=>this.destroyed,getColIndex:e=>this.getColIndex(e),ensureIndexVisible:(e,t)=>this.ensureIndexVisible(e,t),ensureColumnVisible:e=>this.ensureColumnVisible(e),redrawImmediately:()=>this.viewport.redrawImmediately(),applyFocusVisuals:()=>this.applyFocusVisuals(),syncPinnedRows:()=>this.viewport.syncPinnedRows(),refreshCells:e=>this.refreshCells(e),applyTransaction:e=>this.commitTransaction(e),onTabChainEdit:e=>this.interaction.navigateTabChainEdit(e),getCellDisableContext:()=>this.getCellDisableContext()});let _=new pr({eventBus:this.eventBus,applyTransaction:e=>this.commitTransaction(e),syncPinnedRows:()=>this.viewport.syncPinnedRows(),invalidEditValueMode:this.invalidEditValueMode,onUnmountEditor:this.onUnmountEditor,byName:t.cellEditors?.byName});this.inlineCellEditorService=_,this.rowRenderer.setInlineCellEditorContext(_.getRefreshContext()),this.columnFlexService=new mo(this.columnModel),this.columnResizeService=new go(this.columnModel,()=>{this.columnLayout.syncColumnLayoutAfterResize()},this.columnFlexService,()=>this.getCenterViewportWidth()),this.columnAutosizeService=new io(this.mountEl,this.columnModel,a),this.columnLayout=new rS({mountEl:this.mountEl,rootEl:this.rootEl,columnModel:this.columnModel,columnViewport:this.columnViewport,columnResizeService:this.columnResizeService,columnAutosizeService:this.columnAutosizeService,columnFlexService:this.columnFlexService,viewport:this.viewport,rowRenderer:this.rowRenderer,footerRenderer:this.footerRenderer,eventBus:this.eventBus,isDestroyed:()=>this.destroyed,refreshColumnResizeVisualState:()=>this.interaction.refreshColumnResizeVisualState(),refreshFooter:()=>this.gridFooter.refresh(),refreshFloatingFilter:()=>this.filterOps.refreshFloatingFilter(),applyCellRangeVisuals:()=>this.applyCellRangeVisuals(),clearCellSelection:()=>this.clearCellSelectionOnStructuralChange()},r,i),this.columnLayout.syncColumnMovePresentationClasses(),this.viewport.setOnAfterRedraw(()=>{!this.destroyed&&!this.cellEditing.isEditing()&&this.cellEditing.syncValidationDom()}),this.cellCommentOptions=zl(t),this.cellCommentService=new Jh({getOptions:()=>this.cellCommentOptions,getRowKey:()=>t.rowKey,getRowNode:e=>this.rowModel.getRowById(e),getColumn:e=>this.columnModel.getColumnById(e)??void 0,getMountEl:()=>this.mountEl,onCommentChanged:e=>this.eventBus.emit(`cellCommentChanged`,e),onCommentsRefresh:e=>this.rowRenderer.syncVisibleCellCommentIndicators({rowIds:e?.rowIds?.map(e=>String(e)),colIds:e?.colIds})}),this.rowRenderer.setCellCommentHost(this.cellCommentService.createHost()),this.overflowTooltipOptions=Wa(t),this.cellSelectionGridOptions={cellSelection:t.cellSelection,enableCellCopy:t.enableCellCopy,enableCellPaste:t.enableCellPaste},this.cellSelectionOptions=Is(this.cellSelectionGridOptions),this.cellRangeVisualGridOptions={enableHeaderHighlight:t.enableHeaderHighlight,enableIndexColumnHighlight:t.enableIndexColumnHighlight},this.cellRangeVisualOptions=Fs(this.cellRangeVisualGridOptions),this.cellClipboardGridOptions={processCellForClipboard:t.processCellForClipboard,processCellFromClipboard:t.processCellFromClipboard,processDataFromClipboard:t.processDataFromClipboard},this.cellRangeService=new rg(this.cellSelectionOptions.suppressMultiRanges),this.cellRangeVisualController=this.createCellRangeVisualController(),this.tooltipService=new s_,this.overflowTooltipSession=new n_({mountEl:this.mountEl,viewportEl:p.viewportEl,headerViewportEl:p.headerViewportEl,footerViewportEl:p.footerViewportEl??null,columnModel:this.columnModel,rowModel:this.rowModel,tooltipService:this.tooltipService,validationFeedback:this.validationFeedback,cellCommentService:()=>this.cellCommentService,getOptions:()=>this.overflowTooltipOptions,getIndexColumnOptions:()=>this.indexColumnOptions,getApi:()=>this.getApi(),isEditing:()=>this.cellEditing.isEditing(),getEditingCell:()=>this.cellEditing.getEditingCell()}),this.emptyStateOptionsRaw={loading:t.loading,suppressOverlays:t.suppressOverlays,suppressLoadingOverlay:t.suppressLoadingOverlay,suppressNoRowsOverlay:t.suppressNoRowsOverlay,suppressNoMatchingRowsOverlay:t.suppressNoMatchingRowsOverlay,overlayLoadingTemplate:t.overlayLoadingTemplate,overlayNoRowsTemplate:t.overlayNoRowsTemplate,overlayNoMatchingRowsTemplate:t.overlayNoMatchingRowsTemplate,loadingOverlayComponent:t.loadingOverlayComponent,loadingOverlayComponentParams:t.loadingOverlayComponentParams,noRowsOverlayComponent:t.noRowsOverlayComponent,noRowsOverlayComponentParams:t.noRowsOverlayComponentParams,noMatchingRowsOverlayComponent:t.noMatchingRowsOverlayComponent,noMatchingRowsOverlayComponentParams:t.noMatchingRowsOverlayComponentParams,overlayComponent:t.overlayComponent,overlayComponentParams:t.overlayComponentParams,overlayInteraction:t.overlayInteraction},this.emptyStateGridOptions=Nu(this.emptyStateOptionsRaw),this.overlayService=new x_({getResolvedOptions:()=>this.emptyStateGridOptions,getSourceRowCount:()=>this.rowModel.getSourceRows().length,getDisplayRows:()=>this.rowModel.rowsToDisplay,isAnyFilterActive:()=>this.filterOps.isAnyFilterActive(),onOverlayChanged:(e,t)=>this.handleOverlayChanged(e,t),warn:e=>console.warn(e)}),this.overlayRenderer=new g_({overlayEl:p.overlayEl,wrapperEl:p.overlayWrapperEl,contentEl:p.overlayContentEl,getApi:()=>this.getApi(),getOverlayInteraction:()=>this.emptyStateGridOptions.overlayInteraction}),this.interaction=new sx({mountEl:this.mountEl,viewportEl:p.viewportEl,headerViewportEl:p.headerViewportEl,headerLeftLaneEl:p.headerLeftLaneEl,headerCenterLaneEl:p.headerCenterLaneEl,headerRightLaneEl:p.headerRightLaneEl,rowModel:this.rowModel,columnModel:this.columnModel,rowRenderer:this.rowRenderer,eventBus:this.eventBus,cellFocusService:this.cellFocusService,selectionService:this.selectionService,indexFocusService:this.indexFocusService,indexColumnOptions:this.indexColumnOptions,columnDragController:this.columnDragController,columnHandleMenuController:this.columnHandleMenuController,editBehavior:l,editType:u,isEditing:()=>this.cellEditing.isEditing(),getEditingCell:()=>this.cellEditing.getEditingCell(),getEditingRowId:()=>this.cellEditing.getEditingRowId(),focusRowEditingColumn:e=>this.cellEditing.focusRowEditingColumn(e),isCommitting:()=>this.isCommitting(),awaitCommitIdle:()=>this.awaitCommitIdle(),commitEditing:()=>this.cellEditing.stopEditing(!1),cancelCommit:()=>this.cancelCommit(),ensureIndexVisible:(e,t)=>this.ensureIndexVisible(e,t),ensureColumnVisible:e=>this.ensureColumnVisible(e),getLogicalScrollTop:()=>this.viewport.getLogicalScrollTop(),scrollByDelta:e=>this.viewport.scrollByDelta(e),scrollByHorizontalDelta:e=>this.viewport.scrollByHorizontalDelta(e),getRowHeight:()=>this.rowHeightService.getDefaultRowHeight(),redrawImmediately:()=>this.viewport.redrawImmediately(),tryStartCellEditing:e=>this.cellEditing.tryStartCellEditing(e),tryStartRowEditing:e=>this.cellEditing.tryStartRowEditing(e),applyIndexFocusVisuals:e=>this.selectionOps.applyIndexFocusVisuals(e),applySelectionVisuals:()=>this.selectionOps.applySelectionVisuals(),handleInteractiveRowSelection:(e,t)=>this.selectionOps.handleInteractiveRowSelection(e,t),isRowNodeSelectable:e=>this.selectionOps.isRowNodeSelectable(e),getSelectableRowIdAt:e=>this.selectionOps.getSelectableRowIdAt(e),showSummary:()=>this.summaryOptions.showSummary,navigateHeader:()=>this.chromeNavigationOptions.navigateHeader,navigateFooter:()=>this.chromeNavigationOptions.navigateFooter,toggleHeaderSort:e=>this.headerSortService.toggleSort(e),moveColumn:(e,t,n,r)=>this.moveColumn(e,t,n,r),finishColumnMove:e=>this.finishColumnMove(e),suppressMoveWhenColumnDragging:()=>this.columnLayout.columnMoveOptions.suppressMoveWhenColumnDragging,setColumnMoveLiveDragging:e=>this.setColumnMoveLiveDragging(e),allowCrossLaneColumnMove:()=>this.columnLayout.columnMoveOptions.allowCrossLaneColumnMove,setColumnWidths:(e,t,n)=>this.columnLayout.applyColumnWidths(e,t,n,`uiColumnResized`),autoSizeColumn:(e,t)=>this.columnLayout.autoSizeColumn(e,void 0,t??`uiColumnResized`),resizeHeaderColumn:(e,t,n)=>this.columnLayout.resizeHeaderColumn(e,t,n),setRowHeights:(e,t)=>this.rowHeightService.setRowHeights(e,{finished:t,source:`uiRowResized`}),rowDragManaged:this.rowDragOptions.rowDragManaged,rowDragCommitMode:this.rowDragOptions.rowDragCommitMode,cellSpanService:this.cellSpanService,hasSortModel:()=>this.rowModel.getSortModel().length>0,isRowDragHandleEnabled:e=>this.isRowDragHandleEnabled(e),moveRow:(e,t)=>this.rowMutation.moveRow(e,t),moveRows:(e,t)=>this.rowMutation.moveRows(e,t),finishRowMove:e=>this.rowMutation.finishRowMove(e),finishRowMoves:(e,t,n,r)=>this.rowMutation.finishRowMoves(e,`uiRowDrag`,{startSourceIndices:t,startTreePositions:r,displayIndex:n,resolveTreeDrop:this.treeTableService.active?e=>Im(this.rowModel.getSourceRows(),e)??void 0:void 0}),isIndexFocusMultiple:()=>this.indexFocusService?.isMultiple()??!1,getIndexFocusedRowIds:()=>this.indexFocusService?.getFocusedRowIds()??[],setRowMoveLiveDragging:e=>this.setRowMoveLiveDragging(e),emitRowDragEnd:e=>{this.eventBus.emit(`rowDragEnd`,e)},isRowDragCommitting:()=>this.rowDragCommitService?.isCommitting()??!1,buildPlanRowDragMoveOptions:e=>this.buildPlanRowDragMoveOptions(e),planRowDragMove:e=>Mh(e),commitDeferredRowDrag:e=>this.rowDragCommitService.commit(e),rowExpansionService:this.rowExpansionOptions.masterDetail?this.rowExpansionService:null,rowGroupingService:this.rowGroupingOptions.rowGrouping?this.rowGroupingService:null,treeTableService:this.treeTableService.active?this.treeTableService:null,requestTreeNodeToggle:(e,t)=>this.treeTableService.requestToggleNode(e,t),isTreeNodeExpandable:e=>this.treeTableService.isNodeExpandable(e),isRowGroupingActive:()=>this.rowGroupingService.active,isTreeActive:()=>this.treeTableService.active,getTreeDragScope:()=>this.treeTableOptions.treeDragScope,validateGroupedDisplayDrop:(e,t)=>{if(!this.rowGroupingService.active)return!0;let n=ch(this.rowModel.getSourceRows(),e);return n===`mixed`||n===`missing`?!1:n===null||mh(this.rowModel.rowsToDisplay,e=>this.rowModel.getRowById(e),e,t,n)},validateTreeDisplayDrop:(e,t,n)=>{if(!this.treeTableService.active)return!0;let r=this.rowModel.getSourceRows(),i=e=>this.rowModel.getRowById(e);if(this.treeTableOptions.treeDragScope===`hierarchy`){let a=this.treeTableOptions.getDataPath;return a?th(r,this.rowModel.rowsToDisplay,i,e,t,a,{nestUnderRowId:n?.nestUnderRowId}):!1}let a=Pm(r,e);return a===`mixed`||a===`missing`?!1:Bm(this.rowModel.rowsToDisplay,i,e,t,a)},resolveTreeRowDragEndContext:(e,t,n,r)=>{if(!this.treeTableService.active||!r||t<0)return;if(this.rowDragOptions.rowDragManaged)return Im(this.rowModel.getSourceRows(),e)??void 0;let i=this.treeTableOptions.getDataPath;if(i)return nh({sourceRows:this.rowModel.getSourceRows(),displayRows:this.rowModel.rowsToDisplay,rowIds:[e],insertIndex:t,nestUnderRowId:n,treeDragScope:this.treeTableOptions.treeDragScope,getDataPath:i})??void 0},cellCommentService:()=>this.cellCommentService,getCellCommentOptions:()=>this.cellCommentOptions,overflowTooltipSession:this.overflowTooltipSession,getCellDisableContext:()=>this.getCellDisableContext(),getCellRangeService:()=>this.cellRangeService,isCellSelectionEnabled:()=>this.cellSelectionOptions.enabled,getCellSelectionOptions:()=>this.cellSelectionOptions,getFillWriteService:()=>this.cellRangeFillWriteService,getCellRangeOperationContext:()=>this.getCellRangeOperationContext(),applyCellRangeVisuals:()=>this.applyCellRangeVisuals(),emitCellSelectionChanged:e=>this.emitCellSelectionChanged(e),handleCellSelectionDeleteKey:()=>void this.handleCellSelectionDeleteKey(),copyCellSelectionToClipboard:()=>this.cellClipboardService?.copySelectedRanges()??!1,pasteCellSelectionFromClipboard:()=>this.pasteFromClipboard(),isPointerOverCellCommentIndicator:(e,t,n)=>Lh(e,t,n)}),this.rowMutation=new TS({rowKey:t.rowKey,asyncRowMutation:this.asyncRowMutation,rowModel:this.rowModel,rowRenderer:this.rowRenderer,viewport:this.viewport,valueCache:this.valueCache,frameService:this.frameService,changeDetection:this.changeDetection,eventBus:this.eventBus,cellFocusService:this.cellFocusService,validationFeedback:this.validationFeedback,mountEl:this.mountEl,cellEditing:this.cellEditing,filterOps:this.filterOps,selectionOps:this.selectionOps,ensureIndexVisible:(e,t)=>this.ensureIndexVisible(e,t),applyFocusVisuals:()=>this.applyFocusVisuals(),refreshFooter:()=>this.gridFooter.refresh(),refreshCellSpans:()=>this.refreshCellSpanCache(),refreshOverlay:()=>this.syncEmptyStateOverlay(),isCellSpanActive:()=>this.cellSpanService.active,isEditingTargetRow:e=>this.isEditingTargetRow(e),isRowGroupingActive:()=>this.rowGroupingService.active,isTreeActive:()=>this.treeTableService.active,getTreeDragScope:()=>this.treeTableOptions.treeDragScope,getDataPath:()=>this.treeTableOptions.getDataPath,setDataPath:()=>this.treeTableOptions.setDataPath}),this.cellRangeFillWriteService=new Ig({rowModel:this.rowModel,columnModel:this.columnModel,eventBus:this.eventBus,getCellDisableContext:()=>this.getCellDisableContext(),getApi:()=>this.getApi(),applyTransaction:e=>this.commitTransaction(e),refreshCells:e=>this.refreshCells(e)}),this.cellRangeDeleteWriteService=new Lg({rowModel:this.rowModel,columnModel:this.columnModel,eventBus:this.eventBus,getCellDisableContext:()=>this.getCellDisableContext(),getApi:()=>this.getApi(),applyTransaction:e=>this.commitTransaction(e),refreshCells:e=>this.refreshCells(e)}),this.cellClipboardService=new xg({rowModel:this.rowModel,columnModel:this.columnModel,eventBus:this.eventBus,cellFocusService:this.cellFocusService,getCellRangeService:()=>this.cellRangeService,getCellRangeOperationContext:()=>this.getCellRangeOperationContext(),getCellSelectionOptions:()=>this.cellSelectionOptions,getIndexColumnOptions:()=>this.indexColumnOptions,getCellDisableContext:()=>this.getCellDisableContext(),getApi:()=>this.getApi(),applyTransaction:e=>this.commitTransaction(e),refreshCells:e=>this.refreshCells(e),isEditing:()=>this.cellEditing.isEditing(),stopEditing:e=>this.cellEditing.stopEditing(e),onCopyVisualFeedback:()=>this.playCellRangeCopyFlash(),onPasteVisualFeedback:e=>this.playCellRangePasteFlash(e),getCellClipboardOptions:()=>this.cellClipboardGridOptions,getCellSpanService:()=>this.cellSpanService,getCellClipboardDisplayContext:()=>({getRowGroupingHost:()=>({active:()=>this.rowGroupingService.active,isExpanded:e=>this.rowGroupingService.isExpanded(e),getGroupFooterLabel:()=>this.rowGroupingOptions.groupFooterLabel}),getTreeTableHost:()=>({active:()=>this.treeTableService.active,isExpanded:e=>this.treeTableService.isExpanded(e),getTreeValue:e=>this.treeTableService.getTreeDisplayValue(e),isTreeNodeExpandable:e=>this.treeTableService.isNodeExpandable(e),isTreeNodeLoading:e=>this.treeTableService.isNodeLoading(e)})})}),this.treeTableOptions.treeLazyLoad&&typeof this.treeTableOptions.loadTreeChildren==`function`&&(this.treeLazyLoadService=new Cm({getOptions:()=>this.treeTableOptions,rowKey:t.rowKey,getDataPath:()=>this.treeTableOptions.getDataPath,getNodeById:e=>this.rowModel.getRowById(e),getExistingRowKeys:()=>{let e=new Set;for(let n of this.rowModel.getSourceRows()){e.add(n.id);let r=n.data[t.rowKey];r!=null&&r!==``&&e.add(String(r))}return e},applyTransaction:e=>{this.commitTransaction(e)},onLoading:e=>{this.eventBus.emit(`treeChildrenLoading`,e),this.refreshTreeLoadingVisuals(String(e.parentRowId))},onLoaded:e=>{this.eventBus.emit(`treeChildrenLoaded`,e),this.refreshTreeLoadingVisuals(String(e.parentRowId))},onLoadFailed:e=>{this.eventBus.emit(`treeChildrenLoadFailed`,e),this.refreshTreeLoadingVisuals(String(e.parentRowId))},onStateChanged:()=>{this.refreshTreeLoadingVisuals()}})),this.rowDragCommitService=new Ph({getOnRowDragCommit:()=>this.onRowDragCommit,applyPlan:e=>this.rowMutation.applyRowDragPlan(e),emitStarted:e=>{this.eventBus.emit(`rowDragCommitStarted`,e)},emitFinished:e=>{this.eventBus.emit(`rowDragCommitFinished`,e)},emitRowDragEnd:e=>{this.eventBus.emit(`rowDragEnd`,e)},setCommittingVisual:e=>this.setRowDragCommittingVisual(e)}),this.viewport.syncHorizontalLayout(),this.refreshFlexedColumnsOnViewportChange(!1),this.scheduleAutoSizeStrategy(),this.frameService.setScrollGridIfNeeded(()=>this.viewport.scrollGridIfNeeded()),this.refreshCellSpanCache(),this.rowRenderer.setValueCacheVersion(this.valueCache.getVersion()),this.viewport.redrawImmediately(),this.floatingFilterController&&this.filterOps.refreshFloatingFilter(),this.api=v(this),this.cellCommentService.init(this.api),this.viewport.bindScrollListener(),this.interaction.bindListeners(),this.resizeObserver=new ResizeObserver(()=>{this.viewport.syncViewportHeight(),this.refreshFlexedColumnsOnViewportChange(!0),this.viewport.redrawImmediately(),this.syncEmptyStateOverlay()}),this.resizeObserver.observe(p.viewportEl),this.syncEmptyStateOverlay()}getApi(){return this.api}setSelectable(e){this.selectionOps.setSelectable(e)}getCellDisableContext(){return this.cellDisableContext}getCellStyleContext(){return this.cellStyleContext}setIsRowDisabled(e){this.cellDisableContext=On(this.cellDisableContext,e),this.rowRenderer.setGetCellDisableContext(()=>this.getCellDisableContext()),this.refreshDisabledState()}setRowStyle(e){this.cellStyleContext=tr(this.cellStyleContext,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})}setReserveSelection(e){this.selectionOps.setReserveSelection(e)}setColumnMoveOptions(e){this.columnLayout.setColumnMoveOptions(e)}setColumnResizeOptions(e){this.columnLayout.setColumnResizeOptions(e)}setColumnSortOptions(e){if(e.sortable===void 0)return;let t=this.columnSortOptions.sortable;this.columnSortOptions=ba({...this.columnSortOptions,sortable:e.sortable}),e.sortable!==t&&(this.columnModel.setColumnSortGridOptions(this.columnSortOptions),this.viewport.refreshHeader())}setColumnFilterOptions(e){if(e.filterable===void 0)return;let t=this.filterGridOptions.filterable;this.filterGridOptions=wa({...this.filterGridOptions,filterable:e.filterable}),e.filterable!==t&&(this.columnModel.setColumnFilterGridOptions(this.filterGridOptions),this.viewport.refreshHeader(),this.filterOps.refreshFloatingFilter())}setColumnAutosizeOptions(e){let t=S_(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){this.selectionOps.setIndexFocus(e),this.cellSelectionOptions.enabled&&this.indexColumnOptions.showIndexColumn&&this.interaction.syncCellRangeFromIndexFocus()}toggleAllSelection(e){this.selectionOps.toggleAllSelection(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)}getRowNode(e){return this.rowModel.getRowById(X(e))}ensureIndexVisible(e,t=`middle`){this.viewport.ensureIndexVisible(e,t)}ensureColumnVisible(e){this.viewport.ensureColumnVisible(e)}setData(e){let t=performance.now(),n=this.selectionOps.reserveSelection&&this.selectionService?this.selectionService.getSelectedRowIds():null,r=(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.rowModel.setData(e);let i=this.selectionOps.reconcileSelectionAfterSetData(n,r);this.viewport.syncViewportHeight(),this.viewport.resetScrollOnSetData(),this.valueCache.bump(),this.refreshCellSpanCache(),this.rowRenderer.invalidate(),this.viewport.redrawImmediately(),this.selectionOps.applySelectionVisuals(),this.selectionOps.applyIndexFocusVisuals({syncToSelectionColumn:!1}),this.applyFocusVisuals(),this.lastSetDataMs=performance.now()-t,this.viewport.scheduleCompressedSetDataRedraw(()=>{this.viewport.syncViewportHeight(),this.viewport.redrawImmediately()}),this.gridFooter.refresh(),this.maybeApplyFitCellContentsStrategy(e.length),i&&this.selectionService&&this.eventBus.emit(`selectionChanged`,{selectedRowIds:this.selectionService.getSelectedRowIds()}),this.overlayService.markRowDataReady(),this.syncEmptyStateOverlay()}setColumns(e){this.userColumns=[...e],this.userColumns,pn(this.userColumns),this.rowGroupingService.syncRowGroupColumnsFromDefs(),this.columnModel.setColumns(To(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.columnViewport.invalidate(),this.overflowTooltipSession.close(),this.viewport.syncHorizontalLayout(),this.refreshFlexedColumnsOnViewportChange(!1),this.refreshCellSpanCache(),this.viewport.redrawImmediately(),this.gridFooter.refresh(),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){this.rowModel.setSortModel(va(e)),this.viewport.syncViewportHeight(),this.valueCache.bump(),this.refreshCellSpanCache(),this.rowRenderer.invalidate(),this.viewport.redrawImmediately(),this.viewport.refreshHeader(),this.eventBus.emit(`sortChanged`,{sortModel:this.rowModel.getSortModel()}),this.clearCellSelectionOnStructuralChange(),this.gridFooter.refresh()}getSortModel(){return this.rowModel.getSortModel()}setFilterModel(e){this.filterOps.setFilterModel(e)}getFilterModel(){return this.filterOps.getFilterModel()}getColumnFilter(e){return this.filterOps.getColumnFilter(e)}getColumnDistinctFilterValues(e){return this.filterOps.getColumnDistinctFilterValues(e)}isColumnFilterActive(e){return this.filterOps.isColumnFilterActive(e)}isAnyFilterActive(){return this.filterOps.isAnyFilterActive()}getQuickFilterText(){return this.filterOps.getQuickFilterText()}setQuickFilterText(e){this.filterOps.setQuickFilterText(e)}clearAllFilters(){this.filterOps.clearAllFilters()}setColumnFilter(e,t){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:e.treeNestUnderRowId}}setRowDragCommittingVisual(e){this.rootEl.classList.toggle(ca,e!=null),this.rowRenderer.setRowDragCommittingRows(e?.rowIds??null)}finishRowMove(e){this.rowMutation.finishRowMove(X(e))}applyTransaction(e){return this.rowMutation.applyTransaction(e)}commitTransaction(e){return this.rowMutation.commitTransaction(e)}addRows(e){return this.rowMutation.addRows(e)}removeRows(e){return this.rowMutation.removeRows(e)}moveRow(e,t,n=`source`){return this.rowMutation.moveRow({rowId:X(e),toIndex:t,indexMode:n})}setRowHeight(e,t,n=!0){this.rowHeightService.setRowHeight(X(e),t,n,`api`)}setRowHeights(e,t=!0){this.rowHeightService.setRowHeights(e.map(e=>({rowId:X(e.rowId),height:e.height})),{finished:t,source:`api`})}getRowHeight(e){return this.rowHeightService.getRowHeight(X(e))}resetRowHeights(e){this.rowHeightService.resetRowHeights(e?.map(e=>X(e)))}expandRow(e){return this.rowExpansionOptions.masterDetail?this.rowExpansionService.expandRow(X(e),`api`):!1}collapseRow(e){return this.rowExpansionOptions.masterDetail?this.rowExpansionService.collapseRow(X(e),`api`):!1}isRowExpanded(e){return this.rowExpansionOptions.masterDetail?this.rowExpansionService.isExpanded(X(e)):!1}expandAll(){this.treeTableService.active?this.treeTableService.expandAll(`api`):this.rowGroupingService.active&&this.rowGroupingService.expandAll(`api`),this.rowExpansionOptions.masterDetail&&this.rowExpansionService.expandAll(`api`)}collapseAll(){this.treeTableService.active?this.treeTableService.collapseAll():this.rowGroupingService.active&&this.rowGroupingService.collapseAll(`api`),this.rowExpansionOptions.masterDetail&&this.rowExpansionService.collapseAll(`api`)}setRowGroupColumns(e){this.rowGroupingOptions.rowGrouping&&(this.rowGroupingService.setRowGroupColumns(e,`api`),this.rowModel.refreshModel({applyDefaultExpanded:!0}))}getRowGroupColumns(){return this.rowGroupingService.getRowGroupColumns()}expandGroup(e){return this.rowGroupingService.active?this.rowGroupingService.isExpanded(e)?!0:(this.rowGroupingService.expandGroup(e,`api`),this.rowGroupingService.isExpanded(e)):!1}collapseGroup(e){return this.rowGroupingService.active?!this.rowGroupingService.isExpanded(e)||(this.rowGroupingService.collapseGroup(e,`api`),!this.rowGroupingService.isExpanded(e)):!1}isGroupExpanded(e){return this.rowGroupingService.active?this.rowGroupingService.isExpanded(e):!1}expandNode(e){if(!this.treeTableService.active)return!1;let t=X(e);return this.treeTableService.isExpanded(t)?!0:(this.treeTableService.requestToggleNode(t,`api`),this.treeTableService.isExpanded(t))}collapseNode(e){if(!this.treeTableService.active)return!1;let t=X(e);return!this.treeTableService.isExpanded(t)||(this.treeTableService.collapseNode(t,`api`),!this.treeTableService.isExpanded(t))}isNodeExpanded(e){return this.treeTableService.active?this.treeTableService.isExpanded(X(e)):!1}getDataPath(e){if(this.treeTableService.active)return this.treeTableService.getDataPathForRow(X(e))}getCellComment(e,t){return this.cellCommentService.getComment(X(e),t)}async setCellComment(e,t,n){await this.cellCommentService.setComment(X(e),t,n??null,`api`)}refreshCellComments(e){this.cellCommentService.requestRefresh(e),this.closeCellCommentPopupIfAnchorNotVisible()}clearCellSelectionOnStructuralChange(){this.cellRangeService?.hasRanges()&&this.clearCellSelection()}getCellRanges(){return this.cellRangeService?[...this.cellRangeService.getRanges()]:[]}getCellSelectionAggregation(){if(!this.cellSelectionOptions.enabled||!this.cellRangeService?.hasRanges())return null;let e=this.getCellRangeOperationContext(),t=oc({ranges:this.cellRangeService.getRanges(),displayedColIds:e.displayedColIds,rowKindAt:e.rowKindAt??(()=>void 0),getCellValue:(e,t)=>{let n=this.rowModel.getRow(e),r=this.columnModel.getColumnById(t);if(!(!n||!r))return U(n,r)},normalizePosition:(e,t)=>{let n=this.rowModel.getRow(e);if(!n)return{rowIndex:e,colId:t};let r=Rg(this.rowModel,this.columnModel,this.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.cellRangeService)return;if(!this.cellSelectionOptions.enabled){qs(e,`cellSelection is disabled`);return}let t=this.getCellRangeOperationContext(),n=t.rowKindAt??(()=>void 0);if(!Y(e,t.displayedColIds)){qs(e,`column ids not in displayed columns`);return}if(!Vs(e,n)){qs(e,`range includes ineligible cells`);return}this.cellRangeService.addRange(e,t)&&(this.applyCellRangeVisuals(),this.emitCellSelectionChanged(`api`))}copySelectedRangeToClipboard(){this.cellClipboardService?.copySelectedRanges()}playCellRangeCopyFlash(){this.cellRangeVisualController?.playCopyFlash()}playCellRangePasteFlash(e){requestAnimationFrame(()=>{this.cellRangeVisualController?.playPasteFlash(e)})}async pasteFromClipboard(){await this.cellClipboardService?.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=Nu(this.emptyStateOptionsRaw),this.syncEmptyStateOverlay(),this.refreshOverlayPresentation()}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||(this.overlayRenderer.syncLayout(),this.overlayService.updateOverlay())}updateCellRangeVisualOptions(e){this.cellRangeVisualGridOptions={...this.cellRangeVisualGridOptions,...e},this.cellRangeVisualOptions=Fs(this.cellRangeVisualGridOptions),this.applyCellRangeVisuals()}updateCellSelectionOptions(e){let t=this.cellSelectionOptions.enabled,n=t?[...this.getCellRanges()]:[];this.cellSelectionGridOptions={...this.cellSelectionGridOptions,...e},this.cellSelectionOptions=Is(this.cellSelectionGridOptions),this.syncCellRangeSelectionRuntime(t),t&&!this.cellSelectionOptions.enabled&&n.length>0&&this.eventBus.emit(`cellSelectionChanged`,{ranges:[],source:`api`})}updateCellClipboardOptions(e){this.cellClipboardGridOptions={...this.cellClipboardGridOptions,...e}}createCellRangeVisualController(){return new nm({mountEl:this.mountEl,rowsLayerEl:this.rowsLayerEl,rowModel:this.rowModel,columnModel:this.columnModel,rowRenderer:this.rowRenderer,getScrollTop:()=>this.viewport.getLogicalScrollTop(),getScrollLeft:()=>this.viewport.viewportEl.scrollLeft,getViewportWidth:()=>this.viewport.viewportEl.clientWidth,isCompressedScroll:()=>this.rowsLayerEl.classList.contains(`mg-rows-layer--compressed`),getViewportHeight:()=>this.viewport.getRenderViewportHeight(),isHeaderHighlightEnabled:()=>this.cellRangeVisualOptions.enableHeaderHighlight,isIndexColumnHighlightEnabled:()=>this.cellRangeVisualOptions.enableIndexColumnHighlight&&this.indexColumnOptions.showIndexColumn,getIndexFocusedRowIds:()=>this.indexFocusService?.getFocusedRowIds()??[],getSelectedRowIds:()=>this.selectionService?.getSelectedRowIds()??[],isSyncToSelectionColumnEnabled:()=>this.indexColumnOptions.indexColumn.syncToSelectionColumn?Rr(this.indexColumnOptions.indexColumn.focusMode,this.selectionColumnOptions.mode):!1,isCellSelectionVisualEnabled:()=>this.cellSelectionOptions.enabled,getCellSelectionOptions:()=>this.cellSelectionOptions,getCellSpanService:()=>this.cellSpanService})}syncCellRangeSelectionRuntime(e){if(e&&!this.cellSelectionOptions.enabled){this.cellRangeService?.clear(),this.applyCellRangeVisuals();return}this.cellRangeService?.setSuppressMultiRanges(this.cellSelectionOptions.suppressMultiRanges),this.applyCellRangeVisuals()}getCellRangeOperationContext(){let e=this.columnModel.getDisplayedColumnIds();return{displayedColIds:e,rowKindAt:e=>this.rowModel.getRow(e)?.rowKind,expandRangeForCellSpans:t=>Qs(t,{rowModel:this.rowModel,columnModel:this.columnModel,cellSpanService:this.cellSpanService,displayedColIds:e})}}applyCellRangeVisuals(){if(!this.cellRangeVisualController||!this.cellRangeService)return;let e=this.columnModel.getDisplayedColumnIds(),t=this.cellRangeService.getRanges(),n=Ls({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})}applyFocusVisuals(){this.interaction.applyFocusVisuals()}resolveRowEditingHighlightRanges(){if(!this.cellEditing.isEditing())return[];let e=this.cellEditing.getEditingCells();if(e.length<=1)return[];let t=e[0].rowIndex,n=this.rowModel.getRow(t)?.rowKind,r=this.columnModel.getDisplayedColumnIds(),i=e.map(e=>e.colId).filter(e=>q(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[J({rowIndex:t,colId:a},{rowIndex:t,colId:o})]}resolveHighlightProjectionCell(){if(this.cellEditing.isEditing()){let e=this.cellEditing.getEditingCell();if(e){let t=this.rowModel.getRowIndexById(String(e.rowId));if(t>=0)return{rowIndex:t,colId:e.colId}}}let e=this.cellFocusService.getFocusedCell();return!e||F(e)?null:{rowIndex:e.rowIndex,colId:e.colId}}isHighlightProjectionCellEligible(){let e=this.resolveHighlightProjectionCell();if(!e)return!1;let t=this.rowModel.getRow(e.rowIndex)?.rowKind;return q(e.colId,t)}applyCellRangeScrollVisuals(){!this.cellRangeVisualController||!this.cellRangeService?.hasRanges()||this.cellRangeVisualController.syncOverlayPosition()}emitCellSelectionChanged(e){this.cellRangeService&&this.eventBus.emit(`cellSelectionChanged`,{ranges:[...this.cellRangeService.getRanges()],source:e})}async handleCellSelectionDeleteKey(){if(!this.cellSelectionOptions.enabled||!this.cellRangeService?.hasRanges())return;this.cellEditing.isEditing()&&await this.cellEditing.stopEditing(!0);let e=[...this.cellRangeService.getRanges()];this.eventBus.emit(`cellSelectionDeleteStart`,{ranges:e});let t=this.cellRangeDeleteWriteService?.clearRanges(e,this.getCellRangeOperationContext())??0;this.eventBus.emit(`cellSelectionDeleteEnd`,{ranges:e,changedCellCount:t})}updateCellCommentOptions(e){let t=this.cellCommentOptions.cellCommentsDataSource;this.cellCommentOptions=zl({...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=Wa({...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 t=this.rowModel.getSortModel().length>0,{rowDragManaged:n}=this.rowDragOptions,r=this.rowGroupingService.active,i=this.treeTableService.active,a=r||i;return I(e)?pa(this.indexColumnOptions.indexColumn.showRowDragHandle,t,n,a):this.columnModel.getColumnById(e)?.rowDrag?pa(!0,t,n,a):!1}getData(e){return this.rowMutation.getData(e)}promoteRowId(e){return this.rowMutation.promoteRowId(e)}beginUpdate(){this.rowMutation.beginUpdate()}endUpdate(){this.rowMutation.endUpdate()}refreshCells(e){return this.rowRenderer.setValueCacheVersion(this.valueCache.getVersion()),this.frameService.flushAllFrames(),this.rowRenderer.refreshRows(e??{})}refreshCellSpans(){this.refreshCellSpanCache(),this.valueCache.bump(),this.rowRenderer.setValueCacheVersion(this.valueCache.getVersion()),this.rowRenderer.invalidate(),this.viewport.redrawImmediately(),this.gridFooter.refresh()}getCellSpan(e,t){return this.cellSpanService.getCellSpan(X(e),t)}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}}syncRowExpansionDisplay(){this.rowExpansionOptions.masterDetail&&(this.rowModel.rebuildDisplayProjection(),this.viewport.syncViewportHeight(),this.rowRenderer.invalidate(),this.viewport.redrawImmediately())}syncRowGroupingDisplay(){this.rowGroupingService.active&&(this.rowModel.rebuildGroupedMapProjection(),this.viewport.syncViewportHeight(),this.rowRenderer.invalidate(),this.viewport.redrawImmediately(),this.refreshCellSpanCache())}syncTreeTableDisplay(){this.treeTableService.active&&(this.rowModel.rebuildTreeMapProjection(),this.viewport.syncViewportHeight(),this.rowRenderer.invalidate(),this.viewport.redrawImmediately(),this.refreshCellSpanCache(),this.selectionOps.refreshSelectionAfterDataChange())}refreshTreeLoadingVisuals(e){if(!this.treeTableService.active)return;let t={force:!0,colIds:[tn]};e&&(t.rowIds=[e]),this.rowRenderer.refreshRows(t)}refreshDetailRowContent(e){!this.rowExpansionOptions.masterDetail||e.length===0||this.rowRenderer.refreshDetailRows(e)}refreshCellSpanCache(){this.cellSpanService.refresh()}syncRowLayoutAfterRowHeightChange(e){if(this.suppressRowLayoutViewportSync){this.rowRenderer.syncVisibleRowLayouts(e);return}this.viewport.syncViewportHeight(),this.rowRenderer.syncVisibleRowLayouts(),this.viewport.syncBorderClosureState()}scrollTo(e,t){this.viewport.scrollTo(e,t)}flushFrames(){this.frameService.flushAllFrames()}startEditingCell(e){this.cellEditing.startEditingCell(e)}stopEditing(e=!1){return this.cellEditing.stopEditing(e)}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:Tr(e.rowId,this.businessRowIdCtx)}:null}getEditingCells(){return this.cellEditing.getEditingCells().map(e=>({...e,rowId:Tr(e.rowId,this.businessRowIdCtx)}))}validate(e){return this.cellEditing.validate(DS(e)).then(e=>Or(e,this.businessRowIdCtx))}validateRows(e){return this.cellEditing.validateRows(OS(e)).then(e=>Or(e,this.businessRowIdCtx))}validateCells(e){return this.cellEditing.validateCells(kS(e)).then(e=>Or(e,this.businessRowIdCtx))}clearValidation(e){this.cellEditing.clearValidation(AS(e))}clearRowValidation(e){this.cellEditing.clearRowValidation(jS(e))}clearCellValidation(e){this.cellEditing.clearCellValidation(MS(e))}registerCellEditor(e,t){this.cellEditing.registerCellEditor(e,t)}unregisterCellEditor(e){return this.cellEditing.unregisterCellEditor(e)}destroy(){this.destroyed||(this.destroyed=!0,this.rowDragCommitService?.destroy(),this.cellCommentService.destroy(),this.cellRangeService?.clear(),this.cellRangeVisualController?.destroy(),this.cellRangeVisualController=null,this.overflowTooltipSession.destroy(),this.overlayRenderer?.destroy(),this.overlayService?.destroy(),this.rowRenderer.setCellCommentHost(void 0),this.cellEditing.cancelEditingOnDestroy(),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.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)}},LS={"--mg-color-bg":`#141414`,"--mg-color-text-primary":`#e8e8e8`,"--mg-color-text-regular":`#e0e0e0`,"--mg-color-text-secondary":`#9aa0a6`,"--mg-color-border":`#3a3f47`,"--mg-color-border-light":`#32363d`,"--mg-color-bg-stripe":`#1c1c1c`,"--mg-color-bg-header":`#1a2332`,"--mg-color-bg-footer":`#1a2332`,"--mg-color-bg-status-bar":`#141414`,"--mg-color-column-drag-ghost-bg":`#1a2332`,"--mg-fixed-shadow-left":`4px 0 8px -2px rgba(0, 0, 0, 0.45)`,"--mg-fixed-shadow-right":`-4px 0 8px -2px rgba(0, 0, 0, 0.45)`,"--mg-column-handle-menu-shadow":`0 1px 2px rgba(0, 0, 0, 0.35), 0 4px 12px rgba(0, 0, 0, 0.4)`},RS={"--mg-color-bg-cell":`#ffffff`,"--mg-color-bg-stripe":`#f5f7fa`,"--mg-color-text-primary":`#333333`,"--mg-color-text-regular":`#333333`,"--mg-color-text-secondary":`#9f9f9f`,"--mg-color-border":`#d8d8d8`,"--mg-color-border-light":`#d8d8d8`,"--mg-fixed-shadow-left":`4px 0 8px -2px rgba(0, 0, 0, 0.12)`,"--mg-fixed-shadow-right":`-4px 0 8px -2px rgba(0, 0, 0, 0.12)`};function zS(e){return e??`light`}function BS(e){return`magic-grid--theme-${e}`}function VS(e){return e===`dark`?{...LS}:{}}function HS(e){return e===`dark`?{...RS}:{}}var US=Object.keys(RS);function WS(e,t){if(!e)return;for(let t of US)e.style.removeProperty(t);let n=HS(t);for(let[t,r]of Object.entries(n))e.style.setProperty(t,r)}var GS={class:`mg-status-bar__panels`},KS=(0,t.defineComponent)({__name:`StatusBarDefaultPanels`,props:{context:{}},setup(e){let n=e,r=(0,t.computed)(()=>{let{context:e}=n,t=[];return t.push(`共 ${e.totalRowCount} 行`),e.isFiltered&&t.push(`显示 ${e.displayedRowCount} 行`),e.rowSelectionEnabled&&e.selectedRowCount>0&&t.push(`已选 ${e.selectedRowCount} 行`),t});return(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,GS,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(r.value,(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:n,class:`mg-status-bar__panel`},(0,t.toDisplayString)(e),1))),128))]))}}),qS=2;function JS(e){if(typeof e==`number`){let t=YS(e);return{average:t,sum:t}}return{average:YS(e?.average??2),sum:YS(e?.sum??2)}}function YS(e){return Number.isFinite(e)?Math.max(0,Math.min(10,Math.trunc(e))):2}function XS(e,t,n=2){if(t===`count`)return String(Math.trunc(e));let r=YS(n),i=10**r,a=Math.round(e*i)/i;return r===0?String(Math.round(a)):a.toFixed(r).replace(/\.?0+$/,``)}function ZS(e){return e!=null&&e.count>0}var QS={key:0,class:`mg-status-bar__panels mg-status-bar__panels--aggregation`},$S=(0,t.defineComponent)({__name:`StatusBarRangeAggregationPanels`,props:{context:{}},setup(e){let n=e,r=(0,t.computed)(()=>ZS(n.context.cellSelectionAggregation)),i=(0,t.computed)(()=>{let e=n.context.cellSelectionAggregation;if(!ZS(e))return[];let t=n.context.statusBarRangeAggregationPrecision,r=[];return e.average!=null&&r.push({label:`平均值`,value:XS(e.average,`average`,t.average)}),r.push({label:`计数`,value:XS(e.count,`count`)}),e.sum!=null&&r.push({label:`求和`,value:XS(e.sum,`sum`,t.sum)}),r});return(e,n)=>r.value&&i.value.length?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,QS,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(i.value,(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:n,class:`mg-status-bar__panel`},(0,t.toDisplayString)(e.label)+`: `+(0,t.toDisplayString)(e.value),1))),128))])):(0,t.createCommentVNode)(``,!0)}});function eC(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 tC(e){return{...e,syncToSelectionColumn:e?.syncToSelectionColumn??!0}}function nC(e){return Is({cellSelection:e}).enabled}function rC(e){let n=(0,t.ref)(0),r=(0,t.ref)(0),i=()=>{n.value+=1};return{statusBarContext:(0,t.computed)(()=>{n.value;let t=e.api.value,i=t?.getMetrics(),a=ze(e.rowSelection.value).mode!==!1,o=nC(e.cellSelection.value);return{api:t,totalRowCount:i?.sourceRowCount??0,displayedRowCount:i?.rowCount??0,isFiltered:t?.isAnyFilterActive()??(i!=null&&i.sourceRowCount!==i.rowCount),selectedRowCount:r.value,rowSelectionEnabled:a,cellSelectionEnabled:o,cellSelectionAggregation:o?t?.getCellSelectionAggregation()??null:null,statusBarRangeAggregationPrecision:JS(e.statusBarRangeAggregationPrecision.value),metrics:i}}),bumpRefresh:i,onSelectionChanged:e=>{r.value=e.length,i()},resetSelectionCount:()=>{r.value=0}}}var iC=class{render(e,n){(0,t.render)(n,e)}unmount(e){(0,t.render)(null,e)}};function aC(e,t){return(n,r)=>{e.render(r.mountEl,t(n))}}function oC(e,t){return aC(e,e=>{let n=t(e);return Array.isArray(n)?n[0]:n})}var sC=class{render(e,n){(0,t.render)(n,e)}unmount(e){(0,t.render)(null,e)}};function cC(e,t){return(n,r)=>{e.render(r.mountEl,t(n))}}function lC(e,t){return cC(e,e=>{let n=t(e);return Array.isArray(n)?n[0]:n})}var uC=class{render(e,n){(0,t.render)(n,e)}unmount(e){(0,t.render)(null,e)}};function dC(e,t){return(n,r)=>{e.render(r.mountEl,t(n))}}function fC(e,t){return dC(e,e=>{let n=t(e);return Array.isArray(n)?n[0]:n})}var pC=class{mountEl=null;render(e,n){this.unmount(),this.mountEl=e,(0,t.render)(n,e)}unmount(){this.mountEl&&=((0,t.render)(null,this.mountEl),null)}};function mC(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 hC=class{mountEl=null;render(e,n){this.unmount(),this.mountEl=e,(0,t.render)(n,e)}unmount(){this.mountEl&&=((0,t.render)(null,this.mountEl),null)}};function gC(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 _C=[`data-status-bar`,`data-toolbar`],vC={key:0,class:`magic-grid__toolbar`},yC={key:0,class:`mg-status-bar__region mg-status-bar__region--left`},bC={key:1,class:`mg-status-bar__separator`,role:`separator`,"aria-orientation":`vertical`},xC={key:3,class:`mg-status-bar__separator`,role:`separator`,"aria-orientation":`vertical`},SC={key:4,class:`mg-status-bar__separator`,role:`separator`,"aria-orientation":`vertical`},CC={key:6,class:`mg-status-bar__separator`,role:`separator`,"aria-orientation":`vertical`},wC={key:7,class:`mg-status-bar__region mg-status-bar__region--right`},TC=(0,t.defineComponent)({inheritAttrs:!1,__name:`MagicGrid`,props:{columns:{type:Array,required:!0},data:{type:Array,required:!0},cellEditorRegistry:{type:Object,default:void 0},rowKey:{type:String,default:`id`},stripe:{type:Boolean,default:!1},border:{type:String,default:`border`},theme:{type:String,default:`light`},size:{type:String,default:`default`},rounded:{type:[Boolean,Number],default:!1},rowHeight:{type:Number,default:void 0},headerHeight:{type:Number,default:void 0},showIndexColumn:{type:Boolean,default:!1},indexColumn:{type:Object,default:void 0},selectionColumn:{type:Object,default:void 0},showSummary:{type:Boolean,default:!1},navigateHeader:{type:Boolean,default:!1},navigateFooter:{type:Boolean,default:!1},summaryScope:{type:String,default:`displayed`},summaryRowHeight:{type:Number,default:void 0},summaryMethod:{type:Function,default:void 0},headerAlign:{type:String,default:void 0},headerValign:{type:String,default:void 0},align:{type:String,default:void 0},valign:{type:String,default:void 0},footerAlign:{type:String,default:void 0},footerValign:{type:String,default:void 0},rowBuffer:{type:Number,default:10},rowSelection:{type:[String,Boolean,Object],default:`single`},selectable:{type:Function,default:void 0},isRowDisabled:{type:[Boolean,Function],default:void 0},rowStyle:{type:[Object,Function],default:void 0},reserveSelection:{type:Boolean,default:!1},editBehavior:{type:String,default:`cell`},editType:{type:String,default:`singleClick`},invalidEditValueMode:{type:String,default:`block`},rowValidator:{type:Function,default:void 0},asyncRowMutation:{type:Object,default:void 0},height:{type:[String,Number],default:`100%`},width:{type:[String,Number],default:`100%`},defaultSort:{type:Array,default:void 0},sortable:{type:Boolean,default:!1},columnMovable:{type:Boolean,default:!0},resizable:{type:Boolean,default:!0},colResizeDefault:{type:String,default:void 0},skipHeaderOnAutoSize:{type:Boolean,default:!1},autoSizePadding:{type:Number,default:void 0},autoSizeStrategy:{type:Object,default:void 0},suppressMoveWhenColumnDragging:{type:Boolean,default:!1},suppressColumnMoveAnimation:{type:Boolean,default:!1},allowCrossLaneColumnMove:{type:Boolean,default:!1},showUnsortedSortHintOnHover:{type:Boolean,default:!1},quickFilterText:{type:String,default:``},filterable:{type:Boolean,default:!1},floatingFilter:{type:Boolean,default:!1},filterSetValueMode:{type:String,default:`current`},filterSetDateLayoutMode:{type:String,default:`tree`},showStatusBar:{type:Boolean,default:!0},showDefaultStatusBarPanels:{type:Boolean,default:!0},statusBarHeight:{type:[String,Number],default:`auto`},showStatusBarRangeAggregation:{type:Boolean,default:!0},statusBarRangeAggregationPosition:{type:String,default:`right`},statusBarRangeAggregationPrecision:{type:[Number,Object],default:void 0},rowDragManaged:{type:Boolean,default:!0},rowDragCommitMode:{type:String,default:`sync`},onRowDragCommit:{type:Function,default:void 0},getRowHeight:{type:Function,default:void 0},rowHeightMin:{type:Number,default:void 0},rowHeightMax:{type:Number,default:void 0},enableCellSpan:{type:Boolean,default:!1},masterDetail:{type:Boolean,default:!1},isRowMaster:{type:Function,default:void 0},masterDefaultExpanded:{type:Number,default:void 0},detailRowHeight:{type:[Number,Function],default:void 0},detailRowAutoHeight:{type:Boolean,default:void 0},embedFullWidthRows:{type:Boolean,default:void 0},showExpandColumn:{type:Boolean,default:void 0},getDetailRowData:{type:Function,default:void 0},detailCellRenderer:{type:Function,default:void 0},rowGrouping:{type:Boolean,default:!1},groupDefaultExpanded:{type:Number,default:void 0},showGroupHeader:{type:Boolean,default:!1},showGroupFooter:{type:Boolean,default:!1},groupDisplayType:{type:String,default:void 0},showGroupColumn:{type:Boolean,default:!1},autoGroupColumnDef:{type:Object,default:void 0},groupKeyCreator:{type:Function,default:void 0},groupComparator:{type:Function,default:void 0},groupFooterLabel:{type:String,default:void 0},groupCellRenderer:{type:Function,default:void 0},tree:{type:Boolean,default:!1},getDataPath:{type:Function,default:void 0},showTreeColumn:{type:Boolean,default:void 0},autoTreeColumnDef:{type:Object,default:void 0},treeValueGetter:{type:Function,default:void 0},treeDisplayType:{type:String,default:void 0},treeDragScope:{type:String,default:void 0},setDataPath:{type:Function,default:void 0},treeLazyLoad:{type:Boolean,default:!1},hasTreeChildren:{type:Function,default:void 0},loadTreeChildren:{type:Function,default:void 0},cellCommentsDataSource:{type:Object,default:void 0},suppressCellComments:{type:Boolean,default:!1},cellCommentTrigger:{type:String,default:`click`},cellCommentShowDelay:{type:Number,default:void 0},cellCommentHideDelay:{type:Number,default:void 0},cellSelection:{type:[Boolean,Object],default:!0},enableCellCopy:{type:Boolean,default:void 0},enableCellPaste:{type:Boolean,default:void 0},enableHeaderHighlight:{type:Boolean,default:!0},enableIndexColumnHighlight:{type:Boolean,default:!0},processCellForClipboard:{type:Function,default:void 0},processCellFromClipboard:{type:Function,default:void 0},processDataFromClipboard:{type:Function,default:void 0},enableTooltips:{type:Boolean,default:void 0},tooltipShowMode:{type:String,default:void 0},tooltipShowDelay:{type:Number,default:void 0},tooltipSwitchShowDelay:{type:Number,default:void 0},tooltipHideDelay:{type:Number,default:void 0},tooltipInteraction:{type:Boolean,default:void 0},tooltipMouseTrack:{type:Boolean,default:void 0},tooltipComponent:{type:Function,default:void 0},tooltipComponentParams:{type:Object,default:void 0},loading:{type:Boolean,default:void 0},suppressOverlays:{type:Array,default:void 0},suppressLoadingOverlay:{type:Boolean,default:void 0},suppressNoRowsOverlay:{type:Boolean,default:void 0},suppressNoMatchingRowsOverlay:{type:Boolean,default:void 0},overlayLoadingTemplate:{type:String,default:void 0},overlayNoRowsTemplate:{type:String,default:void 0},overlayNoMatchingRowsTemplate:{type:String,default:void 0},overlayInteraction:{type:Boolean,default:void 0},loadingOverlayComponent:{type:Function,default:void 0},loadingOverlayComponentParams:{type:Object,default:void 0},noRowsOverlayComponent:{type:Function,default:void 0},noRowsOverlayComponentParams:{type:Object,default:void 0},noMatchingRowsOverlayComponent:{type:Function,default:void 0},noMatchingRowsOverlayComponentParams:{type:Object,default:void 0},overlayComponent:{type:Function,default:void 0},overlayComponentParams:{type:Object,default:void 0}},emits:`scroll.data-rendered.cell-clicked.row-click.row-dblclick.selection-changed.index-focus-changed.cell-value-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`.split(`.`),setup(n,{expose:r,emit:c}){let l=new iC,u=new sC,d=new uC,f=new pC,m=new hC;function h(e,t){return e.key??e.prop??`col_${t}`}function g(e,t){let n={};return e.forEach((e,r)=>{let i=h(e,r);e.cellRenderer&&(n[i]=e.cellRenderer);let a=t[`cell-${i}`];a&&(n[i]=oC(l,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 _(e,t){let n={};return e.forEach((e,r)=>{let i=h(e,r);e.cellEditor&&typeof e.cellEditor==`function`&&(n[i]=e.cellEditor);let a=t[`cell-editor-${i}`];a&&(n[i]=fC(d,e=>a({row:e.data,value:e.value,formattedValue:e.formattedValue,rowIndex:e.rowIndex,rowId:e.rowId,colId:e.colId,stopEditing:e.stopEditing})))}),n}function v(e,t){let n=t.tooltip;return n?mC(f,e=>n(e)):e}function y(e,t,n){let r=t[e];return r?gC(m,e=>r({overlayType:e.overlayType,api:e.api,overlayText:e.overlayText})):n}function b(e){return{loading:x.loading,suppressOverlays:x.suppressOverlays,suppressLoadingOverlay:x.suppressLoadingOverlay,suppressNoRowsOverlay:x.suppressNoRowsOverlay,suppressNoMatchingRowsOverlay:x.suppressNoMatchingRowsOverlay,overlayLoadingTemplate:x.overlayLoadingTemplate,overlayNoRowsTemplate:x.overlayNoRowsTemplate,overlayNoMatchingRowsTemplate:x.overlayNoMatchingRowsTemplate,overlayInteraction:x.overlayInteraction,overlayComponent:x.overlayComponent,overlayComponentParams:x.overlayComponentParams,loadingOverlayComponent:y(`loading`,e,x.loadingOverlayComponent),loadingOverlayComponentParams:x.loadingOverlayComponentParams,noRowsOverlayComponent:y(`no-rows`,e,x.noRowsOverlayComponent),noRowsOverlayComponentParams:x.noRowsOverlayComponentParams,noMatchingRowsOverlayComponent:y(`no-matching-rows`,e,x.noMatchingRowsOverlayComponent),noMatchingRowsOverlayComponentParams:x.noMatchingRowsOverlayComponentParams}}function ee(e,t){let n=t[`detail-row`];return n?lC(u,e=>n({row:e.data,rowId:e.rowId,masterRowId:e.masterRowId,detailRowData:e.detailRowData,loading:e.loading,loadFailed:e.loadFailed,loadError:e.loadError})):e}let x=n,S=c,C=(0,t.useSlots)(),w=(0,t.ref)(),T=(0,t.ref)(),E=(0,t.ref)(),D=(0,t.shallowRef)(),O=(0,t.shallowRef)(),{statusBarContext:k,bumpRefresh:A,onSelectionChanged:j,resetSelectionCount:M}=rC({api:O,rowSelection:(0,t.computed)(()=>x.rowSelection),cellSelection:(0,t.computed)(()=>x.cellSelection),statusBarRangeAggregationPrecision:(0,t.computed)(()=>x.statusBarRangeAggregationPrecision)}),N=(0,t.computed)(()=>!!C[`status-bar`]),te=(0,t.computed)(()=>!!C[`status-bar-left`]),ne=(0,t.computed)(()=>!!C[`status-bar-right`]),P=(0,t.computed)(()=>!!C.toolbar),re=(0,t.computed)(()=>({api:O.value,size:ae.value.size,portalEl:T.value??void 0})),ie=[],ae=(0,t.computed)(()=>a({size:x.size,rowHeight:x.rowHeight,headerHeight:x.headerHeight})),oe=(0,t.computed)(()=>i({rounded:x.rounded,sizeBorderRadius:ae.value.borderRadius})),se=(0,t.computed)(()=>zS(x.theme)),ce=(0,t.computed)(()=>eC(x.cellSelection)),le=(0,t.computed)(()=>tC(x.indexColumn)),ue=(0,t.computed)(()=>o(x.statusBarHeight,ae.value.statusBarHeight)),de=(0,t.computed)(()=>x.showDefaultStatusBarPanels||te.value),fe=(0,t.computed)(()=>ne.value),pe=(0,t.computed)(()=>x.showStatusBarRangeAggregation?ZS(k.value.cellSelectionAggregation):!1),me=(0,t.computed)(()=>x.statusBarRangeAggregationPosition===`left`&&pe.value),he=(0,t.computed)(()=>x.statusBarRangeAggregationPosition===`right`&&pe.value),ge=(0,t.computed)(()=>de.value),_e=(0,t.computed)(()=>me.value),ve=(0,t.computed)(()=>he.value||fe.value),ye=(0,t.computed)(()=>he.value&&fe.value),be=(0,t.computed)(()=>({height:typeof x.height==`number`?`${x.height}px`:x.height,width:typeof x.width==`number`?`${x.width}px`:x.width,...p({...ae.value,statusBarHeight:ue.value},oe.value,x.summaryRowHeight),...VS(se.value)})),xe=(0,t.computed)(()=>{let e=ue.value,{fontSize:t,spacing:n}=ae.value,r=s(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`}}),F=(0,t.computed)(()=>[`magic-grid`,`magic-grid--border-${x.border}`,`magic-grid--size-${ae.value.size}`,BS(se.value),x.showSummary&&`magic-grid--has-footer`,x.showStatusBar&&`magic-grid--has-status-bar`,P.value&&`magic-grid--has-toolbar`]),Se=()=>{D.value&&S(`scroll`,D.value.getMetrics())},Ce=()=>{D.value&&(S(`data-rendered`,D.value.getMetrics()),A())},we=()=>{requestAnimationFrame(()=>{Se()})},Te=()=>{requestAnimationFrame(()=>{Ce()})},Ee=e=>{for(let e of ie)e();ie.length=0,ie.push(e.on(`cellClicked`,e=>S(`cell-clicked`,e)),e.on(`rowClicked`,e=>S(`row-click`,e)),e.on(`rowDoubleClicked`,e=>S(`row-dblclick`,e)),e.on(`selectionChanged`,e=>{j(e.selectedRowIds),S(`selection-changed`,e)}),e.on(`indexFocusChanged`,e=>S(`index-focus-changed`,e)),e.on(`cellValueChanged`,e=>{S(`cell-value-changed`,e),A()}),e.on(`cellEditingStarted`,e=>S(`cell-editing-started`,e)),e.on(`cellEditingStopped`,e=>S(`cell-editing-stopped`,e)),e.on(`cellCommitStarted`,e=>S(`cell-commit-started`,e)),e.on(`cellCommitFinished`,e=>S(`cell-commit-finished`,e)),e.on(`editCommitAborted`,e=>S(`edit-commit-aborted`,e)),e.on(`rowCommitStarted`,e=>S(`row-commit-started`,e)),e.on(`rowCommitFinished`,e=>S(`row-commit-finished`,e)),e.on(`rowEditingStarted`,e=>S(`row-editing-started`,e)),e.on(`rowEditingStopped`,e=>S(`row-editing-stopped`,e)),e.on(`rowValueChanged`,e=>S(`row-value-changed`,e)),e.on(`cellValidationFailed`,e=>S(`cell-validation-failed`,e)),e.on(`rowValidationFailed`,e=>S(`row-validation-failed`,e)),e.on(`sortChanged`,e=>S(`sort-changed`,e.sortModel)),e.on(`columnMoved`,e=>S(`column-moved`,e)),e.on(`columnResized`,e=>S(`column-resized`,e)),e.on(`columnPinned`,e=>S(`column-pinned`,e)),e.on(`columnHiddenChanged`,e=>S(`column-hidden-changed`,e)),e.on(`filterChanged`,e=>{S(`filter-changed`,e.filterModel),A()}),e.on(`rowsAdded`,e=>{S(`rows-added`,e),A()}),e.on(`rowsRemoved`,e=>{S(`rows-removed`,e),A()}),e.on(`rowIdPromoted`,e=>S(`row-id-promoted`,e)),e.on(`rowMoved`,e=>S(`row-moved`,e)),e.on(`rowDragEnd`,e=>S(`row-drag-end`,e)),e.on(`rowDragCommitStarted`,e=>S(`row-drag-commit-started`,e)),e.on(`rowDragCommitFinished`,e=>S(`row-drag-commit-finished`,e)),e.on(`rowHeightChanged`,e=>S(`row-height-changed`,e)),e.on(`rowExpanded`,e=>S(`row-expanded`,e)),e.on(`rowCollapsed`,e=>S(`row-collapsed`,e)),e.on(`rowGroupOpened`,e=>S(`row-group-opened`,e)),e.on(`treeNodeOpened`,e=>S(`tree-node-opened`,e)),e.on(`treeChildrenLoading`,e=>S(`tree-children-loading`,e)),e.on(`treeChildrenLoaded`,e=>S(`tree-children-loaded`,e)),e.on(`treeChildrenLoadFailed`,e=>S(`tree-children-load-failed`,e)),e.on(`rowGroupChanged`,e=>S(`row-group-changed`,e)),e.on(`cellCommentChanged`,e=>S(`cell-comment-changed`,e)),e.on(`cellSelectionChanged`,e=>{S(`cell-selection-changed`,e),A()}),e.on(`cellSelectionDeleteStart`,e=>S(`cell-selection-delete-start`,e)),e.on(`cellSelectionDeleteEnd`,e=>S(`cell-selection-delete-end`,e)),e.on(`overlayShown`,e=>S(`overlay-shown`,e)),e.on(`overlayHidden`,e=>S(`overlay-hidden`,e)))},De=()=>{WS(w.value?.querySelector(`.mg-body`),se.value)};function Oe(){D.value?.setStatusBarElement(x.showStatusBar?E.value??null:null)}let ke=()=>{if(w.value){for(let e of ie)e();ie.length=0,D.value?.destroy(),M(),x.columns,x.columns,x.columns,pn(x.columns),Om({tree:x.tree,rowGrouping:x.rowGrouping}),D.value=new IS(w.value,{columns:e.r(x.columns),rowKey:x.rowKey,rowHeight:ae.value.rowHeight,headerHeight:ae.value.headerHeight,rowBuffer:x.rowBuffer,stripe:x.stripe,rowSelection:x.rowSelection,selectable:x.selectable,isRowDisabled:x.isRowDisabled,rowStyle:x.rowStyle,reserveSelection:x.reserveSelection,editType:x.editType,editBehavior:x.editBehavior,invalidEditValueMode:x.invalidEditValueMode,rowValidator:x.rowValidator,asyncRowMutation:x.asyncRowMutation,showIndexColumn:x.showIndexColumn,indexColumn:le.value,selectionColumn:x.selectionColumn,showSummary:x.showSummary,navigateHeader:x.navigateHeader,navigateFooter:x.navigateFooter,summaryScope:x.summaryScope,summaryRowHeight:x.summaryRowHeight,summaryMethod:x.summaryMethod,headerAlign:x.headerAlign,headerValign:x.headerValign,align:x.align,valign:x.valign,footerAlign:x.footerAlign,footerValign:x.footerValign,defaultSort:x.defaultSort,sortable:x.sortable,columnMovable:x.columnMovable,resizable:x.resizable,colResizeDefault:x.colResizeDefault,skipHeaderOnAutoSize:x.skipHeaderOnAutoSize,autoSizePadding:x.autoSizePadding,autoSizeStrategy:x.autoSizeStrategy,suppressMoveWhenColumnDragging:x.suppressMoveWhenColumnDragging,suppressColumnMoveAnimation:x.suppressColumnMoveAnimation,allowCrossLaneColumnMove:x.allowCrossLaneColumnMove,showUnsortedSortHintOnHover:x.showUnsortedSortHintOnHover,quickFilterText:x.quickFilterText,filterable:x.filterable,floatingFilter:x.floatingFilter,filterSetValueMode:x.filterSetValueMode,filterSetDateLayoutMode:x.filterSetDateLayoutMode,rowDragManaged:x.rowDragManaged,rowDragCommitMode:x.rowDragCommitMode,onRowDragCommit:x.onRowDragCommit,getRowHeight:x.getRowHeight,rowHeightMin:x.rowHeightMin,rowHeightMax:x.rowHeightMax,enableCellSpan:x.enableCellSpan,masterDetail:x.masterDetail,isRowMaster:x.isRowMaster,masterDefaultExpanded:x.masterDefaultExpanded,detailRowHeight:x.detailRowHeight,detailRowAutoHeight:x.detailRowAutoHeight,embedFullWidthRows:x.embedFullWidthRows,showExpandColumn:x.showExpandColumn,getDetailRowData:x.getDetailRowData,detailCellRenderer:ee(x.detailCellRenderer,C),rowGrouping:x.rowGrouping,groupDefaultExpanded:x.groupDefaultExpanded,showGroupHeader:x.showGroupHeader,showGroupFooter:x.showGroupFooter,groupDisplayType:x.groupDisplayType,showGroupColumn:x.showGroupColumn,autoGroupColumnDef:x.autoGroupColumnDef,groupKeyCreator:x.groupKeyCreator,groupComparator:x.groupComparator,groupFooterLabel:x.groupFooterLabel,groupCellRenderer:x.groupCellRenderer,tree:x.tree,getDataPath:x.getDataPath,showTreeColumn:x.showTreeColumn,autoTreeColumnDef:x.autoTreeColumnDef,treeValueGetter:x.treeValueGetter,treeDisplayType:x.treeDisplayType,treeDragScope:x.treeDragScope,setDataPath:x.setDataPath,treeLazyLoad:x.treeLazyLoad,hasTreeChildren:x.hasTreeChildren,loadTreeChildren:x.loadTreeChildren,cellCommentsDataSource:x.cellCommentsDataSource,suppressCellComments:x.suppressCellComments,cellCommentTrigger:x.cellCommentTrigger,cellCommentShowDelay:x.cellCommentShowDelay,cellCommentHideDelay:x.cellCommentHideDelay,cellSelection:ce.value,enableCellCopy:x.enableCellCopy,enableCellPaste:x.enableCellPaste,enableHeaderHighlight:x.enableHeaderHighlight,enableIndexColumnHighlight:x.enableIndexColumnHighlight,processCellForClipboard:x.processCellForClipboard,processCellFromClipboard:x.processCellFromClipboard,processDataFromClipboard:x.processDataFromClipboard,enableTooltips:x.enableTooltips,tooltipShowMode:x.tooltipShowMode,tooltipShowDelay:x.tooltipShowDelay,tooltipSwitchShowDelay:x.tooltipSwitchShowDelay,tooltipHideDelay:x.tooltipHideDelay,tooltipInteraction:x.tooltipInteraction,tooltipMouseTrack:x.tooltipMouseTrack,tooltipComponent:v(x.tooltipComponent,C),tooltipComponentParams:x.tooltipComponentParams,...b(C),cellRenderers:{byColId:g(x.columns,C)},cellEditors:{byColId:_(x.columns,C),byName:x.cellEditorRegistry},onUnmountRenderer:e=>{l.unmount(e),u.unmount(e)},onUnmountEditor:e=>{d.unmount(e)},onScroll:()=>{we()}}),O.value=D.value.getApi(),Ee(D.value),D.value.setData(x.data),Te(),De(),(0,t.nextTick)(()=>Oe())}};return(0,t.onMounted)(()=>{ke()}),(0,t.watch)(se,De),(0,t.watch)(()=>x.quickFilterText,e=>{let t=D.value?.getApi();!t||t.getQuickFilterText()===e||t.setQuickFilterText(e)}),(0,t.watch)(()=>[x.cellCommentsDataSource,x.suppressCellComments,x.cellCommentTrigger,x.cellCommentShowDelay,x.cellCommentHideDelay],()=>{D.value?.updateCellCommentOptions({cellCommentsDataSource:x.cellCommentsDataSource,suppressCellComments:x.suppressCellComments,cellCommentTrigger:x.cellCommentTrigger,cellCommentShowDelay:x.cellCommentShowDelay,cellCommentHideDelay:x.cellCommentHideDelay})}),(0,t.watch)(()=>[ce.value,x.enableCellCopy,x.enableCellPaste],()=>{D.value?.updateCellSelectionOptions({cellSelection:ce.value,enableCellCopy:x.enableCellCopy,enableCellPaste:x.enableCellPaste})}),(0,t.watch)(()=>[x.enableHeaderHighlight,x.enableIndexColumnHighlight],()=>{D.value?.updateCellRangeVisualOptions({enableHeaderHighlight:x.enableHeaderHighlight,enableIndexColumnHighlight:x.enableIndexColumnHighlight})}),(0,t.watch)(()=>[x.processCellForClipboard,x.processCellFromClipboard,x.processDataFromClipboard],()=>{D.value?.updateCellClipboardOptions({processCellForClipboard:x.processCellForClipboard,processCellFromClipboard:x.processCellFromClipboard,processDataFromClipboard:x.processDataFromClipboard})}),(0,t.watch)(()=>[x.enableTooltips,x.tooltipShowMode,x.tooltipShowDelay,x.tooltipSwitchShowDelay,x.tooltipHideDelay,x.tooltipInteraction,x.tooltipMouseTrack,x.tooltipComponent,x.tooltipComponentParams,C.tooltip],()=>{D.value?.updateOverflowTooltipOptions({enableTooltips:x.enableTooltips,tooltipShowMode:x.tooltipShowMode,tooltipShowDelay:x.tooltipShowDelay,tooltipSwitchShowDelay:x.tooltipSwitchShowDelay,tooltipHideDelay:x.tooltipHideDelay,tooltipInteraction:x.tooltipInteraction,tooltipMouseTrack:x.tooltipMouseTrack,tooltipComponent:v(x.tooltipComponent,C),tooltipComponentParams:x.tooltipComponentParams})}),(0,t.watch)(()=>[x.loading,x.suppressOverlays,x.suppressLoadingOverlay,x.suppressNoRowsOverlay,x.suppressNoMatchingRowsOverlay,x.overlayLoadingTemplate,x.overlayNoRowsTemplate,x.overlayNoMatchingRowsTemplate,x.overlayInteraction,x.loadingOverlayComponent,x.loadingOverlayComponentParams,x.noRowsOverlayComponent,x.noRowsOverlayComponentParams,x.noMatchingRowsOverlayComponent,x.noMatchingRowsOverlayComponentParams,x.overlayComponent,x.overlayComponentParams,C.loading,C[`no-rows`],C[`no-matching-rows`]],()=>{D.value?.updateEmptyStateOptions(b(C))}),(0,t.watch)(()=>[x.showStatusBar,E.value],()=>{(0,t.nextTick)(()=>Oe())}),(0,t.watch)(()=>x.data,e=>{D.value?.setData(e),Te()}),(0,t.watch)(()=>x.selectable,e=>{D.value?.setSelectable(e)}),(0,t.watch)(()=>x.isRowDisabled,e=>{D.value?.setIsRowDisabled(e)}),(0,t.watch)(()=>x.rowStyle,e=>{D.value?.setRowStyle(e)}),(0,t.watch)(()=>x.reserveSelection,e=>{D.value?.setReserveSelection(e)}),(0,t.watch)(()=>x.showUnsortedSortHintOnHover,e=>{D.value?.setShowUnsortedSortHintOnHover(e)}),(0,t.watch)(()=>x.sortable,e=>{D.value?.setColumnSortOptions({sortable:e})}),(0,t.watch)(()=>x.filterable,e=>{D.value?.setColumnFilterOptions({filterable:e})}),(0,t.watch)(()=>x.resizable,e=>{D.value?.setColumnResizeOptions({resizable:e})}),(0,t.watch)(()=>[x.columnMovable,x.suppressMoveWhenColumnDragging,x.suppressColumnMoveAnimation,x.allowCrossLaneColumnMove],([e,t,n,r])=>{D.value?.setColumnMoveOptions({columnMovable:e,suppressMoveWhenColumnDragging:t,suppressColumnMoveAnimation:n,allowCrossLaneColumnMove:r})}),(0,t.watch)(()=>({rowHeight:ae.value.rowHeight,rowHeightMin:x.rowHeightMin,rowHeightMax:x.rowHeightMax}),(e,n)=>{if(!D.value||!n)return;let r=D.value.getMetrics()?.scrollTop??0,i=D.value.getMetrics()?.scrollLeft??0;D.value.updateDimensions(e),(0,t.nextTick)(()=>{D.value?.scrollTo(r,i),requestAnimationFrame(()=>{D.value?.scrollTo(r,i)})})}),(0,t.watch)(()=>x.columns,()=>{D.value&&(D.value.setColumns(e.r(x.columns)),D.value.getApi().refreshCellStyles(),Te())}),(0,t.watch)(()=>[x.size,x.headerHeight,x.rowBuffer,x.rowKey,x.stripe,x.rowSelection,x.editType,x.editBehavior,x.invalidEditValueMode,x.rowValidator,x.asyncRowMutation,x.showIndexColumn,x.indexColumn,x.selectionColumn,x.showSummary,x.floatingFilter,x.navigateHeader,x.navigateFooter,x.summaryScope,x.summaryRowHeight,x.summaryMethod,x.headerAlign,x.headerValign,x.align,x.valign,x.footerAlign,x.footerValign,x.cellEditorRegistry,x.rowDragManaged,x.rowDragCommitMode,x.onRowDragCommit,x.getRowHeight,x.enableCellSpan,x.masterDetail,x.isRowMaster,x.masterDefaultExpanded,x.detailRowHeight,x.detailRowAutoHeight,x.embedFullWidthRows,x.showExpandColumn,x.getDetailRowData,x.detailCellRenderer,x.rowGrouping,x.groupDefaultExpanded,x.showGroupHeader,x.showGroupFooter,x.groupDisplayType,x.showGroupColumn,x.autoGroupColumnDef,x.groupKeyCreator,x.groupComparator,x.groupFooterLabel,x.groupCellRenderer,x.tree,x.getDataPath,x.showTreeColumn,x.autoTreeColumnDef,x.treeValueGetter,x.treeDisplayType,x.treeDragScope,x.setDataPath,x.treeLazyLoad,x.hasTreeChildren,x.loadTreeChildren,C[`detail-row`]],()=>{ke()}),(0,t.onUnmounted)(()=>{for(let e of ie)e();ie.length=0,D.value?.destroy(),f.unmount(),m.unmount(),D.value=void 0,O.value=void 0}),r({api:O,getMetrics:()=>D.value?.getMetrics(),scrollTo:(e,t)=>{D.value?.scrollTo(e,t),we()},setSortModel:e=>{D.value?.setSortModel(e),Te()},getSortModel:()=>D.value?.getSortModel()??[],setFilterModel:e=>{D.value?.setFilterModel(e),Te()},getData:e=>D.value?.getData(e)??[],applyTransaction:async e=>{let t=await D.value?.applyTransaction(e);return Te(),t},beginUpdate:()=>{D.value?.beginUpdate()},endUpdate:()=>{D.value?.endUpdate(),Te()},ensureIndexVisible:(e,t)=>{D.value?.ensureIndexVisible(e,t),we()},flushFrames:()=>{D.value?.flushFrames()}}),(e,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)(F.value),style:(0,t.normalizeStyle)(be.value),"data-status-bar":n.showStatusBar?`true`:`false`,"data-toolbar":P.value?`true`:`false`},[P.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,vC,[(0,t.renderSlot)(e.$slots,`toolbar`,(0,t.normalizeProps)((0,t.guardReactiveProps)(re.value)))])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,{ref_key:`mountRef`,ref:w,class:`magic-grid__mount`},null,512),(0,t.createElementVNode)(`div`,{ref_key:`portalRef`,ref:T,class:`magic-grid__portal`,"aria-hidden":`true`},null,512),n.showStatusBar?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:1,ref_key:`statusBarRef`,ref:E,class:`mg-status-bar`,style:(0,t.normalizeStyle)(xe.value),role:`status`,"aria-live":`polite`},[N.value?(0,t.renderSlot)(e.$slots,`status-bar`,(0,t.normalizeProps)((0,t.guardReactiveProps)((0,t.unref)(k))),void 0,void 0,0):((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:1},[de.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,yC,[n.showDefaultStatusBarPanels?((0,t.openBlock)(),(0,t.createBlock)(KS,{key:0,context:(0,t.unref)(k)},null,8,[`context`])):(0,t.createCommentVNode)(``,!0),(0,t.renderSlot)(e.$slots,`status-bar-left`,(0,t.normalizeProps)((0,t.guardReactiveProps)((0,t.unref)(k))))])):(0,t.createCommentVNode)(``,!0),ge.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,bC)):(0,t.createCommentVNode)(``,!0),me.value?((0,t.openBlock)(),(0,t.createBlock)($S,{key:2,context:(0,t.unref)(k)},null,8,[`context`])):(0,t.createCommentVNode)(``,!0),_e.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,xC)):(0,t.createCommentVNode)(``,!0),r[0]||=(0,t.createElementVNode)(`div`,{class:`mg-status-bar__stretch`,"aria-hidden":`true`},null,-1),ve.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,SC)):(0,t.createCommentVNode)(``,!0),he.value?((0,t.openBlock)(),(0,t.createBlock)($S,{key:5,context:(0,t.unref)(k)},null,8,[`context`])):(0,t.createCommentVNode)(``,!0),ye.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,CC)):(0,t.createCommentVNode)(``,!0),fe.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,wC,[(0,t.renderSlot)(e.$slots,`status-bar-right`,(0,t.normalizeProps)((0,t.guardReactiveProps)((0,t.unref)(k))))])):(0,t.createCommentVNode)(``,!0)],64))],4)):(0,t.createCommentVNode)(``,!0)],14,_C))}}),EC={"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`}]]},DC=[`width`,`height`],OC=(0,t.defineComponent)({__name:`ColumnSettingsMenuIcon`,props:{name:{},size:{default:16}},setup(e){let n=e,r=(0,t.computed)(()=>EC[n.name]);return(n,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`svg`,{class:`mg-column-settings-menu__icon-svg`,xmlns:`http://www.w3.org/2000/svg`,width:e.size,height:e.size,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(r.value,([n,r],i)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(n),(0,t.mergeProps)({key:`${e.name}-${n}-${i}`},{ref_for:!0},r),null,16))),128))],8,DC))}}),kC={key:0,class:`mg-column-settings-menu__item-icon`},AC={class:`mg-column-settings-menu__item-label`},jC=(0,t.defineComponent)({__name:`ColumnSettingsMenuItem`,props:{label:{}},setup(e){return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{type:`button`,class:(0,t.normalizeClass)((0,t.unref)(ru)),role:`menuitem`},[n.$slots.icon?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,kC,[(0,t.renderSlot)(n.$slots,`icon`)])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`span`,AC,[(0,t.renderSlot)(n.$slots,`default`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.label),1)])])],2))}}),MC=[`aria-expanded`],NC={class:`mg-column-settings-menu__item-leading`},PC={class:`mg-column-settings-menu__item-icon`},FC=(0,t.defineComponent)({__name:`ColumnSettingsMenu`,props:{showDivider:{type:Boolean}},emits:[`column-settings`,`custom-action`,`reset`],setup(e,{emit:n}){let r=n,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,t.ref)(!1),o=(0,t.ref)(!1),s=(0,t.ref)(null),c=(0,t.ref)(null);function l(){r(`column-settings`)}function u(){let e=s.value?.querySelector(`.${su}`),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,t.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(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)((0,t.unref)(nu)),role:`menu`},[(0,t.createVNode)(jC,{label:`列设置`,onClick:l},{icon:(0,t.withCtx)(()=>[(0,t.createVNode)(OC,{name:`sliders-vertical`})]),_:1}),(0,t.createElementVNode)(`div`,{ref_key:`resetSubmenuRef`,ref:s,class:(0,t.normalizeClass)([(0,t.unref)(au),{"mg-column-settings-menu__submenu--open":a.value}]),onMouseenter:d,onMouseleave:f,onFocusin:d,onFocusout:p},[(0,t.createElementVNode)(`button`,{type:`button`,class:(0,t.normalizeClass)([(0,t.unref)(ru),(0,t.unref)(su)]),role:`menuitem`,"aria-haspopup":`menu`,"aria-expanded":a.value},[(0,t.createElementVNode)(`span`,NC,[(0,t.createElementVNode)(`span`,PC,[(0,t.createVNode)(OC,{name:`list-restart`})]),r[1]||=(0,t.createElementVNode)(`span`,{class:`mg-column-settings-menu__item-label`},`重置`,-1)]),r[2]||=(0,t.createElementVNode)(`svg`,{class:`mg-column-settings-menu__item-chevron`,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,t.createElementVNode)(`path`,{d:`m9 18 6-6-6-6`})],-1)],10,MC),(0,t.withDirectives)((0,t.createElementVNode)(`div`,{ref_key:`resetSubmenuPanelRef`,ref:c,class:(0,t.normalizeClass)([(0,t.unref)(ou),{"mg-column-settings-menu__submenu-panel--flip":o.value}]),role:`menu`},[((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(i,e=>(0,t.createVNode)(jC,{key:e.scope,label:e.label,onClick:t=>m(e.scope)},{icon:(0,t.withCtx)(()=>[(0,t.createVNode)(OC,{name:e.icon},null,8,[`name`])]),_:2},1032,[`label`,`onClick`])),64))],2),[[t.vShow,a.value]])],34),e.showDivider?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:(0,t.normalizeClass)((0,t.unref)(iu)),role:`separator`,"aria-orientation":`horizontal`},null,2)):(0,t.createCommentVNode)(``,!0),e.showDivider?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:1,class:`mg-column-settings-menu__custom`,onClick:r[0]||=e=>n.$emit(`custom-action`)},[(0,t.renderSlot)(n.$slots,`default`)])):(0,t.createCommentVNode)(``,!0)],2))}}),IC=[`disabled`,`aria-disabled`,`title`],LC=(0,t.defineComponent)({__name:`ColumnSettingsClearFiltersBar`,props:{gridApi:{},canClearAllFilters:{type:Boolean}},emits:[`change`],setup(e,{emit:n}){let r=e,i=n;function a(){r.gridApi.clearAllFilters(),i(`change`)}return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{type:`button`,class:(0,t.normalizeClass)((0,t.unref)(cu)),disabled:!e.canClearAllFilters,"aria-disabled":!e.canClearAllFilters,title:e.canClearAllFilters?void 0:`当前无筛选`,onClick:a},` 清除全部筛选 `,10,IC))}}),RC=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},zC=RC(LC,[[`__scopeId`,`data-v-1c8bd037`]]);function BC(e){let t=null,n=()=>{t!=null&&(clearTimeout(t),t=null)};return{applyInput(r,i){n();let a=e.getColumnFilterType(r),o=()=>{let t=Mv(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=Pv(t,e.getFilterModel());return e.setFilterModel(i),Av(t,i,r,e.getColumnDistinctKeys(t))},destroy(){n()}}}var VC=RC((0,t.defineComponent)({__name:`ColumnFilterPanelEmbed`,props:{colId:{},gridApi:{},filterSetValueMode:{default:Sa},filterSetDateLayoutMode:{default:Ca}},emits:[`change`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.ref)(null),o=null,s=null,c=BC({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 Av(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=cy({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,t.onMounted)(()=>{u()}),(0,t.onBeforeUnmount)(()=>{c.destroy(),d()}),(0,t.watch)(()=>r.colId,()=>{u()}),(0,t.watch)(()=>r.gridApi.getFilterModel(),()=>{f()},{deep:!0}),(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{ref_key:`hostRef`,ref:a,class:`mg-column-settings__filter-embed`},null,512))}}),[[`__scopeId`,`data-v-85b2c30c`]]);function HC(e){return e===null?`asc`:e===`asc`?`desc`:null}function UC(e,t,n){return t===null?uv(e,n):t===`asc`?cv(e,n):lv(e,n)}function WC(e,t,n){e.setSortModel(UC(t,n,e.getSortModel()))}function GC(e,t,n){let r=HC(n);return WC(e,t,r),r}function KC(e,t,n){return e.setColumnFixed(t,n)}function qC(e){return e===`asc`?`升序`:e===`desc`?`降序`:`无排序`}function JC(e){return e===`left`?`固定左侧`:e===`right`?`固定右侧`:`不固定`}var YC=`[magic-grid] ColumnSettings: at least one user column must remain visible.`;function XC(e){return e.filter(e=>mu(e.colId)&&Ma(e)).length}function ZC(e){return e.filter(e=>mu(e.colId)&&e.hidden).map(e=>e.colId)}function QC(e,t){if(!mu(e))return!1;let n=t.find(t=>t.colId===e);return!n||n.hidden?!1:XC(t)>1}function $C(e,t,n,r={}){let i=r.warn??(e=>console.warn(e));return!n&&!QC(t,e.getColumns())?(i(YC),!1):e.setColumnsHidden([t],!n)}function ew(e){let t=ZC(e.getColumns());return t.length!==0&&e.setColumnsHidden(t,!1)}var tw=[`data-col-id`],nw={class:`mg-column-settings__row-main`},rw=[`draggable`,`aria-disabled`,`title`],iw=[`title`],aw={key:1,class:`mg-column-settings__row-actions`},ow=[`aria-label`,`title`],sw=[`aria-expanded`,`aria-label`],cw=[`aria-label`],lw=[`aria-checked`,`aria-label`,`title`,`onClick`],uw=[`title`],dw=[`checked`,`aria-label`],fw=RC((0,t.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:Sa},filterSetDateLayoutMode:{default:Ca}},emits:[`dragstart`,`dragend`,`change`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.ref)(!1),o=[null,`left`,`right`];function s(){!r.gridApi||!r.row.sortable||(GC(r.gridApi,r.row.colId,r.row.sortDirection),i(`change`))}function c(e){!r.gridApi||r.row.fixed===e||KC(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(!$C(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(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([(0,t.unref)(du),{[(0,t.unref)(fu)]: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,t.createElementVNode)(`div`,nw,[e.showDragHandle?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:0,class:(0,t.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,rw)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`span`,{class:`mg-column-settings__row-label`,title:e.row.label},(0,t.toDisplayString)(e.row.label),9,iw),e.gridApi?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,aw,[e.showSort&&e.row.sortable?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:0,type:`button`,class:(0,t.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,t.unref)(qC)(e.row.sortDirection)}`,title:(0,t.unref)(qC)(e.row.sortDirection),onClick:s},(0,t.toDisplayString)(e.row.sortDirection===`asc`?`↑`:e.row.sortDirection===`desc`?`↓`:`↕`),11,ow)):(0,t.createCommentVNode)(``,!0),e.showFilter&&e.row.filterable?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:1,type:`button`,class:(0,t.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,t.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,t.createElementVNode)(`path`,{d:`M3 6h18`}),(0,t.createElementVNode)(`path`,{d:`M7 12h10`}),(0,t.createElementVNode)(`path`,{d:`M10 18h4`})],-1)]],10,sw)):(0,t.createCommentVNode)(``,!0),e.showPin?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:2,class:`mg-column-settings__pin-group`,role:`radiogroup`,"aria-label":`${e.row.label} 固定列`},[((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(o,n=>(0,t.createElementVNode)(`button`,{key:n??`none`,type:`button`,class:(0,t.normalizeClass)([`mg-column-settings__pin-button`,{"mg-column-settings__pin-button--active":e.row.fixed===n}]),role:`radio`,"aria-checked":e.row.fixed===n,"aria-label":(0,t.unref)(JC)(n),title:(0,t.unref)(JC)(n),onClick:e=>c(n)},(0,t.toDisplayString)(n===`left`?`左`:n===`right`?`右`:`中`),11,lw)),64))],8,cw)):(0,t.createCommentVNode)(``,!0),e.showVisibility?((0,t.openBlock)(),(0,t.createElementBlock)(`label`,{key:3,class:`mg-column-settings__visibility`,title:e.row.hidden?`显示列`:`隐藏列`},[(0,t.createElementVNode)(`input`,{type:`checkbox`,class:`mg-column-settings__visibility-input`,checked:!e.row.hidden,"aria-label":`${e.row.label} 显示列`,onChange:u},null,40,dw),r[2]||=(0,t.createElementVNode)(`span`,{class:`mg-column-settings__visibility-label`,"aria-hidden":`true`},`显示`,-1)],8,uw)):(0,t.createCommentVNode)(``,!0)])):(0,t.createCommentVNode)(``,!0)]),a.value&&e.gridApi&&e.row.filterable?((0,t.openBlock)(),(0,t.createBlock)(VC,{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,t.createCommentVNode)(``,!0)],10,tw))}}),[[`__scopeId`,`data-v-d7915c64`]]);function pw(e,t){return mu(e.colId)&&!e.hidden&&hu(e.fixed)===t}function mw(e,t){return e.filter(e=>pw(e,t))}function hw(e,t,n,r){let i=mw(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(pw(n,t)){let e=s[l];if(!e)return null;c.push(e),l+=1;continue}c.push(n.colId)}return c}function gw(e){let t=hw(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=Br(e.columns),a=e.columns;return!Yr({columns:a,colId:e.colId,toGlobalIndex:r,fixedGroups:i,allowCrossLaneColumnMove:!1})||!Zr({columns:a,colId:e.colId,toGlobalIndex:r,fixedGroups:i,allowCrossLaneColumnMove:!1})?null:r}function _w(e,t,n,r){let i=gw({columns:e.getColumns(),lane:t,colId:n,toDisplayIndex:r});return i!=null&&(e.moveColumn(n,i),!0)}var vw=[`aria-label`],yw={class:`mg-column-settings__rows`},bw=[`onDragover`,`onDrop`],xw=RC((0,t.defineComponent)({__name:`ColumnSettingsList`,props:{lane:{},rows:{},gridApi:{},showFilter:{type:Boolean},showVisibility:{type:Boolean}},emits:[`reorder`,`change`],setup(e,{emit:n}){let r={left:`固定左侧列`,center:`中间列`,right:`固定右侧列`},i=e,a=n,o=(0,t.ref)(null),s=(0,t.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}_w(i.gridApi,i.lane,n,e)&&(a(`reorder`),a(`change`)),d()}function d(){o.value=null,s.value=null}return(n,i)=>e.rows.length>0?((0,t.openBlock)(),(0,t.createElementBlock)(`section`,{key:0,class:(0,t.normalizeClass)([(0,t.unref)(lu),`mg-column-settings__group--${e.lane}`]),"aria-label":r[e.lane]},[(0,t.createElementVNode)(`div`,yw,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.rows,(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:n.colId,class:`mg-column-settings__row-host`,onDragover:e=>l(r,e),onDrop:e=>u(r,e)},[(0,t.createVNode)(fw,{row:n,"grid-api":e.gridApi,draggable:n.movable,"drag-over":s.value===r&&o.value!==n.colId,dragging:o.value===n.colId,"show-filter":e.showFilter,"show-visibility":e.showVisibility,onDragstart:e=>c(n.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,bw))),128))])],10,vw)):(0,t.createCommentVNode)(``,!0)}}),[[`__scopeId`,`data-v-69b1c1f5`]]),Sw={class:`mg-column-settings__groups`},Cw={class:`mg-column-settings__visible-lanes`},ww={class:`mg-column-settings__hidden-divider`},Tw={class:`mg-column-settings__hidden-divider-center`},Ew=[`aria-expanded`],Dw={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`},Ow={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`},kw={class:`mg-column-settings__hidden-rows`},Aw={class:`mg-column-settings__rows`},jw=RC((0,t.defineComponent)({__name:`ColumnSettingsGroupedLists`,props:{grouped:{},gridApi:{},showFilter:{type:Boolean},showVisibility:{type:Boolean,default:!0}},emits:[`reorder`,`change`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.ref)(!0);function o(){ew(r.gridApi)&&i(`change`)}return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Sw,[(0,t.createElementVNode)(`div`,Cw,[(0,t.createVNode)(xw,{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,t.createVNode)(xw,{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,t.createVNode)(xw,{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,t.openBlock)(),(0,t.createElementBlock)(`section`,{key:0,class:(0,t.normalizeClass)((0,t.unref)(pu))},[(0,t.createElementVNode)(`div`,ww,[r[10]||=(0,t.createElementVNode)(`span`,{class:`mg-column-settings__hidden-divider-line`,"aria-hidden":`true`},null,-1),(0,t.createElementVNode)(`div`,Tw,[(0,t.createElementVNode)(`button`,{type:`button`,class:`mg-column-settings__hidden-toggle`,"aria-expanded":a.value,onClick:r[6]||=e=>a.value=!a.value},[(0,t.createTextVNode)(` 隐藏 (`+(0,t.toDisplayString)(e.grouped.hidden.length)+`) `,1),a.value?((0,t.openBlock)(),(0,t.createElementBlock)(`svg`,Dw,[...r[8]||=[(0,t.createStaticVNode)(`<path d="m3 8 4-4 4 4" data-v-62756c32></path><path d="M7 4v16" data-v-62756c32></path><path d="M11 12h10" data-v-62756c32></path><path d="M11 16h7" data-v-62756c32></path><path d="M11 20h4" data-v-62756c32></path>`,5)]])):((0,t.openBlock)(),(0,t.createElementBlock)(`svg`,Ow,[...r[9]||=[(0,t.createStaticVNode)(`<path d="m3 16 4 4 4-4" data-v-62756c32></path><path d="M7 20V4" data-v-62756c32></path><path d="M11 4h10" data-v-62756c32></path><path d="M11 8h7" data-v-62756c32></path><path d="M11 12h4" data-v-62756c32></path>`,5)]]))],8,Ew),(0,t.createElementVNode)(`button`,{type:`button`,class:`mg-column-settings__hidden-show-all`,onClick:o},` 显示全部 `)]),r[11]||=(0,t.createElementVNode)(`span`,{class:`mg-column-settings__hidden-divider-line`,"aria-hidden":`true`},null,-1)]),(0,t.withDirectives)((0,t.createElementVNode)(`div`,kw,[(0,t.createElementVNode)(`h4`,{class:(0,t.normalizeClass)([(0,t.unref)(uu),`mg-column-settings__sr-only`])},` 已隐藏列 `,2),(0,t.createElementVNode)(`div`,Aw,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.grouped.hidden,n=>((0,t.openBlock)(),(0,t.createBlock)(fw,{key:n.colId,row:n,"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),[[t.vShow,a.value]])],2)):(0,t.createCommentVNode)(``,!0)]))}}),[[`__scopeId`,`data-v-62756c32`]]);function Mw(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 Nw(e){return e.map(Mw)}function Pw(e,t={}){return vu({columns:Nw(e.getColumns()),sortModel:e.getSortModel(),filterModel:e.getFilterModel(),isColumnFilterActive:t=>e.isColumnFilterActive(t),includeHidden:t.includeHidden})}function Fw(e,t={}){let n=Pw(e,t);return{rows:n,grouped:yu(n),canClearAllFilters:e.isAnyFilterActive()}}var Iw=[`sortChanged`,`filterChanged`,`columnMoved`,`columnPinned`,`columnHiddenChanged`];function Lw(e,t){let n=Iw.map(n=>e.on(n,t));return()=>{for(let e of n)e()}}var Rw={class:`mg-column-settings__header-leading`},zw=RC((0,t.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:n}){let r=e,i=n,a=(0,t.shallowRef)(Fw(r.gridApi)),o=null;function s(){a.value=Fw(r.gridApi)}function c(){l(),s(),o=Lw(r.gridApi,s)}function l(){o?.(),o=null}(0,t.watch)(()=>r.open,e=>{if(e){c();return}l()},{immediate:!0}),(0,t.watch)(()=>r.gridApi,()=>{r.open&&s()}),(0,t.onBeforeUnmount)(()=>{l()});function u(){s()}return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)((0,t.unref)(Xl)),role:`document`,"aria-label":`列设置`},[(0,t.createElementVNode)(`header`,{class:(0,t.normalizeClass)((0,t.unref)(Zl))},[(0,t.createElementVNode)(`div`,Rw,[r[1]||=(0,t.createStaticVNode)(`<div class="mg-column-settings__title-group" data-v-d618f6f4><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" data-v-d618f6f4><path d="M10 8h4" data-v-d618f6f4></path><path d="M12 21v-9" data-v-d618f6f4></path><path d="M12 8V3" data-v-d618f6f4></path><path d="M17 16h4" data-v-d618f6f4></path><path d="M19 12V3" data-v-d618f6f4></path><path d="M19 21v-5" data-v-d618f6f4></path><path d="M3 14h4" data-v-d618f6f4></path><path d="M5 10V3" data-v-d618f6f4></path><path d="M5 21v-7" data-v-d618f6f4></path></svg><h3 class="mg-column-settings__title" data-v-d618f6f4>列设置</h3></div>`,1),(0,t.createVNode)(zC,{"grid-api":e.gridApi,"can-clear-all-filters":a.value.canClearAllFilters,onChange:u},null,8,[`grid-api`,`can-clear-all-filters`])]),(0,t.createElementVNode)(`button`,{type:`button`,class:`mg-column-settings__close`,"aria-label":`关闭列设置`,onClick:r[0]||=e=>i(`close`)},` × `)],2),(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)((0,t.unref)(Ql))},[(0,t.createVNode)(jw,{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))}}),[[`__scopeId`,`data-v-d618f6f4`]]);function Bw(e){e.getSortModel().length!==0&&e.setSortModel([])}function Vw(e){e.clearAllFilters()}function Hw(e){e.resetColumnWidths()}function Uw(e){let t=e.getColumns(),n=eS(t);tS(t.map(e=>e.colId),n)||e.resetColumnOrder()}function Ww(e){for(let t of e.getColumns())!mu(t.colId)||t.fixed===null||e.setColumnFixed(t.colId,null)}function Gw(e,t){switch(t){case`sort`:Bw(e);break;case`filter`:Vw(e);break;case`width`:Hw(e);break;case`order`:Uw(e);break;case`pin`:Ww(e);break;case`all`:Bw(e),Vw(e),Hw(e),Uw(e),Ww(e)}}var Kw=8,qw=4,Jw=320,Yw=400,Xw=168;function Zw(e,t,n){let r=Math.min(Yw,Math.max(Jw,t)),i=e.right-r,a=e.bottom+qw;return a+n>window.innerHeight-Kw&&(a=e.top-n-qw),i=Math.max(Kw,Math.min(i,window.innerWidth-r-Kw)),a=Math.max(Kw,Math.min(a,window.innerHeight-n-Kw)),{left:i,top:a}}function Qw(e,t,n){let r=Math.max(Xw,t),i=e.left,a=e.bottom+qw;return a+n>window.innerHeight-Kw&&(a=e.top-n-qw),i=Math.max(Kw,Math.min(i,window.innerWidth-r-Kw)),a=Math.max(Kw,Math.min(a,window.innerHeight-n-Kw)),{left:i,top:a}}var $w=[`disabled`,`aria-expanded`,`aria-label`,`title`],eT=(0,t.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:n}){let r=e,i=n,a=(0,t.useSlots)(),o=(0,t.ref)(null),s=(0,t.ref)(null),c=(0,t.ref)(null),l=(0,t.ref)(!1),u=(0,t.ref)(r.open??r.defaultOpen??!1),d=(0,t.ref)(0),p=!1;function m(){let e=r.portalEl;return e instanceof HTMLElement&&e.isConnected?e:`body`}let h=(0,t.computed)(()=>m()),g=(0,t.computed)(()=>{let e=a.menu;return e?e().some(e=>e.type!==t.Comment):!1}),_=(0,t.computed)(()=>l.value||u.value),v=(0,t.computed)(()=>r.size?f(r.size):void 0);(0,t.watch)(()=>r.open,e=>{e!==void 0&&(u.value=e,e&&(l.value=!1))});function y(e){if(r.disabled&&e)return;let t=u.value;u.value=e,i(`update:open`,e),e?(l.value=!1,i(`open`),p=!0,queueMicrotask(()=>{p=!1})):t&&i(`close`)}function b(e){r.disabled&&e||(l.value=e,e&&(p=!0,queueMicrotask(()=>{p=!1})))}function ee(){if(!r.disabled){if(u.value){y(!1);return}b(!l.value)}}function x(){y(!0)}function S(e){Gw(r.gridApi,e),w()}function C(){u.value&&y(!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,Qw)}function O(){E(c.value,Zw)}function k(){l.value&&D(),u.value&&O()}(0,t.watch)(l,async e=>{e&&(await(0,t.nextTick)(),D())}),(0,t.watch)(u,async e=>{e&&(await(0,t.nextTick)(),O())}),(0,t.watch)(()=>[r.portalEl,r.size],()=>{T(),d.value+=1});function A(e){if(e.key===`Escape`){if(u.value){e.preventDefault(),e.stopPropagation(),C();return}l.value&&(e.preventDefault(),e.stopPropagation(),w())}}function j(e){if(!l.value&&!u.value||p||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,t.onMounted)(()=>{document.addEventListener(`keydown`,A,!0),document.addEventListener(`pointerdown`,j,!0),window.addEventListener(`resize`,k),window.addEventListener(`scroll`,k,!0)}),(0,t.onBeforeUnmount)(()=>{document.removeEventListener(`keydown`,A,!0),document.removeEventListener(`pointerdown`,j,!0),window.removeEventListener(`resize`,k),window.removeEventListener(`scroll`,k,!0)}),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)((0,t.unref)($l)),style:(0,t.normalizeStyle)(v.value)},[(0,t.createElementVNode)(`button`,{ref_key:`triggerRef`,ref:o,type:`button`,class:`mg-column-settings-button__trigger`,disabled:e.disabled,"aria-haspopup":`menu`,"aria-expanded":_.value,"aria-label":e.label??`表格设置`,title:e.label??`表格设置`,onClick:ee},[...r[0]||=[(0,t.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,t.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,t.createElementVNode)(`circle`,{cx:`12`,cy:`12`,r:`3`})],-1)]],8,$w),((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{key:d.value,to:h.value},[l.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:(0,t.normalizeClass)((0,t.unref)(eu))},[(0,t.createElementVNode)(`div`,{ref_key:`menuRef`,ref:s,class:(0,t.normalizeClass)((0,t.unref)(tu))},[(0,t.createVNode)(FC,{"show-divider":g.value,onColumnSettings:x,onCustomAction:w,onReset:S},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`menu`)]),_:3},8,[`show-divider`])],2)],2)):(0,t.createCommentVNode)(``,!0),u.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:1,class:(0,t.normalizeClass)((0,t.unref)(eu))},[(0,t.createElementVNode)(`div`,{ref_key:`panelRef`,ref:c,class:(0,t.normalizeClass)((0,t.unref)(tu)),role:`dialog`,"aria-modal":`false`,"aria-label":`列设置面板`},[(0,t.createVNode)(zw,{"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,t.createCommentVNode)(``,!0)],8,[`to`]))],6))}}),tT={input:{deferEnterCommit:!1,commitOnChange:!1},overlay:{deferEnterCommit:!0,commitOnChange:!0}};function nT(e,n){let r=tT[n.strategy??`input`],i=n.formatValue??(e=>String(e??``)),a=n.commitOnChange??r.commitOnChange;(0,t.onMounted)(()=>{e.setGetValue?.(()=>i(n.getValue())),e.setKeyboardPolicy?.({deferEnterCommit:r.deferEnterCommit}),e.autoFocus!==!1&&n.onStart?.()});function o(){e.stopEditing(!0)}function s(){e.stopEditing(!1)}function c(){a&&o()}function l(e){if(e instanceof KeyboardEvent){if(e.key===`Enter`){r.deferEnterCommit&&(0,t.nextTick)(o);return}e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),s())}}return{onKeydown:l,onChange:c,commit:o,cancel:s}}exports.BUILTIN_CELL_EDITOR_NAMES=E,exports.COLUMN_DRAG_THRESHOLD_PX=li,exports.ColumnSettingsButton=eT,exports.ColumnSettingsMenuIcon=OC,exports.ColumnSettingsMenuItem=jC,exports.ColumnSettingsPanel=zw,exports.DEFAULT_CELL_EDITOR_MODE=Ea,exports.DEFAULT_INDEX_COLUMN_START=Pe,exports.DEFAULT_SELECTION_SELECT_ALL_LABEL=Ue,exports.DEFAULT_STATUS_BAR_RANGE_AGGREGATION_PRECISION=qS,exports.INDEX_COLUMN_ID=Me,exports.INDEX_COLUMN_MIN_WIDTH=Ne,exports.INLINE_CHECKBOX_CLASS=O,exports.MagicGrid=TC,exports.RowMutationPersistError=pl,exports.SELECTION_COLUMN_DEFAULT_WIDTH=He,exports.SELECTION_COLUMN_ID=Be,exports.SELECTION_COLUMN_MIN_WIDTH=Ve,exports.SORT_AFTER_MOVE_GUARD_MS=ui,exports.VueCellEditorHost=uC,exports.checkboxCellEditor=ne,exports.coerceCheckboxEditorValue=A,exports.createSlotCellEditor=fC,exports.createVueCellEditor=dC,exports.evaluateGridAcceptance=FS,exports.formatCheckboxEditorRawValue=j,exports.getCellEditor=oe,exports.getGridAcceptanceThresholds=PS,exports.getGridSetDataLimit=NS,exports.getRegisteredCellEditorNames=ce,exports.hasCellEditor=se,exports.isBuiltInCellEditor=D,exports.isInlineEditorColumn=ka,exports.isSyntheticRow=Sr,exports.numberCellEditor=te,exports.readCheckboxControlValue=M,exports.registerCellEditor=ie,exports.registerEditorSurfaceSelectors=ee,exports.resetEditorSurfaceSelectors=x,exports.resolveCellEditorMode=Da,exports.resolveColumnCellEditorMode=Oa,exports.textCellEditor=N,exports.toBusinessRowId=Cr,exports.toBusinessRowIdFromInternal=Tr,exports.toBusinessRowIdsFromInternal=Er,exports.toggleHeaderSort=Ey,exports.unregisterCellEditor=ae,exports.useCellEditor=nT;
8
+ `){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 bg(e){return e.length===1&&(e[0]?.length??0)===1}var xg=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=yg(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 bg(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=Y(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(!q(o,e.rowKind)){n.push(``);continue}let s=this.deps.columnModel.getColumnById(o);if(!s){n.push(``);continue}if(Js(e,s,this.deps.columnModel,a)){n.push(``);continue}let c={rowId:e.id,rowIndex:t,colId:o,value:U(e,s),data:e.data,formattedValue:``,stopEditing:async()=>{},cancelCommit:()=>{},getEditPhase:()=>`idle`,validate:async()=>({valid:!0})};n.push(fg(t,e,s,r,c,i.processCellForClipboard,this.deps.getCellClipboardDisplayContext?.()))}u.push(_g(n))}u.length>0&&o.push(u)}return vg(o)}resolvePasteAnchor(){let e=this.deps.getCellRangeOperationContext().displayedColIds,t=this.deps.getCellRangeService(),n=t?.getRanges()??[],r=this.deps.cellFocusService.getFocusedCell();if(r&&!F(r)){let t=this.deps.rowModel.getRow(r.rowIndex);if(q(r.colId,t?.rowKind)){let t={rowIndex:r.rowIndex,colId:r.colId};if(n.length===0||n.some(t=>{let n=Y(t,e);return n!=null&&zs(r.rowIndex,r.colId,n,e)}))return t}}if(n.length===0)return null;let i=Y(n[0],e);if(!i)return null;let a=t?.getAnchor();return a&&zs(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=Y(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=Y(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(!As(t,r.rowKind))return{status:`blocked`,showBlockedVisual:!0};let a=this.deps.columnModel.getColumnById(t);if(!a||!H(a,r,this.deps.getCellDisableContext())||ig(a,r.data))return{status:`blocked`,showBlockedVisual:!0};let o=U(r,a),s=await hg(a,{rowId:n,rowIndex:e,colId:t,value:o,data:r.data,formattedValue:String(o??``),stopEditing:async()=>{},cancelCommit:()=>{},getEditPhase:()=>`idle`,validate:async()=>({valid:!0})},i,o,{rowIndex:e,rowNode:r,indexColumnOptions:this.resolveIndexColumnDisplayOptions(),processCellFromClipboard:this.deps.getCellClipboardOptions().processCellFromClipboard});return s.status===`blocked`?s:(this.deps.applyTransaction({update:[r.data]}),this.deps.eventBus.emit(`cellValueChanged`,{rowId:n,colId:t,oldValue:o,newValue:s.parsed,rowNode:r}),{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}typeof navigator<`u`&&navigator.clipboard?.writeText&&await navigator.clipboard.writeText(e)}async readClipboard(){if(this.deps.readFromClipboard)return this.deps.readFromClipboard();if(typeof navigator<`u`&&navigator.clipboard?.readText)return navigator.clipboard.readText();throw Error(`Clipboard read unavailable`)}};function Sg(e){return typeof e==`number`&&Number.isFinite(e)}function Cg(e,t){return`${e}:${t}`}function wg(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 Tg(e,t){let n=new Set;return wg(e,t,(e,t)=>{n.add(Cg(e,t))}),n}function Eg(e){let{fixedAnchor:t,pointer:n,sourceRange:r,direction:i,displayedColIds:a}=e;if(a.indexOf(n.colId)<0)return null;let o=Y(J(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 Dg(e,t,n,r){let i=[];for(let n=e.top;n<=e.bottom;n+=1)i.push(r(n,t));return i}function Og(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 kg(e,t){return e>t.bottom?e-t.bottom:e<t.top?e-t.top:null}function Ag(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 jg(e){let{rowIndex:t,colId:n,sourceRange:r,displayedColIds:i,getSourceValue:a,setFillValue:o,fillStrategy:s=rs,rowNode:c,column:l,allowedDirection:u}=e,d=i.indexOf(n);if(d<0)return null;let f=kg(t,r),p=Ag(d,r,i),m=null,h=0,g=[];if(f!=null&&f!==0&&(u===`y`||u===`xy`)?(m=`y`,h=f,g=Dg(r,n,i,a)):p!=null&&p!==0&&(u===`x`||u===`xy`)&&(m=`x`,h=p,g=Og(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}):Ng(g,h,s)}function Mg(e,t){return t>0?e[e.length-1]:e[0]}function Ng(e,t,n){if(e.length===0)return null;if(n===`copy`)return Mg(e,t);if(e.every(Sg)){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 Mg(e,t)}function Pg(e,t,n){let r=Tg(t,n),i=e?Tg(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 Fg(e,t,n){return Pg(t,e,n)}var Ig=class{deps;constructor(e){this.deps=e}commitFillRange(e){let t=0,n=new Set,r=new Set;for(let i of e.removed)if(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(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}applyFillDiff(e){return this.commitFillRange({...e,removed:[]})}writeClearCell(e){let t=this.deps.rowModel.getRow(e.rowIndex),n=this.deps.columnModel.getColumnById(e.colId);return!t||!n||!As(e.colId,t.rowKind)||!H(n,t,this.deps.getCellDisableContext())?!1:this.writeCellValue(t.id,e.rowIndex,n,t,``)}writeFillCell(e,t,n,r){let i=this.deps.rowModel.getRow(e.rowIndex),a=this.deps.columnModel.getColumnById(e.colId);if(!i||!a||!As(e.colId,i.rowKind)||!H(a,i,this.deps.getCellDisableContext()))return!1;let o=jg({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)}writeCellValue(e,t,n,r,i){let a=U(r,n);return Object.is(a,i)||!zn(n,{rowId:e,rowIndex:t,colId:n.colId,value:a,data:r.data,formattedValue:String(a??``),stopEditing:async()=>{},cancelCommit:()=>{},getEditPhase:()=>`idle`,validate:async()=>({valid:!0})},i)?!1:(this.deps.applyTransaction({update:[r.data]}),this.deps.eventBus.emit(`cellValueChanged`,{rowId:e,colId:n.colId,oldValue:a,newValue:i,rowNode:r}),!0)}},Lg=class{deps;constructor(e){this.deps=e}clearRanges(e,t){let n=t.displayedColIds,r=0,i=new Set,a=new Set;for(let t of e){let e=Y(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)zs(t,s,e,n)&&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}writeClearCell(e,t,n,r){if(!As(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,``)||!zn(i,{rowId:n,rowIndex:e,colId:t,value:a,data:r.data,formattedValue:String(a??``),stopEditing:async()=>{},cancelCommit:()=>{},getEditPhase:()=>`idle`,validate:async()=>({valid:!0})},``)?!1:(this.deps.applyTransaction({update:[r.data]}),this.deps.eventBus.emit(`cellValueChanged`,{rowId:n,colId:t,oldValue:a,newValue:``,rowNode:r}),!0)}};function Rg(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 zg(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=lr(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 Bg(e){let t=zg(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===``?null:t.valueFormatted}function Vg(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 Hg(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 Ug(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 Wg(e,t){return e.getColumns().findIndex(e=>e.colId===t)}function Gg(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:Wg(e,r.dataset.colId)}:null}function Kg(e){return Q(e)?.closest(`.mg-header-cell__column-handle`)??null}function qg(e){return Q(e)?.closest(`.mg-floating-filter-button`)??null}function Jg(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:Wg(e,r.dataset.colId)}:null}function Yg(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 Xg(e){return Q(e)?.closest(`.mg-header-cell[data-col-id]`)??null}function Zg(e){return e.querySelector(`.mg-root`)??e}function Qg(e){let t=Q(e);return t?t.closest(Ba):null}function $g(e){return e.matches(`.mg-cell__text:not([hidden])`)?`cell`:e.matches(`.mg-header-cell__text`)?`header`:e.matches(`.mg-footer-cell__text:not([hidden])`)?`footer`:null}function e_(e){let t=Q(e);return t?t.closest(za):null}function t_(e,t,n){let r=$g(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 n_=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=Qg(e.target);if(!t)return;let n=t_(t,this.deps.columnModel,this.deps.rowModel);!n||!this.canShowTooltip(n)||this.queueShow(e,n)};handleStatusBarPointerOver=e=>{if(e.pointerType===`touch`)return;let t=e_(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,Qg(e.target))};handleStatusBarPointerOut=e=>{this.handleAnchorPointerOut(e,e_(e.target))};handleAnchorPointerOut(e,t){if(!t)return;let n=Qg(e.relatedTarget),r=e_(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 Ka({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 Ug(e.anchorEl);if(!e.colId)return null;let t=this.deps.columnModel.getColumnById(e.colId);if(!t)return null;if(e.location===`header`)return Vg({column:t,headerTooltip:t.headerTooltip,headerTooltipValueGetter:t.headerTooltipValueGetter});if(e.location===`footer`)return Hg({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?Bg({rowNode:n,column:t,tooltipField:t.tooltipField,tooltipValueGetter:t.tooltipValueGetter,indexColumnOptions:this.deps.getIndexColumnOptions(),location:`cell`}):null}clearShowTimer(){this.showTimer!=null&&(clearTimeout(this.showTimer),this.showTimer=null)}},r_=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 i_(e){let{viewportPadding:t}=Wh(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 a_=`mg-tooltip__text`,o_=`mg-tooltip__content`,s_=class{popupEl=null;textEl=null;contentEl=null;componentHost=new r_;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(`${Va}--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=Va,e.hidden=!0,e.setAttribute(`role`,`tooltip`);let t=document.createElement(`div`);t.className=a_;let n=document.createElement(`div`);return n.className=o_,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=i_({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}},c_=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 l_(e){return e.overlayType===`loading`?{blockEvents:!0,masked:!0}:e.overlayInteraction?{blockEvents:!0,masked:!1}:{blockEvents:!1,masked:!1}}function u_(e,t,n){let{blockEvents:r,masked:i}=l_(n),a=`${Cu}--interactive`;e.classList.toggle(a,r&&!i),e.classList.toggle(Tu,i);let o=r?`auto`:`none`;e.style.pointerEvents=o,t.style.pointerEvents=o}function d_(){let e=document.createElement(`div`);e.className=Cu,e.hidden=!0,e.setAttribute(`aria-hidden`,`true`);let t=document.createElement(`div`);t.className=wu;let n=document.createElement(`div`);return n.className=`mg-overlay__mount`,t.appendChild(n),e.appendChild(t),{overlayEl:e,wrapperEl:t,contentEl:n}}var f_=new Set([`span`,`div`,`p`,`svg`,`strong`,`em`,`b`,`i`]);function p_(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 f_.has(i)?r.cloneNode(!0):r.textContent?.trim()??t}function m_(e){switch(e){case`loading`:return Du;case`noRows`:return Ou;case`noMatchingRows`:return ku;default:return e}}function h_(e,t={}){let n=document.createElement(`div`);n.className=`${Eu} ${m_(e)}`;let r=t.overlayText??ju(e);if(t.template){let e=p_(t.template);return typeof e==`string`?n.textContent=e:n.appendChild(e),n}if(e===`loading`){let e=document.createElement(`span`);e.className=Au,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 g_=class{deps;visibleType=null;componentHost=new c_;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){u_(this.deps.overlayEl,this.deps.wrapperEl,{overlayType:e,overlayInteraction:this.deps.getOverlayInteraction()})}renderContent(e,t){let n={overlayType:e,api:this.deps.getApi(),overlayText:ju(e)};if(t.component){this.componentHost.mount(this.deps.contentEl,n,t.component);return}this.componentHost.destroy(),this.deps.contentEl.replaceChildren(h_(e,{template:t.template,overlayText:n.overlayText}))}};function __(e){return e.filter(e=>ot(e.rowKind)===`data`).length}function v_(e){let t=t=>Pu(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`)?`noRows`:e.sourceRowCount>0&&e.displayDataRowCount===0&&e.isAnyFilterActive&&!t(`noMatchingRows`)?`noMatchingRows`:null}function y_(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 b_(e,t){let n=y_(e,t);return n.component?n:t.overlayComponent?{overlayType:e,component:t.overlayComponent,componentParams:t.overlayComponentParams}:n}var x_=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?b_(this.currentType,this.deps.getResolvedOptions()):null}buildResolveInput(){let e=this.deps.getResolvedOptions();return{loading:e.loading,suppressOverlays:e.suppressOverlays,sourceRowCount:this.deps.getSourceRowCount(),displayDataRowCount:__(this.deps.getDisplayRows()),isAnyFilterActive:this.deps.isAnyFilterActive(),rowDataReady:this.rowDataReady,userForcedNoRows:this.userForcedNoRows}}updateOverlay(){if(this.destroyed)return;let e=v_(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)}};function S_(e={}){let t=`autoSizeStrategy`in e&&e.autoSizeStrategy!==void 0?e.autoSizeStrategy??null:null;return{skipHeaderOnAutoSize:e.skipHeaderOnAutoSize??!1,autoSizePadding:e.autoSizePadding??16,autoSizeStrategy:t}}function C_(e,t,n){let r={rowId:Cr(t,e.deps.rowModel.getRowKey()),rowIndex:t.rowIndex,colId:n.colId,value:U(t,n),data:t.data,formattedValue:lr(t,n),stopEditing:(t=!0)=>e.stopEditing(!t),cancelCommit:()=>e.cancelCommit(),getEditPhase:()=>e.getEditSessionPhase()};return{...r,validate:async t=>{let i=e.deps.rowEditingService.isEditing()?e.deps.rowEditingService.getEditorValue(n.colId):e.deps.editingService.getEditorValue();if(i==null)return{valid:!0};let a={...r,validate:async()=>({valid:!0})},o;try{if(o=Rn(i,n,a),An(o))return{valid:!1,errors:[`Invalid value`]}}catch(e){return{valid:!1,errors:[e instanceof Error?e.message:`Invalid value`]}}return sr(n,a,o,t?.signal)}}}async function w_(t,n,r={}){let i=r.signal??new AbortController().signal,a=r.invalidEditValueMode??`block`;e.l(i);let o={...t.data},s=[];for(let e of n){let t=Rn(e.rawValue,e.column,e.editorParams);if(An(t))return{ok:!1,failedColId:e.column.colId,revert:a===`revert`};s.push({column:e.column,editorParams:e.editorParams,oldValue:e.oldValue,parsedValue:t})}let c=[];try{let e=await Promise.all(s.map(async e=>{let t=await ar(e.column,e.editorParams,e.parsedValue,i);return{colId:e.column.colId,errors:t}}));for(let t of e)t.errors&&c.push({colId:t.colId,errors:t.errors})}catch(t){throw e.c(t),t}let l;if(c.length>0)if(a===`keep`)l={cellErrors:c};else{let e=c[0];return{ok:!1,failedColId:e.colId,errors:e.errors,cellErrors:c,revert:a===`revert`}}let u=new Map(s.map(e=>[e.column.colId,e.parsedValue]));try{let e=await or(r.rowValidator,{rowId:r.rowKey?Cr(t,r.rowKey):t.id,rowIndex:t.rowIndex,data:t.data,draftValues:u,signal:i});if(e){let t=ir(s.map(e=>e.column.colId),e.colIds);if(a===`keep`)l={...l,rowErrors:e.errors,rowErrorColIds:t};else return{ok:!1,failedColId:t[0]??s[0]?.column.colId??``,rowErrors:e.errors,rowErrorColIds:t,revert:a===`revert`}}}catch(t){throw e.c(t),t}let d=[];try{for(let n of s){e.l(i);let{column:r,editorParams:s,oldValue:c,parsedValue:l}=n;if(c!==l){if(!await Bn(r,s,l,i))return Object.assign(t.data,o),{ok:!1,failedColId:r.colId,revert:a===`revert`};d.push({colId:r.colId,oldValue:c,newValue:l})}}}catch(n){throw Object.assign(t.data,o),e.c(n),n}return l?{ok:!0,changes:d,validationWarnings:l}:{ok:!0,changes:d}}async function T_(t,n,r,i,a){try{let e=await w_(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()});if(!e.ok)return e;if(e.changes.length>0){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});t.deps.syncPinnedRows()}return{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}}catch(t){if(e.c(t))return{ok:`aborted`};throw t}}async function E_(t,n,r,i,a,o){if(!r.prop)return{ok:!0};try{let e=Rn(i,r,a);if(An(e))return{ok:!1};let s=a.value,c=await ar(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 Bn(r,a,e,o.signal)?(t.deps.applyTransaction({update:[n.data]}),t.deps.eventBus.emit(`cellValueChanged`,{rowId:n.id,colId:r.colId,oldValue:s,newValue:e,rowNode:n}),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 D_(e,t,n){for(let r of t){let t=e.find(e=>e.colId===r);t?t.errors=[...new Set([...t.errors,...n])]:e.push({colId:r,errors:[...n]})}}async function O_(e,t,n={}){let r=n.signal??new AbortController().signal,i=[];for(let n of t){if(!n.column.cellValidator)continue;let t=U(e,n.column),a=await ar(n.column,n.editorParams,t,r);a&&i.push({colId:n.column.colId,errors:a})}if(n.rowValidator&&t.length>0){let a=new Map(t.map(t=>[t.column.colId,U(e,t.column)])),o=await or(n.rowValidator,{rowId:n.rowKey?Cr(e,n.rowKey):e.id,rowIndex:e.rowIndex,data:e.data,draftValues:a,signal:r});o&&D_(i,ir(t.map(e=>e.column.colId),o.colIds),o.errors)}return i}async function k_(e,t={}){let n=t.signal??new AbortController().signal,r=t.showFeedback!==!1,i=M_(e.rowModel,t.rowIds),a=[],o=await Promise.all(i.map(async t=>({rowNode:t,invalidCells:await O_(t,N_(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 A_(e,t){let n=t.signal??new AbortController().signal,r=t.showFeedback!==!1,i=[];for(let{rowId:a,colId:o}of t.cells){let t=X(a),s=e.rowModel.getRowById(t),c=r?j_(e.mountEl,t):null;if(!s){r&&e.validationFeedback.clearRowCell(t,c,o);continue}let l=e.columnModel.getColumnById(o);if(!l||!H(l,s,e.getCellDisableContext?.())||!l.cellValidator){r&&e.validationFeedback.clearRowCell(t,c,o);continue}let u=await ar(l,e.createEditorParams(s,l),U(s,l),n);u?(i.push({rowId:t,rowIndex:s.rowIndex,colId:o,errors:u}),r&&e.validationFeedback.setRowCellInvalid(t,c,{colId:o,errors:u})):r&&e.validationFeedback.clearRowCell(t,c,o)}return{valid:i.length===0,cellErrors:i}}function j_(e,t){return e.querySelector(`.mg-row[data-row-id="${t}"]`)}function M_(e,t){let n=fl(t);if(n)return n.map(t=>e.getRowById(t)).filter(e=>e!=null);let r=[],i=e.getRowCount();for(let t=0;t<i;t++){let n=e.getRow(t);n&&r.push(n)}return r}function N_(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 P_(e){return e.invalidEditValueMode??`block`}function $(e){let t=e.mountEl.querySelector(`.mg-header-row`);t&&e.validationFeedback.syncHeaderDom(t,e.columnModel.getColumns())}function F_(e){e.deps.validationFeedback.syncDom(e.deps.mountEl),$(e.deps)}function I_(e,t){let n=t?.rowIds;if(n?.length){for(let t of n){let n=e.deps.mountEl.querySelector(`.mg-row[data-row-id="${t}"]`);e.deps.validationFeedback.clearRow(X(t),n)}$(e.deps);return}e.deps.validationFeedback.clear(e.deps.mountEl),$(e.deps)}function L_(e,t){I_(e,{rowIds:t.rowIds})}function R_(e,t){for(let{rowId:n,colId:r}of t.cells){let t=e.deps.mountEl.querySelector(`.mg-row[data-row-id="${n}"]`);e.deps.validationFeedback.clearRowCell(X(n),t,r)}$(e.deps)}async function z_(e,t){let n=await k_({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(),F_(e),n}async function B_(e,t){return z_(e,{rowIds:t.rowIds,signal:t.signal,showFeedback:t.showFeedback})}async function V_(e,t){let n=await A_({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(),F_(e),n}function H_(e,t){return e.columnModel.getColumns().filter(n=>H(n,t,e.getCellDisableContext())).map(e=>e.colId)}function U_(e,t,n){return e.rowValidator&&Fn(e.editBehavior)?H_(e,t):n}function W_(e,t,n){queueMicrotask(()=>{e.deps.isDestroyed()||e.isEditing()||G_(e,t,n)})}async function G_(e,t,n){if(e.deps.isDestroyed()||e.isEditing())return;let r=e.deps.rowModel.getRowById(t);if(!r)return;let i=e.deps.mountEl.querySelector(`.mg-row[data-row-id="${t}"]`),a=U_(e.deps,r,n);if(a.length===0){e.deps.validationFeedback.clearRow(t,i),$(e.deps);return}let o=a.map(t=>{let n=e.deps.columnModel.getColumnById(t);return n?{column:n,editorParams:e.createCellEditorParams(r,n)}:null}).filter(e=>e!=null),s=[];try{s=await O_(r,o,{rowValidator:Fn(e.deps.editBehavior)?e.deps.rowValidator:void 0,rowKey:e.deps.rowModel.getRowKey()})}catch{return}if(Fn(e.deps.editBehavior)){s.length>0?e.deps.validationFeedback.setRowInvalid(t,i,s):e.deps.validationFeedback.clearRow(X(t),i),$(e.deps);return}for(let n of a){let r=s.find(e=>e.colId===n);r?e.deps.validationFeedback.setRowCellInvalid(t,i,r):e.deps.validationFeedback.clearRowCell(X(t),i,n)}$(e.deps)}function K_(e,t,n){e.eventBus.emit(`cellValidationFailed`,{rowId:t.rowId,colId:t.colId,rowIndex:t.rowIndex,errors:n,mode:`keep`})}function q_(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`})}function J_(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 Y_(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}),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)})):(n.rowErrorColIds?.length?n.rowErrorColIds:[n.failedColId]).map(t=>({colId:t,errors:n.rowErrors??n.errors??[`Validation failed`],editorMountEl:e.deps.rowEditingService.getEditorMountEl(t)}));e.deps.validationFeedback.showCellsInvalid({rowId:t.rowId,rowElement:t.rowElement,cells:r}),$(e.deps)}}function X_(e,t){for(let n of t.cells)e.deps.eventBus.emit(`cellEditingStopped`,{rowId:t.rowId,colId:n.colId,rowIndex:t.rowIndex,committed:n.committed,oldValue:n.oldValue,newValue:n.newValue});let n=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:n}),t.committed&&n&&n.length>0){let r=e.deps.rowModel.getRowById(t.rowId);r&&e.deps.eventBus.emit(`rowValueChanged`,{rowId:t.rowId,rowIndex:t.rowIndex,rowNode:r,data:r.data,changes:n})}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})}),W_(e.validationCtx(),t.rowId,t.cells.map(e=>e.colId))}function Z_(e,t){e.deps.eventBus.emit(`cellEditingStopped`,{rowId:t.rowId,colId:t.colId,rowIndex:t.rowIndex,committed:t.committed,oldValue:t.oldValue,newValue:t.newValue}),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})}),W_(e.validationCtx(),t.rowId,[t.colId])}function Q_(e,t){if(e.deps.isDestroyed())return;let n=e.deps.rowModel.getRow(t.rowIndex);if(!n)return;let r=e.deps.columnModel.getColumnById(t.colKey);if(!r||I(r.colId)||L(r.colId)||ka(r)||!H(r,n,e.deps.getCellDisableContext()))return;let i=e.deps.getColIndex(r.colId);e.deps.cellFocusService.setFocusedCell({rowId:n.id,colId:r.colId,rowIndex:t.rowIndex,colIndex:i}),e.deps.applyFocusVisuals(),e.deps.ensureIndexVisible(t.rowIndex),e.deps.ensureColumnVisible(i),e.deps.redrawImmediately();let a=e.deps.mountEl.querySelector(`.mg-row[data-row-id="${n.id}"]`);a&&$_(e,{rowId:n.id,colId:r.colId,rowIndex:t.rowIndex,rowNode:n,rowElement:a})}function $_(e,t){if(Fn(e.deps.editBehavior)){ev(e,t);return}tv(e,t)}function ev(e,t){if(e.deps.rowEditingService.isCommitting())return;if(e.deps.editingService.isEditing()){e.deps.editingService.stopEditing(!0).then(()=>{e.deps.editingService.isEditing()||ev(e,t)});return}if(e.deps.rowEditingService.isEditing()){if(e.deps.rowEditingService.getEditingRow()?.rowId===t.rowId)return;e.deps.rowEditingService.stopRowEditing(!0).then(n=>{n?.committed&&!e.deps.rowEditingService.isEditing()&&ev(e,t)});return}let n=e.deps.columnModel.getColumns().filter(n=>H(n,t.rowNode,e.deps.getCellDisableContext())&&!ka(n)).map(n=>{let r=e.createCellEditorParams(t.rowNode,n);return{column:n,params:{rowId:r.rowId,rowIndex:r.rowIndex,colId:r.colId,value:r.value,data:r.data,formattedValue:r.formattedValue,validate:r.validate},oldValue:r.value}});if(n.length===0)return;let r=e.validationCtx();if(e.deps.rowEditingService.startRowEditing({rowElement:t.rowElement,rowNode:t.rowNode,columns:n,focusColId:t.colId,onCommitRow:(r,i)=>T_(e.commitCtx(),t.rowNode,n,r,i),onFocusColChange:n=>{let r=e.deps.getColIndex(n);e.deps.cellFocusService.setFocusedCell({rowId:t.rowId,colId:n,rowIndex:t.rowIndex,colIndex:r}),e.deps.applyFocusVisuals()},onRowEditingStopped:t=>{X_(e.lifecycleCtx(),t)},onCommitLifecycle:{onStarted:()=>{e.deps.eventBus.emit(`rowCommitStarted`,{rowId:t.rowId,rowIndex:t.rowIndex,editableColIds:n.map(e=>e.column.colId)})},onFinished:n=>{e.deps.eventBus.emit(`rowCommitFinished`,{rowId:t.rowId,rowIndex:t.rowIndex,committed:n.ok===!0,aborted:n.ok===`aborted`}),n.ok===!1&&n.failedColId?Y_(r,t,n):n.ok===!0&&n.validationWarnings&&q_(e.deps,t,n.validationWarnings)},onAborted:()=>{e.deps.eventBus.emit(`editCommitAborted`,{rowId:t.rowId,rowIndex:t.rowIndex})}}})){e.deps.eventBus.emit(`rowEditingStarted`,{rowId:t.rowId,rowIndex:t.rowIndex,editableColIds:n.map(e=>e.column.colId)});for(let r of n)e.deps.eventBus.emit(`cellEditingStarted`,{rowId:t.rowId,colId:r.column.colId,rowIndex:t.rowIndex,value:r.oldValue});e.deps.applyFocusVisuals(),e.deps.syncPinnedRows()}}function tv(e,t){if(e.deps.rowEditingService.isCommitting())return;if(e.deps.rowEditingService.isEditing()){e.deps.rowEditingService.stopRowEditing(!0).then(n=>{n?.committed&&!e.deps.rowEditingService.isEditing()&&tv(e,t)});return}let n=e.deps.columnModel.getColumnById(t.colId);if(!n||!H(n,t.rowNode,e.deps.getCellDisableContext())||ka(n))return;let r=e.createCellEditorParams(t.rowNode,n),i=r.formattedValue,a=r.value,o=()=>{e.deps.validationFeedback.clearRowCell(t.rowId,t.rowElement??null,t.colId),$(e.deps)},s=e.validationCtx();e.deps.editingService.startEditing(t.rowElement,t.rowNode,n,i,a,{editorParams:r,onCommit:(i,a)=>E_(e.commitCtx(),t.rowNode,n,i,r,a),onCancel:()=>void 0,onEditingInput:o,onEditingStopped:t=>{Z_(e.lifecycleCtx(),t)},onTab:t=>{e.deps.onTabChainEdit(t)},onCommitLifecycle:{onStarted:()=>{o(),e.deps.eventBus.emit(`cellCommitStarted`,{rowId:t.rowId,colId:t.colId,rowIndex:t.rowIndex})},onFinished:n=>{e.deps.eventBus.emit(`cellCommitFinished`,{rowId:t.rowId,colId:t.colId,rowIndex:t.rowIndex,committed:n.ok===!0,aborted:n.ok===`aborted`}),n.ok===!1&&n.errors?J_(s,t,n.errors,n.revert):n.ok===!0&&n.validationErrors?.length&&K_(e.deps,t,n.validationErrors)},onAborted:()=>{e.deps.eventBus.emit(`editCommitAborted`,{rowId:t.rowId,colId:t.colId,rowIndex:t.rowIndex})}}}),e.deps.eventBus.emit(`cellEditingStarted`,{rowId:t.rowId,colId:t.colId,rowIndex:t.rowIndex,value:a}),e.deps.applyFocusVisuals(),e.deps.syncPinnedRows()}var nv=class{deps;constructor(e){this.deps=e}validate(e){return z_(this.validationCtx(),e)}validateRows(e){return B_(this.validationCtx(),e)}validateCells(e){return V_(this.validationCtx(),e)}clearValidation(e){I_(this.validationCtx(),e)}clearRowValidation(e){L_(this.validationCtx(),e)}clearCellValidation(e){R_(this.validationCtx(),e)}syncValidationDom(){F_(this.validationCtx())}syncValidationHeaderDom(){$(this.deps)}startEditingCell(e){Q_(this.startCtx(),e)}stopEditing(e=!1){return this.deps.rowEditingService.isEditing()?this.deps.rowEditingService.stopRowEditing(!e).then(()=>void 0):this.deps.editingService.isEditing()?this.deps.editingService.stopEditing(!e).then(()=>void 0):Promise.resolve()}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){ev(this.startCtx(),e)}tryStartCellEditing(e){tv(this.startCtx(),e)}createCellEditorParams(e,t){return C_(this.editorParamsCtx(),e,t)}validationCtx(){return{deps:this.deps,isEditing:()=>this.isEditing(),createCellEditorParams:(e,t)=>this.createCellEditorParams(e,t),getInvalidEditValueMode:()=>P_(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:()=>P_(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)}}},rv=`mg-column-drag-ghost`,iv=`mg-column-drag-ghost__icon`,av=`mg-column-drag-ghost__label`,ov=`mg-column-drop-indicator`,sv=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=rv,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=iv,n.setAttribute(`aria-hidden`,`true`),n.append(Vf());let r=document.createElement(`span`);r.className=av,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=ov,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 cv(e,t){return[{colId:e,sort:`asc`}]}function lv(e,t){return[{colId:e,sort:`desc`}]}function uv(e,t){return va(t.filter(t=>t.colId!==e))}function dv(e,t){return t.find(t=>t.colId===e)?.sort??null}function fv(e,t){return dv(e,t)!==null}var pv=[{value:`contains`,label:`包含`},{value:`notContains`,label:`不包含`},{value:`equals`,label:`等于`},{value:`notEqual`,label:`不等于`},{value:`startsWith`,label:`开头是`},{value:`endsWith`,label:`结尾是`},{value:`blank`,label:`空白`},{value:`notBlank`,label:`非空白`}],mv=[{value:`equals`,label:`等于`},{value:`notEqual`,label:`不等于`},{value:`lessThan`,label:`小于`},{value:`lessThanOrEqual`,label:`小于等于`},{value:`greaterThan`,label:`大于`},{value:`greaterThanOrEqual`,label:`大于等于`},{value:`blank`,label:`空白`},{value:`notBlank`,label:`非空白`}],hv=[{value:`equals`,label:`等于`},{value:`notEqual`,label:`不等于`},{value:`lessThan`,label:`早于`},{value:`greaterThan`,label:`晚于`},{value:`inRange`,label:`范围内`},{value:`blank`,label:`空白`},{value:`notBlank`,label:`非空白`}];function gv(e){switch(e){case`number`:return mv;case`date`:return hv;default:return pv}}function _v(e){switch(e){case`number`:return`equals`;case`date`:return`equals`;default:return`contains`}}function vv(e){return{type:_v(e),value:``,valueTo:``}}function yv(e){return!Mi(e)}function bv(e){return e===`inRange`}function xv(e){return e===`number`?`number`:`text`}function Sv(e,t){return`过滤条件`}function Cv(e){return`过滤条件`}function wv(e,t){return gv(t).some(t=>t.value===e)}function Tv(e,t){let n=Ei(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 Ev(e,t,n){if(Mi(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 Dv(e,t){return e?null:{setValues:t.filter(e=>e!==``)}}function Ov(e,t,n){let r=wi(e).map(e=>({type:wv(e.type,t)?e.type:n,value:e.filter??``,valueTo:e.filterTo??``}));return r.length>0?r:[vv(t)]}function kv(e,t,n){let r=t.map(e=>Ev(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 Av(e,t,n=`text`,r=[]){let i=t[e],a=_v(n),o=Tv(void 0,r),s={operatorLogic:`AND`,operatorConditions:[vv(n)]};if(!i)return{customPredicate:!1,...s,...o};if(xi(i))return{customPredicate:!0,...s,...o};let c=Tv(i,r);return{customPredicate:!1,operatorLogic:Ti(i),operatorConditions:Ov(i,n,a),...c}}function jv(e,t,n,r,i){let a=kv(e,t,i),o=Dv(n,r);return!a&&!o?null:{...a,type:a?.type??i,...o??{}}}function Mv(e,t,n,r){let i={...n},a=_v(r),o=jv(t.operatorLogic,t.operatorConditions,t.setAllSelected,t.selectedValues,a);return o&&(Di(o)||Oi(o))?i[e]=o:delete i[e],i}function Nv(e,t,n,r,i,a,o=!0,s=[]){return Mv(e,{operatorLogic:`AND`,operatorConditions:[{type:t,value:n,valueTo:a??``}],setAllSelected:o,selectedValues:s},r,i)}function Pv(e,t){if(!(e in t))return t;let n={...t};return delete n[e],n}function Fv(e){return Mi(e.type)?!1:e.type===`inRange`?e.value.trim()!==``||e.valueTo.trim()!==``:e.value.trim()!==``}function Iv(e){let t=e[0];return t?Fv(t):!1}function Lv(e){let{columnFilterType:t,abortSignal:n,onInput:r,onStopPropagation:i}=e,a=gv(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=xv(t),e.input.placeholder=Sv(t,n),e.input.hidden=!yv(n),e.inputTo.type=xv(t),e.inputTo.placeholder=Cv(t),e.inputTo.hidden=!bv(n)},ee=()=>{let e=p?Fv(_(p)):!1;c.hidden=!e,e&&!m&&p&&(m=S(g??vv(t),!0),m.rowEl.hidden=!1,s.append(m.rowEl)),m&&(m.rowEl.hidden=!e),!e&&m&&(Fv(_(m))&&(g=_(m)),m.rowEl.remove(),m=null,c.hidden=!0)},x=()=>{ee(),r()},S=(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),x()},{signal:n}),s.addEventListener(`input`,x,{signal:n}),c.addEventListener(`input`,x,{signal:n});for(let e of[o,s,c])e.addEventListener(`mousedown`,u,{signal:n}),e.addEventListener(`click`,u,{signal:n});return l},C=e=>{s.replaceChildren();let n=e.operatorConditions.length>0?e.operatorConditions:[vv(t)];h=e.operatorLogic,g=n[1]??null,y(h),p=S(n[0]??vv(t)),m=null,s.append(p.rowEl,c),Iv(n)?(m=S(n[1]??g??vv(t),!0),s.append(m.rowEl),c.hidden=!1):c.hidden=!0};C(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=>{C(e)}}}function Rv(e,t){let n=t.trim().toLowerCase();return n===``?[...e]:e.filter(e=>e.label.toLowerCase().includes(n)||e.key.toLowerCase().includes(n))}var zv=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 Bv(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 Vv=/^(\d{4})-(\d{2})-(\d{2})$/;function Hv(e){let t=Vv.exec(e),n=t?Number(t[3]):0;return{id:`d:${e}`,type:`day`,label:`${n}日`,key:e,children:[],leafKeys:[e]}}function Uv(e,t){return e.id.localeCompare(t.id,void 0,{numeric:!0})}function Wv(e,t){return(e.key??``).localeCompare(t.key??``,void 0,{numeric:!0})}function Gv(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=Vv.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(Hv(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(Wv);i.push({id:`y:${e}:m:${t}`,type:`month`,label:`${t}月`,children:r,leafKeys:r.map(e=>e.key)})}i.sort(Uv),t.push({id:`y:${e}`,type:`year`,label:String(e),children:i,leafKeys:i.flatMap(e=>e.leafKeys)})}return t}function Kv(e){let t=new Set;for(let n of e)n.type===`year`&&t.add(n.id);return t}function qv(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 Jv(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?Jv(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 Yv(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 Xv(e,t,n){let r=t.trim().toLowerCase(),i=Gv(e);if(r===``){let e=qv(i,n);return{roots:i,expandedIds:new Set(n),rows:e,leafKeys:i.flatMap(e=>e.leafKeys)}}let a=Jv(i,r),o=Yv(a);return{roots:a,expandedIds:o,rows:qv(a,o),leafKeys:a.flatMap(e=>e.leafKeys)}}function Zv(e,t){return Xv(e,t,new Set).leafKeys}function Qv(e,t){for(let n of e){if(n.id===t)return n;let e=Qv(n.children,t);if(e)return e}}var $v=4;function ey(e,t,n,r=28,i=$v){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 ty=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 ey(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)}},ny=class{viewOptions;element;scrollEl;spacerEl;windowEl;emptyEl;rowEls=new Map;expandedIds;rows=[];searchQuery=``;constructor(e){this.viewOptions=e,this.searchQuery=e.searchQuery??``,this.expandedIds=Kv(Xv(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 Xv(this.viewOptions.options,this.searchQuery,this.expandedIds).leafKeys}syncViewState(){let e=Xv(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}=ey(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=Qv(Xv(this.viewOptions.options,this.searchQuery,this.expandedIds).roots,n);r&&(this.viewOptions.selection.setKeysChecked(r.leafKeys,t.checked),this.viewOptions.onSelectionChange(),this.renderRows())}},ry=new WeakMap,iy=new WeakMap;function ay(e,t){let n=ry.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 oy(e){let t=document.createElement(`div`);return t.className=`mg-column-handle-menu__filter-group-heading`,t.textContent=e,t}function sy(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 cy(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=Av(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=wl;let p=document.createElement(`div`);p.className=`mg-column-handle-menu__filter-group`,p.append(oy(`过滤器`));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(oy(`值选择`));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 zv(u,{setAllSelected:d.setAllSelected,selectedValues:d.selectedValues}),y=()=>Rv(i,g.value),b=()=>o,ee=()=>_&&b()===`tree`?O?.getVisibleLeafKeys()??Zv(i,g.value):y().map(e=>e.key),x=()=>g.value.trim()!==``,S=()=>a,C=document.createElement(`label`);C.className=`mg-column-handle-menu__filter-set-option mg-column-handle-menu__filter-set-select-all`;let w=document.createElement(`input`);w.type=`checkbox`;let T=document.createElement(`span`);T.textContent=`全选`,C.append(w,T),h.append(C);let E=()=>{let e=ee();if(x()){w.disabled=e.length===0;let t=v.getSelectAllStateForKeys(e);w.checked=t.checked,w.indeterminate=t.indeterminate;return}w.disabled=!1;let t=v.getSelectAllState();w.checked=t.checked,w.indeterminate=t.indeterminate},D=null,O=null,k=document.createElement(`div`);k.className=`mg-column-handle-menu__filter-set-list-host`;let A=()=>{if(k.replaceChildren(),D=null,O=null,i.length===0){let e=document.createElement(`div`);e.className=`mg-column-handle-menu__filter-set-empty`,e.textContent=`暂无可选值`,k.append(e),j();return}if(_&&b()===`tree`){O=new ny({options:i,selection:v,searchQuery:g.value,onSelectionChange:()=>{E(),M(`set`)},emptySearchLabel:`无匹配项`,abortSignal:l}),k.append(O.element),j();return}D=new ty({options:y(),selection:v,onSelectionChange:()=>{E(),M(`set`)},emptySearchLabel:`无匹配项`,abortSignal:l}),k.append(D.element),j()},j=()=>{let e=ry.get(h);e&&(e.virtualList=D,e.dateTreeView=O)},M=e=>{let t=v.snapshot(),n=Bv(t,S(),ee(),x());if(e===`set`&&n===null)return;let r=n??t,i=ne.readState();s({source:e,operatorLogic:i.operatorLogic,operatorConditions:i.operatorConditions,setAllSelected:r.setAllSelected,selectedValues:r.selectedValues})},N=()=>{M(`operator`)},te=()=>{M(`set`)},ne=Lv({columnFilterType:r,initialState:{operatorLogic:d.operatorLogic,operatorConditions:d.operatorConditions},abortSignal:l,onInput:N,onStopPropagation:m});p.append(ne.element),iy.set(f,ne),i.length===0&&(g.disabled=!0,w.disabled=!0),h.append(k),A(),ry.set(h,{allOptions:i,searchInput:g,selection:v,virtualList:D,dateTreeView:O,mountOptionsView:A,getFilteredKeys:ee,isSearchActive:x,getValueMode:S,syncSelectAllUi:E}),E(),g.addEventListener(`input`,()=>{_&&b()===`tree`?O?.setSearchQuery(g.value):D?.setOptions(y()),E(),S()===`current`&&te()},{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===w){let e=ee();x()?v.setKeysChecked(e,w.checked):v.setSelectAll(w.checked),E(),D?.refresh(),O?.refresh(),te()}},{signal:l});let P=document.createElement(`div`);P.className=`mg-column-handle-menu__filter-actions`;let re=sy(c,l);return P.append(re),f.append(p,h,P),{root:f,panelRoot:f,customPredicate:!1,syncState:e=>{ly(f,e)}}}function ly(e,t){let n=e.querySelector(`.mg-column-handle-menu__filter-set-panel`);iy.get(e)?.syncState({operatorLogic:t.operatorLogic,operatorConditions:t.operatorConditions}),n&&ay(n,t)}var uy=8,dy=4;function fy(e,t,n){let r=e.left,i=e.bottom+dy;return i+n>window.innerHeight-uy&&(i=e.top-n-dy),r=Math.max(uy,Math.min(r,window.innerWidth-t-uy)),i=Math.max(uy,Math.min(i,window.innerHeight-n-uy)),{left:r,top:i}}function py(e,t){let n=document.createElement(`span`);n.className=vl,e&&n.append(e);let r=document.createElement(`span`);return r.className=yl,r.textContent=t,n.append(r),n}function my(e,t,n){let r=document.createElement(`button`);return r.type=`button`,r.className=_l,r.dataset.action=t,n?.targetColId&&(r.dataset.targetColId=n.targetColId),r.append(py(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 hy(){let e=document.createElement(`div`);return e.className=Cl,e.setAttribute(`role`,`separator`),e}function gy(e,t){let n=document.createElement(`div`);n.className=`${gl} ${Tl}`;let r=dv(e,t);return n.append(my(`升序`,`sort-asc`,{checked:r===`asc`,icon:Uf()}),my(`降序`,`sort-desc`,{checked:r===`desc`,icon:Wf()})),fv(e,t)&&n.append(my(`清除排序`,`sort-clear`)),n}function _y(e,t){t.classList.remove(`mg-column-handle-menu__submenu-panel--flip`);let n=e.getBoundingClientRect(),r=t.offsetWidth;n.right+r>window.innerWidth-uy&&t.classList.add(`mg-column-handle-menu__submenu-panel--flip`)}function vy(e){let t=document.createElement(`div`);t.className=`${gl} ${El}`;let n=document.createElement(`div`);n.className=xl;let r=document.createElement(`button`);r.type=`button`,r.className=`${_l} ${bl}`,r.setAttribute(`role`,`menuitem`),r.setAttribute(`aria-haspopup`,`menu`),r.setAttribute(`aria-expanded`,`false`),r.append(py(Gf(),`固定列`)),r.append(Yf());let i=document.createElement(`div`);i.className=Sl,i.setAttribute(`role`,`menu`),i.hidden=!0,i.append(my(`不固定`,`pin-none`,{role:`menuitemradio`,checked:e===null,icon:Kf()}),my(`固定左侧`,`pin-left`,{role:`menuitemradio`,checked:e===`left`,icon:qf()}),my(`固定右侧`,`pin-right`,{role:`menuitemradio`,checked:e===`right`,icon:Jf()}));let a=()=>{i.hidden=!1,r.setAttribute(`aria-expanded`,`true`),n.classList.add(`mg-column-handle-menu__submenu--open`),_y(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 yy(e,t,n){let r=()=>{n.hidden=!1,t.setAttribute(`aria-expanded`,`true`),e.classList.add(`mg-column-handle-menu__submenu--open`),_y(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 by(e){let t=document.createElement(`div`);t.className=`${gl} ${Ol}`;let n=document.createElement(`div`);n.className=xl;let r=document.createElement(`button`);r.type=`button`,r.className=`${_l} ${bl}`,r.setAttribute(`role`,`menuitem`),r.setAttribute(`aria-haspopup`,`menu`),r.setAttribute(`aria-expanded`,`false`),r.append(py(Xf(),`列显隐`)),r.append(Yf());let i=document.createElement(`div`);i.className=Sl,i.setAttribute(`role`,`menu`),i.hidden=!0,i.append(my(`隐藏此列`,`hide-column`,{icon:Zf()})),e.length>0&&i.append(hy());for(let t of e)i.append(my(t.label,`show-column`,{targetColId:t.colId,icon:Qf()}));return yy(n,r,i),n.append(r,i),t.append(n),t}function xy(e,t,n,r,i,a,o,s){let c=document.createElement(`div`);c.className=`${gl} ${Dl}`;let l=cy({colId:e,filterModel:t,columnFilterType:n,distinctFilterValues:r,filterSetValueMode:i,filterSetDateLayoutMode:a,onFilterInput:o,abortSignal:s});return c.append(l.root),c}var Sy=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=hl;let n=document.createElement(`div`);n.className=ml,n.setAttribute(`role`,`menu`),n.dataset.colId=e.colId;let r=[];e.sections.sort&&r.push(gy(e.colId,e.sortModel)),e.sections.pin&&r.push(vy(e.fixed)),e.sections.visibility&&r.push(by(e.hiddenUserColumns)),e.sections.filter&&r.push(xy(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(hy()),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(`.${wl}`);t&&ly(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}=fy(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`)}},Cy=new Set([`sort-asc`,`sort-desc`,`sort-clear`]),wy={"pin-none":null,"pin-left":`left`,"pin-right":`right`},Ty=class{deps;view=new Sy;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=Al({colId:e.colId,sortable:t.sortable,filterable:t.filterable},e.mode??`full`);if(!jl(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:Fa(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(Cy.has(e)){this.applySortAction(e,t);return}let r=wy[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=cv(t,n);break;case`sort-desc`:r=lv(t,n);break;case`sort-clear`:r=uv(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&&xi(r))return;this.clearFilterDebounce();let i=()=>{let r=Mv(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=Pv(e,this.deps.getFilterModel());this.deps.setFilterModel(n),this.view.syncFilterPanel(Av(e,n,t.filterType,this.deps.getColumnDistinctFilterValues(e).map(e=>e.key)))}clearFilterDebounce(){this.filterDebounceTimer!=null&&(clearTimeout(this.filterDebounceTimer),this.filterDebounceTimer=null)}};function Ey(e){let{current:t,colId:n,sortable:r}=e;if(!r)return va(t);let i=va(t).find(e=>e.colId===n);return i?i.sort===`asc`?[{colId:n,sort:`desc`}]:[]:[{colId:n,sort:`asc`}]}function Dy(e,t){return t.find(t=>t.colId===e)?.sort??null}function Oy(e){return e===`asc`?`ascending`:e===`desc`?`descending`:`none`}var ky=class{deps;constructor(e){this.deps=e}toggleSort(e){if(!this.deps.getColumnById(e)?.sortable)return;let t=Ey({current:this.deps.getSortModel(),colId:e,sortable:!0});this.deps.setSortModel(t)}getSortState(e){return Dy(e,this.deps.getSortModel())}};function Ay(e){let t=document.createElement(`div`);return t.className=`mg-header-row__lane mg-header-row__lane--${e}`,t}function jy(e){let t=document.createElement(`div`);return t.className=`mg-footer-row__lane mg-footer-row__lane--${e}`,t}function My(e){let t=document.createElement(`div`);return t.className=`mg-floating-filter-row__lane mg-floating-filter-row__lane--${e}`,t}function Ny(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=Ay(`left`),c=Ay(`center`),l=Ay(`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`,m.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:ee,wrapperEl:x,contentEl:S}=d_();d.appendChild(ee),n.appendChild(r);let C,w,T,E,D,O,k;if(t.floatingFilter){C=document.createElement(`div`),C.className=`mg-floating-filter-viewport`,w=document.createElement(`div`),w.className=`mg-floating-filter-scroll`,T=document.createElement(`div`),T.className=`mg-floating-filter-gutter`,T.setAttribute(`aria-hidden`,`true`),E=document.createElement(`div`),E.className=`mg-floating-filter-row`,D=My(`left`),O=My(`center`),k=My(`right`),E.append(D,O,k);let e=document.createElement(`div`);e.className=`mg-floating-filter-span`,e.setAttribute(`aria-hidden`,`true`),w.append(E,e),C.append(w,T),n.appendChild(C)}n.appendChild(d);let A,j,M,N,te,ne,P;if(t.showSummary){A=document.createElement(`div`),A.className=`mg-footer-viewport`,j=document.createElement(`div`),j.className=`mg-footer-scroll`,M=document.createElement(`div`),M.className=`mg-footer-gutter`,M.setAttribute(`aria-hidden`,`true`),N=document.createElement(`div`),N.className=`mg-footer-row`,te=jy(`left`),ne=jy(`center`),P=jy(`right`),N.append(te,ne,P);let e=document.createElement(`div`);e.className=`mg-footer-span`,e.setAttribute(`aria-hidden`,`true`),j.append(N,e),A.append(j,M),n.appendChild(A)}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:A,footerScrollEl:j,footerGutterEl:M,footerRowEl:N,footerLeftLaneEl:te,footerCenterLaneEl:ne,footerRightLaneEl:P,floatingFilterViewportEl:C,floatingFilterScrollEl:w,floatingFilterGutterEl:T,floatingFilterRowEl:E,floatingFilterLeftLaneEl:D,floatingFilterCenterLaneEl:O,floatingFilterRightLaneEl:k,overlayEl:ee,overlayWrapperEl:x,overlayContentEl:S}}var Py=`mg-floating-filter-cell`,Fy=`mg-floating-filter-cell--active`,Iy=`mg-floating-filter-cell__inner`,Ly=`mg-floating-filter-control`,Ry=`mg-floating-filter-control--readonly`,zy=`mg-floating-filter-input`,By=`mg-floating-filter-input--readonly`,Vy=`mg-floating-filter-button`,Hy=`mg-floating-filter-button--active`,Uy=`contains`,Wy={blank:`空白`,notBlank:`非空白`};function Gy(e){return e===`OR`?`或者`:`并且`}function Ky(e){if(Mi(e.type))return Wy[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 qy(e){return!e||xi(e)?!1:wi(e).filter(Ci).length>=2}function Jy(e){if(!e||xi(e))return``;let t=wi(e),n=t.filter(Ci);if(n.length>=2){let[t,r]=n,i=Gy(Ti(e));return`${Ky(t)} ${i} ${Ky(r)}`}let[r]=n.length>0?n:t;return r?(r.type,r.filter??``):``}function Yy(e,t){return!(!e||t&&xi(t))}function Xy(e,t){return Yy(e,t)?!qy(t):!1}function Zy(e,t,n){let r=Pi(t,n);e.classList.toggle(Fy,r);let i=e.querySelector(`.${Vy}`);i&&(i.classList.toggle(Hy,r),r?i.setAttribute(`aria-pressed`,`true`):i.removeAttribute(`aria-pressed`))}function Qy(e,t){let n=Array.isArray(e)?e:[e];for(let e of n){let n=Array.from(e.querySelectorAll(`.${Py}[data-col-id]`));for(let e of n){let n=e.dataset.colId;n&&Zy(e,n,t)}}}var $y=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=Wo(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=Xy(r?.filterable??!1,i);n.input.readOnly=!a,n.input.classList.toggle(By,!a),n.input.tabIndex=a?0:-1,n.control.classList.toggle(Ry,!a),n.input.value=Jy(i)}Qy([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,t,n){let r=this.lanes[e];r.replaceChildren();for(let e of t){let t=n.columnModel.getColumn(e);if(!t)continue;let i=document.createElement(`div`);i.className=Py,i.dataset.colId=t.colId,I(t.colId)?i.classList.add(`mg-floating-filter-cell--index`):L(t.colId)&&i.classList.add(`mg-floating-filter-cell--selection`);let a=n.filterModel[t.colId],o=Yy(t.filterable,a),s=Xy(t.filterable,a);if(t.filterable){let e=document.createElement(`div`);e.className=Iy;let r=document.createElement(`div`);if(r.className=Ly,o){let e=document.createElement(`input`);e.type=`text`,e.className=zy,e.setAttribute(`aria-label`,`${t.label??t.prop??t.colId} 筛选`),e.value=Jy(a),e.readOnly=!s,s||(e.classList.add(By),r.classList.add(Ry),e.tabIndex=-1),s&&e.addEventListener(`input`,()=>{n.onInput(t.colId,e.value)}),e.addEventListener(`focus`,()=>{this.focusedColId=t.colId,n.onFocus?.(t.colId)}),e.addEventListener(`blur`,()=>{this.focusedColId===t.colId&&(this.focusedColId=null),n.onBlur?.(t.colId)}),r.append(e),this.inputBindings.push({colId:t.colId,input:e,control:r})}else{let e=document.createElement(`span`);e.className=`mg-floating-filter-cell__spacer`,e.setAttribute(`aria-hidden`,`true`),r.append(e)}let c=document.createElement(`button`);c.type=`button`,c.className=Vy,c.title=`列筛选`,c.setAttribute(`aria-label`,`${t.label??t.prop??t.colId} 列筛选`),c.setAttribute(`aria-haspopup`,`menu`),c.setAttribute(`aria-expanded`,`false`),c.append(Hf()),r.append(c),e.append(r),i.append(e)}Zy(i,t.colId,n.filterModel),Ao(i,ko(t,n.columnModel),Py),r.appendChild(i)}}};function eb(e,t,n,r){e.style.width=`${r.getLeftFixedWidth()}px`,t.style.width=`${r.getCenterTotalWidth()}px`,n.style.width=`${r.getRightFixedWidth()}px`}function tb(e,t,n,r){jo(e,r,Py),jo(t,r,Py),jo(n,r,Py)}function nb(e,t,n,r=`text`){let i=n[e],a=!0,o=[];if(i&&!xi(i)){let e=Ei(i);e!==void 0&&(a=!1,o=e)}return Nv(e,Uy,t,n,r,void 0,a,o)}var rb=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&&xi(r))return;let i=this.debounceTimers.get(e);i!=null&&clearTimeout(i),this.debounceTimers.set(e,setTimeout(()=>{this.debounceTimers.delete(e);let r=nb(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 ib(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 ab(e,t,n){return ib(e,t,n)!==0}function ob(e){return e.scrollWidth>e.clientWidth+1}var sb=class{deps;host;drag=null;scrollRaf=null;constructor(e,t){this.deps=e,this.host=t}isActive(){return this.drag!=null}canStart(e,t,n){if(n||this.drag||!e?.movable||e.hidden||I(e.colId)||L(e.colId))return!1;let r=Q(t);return!(r?.closest(`.mg-selection-checkbox--header`)||!r?.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},document.addEventListener(`mousemove`,this.handleMove),document.addEventListener(`mouseup`,this.handleEnd))}end(e){let t=this.drag;t&&(document.removeEventListener(`mousemove`,this.handleMove),document.removeEventListener(`mouseup`,this.handleEnd),this.deps.columnDragController.cleanup(t.sourceCell,this.deps.headerViewportEl),this.deps.setColumnMoveLiveDragging(!1),this.drag=null,this.scrollRaf!=null&&(cancelAnimationFrame(this.scrollRaf),this.scrollRaf=null),e&&(this.host.setSuppressColumnClick(!0),this.host.setSuppressColumnHandleClick(!0),window.setTimeout(()=>{this.host.setSuppressColumnClick(!1),this.host.setSuppressColumnHandleClick(!1)},0)))}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.deps.suppressMoveWhenColumnDragging()||this.deps.setColumnMoveLiveDragging(!0);let e=t.sourceCell.getBoundingClientRect(),i=this.deps.columnModel.getColumnById(t.colId),a=this.resolveGhostPosition(e);this.deps.columnDragController.setColumnMoving(t.colId),this.deps.columnDragController.setSourceHeaderDragging(t.sourceCell,!0),this.deps.columnDragController.setHeaderViewportDragging(this.deps.headerViewportEl,!0),this.deps.columnDragController.startGhost({label:i?.label??i?.prop??t.colId,width:e.width,height:e.height,left:a.left,top:a.top,mountEl:this.deps.mountEl})}let i=t.sourceCell.getBoundingClientRect(),a=this.resolveGhostPosition(i);this.deps.columnDragController.moveGhost(a.left,a.top),t.pointerX=e.clientX,this.renderAtPointer(t,e.clientX),ab(t.pointerX,...this.getScrollBounds(t))&&this.ensureEdgeScrollLoop()};handleEnd=e=>{let t=this.drag;if(t){if(t.active)if(this.deps.suppressMoveWhenColumnDragging()){let n=this.resolveDropAtClientX(e.clientX,t);n&&this.deps.moveColumn(t.colId,n.globalIndex,!0,n.toFixed)}else this.deps.finishColumnMove(t.colId);this.end(t.didMove)}};renderAtPointer(e,t){let n=this.resolveDropAtClientX(t,e);e.dropLaneEl=this.resolveDropLaneEl(t,n,e.colId),this.updateDropIndicator(e,n),this.deps.suppressMoveWhenColumnDragging()||this.applyLiveMove(e,n)}resolveDropLaneEl(e,t,n){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)}return[{fixed:`left`,el:this.deps.headerLeftLaneEl},{fixed:null,el:this.deps.headerCenterLaneEl},{fixed:`right`,el:this.deps.headerRightLaneEl}].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}resolveGhostPosition(e){return{left:e.left,top:e.bottom}}isSameDropTarget(e,t){return!e||!t?e===t:e.globalIndex===t.globalIndex&&e.toFixed===t.toFixed}getScrollBounds(e){let t=this.resolveScrollHost(e).getBoundingClientRect();return[t.left,t.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}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&&!ob(t)){this.scrollRaf=null;return}let n=t.getBoundingClientRect(),r=ib(e.pointerX,n.left,n.right);if(r!==0&&(t===this.deps.viewportEl?this.deps.scrollByHorizontalDelta(r):t.scrollLeft=Math.max(0,Math.min(t.scrollLeft+r,t.scrollWidth-t.clientWidth)),this.renderAtPointer(e,e.pointerX)),ab(e.pointerX,n.left,n.right)){this.scrollRaf=requestAnimationFrame(this.tickEdgeScroll);return}this.scrollRaf=null};updateDropIndicator(e,t){if(!t){this.deps.columnDragController.hideDropIndicator();return}let n=this.deps.columnModel.getColumn(t.globalIndex),r=n?e.dropLaneEl.querySelector(`.mg-header-cell[data-col-id="${n.colId}"]`):null;if(r){let e=r.getBoundingClientRect();this.deps.columnDragController.showDropIndicator(e.left,e.top,e.height);return}let i=e.dropLaneEl.getBoundingClientRect();this.deps.columnDragController.showDropIndicator(Math.max(i.left,i.right-2),i.top,i.height)}applyLiveMove(e,t){!t||this.isSameDropTarget(t,e.lastDropTarget)||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)}refreshSourceCell(e){let t=e.laneEl.querySelector(`.mg-header-cell[data-col-id="${e.colId}"]`);t&&(e.active&&(this.deps.columnDragController.setSourceHeaderDragging(e.sourceCell,!1),this.deps.columnDragController.setSourceHeaderDragging(t,!0)),e.sourceCell=t)}resolveHitLane(e,t){let n=[{fixed:`left`,el:this.deps.headerLeftLaneEl},{fixed:null,el:this.deps.headerCenterLaneEl},{fixed:`right`,el:this.deps.headerRightLaneEl}];if(!this.deps.allowCrossLaneColumnMove()){let e=this.deps.columnModel.getColumnById(t.colId)?.fixed??null;return n.find(({fixed:t})=>t===e)||{fixed:e,el:t.laneEl}}return n.find(({el:t})=>{let n=t.getBoundingClientRect();return e>=n.left&&e<=n.right})??n.find(({el:e})=>e===t.laneEl)??{fixed:null,el:this.deps.headerCenterLaneEl}}resolveDropAtClientX(e,t){let n=this.resolveHitLane(e,t),r=this.deps.columnModel.getColumns(),i=this.deps.columnModel.getFixedColumnGroups(),a=n.el.getBoundingClientRect(),o=[...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}]});return $r({columns:r,fixedGroups:i,clientX:e,laneRectLeft:a.left,laneRectRight:a.right,targetFixed:n.fixed,laneHeaderCells:o})}};function cb(e,t){let n=t.clientX,r=0,i=!1,a=t=>{if(e.rootEl.classList.toggle(`mg-root--column-resizing`,t),t){document.body.style.cursor=`col-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.clientX-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)}function lb(e,t){return e}var ub=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=Zg(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:cb({rootEl:Zg(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,t){if(this.columnResize)return!1;let n=this.deps.cellFocusService.getFocusedCell();if(!n||!be(n))return!1;let r=n.colId;if(I(r)||L(r)||!this.deps.columnModel.getColumnById(r)?.resizable)return!1;(!this.keyboardColumnResize||this.keyboardColumnResize.colId!==r)&&(this.keyboardColumnResize={colId:r,multiplier:0}),this.keyboardColumnResize.multiplier+=1;let i=(e===`left`?-1:1)*this.keyboardColumnResize.multiplier,a=this.deps.mountEl.querySelector(`.mg-header-cell[data-col-id="${r}"]`);return a&&this.markActiveCell(a),this.deps.resizeHeaderColumn(r,i,t),!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(){Zg(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=lb(e,r.fixed??null),a=n.startWidth+i;this.deps.setColumnWidths([{colId:n.colId,newWidth:a}],n.shiftKey,t)}};function db(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`,`.${_f}`].join(`, `))}var fb=class{deps;host;constructor(e,t){this.deps=e,this.host=t}applyFocusVisuals(){let e=this.deps.cellFocusService.getFocusedCell();this.syncHeaderFocusVisual(e&&be(e)?e.colId:null),this.syncFooterFocusVisual(e&&xe(e)?e.colId:null),!e||F(e)?this.deps.rowRenderer.setFocusedCell(null):this.deps.rowRenderer.setFocusedCell({rowId:e.rowId,colId:e.colId}),this.deps.syncCellRangeHighlightVisuals?.()}navigateTabChainEdit(e,t){let n=this.deps.cellFocusService.getFocusedCell();if(!n)return;let r=this.deps.rowModel.getRowCount(),i=pe(this.deps.columnModel);if(r===0||i.length===0)return;let a=Oe(n,e,r,i,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(!a){t(e);return}this.deps.ensureIndexVisible(a.rowIndex,`middle`),this.deps.ensureColumnVisible(a.colIndex),this.setFocusedCell(a),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=pe(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&&(F(r)||this.deps.ensureIndexVisible(r.rowIndex,`middle`),this.deps.ensureColumnVisible(r.colIndex),this.setFocusedCell(r))}navigateFocusToEdge(e){let t=this.deps.rowModel.getRowCount(),n=pe(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&&(F(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=pe(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&&(F(r)||this.deps.ensureIndexVisible(r.rowIndex,`middle`),this.deps.ensureColumnVisible(r.colIndex),this.setFocusedCell(r))}setFocusedCell(e){let t=this.normalizeSpanFocus(e);if(this.deps.cellFocusService.setFocusedCell(t),this.applyFocusVisuals(),F(t)){let e=this.deps.rowModel.getRow(0);e&&this.deps.eventBus.emit(`cellFocused`,{rowId:t.rowId,colId:t.colId,rowIndex:t.rowIndex,rowNode:e});return}let n=this.deps.rowModel.getRow(t.rowIndex);n&&this.deps.eventBus.emit(`cellFocused`,{rowId:t.rowId,colId:t.colId,rowIndex:t.rowIndex,rowNode:n})}normalizeSpanFocus(e){let t=this.deps.cellSpanService();if(!t?.active||F(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:Wg(this.deps.columnModel,n.colId)}}focusCellTarget(e){this.setFocusedCell({rowId:e.rowId,colId:e.colId,rowIndex:e.rowIndex,colIndex:Wg(this.deps.columnModel,e.colId)})}toggleIndexFocusFromFocus(){let e=this.deps.cellFocusService.getFocusedCell();return!e||F(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||F(e)?!1:this.toggleInlineCheckboxAtCell(e.rowId,e.colId,e.rowIndex)}toggleRowSelectionFromFocus(){let e=this.deps.cellFocusService.getFocusedCell();return!e||F(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||F(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||F(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||F(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 t=this.deps.cellFocusService.getFocusedCell();if(!t||!be(t))return!1;let n=t.colId;if(I(n)||L(n))return!1;let r=Qr({columns:this.deps.columnModel.getColumns(),colId:n,toGlobalIndex:-1,fixedGroups:this.deps.columnModel.getFixedColumnGroups(),direction:e});return r==null||!this.deps.moveColumn(n,r,!0)?!1:(this.setFocusedCell({rowId:t.rowId,colId:n,rowIndex:t.rowIndex,colIndex:r}),!0)}toggleHeaderSortFromFocus(){let e=this.deps.cellFocusService.getFocusedCell();return!e||!be(e)||!this.host.canToggleHeaderSort(e.colId)?!1:(this.deps.toggleHeaderSort(e.colId),!0)}toggleHeaderSelectionFromFocus(){let e=this.deps.cellFocusService.getFocusedCell();return!e||!be(e)||!this.host.isSelectionColumnEntry(e.colId)||!this.host.isSelectionHeaderMultiple()?!1:(this.host.toggleSelectAllVisibleRows(),!0)}startEditingFocusedCell(){let e=this.deps.cellFocusService.getFocusedCell();if(!e||F(e))return;let t=this.deps.rowModel.getRow(e.rowIndex);if(!t)return;let n=this.deps.mountEl.querySelector(`.mg-row[data-row-id="${e.rowId}"]`);if(!n)return;if(Fn(this.deps.editBehavior)){this.deps.tryStartRowEditing({rowId:e.rowId,colId:e.colId,rowIndex:e.rowIndex,rowNode:t,rowElement:n});return}let r=this.deps.columnModel.getColumnById(e.colId);!r||!H(r,t,this.deps.getCellDisableContext())||ka(r)||this.deps.tryStartCellEditing({rowId:e.rowId,colId:e.colId,rowIndex:e.rowIndex,rowNode:t,rowElement:n})}isHeaderNavigationEnabled(){return this.deps.navigateHeader()}isFooterNavigationEnabled(){return this.deps.showSummary()&&this.deps.navigateFooter()}isInlineCheckboxClickTarget(e){return e instanceof Element&&e.closest(`input.mg-inline-checkbox`)!=null}isGroupOrTreeExpandClickTarget(e){return e instanceof Element?e.closest(`button.mg-cell__group-expand`)!=null||e.closest(`button.mg-cell__tree-expand`)!=null:!1}toggleInlineCheckboxAtCell(e,t,n){let r=this.deps.columnModel.getColumnById(t);if(!r||!ka(r)||r.cellEditor!==`checkbox`)return!1;let i=this.deps.rowModel.getRow(n);if(!i||!H(r,i,this.deps.getCellDisableContext()))return!1;let a=this.deps.mountEl.querySelector(`.mg-row[data-row-id="${e}"] .mg-cell[data-col-id="${t}"]`);if(!a)return!1;let o=a.querySelector(`input.${O}`);return!o||o.disabled?!1:(o.checked=!o.checked,o.dispatchEvent(new Event(`change`,{bubbles:!0})),!0)}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()}}},pb=class{deps;host;drag=null;scrollRaf=null;constructor(e,t){this.deps=e,this.host=t}isActive(){return this.drag!=null}begin(e){this.end(),(e.kind===`index`?this.deps.indexFocusService:this.deps.selectionService)?.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},document.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(),document.addEventListener(`mousemove`,this.handleMove,!0),document.addEventListener(`mouseup`,this.handleUp,!0)}end(){document.removeEventListener(`mousemove`,this.handleMove,!0),document.removeEventListener(`mouseup`,this.handleUp,!0),document.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();qm(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=Gm(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=Wm(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),qm(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);if(this.drag.kind===`index`){if(!this.deps.indexFocusService)return;this.deps.indexFocusService.selectRangeBetween(this.drag.anchorRowIndex,e,t),this.deps.applyIndexFocusVisuals(),this.deps.emitIndexFocusChanged(this.deps.indexFocusService.getFocusedRowIds()),this.host.syncCellRangeFromIndexFocus?.(e);return}this.deps.selectionService&&(this.deps.selectionService.selectRangeBetween(this.drag.anchorRowIndex,e,n,{rowCount:this.deps.rowModel.getRowCount(),getAllRowIdAt:t}),this.deps.applySelectionVisuals(),this.deps.emitSelectionChanged(this.deps.selectionService.getSelectedRowIds()))}};function mb(e,t,n,r){return Wm(e,t,n,r)}function hb(e,t,n){return ib(e,t,n)}function gb(e,t,n){return qm(e,t,n)}function _b(e,t,n){return ab(e,t,n)}function vb(e,t,n){return gb(t,n.top,n.bottom)||_b(e,n.left,n.right)}function yb(e){return e.fixed??`center`}function bb(e,t,n){if(!n)return!1;let r=yb(e);return r===`right`||r===t}function xb(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 Sb(e,t,n){let r=n.getBoundingClientRect();return e>=r.left&&e<r.right&&t>=r.top&&t<r.bottom}var Cb={left:[`left`,`center`,`right`],center:[`center`,`left`,`right`],right:[`right`,`center`,`left`]};function wb(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 Tb(e,t,n,r,i,a){let o=xb(t,a,r,i.clientWidth);for(let i of Cb[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||!Sb(t,n,e))continue;let a=r.getColumnById(i);if(!(!a||a.hidden)&&bb(a,o,!0))return i}}return null}function Eb(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=xb(e,i,n,r.clientWidth),l=yb(s);if(bb(s,c,Sb(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=lo(r.scrollLeft,o,s);if(Ob(e-i.left,t,o,c))return null}return o}function Db(e,t){return e.filter(e=>yb(e)===t)}function Ob(e,t,n,r){return r+(e-t)>=n}function kb(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=xb(n,a,e,t.clientWidth);if(d===`left`){let e=Db(i,`left`);return e.length===0?null:e[oo(e,o)]?.colId??null}if(d===`right`){let e=Db(i,`right`);if(e.length===0)return null;let t=s+l,n=o-s-u;return e[oo(e.map(e=>({...e,left:e.left-t})),n)]?.colId??null}let f=Db(i,`center`);if(f.length===0)return null;let p=lo(r,l,u);return Ob(o,s,l,p)?null:f[oo(f,p+(o-s))]?.colId??null}function Ab(e,t,n,r,i,a,o){let s=Gm(e,n,r,i,a);if(!s)return null;let c=n.getBoundingClientRect(),l=o(),u=wb(n,s.rowId),d=(u==null?null:Tb(u,r,i,t,n,c))??Eb(r,i,t,n,c)??kb(t,n,r,l);return d?{rowIndex:s.rowIndex,colId:d}:null}var jb=class{deps;host;drag=null;scrollRaf=null;constructor(e,t){this.deps=e,this.host=t}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.isInlineCheckboxClickTarget(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 q(e.colId,i)}begin(e){this.end();let t=e.mode??`replace`,n=this.deps.getCellRangeService(),r=t===`append`&&n?n.getRanges():[],i=Rg(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},document.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(),document.addEventListener(`mousemove`,this.handleMove,!0),document.addEventListener(`mouseup`,this.handleUp,!0)}end(){document.removeEventListener(`mousemove`,this.handleMove,!0),document.removeEventListener(`mouseup`,this.handleUp,!0),document.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();vb(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=Ab(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||!q(n.colId,i))return;let a=Rg(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=mb(e.pointerY,t.top,t.bottom,this.deps.getRowHeight()),r=hb(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),vb(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=J({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=J(i,i),o=this.deps.getCellRangeOperationContext();n.addRange(a,o,i)&&(this.deps.applyCellRangeVisuals(),this.deps.emitCellSelectionChanged(`ui`))}},Mb=class{deps;drag=null;scrollRaf=null;constructor(e){this.deps=e}isActive(){return this.drag!=null}canStart(){if(this.deps.isCommitting()||!Ns(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=Y(i,r.displayedColIds);return a?(this.end(),this.drag={fixedAnchor:{rowIndex:a.top,colId:a.leftColId},sourceRange:a,previewRange:a,pointerX:e,pointerY:t},document.body.classList.add(`mg-fill-handle-dragging`),document.addEventListener(`mousemove`,this.handleMove,!0),document.addEventListener(`mouseup`,this.handleUp,!0),!0):!1}end(){document.removeEventListener(`mousemove`,this.handleMove,!0),document.removeEventListener(`mouseup`,this.handleUp,!0),document.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();vb(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=Pg(e.sourceRange,e.previewRange,n.displayedColIds),a=t.fillReverseStrategy===`clear`?Fg(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=Ab(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=Rg(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=Eg({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([Rs(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=mb(e.pointerY,t.top,t.bottom,this.deps.getRowHeight()),r=hb(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),vb(e.pointerX,e.pointerY,t)){this.scrollRaf=requestAnimationFrame(this.tickEdgeScroll);return}this.scrollRaf=null}},Nb=class{deps;drag=null;scrollRaf=null;constructor(e){this.deps=e}isActive(){return this.drag!=null}canStart(){if(this.deps.isCommitting()||!Ps(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=Y(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},document.body.classList.add(`mg-range-handle-dragging`),document.addEventListener(`mousemove`,this.handleMove,!0),document.addEventListener(`mouseup`,this.handleUp,!0),!0}end(){document.removeEventListener(`mousemove`,this.handleMove,!0),document.removeEventListener(`mouseup`,this.handleUp,!0),document.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();vb(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=Ab(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=Rg(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=mb(e.pointerY,t.top,t.bottom,this.deps.getRowHeight()),r=hb(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),vb(e.pointerX,e.pointerY,t)){this.scrollRaf=requestAnimationFrame(this.tickEdgeScroll);return}this.scrollRaf=null}},Pb=class{deps;constructor(e){this.deps=e}isEligibleDataCell(e,t){return q(e,t)}normalizeTarget(e){let t=Rg(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 Rg(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()||Es(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=Hs(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}selectFocusedCellRange(){if(!this.isActive())return!1;let e=this.deps.cellFocusService.getFocusedCell();if(!e||F(e))return!1;let t=this.deps.rowModel.getRow(e.rowIndex);return t?this.setSingleCellRange({rowId:t.id,rowIndex:e.rowIndex,colId:e.colId,rowNode:t}):!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=J(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&&!F(r)?t.extendFocusedRange({rowIndex:r.rowIndex,colId:r.colId},i,n):t.setRanges([J(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=J(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||F(n)||!this.isEligibleDataCell(n.colId,this.deps.rowModel.getRow(n.rowIndex)?.rowKind))return!0;let r=Te(n,e,this.deps.rowModel.getRowCount(),pe(this.deps.columnModel),e=>this.deps.rowModel.getRow(e)?.id,e=>this.deps.columnModel.getColumn(e)?.colId,this.deps.getFocusChromeNavigation());if(!r||F(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=Gs({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 Fb(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 Ib=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 t=Zg(this.deps.mountEl).querySelector(`.mg-row[data-row-id="${CSS.escape(e.rowId)}"] .mg-cell[data-col-id="${CSS.escape(Me)}"]`);t&&(e.sourceCell=t,this.markActiveCell(t))}canStart(e,t,n){return n||this.rowResize||!this.deps.indexColumnOptions.showIndexColumn||!this.deps.indexColumnOptions.indexColumn.enableRowResizer||!I(e)?!1:Q(t)?.closest(`.${Ji}`)!=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:Fb({rootEl:Zg(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(Yi)}clearActiveCell(){Zg(this.deps.mountEl).querySelectorAll(`.mg-cell[data-row-resize-active]`).forEach(e=>{e instanceof HTMLElement&&(e.removeAttribute(`data-row-resize-active`),e.classList.remove(Yi))})}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)}},Lb=[`--mg-color-row-drop-indicator`,`--mg-row-drop-indicator-height`,`--mg-row-drop-indicator-z-index`],Rb=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=`${aa} ${aa}--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=`${aa}__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=ia,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(ra),this.sourceCellEl=e,e?.classList.toggle(ra,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 Lb){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}};function zb(e,t){return e==null&&t==null?!0:e==null||t==null?!1:e.parentRowId===t.parentRowId&&e.siblingIndex===t.siblingIndex&&e.treeLevel===t.treeLevel}function Bb(e,t){let n=new Map;for(let r of t){let t=Im(e,r);t&&n.set(r,t)}return n}function Vb(e,t,n){for(let r of e){let e=t.get(r);if(e===void 0)continue;let i=n.findIndex(e=>e.id===r);if(i>=0&&e!==i)return!0}return!1}function Hb(e,t,n){if(!t||t.size===0)return!1;for(let r of e)if(!zb(t.get(r),Im(n,r)))return!0;return!1}function Ub(e,t,n,r,i){return r===i?e<0||Th(t,n)===e:!1}function Wb(e){return Vb(e.rowIds,e.startSourceIndices,e.sourceRows)||Hb(e.rowIds,e.startTreePositions,e.sourceRows)?!0:!e.dropAllowed||e.managed?!1:!Ub(e.startDisplayIndex,e.dropInsertIndex,e.rowCount,e.nestUnderRowId,e.startNestUnderRowId)}function Gb(e){return e.fromIndex!==e.toIndex||!zb(e.startTreePosition,e.currentTreePosition)}var Kb=class{deps;drag=null;scrollRaf=null;dragController=new Rb;constructor(e){this.deps=e}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&&qb(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?.()&&ch(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:Bb(a,r),startNestUnderRowId:null},document.addEventListener(`mousemove`,this.handleMove),document.addEventListener(`mouseup`,this.handleEnd)}end(e){let t=this.drag;t&&(document.removeEventListener(`mousemove`,this.handleMove),document.removeEventListener(`mouseup`,this.handleEnd),this.dragController.cleanup(),this.deps.setRowMoveLiveDragging(!1),document.body.classList.remove(`mg-row-dragging`,oa),document.body.style.removeProperty(`cursor`),document.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(ma(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,document.body.classList.add(`mg-row-dragging`),document.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:Jb(t.sourceCell,t.rowId,t.rowIds.length),width:e.width,height:e.height,left:e.left,top:e.top,mountEl:Zg(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();qm(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(ma(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=Ch(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:$m({rowModel:this.deps.rowModel,viewportEl:this.deps.viewportEl,clientX:e,clientY:t,getLogicalScrollTop:this.deps.getLogicalScrollTop,altKey:n,movingRowIds:r})}setDropForbidden(e){document.body.classList.toggle(oa,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=Th(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:r,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.hasSortModel(),a=Th(t,this.deps.rowModel.getRowCount()),o=this.deps.rowModel.getRowIndexById(e.rowId);if(o>=0&&a===o)return!1;let s=km({sourceRows:this.deps.rowModel.getSourceRows(),displayRows:this.deps.rowModel.rowsToDisplay,sortModelLength:+!!i,filterModelKeyCount:Object.keys(this.deps.rowModel.getFilterModel()).length}),c=Nm(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()?gh(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 Wb({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(){let e=(this.deps.isRowGroupingActive?.()??!1)||(this.deps.isTreeActive?.()??!1);return this.deps.rowDragManaged&&!fa(this.deps.hasSortModel(),this.deps.rowDragManaged,e)}isDeferredManagedCommit(){return this.isManagedRowDragEnabled()&&this.deps.rowDragCommitMode===`deferred`}canLiveReorder(){return this.isManagedRowDragEnabled()&&this.deps.rowDragCommitMode!==`deferred`}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=Wm(e.pointerY,t.top,t.bottom,this.deps.getRowHeight());if(n!==0&&(this.deps.scrollByDelta(n),this.renderAtPointer(e.pointerX,e.pointerY,e.altKey)),qm(e.pointerY,t.top,t.bottom)){this.scrollRaf=requestAnimationFrame(this.tickEdgeScroll);return}this.scrollRaf=null}};function qb(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 Jb(e,t,n){return n>1?`${n} rows`:Yb(e,t)}function Yb(e,t){return e.querySelector(`.mg-cell__text:not([hidden])`)?.textContent?.trim()||e.querySelector(`.mg-cell__renderer:not([hidden])`)?.textContent?.trim()||t}var Xb=`mg-cell-comment-context-menu__items`,Zb=`mg-cell-comment-context-menu__item`,Qb=`mg-cell-comment-context-menu__item-label`,$b=`mg-cell-comment-context-menu__item--committing`,ex=`mg-cell-comment-context-menu__loading-icon`,tx={remove:`删除中...`};function nx(e,t,n){let r=Uh(e.mountEl??e.anchorEl??null);if(e.anchorEl){let r=Wh(e.anchorEl),i=Fh(e.anchorEl);return Gh(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 rx(e){let t=document.createElement(`div`);t.className=Ll,t.setAttribute(`role`,`menu`);let n=document.createElement(`div`);n.className=Xb;let r=[],i=new Map;for(let t of e.items){let e=document.createElement(`button`);e.type=`button`,e.className=Zb,e.dataset.action=t.id,e.disabled=t.disabled===!0,e.setAttribute(`role`,`menuitem`);let a=document.createElement(`span`);a.className=Qb,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=nx(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(Rl,a),n.classList.toggle($b,a);for(let e of r)e.disabled=a||e.dataset.disabledInitially===`true`;if(a){h(n),m(n).textContent=tx[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(`.${Qb}`)}function h(e){if(e.querySelector(`.mg-cell-comment-context-menu__loading-icon`))return;let t=document.createElement(`span`);t.className=ex,t.setAttribute(`aria-hidden`,`true`),e.prepend(t)}function g(e){e.querySelector(`.${ex}`)?.remove()}for(let e of r)e.disabled&&(e.dataset.disabledInitially=`true`);return{close:d}}function ix(e,t,n,r){return t?r||!e.canView?null:e.canEdit&&!n?`edit`:`view`:e.canCreate?`create`:null}var ax=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=ix(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||!Lh(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=Yg(this.deps.rowModel,e.target);if(!n)return;let r=ox(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=rx({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=Yg(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)||!Lh(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 ox(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 sx=class{deps;suppressColumnClick=!1;suppressColumnHandleClick=!1;suppressHeaderSortClick=!1;focusController;columnResizeSession;columnHeaderDragSession;indexSelectionDragSession;cellRangeDragSession;fillHandleSession;rangeHandleSession;cellRangeInteraction;rowResizeSession;rowDragSession;cellCommentSession;overflowTooltipSession;constructor(e){this.deps=e,this.focusController=new fb({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??(()=>{})},this),this.columnResizeSession=new ub({mountEl:e.mountEl,columnModel:e.columnModel,columnHandleMenuController:e.columnHandleMenuController,cellFocusService:e.cellFocusService,setColumnWidths:e.setColumnWidths,resizeHeaderColumn:e.resizeHeaderColumn}),this.columnHeaderDragSession=new sb({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),this.indexSelectionDragSession=new pb({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})}},this),this.cellRangeDragSession=new jb({viewportEl:e.viewportEl,rowModel:e.rowModel,columnModel:e.columnModel,getCellRangeService:e.getCellRangeService??(()=>null),getCellSpanService:()=>e.cellSpanService,isCellSelectionEnabled:e.isCellSelectionEnabled??(()=>!1),getCellRangeOperationContext:e.getCellRangeOperationContext??(()=>({displayedColIds:e.columnModel.getDisplayedColumnIds()})),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,isInlineCheckboxClickTarget:e=>this.focusController.isInlineCheckboxClickTarget(e),isGroupOrTreeExpandClickTarget:e=>this.focusController.isGroupOrTreeExpandClickTarget(e),isPointerOverCellCommentIndicator:e.isPointerOverCellCommentIndicator??(()=>!1)},this),this.fillHandleSession=new Mb({viewportEl:e.viewportEl,rowModel:e.rowModel,columnModel:e.columnModel,getCellRangeService:e.getCellRangeService??(()=>null),getCellSpanService:()=>e.cellSpanService,getCellSelectionOptions:e.getCellSelectionOptions??(()=>({enabled:!1,suppressMultiRanges:!0,enableColumnSelection:!1,enableCellCopy:!1,enableCellPaste:!1,handle:null})),getCellRangeOperationContext:e.getCellRangeOperationContext??(()=>({displayedColIds:e.columnModel.getDisplayedColumnIds()})),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 Nb({viewportEl:e.viewportEl,rowModel:e.rowModel,columnModel:e.columnModel,getCellRangeService:e.getCellRangeService??(()=>null),getCellSpanService:()=>e.cellSpanService,getCellSelectionOptions:e.getCellSelectionOptions??(()=>({enabled:!1,suppressMultiRanges:!0,enableColumnSelection:!1,enableCellCopy:!1,enableCellPaste:!1,handle:null})),getCellRangeOperationContext:e.getCellRangeOperationContext??(()=>({displayedColIds:e.columnModel.getDisplayedColumnIds()})),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.cellRangeInteraction=new Pb({getCellRangeService:e.getCellRangeService??(()=>null),cellFocusService:e.cellFocusService,columnModel:e.columnModel,rowModel:e.rowModel,getCellSpanService:()=>e.cellSpanService,isCellSelectionEnabled:e.isCellSelectionEnabled??(()=>!1),getCellSelectionOptions:e.getCellSelectionOptions,getCellRangeOperationContext:e.getCellRangeOperationContext??(()=>({displayedColIds:e.columnModel.getDisplayedColumnIds()})),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.rowResizeSession=new Ib({mountEl:e.mountEl,rowModel:e.rowModel,indexColumnOptions:e.indexColumnOptions,setRowHeights:e.setRowHeights}),this.rowDragSession=new Kb({mountEl:e.mountEl,viewportEl:e.viewportEl,rowModel:e.rowModel,rowDragManaged:e.rowDragManaged,rowDragCommitMode:e.rowDragCommitMode,hasSortModel:e.hasSortModel,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 ax({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}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.deps.mountEl.addEventListener(`mousedown`,this.handleHeaderMouseDown,!0),this.deps.mountEl.addEventListener(`dblclick`,this.handleHeaderDblClick,!0),this.deps.mountEl.addEventListener(`click`,this.handleHeaderClick,!0),this.deps.mountEl.addEventListener(`click`,this.handleFloatingFilterClick,!0),this.deps.mountEl.addEventListener(`mousedown`,this.handleFooterMouseDown,!0),this.deps.viewportEl.addEventListener(`mousedown`,this.handleCellMouseDown,!0),this.deps.viewportEl.addEventListener(`click`,this.handleCellClick),this.deps.viewportEl.addEventListener(`dblclick`,this.handleCellDoubleClick),this.deps.viewportEl.addEventListener(`keydown`,this.handleViewportKeyDown),this.deps.viewportEl.addEventListener(`keyup`,this.handleViewportKeyUp),this.cellCommentSession?.bindListeners(),this.overflowTooltipSession?.bindListeners()}unbindListeners(){this.deps.mountEl.removeEventListener(`mousedown`,this.handleHeaderMouseDown,!0),this.deps.mountEl.removeEventListener(`dblclick`,this.handleHeaderDblClick,!0),this.deps.mountEl.removeEventListener(`click`,this.handleHeaderClick,!0),this.deps.mountEl.removeEventListener(`click`,this.handleFloatingFilterClick,!0),this.deps.mountEl.removeEventListener(`mousedown`,this.handleFooterMouseDown,!0),this.deps.viewportEl.removeEventListener(`mousedown`,this.handleCellMouseDown,!0),this.deps.viewportEl.removeEventListener(`click`,this.handleCellClick),this.deps.viewportEl.removeEventListener(`dblclick`,this.handleCellDoubleClick),this.deps.viewportEl.removeEventListener(`keydown`,this.handleViewportKeyDown),this.deps.viewportEl.removeEventListener(`keyup`,this.handleViewportKeyUp),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()}navigateTabChainEdit(e){this.focusController.navigateTabChainEdit(e,e=>this.focusController.navigateTab(e))}getColIndex(e){return Wg(this.deps.columnModel,e)}resolveRootEl(){return Zg(this.deps.mountEl)}setFocusedCell(e){this.focusController.setFocusedCell(e)}setSuppressColumnClick(e){this.suppressColumnClick=e}setSuppressColumnHandleClick(e){this.suppressColumnHandleClick=e}isIndexColumnEntry(e){return I(e)&&this.deps.columnModel.getColumnById(e)!=null}isSelectionColumnEntry(e){return L(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:rt(t)}isGroupColumnEntry(e){let t=this.deps.columnModel.getColumnById(e);return!t||!this.deps.rowGroupingService?.active?!1:Ft(t)}isTreeColumnEntry(e){let t=this.deps.columnModel.getColumnById(e);return!t||!this.deps.treeTableService?.active?!1:un(t.colId)}isSelectionHeaderMultiple(){return this.deps.selectionService?.isMultiple()??!1}canToggleHeaderSort(e){return this.columnResizeSession.isActive()||this.deps.columnDragController.shouldSuppressSortClick()||I(e)||L(e)||this.isExpandColumnEntry(e)||this.isGroupColumnEntry(e)||this.isTreeColumnEntry(e)?!1:this.deps.columnModel.getColumnById(e)?.sortable??!1}shouldHeaderClickSortAndSelectColumn(e){return!this.deps.isCellSelectionEnabled?.()||!this.deps.getCellSelectionOptions?.().enableColumnSelection?!1:this.canToggleHeaderSort(e)}tryApplyHeaderColumnSelection(e,t){if(!this.cellRangeInteraction.tryHeaderColumnSelection(e))return!1;let n=this.deps.rowModel.getRow(0);return n&&this.setFocusedCell({rowId:n.id,colId:e,rowIndex:0,colIndex:t}),!0}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.cellRangeInteraction.syncFromIndexFocus(e)}applyRowSelection(e,t,n,r={}){if(!this.deps.selectionService||!this.isSelectionColumnEntry(n))return;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()}))}applyRowExpansionToggle(e,t,n){if(!this.deps.rowExpansionService?.active||!this.isExpandColumnEntry(n))return;let r=this.deps.rowModel.getRow(t);!r||z(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||!Yt(r))return;let i=r.sourceGroupId??Jt(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`)}}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.deps.applySelectionVisuals(),this.deps.eventBus.emit(`selectionChanged`,{selectedRowIds:this.deps.selectionService.getSelectedRowIds()}))}handleHeaderMouseDown=e=>{if(e.button!==0)return;let t=Jg(this.deps.columnModel,e.target);if(!t)return;this.clearIndexFocusState();let n=this.isSelectionColumnEntry(t.colId)&&this.deps.selectionService?.isMultiple(),r=Xg(e.target),i=this.deps.columnModel.getColumnById(t.colId);if(this.focusController.isHeaderNavigationEnabled()?(e.preventDefault(),e.stopPropagation(),this.canToggleHeaderSort(t.colId)||this.setFocusedCell({rowId:ve,colId:t.colId,rowIndex:-1,colIndex:t.colIndex}),n&&this.toggleSelectAllVisibleRows(),this.deps.viewportEl.focus()):n&&(e.preventDefault(),e.stopPropagation(),this.toggleSelectAllVisibleRows()),this.columnHeaderDragSession.canStart(i,e.target,this.indexSelectionDragSession.isActive()||this.columnResizeSession.isActive()||this.rowResizeSession.isActive())&&r){e.preventDefault(),e.stopPropagation(),this.columnHeaderDragSession.begin({colId:t.colId,sourceCell:r,clientX:e.clientX,clientY:e.clientY});return}if(this.columnResizeSession.canStart(i,e.target,this.indexSelectionDragSession.isActive()||this.columnHeaderDragSession.isActive()||this.rowResizeSession.isActive())&&r){e.preventDefault(),e.stopPropagation(),this.columnResizeSession.begin({colId:t.colId,sourceCell:r,event:e});return}if(!this.shouldHeaderClickSortAndSelectColumn(t.colId)&&!db(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=Jg(this.deps.columnModel,e.target);if(!t)return;let n=this.deps.columnModel.getColumnById(t.colId);!n?.resizable||n.suppressAutoSize||(e.preventDefault(),e.stopPropagation(),this.deps.autoSizeColumn(t.colId,`uiColumnResized`))};handleHeaderClick=e=>{if(e.button!==0)return;if(this.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=Jg(this.deps.columnModel,e.target);if(!t)return;let n=Kg(e.target);if(n){if(this.suppressColumnHandleClick){this.suppressColumnHandleClick=!1,e.preventDefault(),e.stopPropagation();return}e.preventDefault(),e.stopPropagation(),this.deps.columnHandleMenuController.toggle({colId:t.colId,handleEl:n});return}if(!this.canToggleHeaderSort(t.colId)){this.deps.columnDragController.shouldSuppressSortClick()&&(e.preventDefault(),e.stopPropagation());return}e.preventDefault(),e.stopPropagation(),this.deps.toggleHeaderSort(t.colId),this.shouldHeaderClickSortAndSelectColumn(t.colId)&&this.tryApplyHeaderColumnSelection(t.colId,t.colIndex)};handleFloatingFilterClick=e=>{let t=qg(e.target);if(!t)return;let n=t.closest(`.mg-floating-filter-cell[data-col-id]`)?.dataset.colId;n&&(e.preventDefault(),e.stopPropagation(),this.deps.columnHandleMenuController.toggle({colId:n,handleEl:t,mode:`filter-only`}))};handleFooterMouseDown=e=>{if(e.button!==0)return;let t=Gg(this.deps.columnModel,e.target);t&&(this.clearIndexFocusState(),this.focusController.isFooterNavigationEnabled()&&(e.preventDefault(),e.stopPropagation(),this.setFocusedCell({rowId:ye,colId:t.colId,rowIndex:-2,colIndex:t.colIndex}),this.deps.viewportEl.focus()))};handleCellMouseDown=async e=>{if(e.button!==0)return;if(e.target instanceof Element&&e.target.closest(`.mg-range-handle`)){if(e.preventDefault(),e.stopPropagation(),this.deps.isCommitting()&&await this.deps.awaitCommitIdle(),this.deps.isEditing()&&(await this.deps.commitEditing(),this.deps.isEditing()))return;this.rangeHandleSession.begin(e.clientX,e.clientY);return}if(e.target instanceof Element&&e.target.closest(`.mg-fill-handle`)){if(e.preventDefault(),e.stopPropagation(),this.deps.isCommitting()&&await this.deps.awaitCommitIdle(),this.deps.isEditing()&&(await this.deps.commitEditing(),this.deps.isEditing()))return;this.fillHandleSession.begin(e.clientX,e.clientY);return}if(this.fillHandleSession.isActive()||this.rangeHandleSession.isActive()||this.columnHeaderDragSession.isActive()||this.columnResizeSession.isActive()||this.rowResizeSession.isActive()||this.rowDragSession.isActive())return;let t=Yg(this.deps.rowModel,e.target);if(t&&!this.isIndexColumnEntry(t.colId)&&this.clearIndexFocusState(),t&&this.focusController.isGroupOrTreeExpandClickTarget(e.target)){e.preventDefault(),e.stopPropagation(),this.isGroupColumnEntry(t.colId)?this.applyRowGroupingToggle(t.rowId,t.rowIndex,t.colId):this.isTreeColumnEntry(t.colId)&&this.applyTreeTableToggle(t.rowId,t.rowIndex,t.colId),this.setFocusedCell({rowId:t.rowId,colId:t.colId,rowIndex:t.rowIndex,colIndex:this.getColIndex(t.colId)}),this.deps.viewportEl.focus();return}if(t&&this.rowResizeSession.canStart(t.colId,e.target,this.indexSelectionDragSession.isActive()||this.rowDragSession.isActive())){let n=Q(e.target)?.closest(`.mg-cell`);if(n){e.preventDefault(),e.stopPropagation(),this.rowResizeSession.begin({rowId:t.rowId,sourceCell:n,event:e});return}}if(t&&this.rowDragSession.canStart(t.colId,e.target,this.indexSelectionDragSession.isActive()||this.columnHeaderDragSession.isActive()||this.columnResizeSession.isActive())){let n=Q(e.target)?.closest(`.mg-cell`);if(n){e.preventDefault(),e.stopPropagation(),this.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.deps.isCommitting()&&!this.deps.isEditing()&&t&&n){e.preventDefault(),this.deps.eventBus.emit(`cellClicked`,{rowId:t.rowId,colId:t.colId,rowIndex:t.rowIndex,rowNode:t.rowNode}),this.indexSelectionDragSession.begin({kind:n,anchorRowId:t.rowId,colId:t.colId,rowIndex:t.rowIndex,clientY:e.clientY});return}if(t&&this.deps.isCellSelectionEnabled?.()&&!Fn(this.deps.editBehavior)&&!await this.commitEditingForCellRangeInteraction(t,e))return;if(t&&this.cellRangeDragSession.canStart(t,e,`replace`)){e.preventDefault(),this.clearIndexFocusIfNeeded(t.colId),this.deps.eventBus.emit(`cellClicked`,{rowId:t.rowId,colId:t.colId,rowIndex:t.rowIndex,rowNode:t.rowNode}),this.cellRangeDragSession.begin({anchorRowId:t.rowId,anchorColId:t.colId,anchorRowIndex:t.rowIndex,clientX:e.clientX,clientY:e.clientY,mode:`replace`});return}if(t&&this.cellRangeDragSession.canStart(t,e,`append`)){e.preventDefault(),this.clearIndexFocusIfNeeded(t.colId),this.deps.eventBus.emit(`cellClicked`,{rowId:t.rowId,colId:t.colId,rowIndex:t.rowIndex,rowNode:t.rowNode}),this.cellRangeDragSession.begin({anchorRowId:t.rowId,anchorColId:t.colId,anchorRowIndex:t.rowIndex,clientX:e.clientX,clientY:e.clientY,mode:`append`});return}if(t&&this.cellRangeInteraction.tryHandleModifierMouseDown(t,e)){this.deps.eventBus.emit(`cellClicked`,{rowId:t.rowId,colId:t.colId,rowIndex:t.rowIndex,rowNode:t.rowNode}),this.clearIndexFocusIfNeeded(t.colId),this.setFocusedCell({rowId:t.rowId,colId:t.colId,rowIndex:t.rowIndex,colIndex:this.getColIndex(t.colId)}),this.deps.viewportEl.focus();return}if(this.deps.isCommitting()&&(e.preventDefault(),await this.deps.awaitCommitIdle()),this.deps.isEditing()&&w(e.target))return;let r=Yg(this.deps.rowModel,e.target);if(this.deps.isEditing()&&(r&&this.isSameEditingTarget(r)||(await this.deps.commitEditing(),this.deps.isEditing())))return;if(!r){this.clearIndexFocusState(),this.cellRangeInteraction.tryClearOnBlankViewportClick();return}let{rowId:i,colId:a,rowIndex:o,rowNode:s}=r;(this.isExpandColumnEntry(a)||this.isGroupColumnEntry(a)||this.isTreeColumnEntry(a)||this.isSelectionColumnEntry(a)||e.shiftKey||e.ctrlKey||e.metaKey)&&e.preventDefault(),this.deps.eventBus.emit(`cellClicked`,{rowId:i,colId:a,rowIndex:o,rowNode:s}),this.isIndexColumnEntry(a)?this.applyIndexFocus(i,o,a,{ctrlKey:e.ctrlKey||e.metaKey,shiftKey:e.shiftKey,toggleOnReselect:!0}):(this.clearIndexFocusIfNeeded(a),this.isExpandColumnEntry(a)?this.applyRowExpansionToggle(i,o,a):this.isSelectionColumnEntry(a)&&this.applyRowSelection(i,o,a,{ctrlKey:e.ctrlKey||e.metaKey,shiftKey:e.shiftKey,toggleOnReselect:!0})),this.setFocusedCell({rowId:i,colId:a,rowIndex:o,colIndex:this.getColIndex(a)}),this.deps.viewportEl.focus()};handleViewportKeyDown=e=>{if(e.key===`Escape`&&this.deps.isCommitting()){e.preventDefault(),this.deps.cancelCommit();return}if(this.deps.isEditing())return;if(e.key===`F2`&&e.shiftKey){this.cellCommentSession?.handleShiftF2()&&e.preventDefault();return}let t=this.focusController.keyToFocusDirection(e.key);if(t){if(e.preventDefault(),e.altKey&&(t===`left`||t===`right`)&&this.columnResizeSession.tryKeyboardResize(t,e.shiftKey)||e.shiftKey&&(t===`left`||t===`right`)&&this.focusController.tryMoveFocusedHeaderColumn(t))return;let n=this.cellRangeInteraction.onArrowKey(t,e.shiftKey);e.ctrlKey||e.metaKey?this.focusController.navigateFocusToEdge(t):this.focusController.navigateFocus(t),n&&!e.shiftKey&&this.cellRangeInteraction.selectFocusedCellRange();return}if(e.key===`Delete`||e.key===`Backspace`){this.cellRangeInteraction.handleDeleteKey()&&e.preventDefault();return}if((e.ctrlKey||e.metaKey)&&!e.shiftKey&&!e.altKey&&e.key.toLowerCase()===`c`){this.deps.copyCellSelectionToClipboard?.()&&e.preventDefault();return}if((e.ctrlKey||e.metaKey)&&!e.shiftKey&&!e.altKey&&e.key.toLowerCase()===`v`){this.deps.isCellSelectionEnabled?.()&&this.deps.getCellSelectionOptions?.().enableCellPaste&&(e.preventDefault(),this.deps.pasteCellSelectionFromClipboard?.());return}if(e.key===`Enter`){if(e.preventDefault(),this.focusController.toggleHeaderSortFromFocus()||this.focusController.toggleHeaderSelectionFromFocus()||this.focusController.toggleIndexFocusFromFocus()||this.focusController.toggleRowExpandFromFocus()||this.focusController.toggleRowGroupFromFocus()||this.focusController.toggleTreeTableFromFocus()||this.focusController.toggleRowSelectionFromFocus())return;this.cellCommentSession?.closeAll(),this.focusController.startEditingFocusedCell();return}if(e.key===` `||e.code===`Space`){if(e.preventDefault(),this.focusController.toggleHeaderSortFromFocus()||this.focusController.toggleHeaderSelectionFromFocus()||this.focusController.toggleIndexFocusFromFocus()||this.focusController.toggleInlineEditorFromFocus()||this.focusController.toggleRowExpandFromFocus()||this.focusController.toggleRowGroupFromFocus()||this.focusController.toggleTreeTableFromFocus())return;this.focusController.toggleRowSelectionFromFocus();return}e.key===`Tab`&&(e.preventDefault(),this.focusController.navigateTab(e.shiftKey))};handleViewportKeyUp=e=>{this.columnResizeSession.handleKeyUp(e)};handleCellClick=async e=>{if(e.button!==0||(this.deps.isCommitting()&&(e.preventDefault(),await this.deps.awaitCommitIdle()),e.ctrlKey||e.metaKey||e.shiftKey))return;if(this.suppressColumnClick){this.suppressColumnClick=!1;return}let t=Yg(this.deps.rowModel,e.target);if(!t)return;if(this.emitRowPointerEvent(`rowClicked`,t),this.cellRangeInteraction.tryClearOnPlainClick(t),this.deps.isEditing()){if(Fn(this.deps.editBehavior)&&this.deps.getEditingRowId()===t.rowId&&t.colId!==this.deps.getEditingCell()?.colId&&this.deps.focusRowEditingColumn?.(t.colId))return;if(this.isSameEditingTarget(t))return this.cellCommentSession?.handleCellClick(e,t),void 0;if(await this.deps.commitEditing(),this.deps.isEditing())return}if(this.focusController.focusCellTarget(t),this.cellCommentSession?.handleCellClick(e,t))return;if(Fn(this.deps.editBehavior)){let e=this.deps.columnModel.getColumnById(t.colId);if(!e||Nn(e,this.deps.editType)!==`singleClick`)return;this.cellCommentSession?.closeAll(),this.deps.tryStartRowEditing(t);return}let n=this.deps.columnModel.getColumnById(t.colId);if(n){if(ka(n)){n.cellEditor===`checkbox`&&!this.focusController.isInlineCheckboxClickTarget(e.target)&&this.focusController.toggleInlineCheckboxAtCell(t.rowId,t.colId,t.rowIndex);return}Nn(n,this.deps.editType)===`singleClick`&&(this.cellCommentSession?.closeAll(),this.deps.tryStartCellEditing(t))}};handleCellDoubleClick=async e=>{if(e.button!==0||(this.deps.isCommitting()&&(e.preventDefault(),await this.deps.awaitCommitIdle()),e.ctrlKey||e.metaKey||e.shiftKey))return;let t=Yg(this.deps.rowModel,e.target);if(!t||(this.emitRowPointerEvent(`rowDoubleClicked`,t),this.deps.isEditing()&&(this.isSameEditingTarget(t)||(await this.deps.commitEditing(),this.deps.isEditing()))))return;this.focusController.focusCellTarget(t);let n=this.deps.columnModel.getColumnById(t.colId);if(Fn(this.deps.editBehavior)){if(!n||Nn(n,this.deps.editType)!==`doubleClick`)return;this.cellCommentSession?.closeAll(),this.deps.tryStartRowEditing(t);return}!n||Nn(n,this.deps.editType)!==`doubleClick`||ka(n)||(this.cellCommentSession?.closeAll(),this.deps.tryStartCellEditing(t))};async commitEditingForCellRangeInteraction(e,t){return!this.deps.isEditing()||this.isSameEditingTarget(e)||t.target instanceof Element&&w(t.target)?!0:(this.deps.isCommitting()&&await this.deps.awaitCommitIdle(),await this.deps.commitEditing(),!this.deps.isEditing())}isSameEditingTarget(e){if(!this.deps.isEditing())return!1;if(Fn(this.deps.editBehavior))return this.deps.getEditingRowId()===e.rowId;let t=this.deps.getEditingCell();return t?.rowId===e.rowId&&t?.colId===e.colId}emitRowPointerEvent(e,t){Qt(t.rowNode)&&this.deps.eventBus.emit(e,{rowId:t.rowId,colId:t.colId,rowIndex:t.rowIndex,rowNode:t.rowNode})}resolveColumnDragKind(e,t){if(t.shiftKey||t.ctrlKey||t.metaKey)return null;let n=Q(t.target);return n?.closest(`.mg-cell__row-resize-handle`)||n?.closest(`.mg-cell__row-drag-handle`)?null:this.isIndexColumnEntry(e)&&this.deps.indexFocusService?.isMultiple()?`index`:this.isSelectionColumnEntry(e)&&this.deps.selectionService?.isMultiple()?`selection`:null}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 cx(e){return ze(e).mode}function lx(e){return ze(e)}var ux=`mg-header-cell--filtered`,dx=`.mg-header-cell__column-handle`;function fx(e,t,n){let r=Pi(t,n);e.classList.toggle(ux,r);let i=e.querySelector(dx);i&&(r?i.setAttribute(`aria-pressed`,`true`):i.removeAttribute(`aria-pressed`))}function px(e,t){let n=Array.isArray(e)?e:[e];for(let e of n){let n=Array.from(e.querySelectorAll(`.mg-header-cell[data-col-id]`));for(let e of n){let n=e.dataset.colId;n&&fx(e,n,t)}}}function mx(e){return e??`center`}function hx(){let e=document.createElement(`div`);return e.className=`mg-header-cell__label`,e}function gx(e){let t=document.createElement(`span`);return t.className=`mg-header-cell__text`,t.textContent=I(e.colId)?e.label??``:e.label??e.prop??e.colId,t}function _x(e){return I(e.colId)||L(e.colId)||R(e.colId)?!1:e.sortable||e.movable||e.filterable}function vx(e){let t=document.createElement(`span`);return t.className=`mg-header-cell__column-handle`,t.title=`列操作`,t.setAttribute(`aria-haspopup`,`menu`),t.setAttribute(`aria-expanded`,`false`),t.tabIndex=-1,t.dataset.columnHandleMovable=e.movable?`true`:`false`,t.dataset.columnHandleSortable=e.sortable?`true`:`false`,t.dataset.columnHandleFilterable=e.filterable?`true`:`false`,t.append(Rf()),t}function yx(e){if(!_x(e))return null;let t=document.createElement(`div`);return t.className=`mg-header-cell__chrome`,t.append(vx({movable:e.movable,sortable:e.sortable,filterable:e.filterable})),t}function bx(){let e=document.createElement(`div`);return e.className=`mg-header-cell__resize-handle`,e.setAttribute(`role`,`presentation`),e.dataset.resizable=`true`,e}function xx(e,t){t&&e.append(bx())}function Sx(){return Bf()}function Cx(e){return zf(e)}function wx(e,t,n){let r=e.querySelector(`.mg-header-cell__sort`);return r||(r=document.createElement(`span`),r.className=`mg-header-cell__sort`,r.setAttribute(`aria-hidden`,`true`),n?e.insertBefore(r,t):e.append(r)),r}function Tx(e){e.querySelector(`.mg-header-cell__sort`)?.remove()}function Ex(e,t,n,r){let i=e.querySelector(`.mg-header-cell__label`);if(!i||!t.sortable)return;let a=i.querySelector(`.mg-header-cell__text`);if(!a)return;let o=mx(t.headerAlign)===`right`,s=Dy(t.colId,n);if(e.classList.remove(`mg-header-cell--sort-hint`),s===`asc`||s===`desc`){wx(i,a,o).replaceChildren(Cx(s));return}if(r){wx(i,a,o).replaceChildren(Sx()),e.classList.add(`mg-header-cell--sort-hint`);return}Tx(i)}function Dx(e,t){let n=mx(t.headerAlign),r=hx(),i=gx(t);r.append(i);let a=yx(t);n===`right`&&a?e.append(a,r):a?e.append(r,a):e.append(r)}function Ox(e,t,n,r){if(!t.sortable){e.classList.remove(`mg-header-cell--sortable`,`mg-header-cell--sorted`,`mg-header-cell--sorted-asc`,`mg-header-cell--sorted-desc`,`mg-header-cell--sort-hint`),e.removeAttribute(`aria-sort`);let t=e.querySelector(`.mg-header-cell__label`);t&&Tx(t);return}e.classList.add(`mg-header-cell--sortable`),e.setAttribute(`role`,`columnheader`);let i=Dy(t.colId,n);e.setAttribute(`aria-sort`,Oy(i)),e.classList.remove(`mg-header-cell--sorted-asc`,`mg-header-cell--sorted-desc`,`mg-header-cell--sorted`),i===`asc`?e.classList.add(`mg-header-cell--sorted`,`mg-header-cell--sorted-asc`):i===`desc`&&e.classList.add(`mg-header-cell--sorted`,`mg-header-cell--sorted-desc`),Ex(e,t,n,r)}function kx(e,t){let n=_x(t),r=!I(t.colId)&&!L(t.colId)&&!R(t.colId);e.classList.toggle(`mg-header-cell--has-column-handle`,n),e.classList.toggle(`mg-header-cell--movable`,r&&t.movable),e.classList.toggle(`mg-header-cell--filterable`,r&&t.filterable)}function Ax(e,t){e.classList.toggle(`mg-header-cell--resizable`,t.resizable)}function jx(e,t,n,r,i,a,o,s={}){e.replaceChildren();for(let c of t){let t=n.getColumn(c);if(!t)continue;let l=document.createElement(`div`);if(l.className=`mg-header-cell`,l.dataset.colId=t.colId,L(t.colId))if(l.classList.add(`mg-header-cell--selection`),o?.enabled&&o.mode===`multiple`){let e=vf({checked:!1,ariaLabel:o.selectionColumn.selectAllLabel});e.classList.add(_f),l.append(e)}else{let e=document.createElement(`span`);e.className=`mg-header-cell__text`,e.textContent=``,l.append(e)}else if(I(t.colId)){let e=gx(t);l.append(e),l.classList.add(`mg-header-cell--index`)}else if(R(t.colId)){let e=document.createElement(`span`);e.className=`mg-header-cell__text`,e.textContent=``,l.append(e),l.classList.add(`mg-header-cell--expand`)}else if(B(t.colId)){let e=document.createElement(`span`);e.className=`mg-header-cell__text`,e.textContent=t.label??`分组`,l.append(e),l.classList.add(`mg-header-cell--group`)}else Dx(l,t),xx(l,t.resizable);Ox(l,t,r,a),kx(l,t),Ax(l,t),fx(l,t.colId,s),Ao(l,ko(t,n),`mg-header-cell`),ci(l,t.headerAlign,t.headerValign,`mg-header-cell`),t.validationRequired&&l.classList.add(`mg-header-cell--required`),i.hasColErrors(t.colId)&&l.classList.add(`mg-header-cell--invalid`),e.appendChild(l)}}function Mx(e){let{headerLeftLaneEl:t,headerCenterLaneEl:n,headerRightLaneEl:r,columnModel:i,centerWindow:a,sortModel:o,validationFeedback:s,selectionColumnOptions:c,showUnsortedSortHintOnHover:l=!1,filterModel:u={}}=e,d=Wo(i,a);t.style.width=`${i.getLeftFixedWidth()}px`,n.style.width=`${i.getCenterTotalWidth()}px`,r.style.width=`${i.getRightFixedWidth()}px`,jx(t,d.left,i,o,s,l,c,u),jx(n,d.center,i,o,s,l,c,u),jx(r,d.right,i,o,s,l,c,u)}function Nx(e,t,n,r){e.style.width=`${r.getLeftFixedWidth()}px`,t.style.width=`${r.getCenterTotalWidth()}px`,n.style.width=`${r.getRightFixedWidth()}px`}function Px(e,t,n,r){jo(e,r,`mg-header-cell`),jo(t,r,`mg-header-cell`),jo(n,r,`mg-header-cell`)}function Fx(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 Ix(e,t){return Math.max(0,e.getTotalWidth()-t)}function Lx(e,t,n){let r=Ix(e,n);return Math.max(0,Math.min(t,r))}function Rx(e,t,n,r,i){let a=Lx(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=zx(e,t);if(s<0)return a===n?null:a;let c=Fx(s,e,a,r);return c!==null&&(a=Lx(e,c,r)),a===n?null:a}function zx(e,t){for(let n=0;n<e.getColumnCount();n++)if(e.getColumn(n)?.colId===t)return n;return-1}function Bx(e){let t=e.scrollHeight>e.clientHeight+1,n=e.scrollWidth>e.clientWidth+1,r=e.totalHeight<e.clientHeight-.5,i=e.totalWidth<e.clientWidth-.5,a=e.scrollTop+e.clientHeight>=e.scrollHeight-1;return{hasVScrollbar:t,hasHScrollbar:n,innerRightClosesTable:t||i,innerBottomClosesTable:!(!r&&!n&&a)}}function Vx(e){return e.parentElement?.parentElement??null}function Hx(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 Ux(e,t,n){return n>0&&e>0&&e<t?Math.floor(t):e}function Wx(e,t,n,r){let i=Math.max(0,e-t);if(r===0||e<=16777216)return{totalHeight:e,viewportHeight:t,rowHeight:n,rowCount:r,compressed:!1,physicalSpacerHeight:Ux(e,t,r),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 Gx(e,t){return t.compressed?e>=t.physicalMaxScroll?t.logicalMaxScroll:qx(e*t.rowHeight,0,t.logicalMaxScroll):qx(e,0,t.logicalMaxScroll)}function Kx(e,t){return t.compressed?e>=t.logicalMaxScroll?t.physicalMaxScroll:qx(e/t.rowHeight,0,t.physicalMaxScroll):qx(e,0,t.physicalMaxScroll)}function qx(e,t,n){return Math.max(t,Math.min(e,n))}var Jx=null;function Yx(e=document){if(Jx!==null)return Jx;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&&Zx(e)?(Jx=8,Jx):(Jx=n,Jx)}function Xx(){Jx=null}function Zx(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 Qx(e){if(!e.hasVScrollbar)return{layout:0,visual:0};let t=e.overlayScrollbars??Zx(),n=e.measuredWidth??Yx();if(t)return{layout:0,visual:n};let r=e.liveGutterWidth>0?e.liveGutterWidth:n;return{layout:r,visual:r}}function $x(e,t,n){let r=Math.max(0,t.offsetWidth-t.clientWidth),i=Qx({hasVScrollbar:t.scrollHeight>t.clientHeight+1,liveGutterWidth:r,overlayScrollbars:n});e.rootEl.style.setProperty(`--mg-v-scrollbar-layout`,`${i.layout}px`),e.rootEl.style.setProperty(`--mg-v-scrollbar-visual`,`${i.visual}px`);let a=i.layout>0?0:i.visual;return e.rootEl.style.setProperty(`--mg-v-scrollbar-visual-overlay`,`${a}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),i}var eS=class{deps;lastScrollLeft=0;onAfterRedraw=null;resizeObserver=null;overlayScrollbars=null;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.resizeObserver?.disconnect(),this.resizeObserver=null}getLogicalScrollTop(){return Gx(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()}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=Ix(this.deps.columnModel,t),r=Math.max(0,Math.min(this.deps.viewportEl.scrollLeft+e,n));r!==this.deps.viewportEl.scrollLeft&&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=Fx(e,this.deps.columnModel,n,t);if(r===null)return;let i=Ix(this.deps.columnModel,t),a=Math.max(0,Math.min(r,i));a!==n&&this.scrollTo(this.deps.scrollBridge.getScrollTop(),a)}syncHorizontalLayout(){let e=this.deps.columnModel.getTotalWidth();this.syncHeaderFooterRowWidth(),this.deps.spacerEl.style.minWidth=`${e}px`,this.deps.rowsContainerEl.style.width=`${e}px`,Nx(this.deps.headerLeftLaneEl,this.deps.headerCenterLaneEl,this.deps.headerRightLaneEl,this.deps.columnModel),this.syncFooterHorizontalLayout(),this.syncFloatingFilterHorizontalLayout(),this.syncScrollbarGutter(),this.syncBorderClosureState(),this.syncIndexColumnFill()}syncColumnCellLayouts(){Px(this.deps.headerLeftLaneEl,this.deps.headerCenterLaneEl,this.deps.headerRightLaneEl,this.deps.columnModel),this.deps.footerLeftLaneEl&&this.deps.footerCenterLaneEl&&this.deps.footerRightLaneEl&&nc(this.deps.footerLeftLaneEl,this.deps.footerCenterLaneEl,this.deps.footerRightLaneEl,this.deps.columnModel),this.deps.floatingFilterLeftLaneEl&&this.deps.floatingFilterCenterLaneEl&&this.deps.floatingFilterRightLaneEl&&tb(this.deps.floatingFilterLeftLaneEl,this.deps.floatingFilterCenterLaneEl,this.deps.floatingFilterRightLaneEl,this.deps.columnModel)}syncBorderClosureState(){let e=Vx(this.deps.rootEl);if(!e)return;let t=this.deps.viewportEl;Hx(e,Bx({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()}))}syncViewportHeight(){let e=this.getViewportHeight(),t=this.resolveLogicalScrollTopForSync(),n=this.getScrollRange(e);this.applySpacerLayoutFromRange(e,n),this.syncScrollMode(e);let r=Math.min(t,n.logicalMaxScroll);this.deps.scrollBridge.syncScrollTop(r),this.applyPhysicalScrollFromLogical(r),this.syncHeaderFooterRowWidth(),this.syncScrollbarGutter(),this.syncBorderClosureState(),this.syncIndexColumnFill()}scrollGridIfNeeded(){let e=this.deps.viewportEl.scrollLeft,t=!1;return t=this.deps.scrollBridge.scrollGridIfNeeded(t=>{this.redrawViewport(t,e)})||t,e!==this.lastScrollLeft&&(this.lastScrollLeft=e,t||this.redrawViewport(this.deps.scrollBridge.getScrollTop(),e),t=!0),t}redrawImmediately(){if(this.deps.isDestroyed())return;let e=this.getLogicalScrollTop();this.deps.scrollBridge.syncScrollTop(e),this.lastScrollLeft=this.deps.viewportEl.scrollLeft,this.deps.frameService.flushAllFrames(),this.redrawViewport(e,this.deps.viewportEl.scrollLeft),this.deps.frameService.flushAllFrames(),this.deps.applySelectionVisuals(),this.deps.applyFocusVisuals(),this.syncBorderClosureState()}resetScrollOnSetData(){this.getScrollRange().compressed&&(this.deps.scrollBridge.syncScrollTop(0),this.deps.viewportEl.scrollTop=0,this.deps.viewportEl.scrollLeft=0,this.lastScrollLeft=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();if(this.deps.scrollBridge.notifyScroll(e),this.deps.frameService.setScrollDirection(this.deps.scrollBridge.isScrollGoingDown()),this.deps.headerScrollEl.scrollLeft=this.deps.viewportEl.scrollLeft,this.syncFooterScrollLeft(),this.syncFloatingFilterScrollLeft(),this.syncBorderClosureState(),this.syncPinnedRows(),this.getScrollRange().compressed){this.deps.scrollBridge.syncScrollTop(e),this.redrawViewport(e,this.deps.viewportEl.scrollLeft),this.deps.frameService.flushAllFrames(),this.deps.onBodyScroll(e,this.deps.viewportEl.scrollLeft),this.deps.onScroll?.();return}this.deps.frameService.schedule(),this.deps.onBodyScroll(e,this.deps.viewportEl.scrollLeft),this.deps.onScroll?.(),this.deps.applyCellRangeScrollVisuals?.()};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,o=Lx(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.renderHeader(l),this.deps.refreshFooter?.(),this.deps.refreshFloatingFilter?.(),this.deps.applyFocusVisuals()),this.syncFooterScrollLeft(),this.syncFloatingFilterScrollLeft(),this.syncPinnedRows(),this.deps.rowRenderer.redraw(r,s,l,c),this.deps.applyCellRangeVisuals?.(),this.syncIndexColumnFill(),this.onAfterRedraw?.()}syncScrollbarGutter(){$x({rootEl:this.deps.rootEl,headerViewportEl:this.deps.headerViewportEl,footerViewportEl:this.deps.footerViewportEl,floatingFilterViewportEl:this.deps.floatingFilterViewportEl,magicGridEl:Vx(this.deps.rootEl)},this.deps.viewportEl,this.getOverlayScrollbars())}getOverlayScrollbars(){return this.overlayScrollbars===null&&(this.overlayScrollbars=Zx()),this.overlayScrollbars}handleViewportResize(){if(this.deps.isDestroyed())return;Xx(),this.overlayScrollbars=null;let e=this.getViewportHeight(),t=this.getScrollRange(e);this.applySpacerLayoutFromRange(e,t),this.syncHeaderFooterRowWidth(),this.syncScrollbarGutter(),this.syncBorderClosureState(),this.syncIndexColumnFill()}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||(tc(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||Qy([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||(eb(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){Mx({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()})}refreshHeader(){this.deps.isDestroyed()||(this.deps.onHeaderRefresh?.(),this.renderHeader(this.deps.columnViewport.getWindow()))}refreshHeaderFilterActiveState(){this.deps.isDestroyed()||px([this.deps.headerLeftLaneEl,this.deps.headerCenterLaneEl,this.deps.headerRightLaneEl],this.deps.rowModel.getFilterModel())}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`))}syncIndexColumnFill(){let{indexColumnFillHostEl:e,indexColumnFillEl:t}=this.deps;if(!this.deps.showIndexColumn){e.hidden=!0;return}let n=this.deps.columnModel.getColumnById(Me);if(!n||n.hidden){e.hidden=!0;return}let r=this.deps.rowModel.getRowCount(),i=this.deps.rowModel.getTotalHeight(),a=this.getViewportHeight(),o=Math.floor(a),s=this.getLogicalScrollTop(),c=Math.max(0,Math.floor(s+o-i));if(r===0||c<=0){e.hidden=!0;return}let l=this.getScrollRange(a).compressed?i-s:i;e.hidden=!1,t.style.top=`${l}px`,t.style.left=`${n.left}px`,t.style.width=`${n.width}px`,t.style.height=`${c}px`}getScrollRange(e){let t=e??this.getViewportHeight();return Wx(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){let t=this.getScrollRange();this.deps.viewportEl.scrollTop=Kx(e,t)}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 tS(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=>!mu(e.colId)),o=i.filter(e=>mu(e.colId)).sort((e,t)=>e.defOrder-t.defOrder);n.push(...a.map(e=>e.colId),...o.map(e=>e.colId))}return n}function nS(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}function rS(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 iS=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=di({...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=pi({...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=Rx(this.deps.columnModel,e,t,n,r);i!==null&&(t=i)}let i=Lx(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`,gi(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}=ho(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`,gi(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.deps.columnViewport.invalidate(),this.deps.viewport.syncHorizontalLayout(),this.deps.viewport.refreshHeader(),this.deps.viewport.redrawImmediately(),this.deps.refreshFooter(),this.deps.refreshFloatingFilter(),this.refreshFlexedColumns();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?.(),!0}resetColumnOrder(){let e=this.deps.columnModel.getColumns(),t=e.map(e=>e.colId),n=tS(e);if(nS(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=rS(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.deps.columnViewport.invalidate(),this.deps.viewport.syncHorizontalLayout(),this.applyHorizontalScrollAfterColumnLayout(),this.deps.viewport.refreshHeader(),this.deps.viewport.redrawImmediately(),this.deps.refreshFooter(),this.deps.refreshFloatingFilter(),this.refreshFlexedColumns(),this.deps.eventBus.emit(`columnHiddenChanged`,{colIds:r,hidden:t,source:n}),this.deps.clearCellSelection?.(),!0)}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`,gi(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.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)}},aS=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?Yc({rows:this.deps.rowModel.getSourceRows(),colId:e,filterType:t.filterType,getFilterValue:t=>this.getColumnFilterValue(t,e)}):[]}isColumnFilterActive(e){return Pi(e,this.deps.rowModel.getFilterModel())}isAnyFilterActive(){return Fi(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?cc(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.rowRenderer.invalidate(),e.redrawImmediately(),e.refreshHeaderFilterActiveState(),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 oS(e){return e.rowKind==null||e.rowKind===`data`}function sS(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;oS(t)&&i.push(t.id)}return i}function cS(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&&oS(n)&&i.push(n.id)}return i}function lS(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=cS(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 uS(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=sS(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 dS(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=cS(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 fS=class{deps;selectableFn;reserveSelection;constructor(e,t,n){this.deps=e,this.selectableFn=t,this.reserveSelection=n}setSelectable(e){this.selectableFn=Fr(e),this.deps.rowRenderer.setIsRowNodeSelectable(e=>this.isRowNodeSelectable(e)),this.applySelectionVisuals()}setReserveSelection(e){this.reserveSelection=e}toggleRowSelection(e,t,n){if(!this.deps.selectionService)return;let r=dl(e),i=!1,a=this.deps.selectionService.isMultiple(),o=[];for(let e of r){let r=this.deps.rowModel.getRowById(e);if(!r)continue;let s=this.deps.selectionService.isSelected(e),c=n===!0||this.isRowNodeSelectable(r),l=!1;if(t===void 0)if(s){if(!c)continue;this.deps.selectionService.removeRowIds([e])&&(l=!0)}else c&&(a?this.deps.selectionService.addRowId(e,r.rowIndex)&&(l=!0):this.deps.selectionService.replaceWithRowIds([e],r.rowIndex)&&(l=!0));else if(t){if(s||!c)continue;a?this.deps.selectionService.addRowId(e,r.rowIndex)&&(l=!0):this.deps.selectionService.replaceWithRowIds([e],r.rowIndex)&&(l=!0)}else if(s){if(!c)continue;this.deps.selectionService.removeRowIds([e])&&(l=!0)}l&&(i=!0,o.push({rowId:e,rowIndex:r.rowIndex}))}i&&(this.syncTreeSelectionCascade(o),this.applySelectionVisuals(),this.deps.eventBus.emit(`selectionChanged`,{selectedRowIds:this.deps.selectionService.getSelectedRowIds()}))}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)uS({displayRows:t,rowId:e,selected:n.has(e),groupSelectsChildren:!0,selectedIds:n});dS(t,n),this.deps.selectionService.replaceWithRowIds([...n],r.length>0?r[r.length-1].rowIndex:-1)}setIndexFocus(e){if(!this.deps.indexFocusService)return;let t=dl(e).map(e=>{let t=this.deps.rowModel.getRowIndexById(e);return t>=0?{id:e,rowIndex:t}:null}).filter(e=>e!=null),n=!1;t.length===0?(n=this.deps.indexFocusService.getFocusedRowIds().length>0,n&&this.deps.indexFocusService.clear()):n=this.deps.indexFocusService.isMultiple()?this.deps.indexFocusService.replaceWithRowIds(t.map(e=>e.id),t[0].rowIndex):this.deps.indexFocusService.replaceWithRowIds([t[0].id],t[0].rowIndex),n&&(this.applyIndexFocusVisuals({syncToSelectionColumn:!1}),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()}))}isRowNodeSelectable(e){return z(e)||Zt(e)?!1:Ir(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?.()?lS(this.deps.rowModel.rowsToDisplay,e):new Set;this.deps.rowRenderer.refreshSelection(e,t),Cf(this.deps.mountEl,{selectionColumnOptions:this.deps.selectionColumnOptions,selectedIds:e,indeterminateIds:t,rowModel:this.deps.rowModel}),this.deps.applyCellRangeVisuals?.()}refreshSelectionAfterDataChange(){this.applySelectionVisuals()}applyIndexFocusVisuals(e={}){if(!this.deps.indexFocusService)return;let t=new Set(this.deps.indexFocusService.getFocusedRowIds());this.deps.rowRenderer.refreshIndexFocus(t),e.syncToSelectionColumn!==!1&&this.maybeSyncIndexFocusToSelection()}onRowsRemoved(e){this.deps.selectionService?.removeRowIds(e)&&(this.applySelectionVisuals(),this.deps.eventBus.emit(`selectionChanged`,{selectedRowIds:this.deps.selectionService.getSelectedRowIds()})),this.deps.indexFocusService?.removeRowIds(e)&&(this.applyIndexFocusVisuals({syncToSelectionColumn:!1}),this.deps.eventBus.emit(`indexFocusChanged`,{focusedRowIds:this.deps.indexFocusService.getFocusedRowIds()}))}finalizePromoteRowId(e,t){this.deps.selectionService?.migrateRowId(e,t)&&(this.applySelectionVisuals(),this.deps.eventBus.emit(`selectionChanged`,{selectedRowIds:this.deps.selectionService.getSelectedRowIds()})),this.deps.indexFocusService?.migrateRowId(e,t)&&(this.applyIndexFocusVisuals({syncToSelectionColumn:!1}),this.deps.eventBus.emit(`indexFocusChanged`,{focusedRowIds:this.deps.indexFocusService.getFocusedRowIds()}))}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}maybeSyncIndexFocusToSelection(){if(!this.deps.indexColumnOptions.indexColumn.syncToSelectionColumn||!this.deps.indexFocusService||!this.deps.selectionService)return;let e=this.deps.indexColumnOptions.indexColumn.focusMode,t=this.deps.selectionColumnOptions.mode;if(!Rr(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()});return}let r=zr(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()}))}};function pS(e,t){let n={...e.data};return e.isTransient&&(n[t]=null),n}function mS(e,t){return e.map(e=>pS(e,t))}function hS(e,t){let n=e.indexMode??`source`,r=Am(e.index,n,t);return{add:e.rows.map((e,t)=>({data:e.data,index:r===void 0?void 0:r+t}))}}function gS(e,t){let n=new Set(fl(e.rowIds)??[]);if(e.indexes?.length){let r=e.indexMode??`source`;for(let i of jm(e.indexes,r,t))n.add(i)}return n.size===0?{}:{remove:[...n]}}function _S(e){return e.remove?.length?e.remove.filter(e=>typeof e==`string`):[]}function vS(e,t,n){return{rows:e.map(e=>({rowId:e.id,rowIndex:n(e.id),data:pS(e,t),isTransient:e.isTransient??!1}))}}function yS(e,t){return{rows:e.map(e=>({rowId:e.id,data:pS(e,t)}))}}function bS(e,t,n){return{oldRowId:e,newRowId:t.id,data:pS(t,n)}}function xS(e,t){return e.remove?.length?e.remove.map(e=>{if(typeof e==`string`)return e;let n=e[t];if(n==null)throw new pl(`Missing rowKey "${t}" in remove item`);return String(n)}):[]}function SS(e,t,n,r){let i=e[t];return i==null?r?.find(t=>t.data===e&&t.isTransient):n(String(i))}function CS(e,t,n){return!e.add?.length||!n?.rows?.length?e:{...e,add:e.add.map((e,r)=>{let i=n.rows?.[r];if(!i)return e;let a={...Vd(e,t)},o=i.data?{...a,...i.data}:a;return i.businessId!==void 0&&(o[t]=i.businessId),Bd(e,t)?{...e,data:o}:o})}}async function wS(e,t){try{return await t()}catch(t){throw t instanceof pl?t:new pl(`${e} persist failed`,t)}}async function TS(e,t){let{handlers:n,rowKey:r,getRowById:i,sourceRows:a,signal:o=new AbortController().signal}=t;if(!n?.add&&!n?.update&&!n?.remove)return e;let s=e;if(n.remove&&e.remove?.length){let t=xS(e,r),a=t.map(e=>{let t=i(e);return{rowId:e,data:t?{...t.data}:{}}});await wS(`remove`,()=>n.remove({rowIds:t,rows:a,signal:o}))}if(n.update&&e.update?.length){let t=e.update.map(e=>{let t=SS(e,r,i,a);if(!t)throw new pl(`Update target row not found for rowKey "${r}"`);return{rowId:t.id,data:e}});await wS(`update`,()=>n.update({rows:t,signal:o}))}if(n.add&&e.add?.length){let t=e.add.map(e=>({data:Vd(e,r)})),i=e.add[0],a=i?Hd(i,r):void 0,c=i&&Bd(i,r)?i.indexMode:void 0,l=await wS(`add`,()=>n.add({rows:t,index:a,indexMode:c,signal:o}));s=CS(s,r,l)}return s}var ES=class{deps;pendingTransaction=null;rowMoveService;constructor(e){this.deps=e,this.rowMoveService=new Sh({getSourceRows:()=>this.deps.rowModel.getSourceRows(),getDisplayRows:()=>this.deps.rowModel.rowsToDisplay,getSortModelLength:()=>this.deps.rowModel.getSortModel().length,getFilterModelKeyCount:()=>Object.keys(this.deps.rowModel.getFilterModel()).length,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){let t=await TS(e,{rowKey:this.deps.rowKey,handlers:this.deps.asyncRowMutation,getRowById:e=>this.deps.rowModel.getRowById(e),sourceRows:this.deps.rowModel.getSourceRows()}),n=_S(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)}commitTransaction(e){let t=this.deps.rowModel.applyTransaction(e);return this.deps.viewport.syncViewportHeight(),this.queueTransactionFlush(t),t}async addRows(e){let t=hS(e,this.createRowIndexContext());return this.applyTransaction(t)}async removeRows(e){let t=gS(e.rowIds?{...e,rowIds:fl(e.rowIds)}:e,this.createRowIndexContext());return _S(t).length===0?{add:[],remove:[],update:[]}:this.applyTransaction(t)}moveRow(e,t=`api`){let n=this.rowMoveService.moveRow(e,t);return n.moved&&this.afterRowOrderChanged(),n}moveRows(e,t=`api`){let n=this.rowMoveService.moveRows(e,t);return n.moved&&this.afterRowOrderChanged(),n}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}:Im(r,i)??void 0;if(!Gb({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`,K(i,a,e,t,!0,c))}}applyRowDragPlan(e,t=`uiRowDrag`){this.deps.rowModel.setSourceRows([...e.rows]),this.afterRowOrderChanged();for(let n of e.moves)this.deps.eventBus.emit(`rowMoved`,K(n.rowId,n.fromIndex,n.toIndex,t,!0,e.treeDrop))}afterRowOrderChanged(){this.deps.viewport.syncViewportHeight(),this.deps.refreshCellSpans(),this.deps.rowRenderer.setValueCacheVersion(this.deps.valueCache.getVersion()),this.deps.rowRenderer.invalidate(),this.deps.viewport.redrawImmediately(),this.deps.selectionOps.refreshSelectionAfterDataChange(),this.deps.refreshFooter()}getData(e){return mS(e?.sourceOrder===!1?this.deps.rowModel.rowsToDisplay:this.deps.rowModel.getSourceRows(),this.deps.rowModel.getRowKey())}promoteRowId(e){let t=X(e.rowId),{businessId:n}=e;if(this.deps.isEditingTargetRow(t))return{ok:!1,reason:`Row is being edited`};let r=this.deps.rowModel.promoteRowId(t,n);if(!r.ok)return r;this.finalizePromoteRowId(t,r.rowId);let i=this.deps.rowModel.getRowById(r.rowId);return i&&this.deps.eventBus.emit(`rowIdPromoted`,bS(t,i,this.deps.rowModel.getRowKey())),{ok:!0,rowId:Tr(r.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 km({sourceRows:this.deps.rowModel.getSourceRows(),displayRows:this.deps.rowModel.rowsToDisplay,sortModelLength:this.deps.rowModel.getSortModel().length,filterModelKeyCount:Object.keys(this.deps.rowModel.getFilterModel()).length})}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){this.deps.rowRenderer.migrateRowId(e,t),this.deps.validationFeedback.migrateRowId(e,t,this.deps.mountEl);let n=this.deps.cellFocusService.getFocusedCell();n?.rowId===e&&(this.deps.cellFocusService.setFocusedCell({...n,rowId:t}),this.deps.applyFocusVisuals()),this.deps.selectionOps.finalizePromoteRowId(e,t);let r=this.deps.rowModel.getSortModel().length>0||this.deps.filterOps.isAnyFilterActive();if(this.deps.refreshCellSpans(),this.deps.rowRenderer.setValueCacheVersion(this.deps.valueCache.getVersion()),r){this.deps.rowRenderer.invalidate(),this.deps.viewport.redrawImmediately();return}this.deps.rowRenderer.refreshRows({rowIds:[t],force:!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){this.emitRowMutationEvents(e);let t=e.add.length>0||e.remove.length>0||this.deps.rowModel.getSortModel().length>0||this.deps.filterOps.isAnyFilterActive();this.deps.refreshCellSpans(),this.deps.rowRenderer.setValueCacheVersion(this.deps.valueCache.getVersion()),t||e.update.length>0&&this.deps.isCellSpanActive()?(this.deps.rowRenderer.invalidate(),this.deps.viewport.redrawImmediately()):e.update.length>0&&(this.deps.rowRenderer.refreshRows({rowIds:e.update.map(e=>e.id)}),this.deps.frameService.flushAllFrames()),e.add.length>0&&this.scrollAddedRowsIntoView(e.add),this.deps.selectionOps.refreshSelectionAfterDataChange(),this.deps.refreshFooter(),this.deps.refreshOverlay?.()}scrollAddedRowsIntoView(e){let t=e[0];if(!t)return;let n=this.deps.rowModel.getRowIndexById(t.id);n<0||this.deps.ensureIndexVisible(n,`middle`)}emitRowMutationEvents(e){let t=this.deps.rowModel.getRowKey();e.add.length>0&&this.deps.eventBus.emit(`rowsAdded`,vS(e.add,t,e=>this.deps.rowModel.getSourceRowIndexById(e))),e.remove.length>0&&this.deps.eventBus.emit(`rowsRemoved`,yS(e.remove,t))}},DS=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=Zu({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 OS(e){return e?.rowIds?{...e,rowIds:fl(e.rowIds)}:e}function kS(e){return{...e,rowIds:fl(e.rowIds)}}function AS(e){return{...e,cells:e.cells.map(e=>({...e,rowId:X(e.rowId)}))}}function jS(e){return e?.rowIds?{...e,rowIds:fl(e.rowIds)}:e}function MS(e){return{...e,rowIds:fl(e.rowIds)}}function NS(e){return{...e,cells:e.cells.map(e=>({...e,rowId:X(e.rowId)}))}}function PS(e){return e>=1e6?2e3:e>=1e5?500:e>=1e4?200:e>=1e3?100:50}function FS(e){return{maxDomRows:80,maxSetDataMs:PS(e)}}function IS(e,t){let n=FS(t),r=e.activeDomRowCount<=n.maxDomRows,i=e.lastSetDataMs<=n.maxSetDataMs;return{domRowsPass:r,setDataPass:i,allPass:r&&i}}var LS=class{mountEl;rowModel;rowRenderer;frameService;scrollBridge;columnViewport;rootEl;rowsLayerEl;columnModel;valueCache=new am;changeDetection=new _;eventBus=new jr;rowKey;businessRowIdCtx;selectionService;indexFocusService;editorHost;editingService;rowEditingService;cellFocusService=new we;api;viewport;headerSortService;columnDragController=new sv;columnHandleMenuController;interaction;cellEditing;inlineCellEditorService;validationFeedback=new hr;invalidEditValueMode;rowValidator;asyncRowMutation;cellRenderersByColId;cellEditorsByColId;onUnmountRenderer;onUnmountEditor;summaryOptions;chromeNavigationOptions;indexColumnOptions;selectionColumnOptions;filterGridOptions;showUnsortedSortHintOnHover;columnSortOptions;resolvedSummaryRowHeight;footerRenderer=null;floatingFilterController=null;lastSetDataMs=0;columnResizeService;columnAutosizeService;columnFlexService;columnLayout;rowHeightService;rowAutoHeightService;rowDragOptions;onRowDragCommit;rowDragCommitService;cellSpanOptions;cellSpanService;rowExpansionOptions;rowExpansionService;rowGroupingOptions;rowGroupingService;treeTableOptions;treeTableService;treeLazyLoadService=null;rowSelectionOptions;userColumns;detailRowAutoHeightService;cellCommentOptions;cellCommentService;overflowTooltipOptions;tooltipService;overflowTooltipSession;emptyStateGridOptions;emptyStateOptionsRaw={};overlayService;overlayRenderer;cellSelectionGridOptions;cellSelectionOptions;cellRangeVisualGridOptions;cellRangeVisualOptions;cellClipboardGridOptions;cellRangeService;cellRangeVisualController=null;cellRangeFillWriteService=null;cellRangeDeleteWriteService=null;cellClipboardService=null;cellDisableContext=En();cellStyleContext=qn();rowHeightGridOptions;filterOps;selectionOps;rowMutation;gridFooter;resizeObserver=null;centerViewportWidth=0;autoSizeCellContentsPending=!1;destroyed=!1;suppressRowLayoutViewportSync=!1;constructor(e,t){this.mountEl=e,this.cellRenderersByColId=t.cellRenderers?.byColId??{},this.cellEditorsByColId=t.cellEditors?.byColId??{},this.onUnmountRenderer=t.onUnmountRenderer,this.onUnmountEditor=t.onUnmountEditor,this.summaryOptions=_n(t),this.chromeNavigationOptions=om(t),this.indexColumnOptions=Le(t),this.selectionColumnOptions=Ke(t),this.rowDragOptions=la(t),this.onRowDragCommit=t.onRowDragCommit,this.cellSpanOptions=Li(t),this.rowExpansionOptions=nt(t);let n=Om({tree:t.tree,rowGrouping:t.rowGrouping});this.treeTableOptions=ln(t),n.mode===`tree`&&hn(!0,this.treeTableOptions.getDataPath),this.rowGroupingOptions=Et({...t,rowGrouping:n.mode===`group`&&t.rowGrouping}),this.rowSelectionOptions=lx(t.rowSelection),this.userColumns=[...t.columns],this.userColumns,pn(this.userColumns);let r=di(t),i=pi(t),a=S_(t);this.filterGridOptions=wa(t);let o=ba(t);this.columnSortOptions=o,this.showUnsortedSortHintOnHover=o.showUnsortedSortHintOnHover,this.columnModel=new Ja(To(this.userColumns,this.indexColumnOptions,this.selectionColumnOptions,{rowExpansion:this.rowExpansionOptions,rowGrouping:n.mode===`group`?this.rowGroupingOptions:void 0,treeTable:n.mode===`tree`?this.treeTableOptions:void 0}),this.cellRenderersByColId,this.cellEditorsByColId,oi(t),r,i,o,this.filterGridOptions),this.columnViewport=new Eo(this.columnModel);let s=t.rowHeight??m;this.resolvedSummaryRowHeight=vn(this.summaryOptions.summaryRowHeight,s);let c=t.stripe??!1,{editBehavior:l,editType:u}=Pn(t);this.cellDisableContext=En({isRowDisabled:t.isRowDisabled}),this.cellStyleContext=qn({rowStyle:t.rowStyle}),this.invalidEditValueMode=t.invalidEditValueMode??`block`,this.rowValidator=t.rowValidator,this.asyncRowMutation=t.asyncRowMutation,this.editorHost=new de({onUnmountEditor:t.onUnmountEditor,byName:t.cellEditors?.byName}),this.editingService=new fe(this.editorHost),this.rowEditingService=new je(this.editorHost),this.selectionService=cx(t.rowSelection)===!1||!this.selectionColumnOptions.enabled?null:new Nr(cx(t.rowSelection)),this.indexFocusService=this.indexColumnOptions.showIndexColumn?new Lr(this.indexColumnOptions.indexColumn.focusMode):null,this.frameService=new g,this.scrollBridge=new im;let d=(e,t)=>{let n=this.columnModel.getColumnById(t);return n?U(e,n):e.data[t]};this.rowModel=new Kd({rowKey:t.rowKey,rowHeight:s,getCellValue:d,getColumnComparator:e=>this.columnModel.getColumnById(e)?.comparator,filterColumnContext:lc(e=>this.columnModel.getColumnById(e),d),quickFilterText:t.quickFilterText,getQuickFilterColIds:()=>this.columnModel.getColumns().filter(e=>e.filterable).map(e=>e.colId)}),this.rowKey=t.rowKey,this.businessRowIdCtx={rowKey:t.rowKey,getRowById:e=>this.rowModel.resolveRowById(e)},this.eventBus.setProjector(Mr(this.businessRowIdCtx)),this.cellSpanService=new ns({getEnableCellSpan:()=>this.cellSpanOptions.enableCellSpan,getColumnModel:()=>this.columnModel,getDisplayRows:()=>this.rowModel.rowsToDisplay,getRowById:e=>{let t=this.rowModel.getRowIndexById(e);return t>=0?this.rowModel.getRow(t):void 0},getRowByIndex:e=>this.rowModel.getRow(e),getRowCount:()=>this.rowModel.getRowCount()}),this.rowExpansionService=new hm({getOptions:()=>this.rowExpansionOptions,getBaseDisplayRows:()=>this.rowModel.getBaseDisplayRows(),onExpansionChanged:e=>{this.eventBus.emit(e.expanded?`rowExpanded`:`rowCollapsed`,e),this.syncRowExpansionDisplay()},onDetailDataChanged:e=>{this.refreshDetailRowContent([e])}}),this.rowModel.setRowExpansionService(this.rowExpansionService),this.rowGroupingService=new gm({getOptions:()=>this.rowGroupingOptions,getRowGroupColumnsFromDefs:()=>Rt(this.userColumns),getGroupedTreeRoots:()=>this.rowModel.getGroupedTreeRoots(),onGroupOpened:e=>{this.eventBus.emit(`rowGroupOpened`,e),this.syncRowGroupingDisplay()},onGroupChanged:e=>{this.eventBus.emit(`rowGroupChanged`,e)},onGroupingStateChanged:()=>{this.syncRowGroupingDisplay()}}),this.rowModel.setRowGroupingDeps({active:()=>this.rowGroupingService.active,getRowGroupColumns:()=>this.rowGroupingService.getRowGroupColumns(),getGroupKeyCreator:()=>this.rowGroupingOptions.groupKeyCreator,getGroupComparator:()=>this.rowGroupingOptions.groupComparator,getColumns:()=>this.columnModel.getColumns(),getColumnField:e=>this.columnModel.getColumnById(e)?.prop??e,getMapStageOptions:()=>this.rowGroupingService.getMapStageOptions(),pruneExpanded:e=>this.rowGroupingService.pruneExpanded(e),applyDefaultExpanded:e=>this.rowGroupingService.applyDefaultExpanded(e),clearExpanded:()=>this.rowGroupingService.clearExpanded()}),this.treeTableService=new Sm({getOptions:()=>this.treeTableOptions,getGroupDefaultExpanded:()=>this.rowGroupingOptions.groupDefaultExpanded,getTreeTreeRoots:()=>this.rowModel.getTreeTreeRoots(),getLazyLoadHost:()=>this.treeLazyLoadService,onNodeOpened:e=>{this.eventBus.emit(`treeNodeOpened`,e),this.syncTreeTableDisplay()},onTreeStateChanged:()=>{this.syncTreeTableDisplay()}}),this.rowModel.setTreeTableDeps({active:()=>this.treeTableService.active,getDataPath:()=>this.treeTableOptions.getDataPath,getMapStageOptions:()=>this.treeTableService.getMapStageOptions(),prepareTreeTree:e=>this.treeTableService.prepareTreeTree(e),applyDefaultExpanded:e=>this.treeTableService.applyDefaultExpandedToTree(e),clearExpanded:()=>this.treeTableService.clearExpanded()}),this.headerSortService=new ky({getSortModel:()=>this.rowModel.getSortModel(),setSortModel:e=>this.setSortModel(e),getColumnById:e=>this.columnModel.getColumnById(e)}),this.columnHandleMenuController=new Ty({mountEl:this.mountEl,columnModel:this.columnModel,getSortModel:()=>this.rowModel.getSortModel(),setSortModel:e=>this.setSortModel(e),getFilterModel:()=>this.getFilterModel(),setFilterModel:e=>this.setFilterModel(e),setColumnFixed:(e,t,n)=>this.setColumnFixed(e,t,n),setColumnsHidden:(e,t,n)=>this.columnLayout.setColumnsHidden(e,t,n),getColumnDistinctFilterValues:e=>this.getColumnDistinctFilterValues(e),filterSetValueMode:this.filterGridOptions.filterSetValueMode,filterSetDateLayoutMode:this.filterGridOptions.filterSetDateLayoutMode});let f=ya(t);f.length>0&&this.rowModel.setSortModel(f);let p=Ny(e,{showSummary:this.summaryOptions.showSummary,floatingFilter:t.floatingFilter??!1});if(this.rootEl=p.rootEl,this.rowsLayerEl=p.rowsLayerEl,p.footerViewportEl&&p.footerRowEl&&p.footerLeftLaneEl&&p.footerCenterLaneEl&&p.footerRightLaneEl&&(this.footerRenderer=new ec({footerLeftLaneEl:p.footerLeftLaneEl,footerCenterLaneEl:p.footerCenterLaneEl,footerRightLaneEl:p.footerRightLaneEl,footerRowEl:p.footerRowEl,frameService:this.frameService,onUnmountRenderer:this.onUnmountRenderer,enableCellSpan:this.cellSpanOptions.enableCellSpan})),p.floatingFilterRowEl&&p.floatingFilterLeftLaneEl&&p.floatingFilterCenterLaneEl&&p.floatingFilterRightLaneEl){let e=new $y({floatingLeftLaneEl:p.floatingFilterLeftLaneEl,floatingCenterLaneEl:p.floatingFilterCenterLaneEl,floatingRightLaneEl:p.floatingFilterRightLaneEl,floatingRowEl:p.floatingFilterRowEl});this.floatingFilterController=new rb({columnModel:this.columnModel,getFilterModel:()=>this.getFilterModel(),setFilterModel:e=>this.setFilterModel(e),renderer:e})}this.rowRenderer=new Rp(p.rowsContainerEl,{rowModel:this.rowModel,columnModel:this.columnModel,rowHeight:s,rowBuffer:t.rowBuffer??10,stripe:c,frameService:this.frameService,onUnmountRenderer:this.onUnmountRenderer,onUnmountEditor:this.onUnmountEditor,indexColumnOptions:this.indexColumnOptions.showIndexColumn?this.indexColumnOptions.indexColumn:void 0,selectionColumnOptions:this.selectionColumnOptions.enabled?this.selectionColumnOptions:void 0,isRowDragHandleEnabled:e=>this.isRowDragHandleEnabled(e),enableCellSpan:this.cellSpanOptions.enableCellSpan,cellSpanService:this.cellSpanService,spannedRowsContainerEl:p.spannedRowsContainerEl,fullWidthRowsContainerEl:p.fullWidthRowsContainerEl,masterDetail:this.rowExpansionOptions.masterDetail,embedFullWidthRows:this.rowExpansionOptions.embedFullWidthRows,getDetailCellRenderer:()=>this.rowExpansionOptions.detailCellRenderer,getMasterRowById:e=>this.rowModel.getRowById(e),rowExpansionHost:{active:()=>this.rowExpansionOptions.masterDetail,isRowMaster:e=>this.rowExpansionService.isRowMaster(e),isExpanded:e=>this.rowExpansionService.isExpanded(e)},rowGroupingHost:{active:()=>this.rowGroupingService.active,isExpanded:e=>this.rowGroupingService.isExpanded(e),getGroupFooterLabel:()=>this.rowGroupingOptions.groupFooterLabel},treeTableHost:{active:()=>this.treeTableService.active,isExpanded:e=>this.treeTableService.isExpanded(e),getTreeValue:e=>this.treeTableService.getTreeDisplayValue(e),isTreeNodeExpandable:e=>this.treeTableService.isNodeExpandable(e),isTreeNodeLoading:e=>this.treeTableService.isNodeLoading(e)},resolveBusinessRowId:e=>Cr(e,t.rowKey),getCellDisableContext:()=>this.getCellDisableContext(),getCellStyleContext:()=>this.getCellStyleContext()}),this.selectionOps=new fS({mountEl:this.mountEl,rowModel:this.rowModel,rowRenderer:this.rowRenderer,eventBus:this.eventBus,selectionService:this.selectionService,indexFocusService:this.indexFocusService,indexColumnOptions:this.indexColumnOptions,selectionColumnOptions:this.selectionColumnOptions,rowKey:t.rowKey,isTreeActive:()=>this.treeTableService.active,groupSelectsChildren:()=>this.rowSelectionOptions.groupSelectsChildren,applyCellRangeVisuals:()=>this.applyCellRangeVisuals()},Fr(t.selectable),t.reserveSelection??!1),this.rowRenderer.setIsRowNodeSelectable(e=>this.selectionOps.isRowNodeSelectable(e)),this.rowHeightGridOptions={getRowHeight:t.getRowHeight,rowHeightMin:t.rowHeightMin,rowHeightMax:t.rowHeightMax},this.rowHeightService=new $d({getDisplayRows:()=>this.rowModel.rowsToDisplay,getRowById:e=>this.rowModel.resolveRowById(e),getAutoHeightColumnIds:()=>this.columnModel.getAutoHeightColumnIds(),repositionDisplayRows:()=>{this.rowModel.repositionDisplayRows({getRowHeight:this.rowHeightService.getPositionRowHeightFn()})},emitRowHeightChanged:e=>{this.eventBus.emit(`rowHeightChanged`,e),this.syncRowLayoutAfterRowHeightChange(e.rows.map(e=>e.rowId))}},s,this.rowHeightGridOptions),this.rowModel.setPositionGetRowHeight(this.rowHeightService.getPositionRowHeightFn()),this.rowAutoHeightService=new of({rowHeightService:this.rowHeightService,getRowById:e=>this.rowModel.getRowById(e),isColumnAutoHeight:e=>this.columnModel.isColumnAutoHeight(e),getAutoHeightColumnIds:()=>this.columnModel.getAutoHeightColumnIds()}),this.rowRenderer.setRowAutoHeightService(this.rowAutoHeightService),this.detailRowAutoHeightService=this.rowExpansionOptions.detailRowAutoHeight?new pm({rowHeightService:this.rowHeightService,getRowById:e=>this.rowModel.resolveRowById(e),isEnabled:()=>this.rowExpansionOptions.detailRowAutoHeight,getMinDetailRowHeight:e=>ut(this.rowExpansionOptions.detailRowHeight,{rowId:e.id,data:e.data,masterRowId:e.masterRowId??e.id})}):null,this.rowRenderer.setDetailRowAutoHeightService(this.detailRowAutoHeightService),this.gridFooter=new DS({columnModel:this.columnModel,columnViewport:this.columnViewport,rowModel:this.rowModel,frameService:this.frameService,valueCache:this.valueCache,summaryOptions:this.summaryOptions,getFooterRenderer:()=>this.footerRenderer}),this.filterOps=new aS({rowModel:this.rowModel,columnModel:this.columnModel,columnViewport:this.columnViewport,getViewport:()=>this.viewport,rowRenderer:this.rowRenderer,valueCache:this.valueCache,eventBus:this.eventBus,getFloatingFilterController:()=>this.floatingFilterController,applySelectionVisuals:()=>this.selectionOps.applySelectionVisuals(),refreshFooter:()=>this.gridFooter.refresh(),refreshCellSpans:()=>this.refreshCellSpanCache(),clearCellSelection:()=>this.clearCellSelectionOnStructuralChange(),refreshOverlay:()=>this.syncEmptyStateOverlay()}),this.viewport=new eS({rootEl:p.rootEl,headerViewportEl:p.headerViewportEl,headerScrollEl:p.headerScrollEl,headerRowEl:p.headerRowEl,headerLeftLaneEl:p.headerLeftLaneEl,headerCenterLaneEl:p.headerCenterLaneEl,headerRightLaneEl:p.headerRightLaneEl,viewportEl:p.viewportEl,spacerEl:p.spacerEl,scrollPhantomEl:p.scrollPhantomEl,rowsLayerEl:p.rowsLayerEl,indexColumnFillHostEl:p.indexColumnFillHostEl,indexColumnFillEl:p.indexColumnFillEl,rowsContainerEl:p.rowsContainerEl,footerViewportEl:p.footerViewportEl,footerScrollEl:p.footerScrollEl,footerRowEl:p.footerRowEl,footerLeftLaneEl:p.footerLeftLaneEl,footerCenterLaneEl:p.footerCenterLaneEl,footerRightLaneEl:p.footerRightLaneEl,floatingFilterViewportEl:p.floatingFilterViewportEl,floatingFilterScrollEl:p.floatingFilterScrollEl,floatingFilterRowEl:p.floatingFilterRowEl,floatingFilterLeftLaneEl:p.floatingFilterLeftLaneEl,floatingFilterCenterLaneEl:p.floatingFilterCenterLaneEl,floatingFilterRightLaneEl:p.floatingFilterRightLaneEl,refreshFooter:()=>this.gridFooter.refresh(),refreshFloatingFilter:()=>this.filterOps.refreshFloatingFilter(),rowModel:this.rowModel,columnModel:this.columnModel,columnViewport:this.columnViewport,validationFeedback:this.validationFeedback,rowRenderer:this.rowRenderer,scrollBridge:this.scrollBridge,frameService:this.frameService,getPinnedRowIds:()=>this.getPinnedRowIds(),selectionColumnOptions:this.selectionColumnOptions,showIndexColumn:this.indexColumnOptions.showIndexColumn,showUnsortedSortHintOnHover:()=>this.showUnsortedSortHintOnHover,getDefaultRowHeight:()=>this.rowHeightService.getDefaultRowHeight(),headerHeight:t.headerHeight??h,isDestroyed:()=>this.destroyed,onBodyScroll:(e,t)=>{this.eventBus.emit(`bodyScroll`,{scrollTop:e,scrollLeft:t})},onScroll:t.onScroll,applySelectionVisuals:()=>this.selectionOps.applySelectionVisuals(),applyFocusVisuals:()=>this.applyFocusVisuals(),applyCellRangeVisuals:()=>this.applyCellRangeVisuals(),applyCellRangeScrollVisuals:()=>this.applyCellRangeScrollVisuals(),onHeaderRefresh:()=>this.columnHandleMenuController.onHeaderRefresh()}),this.cellEditing=new nv({mountEl:this.mountEl,viewportEl:p.viewportEl,rowModel:this.rowModel,columnModel:this.columnModel,editingService:this.editingService,rowEditingService:this.rowEditingService,editBehavior:l,editType:u,invalidEditValueMode:this.invalidEditValueMode,rowValidator:this.rowValidator,validationFeedback:this.validationFeedback,editorHost:this.editorHost,eventBus:this.eventBus,cellFocusService:this.cellFocusService,isDestroyed:()=>this.destroyed,getColIndex:e=>this.getColIndex(e),ensureIndexVisible:(e,t)=>this.ensureIndexVisible(e,t),ensureColumnVisible:e=>this.ensureColumnVisible(e),redrawImmediately:()=>this.viewport.redrawImmediately(),applyFocusVisuals:()=>this.applyFocusVisuals(),syncPinnedRows:()=>this.viewport.syncPinnedRows(),refreshCells:e=>this.refreshCells(e),applyTransaction:e=>this.commitTransaction(e),onTabChainEdit:e=>this.interaction.navigateTabChainEdit(e),getCellDisableContext:()=>this.getCellDisableContext()});let _=new pr({eventBus:this.eventBus,applyTransaction:e=>this.commitTransaction(e),syncPinnedRows:()=>this.viewport.syncPinnedRows(),invalidEditValueMode:this.invalidEditValueMode,onUnmountEditor:this.onUnmountEditor,byName:t.cellEditors?.byName});this.inlineCellEditorService=_,this.rowRenderer.setInlineCellEditorContext(_.getRefreshContext()),this.columnFlexService=new mo(this.columnModel),this.columnResizeService=new go(this.columnModel,()=>{this.columnLayout.syncColumnLayoutAfterResize()},this.columnFlexService,()=>this.getCenterViewportWidth()),this.columnAutosizeService=new io(this.mountEl,this.columnModel,a),this.columnLayout=new iS({mountEl:this.mountEl,rootEl:this.rootEl,columnModel:this.columnModel,columnViewport:this.columnViewport,columnResizeService:this.columnResizeService,columnAutosizeService:this.columnAutosizeService,columnFlexService:this.columnFlexService,viewport:this.viewport,rowRenderer:this.rowRenderer,footerRenderer:this.footerRenderer,eventBus:this.eventBus,isDestroyed:()=>this.destroyed,refreshColumnResizeVisualState:()=>this.interaction.refreshColumnResizeVisualState(),refreshFooter:()=>this.gridFooter.refresh(),refreshFloatingFilter:()=>this.filterOps.refreshFloatingFilter(),applyCellRangeVisuals:()=>this.applyCellRangeVisuals(),clearCellSelection:()=>this.clearCellSelectionOnStructuralChange()},r,i),this.columnLayout.syncColumnMovePresentationClasses(),this.viewport.setOnAfterRedraw(()=>{!this.destroyed&&!this.cellEditing.isEditing()&&this.cellEditing.syncValidationDom()}),this.cellCommentOptions=zl(t),this.cellCommentService=new Jh({getOptions:()=>this.cellCommentOptions,getRowKey:()=>t.rowKey,getRowNode:e=>this.rowModel.getRowById(e),getColumn:e=>this.columnModel.getColumnById(e)??void 0,getMountEl:()=>this.mountEl,onCommentChanged:e=>this.eventBus.emit(`cellCommentChanged`,e),onCommentsRefresh:e=>this.rowRenderer.syncVisibleCellCommentIndicators({rowIds:e?.rowIds?.map(e=>String(e)),colIds:e?.colIds})}),this.rowRenderer.setCellCommentHost(this.cellCommentService.createHost()),this.overflowTooltipOptions=Wa(t),this.cellSelectionGridOptions={cellSelection:t.cellSelection,enableCellCopy:t.enableCellCopy,enableCellPaste:t.enableCellPaste},this.cellSelectionOptions=Is(this.cellSelectionGridOptions),this.cellRangeVisualGridOptions={enableHeaderHighlight:t.enableHeaderHighlight,enableIndexColumnHighlight:t.enableIndexColumnHighlight},this.cellRangeVisualOptions=Fs(this.cellRangeVisualGridOptions),this.cellClipboardGridOptions={processCellForClipboard:t.processCellForClipboard,processCellFromClipboard:t.processCellFromClipboard,processDataFromClipboard:t.processDataFromClipboard},this.cellRangeService=new rg(this.cellSelectionOptions.suppressMultiRanges),this.cellRangeVisualController=this.createCellRangeVisualController(),this.tooltipService=new s_,this.overflowTooltipSession=new n_({mountEl:this.mountEl,viewportEl:p.viewportEl,headerViewportEl:p.headerViewportEl,footerViewportEl:p.footerViewportEl??null,columnModel:this.columnModel,rowModel:this.rowModel,tooltipService:this.tooltipService,validationFeedback:this.validationFeedback,cellCommentService:()=>this.cellCommentService,getOptions:()=>this.overflowTooltipOptions,getIndexColumnOptions:()=>this.indexColumnOptions,getApi:()=>this.getApi(),isEditing:()=>this.cellEditing.isEditing(),getEditingCell:()=>this.cellEditing.getEditingCell()}),this.emptyStateOptionsRaw={loading:t.loading,suppressOverlays:t.suppressOverlays,suppressLoadingOverlay:t.suppressLoadingOverlay,suppressNoRowsOverlay:t.suppressNoRowsOverlay,suppressNoMatchingRowsOverlay:t.suppressNoMatchingRowsOverlay,overlayLoadingTemplate:t.overlayLoadingTemplate,overlayNoRowsTemplate:t.overlayNoRowsTemplate,overlayNoMatchingRowsTemplate:t.overlayNoMatchingRowsTemplate,loadingOverlayComponent:t.loadingOverlayComponent,loadingOverlayComponentParams:t.loadingOverlayComponentParams,noRowsOverlayComponent:t.noRowsOverlayComponent,noRowsOverlayComponentParams:t.noRowsOverlayComponentParams,noMatchingRowsOverlayComponent:t.noMatchingRowsOverlayComponent,noMatchingRowsOverlayComponentParams:t.noMatchingRowsOverlayComponentParams,overlayComponent:t.overlayComponent,overlayComponentParams:t.overlayComponentParams,overlayInteraction:t.overlayInteraction},this.emptyStateGridOptions=Nu(this.emptyStateOptionsRaw),this.overlayService=new x_({getResolvedOptions:()=>this.emptyStateGridOptions,getSourceRowCount:()=>this.rowModel.getSourceRows().length,getDisplayRows:()=>this.rowModel.rowsToDisplay,isAnyFilterActive:()=>this.filterOps.isAnyFilterActive(),onOverlayChanged:(e,t)=>this.handleOverlayChanged(e,t),warn:e=>console.warn(e)}),this.overlayRenderer=new g_({overlayEl:p.overlayEl,wrapperEl:p.overlayWrapperEl,contentEl:p.overlayContentEl,getApi:()=>this.getApi(),getOverlayInteraction:()=>this.emptyStateGridOptions.overlayInteraction}),this.interaction=new sx({mountEl:this.mountEl,viewportEl:p.viewportEl,headerViewportEl:p.headerViewportEl,headerLeftLaneEl:p.headerLeftLaneEl,headerCenterLaneEl:p.headerCenterLaneEl,headerRightLaneEl:p.headerRightLaneEl,rowModel:this.rowModel,columnModel:this.columnModel,rowRenderer:this.rowRenderer,eventBus:this.eventBus,cellFocusService:this.cellFocusService,selectionService:this.selectionService,indexFocusService:this.indexFocusService,indexColumnOptions:this.indexColumnOptions,columnDragController:this.columnDragController,columnHandleMenuController:this.columnHandleMenuController,editBehavior:l,editType:u,isEditing:()=>this.cellEditing.isEditing(),getEditingCell:()=>this.cellEditing.getEditingCell(),getEditingRowId:()=>this.cellEditing.getEditingRowId(),focusRowEditingColumn:e=>this.cellEditing.focusRowEditingColumn(e),isCommitting:()=>this.isCommitting(),awaitCommitIdle:()=>this.awaitCommitIdle(),commitEditing:()=>this.cellEditing.stopEditing(!1),cancelCommit:()=>this.cancelCommit(),ensureIndexVisible:(e,t)=>this.ensureIndexVisible(e,t),ensureColumnVisible:e=>this.ensureColumnVisible(e),getLogicalScrollTop:()=>this.viewport.getLogicalScrollTop(),scrollByDelta:e=>this.viewport.scrollByDelta(e),scrollByHorizontalDelta:e=>this.viewport.scrollByHorizontalDelta(e),getRowHeight:()=>this.rowHeightService.getDefaultRowHeight(),redrawImmediately:()=>this.viewport.redrawImmediately(),tryStartCellEditing:e=>this.cellEditing.tryStartCellEditing(e),tryStartRowEditing:e=>this.cellEditing.tryStartRowEditing(e),applyIndexFocusVisuals:e=>this.selectionOps.applyIndexFocusVisuals(e),applySelectionVisuals:()=>this.selectionOps.applySelectionVisuals(),handleInteractiveRowSelection:(e,t)=>this.selectionOps.handleInteractiveRowSelection(e,t),isRowNodeSelectable:e=>this.selectionOps.isRowNodeSelectable(e),getSelectableRowIdAt:e=>this.selectionOps.getSelectableRowIdAt(e),showSummary:()=>this.summaryOptions.showSummary,navigateHeader:()=>this.chromeNavigationOptions.navigateHeader,navigateFooter:()=>this.chromeNavigationOptions.navigateFooter,toggleHeaderSort:e=>this.headerSortService.toggleSort(e),moveColumn:(e,t,n,r)=>this.moveColumn(e,t,n,r),finishColumnMove:e=>this.finishColumnMove(e),suppressMoveWhenColumnDragging:()=>this.columnLayout.columnMoveOptions.suppressMoveWhenColumnDragging,setColumnMoveLiveDragging:e=>this.setColumnMoveLiveDragging(e),allowCrossLaneColumnMove:()=>this.columnLayout.columnMoveOptions.allowCrossLaneColumnMove,setColumnWidths:(e,t,n)=>this.columnLayout.applyColumnWidths(e,t,n,`uiColumnResized`),autoSizeColumn:(e,t)=>this.columnLayout.autoSizeColumn(e,void 0,t??`uiColumnResized`),resizeHeaderColumn:(e,t,n)=>this.columnLayout.resizeHeaderColumn(e,t,n),setRowHeights:(e,t)=>this.rowHeightService.setRowHeights(e,{finished:t,source:`uiRowResized`}),rowDragManaged:this.rowDragOptions.rowDragManaged,rowDragCommitMode:this.rowDragOptions.rowDragCommitMode,cellSpanService:this.cellSpanService,hasSortModel:()=>this.rowModel.getSortModel().length>0,isRowDragHandleEnabled:e=>this.isRowDragHandleEnabled(e),moveRow:(e,t)=>this.rowMutation.moveRow(e,t),moveRows:(e,t)=>this.rowMutation.moveRows(e,t),finishRowMove:e=>this.rowMutation.finishRowMove(e),finishRowMoves:(e,t,n,r)=>this.rowMutation.finishRowMoves(e,`uiRowDrag`,{startSourceIndices:t,startTreePositions:r,displayIndex:n,resolveTreeDrop:this.treeTableService.active?e=>Im(this.rowModel.getSourceRows(),e)??void 0:void 0}),isIndexFocusMultiple:()=>this.indexFocusService?.isMultiple()??!1,getIndexFocusedRowIds:()=>this.indexFocusService?.getFocusedRowIds()??[],setRowMoveLiveDragging:e=>this.setRowMoveLiveDragging(e),emitRowDragEnd:e=>{this.eventBus.emit(`rowDragEnd`,e)},isRowDragCommitting:()=>this.rowDragCommitService?.isCommitting()??!1,buildPlanRowDragMoveOptions:e=>this.buildPlanRowDragMoveOptions(e),planRowDragMove:e=>Mh(e),commitDeferredRowDrag:e=>this.rowDragCommitService.commit(e),rowExpansionService:this.rowExpansionOptions.masterDetail?this.rowExpansionService:null,rowGroupingService:this.rowGroupingOptions.rowGrouping?this.rowGroupingService:null,treeTableService:this.treeTableService.active?this.treeTableService:null,requestTreeNodeToggle:(e,t)=>this.treeTableService.requestToggleNode(e,t),isTreeNodeExpandable:e=>this.treeTableService.isNodeExpandable(e),isRowGroupingActive:()=>this.rowGroupingService.active,isTreeActive:()=>this.treeTableService.active,getTreeDragScope:()=>this.treeTableOptions.treeDragScope,validateGroupedDisplayDrop:(e,t)=>{if(!this.rowGroupingService.active)return!0;let n=ch(this.rowModel.getSourceRows(),e);return n===`mixed`||n===`missing`?!1:n===null||mh(this.rowModel.rowsToDisplay,e=>this.rowModel.getRowById(e),e,t,n)},validateTreeDisplayDrop:(e,t,n)=>{if(!this.treeTableService.active)return!0;let r=this.rowModel.getSourceRows(),i=e=>this.rowModel.getRowById(e);if(this.treeTableOptions.treeDragScope===`hierarchy`){let a=this.treeTableOptions.getDataPath;return a?th(r,this.rowModel.rowsToDisplay,i,e,t,a,{nestUnderRowId:n?.nestUnderRowId}):!1}let a=Pm(r,e);return a===`mixed`||a===`missing`?!1:Bm(this.rowModel.rowsToDisplay,i,e,t,a)},resolveTreeRowDragEndContext:(e,t,n,r)=>{if(!this.treeTableService.active||!r||t<0)return;if(this.rowDragOptions.rowDragManaged)return Im(this.rowModel.getSourceRows(),e)??void 0;let i=this.treeTableOptions.getDataPath;if(i)return nh({sourceRows:this.rowModel.getSourceRows(),displayRows:this.rowModel.rowsToDisplay,rowIds:[e],insertIndex:t,nestUnderRowId:n,treeDragScope:this.treeTableOptions.treeDragScope,getDataPath:i})??void 0},cellCommentService:()=>this.cellCommentService,getCellCommentOptions:()=>this.cellCommentOptions,overflowTooltipSession:this.overflowTooltipSession,getCellDisableContext:()=>this.getCellDisableContext(),getCellRangeService:()=>this.cellRangeService,isCellSelectionEnabled:()=>this.cellSelectionOptions.enabled,getCellSelectionOptions:()=>this.cellSelectionOptions,getFillWriteService:()=>this.cellRangeFillWriteService,getCellRangeOperationContext:()=>this.getCellRangeOperationContext(),applyCellRangeVisuals:()=>this.applyCellRangeVisuals(),emitCellSelectionChanged:e=>this.emitCellSelectionChanged(e),handleCellSelectionDeleteKey:()=>void this.handleCellSelectionDeleteKey(),copyCellSelectionToClipboard:()=>this.cellClipboardService?.copySelectedRanges()??!1,pasteCellSelectionFromClipboard:()=>this.pasteFromClipboard(),isPointerOverCellCommentIndicator:(e,t,n)=>Lh(e,t,n)}),this.rowMutation=new ES({rowKey:t.rowKey,asyncRowMutation:this.asyncRowMutation,rowModel:this.rowModel,rowRenderer:this.rowRenderer,viewport:this.viewport,valueCache:this.valueCache,frameService:this.frameService,changeDetection:this.changeDetection,eventBus:this.eventBus,cellFocusService:this.cellFocusService,validationFeedback:this.validationFeedback,mountEl:this.mountEl,cellEditing:this.cellEditing,filterOps:this.filterOps,selectionOps:this.selectionOps,ensureIndexVisible:(e,t)=>this.ensureIndexVisible(e,t),applyFocusVisuals:()=>this.applyFocusVisuals(),refreshFooter:()=>this.gridFooter.refresh(),refreshCellSpans:()=>this.refreshCellSpanCache(),refreshOverlay:()=>this.syncEmptyStateOverlay(),isCellSpanActive:()=>this.cellSpanService.active,isEditingTargetRow:e=>this.isEditingTargetRow(e),isRowGroupingActive:()=>this.rowGroupingService.active,isTreeActive:()=>this.treeTableService.active,getTreeDragScope:()=>this.treeTableOptions.treeDragScope,getDataPath:()=>this.treeTableOptions.getDataPath,setDataPath:()=>this.treeTableOptions.setDataPath}),this.cellRangeFillWriteService=new Ig({rowModel:this.rowModel,columnModel:this.columnModel,eventBus:this.eventBus,getCellDisableContext:()=>this.getCellDisableContext(),getApi:()=>this.getApi(),applyTransaction:e=>this.commitTransaction(e),refreshCells:e=>this.refreshCells(e)}),this.cellRangeDeleteWriteService=new Lg({rowModel:this.rowModel,columnModel:this.columnModel,eventBus:this.eventBus,getCellDisableContext:()=>this.getCellDisableContext(),getApi:()=>this.getApi(),applyTransaction:e=>this.commitTransaction(e),refreshCells:e=>this.refreshCells(e)}),this.cellClipboardService=new xg({rowModel:this.rowModel,columnModel:this.columnModel,eventBus:this.eventBus,cellFocusService:this.cellFocusService,getCellRangeService:()=>this.cellRangeService,getCellRangeOperationContext:()=>this.getCellRangeOperationContext(),getCellSelectionOptions:()=>this.cellSelectionOptions,getIndexColumnOptions:()=>this.indexColumnOptions,getCellDisableContext:()=>this.getCellDisableContext(),getApi:()=>this.getApi(),applyTransaction:e=>this.commitTransaction(e),refreshCells:e=>this.refreshCells(e),isEditing:()=>this.cellEditing.isEditing(),stopEditing:e=>this.cellEditing.stopEditing(e),onCopyVisualFeedback:()=>this.playCellRangeCopyFlash(),onPasteVisualFeedback:e=>this.playCellRangePasteFlash(e),getCellClipboardOptions:()=>this.cellClipboardGridOptions,getCellSpanService:()=>this.cellSpanService,getCellClipboardDisplayContext:()=>({getRowGroupingHost:()=>({active:()=>this.rowGroupingService.active,isExpanded:e=>this.rowGroupingService.isExpanded(e),getGroupFooterLabel:()=>this.rowGroupingOptions.groupFooterLabel}),getTreeTableHost:()=>({active:()=>this.treeTableService.active,isExpanded:e=>this.treeTableService.isExpanded(e),getTreeValue:e=>this.treeTableService.getTreeDisplayValue(e),isTreeNodeExpandable:e=>this.treeTableService.isNodeExpandable(e),isTreeNodeLoading:e=>this.treeTableService.isNodeLoading(e)})})}),this.treeTableOptions.treeLazyLoad&&typeof this.treeTableOptions.loadTreeChildren==`function`&&(this.treeLazyLoadService=new Cm({getOptions:()=>this.treeTableOptions,rowKey:t.rowKey,getDataPath:()=>this.treeTableOptions.getDataPath,getNodeById:e=>this.rowModel.getRowById(e),getExistingRowKeys:()=>{let e=new Set;for(let n of this.rowModel.getSourceRows()){e.add(n.id);let r=n.data[t.rowKey];r!=null&&r!==``&&e.add(String(r))}return e},applyTransaction:e=>{this.commitTransaction(e)},onLoading:e=>{this.eventBus.emit(`treeChildrenLoading`,e),this.refreshTreeLoadingVisuals(String(e.parentRowId))},onLoaded:e=>{this.eventBus.emit(`treeChildrenLoaded`,e),this.refreshTreeLoadingVisuals(String(e.parentRowId))},onLoadFailed:e=>{this.eventBus.emit(`treeChildrenLoadFailed`,e),this.refreshTreeLoadingVisuals(String(e.parentRowId))},onStateChanged:()=>{this.refreshTreeLoadingVisuals()}})),this.rowDragCommitService=new Ph({getOnRowDragCommit:()=>this.onRowDragCommit,applyPlan:e=>this.rowMutation.applyRowDragPlan(e),emitStarted:e=>{this.eventBus.emit(`rowDragCommitStarted`,e)},emitFinished:e=>{this.eventBus.emit(`rowDragCommitFinished`,e)},emitRowDragEnd:e=>{this.eventBus.emit(`rowDragEnd`,e)},setCommittingVisual:e=>this.setRowDragCommittingVisual(e)}),this.viewport.syncHorizontalLayout(),this.refreshFlexedColumnsOnViewportChange(!1),this.scheduleAutoSizeStrategy(),this.frameService.setScrollGridIfNeeded(()=>this.viewport.scrollGridIfNeeded()),this.refreshCellSpanCache(),this.rowRenderer.setValueCacheVersion(this.valueCache.getVersion()),this.viewport.redrawImmediately(),this.floatingFilterController&&this.filterOps.refreshFloatingFilter(),this.api=v(this),this.cellCommentService.init(this.api),this.viewport.bindScrollListener(),this.interaction.bindListeners(),this.resizeObserver=new ResizeObserver(()=>{this.viewport.syncViewportHeight(),this.refreshFlexedColumnsOnViewportChange(!0),this.viewport.redrawImmediately(),this.syncEmptyStateOverlay()}),this.resizeObserver.observe(p.viewportEl),this.syncEmptyStateOverlay()}getApi(){return this.api}setSelectable(e){this.selectionOps.setSelectable(e)}getCellDisableContext(){return this.cellDisableContext}getCellStyleContext(){return this.cellStyleContext}setIsRowDisabled(e){this.cellDisableContext=On(this.cellDisableContext,e),this.rowRenderer.setGetCellDisableContext(()=>this.getCellDisableContext()),this.refreshDisabledState()}setRowStyle(e){this.cellStyleContext=tr(this.cellStyleContext,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})}setReserveSelection(e){this.selectionOps.setReserveSelection(e)}setColumnMoveOptions(e){this.columnLayout.setColumnMoveOptions(e)}setColumnResizeOptions(e){this.columnLayout.setColumnResizeOptions(e)}setColumnSortOptions(e){if(e.sortable===void 0)return;let t=this.columnSortOptions.sortable;this.columnSortOptions=ba({...this.columnSortOptions,sortable:e.sortable}),e.sortable!==t&&(this.columnModel.setColumnSortGridOptions(this.columnSortOptions),this.viewport.refreshHeader())}setColumnFilterOptions(e){if(e.filterable===void 0)return;let t=this.filterGridOptions.filterable;this.filterGridOptions=wa({...this.filterGridOptions,filterable:e.filterable}),e.filterable!==t&&(this.columnModel.setColumnFilterGridOptions(this.filterGridOptions),this.viewport.refreshHeader(),this.filterOps.refreshFloatingFilter())}setColumnAutosizeOptions(e){let t=S_(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){this.selectionOps.setIndexFocus(e),this.cellSelectionOptions.enabled&&this.indexColumnOptions.showIndexColumn&&this.interaction.syncCellRangeFromIndexFocus()}toggleAllSelection(e){this.selectionOps.toggleAllSelection(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)}getRowNode(e){return this.rowModel.getRowById(X(e))}ensureIndexVisible(e,t=`middle`){this.viewport.ensureIndexVisible(e,t)}ensureColumnVisible(e){this.viewport.ensureColumnVisible(e)}setData(e){let t=performance.now(),n=this.selectionOps.reserveSelection&&this.selectionService?this.selectionService.getSelectedRowIds():null,r=(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.rowModel.setData(e);let i=this.selectionOps.reconcileSelectionAfterSetData(n,r);this.viewport.syncViewportHeight(),this.viewport.resetScrollOnSetData(),this.valueCache.bump(),this.refreshCellSpanCache(),this.rowRenderer.invalidate(),this.viewport.redrawImmediately(),this.selectionOps.applySelectionVisuals(),this.selectionOps.applyIndexFocusVisuals({syncToSelectionColumn:!1}),this.applyFocusVisuals(),this.lastSetDataMs=performance.now()-t,this.viewport.scheduleCompressedSetDataRedraw(()=>{this.viewport.syncViewportHeight(),this.viewport.redrawImmediately()}),this.gridFooter.refresh(),this.maybeApplyFitCellContentsStrategy(e.length),i&&this.selectionService&&this.eventBus.emit(`selectionChanged`,{selectedRowIds:this.selectionService.getSelectedRowIds()}),this.overlayService.markRowDataReady(),this.syncEmptyStateOverlay()}setColumns(e){this.userColumns=[...e],this.userColumns,pn(this.userColumns),this.rowGroupingService.syncRowGroupColumnsFromDefs(),this.columnModel.setColumns(To(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.columnViewport.invalidate(),this.overflowTooltipSession.close(),this.viewport.syncHorizontalLayout(),this.refreshFlexedColumnsOnViewportChange(!1),this.refreshCellSpanCache(),this.viewport.redrawImmediately(),this.gridFooter.refresh(),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){this.rowModel.setSortModel(va(e)),this.viewport.syncViewportHeight(),this.valueCache.bump(),this.refreshCellSpanCache(),this.rowRenderer.invalidate(),this.viewport.redrawImmediately(),this.viewport.refreshHeader(),this.eventBus.emit(`sortChanged`,{sortModel:this.rowModel.getSortModel()}),this.clearCellSelectionOnStructuralChange(),this.gridFooter.refresh()}getSortModel(){return this.rowModel.getSortModel()}setFilterModel(e){this.filterOps.setFilterModel(e)}getFilterModel(){return this.filterOps.getFilterModel()}getColumnFilter(e){return this.filterOps.getColumnFilter(e)}getColumnDistinctFilterValues(e){return this.filterOps.getColumnDistinctFilterValues(e)}isColumnFilterActive(e){return this.filterOps.isColumnFilterActive(e)}isAnyFilterActive(){return this.filterOps.isAnyFilterActive()}getQuickFilterText(){return this.filterOps.getQuickFilterText()}setQuickFilterText(e){this.filterOps.setQuickFilterText(e)}clearAllFilters(){this.filterOps.clearAllFilters()}setColumnFilter(e,t){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:e.treeNestUnderRowId}}setRowDragCommittingVisual(e){this.rootEl.classList.toggle(ca,e!=null),this.rowRenderer.setRowDragCommittingRows(e?.rowIds??null)}finishRowMove(e){this.rowMutation.finishRowMove(X(e))}applyTransaction(e){return this.rowMutation.applyTransaction(e)}commitTransaction(e){return this.rowMutation.commitTransaction(e)}addRows(e){return this.rowMutation.addRows(e)}removeRows(e){return this.rowMutation.removeRows(e)}moveRow(e,t,n=`source`){return this.rowMutation.moveRow({rowId:X(e),toIndex:t,indexMode:n})}setRowHeight(e,t,n=!0){this.rowHeightService.setRowHeight(X(e),t,n,`api`)}setRowHeights(e,t=!0){this.rowHeightService.setRowHeights(e.map(e=>({rowId:X(e.rowId),height:e.height})),{finished:t,source:`api`})}getRowHeight(e){return this.rowHeightService.getRowHeight(X(e))}resetRowHeights(e){this.rowHeightService.resetRowHeights(e?.map(e=>X(e)))}expandRow(e){return this.rowExpansionOptions.masterDetail?this.rowExpansionService.expandRow(X(e),`api`):!1}collapseRow(e){return this.rowExpansionOptions.masterDetail?this.rowExpansionService.collapseRow(X(e),`api`):!1}isRowExpanded(e){return this.rowExpansionOptions.masterDetail?this.rowExpansionService.isExpanded(X(e)):!1}expandAll(){this.treeTableService.active?this.treeTableService.expandAll(`api`):this.rowGroupingService.active&&this.rowGroupingService.expandAll(`api`),this.rowExpansionOptions.masterDetail&&this.rowExpansionService.expandAll(`api`)}collapseAll(){this.treeTableService.active?this.treeTableService.collapseAll():this.rowGroupingService.active&&this.rowGroupingService.collapseAll(`api`),this.rowExpansionOptions.masterDetail&&this.rowExpansionService.collapseAll(`api`)}setRowGroupColumns(e){this.rowGroupingOptions.rowGrouping&&(this.rowGroupingService.setRowGroupColumns(e,`api`),this.rowModel.refreshModel({applyDefaultExpanded:!0}))}getRowGroupColumns(){return this.rowGroupingService.getRowGroupColumns()}expandGroup(e){return this.rowGroupingService.active?this.rowGroupingService.isExpanded(e)?!0:(this.rowGroupingService.expandGroup(e,`api`),this.rowGroupingService.isExpanded(e)):!1}collapseGroup(e){return this.rowGroupingService.active?!this.rowGroupingService.isExpanded(e)||(this.rowGroupingService.collapseGroup(e,`api`),!this.rowGroupingService.isExpanded(e)):!1}isGroupExpanded(e){return this.rowGroupingService.active?this.rowGroupingService.isExpanded(e):!1}expandNode(e){if(!this.treeTableService.active)return!1;let t=X(e);return this.treeTableService.isExpanded(t)?!0:(this.treeTableService.requestToggleNode(t,`api`),this.treeTableService.isExpanded(t))}collapseNode(e){if(!this.treeTableService.active)return!1;let t=X(e);return!this.treeTableService.isExpanded(t)||(this.treeTableService.collapseNode(t,`api`),!this.treeTableService.isExpanded(t))}isNodeExpanded(e){return this.treeTableService.active?this.treeTableService.isExpanded(X(e)):!1}getDataPath(e){if(this.treeTableService.active)return this.treeTableService.getDataPathForRow(X(e))}getCellComment(e,t){return this.cellCommentService.getComment(X(e),t)}async setCellComment(e,t,n){await this.cellCommentService.setComment(X(e),t,n??null,`api`)}refreshCellComments(e){this.cellCommentService.requestRefresh(e),this.closeCellCommentPopupIfAnchorNotVisible()}clearCellSelectionOnStructuralChange(){this.cellRangeService?.hasRanges()&&this.clearCellSelection()}getCellRanges(){return this.cellRangeService?[...this.cellRangeService.getRanges()]:[]}getCellSelectionAggregation(){if(!this.cellSelectionOptions.enabled||!this.cellRangeService?.hasRanges())return null;let e=this.getCellRangeOperationContext(),t=oc({ranges:this.cellRangeService.getRanges(),displayedColIds:e.displayedColIds,rowKindAt:e.rowKindAt??(()=>void 0),getCellValue:(e,t)=>{let n=this.rowModel.getRow(e),r=this.columnModel.getColumnById(t);if(!(!n||!r))return U(n,r)},normalizePosition:(e,t)=>{let n=this.rowModel.getRow(e);if(!n)return{rowIndex:e,colId:t};let r=Rg(this.rowModel,this.columnModel,this.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.cellRangeService)return;if(!this.cellSelectionOptions.enabled){qs(e,`cellSelection is disabled`);return}let t=this.getCellRangeOperationContext(),n=t.rowKindAt??(()=>void 0);if(!Y(e,t.displayedColIds)){qs(e,`column ids not in displayed columns`);return}if(!Vs(e,n)){qs(e,`range includes ineligible cells`);return}this.cellRangeService.addRange(e,t)&&(this.applyCellRangeVisuals(),this.emitCellSelectionChanged(`api`))}copySelectedRangeToClipboard(){this.cellClipboardService?.copySelectedRanges()}playCellRangeCopyFlash(){this.cellRangeVisualController?.playCopyFlash()}playCellRangePasteFlash(e){requestAnimationFrame(()=>{this.cellRangeVisualController?.playPasteFlash(e)})}async pasteFromClipboard(){await this.cellClipboardService?.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=Nu(this.emptyStateOptionsRaw),this.syncEmptyStateOverlay(),this.refreshOverlayPresentation()}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||(this.overlayRenderer.syncLayout(),this.overlayService.updateOverlay())}updateCellRangeVisualOptions(e){this.cellRangeVisualGridOptions={...this.cellRangeVisualGridOptions,...e},this.cellRangeVisualOptions=Fs(this.cellRangeVisualGridOptions),this.applyCellRangeVisuals()}updateCellSelectionOptions(e){let t=this.cellSelectionOptions.enabled,n=t?[...this.getCellRanges()]:[];this.cellSelectionGridOptions={...this.cellSelectionGridOptions,...e},this.cellSelectionOptions=Is(this.cellSelectionGridOptions),this.syncCellRangeSelectionRuntime(t),t&&!this.cellSelectionOptions.enabled&&n.length>0&&this.eventBus.emit(`cellSelectionChanged`,{ranges:[],source:`api`})}updateCellClipboardOptions(e){this.cellClipboardGridOptions={...this.cellClipboardGridOptions,...e}}createCellRangeVisualController(){return new nm({mountEl:this.mountEl,rowsLayerEl:this.rowsLayerEl,rowModel:this.rowModel,columnModel:this.columnModel,rowRenderer:this.rowRenderer,getScrollTop:()=>this.viewport.getLogicalScrollTop(),getScrollLeft:()=>this.viewport.viewportEl.scrollLeft,getViewportWidth:()=>this.viewport.viewportEl.clientWidth,isCompressedScroll:()=>this.rowsLayerEl.classList.contains(`mg-rows-layer--compressed`),getViewportHeight:()=>this.viewport.getRenderViewportHeight(),isHeaderHighlightEnabled:()=>this.cellRangeVisualOptions.enableHeaderHighlight,isIndexColumnHighlightEnabled:()=>this.cellRangeVisualOptions.enableIndexColumnHighlight&&this.indexColumnOptions.showIndexColumn,getIndexFocusedRowIds:()=>this.indexFocusService?.getFocusedRowIds()??[],getSelectedRowIds:()=>this.selectionService?.getSelectedRowIds()??[],isSyncToSelectionColumnEnabled:()=>this.indexColumnOptions.indexColumn.syncToSelectionColumn?Rr(this.indexColumnOptions.indexColumn.focusMode,this.selectionColumnOptions.mode):!1,isCellSelectionVisualEnabled:()=>this.cellSelectionOptions.enabled,getCellSelectionOptions:()=>this.cellSelectionOptions,getCellSpanService:()=>this.cellSpanService})}syncCellRangeSelectionRuntime(e){if(e&&!this.cellSelectionOptions.enabled){this.cellRangeService?.clear(),this.applyCellRangeVisuals();return}this.cellRangeService?.setSuppressMultiRanges(this.cellSelectionOptions.suppressMultiRanges),this.applyCellRangeVisuals()}getCellRangeOperationContext(){let e=this.columnModel.getDisplayedColumnIds();return{displayedColIds:e,rowKindAt:e=>this.rowModel.getRow(e)?.rowKind,expandRangeForCellSpans:t=>Qs(t,{rowModel:this.rowModel,columnModel:this.columnModel,cellSpanService:this.cellSpanService,displayedColIds:e})}}applyCellRangeVisuals(){if(!this.cellRangeVisualController||!this.cellRangeService)return;let e=this.columnModel.getDisplayedColumnIds(),t=this.cellRangeService.getRanges(),n=Ls({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})}applyFocusVisuals(){this.interaction.applyFocusVisuals()}resolveRowEditingHighlightRanges(){if(!this.cellEditing.isEditing())return[];let e=this.cellEditing.getEditingCells();if(e.length<=1)return[];let t=e[0].rowIndex,n=this.rowModel.getRow(t)?.rowKind,r=this.columnModel.getDisplayedColumnIds(),i=e.map(e=>e.colId).filter(e=>q(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[J({rowIndex:t,colId:a},{rowIndex:t,colId:o})]}resolveHighlightProjectionCell(){if(this.cellEditing.isEditing()){let e=this.cellEditing.getEditingCell();if(e){let t=this.rowModel.getRowIndexById(String(e.rowId));if(t>=0)return{rowIndex:t,colId:e.colId}}}let e=this.cellFocusService.getFocusedCell();return!e||F(e)?null:{rowIndex:e.rowIndex,colId:e.colId}}isHighlightProjectionCellEligible(){let e=this.resolveHighlightProjectionCell();if(!e)return!1;let t=this.rowModel.getRow(e.rowIndex)?.rowKind;return q(e.colId,t)}applyCellRangeScrollVisuals(){!this.cellRangeVisualController||!this.cellRangeService?.hasRanges()||this.cellRangeVisualController.syncOverlayPosition()}emitCellSelectionChanged(e){this.cellRangeService&&this.eventBus.emit(`cellSelectionChanged`,{ranges:[...this.cellRangeService.getRanges()],source:e})}async handleCellSelectionDeleteKey(){if(!this.cellSelectionOptions.enabled||!this.cellRangeService?.hasRanges())return;this.cellEditing.isEditing()&&await this.cellEditing.stopEditing(!0);let e=[...this.cellRangeService.getRanges()];this.eventBus.emit(`cellSelectionDeleteStart`,{ranges:e});let t=this.cellRangeDeleteWriteService?.clearRanges(e,this.getCellRangeOperationContext())??0;this.eventBus.emit(`cellSelectionDeleteEnd`,{ranges:e,changedCellCount:t})}updateCellCommentOptions(e){let t=this.cellCommentOptions.cellCommentsDataSource;this.cellCommentOptions=zl({...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=Wa({...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 t=this.rowModel.getSortModel().length>0,{rowDragManaged:n}=this.rowDragOptions,r=this.rowGroupingService.active,i=this.treeTableService.active,a=r||i;return I(e)?pa(this.indexColumnOptions.indexColumn.showRowDragHandle,t,n,a):this.columnModel.getColumnById(e)?.rowDrag?pa(!0,t,n,a):!1}getData(e){return this.rowMutation.getData(e)}promoteRowId(e){return this.rowMutation.promoteRowId(e)}beginUpdate(){this.rowMutation.beginUpdate()}endUpdate(){this.rowMutation.endUpdate()}refreshCells(e){return this.rowRenderer.setValueCacheVersion(this.valueCache.getVersion()),this.frameService.flushAllFrames(),this.rowRenderer.refreshRows(e??{})}refreshCellSpans(){this.refreshCellSpanCache(),this.valueCache.bump(),this.rowRenderer.setValueCacheVersion(this.valueCache.getVersion()),this.rowRenderer.invalidate(),this.viewport.redrawImmediately(),this.gridFooter.refresh()}getCellSpan(e,t){return this.cellSpanService.getCellSpan(X(e),t)}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}}syncRowExpansionDisplay(){this.rowExpansionOptions.masterDetail&&(this.rowModel.rebuildDisplayProjection(),this.viewport.syncViewportHeight(),this.rowRenderer.invalidate(),this.viewport.redrawImmediately())}syncRowGroupingDisplay(){this.rowGroupingService.active&&(this.rowModel.rebuildGroupedMapProjection(),this.viewport.syncViewportHeight(),this.rowRenderer.invalidate(),this.viewport.redrawImmediately(),this.refreshCellSpanCache())}syncTreeTableDisplay(){this.treeTableService.active&&(this.rowModel.rebuildTreeMapProjection(),this.viewport.syncViewportHeight(),this.rowRenderer.invalidate(),this.viewport.redrawImmediately(),this.refreshCellSpanCache(),this.selectionOps.refreshSelectionAfterDataChange())}refreshTreeLoadingVisuals(e){if(!this.treeTableService.active)return;let t={force:!0,colIds:[tn]};e&&(t.rowIds=[e]),this.rowRenderer.refreshRows(t)}refreshDetailRowContent(e){!this.rowExpansionOptions.masterDetail||e.length===0||this.rowRenderer.refreshDetailRows(e)}refreshCellSpanCache(){this.cellSpanService.refresh()}syncRowLayoutAfterRowHeightChange(e){if(this.suppressRowLayoutViewportSync){this.rowRenderer.syncVisibleRowLayouts(e);return}this.viewport.syncViewportHeight(),this.rowRenderer.syncVisibleRowLayouts(),this.viewport.syncBorderClosureState()}scrollTo(e,t){this.viewport.scrollTo(e,t)}flushFrames(){this.frameService.flushAllFrames()}startEditingCell(e){this.cellEditing.startEditingCell(e)}stopEditing(e=!1){return this.cellEditing.stopEditing(e)}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:Tr(e.rowId,this.businessRowIdCtx)}:null}getEditingCells(){return this.cellEditing.getEditingCells().map(e=>({...e,rowId:Tr(e.rowId,this.businessRowIdCtx)}))}validate(e){return this.cellEditing.validate(OS(e)).then(e=>Or(e,this.businessRowIdCtx))}validateRows(e){return this.cellEditing.validateRows(kS(e)).then(e=>Or(e,this.businessRowIdCtx))}validateCells(e){return this.cellEditing.validateCells(AS(e)).then(e=>Or(e,this.businessRowIdCtx))}clearValidation(e){this.cellEditing.clearValidation(jS(e))}clearRowValidation(e){this.cellEditing.clearRowValidation(MS(e))}clearCellValidation(e){this.cellEditing.clearCellValidation(NS(e))}registerCellEditor(e,t){this.cellEditing.registerCellEditor(e,t)}unregisterCellEditor(e){return this.cellEditing.unregisterCellEditor(e)}destroy(){this.destroyed||(this.destroyed=!0,this.rowDragCommitService?.destroy(),this.cellCommentService.destroy(),this.cellRangeService?.clear(),this.cellRangeVisualController?.destroy(),this.cellRangeVisualController=null,this.overflowTooltipSession.destroy(),this.overlayRenderer?.destroy(),this.overlayService?.destroy(),this.rowRenderer.setCellCommentHost(void 0),this.cellEditing.cancelEditingOnDestroy(),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.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)}},RS={"--mg-color-bg":`#141414`,"--mg-color-text-primary":`#e8e8e8`,"--mg-color-text-regular":`#e0e0e0`,"--mg-color-text-secondary":`#9aa0a6`,"--mg-color-border":`#3a3f47`,"--mg-color-border-light":`#32363d`,"--mg-color-bg-stripe":`#1c1c1c`,"--mg-color-bg-header":`#1a2332`,"--mg-color-bg-footer":`#1a2332`,"--mg-color-bg-status-bar":`#141414`,"--mg-color-column-drag-ghost-bg":`#1a2332`,"--mg-fixed-shadow-left":`4px 0 8px -2px rgba(0, 0, 0, 0.45)`,"--mg-fixed-shadow-right":`-4px 0 8px -2px rgba(0, 0, 0, 0.45)`,"--mg-column-handle-menu-shadow":`0 1px 2px rgba(0, 0, 0, 0.35), 0 4px 12px rgba(0, 0, 0, 0.4)`},zS={"--mg-color-bg-cell":`#ffffff`,"--mg-color-bg-stripe":`#f5f7fa`,"--mg-color-text-primary":`#333333`,"--mg-color-text-regular":`#333333`,"--mg-color-text-secondary":`#9f9f9f`,"--mg-color-border":`#d8d8d8`,"--mg-color-border-light":`#d8d8d8`,"--mg-fixed-shadow-left":`4px 0 8px -2px rgba(0, 0, 0, 0.12)`,"--mg-fixed-shadow-right":`-4px 0 8px -2px rgba(0, 0, 0, 0.12)`};function BS(e){return e??`light`}function VS(e){return`magic-grid--theme-${e}`}function HS(e){return e===`dark`?{...RS}:{}}function US(e){return e===`dark`?{...zS}:{}}var WS=Object.keys(zS);function GS(e,t){if(!e)return;for(let t of WS)e.style.removeProperty(t);let n=US(t);for(let[t,r]of Object.entries(n))e.style.setProperty(t,r)}var KS={class:`mg-status-bar__panels`},qS=(0,t.defineComponent)({__name:`StatusBarDefaultPanels`,props:{context:{}},setup(e){let n=e,r=(0,t.computed)(()=>{let{context:e}=n,t=[];return t.push(`共 ${e.totalRowCount} 行`),e.isFiltered&&t.push(`显示 ${e.displayedRowCount} 行`),e.rowSelectionEnabled&&e.selectedRowCount>0&&t.push(`已选 ${e.selectedRowCount} 行`),t});return(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,KS,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(r.value,(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:n,class:`mg-status-bar__panel`},(0,t.toDisplayString)(e),1))),128))]))}}),JS=2;function YS(e){if(typeof e==`number`){let t=XS(e);return{average:t,sum:t}}return{average:XS(e?.average??2),sum:XS(e?.sum??2)}}function XS(e){return Number.isFinite(e)?Math.max(0,Math.min(10,Math.trunc(e))):2}function ZS(e,t,n=2){if(t===`count`)return String(Math.trunc(e));let r=XS(n),i=10**r,a=Math.round(e*i)/i;return r===0?String(Math.round(a)):a.toFixed(r).replace(/\.?0+$/,``)}function QS(e){return e!=null&&e.count>0}var $S={key:0,class:`mg-status-bar__panels mg-status-bar__panels--aggregation`},eC=(0,t.defineComponent)({__name:`StatusBarRangeAggregationPanels`,props:{context:{}},setup(e){let n=e,r=(0,t.computed)(()=>QS(n.context.cellSelectionAggregation)),i=(0,t.computed)(()=>{let e=n.context.cellSelectionAggregation;if(!QS(e))return[];let t=n.context.statusBarRangeAggregationPrecision,r=[];return e.average!=null&&r.push({label:`平均值`,value:ZS(e.average,`average`,t.average)}),r.push({label:`计数`,value:ZS(e.count,`count`)}),e.sum!=null&&r.push({label:`求和`,value:ZS(e.sum,`sum`,t.sum)}),r});return(e,n)=>r.value&&i.value.length?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,$S,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(i.value,(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:n,class:`mg-status-bar__panel`},(0,t.toDisplayString)(e.label)+`: `+(0,t.toDisplayString)(e.value),1))),128))])):(0,t.createCommentVNode)(``,!0)}});function tC(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 nC(e){return{...e,syncToSelectionColumn:e?.syncToSelectionColumn??!0}}function rC(e){return Is({cellSelection:e}).enabled}function iC(e){let n=(0,t.ref)(0),r=(0,t.ref)(0),i=()=>{n.value+=1};return{statusBarContext:(0,t.computed)(()=>{n.value;let t=e.api.value,i=t?.getMetrics(),a=ze(e.rowSelection.value).mode!==!1,o=rC(e.cellSelection.value);return{api:t,totalRowCount:i?.sourceRowCount??0,displayedRowCount:i?.rowCount??0,isFiltered:t?.isAnyFilterActive()??(i!=null&&i.sourceRowCount!==i.rowCount),selectedRowCount:r.value,rowSelectionEnabled:a,cellSelectionEnabled:o,cellSelectionAggregation:o?t?.getCellSelectionAggregation()??null:null,statusBarRangeAggregationPrecision:YS(e.statusBarRangeAggregationPrecision.value),metrics:i}}),bumpRefresh:i,onSelectionChanged:e=>{r.value=e.length,i()},resetSelectionCount:()=>{r.value=0}}}var aC=class{render(e,n){(0,t.render)(n,e)}unmount(e){(0,t.render)(null,e)}};function oC(e,t){return(n,r)=>{e.render(r.mountEl,t(n))}}function sC(e,t){return oC(e,e=>{let n=t(e);return Array.isArray(n)?n[0]:n})}var cC=class{render(e,n){(0,t.render)(n,e)}unmount(e){(0,t.render)(null,e)}};function lC(e,t){return(n,r)=>{e.render(r.mountEl,t(n))}}function uC(e,t){return lC(e,e=>{let n=t(e);return Array.isArray(n)?n[0]:n})}var dC=class{render(e,n){(0,t.render)(n,e)}unmount(e){(0,t.render)(null,e)}};function fC(e,t){return(n,r)=>{e.render(r.mountEl,t(n))}}function pC(e,t){return fC(e,e=>{let n=t(e);return Array.isArray(n)?n[0]:n})}var mC=class{mountEl=null;render(e,n){this.unmount(),this.mountEl=e,(0,t.render)(n,e)}unmount(){this.mountEl&&=((0,t.render)(null,this.mountEl),null)}};function hC(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 gC=class{mountEl=null;render(e,n){this.unmount(),this.mountEl=e,(0,t.render)(n,e)}unmount(){this.mountEl&&=((0,t.render)(null,this.mountEl),null)}};function _C(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 vC=[`data-status-bar`,`data-toolbar`],yC={key:0,class:`magic-grid__toolbar`},bC={key:0,class:`mg-status-bar__region mg-status-bar__region--left`},xC={key:1,class:`mg-status-bar__separator`,role:`separator`,"aria-orientation":`vertical`},SC={key:3,class:`mg-status-bar__separator`,role:`separator`,"aria-orientation":`vertical`},CC={key:4,class:`mg-status-bar__separator`,role:`separator`,"aria-orientation":`vertical`},wC={key:6,class:`mg-status-bar__separator`,role:`separator`,"aria-orientation":`vertical`},TC={key:7,class:`mg-status-bar__region mg-status-bar__region--right`},EC=(0,t.defineComponent)({inheritAttrs:!1,__name:`MagicGrid`,props:{columns:{type:Array,required:!0},data:{type:Array,required:!0},cellEditorRegistry:{type:Object,default:void 0},rowKey:{type:String,default:`id`},stripe:{type:Boolean,default:!1},border:{type:String,default:`border`},theme:{type:String,default:`light`},size:{type:String,default:`default`},rounded:{type:[Boolean,Number],default:!1},rowHeight:{type:Number,default:void 0},headerHeight:{type:Number,default:void 0},showIndexColumn:{type:Boolean,default:!1},indexColumn:{type:Object,default:void 0},selectionColumn:{type:Object,default:void 0},showSummary:{type:Boolean,default:!1},navigateHeader:{type:Boolean,default:!1},navigateFooter:{type:Boolean,default:!1},summaryScope:{type:String,default:`displayed`},summaryRowHeight:{type:Number,default:void 0},summaryMethod:{type:Function,default:void 0},headerAlign:{type:String,default:void 0},headerValign:{type:String,default:void 0},align:{type:String,default:void 0},valign:{type:String,default:void 0},footerAlign:{type:String,default:void 0},footerValign:{type:String,default:void 0},rowBuffer:{type:Number,default:10},rowSelection:{type:[String,Boolean,Object],default:`single`},selectable:{type:Function,default:void 0},isRowDisabled:{type:[Boolean,Function],default:void 0},rowStyle:{type:[Object,Function],default:void 0},reserveSelection:{type:Boolean,default:!1},editBehavior:{type:String,default:`cell`},editType:{type:String,default:`singleClick`},invalidEditValueMode:{type:String,default:`block`},rowValidator:{type:Function,default:void 0},asyncRowMutation:{type:Object,default:void 0},height:{type:[String,Number],default:`100%`},width:{type:[String,Number],default:`100%`},defaultSort:{type:Array,default:void 0},sortable:{type:Boolean,default:!1},columnMovable:{type:Boolean,default:!0},resizable:{type:Boolean,default:!0},colResizeDefault:{type:String,default:void 0},skipHeaderOnAutoSize:{type:Boolean,default:!1},autoSizePadding:{type:Number,default:void 0},autoSizeStrategy:{type:Object,default:void 0},suppressMoveWhenColumnDragging:{type:Boolean,default:!1},suppressColumnMoveAnimation:{type:Boolean,default:!1},allowCrossLaneColumnMove:{type:Boolean,default:!1},showUnsortedSortHintOnHover:{type:Boolean,default:!1},quickFilterText:{type:String,default:``},filterable:{type:Boolean,default:!1},floatingFilter:{type:Boolean,default:!1},filterSetValueMode:{type:String,default:`current`},filterSetDateLayoutMode:{type:String,default:`tree`},showStatusBar:{type:Boolean,default:!0},showDefaultStatusBarPanels:{type:Boolean,default:!0},statusBarHeight:{type:[String,Number],default:`auto`},showStatusBarRangeAggregation:{type:Boolean,default:!0},statusBarRangeAggregationPosition:{type:String,default:`right`},statusBarRangeAggregationPrecision:{type:[Number,Object],default:void 0},rowDragManaged:{type:Boolean,default:!0},rowDragCommitMode:{type:String,default:`sync`},onRowDragCommit:{type:Function,default:void 0},getRowHeight:{type:Function,default:void 0},rowHeightMin:{type:Number,default:void 0},rowHeightMax:{type:Number,default:void 0},enableCellSpan:{type:Boolean,default:!1},masterDetail:{type:Boolean,default:!1},isRowMaster:{type:Function,default:void 0},masterDefaultExpanded:{type:Number,default:void 0},detailRowHeight:{type:[Number,Function],default:void 0},detailRowAutoHeight:{type:Boolean,default:void 0},embedFullWidthRows:{type:Boolean,default:void 0},showExpandColumn:{type:Boolean,default:void 0},getDetailRowData:{type:Function,default:void 0},detailCellRenderer:{type:Function,default:void 0},rowGrouping:{type:Boolean,default:!1},groupDefaultExpanded:{type:Number,default:void 0},showGroupHeader:{type:Boolean,default:!1},showGroupFooter:{type:Boolean,default:!1},groupDisplayType:{type:String,default:void 0},showGroupColumn:{type:Boolean,default:!1},autoGroupColumnDef:{type:Object,default:void 0},groupKeyCreator:{type:Function,default:void 0},groupComparator:{type:Function,default:void 0},groupFooterLabel:{type:String,default:void 0},groupCellRenderer:{type:Function,default:void 0},tree:{type:Boolean,default:!1},getDataPath:{type:Function,default:void 0},showTreeColumn:{type:Boolean,default:void 0},autoTreeColumnDef:{type:Object,default:void 0},treeValueGetter:{type:Function,default:void 0},treeDisplayType:{type:String,default:void 0},treeDragScope:{type:String,default:void 0},setDataPath:{type:Function,default:void 0},treeLazyLoad:{type:Boolean,default:!1},hasTreeChildren:{type:Function,default:void 0},loadTreeChildren:{type:Function,default:void 0},cellCommentsDataSource:{type:Object,default:void 0},suppressCellComments:{type:Boolean,default:!1},cellCommentTrigger:{type:String,default:`click`},cellCommentShowDelay:{type:Number,default:void 0},cellCommentHideDelay:{type:Number,default:void 0},cellSelection:{type:[Boolean,Object],default:!0},enableCellCopy:{type:Boolean,default:void 0},enableCellPaste:{type:Boolean,default:void 0},enableHeaderHighlight:{type:Boolean,default:!0},enableIndexColumnHighlight:{type:Boolean,default:!0},processCellForClipboard:{type:Function,default:void 0},processCellFromClipboard:{type:Function,default:void 0},processDataFromClipboard:{type:Function,default:void 0},enableTooltips:{type:Boolean,default:void 0},tooltipShowMode:{type:String,default:void 0},tooltipShowDelay:{type:Number,default:void 0},tooltipSwitchShowDelay:{type:Number,default:void 0},tooltipHideDelay:{type:Number,default:void 0},tooltipInteraction:{type:Boolean,default:void 0},tooltipMouseTrack:{type:Boolean,default:void 0},tooltipComponent:{type:Function,default:void 0},tooltipComponentParams:{type:Object,default:void 0},loading:{type:Boolean,default:void 0},suppressOverlays:{type:Array,default:void 0},suppressLoadingOverlay:{type:Boolean,default:void 0},suppressNoRowsOverlay:{type:Boolean,default:void 0},suppressNoMatchingRowsOverlay:{type:Boolean,default:void 0},overlayLoadingTemplate:{type:String,default:void 0},overlayNoRowsTemplate:{type:String,default:void 0},overlayNoMatchingRowsTemplate:{type:String,default:void 0},overlayInteraction:{type:Boolean,default:void 0},loadingOverlayComponent:{type:Function,default:void 0},loadingOverlayComponentParams:{type:Object,default:void 0},noRowsOverlayComponent:{type:Function,default:void 0},noRowsOverlayComponentParams:{type:Object,default:void 0},noMatchingRowsOverlayComponent:{type:Function,default:void 0},noMatchingRowsOverlayComponentParams:{type:Object,default:void 0},overlayComponent:{type:Function,default:void 0},overlayComponentParams:{type:Object,default:void 0}},emits:`scroll.data-rendered.cell-clicked.row-click.row-dblclick.selection-changed.index-focus-changed.cell-value-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`.split(`.`),setup(n,{expose:r,emit:c}){let l=new aC,u=new cC,d=new dC,f=new mC,m=new gC;function h(e,t){return e.key??e.prop??`col_${t}`}function g(e,t){let n={};return e.forEach((e,r)=>{let i=h(e,r);e.cellRenderer&&(n[i]=e.cellRenderer);let a=t[`cell-${i}`];a&&(n[i]=sC(l,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 _(e,t){let n={};return e.forEach((e,r)=>{let i=h(e,r);e.cellEditor&&typeof e.cellEditor==`function`&&(n[i]=e.cellEditor);let a=t[`cell-editor-${i}`];a&&(n[i]=pC(d,e=>a({row:e.data,value:e.value,formattedValue:e.formattedValue,rowIndex:e.rowIndex,rowId:e.rowId,colId:e.colId,stopEditing:e.stopEditing})))}),n}function v(e,t){let n=t.tooltip;return n?hC(f,e=>n(e)):e}function y(e,t,n){let r=t[e];return r?_C(m,e=>r({overlayType:e.overlayType,api:e.api,overlayText:e.overlayText})):n}function b(e){return{loading:x.loading,suppressOverlays:x.suppressOverlays,suppressLoadingOverlay:x.suppressLoadingOverlay,suppressNoRowsOverlay:x.suppressNoRowsOverlay,suppressNoMatchingRowsOverlay:x.suppressNoMatchingRowsOverlay,overlayLoadingTemplate:x.overlayLoadingTemplate,overlayNoRowsTemplate:x.overlayNoRowsTemplate,overlayNoMatchingRowsTemplate:x.overlayNoMatchingRowsTemplate,overlayInteraction:x.overlayInteraction,overlayComponent:x.overlayComponent,overlayComponentParams:x.overlayComponentParams,loadingOverlayComponent:y(`loading`,e,x.loadingOverlayComponent),loadingOverlayComponentParams:x.loadingOverlayComponentParams,noRowsOverlayComponent:y(`no-rows`,e,x.noRowsOverlayComponent),noRowsOverlayComponentParams:x.noRowsOverlayComponentParams,noMatchingRowsOverlayComponent:y(`no-matching-rows`,e,x.noMatchingRowsOverlayComponent),noMatchingRowsOverlayComponentParams:x.noMatchingRowsOverlayComponentParams}}function ee(e,t){let n=t[`detail-row`];return n?uC(u,e=>n({row:e.data,rowId:e.rowId,masterRowId:e.masterRowId,detailRowData:e.detailRowData,loading:e.loading,loadFailed:e.loadFailed,loadError:e.loadError})):e}let x=n,S=c,C=(0,t.useSlots)(),w=(0,t.ref)(),T=(0,t.ref)(),E=(0,t.ref)(),D=(0,t.shallowRef)(),O=(0,t.shallowRef)(),{statusBarContext:k,bumpRefresh:A,onSelectionChanged:j,resetSelectionCount:M}=iC({api:O,rowSelection:(0,t.computed)(()=>x.rowSelection),cellSelection:(0,t.computed)(()=>x.cellSelection),statusBarRangeAggregationPrecision:(0,t.computed)(()=>x.statusBarRangeAggregationPrecision)}),N=(0,t.computed)(()=>!!C[`status-bar`]),te=(0,t.computed)(()=>!!C[`status-bar-left`]),ne=(0,t.computed)(()=>!!C[`status-bar-right`]),P=(0,t.computed)(()=>!!C.toolbar),re=(0,t.computed)(()=>({api:O.value,size:ae.value.size,portalEl:T.value??void 0})),ie=[],ae=(0,t.computed)(()=>a({size:x.size,rowHeight:x.rowHeight,headerHeight:x.headerHeight})),oe=(0,t.computed)(()=>i({rounded:x.rounded,sizeBorderRadius:ae.value.borderRadius})),se=(0,t.computed)(()=>BS(x.theme)),ce=(0,t.computed)(()=>tC(x.cellSelection)),le=(0,t.computed)(()=>nC(x.indexColumn)),ue=(0,t.computed)(()=>o(x.statusBarHeight,ae.value.statusBarHeight)),de=(0,t.computed)(()=>x.showDefaultStatusBarPanels||te.value),fe=(0,t.computed)(()=>ne.value),pe=(0,t.computed)(()=>x.showStatusBarRangeAggregation?QS(k.value.cellSelectionAggregation):!1),me=(0,t.computed)(()=>x.statusBarRangeAggregationPosition===`left`&&pe.value),he=(0,t.computed)(()=>x.statusBarRangeAggregationPosition===`right`&&pe.value),ge=(0,t.computed)(()=>de.value),_e=(0,t.computed)(()=>me.value),ve=(0,t.computed)(()=>he.value||fe.value),ye=(0,t.computed)(()=>he.value&&fe.value),be=(0,t.computed)(()=>({height:typeof x.height==`number`?`${x.height}px`:x.height,width:typeof x.width==`number`?`${x.width}px`:x.width,...p({...ae.value,statusBarHeight:ue.value},oe.value,x.summaryRowHeight),...HS(se.value)})),xe=(0,t.computed)(()=>{let e=ue.value,{fontSize:t,spacing:n}=ae.value,r=s(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`}}),F=(0,t.computed)(()=>[`magic-grid`,`magic-grid--border-${x.border}`,`magic-grid--size-${ae.value.size}`,VS(se.value),x.showSummary&&`magic-grid--has-footer`,x.showStatusBar&&`magic-grid--has-status-bar`,P.value&&`magic-grid--has-toolbar`]),Se=()=>{D.value&&S(`scroll`,D.value.getMetrics())},Ce=()=>{D.value&&(S(`data-rendered`,D.value.getMetrics()),A())},we=()=>{requestAnimationFrame(()=>{Se()})},Te=()=>{requestAnimationFrame(()=>{Ce()})},Ee=e=>{for(let e of ie)e();ie.length=0,ie.push(e.on(`cellClicked`,e=>S(`cell-clicked`,e)),e.on(`rowClicked`,e=>S(`row-click`,e)),e.on(`rowDoubleClicked`,e=>S(`row-dblclick`,e)),e.on(`selectionChanged`,e=>{j(e.selectedRowIds),S(`selection-changed`,e)}),e.on(`indexFocusChanged`,e=>S(`index-focus-changed`,e)),e.on(`cellValueChanged`,e=>{S(`cell-value-changed`,e),A()}),e.on(`cellEditingStarted`,e=>S(`cell-editing-started`,e)),e.on(`cellEditingStopped`,e=>S(`cell-editing-stopped`,e)),e.on(`cellCommitStarted`,e=>S(`cell-commit-started`,e)),e.on(`cellCommitFinished`,e=>S(`cell-commit-finished`,e)),e.on(`editCommitAborted`,e=>S(`edit-commit-aborted`,e)),e.on(`rowCommitStarted`,e=>S(`row-commit-started`,e)),e.on(`rowCommitFinished`,e=>S(`row-commit-finished`,e)),e.on(`rowEditingStarted`,e=>S(`row-editing-started`,e)),e.on(`rowEditingStopped`,e=>S(`row-editing-stopped`,e)),e.on(`rowValueChanged`,e=>S(`row-value-changed`,e)),e.on(`cellValidationFailed`,e=>S(`cell-validation-failed`,e)),e.on(`rowValidationFailed`,e=>S(`row-validation-failed`,e)),e.on(`sortChanged`,e=>S(`sort-changed`,e.sortModel)),e.on(`columnMoved`,e=>S(`column-moved`,e)),e.on(`columnResized`,e=>S(`column-resized`,e)),e.on(`columnPinned`,e=>S(`column-pinned`,e)),e.on(`columnHiddenChanged`,e=>S(`column-hidden-changed`,e)),e.on(`filterChanged`,e=>{S(`filter-changed`,e.filterModel),A()}),e.on(`rowsAdded`,e=>{S(`rows-added`,e),A()}),e.on(`rowsRemoved`,e=>{S(`rows-removed`,e),A()}),e.on(`rowIdPromoted`,e=>S(`row-id-promoted`,e)),e.on(`rowMoved`,e=>S(`row-moved`,e)),e.on(`rowDragEnd`,e=>S(`row-drag-end`,e)),e.on(`rowDragCommitStarted`,e=>S(`row-drag-commit-started`,e)),e.on(`rowDragCommitFinished`,e=>S(`row-drag-commit-finished`,e)),e.on(`rowHeightChanged`,e=>S(`row-height-changed`,e)),e.on(`rowExpanded`,e=>S(`row-expanded`,e)),e.on(`rowCollapsed`,e=>S(`row-collapsed`,e)),e.on(`rowGroupOpened`,e=>S(`row-group-opened`,e)),e.on(`treeNodeOpened`,e=>S(`tree-node-opened`,e)),e.on(`treeChildrenLoading`,e=>S(`tree-children-loading`,e)),e.on(`treeChildrenLoaded`,e=>S(`tree-children-loaded`,e)),e.on(`treeChildrenLoadFailed`,e=>S(`tree-children-load-failed`,e)),e.on(`rowGroupChanged`,e=>S(`row-group-changed`,e)),e.on(`cellCommentChanged`,e=>S(`cell-comment-changed`,e)),e.on(`cellSelectionChanged`,e=>{S(`cell-selection-changed`,e),A()}),e.on(`cellSelectionDeleteStart`,e=>S(`cell-selection-delete-start`,e)),e.on(`cellSelectionDeleteEnd`,e=>S(`cell-selection-delete-end`,e)),e.on(`overlayShown`,e=>S(`overlay-shown`,e)),e.on(`overlayHidden`,e=>S(`overlay-hidden`,e)))},De=()=>{GS(w.value?.querySelector(`.mg-body`),se.value)};function Oe(){D.value?.setStatusBarElement(x.showStatusBar?E.value??null:null)}let ke=()=>{if(w.value){for(let e of ie)e();ie.length=0,D.value?.destroy(),M(),x.columns,x.columns,x.columns,pn(x.columns),Om({tree:x.tree,rowGrouping:x.rowGrouping}),D.value=new LS(w.value,{columns:e.r(x.columns),rowKey:x.rowKey,rowHeight:ae.value.rowHeight,headerHeight:ae.value.headerHeight,rowBuffer:x.rowBuffer,stripe:x.stripe,rowSelection:x.rowSelection,selectable:x.selectable,isRowDisabled:x.isRowDisabled,rowStyle:x.rowStyle,reserveSelection:x.reserveSelection,editType:x.editType,editBehavior:x.editBehavior,invalidEditValueMode:x.invalidEditValueMode,rowValidator:x.rowValidator,asyncRowMutation:x.asyncRowMutation,showIndexColumn:x.showIndexColumn,indexColumn:le.value,selectionColumn:x.selectionColumn,showSummary:x.showSummary,navigateHeader:x.navigateHeader,navigateFooter:x.navigateFooter,summaryScope:x.summaryScope,summaryRowHeight:x.summaryRowHeight,summaryMethod:x.summaryMethod,headerAlign:x.headerAlign,headerValign:x.headerValign,align:x.align,valign:x.valign,footerAlign:x.footerAlign,footerValign:x.footerValign,defaultSort:x.defaultSort,sortable:x.sortable,columnMovable:x.columnMovable,resizable:x.resizable,colResizeDefault:x.colResizeDefault,skipHeaderOnAutoSize:x.skipHeaderOnAutoSize,autoSizePadding:x.autoSizePadding,autoSizeStrategy:x.autoSizeStrategy,suppressMoveWhenColumnDragging:x.suppressMoveWhenColumnDragging,suppressColumnMoveAnimation:x.suppressColumnMoveAnimation,allowCrossLaneColumnMove:x.allowCrossLaneColumnMove,showUnsortedSortHintOnHover:x.showUnsortedSortHintOnHover,quickFilterText:x.quickFilterText,filterable:x.filterable,floatingFilter:x.floatingFilter,filterSetValueMode:x.filterSetValueMode,filterSetDateLayoutMode:x.filterSetDateLayoutMode,rowDragManaged:x.rowDragManaged,rowDragCommitMode:x.rowDragCommitMode,onRowDragCommit:x.onRowDragCommit,getRowHeight:x.getRowHeight,rowHeightMin:x.rowHeightMin,rowHeightMax:x.rowHeightMax,enableCellSpan:x.enableCellSpan,masterDetail:x.masterDetail,isRowMaster:x.isRowMaster,masterDefaultExpanded:x.masterDefaultExpanded,detailRowHeight:x.detailRowHeight,detailRowAutoHeight:x.detailRowAutoHeight,embedFullWidthRows:x.embedFullWidthRows,showExpandColumn:x.showExpandColumn,getDetailRowData:x.getDetailRowData,detailCellRenderer:ee(x.detailCellRenderer,C),rowGrouping:x.rowGrouping,groupDefaultExpanded:x.groupDefaultExpanded,showGroupHeader:x.showGroupHeader,showGroupFooter:x.showGroupFooter,groupDisplayType:x.groupDisplayType,showGroupColumn:x.showGroupColumn,autoGroupColumnDef:x.autoGroupColumnDef,groupKeyCreator:x.groupKeyCreator,groupComparator:x.groupComparator,groupFooterLabel:x.groupFooterLabel,groupCellRenderer:x.groupCellRenderer,tree:x.tree,getDataPath:x.getDataPath,showTreeColumn:x.showTreeColumn,autoTreeColumnDef:x.autoTreeColumnDef,treeValueGetter:x.treeValueGetter,treeDisplayType:x.treeDisplayType,treeDragScope:x.treeDragScope,setDataPath:x.setDataPath,treeLazyLoad:x.treeLazyLoad,hasTreeChildren:x.hasTreeChildren,loadTreeChildren:x.loadTreeChildren,cellCommentsDataSource:x.cellCommentsDataSource,suppressCellComments:x.suppressCellComments,cellCommentTrigger:x.cellCommentTrigger,cellCommentShowDelay:x.cellCommentShowDelay,cellCommentHideDelay:x.cellCommentHideDelay,cellSelection:ce.value,enableCellCopy:x.enableCellCopy,enableCellPaste:x.enableCellPaste,enableHeaderHighlight:x.enableHeaderHighlight,enableIndexColumnHighlight:x.enableIndexColumnHighlight,processCellForClipboard:x.processCellForClipboard,processCellFromClipboard:x.processCellFromClipboard,processDataFromClipboard:x.processDataFromClipboard,enableTooltips:x.enableTooltips,tooltipShowMode:x.tooltipShowMode,tooltipShowDelay:x.tooltipShowDelay,tooltipSwitchShowDelay:x.tooltipSwitchShowDelay,tooltipHideDelay:x.tooltipHideDelay,tooltipInteraction:x.tooltipInteraction,tooltipMouseTrack:x.tooltipMouseTrack,tooltipComponent:v(x.tooltipComponent,C),tooltipComponentParams:x.tooltipComponentParams,...b(C),cellRenderers:{byColId:g(x.columns,C)},cellEditors:{byColId:_(x.columns,C),byName:x.cellEditorRegistry},onUnmountRenderer:e=>{l.unmount(e),u.unmount(e)},onUnmountEditor:e=>{d.unmount(e)},onScroll:()=>{we()}}),O.value=D.value.getApi(),Ee(D.value),D.value.setData(x.data),Te(),De(),(0,t.nextTick)(()=>Oe())}};return(0,t.onMounted)(()=>{ke()}),(0,t.watch)(se,De),(0,t.watch)(()=>x.quickFilterText,e=>{let t=D.value?.getApi();!t||t.getQuickFilterText()===e||t.setQuickFilterText(e)}),(0,t.watch)(()=>[x.cellCommentsDataSource,x.suppressCellComments,x.cellCommentTrigger,x.cellCommentShowDelay,x.cellCommentHideDelay],()=>{D.value?.updateCellCommentOptions({cellCommentsDataSource:x.cellCommentsDataSource,suppressCellComments:x.suppressCellComments,cellCommentTrigger:x.cellCommentTrigger,cellCommentShowDelay:x.cellCommentShowDelay,cellCommentHideDelay:x.cellCommentHideDelay})}),(0,t.watch)(()=>[ce.value,x.enableCellCopy,x.enableCellPaste],()=>{D.value?.updateCellSelectionOptions({cellSelection:ce.value,enableCellCopy:x.enableCellCopy,enableCellPaste:x.enableCellPaste})}),(0,t.watch)(()=>[x.enableHeaderHighlight,x.enableIndexColumnHighlight],()=>{D.value?.updateCellRangeVisualOptions({enableHeaderHighlight:x.enableHeaderHighlight,enableIndexColumnHighlight:x.enableIndexColumnHighlight})}),(0,t.watch)(()=>[x.processCellForClipboard,x.processCellFromClipboard,x.processDataFromClipboard],()=>{D.value?.updateCellClipboardOptions({processCellForClipboard:x.processCellForClipboard,processCellFromClipboard:x.processCellFromClipboard,processDataFromClipboard:x.processDataFromClipboard})}),(0,t.watch)(()=>[x.enableTooltips,x.tooltipShowMode,x.tooltipShowDelay,x.tooltipSwitchShowDelay,x.tooltipHideDelay,x.tooltipInteraction,x.tooltipMouseTrack,x.tooltipComponent,x.tooltipComponentParams,C.tooltip],()=>{D.value?.updateOverflowTooltipOptions({enableTooltips:x.enableTooltips,tooltipShowMode:x.tooltipShowMode,tooltipShowDelay:x.tooltipShowDelay,tooltipSwitchShowDelay:x.tooltipSwitchShowDelay,tooltipHideDelay:x.tooltipHideDelay,tooltipInteraction:x.tooltipInteraction,tooltipMouseTrack:x.tooltipMouseTrack,tooltipComponent:v(x.tooltipComponent,C),tooltipComponentParams:x.tooltipComponentParams})}),(0,t.watch)(()=>[x.loading,x.suppressOverlays,x.suppressLoadingOverlay,x.suppressNoRowsOverlay,x.suppressNoMatchingRowsOverlay,x.overlayLoadingTemplate,x.overlayNoRowsTemplate,x.overlayNoMatchingRowsTemplate,x.overlayInteraction,x.loadingOverlayComponent,x.loadingOverlayComponentParams,x.noRowsOverlayComponent,x.noRowsOverlayComponentParams,x.noMatchingRowsOverlayComponent,x.noMatchingRowsOverlayComponentParams,x.overlayComponent,x.overlayComponentParams,C.loading,C[`no-rows`],C[`no-matching-rows`]],()=>{D.value?.updateEmptyStateOptions(b(C))}),(0,t.watch)(()=>[x.showStatusBar,E.value],()=>{(0,t.nextTick)(()=>Oe())}),(0,t.watch)(()=>x.data,e=>{D.value?.setData(e),Te()}),(0,t.watch)(()=>x.selectable,e=>{D.value?.setSelectable(e)}),(0,t.watch)(()=>x.isRowDisabled,e=>{D.value?.setIsRowDisabled(e)}),(0,t.watch)(()=>x.rowStyle,e=>{D.value?.setRowStyle(e)}),(0,t.watch)(()=>x.reserveSelection,e=>{D.value?.setReserveSelection(e)}),(0,t.watch)(()=>x.showUnsortedSortHintOnHover,e=>{D.value?.setShowUnsortedSortHintOnHover(e)}),(0,t.watch)(()=>x.sortable,e=>{D.value?.setColumnSortOptions({sortable:e})}),(0,t.watch)(()=>x.filterable,e=>{D.value?.setColumnFilterOptions({filterable:e})}),(0,t.watch)(()=>x.resizable,e=>{D.value?.setColumnResizeOptions({resizable:e})}),(0,t.watch)(()=>[x.columnMovable,x.suppressMoveWhenColumnDragging,x.suppressColumnMoveAnimation,x.allowCrossLaneColumnMove],([e,t,n,r])=>{D.value?.setColumnMoveOptions({columnMovable:e,suppressMoveWhenColumnDragging:t,suppressColumnMoveAnimation:n,allowCrossLaneColumnMove:r})}),(0,t.watch)(()=>({rowHeight:ae.value.rowHeight,rowHeightMin:x.rowHeightMin,rowHeightMax:x.rowHeightMax}),(e,n)=>{if(!D.value||!n)return;let r=D.value.getMetrics()?.scrollTop??0,i=D.value.getMetrics()?.scrollLeft??0;D.value.updateDimensions(e),(0,t.nextTick)(()=>{D.value?.scrollTo(r,i),requestAnimationFrame(()=>{D.value?.scrollTo(r,i)})})}),(0,t.watch)(()=>x.columns,()=>{D.value&&(D.value.setColumns(e.r(x.columns)),D.value.getApi().refreshCellStyles(),Te())}),(0,t.watch)(()=>[x.size,x.headerHeight,x.rowBuffer,x.rowKey,x.stripe,x.rowSelection,x.editType,x.editBehavior,x.invalidEditValueMode,x.rowValidator,x.asyncRowMutation,x.showIndexColumn,x.indexColumn,x.selectionColumn,x.showSummary,x.floatingFilter,x.navigateHeader,x.navigateFooter,x.summaryScope,x.summaryRowHeight,x.summaryMethod,x.headerAlign,x.headerValign,x.align,x.valign,x.footerAlign,x.footerValign,x.cellEditorRegistry,x.rowDragManaged,x.rowDragCommitMode,x.onRowDragCommit,x.getRowHeight,x.enableCellSpan,x.masterDetail,x.isRowMaster,x.masterDefaultExpanded,x.detailRowHeight,x.detailRowAutoHeight,x.embedFullWidthRows,x.showExpandColumn,x.getDetailRowData,x.detailCellRenderer,x.rowGrouping,x.groupDefaultExpanded,x.showGroupHeader,x.showGroupFooter,x.groupDisplayType,x.showGroupColumn,x.autoGroupColumnDef,x.groupKeyCreator,x.groupComparator,x.groupFooterLabel,x.groupCellRenderer,x.tree,x.getDataPath,x.showTreeColumn,x.autoTreeColumnDef,x.treeValueGetter,x.treeDisplayType,x.treeDragScope,x.setDataPath,x.treeLazyLoad,x.hasTreeChildren,x.loadTreeChildren,C[`detail-row`]],()=>{ke()}),(0,t.onUnmounted)(()=>{for(let e of ie)e();ie.length=0,D.value?.destroy(),f.unmount(),m.unmount(),D.value=void 0,O.value=void 0}),r({api:O,getMetrics:()=>D.value?.getMetrics(),scrollTo:(e,t)=>{D.value?.scrollTo(e,t),we()},setSortModel:e=>{D.value?.setSortModel(e),Te()},getSortModel:()=>D.value?.getSortModel()??[],setFilterModel:e=>{D.value?.setFilterModel(e),Te()},getData:e=>D.value?.getData(e)??[],applyTransaction:async e=>{let t=await D.value?.applyTransaction(e);return Te(),t},beginUpdate:()=>{D.value?.beginUpdate()},endUpdate:()=>{D.value?.endUpdate(),Te()},ensureIndexVisible:(e,t)=>{D.value?.ensureIndexVisible(e,t),we()},flushFrames:()=>{D.value?.flushFrames()}}),(e,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)(F.value),style:(0,t.normalizeStyle)(be.value),"data-status-bar":n.showStatusBar?`true`:`false`,"data-toolbar":P.value?`true`:`false`},[P.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,yC,[(0,t.renderSlot)(e.$slots,`toolbar`,(0,t.normalizeProps)((0,t.guardReactiveProps)(re.value)))])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,{ref_key:`mountRef`,ref:w,class:`magic-grid__mount`},null,512),(0,t.createElementVNode)(`div`,{ref_key:`portalRef`,ref:T,class:`magic-grid__portal`,"aria-hidden":`true`},null,512),n.showStatusBar?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:1,ref_key:`statusBarRef`,ref:E,class:`mg-status-bar`,style:(0,t.normalizeStyle)(xe.value),role:`status`,"aria-live":`polite`},[N.value?(0,t.renderSlot)(e.$slots,`status-bar`,(0,t.normalizeProps)((0,t.guardReactiveProps)((0,t.unref)(k))),void 0,void 0,0):((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:1},[de.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,bC,[n.showDefaultStatusBarPanels?((0,t.openBlock)(),(0,t.createBlock)(qS,{key:0,context:(0,t.unref)(k)},null,8,[`context`])):(0,t.createCommentVNode)(``,!0),(0,t.renderSlot)(e.$slots,`status-bar-left`,(0,t.normalizeProps)((0,t.guardReactiveProps)((0,t.unref)(k))))])):(0,t.createCommentVNode)(``,!0),ge.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,xC)):(0,t.createCommentVNode)(``,!0),me.value?((0,t.openBlock)(),(0,t.createBlock)(eC,{key:2,context:(0,t.unref)(k)},null,8,[`context`])):(0,t.createCommentVNode)(``,!0),_e.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,SC)):(0,t.createCommentVNode)(``,!0),r[0]||=(0,t.createElementVNode)(`div`,{class:`mg-status-bar__stretch`,"aria-hidden":`true`},null,-1),ve.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,CC)):(0,t.createCommentVNode)(``,!0),he.value?((0,t.openBlock)(),(0,t.createBlock)(eC,{key:5,context:(0,t.unref)(k)},null,8,[`context`])):(0,t.createCommentVNode)(``,!0),ye.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,wC)):(0,t.createCommentVNode)(``,!0),fe.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,TC,[(0,t.renderSlot)(e.$slots,`status-bar-right`,(0,t.normalizeProps)((0,t.guardReactiveProps)((0,t.unref)(k))))])):(0,t.createCommentVNode)(``,!0)],64))],4)):(0,t.createCommentVNode)(``,!0)],14,vC))}}),DC={"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`}]]},OC=[`width`,`height`],kC=(0,t.defineComponent)({__name:`ColumnSettingsMenuIcon`,props:{name:{},size:{default:16}},setup(e){let n=e,r=(0,t.computed)(()=>DC[n.name]);return(n,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`svg`,{class:`mg-column-settings-menu__icon-svg`,xmlns:`http://www.w3.org/2000/svg`,width:e.size,height:e.size,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(r.value,([n,r],i)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(n),(0,t.mergeProps)({key:`${e.name}-${n}-${i}`},{ref_for:!0},r),null,16))),128))],8,OC))}}),AC={key:0,class:`mg-column-settings-menu__item-icon`},jC={class:`mg-column-settings-menu__item-label`},MC=(0,t.defineComponent)({__name:`ColumnSettingsMenuItem`,props:{label:{}},setup(e){return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{type:`button`,class:(0,t.normalizeClass)((0,t.unref)(ru)),role:`menuitem`},[n.$slots.icon?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,AC,[(0,t.renderSlot)(n.$slots,`icon`)])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`span`,jC,[(0,t.renderSlot)(n.$slots,`default`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.label),1)])])],2))}}),NC=[`aria-expanded`],PC={class:`mg-column-settings-menu__item-leading`},FC={class:`mg-column-settings-menu__item-icon`},IC=(0,t.defineComponent)({__name:`ColumnSettingsMenu`,props:{showDivider:{type:Boolean}},emits:[`column-settings`,`custom-action`,`reset`],setup(e,{emit:n}){let r=n,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,t.ref)(!1),o=(0,t.ref)(!1),s=(0,t.ref)(null),c=(0,t.ref)(null);function l(){r(`column-settings`)}function u(){let e=s.value?.querySelector(`.${su}`),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,t.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(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)((0,t.unref)(nu)),role:`menu`},[(0,t.createVNode)(MC,{label:`列设置`,onClick:l},{icon:(0,t.withCtx)(()=>[(0,t.createVNode)(kC,{name:`sliders-vertical`})]),_:1}),(0,t.createElementVNode)(`div`,{ref_key:`resetSubmenuRef`,ref:s,class:(0,t.normalizeClass)([(0,t.unref)(au),{"mg-column-settings-menu__submenu--open":a.value}]),onMouseenter:d,onMouseleave:f,onFocusin:d,onFocusout:p},[(0,t.createElementVNode)(`button`,{type:`button`,class:(0,t.normalizeClass)([(0,t.unref)(ru),(0,t.unref)(su)]),role:`menuitem`,"aria-haspopup":`menu`,"aria-expanded":a.value},[(0,t.createElementVNode)(`span`,PC,[(0,t.createElementVNode)(`span`,FC,[(0,t.createVNode)(kC,{name:`list-restart`})]),r[1]||=(0,t.createElementVNode)(`span`,{class:`mg-column-settings-menu__item-label`},`重置`,-1)]),r[2]||=(0,t.createElementVNode)(`svg`,{class:`mg-column-settings-menu__item-chevron`,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,t.createElementVNode)(`path`,{d:`m9 18 6-6-6-6`})],-1)],10,NC),(0,t.withDirectives)((0,t.createElementVNode)(`div`,{ref_key:`resetSubmenuPanelRef`,ref:c,class:(0,t.normalizeClass)([(0,t.unref)(ou),{"mg-column-settings-menu__submenu-panel--flip":o.value}]),role:`menu`},[((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(i,e=>(0,t.createVNode)(MC,{key:e.scope,label:e.label,onClick:t=>m(e.scope)},{icon:(0,t.withCtx)(()=>[(0,t.createVNode)(kC,{name:e.icon},null,8,[`name`])]),_:2},1032,[`label`,`onClick`])),64))],2),[[t.vShow,a.value]])],34),e.showDivider?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:(0,t.normalizeClass)((0,t.unref)(iu)),role:`separator`,"aria-orientation":`horizontal`},null,2)):(0,t.createCommentVNode)(``,!0),e.showDivider?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:1,class:`mg-column-settings-menu__custom`,onClick:r[0]||=e=>n.$emit(`custom-action`)},[(0,t.renderSlot)(n.$slots,`default`)])):(0,t.createCommentVNode)(``,!0)],2))}}),LC=[`disabled`,`aria-disabled`,`title`],RC=(0,t.defineComponent)({__name:`ColumnSettingsClearFiltersBar`,props:{gridApi:{},canClearAllFilters:{type:Boolean}},emits:[`change`],setup(e,{emit:n}){let r=e,i=n;function a(){r.gridApi.clearAllFilters(),i(`change`)}return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{type:`button`,class:(0,t.normalizeClass)((0,t.unref)(cu)),disabled:!e.canClearAllFilters,"aria-disabled":!e.canClearAllFilters,title:e.canClearAllFilters?void 0:`当前无筛选`,onClick:a},` 清除全部筛选 `,10,LC))}}),zC=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},BC=zC(RC,[[`__scopeId`,`data-v-1c8bd037`]]);function VC(e){let t=null,n=()=>{t!=null&&(clearTimeout(t),t=null)};return{applyInput(r,i){n();let a=e.getColumnFilterType(r),o=()=>{let t=Mv(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=Pv(t,e.getFilterModel());return e.setFilterModel(i),Av(t,i,r,e.getColumnDistinctKeys(t))},destroy(){n()}}}var HC=zC((0,t.defineComponent)({__name:`ColumnFilterPanelEmbed`,props:{colId:{},gridApi:{},filterSetValueMode:{default:Sa},filterSetDateLayoutMode:{default:Ca}},emits:[`change`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.ref)(null),o=null,s=null,c=VC({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 Av(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=cy({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,t.onMounted)(()=>{u()}),(0,t.onBeforeUnmount)(()=>{c.destroy(),d()}),(0,t.watch)(()=>r.colId,()=>{u()}),(0,t.watch)(()=>r.gridApi.getFilterModel(),()=>{f()},{deep:!0}),(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{ref_key:`hostRef`,ref:a,class:`mg-column-settings__filter-embed`},null,512))}}),[[`__scopeId`,`data-v-85b2c30c`]]);function UC(e){return e===null?`asc`:e===`asc`?`desc`:null}function WC(e,t,n){return t===null?uv(e,n):t===`asc`?cv(e,n):lv(e,n)}function GC(e,t,n){e.setSortModel(WC(t,n,e.getSortModel()))}function KC(e,t,n){let r=UC(n);return GC(e,t,r),r}function qC(e,t,n){return e.setColumnFixed(t,n)}function JC(e){return e===`asc`?`升序`:e===`desc`?`降序`:`无排序`}function YC(e){return e===`left`?`固定左侧`:e===`right`?`固定右侧`:`不固定`}var XC=`[magic-grid] ColumnSettings: at least one user column must remain visible.`;function ZC(e){return e.filter(e=>mu(e.colId)&&Ma(e)).length}function QC(e){return e.filter(e=>mu(e.colId)&&e.hidden).map(e=>e.colId)}function $C(e,t){if(!mu(e))return!1;let n=t.find(t=>t.colId===e);return!n||n.hidden?!1:ZC(t)>1}function ew(e,t,n,r={}){let i=r.warn??(e=>console.warn(e));return!n&&!$C(t,e.getColumns())?(i(XC),!1):e.setColumnsHidden([t],!n)}function tw(e){let t=QC(e.getColumns());return t.length!==0&&e.setColumnsHidden(t,!1)}var nw=[`data-col-id`],rw={class:`mg-column-settings__row-main`},iw=[`draggable`,`aria-disabled`,`title`],aw=[`title`],ow={key:1,class:`mg-column-settings__row-actions`},sw=[`aria-label`,`title`],cw=[`aria-expanded`,`aria-label`],lw=[`aria-label`],uw=[`aria-checked`,`aria-label`,`title`,`onClick`],dw=[`title`],fw=[`checked`,`aria-label`],pw=zC((0,t.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:Sa},filterSetDateLayoutMode:{default:Ca}},emits:[`dragstart`,`dragend`,`change`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.ref)(!1),o=[null,`left`,`right`];function s(){!r.gridApi||!r.row.sortable||(KC(r.gridApi,r.row.colId,r.row.sortDirection),i(`change`))}function c(e){!r.gridApi||r.row.fixed===e||qC(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(!ew(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(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([(0,t.unref)(du),{[(0,t.unref)(fu)]: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,t.createElementVNode)(`div`,rw,[e.showDragHandle?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:0,class:(0,t.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,iw)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`span`,{class:`mg-column-settings__row-label`,title:e.row.label},(0,t.toDisplayString)(e.row.label),9,aw),e.gridApi?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,ow,[e.showSort&&e.row.sortable?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:0,type:`button`,class:(0,t.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,t.unref)(JC)(e.row.sortDirection)}`,title:(0,t.unref)(JC)(e.row.sortDirection),onClick:s},(0,t.toDisplayString)(e.row.sortDirection===`asc`?`↑`:e.row.sortDirection===`desc`?`↓`:`↕`),11,sw)):(0,t.createCommentVNode)(``,!0),e.showFilter&&e.row.filterable?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:1,type:`button`,class:(0,t.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,t.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,t.createElementVNode)(`path`,{d:`M3 6h18`}),(0,t.createElementVNode)(`path`,{d:`M7 12h10`}),(0,t.createElementVNode)(`path`,{d:`M10 18h4`})],-1)]],10,cw)):(0,t.createCommentVNode)(``,!0),e.showPin?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:2,class:`mg-column-settings__pin-group`,role:`radiogroup`,"aria-label":`${e.row.label} 固定列`},[((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(o,n=>(0,t.createElementVNode)(`button`,{key:n??`none`,type:`button`,class:(0,t.normalizeClass)([`mg-column-settings__pin-button`,{"mg-column-settings__pin-button--active":e.row.fixed===n}]),role:`radio`,"aria-checked":e.row.fixed===n,"aria-label":(0,t.unref)(YC)(n),title:(0,t.unref)(YC)(n),onClick:e=>c(n)},(0,t.toDisplayString)(n===`left`?`左`:n===`right`?`右`:`中`),11,uw)),64))],8,lw)):(0,t.createCommentVNode)(``,!0),e.showVisibility?((0,t.openBlock)(),(0,t.createElementBlock)(`label`,{key:3,class:`mg-column-settings__visibility`,title:e.row.hidden?`显示列`:`隐藏列`},[(0,t.createElementVNode)(`input`,{type:`checkbox`,class:`mg-column-settings__visibility-input`,checked:!e.row.hidden,"aria-label":`${e.row.label} 显示列`,onChange:u},null,40,fw),r[2]||=(0,t.createElementVNode)(`span`,{class:`mg-column-settings__visibility-label`,"aria-hidden":`true`},`显示`,-1)],8,dw)):(0,t.createCommentVNode)(``,!0)])):(0,t.createCommentVNode)(``,!0)]),a.value&&e.gridApi&&e.row.filterable?((0,t.openBlock)(),(0,t.createBlock)(HC,{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,t.createCommentVNode)(``,!0)],10,nw))}}),[[`__scopeId`,`data-v-d7915c64`]]);function mw(e,t){return mu(e.colId)&&!e.hidden&&hu(e.fixed)===t}function hw(e,t){return e.filter(e=>mw(e,t))}function gw(e,t,n,r){let i=hw(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(mw(n,t)){let e=s[l];if(!e)return null;c.push(e),l+=1;continue}c.push(n.colId)}return c}function _w(e){let t=gw(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=Br(e.columns),a=e.columns;return!Yr({columns:a,colId:e.colId,toGlobalIndex:r,fixedGroups:i,allowCrossLaneColumnMove:!1})||!Zr({columns:a,colId:e.colId,toGlobalIndex:r,fixedGroups:i,allowCrossLaneColumnMove:!1})?null:r}function vw(e,t,n,r){let i=_w({columns:e.getColumns(),lane:t,colId:n,toDisplayIndex:r});return i!=null&&(e.moveColumn(n,i),!0)}var yw=[`aria-label`],bw={class:`mg-column-settings__rows`},xw=[`onDragover`,`onDrop`],Sw=zC((0,t.defineComponent)({__name:`ColumnSettingsList`,props:{lane:{},rows:{},gridApi:{},showFilter:{type:Boolean},showVisibility:{type:Boolean}},emits:[`reorder`,`change`],setup(e,{emit:n}){let r={left:`固定左侧列`,center:`中间列`,right:`固定右侧列`},i=e,a=n,o=(0,t.ref)(null),s=(0,t.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}vw(i.gridApi,i.lane,n,e)&&(a(`reorder`),a(`change`)),d()}function d(){o.value=null,s.value=null}return(n,i)=>e.rows.length>0?((0,t.openBlock)(),(0,t.createElementBlock)(`section`,{key:0,class:(0,t.normalizeClass)([(0,t.unref)(lu),`mg-column-settings__group--${e.lane}`]),"aria-label":r[e.lane]},[(0,t.createElementVNode)(`div`,bw,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.rows,(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:n.colId,class:`mg-column-settings__row-host`,onDragover:e=>l(r,e),onDrop:e=>u(r,e)},[(0,t.createVNode)(pw,{row:n,"grid-api":e.gridApi,draggable:n.movable,"drag-over":s.value===r&&o.value!==n.colId,dragging:o.value===n.colId,"show-filter":e.showFilter,"show-visibility":e.showVisibility,onDragstart:e=>c(n.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,xw))),128))])],10,yw)):(0,t.createCommentVNode)(``,!0)}}),[[`__scopeId`,`data-v-69b1c1f5`]]),Cw={class:`mg-column-settings__groups`},ww={class:`mg-column-settings__visible-lanes`},Tw={class:`mg-column-settings__hidden-divider`},Ew={class:`mg-column-settings__hidden-divider-center`},Dw=[`aria-expanded`],Ow={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`},kw={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`},Aw={class:`mg-column-settings__hidden-rows`},jw={class:`mg-column-settings__rows`},Mw=zC((0,t.defineComponent)({__name:`ColumnSettingsGroupedLists`,props:{grouped:{},gridApi:{},showFilter:{type:Boolean},showVisibility:{type:Boolean,default:!0}},emits:[`reorder`,`change`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.ref)(!0);function o(){tw(r.gridApi)&&i(`change`)}return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Cw,[(0,t.createElementVNode)(`div`,ww,[(0,t.createVNode)(Sw,{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,t.createVNode)(Sw,{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,t.createVNode)(Sw,{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,t.openBlock)(),(0,t.createElementBlock)(`section`,{key:0,class:(0,t.normalizeClass)((0,t.unref)(pu))},[(0,t.createElementVNode)(`div`,Tw,[r[10]||=(0,t.createElementVNode)(`span`,{class:`mg-column-settings__hidden-divider-line`,"aria-hidden":`true`},null,-1),(0,t.createElementVNode)(`div`,Ew,[(0,t.createElementVNode)(`button`,{type:`button`,class:`mg-column-settings__hidden-toggle`,"aria-expanded":a.value,onClick:r[6]||=e=>a.value=!a.value},[(0,t.createTextVNode)(` 隐藏 (`+(0,t.toDisplayString)(e.grouped.hidden.length)+`) `,1),a.value?((0,t.openBlock)(),(0,t.createElementBlock)(`svg`,Ow,[...r[8]||=[(0,t.createStaticVNode)(`<path d="m3 8 4-4 4 4" data-v-62756c32></path><path d="M7 4v16" data-v-62756c32></path><path d="M11 12h10" data-v-62756c32></path><path d="M11 16h7" data-v-62756c32></path><path d="M11 20h4" data-v-62756c32></path>`,5)]])):((0,t.openBlock)(),(0,t.createElementBlock)(`svg`,kw,[...r[9]||=[(0,t.createStaticVNode)(`<path d="m3 16 4 4 4-4" data-v-62756c32></path><path d="M7 20V4" data-v-62756c32></path><path d="M11 4h10" data-v-62756c32></path><path d="M11 8h7" data-v-62756c32></path><path d="M11 12h4" data-v-62756c32></path>`,5)]]))],8,Dw),(0,t.createElementVNode)(`button`,{type:`button`,class:`mg-column-settings__hidden-show-all`,onClick:o},` 显示全部 `)]),r[11]||=(0,t.createElementVNode)(`span`,{class:`mg-column-settings__hidden-divider-line`,"aria-hidden":`true`},null,-1)]),(0,t.withDirectives)((0,t.createElementVNode)(`div`,Aw,[(0,t.createElementVNode)(`h4`,{class:(0,t.normalizeClass)([(0,t.unref)(uu),`mg-column-settings__sr-only`])},` 已隐藏列 `,2),(0,t.createElementVNode)(`div`,jw,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.grouped.hidden,n=>((0,t.openBlock)(),(0,t.createBlock)(pw,{key:n.colId,row:n,"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),[[t.vShow,a.value]])],2)):(0,t.createCommentVNode)(``,!0)]))}}),[[`__scopeId`,`data-v-62756c32`]]);function Nw(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 Pw(e){return e.map(Nw)}function Fw(e,t={}){return vu({columns:Pw(e.getColumns()),sortModel:e.getSortModel(),filterModel:e.getFilterModel(),isColumnFilterActive:t=>e.isColumnFilterActive(t),includeHidden:t.includeHidden})}function Iw(e,t={}){let n=Fw(e,t);return{rows:n,grouped:yu(n),canClearAllFilters:e.isAnyFilterActive()}}var Lw=[`sortChanged`,`filterChanged`,`columnMoved`,`columnPinned`,`columnHiddenChanged`];function Rw(e,t){let n=Lw.map(n=>e.on(n,t));return()=>{for(let e of n)e()}}var zw={class:`mg-column-settings__header-leading`},Bw=zC((0,t.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:n}){let r=e,i=n,a=(0,t.shallowRef)(Iw(r.gridApi)),o=null;function s(){a.value=Iw(r.gridApi)}function c(){l(),s(),o=Rw(r.gridApi,s)}function l(){o?.(),o=null}(0,t.watch)(()=>r.open,e=>{if(e){c();return}l()},{immediate:!0}),(0,t.watch)(()=>r.gridApi,()=>{r.open&&s()}),(0,t.onBeforeUnmount)(()=>{l()});function u(){s()}return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)((0,t.unref)(Xl)),role:`document`,"aria-label":`列设置`},[(0,t.createElementVNode)(`header`,{class:(0,t.normalizeClass)((0,t.unref)(Zl))},[(0,t.createElementVNode)(`div`,zw,[r[1]||=(0,t.createStaticVNode)(`<div class="mg-column-settings__title-group" data-v-d618f6f4><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" data-v-d618f6f4><path d="M10 8h4" data-v-d618f6f4></path><path d="M12 21v-9" data-v-d618f6f4></path><path d="M12 8V3" data-v-d618f6f4></path><path d="M17 16h4" data-v-d618f6f4></path><path d="M19 12V3" data-v-d618f6f4></path><path d="M19 21v-5" data-v-d618f6f4></path><path d="M3 14h4" data-v-d618f6f4></path><path d="M5 10V3" data-v-d618f6f4></path><path d="M5 21v-7" data-v-d618f6f4></path></svg><h3 class="mg-column-settings__title" data-v-d618f6f4>列设置</h3></div>`,1),(0,t.createVNode)(BC,{"grid-api":e.gridApi,"can-clear-all-filters":a.value.canClearAllFilters,onChange:u},null,8,[`grid-api`,`can-clear-all-filters`])]),(0,t.createElementVNode)(`button`,{type:`button`,class:`mg-column-settings__close`,"aria-label":`关闭列设置`,onClick:r[0]||=e=>i(`close`)},` × `)],2),(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)((0,t.unref)(Ql))},[(0,t.createVNode)(Mw,{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))}}),[[`__scopeId`,`data-v-d618f6f4`]]);function Vw(e){e.getSortModel().length!==0&&e.setSortModel([])}function Hw(e){e.clearAllFilters()}function Uw(e){e.resetColumnWidths()}function Ww(e){let t=e.getColumns(),n=tS(t);nS(t.map(e=>e.colId),n)||e.resetColumnOrder()}function Gw(e){for(let t of e.getColumns())!mu(t.colId)||t.fixed===null||e.setColumnFixed(t.colId,null)}function Kw(e,t){switch(t){case`sort`:Vw(e);break;case`filter`:Hw(e);break;case`width`:Uw(e);break;case`order`:Ww(e);break;case`pin`:Gw(e);break;case`all`:Vw(e),Hw(e),Uw(e),Ww(e),Gw(e)}}var qw=8,Jw=4,Yw=320,Xw=400,Zw=168;function Qw(e,t,n){let r=Math.min(Xw,Math.max(Yw,t)),i=e.right-r,a=e.bottom+Jw;return a+n>window.innerHeight-qw&&(a=e.top-n-Jw),i=Math.max(qw,Math.min(i,window.innerWidth-r-qw)),a=Math.max(qw,Math.min(a,window.innerHeight-n-qw)),{left:i,top:a}}function $w(e,t,n){let r=Math.max(Zw,t),i=e.left,a=e.bottom+Jw;return a+n>window.innerHeight-qw&&(a=e.top-n-Jw),i=Math.max(qw,Math.min(i,window.innerWidth-r-qw)),a=Math.max(qw,Math.min(a,window.innerHeight-n-qw)),{left:i,top:a}}var eT=[`disabled`,`aria-expanded`,`aria-label`,`title`],tT=(0,t.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:n}){let r=e,i=n,a=(0,t.useSlots)(),o=(0,t.ref)(null),s=(0,t.ref)(null),c=(0,t.ref)(null),l=(0,t.ref)(!1),u=(0,t.ref)(r.open??r.defaultOpen??!1),d=(0,t.ref)(0),p=!1;function m(){let e=r.portalEl;return e instanceof HTMLElement&&e.isConnected?e:`body`}let h=(0,t.computed)(()=>m()),g=(0,t.computed)(()=>{let e=a.menu;return e?e().some(e=>e.type!==t.Comment):!1}),_=(0,t.computed)(()=>l.value||u.value),v=(0,t.computed)(()=>r.size?f(r.size):void 0);(0,t.watch)(()=>r.open,e=>{e!==void 0&&(u.value=e,e&&(l.value=!1))});function y(e){if(r.disabled&&e)return;let t=u.value;u.value=e,i(`update:open`,e),e?(l.value=!1,i(`open`),p=!0,queueMicrotask(()=>{p=!1})):t&&i(`close`)}function b(e){r.disabled&&e||(l.value=e,e&&(p=!0,queueMicrotask(()=>{p=!1})))}function ee(){if(!r.disabled){if(u.value){y(!1);return}b(!l.value)}}function x(){y(!0)}function S(e){Kw(r.gridApi,e),w()}function C(){u.value&&y(!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,$w)}function O(){E(c.value,Qw)}function k(){l.value&&D(),u.value&&O()}(0,t.watch)(l,async e=>{e&&(await(0,t.nextTick)(),D())}),(0,t.watch)(u,async e=>{e&&(await(0,t.nextTick)(),O())}),(0,t.watch)(()=>[r.portalEl,r.size],()=>{T(),d.value+=1});function A(e){if(e.key===`Escape`){if(u.value){e.preventDefault(),e.stopPropagation(),C();return}l.value&&(e.preventDefault(),e.stopPropagation(),w())}}function j(e){if(!l.value&&!u.value||p||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,t.onMounted)(()=>{document.addEventListener(`keydown`,A,!0),document.addEventListener(`pointerdown`,j,!0),window.addEventListener(`resize`,k),window.addEventListener(`scroll`,k,!0)}),(0,t.onBeforeUnmount)(()=>{document.removeEventListener(`keydown`,A,!0),document.removeEventListener(`pointerdown`,j,!0),window.removeEventListener(`resize`,k),window.removeEventListener(`scroll`,k,!0)}),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)((0,t.unref)($l)),style:(0,t.normalizeStyle)(v.value)},[(0,t.createElementVNode)(`button`,{ref_key:`triggerRef`,ref:o,type:`button`,class:`mg-column-settings-button__trigger`,disabled:e.disabled,"aria-haspopup":`menu`,"aria-expanded":_.value,"aria-label":e.label??`表格设置`,title:e.label??`表格设置`,onClick:ee},[...r[0]||=[(0,t.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,t.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,t.createElementVNode)(`circle`,{cx:`12`,cy:`12`,r:`3`})],-1)]],8,eT),((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{key:d.value,to:h.value},[l.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:(0,t.normalizeClass)((0,t.unref)(eu))},[(0,t.createElementVNode)(`div`,{ref_key:`menuRef`,ref:s,class:(0,t.normalizeClass)((0,t.unref)(tu))},[(0,t.createVNode)(IC,{"show-divider":g.value,onColumnSettings:x,onCustomAction:w,onReset:S},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`menu`)]),_:3},8,[`show-divider`])],2)],2)):(0,t.createCommentVNode)(``,!0),u.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:1,class:(0,t.normalizeClass)((0,t.unref)(eu))},[(0,t.createElementVNode)(`div`,{ref_key:`panelRef`,ref:c,class:(0,t.normalizeClass)((0,t.unref)(tu)),role:`dialog`,"aria-modal":`false`,"aria-label":`列设置面板`},[(0,t.createVNode)(Bw,{"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,t.createCommentVNode)(``,!0)],8,[`to`]))],6))}}),nT={input:{deferEnterCommit:!1,commitOnChange:!1},overlay:{deferEnterCommit:!0,commitOnChange:!0}};function rT(e,n){let r=nT[n.strategy??`input`],i=n.formatValue??(e=>String(e??``)),a=n.commitOnChange??r.commitOnChange;(0,t.onMounted)(()=>{e.setGetValue?.(()=>i(n.getValue())),e.setKeyboardPolicy?.({deferEnterCommit:r.deferEnterCommit}),e.autoFocus!==!1&&n.onStart?.()});function o(){e.stopEditing(!0)}function s(){e.stopEditing(!1)}function c(){a&&o()}function l(e){if(e instanceof KeyboardEvent){if(e.key===`Enter`){r.deferEnterCommit&&(0,t.nextTick)(o);return}e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),s())}}return{onKeydown:l,onChange:c,commit:o,cancel:s}}exports.BUILTIN_CELL_EDITOR_NAMES=E,exports.COLUMN_DRAG_THRESHOLD_PX=li,exports.ColumnSettingsButton=tT,exports.ColumnSettingsMenuIcon=kC,exports.ColumnSettingsMenuItem=MC,exports.ColumnSettingsPanel=Bw,exports.DEFAULT_CELL_EDITOR_MODE=Ea,exports.DEFAULT_INDEX_COLUMN_START=Pe,exports.DEFAULT_SELECTION_SELECT_ALL_LABEL=Ue,exports.DEFAULT_STATUS_BAR_RANGE_AGGREGATION_PRECISION=JS,exports.INDEX_COLUMN_ID=Me,exports.INDEX_COLUMN_MIN_WIDTH=Ne,exports.INLINE_CHECKBOX_CLASS=O,exports.MagicGrid=EC,exports.RowMutationPersistError=pl,exports.SELECTION_COLUMN_DEFAULT_WIDTH=He,exports.SELECTION_COLUMN_ID=Be,exports.SELECTION_COLUMN_MIN_WIDTH=Ve,exports.SORT_AFTER_MOVE_GUARD_MS=ui,exports.VueCellEditorHost=dC,exports.checkboxCellEditor=ne,exports.coerceCheckboxEditorValue=A,exports.createSlotCellEditor=pC,exports.createVueCellEditor=fC,exports.evaluateGridAcceptance=IS,exports.formatCheckboxEditorRawValue=j,exports.getCellEditor=oe,exports.getGridAcceptanceThresholds=FS,exports.getGridSetDataLimit=PS,exports.getRegisteredCellEditorNames=ce,exports.hasCellEditor=se,exports.isBuiltInCellEditor=D,exports.isInlineEditorColumn=ka,exports.isSyntheticRow=Sr,exports.numberCellEditor=te,exports.readCheckboxControlValue=M,exports.registerCellEditor=ie,exports.registerEditorSurfaceSelectors=ee,exports.resetEditorSurfaceSelectors=x,exports.resolveCellEditorMode=Da,exports.resolveColumnCellEditorMode=Oa,exports.textCellEditor=N,exports.toBusinessRowId=Cr,exports.toBusinessRowIdFromInternal=Tr,exports.toBusinessRowIdsFromInternal=Er,exports.toggleHeaderSort=Ey,exports.unregisterCellEditor=ae,exports.useCellEditor=rT;
9
9
  //# sourceMappingURL=index.cjs.js.map