@agile-team/mach-table 0.29.1 → 0.29.2

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 CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";var Ht=Object.defineProperty;var mn=Object.getOwnPropertyDescriptor;var gn=Object.getOwnPropertyNames;var yn=Object.prototype.hasOwnProperty;var vn=(n,e)=>{for(var t in e)Ht(n,t,{get:e[t],enumerable:!0})},wn=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of gn(e))!yn.call(n,o)&&o!==t&&Ht(n,o,{get:()=>e[o],enumerable:!(r=mn(e,o))||r.enumerable});return n};var bn=n=>wn(Ht({},"__esModule",{value:!0}),n);var $s={};vn($s,{BUILTIN_AGG_FUNCS:()=>$t,DEFAULT_LOCALE:()=>D,EVENT_TYPES:()=>q,LOCALE_EN:()=>to,actionsColumn:()=>Qo,advancedFilterCondition:()=>xr,advancedFilterGroup:()=>Mr,applyGridViewState:()=>Rr,buildColDefsFromSchema:()=>Uo,captureGridViewState:()=>Tr,clearGridState:()=>Ao,createActionButtonsRenderer:()=>he,createAggResolver:()=>Ge,createBusinessColumnTypes:()=>an,createCachedDictionary:()=>ln,createColumnHelper:()=>Zo,createDictionaryRenderer:()=>dn,createEnterprisePreset:()=>tn,createGrid:()=>Ko,createGridViewManager:()=>pn,createLocalGridStateStore:()=>lr,createLocalGridViewStore:()=>Sr,createMachTableCommands:()=>qo,createMachTablePreset:()=>Cr,createProgressBarRenderer:()=>pr,createRowActionsRenderer:()=>It,createStatusTagRenderer:()=>hr,defineColumns:()=>en,defineGridOptions:()=>on,defineMachTableConfig:()=>nn,defineMachTablePreset:()=>rn,describeFilter:()=>gt,downloadFile:()=>pt,dragColumn:()=>Xo,escapeHtml:()=>te,formatText:()=>H,formatTwo:()=>tt,getByPath:()=>$,indexColumn:()=>Yo,isColDefGroup:()=>se,isSafePath:()=>oe,linkRenderer:()=>fr,loadGridState:()=>xt,matchLocaleKey:()=>et,normalizeAdvancedFilterModel:()=>V,normalizeColumnFilter:()=>xe,normalizeFilterModel:()=>ne,normalizeGridState:()=>z,normalizeGridViewState:()=>Ot,normalizeSavedGridView:()=>pe,parseCsv:()=>We,parseDelimited:()=>_e,parseTsv:()=>ze,resolveGridFeatures:()=>Pt,resolveSaveConflict:()=>ho,resolveTagVariant:()=>ur,rowActionsColumn:()=>Jo,sanitizeFormulaCell:()=>ge,saveGridState:()=>Et,selectionColumn:()=>jo,setByPath:()=>J,toTsv:()=>le,validateGridOptions:()=>Lt,version:()=>Ks});module.exports=bn($s);var De="0.29.1";var Ee=class{constructor(e){this.onListenerError=e;this.listeners=new Map}on(e,t){let r=this.listeners.get(e);return r||(r=new Set,this.listeners.set(e,r)),r.add(t),()=>{r.delete(t)}}once(e,t){let r=this.on(e,o=>{r(),t(o)});return r}off(e,t){let r=this.listeners.get(e);r&&(r.delete(t),r.size===0&&this.listeners.delete(e))}emit(e,t){let r=this.listeners.get(e);if(r)for(let o of[...r])try{o(t)}catch(i){console.error(`[mach-table] error in "${e}" listener`,i),this.onListenerError?.(i,e)}}clear(){this.listeners.clear()}};var Tn=new Set(["__proto__","prototype","constructor"]);function oe(n){return typeof n!="string"||n.length===0?!1:n.split(".").every(t=>t.length>0&&!Tn.has(t))}function $(n,e){if(n==null||!oe(e))return;if(e.indexOf(".")<0)return n[e];let r=n,o=0;for(;o<e.length;){if(r==null)return;let i=e.indexOf(".",o);if(i<0){r=r[e.slice(o)];break}r=r[e.slice(o,i)],o=i+1}return r}function J(n,e,t){if(n==null||!oe(e))return!1;let r=e.split("."),o=n;for(let i=0;i<r.length-1;i++){if(typeof o!="object"&&typeof o!="function"||o===null)return!1;o[r[i]]==null&&(o[r[i]]={}),o=o[r[i]]}return typeof o!="object"&&typeof o!="function"||o===null?!1:(o[r[r.length-1]]=t,!0)}var Rn=new Set(["contains","notContains","equals","notEquals","startsWith","endsWith","blank","notBlank"]),Sn=new Set(["equals","notEquals","lessThan","lessThanOrEqual","greaterThan","greaterThanOrEqual","inRange","blank","notBlank"]),Dn=new Set(["equals","notEquals","lessThan","greaterThan","inRange","blank","notBlank"]);function En(n){return n==null||typeof n=="string"||typeof n=="number"&&Number.isFinite(n)}function xn(n){return n==="text"?Rn:n==="number"?Sn:Dn}function Mn(n,e,t){if(n==null||typeof n!="object")return null;let r=n;return typeof r.match!="string"||!t.has(r.match)?null:{match:r.match,...kn(r,e)}}function kn(n,e){let t=e==="number"?Dr(n.value):typeof n.value=="string"?n.value:void 0,r=e==="number"?Dr(n.value2):typeof n.value2=="string"?n.value2:void 0;return{...t!==void 0?{value:t}:{},...r!==void 0?{value2:r}:{}}}function Dr(n){return typeof n=="number"&&Number.isFinite(n)?n:void 0}function In(n,e){let t=[],r=xn(e);for(let o of n.slice(0,20)){let i=Mn(o,e,r);i&&t.push(i)}return t}function xe(n){if(n==null||typeof n!="object")return null;let e=n;return e.type==="set"?Array.isArray(e.values)?{type:"set",values:e.values.filter(En).slice(0,2e3)}:null:e.type!=="text"&&e.type!=="number"&&e.type!=="date"||!Array.isArray(e.conditions)?null:{type:e.type,...e.operator==="or"||e.operator==="and"?{operator:e.operator}:{},conditions:In(e.conditions,e.type)}}function Ln(n,e){if(typeof n.colId!="string"||!n.colId.trim())return null;let t=n.colId.trim();if(e.validColumnIds?.has(t)===!1)return null;let r=xe(n.filter);return r?{kind:"condition",colId:t,filter:r}:null}function An(n,e,t){if(!Array.isArray(n.children))return null;let r=[];for(let o of n.children){let i=Er(o,e+1,t);i&&r.push(i)}return r.length===0?null:{kind:"group",operator:n.operator==="or"?"or":"and",children:r,...n.not===!0?{not:!0}:{}}}function Pn(n,e,t){return e<=16&&t.nodes<512&&n!=null&&typeof n=="object"}function Er(n,e,t){if(!Pn(n,e,t)||t.ancestors.has(n))return null;t.ancestors.add(n),t.nodes++;let r=n,o=r.kind==="condition"?Ln(r,t):r.kind==="group"?An(r,e,t):null;return t.ancestors.delete(n),o}function V(n,e){if(n==null||typeof n!="object")return null;let t=n;if(t.version!==1||t.root==null)return null;let r=Er(t.root,0,{ancestors:new WeakSet,nodes:0,validColumnIds:e});return r?{version:1,root:r}:null}function xr(n,e){return{kind:"condition",colId:n,filter:e}}function ne(n,e){if(n==null||typeof n!="object"||Array.isArray(n))return{};let t={};for(let[r,o]of Object.entries(n).slice(0,2e3)){let i=r.trim();if(!i||e?.has(i)===!1)continue;let s=xe(o);s&&(t[i]=s)}return t}function Mr(n,e,t={}){return{kind:"group",operator:n,children:e,...t.not?{not:!0}:{}}}var Bt={align:"center",sortable:!0,resizable:!0,movable:!0,filter:!1,minWidth:80},fe={compact:{rowHeight:30,headerHeight:34,fontSize:12,cellPadding:6},normal:{rowHeight:36,headerHeight:40,fontSize:13,cellPadding:9},large:{rowHeight:44,headerHeight:48,fontSize:14,cellPadding:12}};function S(n,e,t,r=!1){return typeof n!="number"||!Number.isFinite(n)||n<t?e:r?Math.floor(n):n}function Gn(n){return n&&Object.prototype.hasOwnProperty.call(fe,n)?n:"normal"}function Fn(n){return n.theme==="light"||n.theme==="dark"||n.theme==="auto"?n.theme:"light"}function Nn(n,e){let t=typeof n.pagination=="object"&&Array.isArray(n.pagination.pageSizeOptions)?n.pagination.pageSizeOptions:void 0,r=t?[...new Set(t.map(o=>S(o,0,1,!0)).filter(Boolean))]:[10,20,50,100];return r.includes(e)||r.push(e),r.sort((o,i)=>o-i)}function Vt(n,e){let t=typeof n=="function"?n(e):$(e,n);return t==null?"":String(t)}function On(n){let e=n.rowKey,t=e?({data:r})=>Vt(e,r):void 0;return{...t?{resolveRowId:t}:{},...e?{rowKey:e}:{}}}function Hn(n,e){let t=fe[e];return{columnDefs:Array.isArray(n.columnDefs)?n.columnDefs:[],rowData:Array.isArray(n.rowData)?n.rowData:[],defaultColDef:{...Bt,...n.defaultColDef??{}},columnTypes:n.columnTypes??{},...On(n),rowHeight:S(n.rowHeight,t.rowHeight,1),headerHeight:S(n.headerHeight,t.headerHeight,1),rowBuffer:S(n.rowBuffer,8,0,!0),columnLayout:n.columnLayout==="fit"?"fit":"normal",enableColumnResize:n.enableColumnResize===!0,domLayout:n.domLayout==="autoHeight"?"autoHeight":"normal",rowSelection:n.rowSelection==="single"||n.rowSelection==="multiple"?n.rowSelection:"none",multiSort:n.multiSort??!0,size:e,pinnedTopRowData:Array.isArray(n.pinnedTopRowData)?n.pinnedTopRowData:[],pinnedBottomRowData:Array.isArray(n.pinnedBottomRowData)?n.pinnedBottomRowData:[]}}function Bn(n){return{stripedRows:n.stripedRows??!1,showCellBorders:n.showCellBorders??!1,theme:Fn(n),quickFilterText:n.quickFilterText??null,suppressCellFocus:n.suppressCellFocus??!1,suppressRowHoverHighlight:n.suppressRowHoverHighlight??!1,suppressNoRowsOverlay:n.suppressNoRowsOverlay??!1,suppressHeaderFocus:n.suppressHeaderFocus??!1,loading:n.loading??!1,error:n.error??null,className:n.className??""}}function Vn(n){return{editType:n.editType==="fullRow"?"fullRow":"cell",editableIndicator:n.editableIndicator==="always"||n.editableIndicator==="none"?n.editableIndicator:"hover",singleClickEdit:n.singleClickEdit??!1,manualSorting:n.manualSorting??!1,manualFiltering:n.manualFiltering??!1,showSummary:n.showSummary??!1,indexOffset:n.indexOffset??0,applyRowDrag:n.applyRowDrag??!0,undoStackSize:S(n.undoStackSize,100,0,!0),asyncTransactionWaitMillis:S(n.asyncTransactionWaitMillis,16,0,!0)}}function zn(n){return{masterDetail:n.masterDetail??!1,detailRowHeight:S(n.detailRowHeight,240,1),detailToggleColumn:n.detailToggleColumn??!0,treeData:n.treeData??!1,childrenKey:n.childrenKey??"children",autoCheckedChildren:n.autoCheckedChildren??!0,defaultExpandAll:n.defaultExpandAll??!1}}function Wn(n){let e=typeof n.pagination=="object"?n.pagination:void 0,t=S(e?.pageSize,20,1,!0);return{paginationEnabled:n.pagination!==!1&&n.datasource==null,paginationMode:e?.mode==="server"?"server":"client",paginationPage:S(e?.page,1,1,!0),paginationTotal:S(e?.total,0,0,!0),paginationPageSize:t,paginationPageSizeOptions:Nn(n,t),paginationShowTotal:e?e.showTotal!==!1:!0,paginationShowSizeSelector:e?e.showPageSizeSelector!==!1:!0}}function _n(n){return{watermarkEnabled:n.watermark!=null&&n.watermark!==!1,watermarkConfig:n.watermark==null||n.watermark===!1?null:n.watermark===!0?{text:"MachTable"}:n.watermark}}function Kn(n){return{columnMenu:n.columnMenu??!1,advancedFilterModel:V(n.advancedFilterModel),...$n(n),locale:n.locale??{},suppressWarnings:n.suppressWarnings??!1,enableRangeSelection:n.enableRangeSelection??!1,suppressClipboard:n.suppressClipboard??!1,contextMenu:n.contextMenu??!1,tooltipShowDelay:S(n.tooltipShowDelay,600,0),flashCells:n.flashCells??!0,fillHandle:n.fillHandle??!0,statusBarEnabled:n.statusBar===!0||typeof n.statusBar=="object"&&n.statusBar!=null,statusBarPanels:typeof n.statusBar=="object"&&n.statusBar?.panels?n.statusBar.panels:["rowCount","selectedRowCount","rangeAggregate"]}}function $n(n){let e=n.persistence;return!e||typeof e.key!="string"||!e.key.trim()?{persistence:null}:{persistence:{key:e.key.trim(),debounceMs:S(e.debounceMs,160,0,!0),...e.sections?{sections:[...new Set(e.sections)]}:{},...e.store?{store:e.store}:{}}}}function Un(n){return{datasourceMode:n.datasourceMode==="block"?"block":"sequential",blockSize:S(n.blockSize,100,1,!0),infiniteBufferRows:S(n.infiniteBufferRows,40,0,!0),maxBlocksInCache:S(n.maxBlocksInCache,12,1,!0),datasourceMaxConcurrentRequests:S(n.datasourceMaxConcurrentRequests,4,1,!0),blockPrefetch:S(n.blockPrefetch,1,0,!0),datasourceRowCount:n.datasourceRowCount==null?null:S(n.datasourceRowCount,0,0,!0),dataProcessorMinRows:S(n.dataProcessorMinRows,5e3,1,!0),datasourceRetryCount:S(n.datasourceRetryCount,2,0,!0),datasourceRetryDelay:S(n.datasourceRetryDelay,300,0,!0),datasourceRetryJitter:Math.min(1,S(n.datasourceRetryJitter,.15,0))}}function qn(n){return{ariaLabel:n.ariaLabel??"MachTable data grid",ariaLabelledBy:n.ariaLabelledBy??"",ariaDescribedBy:n.ariaDescribedBy??"",overlayNoRowsTemplate:n.overlayNoRowsTemplate??"",overlayLoadingTemplate:n.overlayLoadingTemplate??"",overlayErrorTemplate:n.overlayErrorTemplate??"",allowUnsafeOverlayHtml:n.allowUnsafeOverlayHtml??!1}}var jn=["detailRowRenderer","isRowExpandable","aggFuncs","components","actionPolicy","summaryMethod","datasource","getRowHeight","tooltipComponent","getContextMenuItems","initialState","rowEditValidator","isTreeRowExpandable","loadTreeChildren","dataProcessor"];function Yn(n,e){for(let t of jn)n[t]&&Object.assign(e,{[t]:n[t]})}function Xn(n,e){for(let t of Object.keys(n))t.startsWith("on")&&typeof n[t]=="function"&&Object.assign(e,{[t]:n[t]})}function kr(n){let e=Gn(n.size),t={...Hn(n,e),...Bn(n),...Vn(n),...zn(n),...Wn(n),..._n(n),...Kn(n),...Un(n),...qn(n),features:Array.isArray(n.features)?n.features:[]};return Yn(n,t),Xn(n,t),t}function Ir(n){return Array.isArray(n)?n.filter(e=>typeof e=="string"&&e.length>0):typeof n=="string"&&n.length>0?[n]:[]}function ie(n,e){return Ir(n.type).includes(e)}function Lr(n,e,t={}){let r={};for(let o of Ir(n.type)){let i=t[o];i&&Object.assign(r,i)}return{...e,...r,...n}}var _=class{constructor(e,t){this.manualWidth=null;this.flex=null;this.currentWidth=0;this.parentGroup=null;this.level=0;this.isDetailToggle=!1;this.id=e,this.colDef=t,this.hide=t.hide??!1;let r=t.pinned;this.pinned=r===!0?"left":r===!1||r==null?null:r,this.resetWidth()}get sortable(){return this.colDef.sortable!==!1}get resizable(){return this.colDef.resizable!==!1}get movable(){return this.colDef.movable!==!1}get filterable(){return this.colDef.filter!=null&&this.colDef.filter!==!1}get filterType(){let e=this.colDef.filter;return e===!0?"text":e??"text"}get hasCheckbox(){return this.colDef.checkboxSelection===!0}resetWidth(){this.manualWidth=null,this.flex=typeof this.colDef.flex=="number"&&Number.isFinite(this.colDef.flex)&&this.colDef.flex>0?this.colDef.flex:null}};var Z=class n{constructor(e,t){this.parent=null;this.children=[];this.groupId=e,this.def=t}get headerName(){return this.def.headerName??this.def.groupId??""}getLeafColumns(e=[]){for(let t of this.children)t instanceof n?t.getLeafColumns(e):e.push(t);return e}};function se(n){return Array.isArray(n.children)}function Me(n,e){return typeof n=="number"&&Number.isFinite(n)&&n>0?n:e}function Ar(n){let e=Me(n.minWidth,80);return{min:e,max:Math.max(e,Me(n.maxWidth,Number.MAX_SAFE_INTEGER))}}function N(n,e){let{min:t,max:r}=Ar(e),o=Me(n,Me(e.width,150));return Math.max(t,Math.min(r,o))}function Pr(n,e){let t=n.map(s=>N(s.width??150,s)),r=[],o=0;n.forEach((s,a)=>{let l=s.flex??0;l>0&&(r.push(a),o+=l)});let i=0;for(let s of t)i+=s;if(o>0&&e>i){let s=e-i;for(let a=0;a<4&&s>.5&&r.length>0;a++){let l=[],d=0;for(let p of r){let m=n[p].flex??0;l.push(p),d+=m}let c=[];for(let p=0;p<l.length;p++){let m=l[p],y=n[m].flex??0,v=s*y/d,g=t[m];t[m]=N(g+v,n[m]),c.push(t[m]-g)}let u=0;for(let p of c)u+=p;s-=u;let h=l.filter((p,m)=>c[m]>.001);if(h.length===l.length)break;r.length=0;for(let p of h)r.push(p)}}return t}function Qn(n,e,t){let r=new Set(n.map((i,s)=>s)),o=t;for(let i=0;i<n.length+1&&r.size>0;i++){let s=0;for(let l of r)s+=Math.max(1,e[l]);if(s<=0)break;let a=!1;for(let l of[...r]){let d=o*(Math.max(1,e[l])/s),c=N(d,n[l]),{min:u,max:h}=Ar(n[l]);(d<u||d>h)&&(e[l]=c,o-=c,r.delete(l),a=!0)}if(!a){for(let l of r)e[l]=N(o*(Math.max(1,e[l])/s),n[l]);break}o=Math.max(0,o)}}function Jn(n,e,t){let r=t-e.reduce((o,i)=>o+i,0);if(!(Math.abs(r)<=.01))for(let o=e.length-1;o>=0;o--){let i=N(e[o]+r,n[o]);if(Math.abs(i-e[o])>.01){e[o]=i;return}}}function Gr(n,e){let t=n.map(r=>N(r.width??150,r));return!Number.isFinite(e)||e<=0||n.length===0||(Qn(n,t,e),Jn(n,t,e)),t}var zt="__rg_detail_toggle__";function ke(n){return typeof n=="number"&&Number.isFinite(n)&&n>0}var Ie=class{constructor(e){this.core=e;this.columns=[];this.rootChildren=[];this.left=[];this.center=[];this.right=[];this.sortModel=[];this.defs=[];this.headerDepth=1;this.flatIndexById=new Map;this.viewportWidth=0}setColumnDefs(e){this.defs=e?[...e]:[];let t=new Map(this.columns.map(s=>[s.id,s])),r=this.core.options.defaultColDef,o=new Set(this.core.options.masterDetail&&this.core.options.detailToggleColumn?[zt]:[]),i=(s,a,l)=>s.map((d,c)=>{if(se(d)){let g=d.groupId??d.headerName??`group_${c}_${l}`,b=new Z(g,d);return b.parent=a,b.children=i(d.children,b,l+1),b}let u=d,h=u.colId??u.field??`col_${c}`,p=h,m=2;for(;o.has(p);)p=`${h}_${m++}`;o.add(p);let y=new _(p,Lr(u,r,this.core.options.columnTypes));y.parentGroup=a,y.level=l;let v=t.get(p);return v&&(y.manualWidth=v.manualWidth,y.flex=v.flex,y.hide=v.hide,y.pinned=v.pinned),y});if(this.rootChildren=i(this.defs,null,0),this.core.options.masterDetail&&this.core.options.detailToggleColumn){let s=new _(zt,{colId:zt,headerName:"",width:38,pinned:"left",sortable:!1,resizable:!1,movable:!1,filter:!1});s.isDetailToggle=!0,this.rootChildren.unshift(s)}if(this.columns=this.collectLeaves(this.rootChildren),this.headerDepth=this.columns.reduce((s,a)=>Math.max(s,a.level+1),1),this.sortModel=this.sortModel.filter(s=>this.columns.some(a=>a.id===s.colId)),this.sortModel.length===0){let s=[];for(let a of this.columns)a.colDef.initialSort&&s.push({colId:a.id,direction:a.colDef.initialSort});this.sortModel=s}this.regroup()}collectLeaves(e,t=[]){for(let r of e)r instanceof Z?this.collectLeaves(r.children,t):t.push(r);return t}regroup(){let e=this.columns.filter(t=>!t.hide);this.left=e.filter(t=>t.pinned==="left"),this.right=e.filter(t=>t.pinned==="right"),this.center=e.filter(t=>t.pinned===null),this.flatIndexById.clear(),this.getOrderedVisible().forEach((t,r)=>this.flatIndexById.set(t.id,r))}getFlatIndex(e){return this.flatIndexById.get(e)??-1}getColumns(){return this.columns}getColumnDefs(){return this.defs}getRootChildren(){return this.rootChildren}getHeaderDepth(){return this.headerDepth}getColumn(e){return this.columns.find(t=>t.id===e)}getPaneColumns(e){return e==="left"?this.left:e==="right"?this.right:this.center}getOrderedVisible(){return[...this.left,...this.center,...this.right]}getRowGroupColumns(){return this.getOrderedVisible().filter(e=>e.colDef.rowGroup===!0)}getAggColumns(){return this.getOrderedVisible().filter(e=>e.colDef.aggFunc!=null&&e.colDef.rowGroup!==!0)}hasColSpan(){return this.center.some(e=>e.colDef.colSpan!=null)}getGroupLabelColumn(){let e=this.getOrderedVisible();return this.center.find(t=>!t.hasCheckbox&&!t.isDetailToggle)??e.find(t=>!t.hasCheckbox&&!t.isDetailToggle)??e[0]}paneOf(e){return e.pinned==="left"?"left":e.pinned==="right"?"right":"center"}computeLayout(e){this.viewportWidth=e;let t=0;for(let c of[...this.left,...this.right])c.currentWidth=N(c.manualWidth??c.colDef.width??150,this.widthInputOf(c)),t+=c.currentWidth;let r=Math.max(0,e-t),o=[],i=[];for(let c of this.center)(c.colDef.suppressSizeToFit||c.manualWidth!=null?i:o).push(c);let s=0;for(let c of i)c.currentWidth=N(c.manualWidth??c.colDef.width??150,this.widthInputOf(c)),s+=c.currentWidth;let a=o.map(c=>this.widthInputOf(c)),l=Math.max(0,r-s),d=this.core.options.columnLayout==="fit"?Gr(a,l):Pr(a,l);o.forEach((c,u)=>{c.currentWidth=d[u]})}widthInputOf(e){let t=e.colDef;return e.manualWidth!=null?{width:e.manualWidth,minWidth:t.minWidth,maxWidth:t.maxWidth}:{width:t.width,minWidth:t.minWidth,maxWidth:t.maxWidth,...e.flex!=null?{flex:e.flex}:{}}}setColumnWidth(e,t){return ke(t)?(e.manualWidth=N(t,this.widthInputOf(e)),e.flex=null,!0):!1}setColumnVisibility(e,t){let r=this.getColumn(e);!r||r.hide===!t||(r.hide=!t,this.regroup())}moveColumn(e,t){let r=this.getColumn(e);if(!r)return!1;let o=this.paneOf(r),i=u=>r.parentGroup?!0:this.paneOf(u)===o,s=r.parentGroup?r.parentGroup.children:this.rootChildren,a=s.filter(u=>u instanceof _&&!u.hide&&i(u)),l=a.indexOf(r);if(l<0)return!1;a.splice(l,1);let d=Math.max(0,Math.min(t,a.length));a.splice(d,0,r);let c=[];return s.forEach((u,h)=>{u instanceof _&&!u.hide&&i(u)&&c.push(h)}),c.length!==a.length?!1:(c.forEach((u,h)=>{s[u]=a[h]}),this.columns=this.collectLeaves(this.rootChildren),this.regroup(),!0)}setColumnPinned(e,t){let r=this.getColumn(e);!r||!r.movable||(r.pinned=t,this.regroup())}getColumnState(){return this.columns.map(e=>({colId:e.id,hide:e.hide,width:e.manualWidth??e.currentWidth,flex:e.flex,widthMode:e.manualWidth==null?"auto":"manual",pinned:e.pinned}))}applyColumnState(e){let t=new Map(e.map(r=>[r.colId,r]));for(let r of this.columns){let o=t.get(r.id);o&&this.applyColumnViewState(r,o)}this.applyStateOrder(e),this.regroup()}applyColumnViewState(e,t){typeof t.hide=="boolean"&&(e.hide=t.hide),t.widthMode==="auto"?(e.resetWidth(),ke(t.flex)&&(e.flex=t.flex)):ke(t.flex)?(e.flex=t.flex,e.manualWidth=null):ke(t.width)&&(e.manualWidth=N(t.width,this.widthInputOf(e)),e.flex=null),e.movable&&(t.pinned==="left"||t.pinned==="right"||t.pinned===null)&&(e.pinned=t.pinned)}applyStateOrder(e){let t=new Map;e.forEach((o,i)=>t.set(o.colId,i));let r=o=>o.pinned==="left"?"left":o.pinned==="right"?"right":"center";for(let o of["left","center","right"]){let i=this.rootChildren.filter(d=>d instanceof _&&!d.hide&&d.parentGroup===null&&r(d)===o);if(i.length<2)continue;let s=i.filter(d=>d.movable),a=s.slice().sort((d,c)=>(t.get(d.id)??Number.MAX_SAFE_INTEGER)-(t.get(c.id)??Number.MAX_SAFE_INTEGER));if(a.every((d,c)=>d===s[c]))continue;let l=[];this.rootChildren.forEach((d,c)=>{d instanceof _&&!d.hide&&d.parentGroup===null&&r(d)===o&&d.movable&&l.push(c)}),l.forEach((d,c)=>{this.rootChildren[d]=a[c]})}this.columns=this.collectLeaves(this.rootChildren)}resetColumnState(){for(let e of this.columns){e.resetWidth(),e.hide=e.colDef.hide??!1;let t=e.colDef.pinned;e.pinned=t===!0?"left":t===!1||t==null?null:t}this.regroup()}getSortModel(){return this.sortModel.map(e=>({...e}))}applySortModel(e){if(!e||e.length===0){this.sortModel=[];return}this.sortModel=e.filter(t=>this.columns.some(r=>r.id===t.colId)&&(t.direction==="asc"||t.direction==="desc")).map(t=>({colId:t.colId,direction:t.direction}))}cycleSort(e,t){let r=[...this.sortModel],o=r.findIndex(l=>l.colId===e.id),i=o>=0?r[o].direction:null,s=i===null?"asc":i==="asc"?"desc":null;t&&this.core.options.multiSort?s===null?o>=0&&r.splice(o,1):o>=0?r[o]={colId:e.id,direction:s}:r.push({colId:e.id,direction:s}):(r.length=0,s&&r.push({colId:e.id,direction:s})),this.sortModel=r}};function Nr(n){return n==null?"":String(n).toLowerCase()}function Zn(n,e,t){let r=Nr(n),o=e.map(i=>{let s=(i.value??"").toLowerCase();switch(i.match){case"contains":return r.includes(s);case"notContains":return!r.includes(s);case"equals":return r===s;case"notEquals":return r!==s;case"startsWith":return r.startsWith(s);case"endsWith":return r.endsWith(s);case"blank":return r==="";case"notBlank":return r!=="";default:return!0}});return o.length===0?!0:t==="or"?o.some(Boolean):o.every(Boolean)}function ei(n,e,t){switch(t.match){case"equals":return n===e;case"notEquals":return n!==e;case"lessThan":return n<e;case"lessThanOrEqual":return n<=e;case"greaterThan":return n>e;case"greaterThanOrEqual":return n>=e;case"inRange":return n>=e&&n<=(t.value2??e);default:return!0}}function ti(n,e){let t=n==null||n==="";if(e.match==="blank")return t;if(e.match==="notBlank")return!t;if(t)return!1;let r=typeof n=="number"?n:Number(n);if(Number.isNaN(r))return!1;let o=e.value;return o==null||Number.isNaN(o)?!1:ei(r,o,e)}function ri(n,e,t){let r=e.map(o=>ti(n,o));return r.length===0?!0:t==="or"?r.some(Boolean):r.every(Boolean)}function Le(n){if(n==null||n==="")return null;if(n instanceof Date)return isNaN(n.getTime())?null:n.getTime();if(typeof n=="number")return n;let e=Date.parse(String(n));return isNaN(e)?null:e}function oi(n,e,t){let r=e.map(o=>{let i=Le(n)==null;if(o.match==="blank")return i;if(o.match==="notBlank")return!i;if(i)return!1;let s=Le(n),a=o.value!=null?Le(o.value):null;if(a==null)return!1;switch(o.match){case"equals":return s===a;case"notEquals":return s!==a;case"lessThan":return s<a;case"greaterThan":return s>a;case"inRange":{let l=o.value2!=null?Le(o.value2):null;return l!=null?s>=a&&s<=l:s>=a}default:return!0}});return r.length===0?!0:t==="or"?r.some(Boolean):r.every(Boolean)}function ni(n,e){return e.length===0?!0:e.some(t=>t==null&&n==null||t===n)}function Or(n,e){let t=e.type!=="set"&&e.operator==="or"?"or":"and";switch(e.type){case"text":return Zn(n,e.conditions,t);case"number":return ri(n,e.conditions,t);case"date":return oi(n,e.conditions,t);case"set":return ni(n,e.values);default:return!0}}function Wt(n,e,t,r){if(n.kind==="condition"){let i=e.get(n.colId);return!i||Or(r(t,i),n.filter)}let o=n.operator==="or"?n.children.some(i=>Wt(i,e,t,r)):n.children.every(i=>Wt(i,e,t,r));return n.not?!o:o}function ii(n,e,t,r){return t?Wt(t.root,new Map(e.map(o=>[o.id,o])),n,r):!0}function _t(n,e,t,r,o,i){for(let s of Object.keys(t)){let a=t[s],l=e.find(c=>c.id===s);if(!l)continue;let d=i(n,l);if(!Or(d,a))return!1}if(!ii(n,e,r,i))return!1;if(o&&o.trim()!==""){let s=o.trim().toLowerCase().split(/\s+/);for(let a of s)if(!e.some(d=>Nr(i(n,d)).includes(a)))return!1}return!0}var Hr=typeof Intl<"u"?new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"}):null;function si(n,e){let t=n==null||n==="",r=e==null||e==="";return!t&&!r?null:t&&r?0:t?1:-1}function ai(n,e){let t=Number.isNaN(n),r=Number.isNaN(e);return t||r?t===r?0:t?1:-1:n-e}function li(n,e){return n===e?0:n?1:-1}function Ae(n,e){let t=si(n,e);if(t!==null)return t;if(typeof n=="number"&&typeof e=="number")return ai(n,e);if(n instanceof Date&&e instanceof Date)return n.getTime()-e.getTime();if(typeof n=="boolean"&&typeof e=="boolean")return li(n,e);let r=String(n),o=String(e);return Hr?Hr.compare(r,o):r.localeCompare(o)}function Kt(n,e,t,r){let o=new Map;for(let l of t)o.set(l.id,l);let i=[],s=[];for(let l of e){let d=o.get(l.colId);d&&(i.push(d.colDef.comparator??Ae),s.push(l.direction))}let a=n.map(l=>({node:l,values:e.map(d=>r(l,o.get(d.colId)))}));return a.sort((l,d)=>{for(let c=0;c<i.length;c++){let u=i[c](l.values[c],d.values[c],l.node,d.node);if(u!==0)return s[c]==="asc"?u:-u}return 0}),a.map(l=>l.node)}function Pe(n){return n.filter(e=>typeof e=="number"&&!isNaN(e))}var $t={sum:n=>Pe(n).reduce((e,t)=>e+t,0),avg:n=>{let e=Pe(n);return e.length===0?null:e.reduce((t,r)=>t+r,0)/e.length},count:n=>n.length,min:n=>{let e=Pe(n);return e.length===0?null:Math.min(...e)},max:n=>{let e=Pe(n);return e.length===0?null:Math.max(...e)},first:n=>n.length>0?n[0]:null,last:n=>n.length>0?n[n.length-1]:null};function Ge(n){let e={...$t,...n??{}};return t=>e[t]}function ae(n){if(n.reason instanceof Error)return n.reason;let e=new Error(typeof n.reason=="string"?n.reason:"Block request aborted");return e.name="AbortError",e}function Fe(n){return Number.isFinite(n)?Math.max(1,Math.trunc(n)):1}var Ne=class{constructor(e,t,r=4){this.maxBlocks=e;this.onEvict=t;this.maxConcurrentRequests=r;this.blocks=new Map;this.inflight=new Map;this.clock=0;this.generation=0;this.hitCount=0;this.missCount=0;this.evictionCount=0;this.activeRequests=0;this.maxBlocks=Fe(e),this.maxConcurrentRequests=Fe(r)}configure(e,t=this.maxConcurrentRequests){this.maxBlocks=Fe(e),this.maxConcurrentRequests=Fe(t),this.evictOverflow(),this.drainQueue()}peek(e){let t=this.blocks.get(e);if(t)return t.touchedAt=++this.clock,t}has(e){return this.blocks.has(e)}load(e,t,r,o=0){if(r?.aborted)return Promise.reject(ae(r));let i=this.peek(e);if(i)return this.hitCount++,Promise.resolve(i);let s=this.inflight.get(e);if(s)return this.hitCount++,s.priority=Math.max(s.priority,o),this.drainQueue(),this.attachConsumer(e,s,r);this.missCount++;let a=new AbortController,l,d,c=new Promise((p,m)=>{l=p,d=m}),u={controller:a,promise:c,consumers:0,loader:t,priority:o,state:"queued",resolve:l,reject:d};this.inflight.set(e,u);let h=this.attachConsumer(e,u,r);return this.drainQueue(),h}purge(){this.generation++;for(let e of this.inflight.values())e.controller.abort(),e.state==="queued"&&e.reject(ae(e.controller.signal));this.inflight.clear();for(let[e,t]of this.blocks)this.onEvict?.(e,t);this.blocks.clear()}snapshot(){let e=0,t=0;for(let r of this.blocks.values())e+=r.rows.length;for(let r of this.inflight.values())r.state==="active"&&t++;return{cachedBlockCount:this.blocks.size,loadingBlockCount:this.inflight.size,activeRequestCount:t,queuedRequestCount:Math.max(0,this.inflight.size-t),cachedRowCount:e,hitCount:this.hitCount,missCount:this.missCount,evictionCount:this.evictionCount}}drainQueue(){for(;this.activeRequests<this.maxConcurrentRequests;){let e,t;for(let[r,o]of this.inflight)o.state!=="queued"||o.controller.signal.aborted||(!t||o.priority>t.priority)&&(e=r,t=o);if(e==null||!t)return;this.startEntry(e,t)}}startEntry(e,t){t.state="active",this.activeRequests++;let r=this.generation;this.runLoader(t).then(o=>{r===this.generation&&!t.controller.signal.aborted&&(this.blocks.set(e,{rows:o.rows,...o.lastRow==null?{}:{lastRow:o.lastRow},touchedAt:++this.clock}),this.evictOverflow()),t.resolve(o)},t.reject).finally(()=>{this.activeRequests=Math.max(0,this.activeRequests-1),this.inflight.get(e)===t&&this.inflight.delete(e),this.drainQueue()})}runLoader(e){let{signal:t}=e.controller;return t.aborted?Promise.reject(ae(t)):new Promise((r,o)=>{let i=()=>o(ae(t));t.addEventListener("abort",i,{once:!0}),Promise.resolve().then(()=>e.loader(t)).then(r,o).finally(()=>{t.removeEventListener("abort",i)})})}attachConsumer(e,t,r){return t.consumers++,new Promise((o,i)=>{let s=!1,a=d=>{s||(s=!0,r?.removeEventListener("abort",l),t.consumers=Math.max(0,t.consumers-1),d())},l=()=>a(()=>{t.consumers===0&&this.inflight.get(e)===t&&(this.inflight.delete(e),t.controller.abort(r?.reason),t.state==="queued"&&t.reject(ae(t.controller.signal))),i(ae(r))});r?.addEventListener("abort",l,{once:!0}),t.promise.then(d=>a(()=>o(d)),d=>a(()=>i(d instanceof Error?d:new Error(String(d??"Block request failed")))))})}evictOverflow(){for(;this.blocks.size>this.maxBlocks;){let e=-1,t=Number.POSITIVE_INFINITY;for(let[o,i]of this.blocks)i.touchedAt<t&&(e=o,t=i.touchedAt);if(e<0)return;let r=this.blocks.get(e);this.blocks.delete(e),this.evictionCount++,r&&this.onEvict?.(e,r)}}};function me(n,e){if(n==null||typeof n!="object")return;let t=n[e];return Array.isArray(t)?t:void 0}var Oe=class{constructor(e){this.core=e;this.all=[];this.roots=[];this.childIds=new Map;this.displayed=[];this.nodesById=new Map;this.filterModel={};this.advancedFilterModel=null;this.quickFilter=null;this.expandedIds=new Set;this.groupExpandedIds=new Set;this.knownGroupIds=[];this.spanInfo=new Map;this.mastersBuf=[];this.infiniteLastRow=null;this.infiniteRequested=!1;this.infiniteLoading=!1;this.infiniteSeq=0;this.infiniteAbort=null;this.infiniteRetryTimer=null;this.infinitePendingResolve=null;this.treeDepth=new WeakMap;this.rowSequence=new WeakMap;this.treeLoadControllers=new Map;this.treeLoadPromises=new Map;this.displayRevision=0;this.blockNodes=new Map;this.blockPlaceholders=new Map;this.installedBlocks=new Set;this.blockCache=new Ne(12,e=>this.evictBlock(e));this.dataProcessorSeq=0;this.dataProcessorAbort=null;this.skipDataProcessorOnce=!1;this.lastRequestedBlock=0;this.pipelineRows=[];this.page=1;this.pageSize=20;this.advancedFilterModel=V(e.options.advancedFilterModel)}resolveRowId(e,t,r){let o=this.core.options.resolveRowId;if(!o)return r;try{let i=o({data:e,index:t,api:this.core.getApi()});if(typeof i=="string"&&i.length>0)return i;this.core.reportError(new Error("rowKey must resolve to a non-empty identifier"),"rowKey",{index:t})}catch(i){this.core.reportError(i,"rowKey",{index:t})}return r}get isTree(){return this.core.options.treeData}get isInfinite(){return this.core.options.datasource!=null}get isBlockDatasource(){return this.isInfinite&&this.core.options.datasourceMode==="block"}getDisplayTotalCount(){if(this.isInfinite){if(this.isBlockDatasource)return this.resolveBlockRowCount();let e=Math.max(0,this.displayed.length-this.all.length);return(this.infiniteLastRow??this.all.length)+e}return this.displayed.length}getDisplayRevision(){return this.displayRevision}isLoadingInfinite(){return this.infiniteLoading}startInfinite(e){return!this.isInfinite||e?.aborted?Promise.resolve():(this.cancelInfiniteRequest(),this.infiniteLastRow=null,this.infiniteRequested=!1,this.all=[],this.roots=[],this.nodesById.clear(),this.expandedIds.clear(),this.core.undoService.clear(),this.refreshPipeline(),this.core.requestUpdate({data:!0}),this.isBlockDatasource?(this.blockCache.configure(this.core.options.maxBlocksInCache,this.core.options.datasourceMaxConcurrentRequests),this.loadRandomBlock(0,e)):this.loadBlock(0,void 0,e))}reloadInfinite(e){return this.isInfinite?this.startInfinite(e):Promise.resolve()}setInfiniteLoading(e){this.infiniteLoading=e,this.core.skeleton.setInfiniteLoading(e,this.core.getLocaleText("loading"))}loadBlock(e,t,r){if(!this.isInfinite||this.infiniteRequested||this.infiniteLastRow!=null&&e>=this.infiniteLastRow)return Promise.resolve();let o=this.core.options.datasource,i=this.core.options.blockSize,s=t??e+i;if(s<=e)return Promise.resolve();let a=++this.infiniteSeq,l=new AbortController,d=()=>l.abort(r?.reason);return r?.addEventListener("abort",d,{once:!0}),this.infiniteAbort=l,this.infiniteRequested=!0,this.setInfiniteLoading(!0),new Promise(c=>{let u=!1,h=0;this.infinitePendingResolve=c;let p=y=>{u||(u=!0,r?.removeEventListener("abort",d),a===this.infiniteSeq&&(this.infiniteRequested=!1,this.infiniteAbort=null,this.infinitePendingResolve=null,this.setInfiniteLoading(!1),y!=null&&y?.name!=="AbortError"&&this.core.reportError(y,"datasource.getRows",{startRow:e,endRow:s})),c())},m=()=>{if(u||a!==this.infiniteSeq||l.signal.aborted||this.core.isDestroyed()){p();return}h++;let y=!1,v=g=>{if(!(y||u)){if(y=!0,a!==this.infiniteSeq||l.signal.aborted||this.core.isDestroyed()){p();return}if(h<=this.core.options.datasourceRetryCount){let b=this.retryDelay(h);this.infiniteRetryTimer=setTimeout(()=>{this.infiniteRetryTimer=null,m()},b);return}p(g??new Error("Datasource request failed"))}};try{let g=o.getRows({startRow:e,endRow:s,sortModel:this.core.columnModel.getSortModel(),filterModel:this.getFilterModel(),advancedFilterModel:this.getAdvancedFilterModel(),quickFilterText:this.quickFilter,signal:l.signal,onSuccess:(b,T)=>{if(y||u)return;if(y=!0,a!==this.infiniteSeq||this.core.isDestroyed()||l.signal.aborted){p();return}let E=b??[];typeof T=="number"&&T>=0?this.infiniteLastRow=T:E.length<s-e&&(this.infiniteLastRow=e+E.length);let w=this.all.length===0;this.appendInfiniteRows(E),p(),this.refreshPipeline(),this.core.requestUpdate({data:!0}),w&&this.core.relayout(),this.core.headerRenderer.refreshSelectAllCheckbox()},fail:v});g&&typeof g.catch=="function"&&g.catch(v)}catch(g){v(g)}};m()})}cancelInfiniteRequest(){this.infiniteSeq++,this.infiniteRetryTimer!=null&&clearTimeout(this.infiniteRetryTimer),this.infiniteRetryTimer=null,this.infiniteAbort?.abort(),this.infiniteAbort=null,this.infiniteRequested=!1,this.setInfiniteLoading(!1),this.infinitePendingResolve?.(),this.infinitePendingResolve=null,this.blockCache.purge(),this.blockNodes.clear(),this.blockPlaceholders.clear(),this.installedBlocks.clear()}appendInfiniteRows(e){for(let t of e){if(t==null)continue;let r=this.all.length,o=this.resolveRowId(t,r,`inf-${this.core.nextId()}`);if(this.nodesById.has(o)){this.core.reportError(new Error(`Duplicate row id: ${o}`),"datasource.getRows",{rowId:o});continue}let i={id:o,data:t,rowIndex:-1,selected:this.core.selectionService.isSelected(o)};this.all.push(i),this.nodesById.set(o,i),this.roots.push(i)}}loadRandomBlock(e,t,r=0){if(!this.isBlockDatasource||e<0)return Promise.resolve();if(t?.aborted)return Promise.reject(this.abortError(t.reason));let o=this.core.options.blockSize,i=e*o;if(i>=this.resolveBlockRowCount())return Promise.resolve();let s=this.infiniteLastRow==null?i+o:Math.min(this.infiniteLastRow,i+o),a=this.blockCache.load(e,l=>this.requestDatasourceRange(i,s,l),t,r);return this.setInfiniteLoading(this.all.length===0&&this.blockCache.snapshot().loadingBlockCount>0),a.then(l=>{t?.aborted||this.core.isDestroyed()||!this.isBlockDatasource||this.installedBlocks.has(e)||(this.installBlock(e,l),this.refreshPipeline(),this.core.requestUpdate({data:!0}),this.core.headerRenderer.refreshSelectAllCheckbox())}).catch(l=>{throw l?.name!=="AbortError"&&this.core.reportError(l,"datasource.getRows",{startRow:i,endRow:s}),l}).finally(()=>{this.setInfiniteLoading(this.all.length===0&&this.blockCache.snapshot().loadingBlockCount>0)})}requestDatasourceRange(e,t,r){let o=this.core.options.datasource;return new Promise((i,s)=>{let a=0,l=null,d=!1,c=p=>{d||(d=!0,l!=null&&clearTimeout(l),r.removeEventListener("abort",u),s(p instanceof Error?p:new Error(typeof p=="string"?p:"Datasource request failed")))},u=()=>c(this.abortError(r.reason));r.addEventListener("abort",u,{once:!0});let h=()=>{if(d)return;if(r.aborted||this.core.isDestroyed()){u();return}a++;let p=!1,m=y=>{if(!(p||d)){if(p=!0,r.aborted||this.core.isDestroyed()){u();return}if(a<=this.core.options.datasourceRetryCount){let v=this.retryDelay(a);l=setTimeout(()=>{l=null,h()},v)}else c(y)}};try{let y=o.getRows({startRow:e,endRow:t,sortModel:this.core.columnModel.getSortModel(),filterModel:this.getFilterModel(),advancedFilterModel:this.getAdvancedFilterModel(),quickFilterText:this.quickFilter,signal:r,onSuccess:(v,g)=>{p||d||(p=!0,d=!0,r.removeEventListener("abort",u),i({rows:v??[],...typeof g=="number"&&g>=0?{lastRow:g}:{}}))},fail:m});y&&typeof y.catch=="function"&&y.catch(m)}catch(y){m(y)}};h()})}installBlock(e,t){let r=this.core.options.blockSize,o=e*r;this.evictBlock(e),typeof t.lastRow=="number"&&t.lastRow>=0?this.infiniteLastRow=t.lastRow:t.rows.length<r&&(this.infiniteLastRow=o+t.rows.length),t.rows.forEach((i,s)=>{if(i==null)return;let a=o+s;if(this.infiniteLastRow!=null&&a>=this.infiniteLastRow)return;let l=this.resolveRowId(i,a,`block-${a}`),d=this.nodesById.get(l);if(d&&d.rowIndex!==a){this.core.reportError(new Error(`Duplicate row id: ${l}`),"datasource.getRows",{rowId:l});return}let c={id:l,data:i,rowIndex:a,selected:this.core.selectionService.isSelected(l)};this.blockNodes.set(a,c),this.blockPlaceholders.delete(a),this.nodesById.set(l,c),this.rowSequence.set(c,a+1)}),this.rebuildLoadedBlockRows(),this.installedBlocks.add(e)}evictBlock(e){this.installedBlocks.delete(e);let t=this.core.options.blockSize,r=e*t;for(let o=r;o<r+t;o++){let i=this.blockNodes.get(o);i&&(this.blockNodes.delete(o),this.nodesById.get(i.id)===i&&this.nodesById.delete(i.id))}this.rebuildLoadedBlockRows()}rebuildLoadedBlockRows(){this.all=[...this.blockNodes.entries()].sort(([e],[t])=>e-t).map(([,e])=>e),this.roots=this.all}resolveBlockRowCount(){if(this.infiniteLastRow!=null)return this.infiniteLastRow;if(this.core.options.datasourceRowCount!=null)return this.core.options.datasourceRowCount;if(this.blockNodes.size===0)return this.core.options.blockSize;let e=0;for(let t of this.blockNodes.keys())e=Math.max(e,t+1);return e+this.core.options.blockSize}blockPlaceholder(e){let t=this.blockPlaceholders.get(e);if(!t&&(t={id:`__mach_loading_${e}`,data:null,rowIndex:e,selected:!1,loading:!0},this.blockPlaceholders.set(e,t),this.blockPlaceholders.size>2e3)){let r=this.blockPlaceholders.keys().next().value;r!=null&&this.blockPlaceholders.delete(r)}return t}abortError(e){if(e instanceof Error)return e;let t=new Error(typeof e=="string"?e:"Operation aborted");return t.name="AbortError",t}retryDelay(e){let t=Math.min(this.core.options.datasourceRetryDelay*2**Math.max(0,e-1),3e4),r=this.core.options.datasourceRetryJitter;return Math.max(0,Math.round(t*(1+(Math.random()*2-1)*r)))}checkInfiniteScroll(e){if(this.isBlockDatasource){this.prefetchVisibleBlocks(e);return}if(!this.isInfinite||this.infiniteRequested)return;let t=this.all.length;if(this.infiniteLastRow!=null&&t>=this.infiniteLastRow)return;let r=this.core.options.infiniteBufferRows;if(e+r<t&&e<t)return;let o=this.core.options.blockSize,i=this.infiniteLastRow==null?t+o:Math.min(this.infiniteLastRow,t+o);this.loadBlock(t,i)}prefetchVisibleBlocks(e){if(e<0)return;let t=this.core.options.blockSize,r=Math.floor(e/t),o=this.core.options.blockPrefetch,i=r<this.lastRequestedBlock?-1:1;this.lastRequestedBlock=r;for(let s=0;s<=o;s++){let a=s===0?[r]:[r+i*s,r-i*s];for(let l of a)l<0||l*t>=this.resolveBlockRowCount()||this.loadRandomBlock(l,void 0,o-s+1).catch(()=>{})}}onServerParamsChanged(){return this.reloadInfinite().catch(()=>{})}onDatasourceChanged(){return this.cancelInfiniteRequest(),this.isInfinite?this.startInfinite().catch(()=>{}):(this.infiniteLastRow=null,this.setRowData(this.core.options.rowData),this.core.requestUpdate({data:!0}),Promise.resolve())}destroy(){this.cancelInfiniteRequest(),this.cancelTreeLoads(),this.cancelDataProcessor(),this.core.options.dataProcessor?.destroy?.()}ensureRowsLoaded(e,t,r){if(!this.isBlockDatasource)return Promise.resolve();let o=this.core.options.blockSize,i=Math.max(0,Math.trunc(e)),s=Math.min(this.resolveBlockRowCount(),Math.max(i,Math.trunc(t))),a=Math.floor(i/o),l=Math.max(a,Math.floor(Math.max(i,s-1)/o)),d=[];for(let c=a;c<=l;c++)d.push(this.loadRandomBlock(c,r,100));return Promise.all(d).then(()=>{})}purgeDatasourceCache(){this.isBlockDatasource&&(this.blockCache.purge(),this.blockNodes.clear(),this.blockPlaceholders.clear(),this.installedBlocks.clear(),this.all=[],this.roots=[],this.nodesById.clear(),this.refreshPipeline(),this.core.requestUpdate({data:!0}))}getDatasourceCacheSnapshot(){return this.blockCache.snapshot()}setRowData(e){this.cancelTreeLoads(),this.core.changeTracker.clear();let t=this.core.options.resolveRowId,r=this.core.options.childrenKey,o=[],i=[],s=new Map,a=new Map,l=0,d=(c,u,h)=>{let p=l++,m=this.resolveRowId(c,p,`auto-${p}`);if(s.has(m))return this.core.reportError(new Error(`Duplicate row id: ${m}`),"rowData",{rowId:m,index:p}),null;let y=this.isTree?me(c,r):void 0,v={id:m,data:c,rowIndex:-1,selected:!1,treeChildrenLoaded:Array.isArray(y)};if(this.treeDepth.set(v,u),o.push(v),s.set(m,v),h!=null){let g=a.get(h)??[];g.push(m),a.set(h,g)}else i.push(v);if(this.isTree&&Array.isArray(y))for(let g of y)g!=null&&d(g,u+1,m);return v};(e??[]).forEach(c=>{c!=null&&d(c,0,null)}),this.all=o,this.roots=i,this.childIds=a,this.nodesById=s,this.core.undoService.clear();for(let c of[...this.expandedIds])s.has(c)||this.expandedIds.delete(c);if(this.core.options.defaultExpandAll)for(let c of o)this.getChildrenCount(c.id)>0&&this.expandedIds.add(c.id);this.core.selectionService.onRowsRebuilt(t!=null),this.refreshPipeline()}getChildrenIds(e){return this.childIds.get(e)??[]}getChildrenCount(e){return this.childIds.get(e)?.length??0}hasChildren(e){return this.getChildrenCount(e)>0}isTreeRowLoading(e){return this.nodesById.get(e)?.treeLoading===!0}cancelTreeLoads(){for(let e of this.treeLoadControllers.values())e.abort();this.treeLoadControllers.clear(),this.treeLoadPromises.clear()}loadTreeChildren(e,t=!1){let r=this.nodesById.get(e),o=this.core.options.loadTreeChildren;if(!this.isTree||!r?.data||!o)return Promise.resolve([]);if(!t&&r.treeChildrenLoaded)return Promise.resolve(this.getChildrenIds(e).flatMap(l=>{let d=this.nodesById.get(l)?.data;return d==null?[]:[d]}));let i=this.treeLoadPromises.get(e);if(i&&!t)return i;this.treeLoadControllers.get(e)?.abort();let s=new AbortController;this.treeLoadControllers.set(e,s),r.treeLoading=!0,r.treeLoadError=void 0,this.core.requestUpdate({data:!0});let a=Promise.resolve().then(()=>o({data:r.data,node:r,api:this.core.getApi(),signal:s.signal})).then(l=>{if(s.signal.aborted||this.core.isDestroyed())return[];if(!Array.isArray(l))throw new TypeError("[MachTable] loadTreeChildren must resolve to an array.");return this.replaceTreeChildren(r,l),r.treeChildrenLoaded=!0,r.treeLoadError=void 0,this.core.emit("treeChildrenLoaded",{rowId:e,rowNode:r,children:l}),l}).catch(l=>{if(s.signal.aborted||l?.name==="AbortError")return[];throw r.treeLoadError=l,r.treeChildrenLoaded=!1,this.core.reportError(l,"treeData.loadChildren",{rowId:e}),this.core.emit("treeChildrenLoadFailed",{rowId:e,rowNode:r,error:l}),l}).finally(()=>{this.treeLoadControllers.get(e)===s&&(this.treeLoadControllers.delete(e),this.treeLoadPromises.delete(e),r.treeLoading=!1,this.core.requestUpdate({data:!0}))});return this.treeLoadPromises.set(e,a),a}replaceTreeChildren(e,t){let r=new Set,o=[...this.getChildrenIds(e.id)];for(;o.length>0;){let s=o.pop();r.has(s)||(r.add(s),o.push(...this.getChildrenIds(s)))}this.validateTreeChildren(t,r);for(let s of r)this.treeLoadControllers.get(s)?.abort(),this.treeLoadControllers.delete(s),this.treeLoadPromises.delete(s),this.childIds.delete(s),this.nodesById.delete(s),this.expandedIds.delete(s);this.childIds.delete(e.id);let i=this.getTreeDepth(e)+1;for(let s of t)s!=null&&this.buildChildNodes(e,s,i);this.reindexAll(),this.core.selectionService.onRowsRebuilt(this.core.options.resolveRowId!=null),this.refreshPipeline(),this.core.requestUpdate({data:!0})}validateTreeChildren(e,t){let r=this.core.options.resolveRowId,o=r?new Set([...this.nodesById.keys()].filter(l=>!t.has(l))):null,i=new WeakSet,s=[...e],a=0;for(;s.length>0;){let l=s.pop();if(l==null)continue;if(typeof l=="object"){if(i.has(l))throw new TypeError("[MachTable] Lazy tree children contain a cyclic object graph.");i.add(l)}if(r&&o){let c=r({data:l,index:a++,api:this.core.getApi()});if(typeof c!="string"||c.length===0)throw new TypeError("[MachTable] rowKey must resolve to a non-empty identifier for lazy tree children.");if(o.has(c))throw new Error(`Duplicate row id: ${c}`);o.add(c)}let d=me(l,this.core.options.childrenKey);d&&s.push(...d)}}applyTransaction(e,t=!0){let r=this.core.options.resolveRowId,o=[],i=[];if(e.remove?.length){let a=new Set,l=new Set,d=u=>{if(r){let p=[this.resolveRowId(u,-1,`__missing_remove_${this.core.nextId()}`)];for(;p.length>0;){let m=p.pop();if(!a.has(m)){a.add(m);for(let y of this.childIds.get(m)??[])p.push(y)}}}else{let h=[u];for(;h.length>0;){let p=h.pop();l.add(p);let m=this.isTree?me(p,this.core.options.childrenKey):void 0;if(m)for(let y of m)h.push(y)}}};e.remove.forEach(d),this.all=this.all.filter(u=>{let h=a.has(u.id)||u.data!=null&&l.has(u.data);return h&&(i.push(u.id),this.nodesById.delete(u.id),this.childIds.delete(u.id)),!h});let c=new Set(this.all);this.roots=this.roots.filter(u=>c.has(u))}if(e.update?.length)for(let a of e.update){let l;r?l=this.nodesById.get(this.resolveRowId(a,-1,`__missing_update_${this.core.nextId()}`)):l=this.all.find(d=>d.data===a),l&&(l.data=a,i.push(l.id),this.core.bodyRenderer.invalidateRowHeight(l),o.push(l))}if(e.add?.length){let a=e.addIndex!=null?Math.max(0,Math.min(e.addIndex,this.roots.length)):this.roots.length,l=[];e.add.forEach((d,c)=>{let u=this.resolveRowId(d,a+c,`add-${this.core.nextId()}`);if(this.nodesById.has(u)){this.core.reportError(new Error(`Duplicate row id: ${u}`),"transaction.add",{rowId:u});return}let h={id:u,data:d,rowIndex:-1,selected:!1};this.nodesById.set(u,h),this.treeDepth.set(h,0);let p=this.isTree?me(d,this.core.options.childrenKey):void 0;if(p)for(let m of p)m!=null&&this.buildChildNodes(h,m,1);l.push(h)}),this.roots.splice(a,0,...l),this.reindexAll()}let s=this.transactionNeedsPipeline(e);return t&&(s?this.refreshPipeline():o.length>0&&this.emitIncrementalModelUpdate()),this.core.changeTracker.clearRows(i),{pipelineChanged:s,updatedRowIds:o.map(a=>a.id)}}applyTransactions(e){if(e.length===0)return{pipelineChanged:!1,updatedRowIds:[]};let t=!1,r=new Set;for(let o of e){let i=this.applyTransaction(o,!1);t||(t=i.pipelineChanged);for(let s of i.updatedRowIds)r.add(s)}return t?this.refreshPipeline():r.size>0&&this.emitIncrementalModelUpdate(),{pipelineChanged:t,updatedRowIds:[...r]}}transactionNeedsPipeline(e){return e.add?.length||e.remove?.length?!0:e.update?.length?this.isTree||this.core.options.masterDetail||this.core.columnModel.getRowGroupColumns().length>0||!this.core.options.manualFiltering&&this.isFilterPresent()||!this.core.options.manualSorting&&this.core.columnModel.getSortModel().length>0||this.core.options.getRowHeight?!0:this.core.columnModel.getOrderedVisible().some(t=>t.colDef.autoHeight===!0||t.colDef.autoRowSpan===!0||t.colDef.rowSpan!=null):!1}emitIncrementalModelUpdate(){this.core.emit("modelUpdated",{rowCount:this.pipelineRows.length})}buildChildNodes(e,t,r){let o=this.resolveRowId(t,-1,`add-${this.core.nextId()}`);if(this.nodesById.has(o)){this.core.reportError(new Error(`Duplicate row id: ${o}`),"transaction.add",{rowId:o});return}let i=me(t,this.core.options.childrenKey),s={id:o,data:t,rowIndex:-1,selected:!1,treeChildrenLoaded:Array.isArray(i)};this.nodesById.set(o,s),this.treeDepth.set(s,r);let a=this.childIds.get(e.id)??[];if(a.push(s.id),this.childIds.set(e.id,a),!!i)for(let l of i)l!=null&&this.buildChildNodes(s,l,r+1)}reindexAll(){this.all=[];let e=t=>{this.all.push(t),this.nodesById.has(t.id)||this.nodesById.set(t.id,t);for(let r of this.childIds.get(t.id)??[]){let o=this.nodesById.get(r);o&&e(o)}};for(let t of this.roots)e(t)}setFilterModel(e){let t=JSON.stringify(this.filterModel),r=new Set(this.core.columnModel.getColumns().map(o=>o.id));return this.filterModel=ne(e,r),JSON.stringify(this.filterModel)!==t}getFilterModel(){return{...this.filterModel}}setAdvancedFilterModel(e){let t=new Set(this.core.columnModel.getColumns().map(i=>i.id)),r=V(e,t),o=JSON.stringify(this.advancedFilterModel);return this.advancedFilterModel=r,this.core.options.advancedFilterModel=r,JSON.stringify(r)!==o}getAdvancedFilterModel(){return V(this.advancedFilterModel)}setQuickFilter(e){let t=e!=null&&e.trim()!==""?e:null;return t===this.quickFilter?!1:(this.quickFilter=t,!0)}getQuickFilter(){return this.quickFilter}isFilterPresent(){return Object.keys(this.filterModel).length>0||this.advancedFilterModel!=null||this.quickFilter!=null}refreshPipeline(){let e=this.core.performanceMonitor.start(),t=this.core.columnModel.getOrderedVisible(),r=(s,a)=>this.core.getCellValue(s,a);if(this.isInfinite){this.refreshInfinitePipeline(e);return}if(this.startDataProcessorIfNeeded(e))return;let o;if(this.isTree)o=this.buildTreeDisplay(t,r);else{o=this.all,this.isFilterPresent()&&!this.core.options.manualFiltering&&(o=o.filter(d=>_t(d,t,this.filterModel,this.advancedFilterModel,this.quickFilter,r)));let a=this.core.columnModel.getSortModel();if(a.length>0&&!this.core.options.manualSorting)try{o=Kt(o,a,t,r)}catch(d){this.core.reportError(d,"comparator",{sortModel:a})}let l=this.core.columnModel.getRowGroupColumns();if(l.length>0)o=this.buildGrouped(o,l);else if(this.core.options.masterDetail){let d=[];for(let c of o)d.push(c),this.expandedIds.has(c.id)&&this.isRowExpandable(c)&&d.push({id:`__detail__${c.id}`,data:c.data,rowIndex:-1,selected:!1,isDetail:!0,masterId:c.id});o=d}}for(let s of this.all)s.rowIndex=-1;let i=0;o.forEach((s,a)=>{s.rowIndex=a,!s.isDetail&&!s.isGroup&&(i++,this.rowSequence.set(s,i))}),this.pipelineRows=o,this.applyPagination(),this.computeSpans(r),this.core.emit("modelUpdated",{rowCount:o.length}),this.core.performanceMonitor.recordModel(e)}refreshInfinitePipeline(e){this.all.forEach((t,r)=>{this.isBlockDatasource||(t.rowIndex=r),this.rowSequence.set(t,this.isBlockDatasource?t.rowIndex+1:r+1)}),this.displayed=this.all,this.pipelineRows=this.all,this.spanInfo.clear(),this.displayRevision++,this.core.emit("modelUpdated",{rowCount:this.all.length}),this.core.performanceMonitor.recordModel(e)}startDataProcessorIfNeeded(e){let t=this.skipDataProcessorOnce;return this.skipDataProcessorOnce=!1,!t&&this.shouldUseDataProcessor()?(this.refreshWithDataProcessor(e),!0):(this.cancelDataProcessor(),!1)}shouldUseDataProcessor(){if(!this.core.options.dataProcessor||this.all.length<this.core.options.dataProcessorMinRows||this.isTree||this.core.options.masterDetail||this.core.columnModel.getRowGroupColumns().length>0)return!1;let e=!this.core.options.manualFiltering&&this.isFilterPresent(),t=!this.core.options.manualSorting&&this.core.columnModel.getSortModel().length>0;return e||t}refreshWithDataProcessor(e){this.cancelDataProcessor();let t=this.core.options.dataProcessor;if(!t)return;let r=++this.dataProcessorSeq,o=new AbortController;this.dataProcessorAbort=o;let i=this.core.columnModel.getOrderedVisible(),s=this.all.flatMap(d=>d.data==null?[]:[{id:d.id,data:d.data}]),a=!this.core.options.manualFiltering,l=!this.core.options.manualSorting;Promise.resolve().then(()=>t.process({rows:s,columns:i.map(d=>({colId:d.id,...d.colDef.field?{field:d.colDef.field}:{}})),sortModel:l?this.core.columnModel.getSortModel():[],filterModel:a?this.getFilterModel():{},advancedFilterModel:a?this.getAdvancedFilterModel():null,quickFilterText:a?this.quickFilter:null,signal:o.signal})).then(d=>{if(r!==this.dataProcessorSeq||o.signal.aborted||this.core.isDestroyed())return;let c=new Set,u=[];for(let p of d.rowIds){if(c.has(p))continue;c.add(p);let m=this.nodesById.get(p);m&&!m.isDetail&&!m.isGroup&&u.push(m)}for(let p of this.all)p.rowIndex=-1;u.forEach((p,m)=>{p.rowIndex=m,this.rowSequence.set(p,m+1)}),this.pipelineRows=u,this.applyPagination();let h=(p,m)=>this.core.getCellValue(p,m);this.computeSpans(h),this.core.emit("modelUpdated",{rowCount:u.length}),this.core.performanceMonitor.recordModel(e),this.core.requestUpdate({data:!0})}).catch(d=>{r!==this.dataProcessorSeq||o.signal.aborted||this.core.isDestroyed()||(this.core.reportError(d,"dataProcessor.process"),this.skipDataProcessorOnce=!0,this.refreshPipeline(),this.core.requestUpdate({data:!0}))}).finally(()=>{r===this.dataProcessorSeq&&(this.dataProcessorAbort=null)})}cancelDataProcessor(){this.dataProcessorSeq++,this.dataProcessorAbort?.abort(),this.dataProcessorAbort=null}get paginationActive(){return this.core.options.paginationEnabled&&!this.isInfinite}applyPagination(){if(!this.paginationActive){this.displayed=this.pipelineRows,this.displayRevision++;return}let e=this.effectivePageSize(),t=this.getPageCount();if(this.page>t&&(this.page=t),this.page<1&&(this.page=1),this.core.options.paginationPage=this.page,this.core.options.paginationMode==="server"){this.pipelineRows.forEach((i,s)=>{i.rowIndex=s}),this.displayed=this.pipelineRows,this.displayRevision++;return}let r=(this.page-1)*e,o=this.pipelineRows.slice(r,r+e);o.forEach((i,s)=>{i.rowIndex=s}),this.displayed=o,this.displayRevision++}effectivePageSize(){return this.pageSize=this.core.options.paginationPageSize,Math.max(1,this.pageSize)}getCurrentPage(){return this.paginationActive?this.page:1}getTotalRowCount(){return this.isInfinite?this.getDisplayTotalCount():this.paginationActive&&this.core.options.paginationMode==="server"?this.core.options.paginationTotal:this.pipelineRows.length}getPageCount(){return this.paginationActive?Math.max(1,Math.ceil(this.getTotalRowCount()/this.effectivePageSize())):1}getPipelineRows(){return this.pipelineRows}setPage(e,t=!1){if(!this.paginationActive)return;let r=this.getPageCount(),o=Math.max(1,Math.min(Math.round(e)||1,r));o!==this.page&&(this.page=o,this.core.options.paginationPage=o,this.applyPagination(),this.core.requestUpdate({data:!0}),this.core.bodyRenderer.scrollToIndex(0,"top"),t||this.emitPaginationChanged())}setPageSize(e){if(!this.paginationActive)return;let t=Math.max(1,Math.round(e)||this.effectivePageSize()),r=(this.page-1)*this.effectivePageSize();this.core.options.paginationPageSize=t,this.pageSize=t,this.page=Math.floor(r/t)+1,this.core.options.paginationPage=this.page,this.applyPagination(),this.core.requestUpdate({data:!0}),this.emitPaginationChanged()}restorePagination(e,t){this.pageSize=Math.max(1,Math.round(t)||1),this.core.options.paginationPageSize=this.pageSize,this.page=Math.max(1,Math.round(e)||1),this.core.options.paginationPage=this.page}setPaginationEnabled(e){this.core.options.paginationEnabled!==e&&(this.core.options.paginationEnabled=e&&!this.isInfinite,this.core.options.paginationEnabled&&(this.page=1),this.applyPagination(),this.core.requestUpdate({data:!0}),this.emitPaginationChanged())}onPaginationOptionsChanged(){this.paginationActive&&(this.page=this.core.options.paginationMode==="server"?this.core.options.paginationPage:1,this.applyPagination(),this.core.requestUpdate({data:!0}),this.emitPaginationChanged())}emitPaginationChanged(){this.core.emit("paginationChanged",{page:this.getCurrentPage(),pageSize:this.effectivePageSize(),pageCount:this.getPageCount(),total:this.getTotalRowCount()})}buildTreeDisplay(e,t){let r=this.core.options.manualSorting?[]:this.core.columnModel.getSortModel(),o=new Map,i=this.isFilterPresent()&&!this.core.options.manualFiltering,s=d=>{let c=o.get(d.id);if(c!==void 0)return c;let u=!0;if(i){u=_t(d,e,this.filterModel,this.advancedFilterModel,this.quickFilter,t);for(let h of this.childIds.get(d.id)??[]){let p=this.nodesById.get(h);p&&s(p)&&(u=!0)}}return o.set(d.id,u),u},a=[],l=d=>{let c=d;r.length>0&&(c=Kt(d,r,e,t));for(let u of c)if(s(u)&&(a.push(u),this.expandedIds.has(u.id))){let h=(this.childIds.get(u.id)??[]).map(p=>this.nodesById.get(p)).filter(p=>p!=null);l(h)}};return l(this.roots),a}collectSpanMasters(){let e=this.mastersBuf,t=0;for(let r of this.displayed)!r.isDetail&&!r.isGroup&&(e[t++]=r);return e.length=t,e}explicitRowSpan(e,t,r,o){let i=t.colDef.rowSpan;if(!i)return 1;try{let s=i({api:this.core.getApi(),colDef:t.colDef,column:t,node:e,data:e.data,value:r,rowIndex:e.rowIndex});return Math.max(1,Math.min(Math.round(s)||1,o))}catch(s){return this.core.reportError(s,"rowSpan",{colId:t.id,rowId:e.id}),1}}automaticRowSpan(e,t,r,o,i){if(!r.colDef.autoRowSpan||o==null||o==="")return 1;let s=1;for(;t+s<e.length&&Ae(o,i(e[t+s],r))===0;)s++;return s}computeColumnSpans(e,t,r){let o=new Int32Array(e.length),i=0;for(;i<e.length;){let s=e[i],a=r(s,t),l=t.colDef.rowSpan?this.explicitRowSpan(s,t,a,e.length-i):this.automaticRowSpan(e,i,t,a,r);o[i]=l;for(let d=1;d<l;d++)o[i+d]=-1;i+=l}return o}computeSpans(e){if(this.spanInfo.clear(),this.isTree||this.core.options.masterDetail||this.core.columnModel.getRowGroupColumns().length>0)return;let t=this.core.columnModel.getOrderedVisible().filter(o=>o.colDef.rowSpan!=null||o.colDef.autoRowSpan===!0);if(t.length===0)return;let r=this.collectSpanMasters();if(r.length!==0)for(let o of t)this.spanInfo.set(o.id,this.computeColumnSpans(r,o,e))}getSpanInfo(e){return this.spanInfo.get(e)}getRowSeq(e){return this.rowSequence.get(e)??0}getTreeDepth(e){return this.treeDepth.get(e)??0}buildGrouped(e,t){let r=Ge(this.core.options.aggFuncs),o=this.core.columnModel.getAggColumns();this.knownGroupIds=[];let i=a=>{let l={};for(let d of o){let c=r(d.colDef.aggFunc);if(c)try{l[d.id]=c(a.map(u=>this.core.getCellValue(u,d)))}catch(u){this.core.reportError(u,"aggFunc",{colId:d.id,aggFunc:d.colDef.aggFunc}),l[d.id]=null}}return l},s=(a,l,d)=>{if(l>=t.length)return{display:a,leaves:a};let c=t[l],u=new Map,h=[];for(let y of a){let v=this.core.getCellValue(y,c),g=v==null?"(\u7A7A)":String(v),b=u.get(g);b||(b=[],u.set(g,b),h.push(g)),b.push(y)}h.sort((y,v)=>y.localeCompare(v,void 0,{numeric:!0,sensitivity:"base"}));let p=[],m=[];for(let y of h){let v=u.get(y),g=`${d}/g${l}:${y}`;this.knownGroupIds.push(g);let b=s(v,l+1,g),T={id:g,data:null,rowIndex:-1,selected:!1,isGroup:!0,groupLevel:l,groupKey:y,leafNodes:b.leaves,aggValues:i(b.leaves)};p.push(T),this.groupExpandedIds.has(g)&&p.push(...b.display),m.push(...b.leaves)}return{display:p,leaves:m}};return s(e,0,"").display}isRowExpandable(e){if(this.isTree){if(this.hasChildren(e.id)||e.treeLoading)return!0;if(e.treeChildrenLoaded||!e.data||!this.core.options.loadTreeChildren)return!1;let r=this.core.options.isTreeRowExpandable;if(!r)return!1;try{return r({data:e.data,node:e,api:this.core.getApi()})}catch(o){return this.core.reportError(o,"isTreeRowExpandable",{rowId:e.id}),!1}}if(!this.core.options.masterDetail)return!1;let t=this.core.options.isRowExpandable;if(t)try{return t({data:e.data,node:e,api:this.core.getApi()})}catch(r){return this.core.reportError(r,"isRowExpandable",{rowId:e.id}),!1}return!0}isRowExpanded(e){return this.expandedIds.has(e)}getExpandedRowIds(){return[...this.expandedIds]}getExpandedGroupIds(){return[...this.groupExpandedIds]}restoreExpansion(e,t){this.expandedIds=new Set(e.filter(r=>this.nodesById.has(r))),this.groupExpandedIds=new Set(t)}expandRow(e){return this.setDetailExpanded(e,!0)}collapseRow(e){return this.setDetailExpanded(e,!1)}toggleDetail(e){return this.setDetailExpanded(e,!this.expandedIds.has(e))}setDetailExpanded(e,t){let r=this.nodesById.get(e);return!r||t&&!this.isRowExpandable(r)?!1:(t===this.expandedIds.has(e)||(t?this.expandedIds.add(e):this.expandedIds.delete(e),this.refreshPipeline(),this.core.requestUpdate({data:!0}),this.core.emit("detailToggled",{rowId:e,rowNode:r,expanded:t}),t&&this.isTree&&!this.hasChildren(e)&&!r.treeLoading&&this.loadTreeChildren(e).catch(()=>{})),t)}expandAllDetails(){let e=!1;for(let t of this.all)!this.expandedIds.has(t.id)&&this.isRowExpandable(t)&&(this.expandedIds.add(t.id),e=!0);e&&(this.refreshPipeline(),this.core.requestUpdate({data:!0}))}collapseAllDetails(){this.expandedIds.size!==0&&(this.expandedIds.clear(),this.refreshPipeline(),this.core.requestUpdate({data:!0}))}toggleGroup(e){return this.setGroupExpanded(e,!this.groupExpandedIds.has(e))}isGroupExpanded(e){return this.groupExpandedIds.has(e)}getGroupNode(e){return this.displayed.find(t=>t.isGroup&&t.id===e)}expandAllGroups(){if(this.knownGroupIds.length===0)return;let e=!1;for(let t of this.knownGroupIds)this.groupExpandedIds.has(t)||(this.groupExpandedIds.add(t),e=!0);e&&(this.refreshPipeline(),this.core.requestUpdate({data:!0}))}collapseAllGroups(){this.groupExpandedIds.size!==0&&(this.groupExpandedIds.clear(),this.refreshPipeline(),this.core.requestUpdate({data:!0}))}setGroupExpanded(e,t){return!this.knownGroupIds.includes(e)||t===this.groupExpandedIds.has(e)||(t?this.groupExpandedIds.add(e):this.groupExpandedIds.delete(e),this.refreshPipeline(),this.core.requestUpdate({data:!0})),t}reorderRowsByDisplayed(e,t){if(this.isTree)return!1;let r=this.getDisplayedRow(e),o=this.getDisplayedRow(t);if(!r||!o||r.isDetail||o.isDetail||r.isGroup||o.isGroup)return!1;let i=this.all.indexOf(r),s=this.all.indexOf(o);if(i<0||s<0)return!1;if(s>i){let l=s;for(;l+1<this.all.length&&this.all[l+1].isDetail;)l++;s=l}if(i===s)return!1;this.all.splice(i,1);let a=this.all.indexOf(o);return this.all.splice(s>i?a+1:a,0,r),this.refreshPipeline(),this.core.requestUpdate({data:!0}),!0}getAllNodes(){return this.all}getRootNodes(){return this.roots}getDisplayedRows(){return this.displayed}getDisplayedRowCount(){return this.isBlockDatasource?this.resolveBlockRowCount():this.displayed.length}getDisplayedRow(e){return this.isBlockDatasource?e<0||e>=this.resolveBlockRowCount()?void 0:this.blockNodes.get(e)??this.blockPlaceholder(e):this.displayed[e]}getNodeById(e){return this.nodesById.get(e)}forEachNode(e){this.all.forEach(e)}forEachNodeAfterFilterAndSort(e){let t=0;for(let r of this.pipelineRows)r.isDetail||r.isGroup||e(r,t++)}};var He=class{constructor(e){this.core=e;this.selectedIds=new Set;this.anchorId=null;this.indeterminateIds=new Set}isSelected(e){return this.selectedIds.has(e)}isIndeterminate(e){return this.indeterminateIds.has(e)}isSelectable(e){if(e.loading)return!1;let t=this.findSelectableColumn(e),r=t?.colDef.selectable;if(!t||!r)return!0;try{return r({api:this.core.getApi(),colDef:t.colDef,column:t,node:e,data:e.data,value:this.core.getCellValue(e,t),rowIndex:e.rowIndex})}catch(o){return this.core.reportError(o,"selectable",{rowId:e.id,colId:t?.id}),!1}}findSelectableColumn(e){if(!(e.isGroup||e.isDetail))return this.core.columnModel.getOrderedVisible().find(t=>t.hasCheckbox&&t.colDef.selectable!=null)}getSelectedNodes(){return this.core.rowModel.getAllNodes().filter(e=>this.selectedIds.has(e.id))}getSelectedRows(){return this.getSelectedNodes().filter(e=>e.data!=null).map(e=>e.data)}getSelectedIds(){return[...this.selectedIds]}restoreSelection(e){let t=new Set(e),r=this.core.rowModel.getAllNodes().filter(o=>t.has(o.id)&&!o.isDetail&&!o.isGroup).map(o=>({node:o,selected:!0}));this.applySelection(r,!0)}onRowsRebuilt(e){if(!e)this.selectedIds.clear(),this.anchorId=null;else{let t=new Set(this.core.rowModel.getAllNodes().map(r=>r.id));for(let r of[...this.selectedIds])t.has(r)||this.selectedIds.delete(r);this.anchorId!=null&&!t.has(this.anchorId)&&(this.anchorId=null)}for(let t of this.core.rowModel.getAllNodes())t.selected=this.selectedIds.has(t.id);this.recomputeTriState()}getGroupSelectionState(e){let t=e.leafNodes??[];if(t.length===0)return{all:!1,some:!1};let r=0,o=0;for(let i of t)this.isSelectable(i)&&(r++,this.selectedIds.has(i.id)&&o++);return r===0?{all:!1,some:!1}:{all:o===r,some:o>0}}setGroupSelected(e,t){let r=(e.leafNodes??[]).filter(o=>this.isSelectable(o));r.length!==0&&this.applySelection(r.map(o=>({node:o,selected:t})))}setNodeSelected(e,t,r=!1){this.applySelection([{node:e,selected:t,clearOthers:r}])}selectNodeById(e,t=!0,r=!0){let o=this.core.rowModel.getNodeById(e);o&&this.setNodeSelected(o,t,r)}selectFromCheckbox(e,t){let r=t==="single";this.applySelection([{node:e,selected:r?!0:!e.selected,clearOthers:r}]),this.anchorId=e.id}toggleFromModifier(e,t,r){return!r||!t.ctrlKey&&!t.metaKey?!1:(this.applySelection([{node:e,selected:!e.selected}]),this.anchorId=e.id,!0)}selectAnchorRange(e,t,r){if(!r||!t.shiftKey||this.anchorId==null)return!1;let o=this.core.rowModel.getNodeById(this.anchorId);if(!o||o.rowIndex<0||e.rowIndex<0)return!1;let i=Math.min(o.rowIndex,e.rowIndex),s=Math.max(o.rowIndex,e.rowIndex),a=[];for(let l=i;l<=s;l++){let d=this.core.rowModel.getDisplayedRow(l);d&&!d.isDetail&&!d.isGroup&&this.isSelectable(d)&&a.push({node:d,selected:!0})}return this.applySelection(a),!0}onRowClick(e,t,r){let o=this.core.options.rowSelection;if(o==="none"||!this.isSelectable(e))return;if(r){this.selectFromCheckbox(e,o);return}let i=o==="multiple";this.toggleFromModifier(e,t,i)||this.selectAnchorRange(e,t,i)||(this.applySelection([{node:e,selected:!0,clearOthers:!0}]),this.anchorId=e.id)}selectAll(e=!0){let t=this.core.options.rowSelection;if(t==="none")return;let o=(e?this.core.rowModel.getDisplayedRows():this.core.rowModel.getAllNodes()).filter(i=>!i.isDetail&&!i.isGroup&&this.isSelectable(i));if(o.length!==0){if(t==="single"){this.applySelection([{node:o[0],selected:!0,clearOthers:!0}]);return}this.applySelection(o.map(i=>({node:i,selected:!0})))}}deselectAll(){this.applySelection([],!0)}isSelectAllActive(){let t=this.core.rowModel.getDisplayedRows().filter(r=>!r.isDetail&&!r.isGroup).filter(r=>this.isSelectable(r));if(t.length===0)return!1;if(this.core.rowModel.isInfinite){let r=this.core.rowModel.getDisplayTotalCount();if(t.length<r)return!1}return t.every(r=>this.selectedIds.has(r.id))}isSelectAllIndeterminate(){let t=this.core.rowModel.getDisplayedRows().filter(o=>!o.isDetail&&!o.isGroup).filter(o=>this.isSelectable(o)),r=t.reduce((o,i)=>o+(this.selectedIds.has(i.id)?1:0),0);if(r===0)return!1;if(this.core.rowModel.isInfinite){let o=this.core.rowModel.getDisplayTotalCount();if(t.length<o)return!0}return r>0&&r<t.length}applySelectionPublic(e,t=!1){this.applySelection(e,t)}replaceSelection(e,t,r){!t&&!e.some(o=>o.clearOthers)||(this.selectedIds=t?new Set:new Set(e.filter(o=>o.selected).flatMap(o=>r?this.subtreeIds(o.node):[o.node.id])))}applySelectionChanges(e,t){for(let r of e){if(!this.isSelectable(r.node))continue;let o=t?this.subtreeIds(r.node):[r.node.id];for(let i of o)r.selected?this.selectedIds.add(i):this.selectedIds.delete(i)}}changedSelectionIds(e){let t=new Set;for(let r of new Set([...e,...this.selectedIds]))e.has(r)!==this.selectedIds.has(r)&&t.add(r);return t}synchronizeNodeSelection(e,t,r){let o=[],i=new Set([...e,...r,...this.indeterminateIds]);for(let s of this.core.rowModel.getAllNodes()){let a=this.selectedIds.has(s.id);s.selected=a,(i.has(s.id)||t.get(s.id)!==a)&&s.rowIndex>=0&&o.push(s.rowIndex)}return o}applySelection(e,t=!1){let r=new Set(this.selectedIds),o=this.core.rowModel.isTree&&this.core.options.autoCheckedChildren;this.replaceSelection(e,t,o),this.applySelectionChanges(e,o);let i=this.changedSelectionIds(r),s=new Map;for(let d of this.core.rowModel.getAllNodes())s.set(d.id,d.selected);let a=new Set(this.indeterminateIds);this.recomputeTriState();let l=this.synchronizeNodeSelection(i,s,a);i.size>0&&(this.core.bodyRenderer.refreshRows(l),this.core.headerRenderer.refreshSelectAllCheckbox(),this.core.emit("selectionChanged",{selectedNodes:this.getSelectedNodes(),selectedRows:this.getSelectedRows()}))}subtreeIds(e){let t=[e.id],r=o=>{for(let i of this.core.rowModel.getChildrenIds(o))t.push(i),r(i)};return r(e.id),t}recomputeTriState(){if(this.indeterminateIds.clear(),!this.core.rowModel.isTree)return;let e=t=>{let r=this.core.rowModel.getChildrenIds(t);if(r.length===0)return{all:this.selectedIds.has(t),some:this.selectedIds.has(t)};let o=!0,i=!1;for(let s of r){let a=e(s);a.all?i=!0:(a.some&&(i=!0),o=!1)}return i&&!o&&this.indeterminateIds.add(t),o?this.selectedIds.add(t):this.selectedIds.delete(t),{all:o,some:i}};for(let t of this.core.rowModel.getRootNodes())e(t.id);for(let t of this.core.rowModel.getAllNodes())t.selected=this.selectedIds.has(t.id)}};var Be=class{constructor(e){this.core=e;this.active=null;this.rafId=0;this.pendingWidth=0;this.onMove=e=>{let t=this.matchActivePointer(e);t&&(this.pendingWidth=this.widthFromPointer(t,e.clientX),t.didResize||(t.didResize=Math.abs(this.pendingWidth-t.startWidth)>=.5),!this.rafId&&(this.rafId=requestAnimationFrame(()=>{this.rafId=0,this.applyPendingWidth()})))};this.onUp=e=>{let t=this.matchActivePointer(e);t&&(this.pendingWidth=this.widthFromPointer(t,e.clientX),t.didResize||(t.didResize=Math.abs(this.pendingWidth-t.startWidth)>=.5),this.finishResize(t))};this.onCancel=e=>{this.matchActivePointer(e)&&this.cancelResize()};this.onLostPointerCapture=()=>{this.cancelResize()}}startResize(e,t){if(!this.core.options.enableColumnResize||!t.resizable||e.isPrimary===!1)return;this.cancelResize();let r=e.currentTarget,o=t.currentWidth;this.pendingWidth=o,this.active={column:t,didResize:!1,handle:r,pointerId:e.pointerId,startFlex:t.flex,startManualWidth:t.manualWidth,startWidth:o,startX:e.clientX},window.addEventListener("pointermove",this.onMove),window.addEventListener("pointerup",this.onUp,!0),window.addEventListener("pointercancel",this.onCancel,!0),r.addEventListener("lostpointercapture",this.onLostPointerCapture);try{r.setPointerCapture?.(e.pointerId)}catch{}this.core.skeleton.root.classList.add("mach-root--resizing")}cancelResize(e=!0){let t=this.active;t&&(this.active=null,this.clearFrame(),this.removeListeners(t),e&&(t.column.manualWidth=t.startManualWidth,t.column.flex=t.startFlex,this.core.relayoutColumns()),this.core.skeleton.root.classList.remove("mach-root--resizing"))}finishResize(e){this.active=null,this.clearFrame(),e.didResize&&(Math.abs(this.pendingWidth-e.startWidth)<.5?(e.column.manualWidth=e.startManualWidth,e.column.flex=e.startFlex):this.core.columnModel.setColumnWidth(e.column,this.pendingWidth),this.core.relayoutColumns()),this.removeListeners(e);try{e.handle.releasePointerCapture?.(e.pointerId)}catch{}this.core.skeleton.root.classList.remove("mach-root--resizing"),e.didResize&&this.core.commitColumnWidths([e.column])}applyPendingWidth(){let e=this.active;!e||!this.core.columnModel.setColumnWidth(e.column,this.pendingWidth)||(this.core.relayoutColumns(),this.core.emitColumnResize(e.column,!1))}widthFromPointer(e,t){let r=Number.isFinite(t)?t:e.startX;return e.startWidth+r-e.startX}matchActivePointer(e){let t=this.active;return t&&e.pointerId===t.pointerId?t:null}clearFrame(){this.rafId&&cancelAnimationFrame(this.rafId),this.rafId=0}removeListeners(e){window.removeEventListener("pointermove",this.onMove),window.removeEventListener("pointerup",this.onUp,!0),window.removeEventListener("pointercancel",this.onCancel,!0),e.handle.removeEventListener("lostpointercapture",this.onLostPointerCapture)}destroy(){this.cancelResize(!1),this.clearFrame(),this.core.skeleton.root?.classList.remove("mach-root--resizing")}};function f(n,e,t){let r=document.createElement(n);if(e&&(r.className=e),t)for(let o of Object.keys(t))r.setAttribute(o,t[o]);return r}var di=["--mach-font-family","--mach-font-size","--mach-font-size-sm","--mach-header-font-weight","--mach-cell-padding","--mach-header-h","--mach-primary","--mach-primary-weak","--mach-success","--mach-warning","--mach-danger","--mach-info","--mach-border-color","--mach-border-width","--mach-header-bg","--mach-header-fg","--mach-body-bg","--mach-body-fg","--mach-row-hover-bg","--mach-radius-sm","--mach-radius","--mach-radius-lg","--mach-shadow-sm","--mach-shadow","--mach-transition","--mach-z-popup","--mach-z-menu"];function A(n,e){if(n.classList.add("mach-portal"),!e)return;let t=window.getComputedStyle(e);for(let r of di){let o=t.getPropertyValue(r).trim();o&&n.style.setProperty(r,o)}n.style.colorScheme=t.colorScheme}function x(n,e,t){return n<e?e:n>t?t:n}var Br=0;function Vr(n="rg"){return Br++,`${n}-${Br}`}var zr='<svg viewBox="0 0 16 16" width="12" height="12" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M2 3.5h12L9.5 8v4.5L6.5 14V8L2 3.5z"/></svg>',Wr='<svg viewBox="0 0 16 16" width="10" height="10" fill="currentColor"><path d="M8 3l4 5H4l4-5z"/></svg>',_r='<svg viewBox="0 0 16 16" width="10" height="10" fill="currentColor"><path d="M8 13l4-5H4l4 5z"/></svg>',Kr='<svg viewBox="0 0 16 16" width="12" height="12" fill="none" stroke="currentColor" stroke-width="1.35" stroke-linecap="round"><path d="M2 4h3m3 0h6M2 8h7m3 0h2M2 12h1m3 0h8"/><circle cx="6.5" cy="4" r="1.35"/><circle cx="10.5" cy="8" r="1.35"/><circle cx="4.5" cy="12" r="1.35"/></svg>';var $r=6,Ve=class{constructor(e){this.core=e;this.pending=null;this.dragging=null;this.suppressClick=!1;this.moveRaf=0;this.pendingPoint=null;this.onMove=e=>{if(this.dragging){this.scheduleIndicator(e);return}let t=this.pending;t&&(Math.abs(e.clientX-t.startX)<$r&&Math.abs(e.clientY-t.startY)<$r||this.startDrag(e))};this.onUp=e=>{this.pending=null,e.type!=="pointercancel"&&this.dragging&&this.applyIndicator(e.clientX,e.clientY),this.cleanup();let t=this.clearDrag();t&&e.type!=="pointercancel"&&t.targetIndex>=0&&this.core.moveColumn(t.column.id,t.targetIndex)}}onPointerDown(e,t){e.button===0&&t.movable&&(this.pending={column:t,startX:e.clientX,startY:e.clientY},window.addEventListener("pointermove",this.onMove),window.addEventListener("pointerup",this.onUp),window.addEventListener("pointercancel",this.onUp))}didDrag(){let e=this.suppressClick;return this.suppressClick=!1,e}startDrag(e){let t=this.pending;if(!t)return;let r=this.findHeaderCell(t.column);if(!r||!r.parentElement){this.cleanup();return}this.suppressClick=!0;let o=f("div","mach-drop-indicator"),i=f("div","mach-column-drag-ghost");i.textContent=t.column.colDef.headerName??t.column.colDef.field??t.column.id,i.ariaHidden="true",A(i,this.core.skeleton.root),document.body.appendChild(i),r.parentElement.appendChild(o),r.classList.add("mach-header-cell--dragging"),this.core.skeleton.root.classList.add("mach-root--dragging");let s=this.core.bodyRenderer.paneForColumn(t.column),a=this.core.skeleton.headerRowContainers[s],l=this.core.columnModel.getPaneColumns(s),d=new Float64Array(l.length+1),c=new Float64Array(l.length);for(let h=0;h<l.length;h++){let p=l[h].currentWidth;c[h]=d[h]+p/2,d[h+1]=d[h]+p}let u=i.getBoundingClientRect();this.dragging={column:t.column,cellEl:r,ghost:i,indicator:o,targetIndex:-1,pane:s,containerLeft:a.getBoundingClientRect().left,startScrollLeft:this.core.skeleton.bodyViewports.center.scrollLeft,fromIndex:l.indexOf(t.column),midpoints:c,offsets:d,ghostWidth:u.width,ghostHeight:u.height},this.applyIndicator(e.clientX,e.clientY)}findHeaderCell(e){let t=this.core.bodyRenderer.paneForColumn(e);return this.core.skeleton.headerRowContainers[t].querySelector(`.mach-header-cell[data-col-id="${ci(e.id)}"]`)}scheduleIndicator(e){this.pendingPoint={clientX:e.clientX,clientY:e.clientY},!this.moveRaf&&(this.moveRaf=requestAnimationFrame(()=>{this.moveRaf=0;let t=this.pendingPoint;this.pendingPoint=null,t&&this.applyIndicator(t.clientX,t.clientY)}))}applyIndicator(e,t){let r=this.dragging;if(!r)return;let o=x(e+12,8,window.innerWidth-r.ghostWidth-8),i=x(t+12,8,window.innerHeight-r.ghostHeight-8);r.ghost.style.transform=`translate3d(${o}px, ${i}px, 0)`;let s=r.pane==="center"?this.core.skeleton.bodyViewports.center.scrollLeft-r.startScrollLeft:0,a=e-(r.containerLeft-s),l=r.midpoints.length;for(let d=0;d<r.midpoints.length;d++)if(a<r.midpoints[d]){l=d;break}r.targetIndex=l>r.fromIndex?l-1:l,r.indicator.style.transform=`translate3d(${r.offsets[l]}px, 0, 0)`}clearDrag(){let e=this.dragging;return e?(this.dragging=null,e.cellEl.classList.remove("mach-header-cell--dragging"),e.ghost.remove(),e.indicator.remove(),this.core.skeleton.root.classList.remove("mach-root--dragging"),e):null}cleanup(){window.removeEventListener("pointermove",this.onMove),window.removeEventListener("pointerup",this.onUp),window.removeEventListener("pointercancel",this.onUp),this.moveRaf&&cancelAnimationFrame(this.moveRaf),this.moveRaf=0,this.pendingPoint=null}destroy(){this.cleanup(),this.clearDrag(),this.pending=null}};function ci(n){return typeof CSS<"u"&&typeof CSS.escape=="function"?CSS.escape(n):n.replace(/[^a-zA-Z0-9_-]/g,"\\$&")}function Ur(n,e){let t=n==null?"":String(n);return t.includes(e)||t.includes('"')||t.includes(`
1
+ "use strict";var Ht=Object.defineProperty;var mn=Object.getOwnPropertyDescriptor;var gn=Object.getOwnPropertyNames;var yn=Object.prototype.hasOwnProperty;var vn=(n,e)=>{for(var t in e)Ht(n,t,{get:e[t],enumerable:!0})},wn=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of gn(e))!yn.call(n,o)&&o!==t&&Ht(n,o,{get:()=>e[o],enumerable:!(r=mn(e,o))||r.enumerable});return n};var bn=n=>wn(Ht({},"__esModule",{value:!0}),n);var $s={};vn($s,{BUILTIN_AGG_FUNCS:()=>$t,DEFAULT_LOCALE:()=>D,EVENT_TYPES:()=>q,LOCALE_EN:()=>to,actionsColumn:()=>Qo,advancedFilterCondition:()=>xr,advancedFilterGroup:()=>Mr,applyGridViewState:()=>Rr,buildColDefsFromSchema:()=>Uo,captureGridViewState:()=>Tr,clearGridState:()=>Ao,createActionButtonsRenderer:()=>he,createAggResolver:()=>Ge,createBusinessColumnTypes:()=>an,createCachedDictionary:()=>ln,createColumnHelper:()=>Zo,createDictionaryRenderer:()=>dn,createEnterprisePreset:()=>tn,createGrid:()=>Ko,createGridViewManager:()=>pn,createLocalGridStateStore:()=>lr,createLocalGridViewStore:()=>Sr,createMachTableCommands:()=>qo,createMachTablePreset:()=>Cr,createProgressBarRenderer:()=>pr,createRowActionsRenderer:()=>It,createStatusTagRenderer:()=>hr,defineColumns:()=>en,defineGridOptions:()=>on,defineMachTableConfig:()=>nn,defineMachTablePreset:()=>rn,describeFilter:()=>gt,downloadFile:()=>pt,dragColumn:()=>Xo,escapeHtml:()=>te,formatText:()=>H,formatTwo:()=>tt,getByPath:()=>$,indexColumn:()=>Yo,isColDefGroup:()=>se,isSafePath:()=>oe,linkRenderer:()=>fr,loadGridState:()=>xt,matchLocaleKey:()=>et,normalizeAdvancedFilterModel:()=>V,normalizeColumnFilter:()=>xe,normalizeFilterModel:()=>ne,normalizeGridState:()=>z,normalizeGridViewState:()=>Ot,normalizeSavedGridView:()=>pe,parseCsv:()=>We,parseDelimited:()=>_e,parseTsv:()=>ze,resolveGridFeatures:()=>Pt,resolveSaveConflict:()=>ho,resolveTagVariant:()=>ur,rowActionsColumn:()=>Jo,sanitizeFormulaCell:()=>ge,saveGridState:()=>Et,selectionColumn:()=>jo,setByPath:()=>J,toTsv:()=>le,validateGridOptions:()=>Lt,version:()=>Ks});module.exports=bn($s);var De="0.29.2";var Ee=class{constructor(e){this.onListenerError=e;this.listeners=new Map}on(e,t){let r=this.listeners.get(e);return r||(r=new Set,this.listeners.set(e,r)),r.add(t),()=>{r.delete(t)}}once(e,t){let r=this.on(e,o=>{r(),t(o)});return r}off(e,t){let r=this.listeners.get(e);r&&(r.delete(t),r.size===0&&this.listeners.delete(e))}emit(e,t){let r=this.listeners.get(e);if(r)for(let o of[...r])try{o(t)}catch(i){console.error(`[mach-table] error in "${e}" listener`,i),this.onListenerError?.(i,e)}}clear(){this.listeners.clear()}};var Tn=new Set(["__proto__","prototype","constructor"]);function oe(n){return typeof n!="string"||n.length===0?!1:n.split(".").every(t=>t.length>0&&!Tn.has(t))}function $(n,e){if(n==null||!oe(e))return;if(e.indexOf(".")<0)return n[e];let r=n,o=0;for(;o<e.length;){if(r==null)return;let i=e.indexOf(".",o);if(i<0){r=r[e.slice(o)];break}r=r[e.slice(o,i)],o=i+1}return r}function J(n,e,t){if(n==null||!oe(e))return!1;let r=e.split("."),o=n;for(let i=0;i<r.length-1;i++){if(typeof o!="object"&&typeof o!="function"||o===null)return!1;o[r[i]]==null&&(o[r[i]]={}),o=o[r[i]]}return typeof o!="object"&&typeof o!="function"||o===null?!1:(o[r[r.length-1]]=t,!0)}var Rn=new Set(["contains","notContains","equals","notEquals","startsWith","endsWith","blank","notBlank"]),Sn=new Set(["equals","notEquals","lessThan","lessThanOrEqual","greaterThan","greaterThanOrEqual","inRange","blank","notBlank"]),Dn=new Set(["equals","notEquals","lessThan","greaterThan","inRange","blank","notBlank"]);function En(n){return n==null||typeof n=="string"||typeof n=="number"&&Number.isFinite(n)}function xn(n){return n==="text"?Rn:n==="number"?Sn:Dn}function Mn(n,e,t){if(n==null||typeof n!="object")return null;let r=n;return typeof r.match!="string"||!t.has(r.match)?null:{match:r.match,...kn(r,e)}}function kn(n,e){let t=e==="number"?Dr(n.value):typeof n.value=="string"?n.value:void 0,r=e==="number"?Dr(n.value2):typeof n.value2=="string"?n.value2:void 0;return{...t!==void 0?{value:t}:{},...r!==void 0?{value2:r}:{}}}function Dr(n){return typeof n=="number"&&Number.isFinite(n)?n:void 0}function In(n,e){let t=[],r=xn(e);for(let o of n.slice(0,20)){let i=Mn(o,e,r);i&&t.push(i)}return t}function xe(n){if(n==null||typeof n!="object")return null;let e=n;return e.type==="set"?Array.isArray(e.values)?{type:"set",values:e.values.filter(En).slice(0,2e3)}:null:e.type!=="text"&&e.type!=="number"&&e.type!=="date"||!Array.isArray(e.conditions)?null:{type:e.type,...e.operator==="or"||e.operator==="and"?{operator:e.operator}:{},conditions:In(e.conditions,e.type)}}function Ln(n,e){if(typeof n.colId!="string"||!n.colId.trim())return null;let t=n.colId.trim();if(e.validColumnIds?.has(t)===!1)return null;let r=xe(n.filter);return r?{kind:"condition",colId:t,filter:r}:null}function An(n,e,t){if(!Array.isArray(n.children))return null;let r=[];for(let o of n.children){let i=Er(o,e+1,t);i&&r.push(i)}return r.length===0?null:{kind:"group",operator:n.operator==="or"?"or":"and",children:r,...n.not===!0?{not:!0}:{}}}function Pn(n,e,t){return e<=16&&t.nodes<512&&n!=null&&typeof n=="object"}function Er(n,e,t){if(!Pn(n,e,t)||t.ancestors.has(n))return null;t.ancestors.add(n),t.nodes++;let r=n,o=r.kind==="condition"?Ln(r,t):r.kind==="group"?An(r,e,t):null;return t.ancestors.delete(n),o}function V(n,e){if(n==null||typeof n!="object")return null;let t=n;if(t.version!==1||t.root==null)return null;let r=Er(t.root,0,{ancestors:new WeakSet,nodes:0,validColumnIds:e});return r?{version:1,root:r}:null}function xr(n,e){return{kind:"condition",colId:n,filter:e}}function ne(n,e){if(n==null||typeof n!="object"||Array.isArray(n))return{};let t={};for(let[r,o]of Object.entries(n).slice(0,2e3)){let i=r.trim();if(!i||e?.has(i)===!1)continue;let s=xe(o);s&&(t[i]=s)}return t}function Mr(n,e,t={}){return{kind:"group",operator:n,children:e,...t.not?{not:!0}:{}}}var Bt={align:"center",sortable:!0,resizable:!0,movable:!0,filter:!1,minWidth:80},fe={compact:{rowHeight:30,headerHeight:34,fontSize:12,cellPadding:6},normal:{rowHeight:36,headerHeight:40,fontSize:13,cellPadding:9},large:{rowHeight:44,headerHeight:48,fontSize:14,cellPadding:12}};function S(n,e,t,r=!1){return typeof n!="number"||!Number.isFinite(n)||n<t?e:r?Math.floor(n):n}function Gn(n){return n&&Object.prototype.hasOwnProperty.call(fe,n)?n:"normal"}function Fn(n){return n.theme==="light"||n.theme==="dark"||n.theme==="auto"?n.theme:"light"}function Nn(n,e){let t=typeof n.pagination=="object"&&Array.isArray(n.pagination.pageSizeOptions)?n.pagination.pageSizeOptions:void 0,r=t?[...new Set(t.map(o=>S(o,0,1,!0)).filter(Boolean))]:[10,20,50,100];return r.includes(e)||r.push(e),r.sort((o,i)=>o-i)}function Vt(n,e){let t=typeof n=="function"?n(e):$(e,n);return t==null?"":String(t)}function On(n){let e=n.rowKey,t=e?({data:r})=>Vt(e,r):void 0;return{...t?{resolveRowId:t}:{},...e?{rowKey:e}:{}}}function Hn(n,e){let t=fe[e];return{columnDefs:Array.isArray(n.columnDefs)?n.columnDefs:[],rowData:Array.isArray(n.rowData)?n.rowData:[],defaultColDef:{...Bt,...n.defaultColDef??{}},columnTypes:n.columnTypes??{},...On(n),rowHeight:S(n.rowHeight,t.rowHeight,1),headerHeight:S(n.headerHeight,t.headerHeight,1),rowBuffer:S(n.rowBuffer,8,0,!0),columnLayout:n.columnLayout==="fit"?"fit":"normal",enableColumnResize:n.enableColumnResize===!0,domLayout:n.domLayout==="autoHeight"?"autoHeight":"normal",rowSelection:n.rowSelection==="single"||n.rowSelection==="multiple"?n.rowSelection:"none",multiSort:n.multiSort??!0,size:e,pinnedTopRowData:Array.isArray(n.pinnedTopRowData)?n.pinnedTopRowData:[],pinnedBottomRowData:Array.isArray(n.pinnedBottomRowData)?n.pinnedBottomRowData:[]}}function Bn(n){return{stripedRows:n.stripedRows??!1,showCellBorders:n.showCellBorders??!1,theme:Fn(n),quickFilterText:n.quickFilterText??null,suppressCellFocus:n.suppressCellFocus??!1,suppressRowHoverHighlight:n.suppressRowHoverHighlight??!1,suppressNoRowsOverlay:n.suppressNoRowsOverlay??!1,suppressHeaderFocus:n.suppressHeaderFocus??!1,loading:n.loading??!1,error:n.error??null,className:n.className??""}}function Vn(n){return{editType:n.editType==="fullRow"?"fullRow":"cell",editableIndicator:n.editableIndicator==="always"||n.editableIndicator==="none"?n.editableIndicator:"hover",singleClickEdit:n.singleClickEdit??!1,manualSorting:n.manualSorting??!1,manualFiltering:n.manualFiltering??!1,showSummary:n.showSummary??!1,indexOffset:n.indexOffset??0,applyRowDrag:n.applyRowDrag??!0,undoStackSize:S(n.undoStackSize,100,0,!0),asyncTransactionWaitMillis:S(n.asyncTransactionWaitMillis,16,0,!0)}}function zn(n){return{masterDetail:n.masterDetail??!1,detailRowHeight:S(n.detailRowHeight,240,1),detailToggleColumn:n.detailToggleColumn??!0,treeData:n.treeData??!1,childrenKey:n.childrenKey??"children",autoCheckedChildren:n.autoCheckedChildren??!0,defaultExpandAll:n.defaultExpandAll??!1}}function Wn(n){let e=typeof n.pagination=="object"?n.pagination:void 0,t=S(e?.pageSize,20,1,!0);return{paginationEnabled:n.pagination!==!1&&n.datasource==null,paginationMode:e?.mode==="server"?"server":"client",paginationPage:S(e?.page,1,1,!0),paginationTotal:S(e?.total,0,0,!0),paginationPageSize:t,paginationPageSizeOptions:Nn(n,t),paginationShowTotal:e?e.showTotal!==!1:!0,paginationShowSizeSelector:e?e.showPageSizeSelector!==!1:!0}}function _n(n){return{watermarkEnabled:n.watermark!=null&&n.watermark!==!1,watermarkConfig:n.watermark==null||n.watermark===!1?null:n.watermark===!0?{text:"MachTable"}:n.watermark}}function Kn(n){return{columnMenu:n.columnMenu??!1,advancedFilterModel:V(n.advancedFilterModel),...$n(n),locale:n.locale??{},suppressWarnings:n.suppressWarnings??!1,enableRangeSelection:n.enableRangeSelection??!1,suppressClipboard:n.suppressClipboard??!1,contextMenu:n.contextMenu??!1,tooltipShowDelay:S(n.tooltipShowDelay,600,0),flashCells:n.flashCells??!0,fillHandle:n.fillHandle??!0,statusBarEnabled:n.statusBar===!0||typeof n.statusBar=="object"&&n.statusBar!=null,statusBarPanels:typeof n.statusBar=="object"&&n.statusBar?.panels?n.statusBar.panels:["rowCount","selectedRowCount","rangeAggregate"]}}function $n(n){let e=n.persistence;return!e||typeof e.key!="string"||!e.key.trim()?{persistence:null}:{persistence:{key:e.key.trim(),debounceMs:S(e.debounceMs,160,0,!0),...e.sections?{sections:[...new Set(e.sections)]}:{},...e.store?{store:e.store}:{}}}}function Un(n){return{datasourceMode:n.datasourceMode==="block"?"block":"sequential",blockSize:S(n.blockSize,100,1,!0),infiniteBufferRows:S(n.infiniteBufferRows,40,0,!0),maxBlocksInCache:S(n.maxBlocksInCache,12,1,!0),datasourceMaxConcurrentRequests:S(n.datasourceMaxConcurrentRequests,4,1,!0),blockPrefetch:S(n.blockPrefetch,1,0,!0),datasourceRowCount:n.datasourceRowCount==null?null:S(n.datasourceRowCount,0,0,!0),dataProcessorMinRows:S(n.dataProcessorMinRows,5e3,1,!0),datasourceRetryCount:S(n.datasourceRetryCount,2,0,!0),datasourceRetryDelay:S(n.datasourceRetryDelay,300,0,!0),datasourceRetryJitter:Math.min(1,S(n.datasourceRetryJitter,.15,0))}}function qn(n){return{ariaLabel:n.ariaLabel??"MachTable data grid",ariaLabelledBy:n.ariaLabelledBy??"",ariaDescribedBy:n.ariaDescribedBy??"",overlayNoRowsTemplate:n.overlayNoRowsTemplate??"",overlayLoadingTemplate:n.overlayLoadingTemplate??"",overlayErrorTemplate:n.overlayErrorTemplate??"",allowUnsafeOverlayHtml:n.allowUnsafeOverlayHtml??!1}}var jn=["detailRowRenderer","isRowExpandable","aggFuncs","components","actionPolicy","summaryMethod","datasource","getRowHeight","tooltipComponent","getContextMenuItems","initialState","rowEditValidator","isTreeRowExpandable","loadTreeChildren","dataProcessor"];function Yn(n,e){for(let t of jn)n[t]&&Object.assign(e,{[t]:n[t]})}function Xn(n,e){for(let t of Object.keys(n))t.startsWith("on")&&typeof n[t]=="function"&&Object.assign(e,{[t]:n[t]})}function kr(n){let e=Gn(n.size),t={...Hn(n,e),...Bn(n),...Vn(n),...zn(n),...Wn(n),..._n(n),...Kn(n),...Un(n),...qn(n),features:Array.isArray(n.features)?n.features:[]};return Yn(n,t),Xn(n,t),t}function Ir(n){return Array.isArray(n)?n.filter(e=>typeof e=="string"&&e.length>0):typeof n=="string"&&n.length>0?[n]:[]}function ie(n,e){return Ir(n.type).includes(e)}function Lr(n,e,t={}){let r={};for(let o of Ir(n.type)){let i=t[o];i&&Object.assign(r,i)}return{...e,...r,...n}}var _=class{constructor(e,t){this.manualWidth=null;this.flex=null;this.currentWidth=0;this.parentGroup=null;this.level=0;this.isDetailToggle=!1;this.id=e,this.colDef=t,this.hide=t.hide??!1;let r=t.pinned;this.pinned=r===!0?"left":r===!1||r==null?null:r,this.resetWidth()}get sortable(){return this.colDef.sortable!==!1}get resizable(){return this.colDef.resizable!==!1}get movable(){return this.colDef.movable!==!1}get filterable(){return this.colDef.filter!=null&&this.colDef.filter!==!1}get filterType(){let e=this.colDef.filter;return e===!0?"text":e??"text"}get hasCheckbox(){return this.colDef.checkboxSelection===!0}resetWidth(){this.manualWidth=null,this.flex=typeof this.colDef.flex=="number"&&Number.isFinite(this.colDef.flex)&&this.colDef.flex>0?this.colDef.flex:null}};var Z=class n{constructor(e,t){this.parent=null;this.children=[];this.groupId=e,this.def=t}get headerName(){return this.def.headerName??this.def.groupId??""}getLeafColumns(e=[]){for(let t of this.children)t instanceof n?t.getLeafColumns(e):e.push(t);return e}};function se(n){return Array.isArray(n.children)}function Me(n,e){return typeof n=="number"&&Number.isFinite(n)&&n>0?n:e}function Ar(n){let e=Me(n.minWidth,80);return{min:e,max:Math.max(e,Me(n.maxWidth,Number.MAX_SAFE_INTEGER))}}function N(n,e){let{min:t,max:r}=Ar(e),o=Me(n,Me(e.width,150));return Math.max(t,Math.min(r,o))}function Pr(n,e){let t=n.map(s=>N(s.width??150,s)),r=[],o=0;n.forEach((s,a)=>{let l=s.flex??0;l>0&&(r.push(a),o+=l)});let i=0;for(let s of t)i+=s;if(o>0&&e>i){let s=e-i;for(let a=0;a<4&&s>.5&&r.length>0;a++){let l=[],d=0;for(let p of r){let m=n[p].flex??0;l.push(p),d+=m}let c=[];for(let p=0;p<l.length;p++){let m=l[p],y=n[m].flex??0,v=s*y/d,g=t[m];t[m]=N(g+v,n[m]),c.push(t[m]-g)}let u=0;for(let p of c)u+=p;s-=u;let h=l.filter((p,m)=>c[m]>.001);if(h.length===l.length)break;r.length=0;for(let p of h)r.push(p)}}return t}function Qn(n,e,t){let r=new Set(n.map((i,s)=>s)),o=t;for(let i=0;i<n.length+1&&r.size>0;i++){let s=0;for(let l of r)s+=Math.max(1,e[l]);if(s<=0)break;let a=!1;for(let l of[...r]){let d=o*(Math.max(1,e[l])/s),c=N(d,n[l]),{min:u,max:h}=Ar(n[l]);(d<u||d>h)&&(e[l]=c,o-=c,r.delete(l),a=!0)}if(!a){for(let l of r)e[l]=N(o*(Math.max(1,e[l])/s),n[l]);break}o=Math.max(0,o)}}function Jn(n,e,t){let r=t-e.reduce((o,i)=>o+i,0);if(!(Math.abs(r)<=.01))for(let o=e.length-1;o>=0;o--){let i=N(e[o]+r,n[o]);if(Math.abs(i-e[o])>.01){e[o]=i;return}}}function Gr(n,e){let t=n.map(r=>N(r.width??150,r));return!Number.isFinite(e)||e<=0||n.length===0||(Qn(n,t,e),Jn(n,t,e)),t}var zt="__rg_detail_toggle__";function ke(n){return typeof n=="number"&&Number.isFinite(n)&&n>0}var Ie=class{constructor(e){this.core=e;this.columns=[];this.rootChildren=[];this.left=[];this.center=[];this.right=[];this.sortModel=[];this.defs=[];this.headerDepth=1;this.flatIndexById=new Map;this.viewportWidth=0}setColumnDefs(e){this.defs=e?[...e]:[];let t=new Map(this.columns.map(s=>[s.id,s])),r=this.core.options.defaultColDef,o=new Set(this.core.options.masterDetail&&this.core.options.detailToggleColumn?[zt]:[]),i=(s,a,l)=>s.map((d,c)=>{if(se(d)){let g=d.groupId??d.headerName??`group_${c}_${l}`,b=new Z(g,d);return b.parent=a,b.children=i(d.children,b,l+1),b}let u=d,h=u.colId??u.field??`col_${c}`,p=h,m=2;for(;o.has(p);)p=`${h}_${m++}`;o.add(p);let y=new _(p,Lr(u,r,this.core.options.columnTypes));y.parentGroup=a,y.level=l;let v=t.get(p);return v&&(y.manualWidth=v.manualWidth,y.flex=v.flex,y.hide=v.hide,y.pinned=v.pinned),y});if(this.rootChildren=i(this.defs,null,0),this.core.options.masterDetail&&this.core.options.detailToggleColumn){let s=new _(zt,{colId:zt,headerName:"",width:38,pinned:"left",sortable:!1,resizable:!1,movable:!1,filter:!1});s.isDetailToggle=!0,this.rootChildren.unshift(s)}if(this.columns=this.collectLeaves(this.rootChildren),this.headerDepth=this.columns.reduce((s,a)=>Math.max(s,a.level+1),1),this.sortModel=this.sortModel.filter(s=>this.columns.some(a=>a.id===s.colId)),this.sortModel.length===0){let s=[];for(let a of this.columns)a.colDef.initialSort&&s.push({colId:a.id,direction:a.colDef.initialSort});this.sortModel=s}this.regroup()}collectLeaves(e,t=[]){for(let r of e)r instanceof Z?this.collectLeaves(r.children,t):t.push(r);return t}regroup(){let e=this.columns.filter(t=>!t.hide);this.left=e.filter(t=>t.pinned==="left"),this.right=e.filter(t=>t.pinned==="right"),this.center=e.filter(t=>t.pinned===null),this.flatIndexById.clear(),this.getOrderedVisible().forEach((t,r)=>this.flatIndexById.set(t.id,r))}getFlatIndex(e){return this.flatIndexById.get(e)??-1}getColumns(){return this.columns}getColumnDefs(){return this.defs}getRootChildren(){return this.rootChildren}getHeaderDepth(){return this.headerDepth}getColumn(e){return this.columns.find(t=>t.id===e)}getPaneColumns(e){return e==="left"?this.left:e==="right"?this.right:this.center}getOrderedVisible(){return[...this.left,...this.center,...this.right]}getRowGroupColumns(){return this.getOrderedVisible().filter(e=>e.colDef.rowGroup===!0)}getAggColumns(){return this.getOrderedVisible().filter(e=>e.colDef.aggFunc!=null&&e.colDef.rowGroup!==!0)}hasColSpan(){return this.center.some(e=>e.colDef.colSpan!=null)}getGroupLabelColumn(){let e=this.getOrderedVisible();return this.center.find(t=>!t.hasCheckbox&&!t.isDetailToggle)??e.find(t=>!t.hasCheckbox&&!t.isDetailToggle)??e[0]}paneOf(e){return e.pinned==="left"?"left":e.pinned==="right"?"right":"center"}computeLayout(e){this.viewportWidth=e;let t=0;for(let c of[...this.left,...this.right])c.currentWidth=N(c.manualWidth??c.colDef.width??150,this.widthInputOf(c)),t+=c.currentWidth;let r=Math.max(0,e-t),o=[],i=[];for(let c of this.center)(c.colDef.suppressSizeToFit||c.manualWidth!=null?i:o).push(c);let s=0;for(let c of i)c.currentWidth=N(c.manualWidth??c.colDef.width??150,this.widthInputOf(c)),s+=c.currentWidth;let a=o.map(c=>this.widthInputOf(c)),l=Math.max(0,r-s),d=this.core.options.columnLayout==="fit"?Gr(a,l):Pr(a,l);o.forEach((c,u)=>{c.currentWidth=d[u]})}widthInputOf(e){let t=e.colDef;return e.manualWidth!=null?{width:e.manualWidth,minWidth:t.minWidth,maxWidth:t.maxWidth}:{width:t.width,minWidth:t.minWidth,maxWidth:t.maxWidth,...e.flex!=null?{flex:e.flex}:{}}}setColumnWidth(e,t){return ke(t)?(e.manualWidth=N(t,this.widthInputOf(e)),e.flex=null,!0):!1}setColumnVisibility(e,t){let r=this.getColumn(e);!r||r.hide===!t||(r.hide=!t,this.regroup())}moveColumn(e,t){let r=this.getColumn(e);if(!r)return!1;let o=this.paneOf(r),i=u=>r.parentGroup?!0:this.paneOf(u)===o,s=r.parentGroup?r.parentGroup.children:this.rootChildren,a=s.filter(u=>u instanceof _&&!u.hide&&i(u)),l=a.indexOf(r);if(l<0)return!1;a.splice(l,1);let d=Math.max(0,Math.min(t,a.length));a.splice(d,0,r);let c=[];return s.forEach((u,h)=>{u instanceof _&&!u.hide&&i(u)&&c.push(h)}),c.length!==a.length?!1:(c.forEach((u,h)=>{s[u]=a[h]}),this.columns=this.collectLeaves(this.rootChildren),this.regroup(),!0)}setColumnPinned(e,t){let r=this.getColumn(e);!r||!r.movable||(r.pinned=t,this.regroup())}getColumnState(){return this.columns.map(e=>({colId:e.id,hide:e.hide,width:e.manualWidth??e.currentWidth,flex:e.flex,widthMode:e.manualWidth==null?"auto":"manual",pinned:e.pinned}))}applyColumnState(e){let t=new Map(e.map(r=>[r.colId,r]));for(let r of this.columns){let o=t.get(r.id);o&&this.applyColumnViewState(r,o)}this.applyStateOrder(e),this.regroup()}applyColumnViewState(e,t){typeof t.hide=="boolean"&&(e.hide=t.hide),t.widthMode==="auto"?(e.resetWidth(),ke(t.flex)&&(e.flex=t.flex)):ke(t.flex)?(e.flex=t.flex,e.manualWidth=null):ke(t.width)&&(e.manualWidth=N(t.width,this.widthInputOf(e)),e.flex=null),e.movable&&(t.pinned==="left"||t.pinned==="right"||t.pinned===null)&&(e.pinned=t.pinned)}applyStateOrder(e){let t=new Map;e.forEach((o,i)=>t.set(o.colId,i));let r=o=>o.pinned==="left"?"left":o.pinned==="right"?"right":"center";for(let o of["left","center","right"]){let i=this.rootChildren.filter(d=>d instanceof _&&!d.hide&&d.parentGroup===null&&r(d)===o);if(i.length<2)continue;let s=i.filter(d=>d.movable),a=s.slice().sort((d,c)=>(t.get(d.id)??Number.MAX_SAFE_INTEGER)-(t.get(c.id)??Number.MAX_SAFE_INTEGER));if(a.every((d,c)=>d===s[c]))continue;let l=[];this.rootChildren.forEach((d,c)=>{d instanceof _&&!d.hide&&d.parentGroup===null&&r(d)===o&&d.movable&&l.push(c)}),l.forEach((d,c)=>{this.rootChildren[d]=a[c]})}this.columns=this.collectLeaves(this.rootChildren)}resetColumnState(){for(let e of this.columns){e.resetWidth(),e.hide=e.colDef.hide??!1;let t=e.colDef.pinned;e.pinned=t===!0?"left":t===!1||t==null?null:t}this.regroup()}getSortModel(){return this.sortModel.map(e=>({...e}))}applySortModel(e){if(!e||e.length===0){this.sortModel=[];return}this.sortModel=e.filter(t=>this.columns.some(r=>r.id===t.colId)&&(t.direction==="asc"||t.direction==="desc")).map(t=>({colId:t.colId,direction:t.direction}))}cycleSort(e,t){let r=[...this.sortModel],o=r.findIndex(l=>l.colId===e.id),i=o>=0?r[o].direction:null,s=i===null?"asc":i==="asc"?"desc":null;t&&this.core.options.multiSort?s===null?o>=0&&r.splice(o,1):o>=0?r[o]={colId:e.id,direction:s}:r.push({colId:e.id,direction:s}):(r.length=0,s&&r.push({colId:e.id,direction:s})),this.sortModel=r}};function Nr(n){return n==null?"":String(n).toLowerCase()}function Zn(n,e,t){let r=Nr(n),o=e.map(i=>{let s=(i.value??"").toLowerCase();switch(i.match){case"contains":return r.includes(s);case"notContains":return!r.includes(s);case"equals":return r===s;case"notEquals":return r!==s;case"startsWith":return r.startsWith(s);case"endsWith":return r.endsWith(s);case"blank":return r==="";case"notBlank":return r!=="";default:return!0}});return o.length===0?!0:t==="or"?o.some(Boolean):o.every(Boolean)}function ei(n,e,t){switch(t.match){case"equals":return n===e;case"notEquals":return n!==e;case"lessThan":return n<e;case"lessThanOrEqual":return n<=e;case"greaterThan":return n>e;case"greaterThanOrEqual":return n>=e;case"inRange":return n>=e&&n<=(t.value2??e);default:return!0}}function ti(n,e){let t=n==null||n==="";if(e.match==="blank")return t;if(e.match==="notBlank")return!t;if(t)return!1;let r=typeof n=="number"?n:Number(n);if(Number.isNaN(r))return!1;let o=e.value;return o==null||Number.isNaN(o)?!1:ei(r,o,e)}function ri(n,e,t){let r=e.map(o=>ti(n,o));return r.length===0?!0:t==="or"?r.some(Boolean):r.every(Boolean)}function Le(n){if(n==null||n==="")return null;if(n instanceof Date)return isNaN(n.getTime())?null:n.getTime();if(typeof n=="number")return n;let e=Date.parse(String(n));return isNaN(e)?null:e}function oi(n,e,t){let r=e.map(o=>{let i=Le(n)==null;if(o.match==="blank")return i;if(o.match==="notBlank")return!i;if(i)return!1;let s=Le(n),a=o.value!=null?Le(o.value):null;if(a==null)return!1;switch(o.match){case"equals":return s===a;case"notEquals":return s!==a;case"lessThan":return s<a;case"greaterThan":return s>a;case"inRange":{let l=o.value2!=null?Le(o.value2):null;return l!=null?s>=a&&s<=l:s>=a}default:return!0}});return r.length===0?!0:t==="or"?r.some(Boolean):r.every(Boolean)}function ni(n,e){return e.length===0?!0:e.some(t=>t==null&&n==null||t===n)}function Or(n,e){let t=e.type!=="set"&&e.operator==="or"?"or":"and";switch(e.type){case"text":return Zn(n,e.conditions,t);case"number":return ri(n,e.conditions,t);case"date":return oi(n,e.conditions,t);case"set":return ni(n,e.values);default:return!0}}function Wt(n,e,t,r){if(n.kind==="condition"){let i=e.get(n.colId);return!i||Or(r(t,i),n.filter)}let o=n.operator==="or"?n.children.some(i=>Wt(i,e,t,r)):n.children.every(i=>Wt(i,e,t,r));return n.not?!o:o}function ii(n,e,t,r){return t?Wt(t.root,new Map(e.map(o=>[o.id,o])),n,r):!0}function _t(n,e,t,r,o,i){for(let s of Object.keys(t)){let a=t[s],l=e.find(c=>c.id===s);if(!l)continue;let d=i(n,l);if(!Or(d,a))return!1}if(!ii(n,e,r,i))return!1;if(o&&o.trim()!==""){let s=o.trim().toLowerCase().split(/\s+/);for(let a of s)if(!e.some(d=>Nr(i(n,d)).includes(a)))return!1}return!0}var Hr=typeof Intl<"u"?new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"}):null;function si(n,e){let t=n==null||n==="",r=e==null||e==="";return!t&&!r?null:t&&r?0:t?1:-1}function ai(n,e){let t=Number.isNaN(n),r=Number.isNaN(e);return t||r?t===r?0:t?1:-1:n-e}function li(n,e){return n===e?0:n?1:-1}function Ae(n,e){let t=si(n,e);if(t!==null)return t;if(typeof n=="number"&&typeof e=="number")return ai(n,e);if(n instanceof Date&&e instanceof Date)return n.getTime()-e.getTime();if(typeof n=="boolean"&&typeof e=="boolean")return li(n,e);let r=String(n),o=String(e);return Hr?Hr.compare(r,o):r.localeCompare(o)}function Kt(n,e,t,r){let o=new Map;for(let l of t)o.set(l.id,l);let i=[],s=[];for(let l of e){let d=o.get(l.colId);d&&(i.push(d.colDef.comparator??Ae),s.push(l.direction))}let a=n.map(l=>({node:l,values:e.map(d=>r(l,o.get(d.colId)))}));return a.sort((l,d)=>{for(let c=0;c<i.length;c++){let u=i[c](l.values[c],d.values[c],l.node,d.node);if(u!==0)return s[c]==="asc"?u:-u}return 0}),a.map(l=>l.node)}function Pe(n){return n.filter(e=>typeof e=="number"&&!isNaN(e))}var $t={sum:n=>Pe(n).reduce((e,t)=>e+t,0),avg:n=>{let e=Pe(n);return e.length===0?null:e.reduce((t,r)=>t+r,0)/e.length},count:n=>n.length,min:n=>{let e=Pe(n);return e.length===0?null:Math.min(...e)},max:n=>{let e=Pe(n);return e.length===0?null:Math.max(...e)},first:n=>n.length>0?n[0]:null,last:n=>n.length>0?n[n.length-1]:null};function Ge(n){let e={...$t,...n??{}};return t=>e[t]}function ae(n){if(n.reason instanceof Error)return n.reason;let e=new Error(typeof n.reason=="string"?n.reason:"Block request aborted");return e.name="AbortError",e}function Fe(n){return Number.isFinite(n)?Math.max(1,Math.trunc(n)):1}var Ne=class{constructor(e,t,r=4){this.maxBlocks=e;this.onEvict=t;this.maxConcurrentRequests=r;this.blocks=new Map;this.inflight=new Map;this.clock=0;this.generation=0;this.hitCount=0;this.missCount=0;this.evictionCount=0;this.activeRequests=0;this.maxBlocks=Fe(e),this.maxConcurrentRequests=Fe(r)}configure(e,t=this.maxConcurrentRequests){this.maxBlocks=Fe(e),this.maxConcurrentRequests=Fe(t),this.evictOverflow(),this.drainQueue()}peek(e){let t=this.blocks.get(e);if(t)return t.touchedAt=++this.clock,t}has(e){return this.blocks.has(e)}load(e,t,r,o=0){if(r?.aborted)return Promise.reject(ae(r));let i=this.peek(e);if(i)return this.hitCount++,Promise.resolve(i);let s=this.inflight.get(e);if(s)return this.hitCount++,s.priority=Math.max(s.priority,o),this.drainQueue(),this.attachConsumer(e,s,r);this.missCount++;let a=new AbortController,l,d,c=new Promise((p,m)=>{l=p,d=m}),u={controller:a,promise:c,consumers:0,loader:t,priority:o,state:"queued",resolve:l,reject:d};this.inflight.set(e,u);let h=this.attachConsumer(e,u,r);return this.drainQueue(),h}purge(){this.generation++;for(let e of this.inflight.values())e.controller.abort(),e.state==="queued"&&e.reject(ae(e.controller.signal));this.inflight.clear();for(let[e,t]of this.blocks)this.onEvict?.(e,t);this.blocks.clear()}snapshot(){let e=0,t=0;for(let r of this.blocks.values())e+=r.rows.length;for(let r of this.inflight.values())r.state==="active"&&t++;return{cachedBlockCount:this.blocks.size,loadingBlockCount:this.inflight.size,activeRequestCount:t,queuedRequestCount:Math.max(0,this.inflight.size-t),cachedRowCount:e,hitCount:this.hitCount,missCount:this.missCount,evictionCount:this.evictionCount}}drainQueue(){for(;this.activeRequests<this.maxConcurrentRequests;){let e,t;for(let[r,o]of this.inflight)o.state!=="queued"||o.controller.signal.aborted||(!t||o.priority>t.priority)&&(e=r,t=o);if(e==null||!t)return;this.startEntry(e,t)}}startEntry(e,t){t.state="active",this.activeRequests++;let r=this.generation;this.runLoader(t).then(o=>{r===this.generation&&!t.controller.signal.aborted&&(this.blocks.set(e,{rows:o.rows,...o.lastRow==null?{}:{lastRow:o.lastRow},touchedAt:++this.clock}),this.evictOverflow()),t.resolve(o)},t.reject).finally(()=>{this.activeRequests=Math.max(0,this.activeRequests-1),this.inflight.get(e)===t&&this.inflight.delete(e),this.drainQueue()})}runLoader(e){let{signal:t}=e.controller;return t.aborted?Promise.reject(ae(t)):new Promise((r,o)=>{let i=()=>o(ae(t));t.addEventListener("abort",i,{once:!0}),Promise.resolve().then(()=>e.loader(t)).then(r,o).finally(()=>{t.removeEventListener("abort",i)})})}attachConsumer(e,t,r){return t.consumers++,new Promise((o,i)=>{let s=!1,a=d=>{s||(s=!0,r?.removeEventListener("abort",l),t.consumers=Math.max(0,t.consumers-1),d())},l=()=>a(()=>{t.consumers===0&&this.inflight.get(e)===t&&(this.inflight.delete(e),t.controller.abort(r?.reason),t.state==="queued"&&t.reject(ae(t.controller.signal))),i(ae(r))});r?.addEventListener("abort",l,{once:!0}),t.promise.then(d=>a(()=>o(d)),d=>a(()=>i(d instanceof Error?d:new Error(String(d??"Block request failed")))))})}evictOverflow(){for(;this.blocks.size>this.maxBlocks;){let e=-1,t=Number.POSITIVE_INFINITY;for(let[o,i]of this.blocks)i.touchedAt<t&&(e=o,t=i.touchedAt);if(e<0)return;let r=this.blocks.get(e);this.blocks.delete(e),this.evictionCount++,r&&this.onEvict?.(e,r)}}};function me(n,e){if(n==null||typeof n!="object")return;let t=n[e];return Array.isArray(t)?t:void 0}var Oe=class{constructor(e){this.core=e;this.all=[];this.roots=[];this.childIds=new Map;this.displayed=[];this.nodesById=new Map;this.filterModel={};this.advancedFilterModel=null;this.quickFilter=null;this.expandedIds=new Set;this.groupExpandedIds=new Set;this.knownGroupIds=[];this.spanInfo=new Map;this.mastersBuf=[];this.infiniteLastRow=null;this.infiniteRequested=!1;this.infiniteLoading=!1;this.infiniteSeq=0;this.infiniteAbort=null;this.infiniteRetryTimer=null;this.infinitePendingResolve=null;this.treeDepth=new WeakMap;this.rowSequence=new WeakMap;this.treeLoadControllers=new Map;this.treeLoadPromises=new Map;this.displayRevision=0;this.blockNodes=new Map;this.blockPlaceholders=new Map;this.installedBlocks=new Set;this.blockCache=new Ne(12,e=>this.evictBlock(e));this.dataProcessorSeq=0;this.dataProcessorAbort=null;this.skipDataProcessorOnce=!1;this.lastRequestedBlock=0;this.pipelineRows=[];this.page=1;this.pageSize=20;this.advancedFilterModel=V(e.options.advancedFilterModel)}resolveRowId(e,t,r){let o=this.core.options.resolveRowId;if(!o)return r;try{let i=o({data:e,index:t,api:this.core.getApi()});if(typeof i=="string"&&i.length>0)return i;this.core.reportError(new Error("rowKey must resolve to a non-empty identifier"),"rowKey",{index:t})}catch(i){this.core.reportError(i,"rowKey",{index:t})}return r}get isTree(){return this.core.options.treeData}get isInfinite(){return this.core.options.datasource!=null}get isBlockDatasource(){return this.isInfinite&&this.core.options.datasourceMode==="block"}getDisplayTotalCount(){if(this.isInfinite){if(this.isBlockDatasource)return this.resolveBlockRowCount();let e=Math.max(0,this.displayed.length-this.all.length);return(this.infiniteLastRow??this.all.length)+e}return this.displayed.length}getDisplayRevision(){return this.displayRevision}isLoadingInfinite(){return this.infiniteLoading}startInfinite(e){return!this.isInfinite||e?.aborted?Promise.resolve():(this.cancelInfiniteRequest(),this.infiniteLastRow=null,this.infiniteRequested=!1,this.all=[],this.roots=[],this.nodesById.clear(),this.expandedIds.clear(),this.core.undoService.clear(),this.refreshPipeline(),this.core.requestUpdate({data:!0}),this.isBlockDatasource?(this.blockCache.configure(this.core.options.maxBlocksInCache,this.core.options.datasourceMaxConcurrentRequests),this.loadRandomBlock(0,e)):this.loadBlock(0,void 0,e))}reloadInfinite(e){return this.isInfinite?this.startInfinite(e):Promise.resolve()}setInfiniteLoading(e){this.infiniteLoading=e,this.core.skeleton.setInfiniteLoading(e,this.core.getLocaleText("loading"))}loadBlock(e,t,r){if(!this.isInfinite||this.infiniteRequested||this.infiniteLastRow!=null&&e>=this.infiniteLastRow)return Promise.resolve();let o=this.core.options.datasource,i=this.core.options.blockSize,s=t??e+i;if(s<=e)return Promise.resolve();let a=++this.infiniteSeq,l=new AbortController,d=()=>l.abort(r?.reason);return r?.addEventListener("abort",d,{once:!0}),this.infiniteAbort=l,this.infiniteRequested=!0,this.setInfiniteLoading(!0),new Promise(c=>{let u=!1,h=0;this.infinitePendingResolve=c;let p=y=>{u||(u=!0,r?.removeEventListener("abort",d),a===this.infiniteSeq&&(this.infiniteRequested=!1,this.infiniteAbort=null,this.infinitePendingResolve=null,this.setInfiniteLoading(!1),y!=null&&y?.name!=="AbortError"&&this.core.reportError(y,"datasource.getRows",{startRow:e,endRow:s})),c())},m=()=>{if(u||a!==this.infiniteSeq||l.signal.aborted||this.core.isDestroyed()){p();return}h++;let y=!1,v=g=>{if(!(y||u)){if(y=!0,a!==this.infiniteSeq||l.signal.aborted||this.core.isDestroyed()){p();return}if(h<=this.core.options.datasourceRetryCount){let b=this.retryDelay(h);this.infiniteRetryTimer=setTimeout(()=>{this.infiniteRetryTimer=null,m()},b);return}p(g??new Error("Datasource request failed"))}};try{let g=o.getRows({startRow:e,endRow:s,sortModel:this.core.columnModel.getSortModel(),filterModel:this.getFilterModel(),advancedFilterModel:this.getAdvancedFilterModel(),quickFilterText:this.quickFilter,signal:l.signal,onSuccess:(b,T)=>{if(y||u)return;if(y=!0,a!==this.infiniteSeq||this.core.isDestroyed()||l.signal.aborted){p();return}let E=b??[];typeof T=="number"&&T>=0?this.infiniteLastRow=T:E.length<s-e&&(this.infiniteLastRow=e+E.length);let w=this.all.length===0;this.appendInfiniteRows(E),p(),this.refreshPipeline(),this.core.requestUpdate({data:!0}),w&&this.core.relayout(),this.core.headerRenderer.refreshSelectAllCheckbox()},fail:v});g&&typeof g.catch=="function"&&g.catch(v)}catch(g){v(g)}};m()})}cancelInfiniteRequest(){this.infiniteSeq++,this.infiniteRetryTimer!=null&&clearTimeout(this.infiniteRetryTimer),this.infiniteRetryTimer=null,this.infiniteAbort?.abort(),this.infiniteAbort=null,this.infiniteRequested=!1,this.setInfiniteLoading(!1),this.infinitePendingResolve?.(),this.infinitePendingResolve=null,this.blockCache.purge(),this.blockNodes.clear(),this.blockPlaceholders.clear(),this.installedBlocks.clear()}appendInfiniteRows(e){for(let t of e){if(t==null)continue;let r=this.all.length,o=this.resolveRowId(t,r,`inf-${this.core.nextId()}`);if(this.nodesById.has(o)){this.core.reportError(new Error(`Duplicate row id: ${o}`),"datasource.getRows",{rowId:o});continue}let i={id:o,data:t,rowIndex:-1,selected:this.core.selectionService.isSelected(o)};this.all.push(i),this.nodesById.set(o,i),this.roots.push(i)}}loadRandomBlock(e,t,r=0){if(!this.isBlockDatasource||e<0)return Promise.resolve();if(t?.aborted)return Promise.reject(this.abortError(t.reason));let o=this.core.options.blockSize,i=e*o;if(i>=this.resolveBlockRowCount())return Promise.resolve();let s=this.infiniteLastRow==null?i+o:Math.min(this.infiniteLastRow,i+o),a=this.blockCache.load(e,l=>this.requestDatasourceRange(i,s,l),t,r);return this.setInfiniteLoading(this.all.length===0&&this.blockCache.snapshot().loadingBlockCount>0),a.then(l=>{t?.aborted||this.core.isDestroyed()||!this.isBlockDatasource||this.installedBlocks.has(e)||(this.installBlock(e,l),this.refreshPipeline(),this.core.requestUpdate({data:!0}),this.core.headerRenderer.refreshSelectAllCheckbox())}).catch(l=>{throw l?.name!=="AbortError"&&this.core.reportError(l,"datasource.getRows",{startRow:i,endRow:s}),l}).finally(()=>{this.setInfiniteLoading(this.all.length===0&&this.blockCache.snapshot().loadingBlockCount>0)})}requestDatasourceRange(e,t,r){let o=this.core.options.datasource;return new Promise((i,s)=>{let a=0,l=null,d=!1,c=p=>{d||(d=!0,l!=null&&clearTimeout(l),r.removeEventListener("abort",u),s(p instanceof Error?p:new Error(typeof p=="string"?p:"Datasource request failed")))},u=()=>c(this.abortError(r.reason));r.addEventListener("abort",u,{once:!0});let h=()=>{if(d)return;if(r.aborted||this.core.isDestroyed()){u();return}a++;let p=!1,m=y=>{if(!(p||d)){if(p=!0,r.aborted||this.core.isDestroyed()){u();return}if(a<=this.core.options.datasourceRetryCount){let v=this.retryDelay(a);l=setTimeout(()=>{l=null,h()},v)}else c(y)}};try{let y=o.getRows({startRow:e,endRow:t,sortModel:this.core.columnModel.getSortModel(),filterModel:this.getFilterModel(),advancedFilterModel:this.getAdvancedFilterModel(),quickFilterText:this.quickFilter,signal:r,onSuccess:(v,g)=>{p||d||(p=!0,d=!0,r.removeEventListener("abort",u),i({rows:v??[],...typeof g=="number"&&g>=0?{lastRow:g}:{}}))},fail:m});y&&typeof y.catch=="function"&&y.catch(m)}catch(y){m(y)}};h()})}installBlock(e,t){let r=this.core.options.blockSize,o=e*r;this.evictBlock(e),typeof t.lastRow=="number"&&t.lastRow>=0?this.infiniteLastRow=t.lastRow:t.rows.length<r&&(this.infiniteLastRow=o+t.rows.length),t.rows.forEach((i,s)=>{if(i==null)return;let a=o+s;if(this.infiniteLastRow!=null&&a>=this.infiniteLastRow)return;let l=this.resolveRowId(i,a,`block-${a}`),d=this.nodesById.get(l);if(d&&d.rowIndex!==a){this.core.reportError(new Error(`Duplicate row id: ${l}`),"datasource.getRows",{rowId:l});return}let c={id:l,data:i,rowIndex:a,selected:this.core.selectionService.isSelected(l)};this.blockNodes.set(a,c),this.blockPlaceholders.delete(a),this.nodesById.set(l,c),this.rowSequence.set(c,a+1)}),this.rebuildLoadedBlockRows(),this.installedBlocks.add(e)}evictBlock(e){this.installedBlocks.delete(e);let t=this.core.options.blockSize,r=e*t;for(let o=r;o<r+t;o++){let i=this.blockNodes.get(o);i&&(this.blockNodes.delete(o),this.nodesById.get(i.id)===i&&this.nodesById.delete(i.id))}this.rebuildLoadedBlockRows()}rebuildLoadedBlockRows(){this.all=[...this.blockNodes.entries()].sort(([e],[t])=>e-t).map(([,e])=>e),this.roots=this.all}resolveBlockRowCount(){if(this.infiniteLastRow!=null)return this.infiniteLastRow;if(this.core.options.datasourceRowCount!=null)return this.core.options.datasourceRowCount;if(this.blockNodes.size===0)return this.core.options.blockSize;let e=0;for(let t of this.blockNodes.keys())e=Math.max(e,t+1);return e+this.core.options.blockSize}blockPlaceholder(e){let t=this.blockPlaceholders.get(e);if(!t&&(t={id:`__mach_loading_${e}`,data:null,rowIndex:e,selected:!1,loading:!0},this.blockPlaceholders.set(e,t),this.blockPlaceholders.size>2e3)){let r=this.blockPlaceholders.keys().next().value;r!=null&&this.blockPlaceholders.delete(r)}return t}abortError(e){if(e instanceof Error)return e;let t=new Error(typeof e=="string"?e:"Operation aborted");return t.name="AbortError",t}retryDelay(e){let t=Math.min(this.core.options.datasourceRetryDelay*2**Math.max(0,e-1),3e4),r=this.core.options.datasourceRetryJitter;return Math.max(0,Math.round(t*(1+(Math.random()*2-1)*r)))}checkInfiniteScroll(e){if(this.isBlockDatasource){this.prefetchVisibleBlocks(e);return}if(!this.isInfinite||this.infiniteRequested)return;let t=this.all.length;if(this.infiniteLastRow!=null&&t>=this.infiniteLastRow)return;let r=this.core.options.infiniteBufferRows;if(e+r<t&&e<t)return;let o=this.core.options.blockSize,i=this.infiniteLastRow==null?t+o:Math.min(this.infiniteLastRow,t+o);this.loadBlock(t,i)}prefetchVisibleBlocks(e){if(e<0)return;let t=this.core.options.blockSize,r=Math.floor(e/t),o=this.core.options.blockPrefetch,i=r<this.lastRequestedBlock?-1:1;this.lastRequestedBlock=r;for(let s=0;s<=o;s++){let a=s===0?[r]:[r+i*s,r-i*s];for(let l of a)l<0||l*t>=this.resolveBlockRowCount()||this.loadRandomBlock(l,void 0,o-s+1).catch(()=>{})}}onServerParamsChanged(){return this.reloadInfinite().catch(()=>{})}onDatasourceChanged(){return this.cancelInfiniteRequest(),this.isInfinite?this.startInfinite().catch(()=>{}):(this.infiniteLastRow=null,this.setRowData(this.core.options.rowData),this.core.requestUpdate({data:!0}),Promise.resolve())}destroy(){this.cancelInfiniteRequest(),this.cancelTreeLoads(),this.cancelDataProcessor(),this.core.options.dataProcessor?.destroy?.()}ensureRowsLoaded(e,t,r){if(!this.isBlockDatasource)return Promise.resolve();let o=this.core.options.blockSize,i=Math.max(0,Math.trunc(e)),s=Math.min(this.resolveBlockRowCount(),Math.max(i,Math.trunc(t))),a=Math.floor(i/o),l=Math.max(a,Math.floor(Math.max(i,s-1)/o)),d=[];for(let c=a;c<=l;c++)d.push(this.loadRandomBlock(c,r,100));return Promise.all(d).then(()=>{})}purgeDatasourceCache(){this.isBlockDatasource&&(this.blockCache.purge(),this.blockNodes.clear(),this.blockPlaceholders.clear(),this.installedBlocks.clear(),this.all=[],this.roots=[],this.nodesById.clear(),this.refreshPipeline(),this.core.requestUpdate({data:!0}))}getDatasourceCacheSnapshot(){return this.blockCache.snapshot()}setRowData(e){this.cancelTreeLoads(),this.core.changeTracker.clear();let t=this.core.options.resolveRowId,r=this.core.options.childrenKey,o=[],i=[],s=new Map,a=new Map,l=0,d=(c,u,h)=>{let p=l++,m=this.resolveRowId(c,p,`auto-${p}`);if(s.has(m))return this.core.reportError(new Error(`Duplicate row id: ${m}`),"rowData",{rowId:m,index:p}),null;let y=this.isTree?me(c,r):void 0,v={id:m,data:c,rowIndex:-1,selected:!1,treeChildrenLoaded:Array.isArray(y)};if(this.treeDepth.set(v,u),o.push(v),s.set(m,v),h!=null){let g=a.get(h)??[];g.push(m),a.set(h,g)}else i.push(v);if(this.isTree&&Array.isArray(y))for(let g of y)g!=null&&d(g,u+1,m);return v};(e??[]).forEach(c=>{c!=null&&d(c,0,null)}),this.all=o,this.roots=i,this.childIds=a,this.nodesById=s,this.core.undoService.clear();for(let c of[...this.expandedIds])s.has(c)||this.expandedIds.delete(c);if(this.core.options.defaultExpandAll)for(let c of o)this.getChildrenCount(c.id)>0&&this.expandedIds.add(c.id);this.core.selectionService.onRowsRebuilt(t!=null),this.refreshPipeline()}getChildrenIds(e){return this.childIds.get(e)??[]}getChildrenCount(e){return this.childIds.get(e)?.length??0}hasChildren(e){return this.getChildrenCount(e)>0}isTreeRowLoading(e){return this.nodesById.get(e)?.treeLoading===!0}cancelTreeLoads(){for(let e of this.treeLoadControllers.values())e.abort();this.treeLoadControllers.clear(),this.treeLoadPromises.clear()}loadTreeChildren(e,t=!1){let r=this.nodesById.get(e),o=this.core.options.loadTreeChildren;if(!this.isTree||!r?.data||!o)return Promise.resolve([]);if(!t&&r.treeChildrenLoaded)return Promise.resolve(this.getChildrenIds(e).flatMap(l=>{let d=this.nodesById.get(l)?.data;return d==null?[]:[d]}));let i=this.treeLoadPromises.get(e);if(i&&!t)return i;this.treeLoadControllers.get(e)?.abort();let s=new AbortController;this.treeLoadControllers.set(e,s),r.treeLoading=!0,r.treeLoadError=void 0,this.core.requestUpdate({data:!0});let a=Promise.resolve().then(()=>o({data:r.data,node:r,api:this.core.getApi(),signal:s.signal})).then(l=>{if(s.signal.aborted||this.core.isDestroyed())return[];if(!Array.isArray(l))throw new TypeError("[MachTable] loadTreeChildren must resolve to an array.");return this.replaceTreeChildren(r,l),r.treeChildrenLoaded=!0,r.treeLoadError=void 0,this.core.emit("treeChildrenLoaded",{rowId:e,rowNode:r,children:l}),l}).catch(l=>{if(s.signal.aborted||l?.name==="AbortError")return[];throw r.treeLoadError=l,r.treeChildrenLoaded=!1,this.core.reportError(l,"treeData.loadChildren",{rowId:e}),this.core.emit("treeChildrenLoadFailed",{rowId:e,rowNode:r,error:l}),l}).finally(()=>{this.treeLoadControllers.get(e)===s&&(this.treeLoadControllers.delete(e),this.treeLoadPromises.delete(e),r.treeLoading=!1,this.core.requestUpdate({data:!0}))});return this.treeLoadPromises.set(e,a),a}replaceTreeChildren(e,t){let r=new Set,o=[...this.getChildrenIds(e.id)];for(;o.length>0;){let s=o.pop();r.has(s)||(r.add(s),o.push(...this.getChildrenIds(s)))}this.validateTreeChildren(t,r);for(let s of r)this.treeLoadControllers.get(s)?.abort(),this.treeLoadControllers.delete(s),this.treeLoadPromises.delete(s),this.childIds.delete(s),this.nodesById.delete(s),this.expandedIds.delete(s);this.childIds.delete(e.id);let i=this.getTreeDepth(e)+1;for(let s of t)s!=null&&this.buildChildNodes(e,s,i);this.reindexAll(),this.core.selectionService.onRowsRebuilt(this.core.options.resolveRowId!=null),this.refreshPipeline(),this.core.requestUpdate({data:!0})}validateTreeChildren(e,t){let r=this.core.options.resolveRowId,o=r?new Set([...this.nodesById.keys()].filter(l=>!t.has(l))):null,i=new WeakSet,s=[...e],a=0;for(;s.length>0;){let l=s.pop();if(l==null)continue;if(typeof l=="object"){if(i.has(l))throw new TypeError("[MachTable] Lazy tree children contain a cyclic object graph.");i.add(l)}if(r&&o){let c=r({data:l,index:a++,api:this.core.getApi()});if(typeof c!="string"||c.length===0)throw new TypeError("[MachTable] rowKey must resolve to a non-empty identifier for lazy tree children.");if(o.has(c))throw new Error(`Duplicate row id: ${c}`);o.add(c)}let d=me(l,this.core.options.childrenKey);d&&s.push(...d)}}applyTransaction(e,t=!0){let r=this.core.options.resolveRowId,o=[],i=[];if(e.remove?.length){let a=new Set,l=new Set,d=u=>{if(r){let p=[this.resolveRowId(u,-1,`__missing_remove_${this.core.nextId()}`)];for(;p.length>0;){let m=p.pop();if(!a.has(m)){a.add(m);for(let y of this.childIds.get(m)??[])p.push(y)}}}else{let h=[u];for(;h.length>0;){let p=h.pop();l.add(p);let m=this.isTree?me(p,this.core.options.childrenKey):void 0;if(m)for(let y of m)h.push(y)}}};e.remove.forEach(d),this.all=this.all.filter(u=>{let h=a.has(u.id)||u.data!=null&&l.has(u.data);return h&&(i.push(u.id),this.nodesById.delete(u.id),this.childIds.delete(u.id)),!h});let c=new Set(this.all);this.roots=this.roots.filter(u=>c.has(u))}if(e.update?.length)for(let a of e.update){let l;r?l=this.nodesById.get(this.resolveRowId(a,-1,`__missing_update_${this.core.nextId()}`)):l=this.all.find(d=>d.data===a),l&&(l.data=a,i.push(l.id),this.core.bodyRenderer.invalidateRowHeight(l),o.push(l))}if(e.add?.length){let a=e.addIndex!=null?Math.max(0,Math.min(e.addIndex,this.roots.length)):this.roots.length,l=[];e.add.forEach((d,c)=>{let u=this.resolveRowId(d,a+c,`add-${this.core.nextId()}`);if(this.nodesById.has(u)){this.core.reportError(new Error(`Duplicate row id: ${u}`),"transaction.add",{rowId:u});return}let h={id:u,data:d,rowIndex:-1,selected:!1};this.nodesById.set(u,h),this.treeDepth.set(h,0);let p=this.isTree?me(d,this.core.options.childrenKey):void 0;if(p)for(let m of p)m!=null&&this.buildChildNodes(h,m,1);l.push(h)}),this.roots.splice(a,0,...l),this.reindexAll()}let s=this.transactionNeedsPipeline(e);return t&&(s?this.refreshPipeline():o.length>0&&this.emitIncrementalModelUpdate()),this.core.changeTracker.clearRows(i),{pipelineChanged:s,updatedRowIds:o.map(a=>a.id)}}applyTransactions(e){if(e.length===0)return{pipelineChanged:!1,updatedRowIds:[]};let t=!1,r=new Set;for(let o of e){let i=this.applyTransaction(o,!1);t||(t=i.pipelineChanged);for(let s of i.updatedRowIds)r.add(s)}return t?this.refreshPipeline():r.size>0&&this.emitIncrementalModelUpdate(),{pipelineChanged:t,updatedRowIds:[...r]}}transactionNeedsPipeline(e){return e.add?.length||e.remove?.length?!0:e.update?.length?this.isTree||this.core.options.masterDetail||this.core.columnModel.getRowGroupColumns().length>0||!this.core.options.manualFiltering&&this.isFilterPresent()||!this.core.options.manualSorting&&this.core.columnModel.getSortModel().length>0||this.core.options.getRowHeight?!0:this.core.columnModel.getOrderedVisible().some(t=>t.colDef.autoHeight===!0||t.colDef.autoRowSpan===!0||t.colDef.rowSpan!=null):!1}emitIncrementalModelUpdate(){this.core.emit("modelUpdated",{rowCount:this.pipelineRows.length})}buildChildNodes(e,t,r){let o=this.resolveRowId(t,-1,`add-${this.core.nextId()}`);if(this.nodesById.has(o)){this.core.reportError(new Error(`Duplicate row id: ${o}`),"transaction.add",{rowId:o});return}let i=me(t,this.core.options.childrenKey),s={id:o,data:t,rowIndex:-1,selected:!1,treeChildrenLoaded:Array.isArray(i)};this.nodesById.set(o,s),this.treeDepth.set(s,r);let a=this.childIds.get(e.id)??[];if(a.push(s.id),this.childIds.set(e.id,a),!!i)for(let l of i)l!=null&&this.buildChildNodes(s,l,r+1)}reindexAll(){this.all=[];let e=t=>{this.all.push(t),this.nodesById.has(t.id)||this.nodesById.set(t.id,t);for(let r of this.childIds.get(t.id)??[]){let o=this.nodesById.get(r);o&&e(o)}};for(let t of this.roots)e(t)}setFilterModel(e){let t=JSON.stringify(this.filterModel),r=new Set(this.core.columnModel.getColumns().map(o=>o.id));return this.filterModel=ne(e,r),JSON.stringify(this.filterModel)!==t}getFilterModel(){return{...this.filterModel}}setAdvancedFilterModel(e){let t=new Set(this.core.columnModel.getColumns().map(i=>i.id)),r=V(e,t),o=JSON.stringify(this.advancedFilterModel);return this.advancedFilterModel=r,this.core.options.advancedFilterModel=r,JSON.stringify(r)!==o}getAdvancedFilterModel(){return V(this.advancedFilterModel)}setQuickFilter(e){let t=e!=null&&e.trim()!==""?e:null;return t===this.quickFilter?!1:(this.quickFilter=t,!0)}getQuickFilter(){return this.quickFilter}isFilterPresent(){return Object.keys(this.filterModel).length>0||this.advancedFilterModel!=null||this.quickFilter!=null}refreshPipeline(){let e=this.core.performanceMonitor.start(),t=this.core.columnModel.getOrderedVisible(),r=(s,a)=>this.core.getCellValue(s,a);if(this.isInfinite){this.refreshInfinitePipeline(e);return}if(this.startDataProcessorIfNeeded(e))return;let o;if(this.isTree)o=this.buildTreeDisplay(t,r);else{o=this.all,this.isFilterPresent()&&!this.core.options.manualFiltering&&(o=o.filter(d=>_t(d,t,this.filterModel,this.advancedFilterModel,this.quickFilter,r)));let a=this.core.columnModel.getSortModel();if(a.length>0&&!this.core.options.manualSorting)try{o=Kt(o,a,t,r)}catch(d){this.core.reportError(d,"comparator",{sortModel:a})}let l=this.core.columnModel.getRowGroupColumns();if(l.length>0)o=this.buildGrouped(o,l);else if(this.core.options.masterDetail){let d=[];for(let c of o)d.push(c),this.expandedIds.has(c.id)&&this.isRowExpandable(c)&&d.push({id:`__detail__${c.id}`,data:c.data,rowIndex:-1,selected:!1,isDetail:!0,masterId:c.id});o=d}}for(let s of this.all)s.rowIndex=-1;let i=0;o.forEach((s,a)=>{s.rowIndex=a,!s.isDetail&&!s.isGroup&&(i++,this.rowSequence.set(s,i))}),this.pipelineRows=o,this.applyPagination(),this.computeSpans(r),this.core.emit("modelUpdated",{rowCount:o.length}),this.core.performanceMonitor.recordModel(e)}refreshInfinitePipeline(e){this.all.forEach((t,r)=>{this.isBlockDatasource||(t.rowIndex=r),this.rowSequence.set(t,this.isBlockDatasource?t.rowIndex+1:r+1)}),this.displayed=this.all,this.pipelineRows=this.all,this.spanInfo.clear(),this.displayRevision++,this.core.emit("modelUpdated",{rowCount:this.all.length}),this.core.performanceMonitor.recordModel(e)}startDataProcessorIfNeeded(e){let t=this.skipDataProcessorOnce;return this.skipDataProcessorOnce=!1,!t&&this.shouldUseDataProcessor()?(this.refreshWithDataProcessor(e),!0):(this.cancelDataProcessor(),!1)}shouldUseDataProcessor(){if(!this.core.options.dataProcessor||this.all.length<this.core.options.dataProcessorMinRows||this.isTree||this.core.options.masterDetail||this.core.columnModel.getRowGroupColumns().length>0)return!1;let e=!this.core.options.manualFiltering&&this.isFilterPresent(),t=!this.core.options.manualSorting&&this.core.columnModel.getSortModel().length>0;return e||t}refreshWithDataProcessor(e){this.cancelDataProcessor();let t=this.core.options.dataProcessor;if(!t)return;let r=++this.dataProcessorSeq,o=new AbortController;this.dataProcessorAbort=o;let i=this.core.columnModel.getOrderedVisible(),s=this.all.flatMap(d=>d.data==null?[]:[{id:d.id,data:d.data}]),a=!this.core.options.manualFiltering,l=!this.core.options.manualSorting;Promise.resolve().then(()=>t.process({rows:s,columns:i.map(d=>({colId:d.id,...d.colDef.field?{field:d.colDef.field}:{}})),sortModel:l?this.core.columnModel.getSortModel():[],filterModel:a?this.getFilterModel():{},advancedFilterModel:a?this.getAdvancedFilterModel():null,quickFilterText:a?this.quickFilter:null,signal:o.signal})).then(d=>{if(r!==this.dataProcessorSeq||o.signal.aborted||this.core.isDestroyed())return;let c=new Set,u=[];for(let p of d.rowIds){if(c.has(p))continue;c.add(p);let m=this.nodesById.get(p);m&&!m.isDetail&&!m.isGroup&&u.push(m)}for(let p of this.all)p.rowIndex=-1;u.forEach((p,m)=>{p.rowIndex=m,this.rowSequence.set(p,m+1)}),this.pipelineRows=u,this.applyPagination();let h=(p,m)=>this.core.getCellValue(p,m);this.computeSpans(h),this.core.emit("modelUpdated",{rowCount:u.length}),this.core.performanceMonitor.recordModel(e),this.core.requestUpdate({data:!0})}).catch(d=>{r!==this.dataProcessorSeq||o.signal.aborted||this.core.isDestroyed()||(this.core.reportError(d,"dataProcessor.process"),this.skipDataProcessorOnce=!0,this.refreshPipeline(),this.core.requestUpdate({data:!0}))}).finally(()=>{r===this.dataProcessorSeq&&(this.dataProcessorAbort=null)})}cancelDataProcessor(){this.dataProcessorSeq++,this.dataProcessorAbort?.abort(),this.dataProcessorAbort=null}get paginationActive(){return this.core.options.paginationEnabled&&!this.isInfinite}applyPagination(){if(!this.paginationActive){this.displayed=this.pipelineRows,this.displayRevision++;return}let e=this.effectivePageSize(),t=this.getPageCount();if(this.page>t&&(this.page=t),this.page<1&&(this.page=1),this.core.options.paginationPage=this.page,this.core.options.paginationMode==="server"){this.pipelineRows.forEach((i,s)=>{i.rowIndex=s}),this.displayed=this.pipelineRows,this.displayRevision++;return}let r=(this.page-1)*e,o=this.pipelineRows.slice(r,r+e);o.forEach((i,s)=>{i.rowIndex=s}),this.displayed=o,this.displayRevision++}effectivePageSize(){return this.pageSize=this.core.options.paginationPageSize,Math.max(1,this.pageSize)}getCurrentPage(){return this.paginationActive?this.page:1}getTotalRowCount(){return this.isInfinite?this.getDisplayTotalCount():this.paginationActive&&this.core.options.paginationMode==="server"?this.core.options.paginationTotal:this.pipelineRows.length}getPageCount(){return this.paginationActive?Math.max(1,Math.ceil(this.getTotalRowCount()/this.effectivePageSize())):1}getPipelineRows(){return this.pipelineRows}setPage(e,t=!1){if(!this.paginationActive)return;let r=this.getPageCount(),o=Math.max(1,Math.min(Math.round(e)||1,r));o!==this.page&&(this.page=o,this.core.options.paginationPage=o,this.applyPagination(),this.core.requestUpdate({data:!0}),this.core.bodyRenderer.scrollToIndex(0,"top"),t||this.emitPaginationChanged())}setPageSize(e){if(!this.paginationActive)return;let t=Math.max(1,Math.round(e)||this.effectivePageSize()),r=(this.page-1)*this.effectivePageSize();this.core.options.paginationPageSize=t,this.pageSize=t,this.page=Math.floor(r/t)+1,this.core.options.paginationPage=this.page,this.applyPagination(),this.core.requestUpdate({data:!0}),this.emitPaginationChanged()}restorePagination(e,t){this.pageSize=Math.max(1,Math.round(t)||1),this.core.options.paginationPageSize=this.pageSize,this.page=Math.max(1,Math.round(e)||1),this.core.options.paginationPage=this.page}setPaginationEnabled(e){this.core.options.paginationEnabled!==e&&(this.core.options.paginationEnabled=e&&!this.isInfinite,this.core.options.paginationEnabled&&(this.page=1),this.applyPagination(),this.core.requestUpdate({data:!0}),this.emitPaginationChanged())}onPaginationOptionsChanged(){this.paginationActive&&(this.page=this.core.options.paginationMode==="server"?this.core.options.paginationPage:1,this.applyPagination(),this.core.requestUpdate({data:!0}),this.emitPaginationChanged())}emitPaginationChanged(){this.core.emit("paginationChanged",{page:this.getCurrentPage(),pageSize:this.effectivePageSize(),pageCount:this.getPageCount(),total:this.getTotalRowCount()})}buildTreeDisplay(e,t){let r=this.core.options.manualSorting?[]:this.core.columnModel.getSortModel(),o=new Map,i=this.isFilterPresent()&&!this.core.options.manualFiltering,s=d=>{let c=o.get(d.id);if(c!==void 0)return c;let u=!0;if(i){u=_t(d,e,this.filterModel,this.advancedFilterModel,this.quickFilter,t);for(let h of this.childIds.get(d.id)??[]){let p=this.nodesById.get(h);p&&s(p)&&(u=!0)}}return o.set(d.id,u),u},a=[],l=d=>{let c=d;r.length>0&&(c=Kt(d,r,e,t));for(let u of c)if(s(u)&&(a.push(u),this.expandedIds.has(u.id))){let h=(this.childIds.get(u.id)??[]).map(p=>this.nodesById.get(p)).filter(p=>p!=null);l(h)}};return l(this.roots),a}collectSpanMasters(){let e=this.mastersBuf,t=0;for(let r of this.displayed)!r.isDetail&&!r.isGroup&&(e[t++]=r);return e.length=t,e}explicitRowSpan(e,t,r,o){let i=t.colDef.rowSpan;if(!i)return 1;try{let s=i({api:this.core.getApi(),colDef:t.colDef,column:t,node:e,data:e.data,value:r,rowIndex:e.rowIndex});return Math.max(1,Math.min(Math.round(s)||1,o))}catch(s){return this.core.reportError(s,"rowSpan",{colId:t.id,rowId:e.id}),1}}automaticRowSpan(e,t,r,o,i){if(!r.colDef.autoRowSpan||o==null||o==="")return 1;let s=1;for(;t+s<e.length&&Ae(o,i(e[t+s],r))===0;)s++;return s}computeColumnSpans(e,t,r){let o=new Int32Array(e.length),i=0;for(;i<e.length;){let s=e[i],a=r(s,t),l=t.colDef.rowSpan?this.explicitRowSpan(s,t,a,e.length-i):this.automaticRowSpan(e,i,t,a,r);o[i]=l;for(let d=1;d<l;d++)o[i+d]=-1;i+=l}return o}computeSpans(e){if(this.spanInfo.clear(),this.isTree||this.core.options.masterDetail||this.core.columnModel.getRowGroupColumns().length>0)return;let t=this.core.columnModel.getOrderedVisible().filter(o=>o.colDef.rowSpan!=null||o.colDef.autoRowSpan===!0);if(t.length===0)return;let r=this.collectSpanMasters();if(r.length!==0)for(let o of t)this.spanInfo.set(o.id,this.computeColumnSpans(r,o,e))}getSpanInfo(e){return this.spanInfo.get(e)}getRowSeq(e){return this.rowSequence.get(e)??0}getTreeDepth(e){return this.treeDepth.get(e)??0}buildGrouped(e,t){let r=Ge(this.core.options.aggFuncs),o=this.core.columnModel.getAggColumns();this.knownGroupIds=[];let i=a=>{let l={};for(let d of o){let c=r(d.colDef.aggFunc);if(c)try{l[d.id]=c(a.map(u=>this.core.getCellValue(u,d)))}catch(u){this.core.reportError(u,"aggFunc",{colId:d.id,aggFunc:d.colDef.aggFunc}),l[d.id]=null}}return l},s=(a,l,d)=>{if(l>=t.length)return{display:a,leaves:a};let c=t[l],u=new Map,h=[];for(let y of a){let v=this.core.getCellValue(y,c),g=v==null?"(\u7A7A)":String(v),b=u.get(g);b||(b=[],u.set(g,b),h.push(g)),b.push(y)}h.sort((y,v)=>y.localeCompare(v,void 0,{numeric:!0,sensitivity:"base"}));let p=[],m=[];for(let y of h){let v=u.get(y),g=`${d}/g${l}:${y}`;this.knownGroupIds.push(g);let b=s(v,l+1,g),T={id:g,data:null,rowIndex:-1,selected:!1,isGroup:!0,groupLevel:l,groupKey:y,leafNodes:b.leaves,aggValues:i(b.leaves)};p.push(T),this.groupExpandedIds.has(g)&&p.push(...b.display),m.push(...b.leaves)}return{display:p,leaves:m}};return s(e,0,"").display}isRowExpandable(e){if(this.isTree){if(this.hasChildren(e.id)||e.treeLoading)return!0;if(e.treeChildrenLoaded||!e.data||!this.core.options.loadTreeChildren)return!1;let r=this.core.options.isTreeRowExpandable;if(!r)return!1;try{return r({data:e.data,node:e,api:this.core.getApi()})}catch(o){return this.core.reportError(o,"isTreeRowExpandable",{rowId:e.id}),!1}}if(!this.core.options.masterDetail)return!1;let t=this.core.options.isRowExpandable;if(t)try{return t({data:e.data,node:e,api:this.core.getApi()})}catch(r){return this.core.reportError(r,"isRowExpandable",{rowId:e.id}),!1}return!0}isRowExpanded(e){return this.expandedIds.has(e)}getExpandedRowIds(){return[...this.expandedIds]}getExpandedGroupIds(){return[...this.groupExpandedIds]}restoreExpansion(e,t){this.expandedIds=new Set(e.filter(r=>this.nodesById.has(r))),this.groupExpandedIds=new Set(t)}expandRow(e){return this.setDetailExpanded(e,!0)}collapseRow(e){return this.setDetailExpanded(e,!1)}toggleDetail(e){return this.setDetailExpanded(e,!this.expandedIds.has(e))}setDetailExpanded(e,t){let r=this.nodesById.get(e);return!r||t&&!this.isRowExpandable(r)?!1:(t===this.expandedIds.has(e)||(t?this.expandedIds.add(e):this.expandedIds.delete(e),this.refreshPipeline(),this.core.requestUpdate({data:!0}),this.core.emit("detailToggled",{rowId:e,rowNode:r,expanded:t}),t&&this.isTree&&!this.hasChildren(e)&&!r.treeLoading&&this.loadTreeChildren(e).catch(()=>{})),t)}expandAllDetails(){let e=!1;for(let t of this.all)!this.expandedIds.has(t.id)&&this.isRowExpandable(t)&&(this.expandedIds.add(t.id),e=!0);e&&(this.refreshPipeline(),this.core.requestUpdate({data:!0}))}collapseAllDetails(){this.expandedIds.size!==0&&(this.expandedIds.clear(),this.refreshPipeline(),this.core.requestUpdate({data:!0}))}toggleGroup(e){return this.setGroupExpanded(e,!this.groupExpandedIds.has(e))}isGroupExpanded(e){return this.groupExpandedIds.has(e)}getGroupNode(e){return this.displayed.find(t=>t.isGroup&&t.id===e)}expandAllGroups(){if(this.knownGroupIds.length===0)return;let e=!1;for(let t of this.knownGroupIds)this.groupExpandedIds.has(t)||(this.groupExpandedIds.add(t),e=!0);e&&(this.refreshPipeline(),this.core.requestUpdate({data:!0}))}collapseAllGroups(){this.groupExpandedIds.size!==0&&(this.groupExpandedIds.clear(),this.refreshPipeline(),this.core.requestUpdate({data:!0}))}setGroupExpanded(e,t){return!this.knownGroupIds.includes(e)||t===this.groupExpandedIds.has(e)||(t?this.groupExpandedIds.add(e):this.groupExpandedIds.delete(e),this.refreshPipeline(),this.core.requestUpdate({data:!0})),t}reorderRowsByDisplayed(e,t){if(this.isTree)return!1;let r=this.getDisplayedRow(e),o=this.getDisplayedRow(t);if(!r||!o||r.isDetail||o.isDetail||r.isGroup||o.isGroup)return!1;let i=this.all.indexOf(r),s=this.all.indexOf(o);if(i<0||s<0)return!1;if(s>i){let l=s;for(;l+1<this.all.length&&this.all[l+1].isDetail;)l++;s=l}if(i===s)return!1;this.all.splice(i,1);let a=this.all.indexOf(o);return this.all.splice(s>i?a+1:a,0,r),this.refreshPipeline(),this.core.requestUpdate({data:!0}),!0}getAllNodes(){return this.all}getRootNodes(){return this.roots}getDisplayedRows(){return this.displayed}getDisplayedRowCount(){return this.isBlockDatasource?this.resolveBlockRowCount():this.displayed.length}getDisplayedRow(e){return this.isBlockDatasource?e<0||e>=this.resolveBlockRowCount()?void 0:this.blockNodes.get(e)??this.blockPlaceholder(e):this.displayed[e]}getNodeById(e){return this.nodesById.get(e)}forEachNode(e){this.all.forEach(e)}forEachNodeAfterFilterAndSort(e){let t=0;for(let r of this.pipelineRows)r.isDetail||r.isGroup||e(r,t++)}};var He=class{constructor(e){this.core=e;this.selectedIds=new Set;this.anchorId=null;this.indeterminateIds=new Set}isSelected(e){return this.selectedIds.has(e)}isIndeterminate(e){return this.indeterminateIds.has(e)}isSelectable(e){if(e.loading)return!1;let t=this.findSelectableColumn(e),r=t?.colDef.selectable;if(!t||!r)return!0;try{return r({api:this.core.getApi(),colDef:t.colDef,column:t,node:e,data:e.data,value:this.core.getCellValue(e,t),rowIndex:e.rowIndex})}catch(o){return this.core.reportError(o,"selectable",{rowId:e.id,colId:t?.id}),!1}}findSelectableColumn(e){if(!(e.isGroup||e.isDetail))return this.core.columnModel.getOrderedVisible().find(t=>t.hasCheckbox&&t.colDef.selectable!=null)}getSelectedNodes(){return this.core.rowModel.getAllNodes().filter(e=>this.selectedIds.has(e.id))}getSelectedRows(){return this.getSelectedNodes().filter(e=>e.data!=null).map(e=>e.data)}getSelectedIds(){return[...this.selectedIds]}restoreSelection(e){let t=new Set(e),r=this.core.rowModel.getAllNodes().filter(o=>t.has(o.id)&&!o.isDetail&&!o.isGroup).map(o=>({node:o,selected:!0}));this.applySelection(r,!0)}onRowsRebuilt(e){if(!e)this.selectedIds.clear(),this.anchorId=null;else{let t=new Set(this.core.rowModel.getAllNodes().map(r=>r.id));for(let r of[...this.selectedIds])t.has(r)||this.selectedIds.delete(r);this.anchorId!=null&&!t.has(this.anchorId)&&(this.anchorId=null)}for(let t of this.core.rowModel.getAllNodes())t.selected=this.selectedIds.has(t.id);this.recomputeTriState()}getGroupSelectionState(e){let t=e.leafNodes??[];if(t.length===0)return{all:!1,some:!1};let r=0,o=0;for(let i of t)this.isSelectable(i)&&(r++,this.selectedIds.has(i.id)&&o++);return r===0?{all:!1,some:!1}:{all:o===r,some:o>0}}setGroupSelected(e,t){let r=(e.leafNodes??[]).filter(o=>this.isSelectable(o));r.length!==0&&this.applySelection(r.map(o=>({node:o,selected:t})))}setNodeSelected(e,t,r=!1){this.applySelection([{node:e,selected:t,clearOthers:r}])}selectNodeById(e,t=!0,r=!0){let o=this.core.rowModel.getNodeById(e);o&&this.setNodeSelected(o,t,r)}selectFromCheckbox(e,t){let r=t==="single";this.applySelection([{node:e,selected:r?!0:!e.selected,clearOthers:r}]),this.anchorId=e.id}toggleFromModifier(e,t,r){return!r||!t.ctrlKey&&!t.metaKey?!1:(this.applySelection([{node:e,selected:!e.selected}]),this.anchorId=e.id,!0)}selectAnchorRange(e,t,r){if(!r||!t.shiftKey||this.anchorId==null)return!1;let o=this.core.rowModel.getNodeById(this.anchorId);if(!o||o.rowIndex<0||e.rowIndex<0)return!1;let i=Math.min(o.rowIndex,e.rowIndex),s=Math.max(o.rowIndex,e.rowIndex),a=[];for(let l=i;l<=s;l++){let d=this.core.rowModel.getDisplayedRow(l);d&&!d.isDetail&&!d.isGroup&&this.isSelectable(d)&&a.push({node:d,selected:!0})}return this.applySelection(a),!0}onRowClick(e,t,r){let o=this.core.options.rowSelection;if(o==="none"||!this.isSelectable(e))return;if(r){this.selectFromCheckbox(e,o);return}let i=o==="multiple";this.toggleFromModifier(e,t,i)||this.selectAnchorRange(e,t,i)||(this.applySelection([{node:e,selected:!0,clearOthers:!0}]),this.anchorId=e.id)}selectAll(e=!0){let t=this.core.options.rowSelection;if(t==="none")return;let o=(e?this.core.rowModel.getDisplayedRows():this.core.rowModel.getAllNodes()).filter(i=>!i.isDetail&&!i.isGroup&&this.isSelectable(i));if(o.length!==0){if(t==="single"){this.applySelection([{node:o[0],selected:!0,clearOthers:!0}]);return}this.applySelection(o.map(i=>({node:i,selected:!0})))}}deselectAll(){this.applySelection([],!0)}isSelectAllActive(){let t=this.core.rowModel.getDisplayedRows().filter(r=>!r.isDetail&&!r.isGroup).filter(r=>this.isSelectable(r));if(t.length===0)return!1;if(this.core.rowModel.isInfinite){let r=this.core.rowModel.getDisplayTotalCount();if(t.length<r)return!1}return t.every(r=>this.selectedIds.has(r.id))}isSelectAllIndeterminate(){let t=this.core.rowModel.getDisplayedRows().filter(o=>!o.isDetail&&!o.isGroup).filter(o=>this.isSelectable(o)),r=t.reduce((o,i)=>o+(this.selectedIds.has(i.id)?1:0),0);if(r===0)return!1;if(this.core.rowModel.isInfinite){let o=this.core.rowModel.getDisplayTotalCount();if(t.length<o)return!0}return r>0&&r<t.length}applySelectionPublic(e,t=!1){this.applySelection(e,t)}replaceSelection(e,t,r){!t&&!e.some(o=>o.clearOthers)||(this.selectedIds=t?new Set:new Set(e.filter(o=>o.selected).flatMap(o=>r?this.subtreeIds(o.node):[o.node.id])))}applySelectionChanges(e,t){for(let r of e){if(!this.isSelectable(r.node))continue;let o=t?this.subtreeIds(r.node):[r.node.id];for(let i of o)r.selected?this.selectedIds.add(i):this.selectedIds.delete(i)}}changedSelectionIds(e){let t=new Set;for(let r of new Set([...e,...this.selectedIds]))e.has(r)!==this.selectedIds.has(r)&&t.add(r);return t}synchronizeNodeSelection(e,t,r){let o=[],i=new Set([...e,...r,...this.indeterminateIds]);for(let s of this.core.rowModel.getAllNodes()){let a=this.selectedIds.has(s.id);s.selected=a,(i.has(s.id)||t.get(s.id)!==a)&&s.rowIndex>=0&&o.push(s.rowIndex)}return o}applySelection(e,t=!1){let r=new Set(this.selectedIds),o=this.core.rowModel.isTree&&this.core.options.autoCheckedChildren;this.replaceSelection(e,t,o),this.applySelectionChanges(e,o);let i=this.changedSelectionIds(r),s=new Map;for(let d of this.core.rowModel.getAllNodes())s.set(d.id,d.selected);let a=new Set(this.indeterminateIds);this.recomputeTriState();let l=this.synchronizeNodeSelection(i,s,a);i.size>0&&(this.core.bodyRenderer.refreshRows(l),this.core.headerRenderer.refreshSelectAllCheckbox(),this.core.emit("selectionChanged",{selectedNodes:this.getSelectedNodes(),selectedRows:this.getSelectedRows()}))}subtreeIds(e){let t=[e.id],r=o=>{for(let i of this.core.rowModel.getChildrenIds(o))t.push(i),r(i)};return r(e.id),t}recomputeTriState(){if(this.indeterminateIds.clear(),!this.core.rowModel.isTree)return;let e=t=>{let r=this.core.rowModel.getChildrenIds(t);if(r.length===0)return{all:this.selectedIds.has(t),some:this.selectedIds.has(t)};let o=!0,i=!1;for(let s of r){let a=e(s);a.all?i=!0:(a.some&&(i=!0),o=!1)}return i&&!o&&this.indeterminateIds.add(t),o?this.selectedIds.add(t):this.selectedIds.delete(t),{all:o,some:i}};for(let t of this.core.rowModel.getRootNodes())e(t.id);for(let t of this.core.rowModel.getAllNodes())t.selected=this.selectedIds.has(t.id)}};var Be=class{constructor(e){this.core=e;this.active=null;this.rafId=0;this.pendingWidth=0;this.onMove=e=>{let t=this.matchActivePointer(e);t&&(this.pendingWidth=this.widthFromPointer(t,e.clientX),t.didResize||(t.didResize=Math.abs(this.pendingWidth-t.startWidth)>=.5),!this.rafId&&(this.rafId=requestAnimationFrame(()=>{this.rafId=0,this.applyPendingWidth()})))};this.onUp=e=>{let t=this.matchActivePointer(e);t&&(this.pendingWidth=this.widthFromPointer(t,e.clientX),t.didResize||(t.didResize=Math.abs(this.pendingWidth-t.startWidth)>=.5),this.finishResize(t))};this.onCancel=e=>{this.matchActivePointer(e)&&this.cancelResize()};this.onLostPointerCapture=()=>{this.cancelResize()}}startResize(e,t){if(!this.core.options.enableColumnResize||!t.resizable||e.isPrimary===!1)return;this.cancelResize();let r=e.currentTarget,o=t.currentWidth;this.pendingWidth=o,this.active={column:t,didResize:!1,handle:r,pointerId:e.pointerId,startFlex:t.flex,startManualWidth:t.manualWidth,startWidth:o,startX:e.clientX},window.addEventListener("pointermove",this.onMove),window.addEventListener("pointerup",this.onUp,!0),window.addEventListener("pointercancel",this.onCancel,!0),r.addEventListener("lostpointercapture",this.onLostPointerCapture);try{r.setPointerCapture?.(e.pointerId)}catch{}this.core.skeleton.root.classList.add("mach-root--resizing")}cancelResize(e=!0){let t=this.active;t&&(this.active=null,this.clearFrame(),this.removeListeners(t),e&&(t.column.manualWidth=t.startManualWidth,t.column.flex=t.startFlex,this.core.relayoutColumns()),this.core.skeleton.root.classList.remove("mach-root--resizing"))}finishResize(e){this.active=null,this.clearFrame(),e.didResize&&(Math.abs(this.pendingWidth-e.startWidth)<.5?(e.column.manualWidth=e.startManualWidth,e.column.flex=e.startFlex):this.core.columnModel.setColumnWidth(e.column,this.pendingWidth),this.core.relayoutColumns()),this.removeListeners(e);try{e.handle.releasePointerCapture?.(e.pointerId)}catch{}this.core.skeleton.root.classList.remove("mach-root--resizing"),e.didResize&&this.core.commitColumnWidths([e.column])}applyPendingWidth(){let e=this.active;!e||!this.core.columnModel.setColumnWidth(e.column,this.pendingWidth)||(this.core.relayoutColumns(),this.core.emitColumnResize(e.column,!1))}widthFromPointer(e,t){let r=Number.isFinite(t)?t:e.startX;return e.startWidth+r-e.startX}matchActivePointer(e){let t=this.active;return t&&e.pointerId===t.pointerId?t:null}clearFrame(){this.rafId&&cancelAnimationFrame(this.rafId),this.rafId=0}removeListeners(e){window.removeEventListener("pointermove",this.onMove),window.removeEventListener("pointerup",this.onUp,!0),window.removeEventListener("pointercancel",this.onCancel,!0),e.handle.removeEventListener("lostpointercapture",this.onLostPointerCapture)}destroy(){this.cancelResize(!1),this.clearFrame(),this.core.skeleton.root?.classList.remove("mach-root--resizing")}};function f(n,e,t){let r=document.createElement(n);if(e&&(r.className=e),t)for(let o of Object.keys(t))r.setAttribute(o,t[o]);return r}var di=["--mach-font-family","--mach-font-size","--mach-font-size-sm","--mach-header-font-weight","--mach-cell-padding","--mach-header-h","--mach-primary","--mach-primary-weak","--mach-success","--mach-warning","--mach-danger","--mach-info","--mach-border-color","--mach-border-width","--mach-header-bg","--mach-header-fg","--mach-body-bg","--mach-body-fg","--mach-row-hover-bg","--mach-radius-sm","--mach-radius","--mach-radius-lg","--mach-shadow-sm","--mach-shadow","--mach-transition","--mach-z-popup","--mach-z-menu"];function A(n,e){if(n.classList.add("mach-portal"),!e)return;let t=window.getComputedStyle(e);for(let r of di){let o=t.getPropertyValue(r).trim();o&&n.style.setProperty(r,o)}n.style.colorScheme=t.colorScheme}function x(n,e,t){return n<e?e:n>t?t:n}var Br=0;function Vr(n="rg"){return Br++,`${n}-${Br}`}var zr='<svg viewBox="0 0 16 16" width="12" height="12" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M2 3.5h12L9.5 8v4.5L6.5 14V8L2 3.5z"/></svg>',Wr='<svg viewBox="0 0 16 16" width="10" height="10" fill="currentColor"><path d="M8 3l4 5H4l4-5z"/></svg>',_r='<svg viewBox="0 0 16 16" width="10" height="10" fill="currentColor"><path d="M8 13l4-5H4l4 5z"/></svg>',Kr='<svg viewBox="0 0 16 16" width="12" height="12" fill="none" stroke="currentColor" stroke-width="1.35" stroke-linecap="round"><path d="M2 4h3m3 0h6M2 8h7m3 0h2M2 12h1m3 0h8"/><circle cx="6.5" cy="4" r="1.35"/><circle cx="10.5" cy="8" r="1.35"/><circle cx="4.5" cy="12" r="1.35"/></svg>';var $r=6,Ve=class{constructor(e){this.core=e;this.pending=null;this.dragging=null;this.suppressClick=!1;this.moveRaf=0;this.pendingPoint=null;this.onMove=e=>{if(this.dragging){this.scheduleIndicator(e);return}let t=this.pending;t&&(Math.abs(e.clientX-t.startX)<$r&&Math.abs(e.clientY-t.startY)<$r||this.startDrag(e))};this.onUp=e=>{this.pending=null,e.type!=="pointercancel"&&this.dragging&&this.applyIndicator(e.clientX,e.clientY),this.cleanup();let t=this.clearDrag();t&&e.type!=="pointercancel"&&t.targetIndex>=0&&this.core.moveColumn(t.column.id,t.targetIndex)}}onPointerDown(e,t){e.button===0&&t.movable&&(this.pending={column:t,startX:e.clientX,startY:e.clientY},window.addEventListener("pointermove",this.onMove),window.addEventListener("pointerup",this.onUp),window.addEventListener("pointercancel",this.onUp))}didDrag(){let e=this.suppressClick;return this.suppressClick=!1,e}startDrag(e){let t=this.pending;if(!t)return;let r=this.findHeaderCell(t.column);if(!r||!r.parentElement){this.cleanup();return}this.suppressClick=!0;let o=f("div","mach-drop-indicator"),i=f("div","mach-column-drag-ghost");i.textContent=t.column.colDef.headerName??t.column.colDef.field??t.column.id,i.ariaHidden="true",A(i,this.core.skeleton.root),document.body.appendChild(i),r.parentElement.appendChild(o),r.classList.add("mach-header-cell--dragging"),this.core.skeleton.root.classList.add("mach-root--dragging");let s=this.core.bodyRenderer.paneForColumn(t.column),a=this.core.skeleton.headerRowContainers[s],l=this.core.columnModel.getPaneColumns(s),d=new Float64Array(l.length+1),c=new Float64Array(l.length);for(let h=0;h<l.length;h++){let p=l[h].currentWidth;c[h]=d[h]+p/2,d[h+1]=d[h]+p}let u=i.getBoundingClientRect();this.dragging={column:t.column,cellEl:r,ghost:i,indicator:o,targetIndex:-1,pane:s,containerLeft:a.getBoundingClientRect().left,startScrollLeft:this.core.skeleton.bodyViewports.center.scrollLeft,fromIndex:l.indexOf(t.column),midpoints:c,offsets:d,ghostWidth:u.width,ghostHeight:u.height},this.applyIndicator(e.clientX,e.clientY)}findHeaderCell(e){let t=this.core.bodyRenderer.paneForColumn(e);return this.core.skeleton.headerRowContainers[t].querySelector(`.mach-header-cell[data-col-id="${ci(e.id)}"]`)}scheduleIndicator(e){this.pendingPoint={clientX:e.clientX,clientY:e.clientY},!this.moveRaf&&(this.moveRaf=requestAnimationFrame(()=>{this.moveRaf=0;let t=this.pendingPoint;this.pendingPoint=null,t&&this.applyIndicator(t.clientX,t.clientY)}))}applyIndicator(e,t){let r=this.dragging;if(!r)return;let o=x(e+12,8,window.innerWidth-r.ghostWidth-8),i=x(t+12,8,window.innerHeight-r.ghostHeight-8);r.ghost.style.transform=`translate3d(${o}px, ${i}px, 0)`;let s=r.pane==="center"?this.core.skeleton.bodyViewports.center.scrollLeft-r.startScrollLeft:0,a=e-(r.containerLeft-s),l=r.midpoints.length;for(let d=0;d<r.midpoints.length;d++)if(a<r.midpoints[d]){l=d;break}r.targetIndex=l>r.fromIndex?l-1:l,r.indicator.style.transform=`translate3d(${r.offsets[l]}px, 0, 0)`}clearDrag(){let e=this.dragging;return e?(this.dragging=null,e.cellEl.classList.remove("mach-header-cell--dragging"),e.ghost.remove(),e.indicator.remove(),this.core.skeleton.root.classList.remove("mach-root--dragging"),e):null}cleanup(){window.removeEventListener("pointermove",this.onMove),window.removeEventListener("pointerup",this.onUp),window.removeEventListener("pointercancel",this.onUp),this.moveRaf&&cancelAnimationFrame(this.moveRaf),this.moveRaf=0,this.pendingPoint=null}destroy(){this.cleanup(),this.clearDrag(),this.pending=null}};function ci(n){return typeof CSS<"u"&&typeof CSS.escape=="function"?CSS.escape(n):n.replace(/[^a-zA-Z0-9_-]/g,"\\$&")}function Ur(n,e){let t=n==null?"":String(n);return t.includes(e)||t.includes('"')||t.includes(`
2
2
  `)||t.includes("\r")?'"'+t.replace(/"/g,'""')+'"':t}function ge(n){return typeof n!="string"||n===""||/^[+-]?(?:\d+(?:\.\d+)?|\.\d+)(?:[eE][+-]?\d+)?$/.test(n)?n:/^[\s\u0000-\u001f]*[=+\-@]/.test(n)?"'"+n:n}function Ut(n,e={}){let t=e.columnSeparator??",",r=e.includeHeader??!0,o=e.protectFormulas??!0,i=[];r&&i.push(n.getHeaderLabels().map(a=>Ur(a,t)).join(t));for(let a of n.getRowValues())i.push(a.map(l=>Ur(o?ge(l):l,t)).join(t));let s=i.join(`\r
3
3
  `);return e.prependBOM?"\uFEFF"+s:s}function ui(n,e){let t=e?ge(n):n,r=t==null?"":String(t);return/["\t\n\r]/.test(r)?'"'+r.replace(/"/g,'""')+'"':r}function le(n,e=!0){return n.map(t=>t.map(r=>ui(r,e)).join(" ")).join(`
4
4
  `)}function ze(n){return _e(n," ")}function We(n,e=","){return _e(n,e)}function _e(n,e){let t=[],r=[],o="",i=!1,s=0;for(;s<n.length;){let a=n[s];if(i){if(a==='"'){if(n[s+1]==='"'){o+='"',s+=2;continue}i=!1,s++;continue}o+=a,s++;continue}if(a==='"'&&o===""){i=!0,s++;continue}if(a===e){r.push(o),o="",s++;continue}if(a===`
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- var Se="0.29.1";var De=class{constructor(e){this.onListenerError=e;this.listeners=new Map}on(e,t){let r=this.listeners.get(e);return r||(r=new Set,this.listeners.set(e,r)),r.add(t),()=>{r.delete(t)}}once(e,t){let r=this.on(e,o=>{r(),t(o)});return r}off(e,t){let r=this.listeners.get(e);r&&(r.delete(t),r.size===0&&this.listeners.delete(e))}emit(e,t){let r=this.listeners.get(e);if(r)for(let o of[...r])try{o(t)}catch(i){console.error(`[mach-table] error in "${e}" listener`,i),this.onListenerError?.(i,e)}}clear(){this.listeners.clear()}};var $o=new Set(["__proto__","prototype","constructor"]);function le(n){return typeof n!="string"||n.length===0?!1:n.split(".").every(t=>t.length>0&&!$o.has(t))}function X(n,e){if(n==null||!le(e))return;if(e.indexOf(".")<0)return n[e];let r=n,o=0;for(;o<e.length;){if(r==null)return;let i=e.indexOf(".",o);if(i<0){r=r[e.slice(o)];break}r=r[e.slice(o,i)],o=i+1}return r}function te(n,e,t){if(n==null||!le(e))return!1;let r=e.split("."),o=n;for(let i=0;i<r.length-1;i++){if(typeof o!="object"&&typeof o!="function"||o===null)return!1;o[r[i]]==null&&(o[r[i]]={}),o=o[r[i]]}return typeof o!="object"&&typeof o!="function"||o===null?!1:(o[r[r.length-1]]=t,!0)}var Uo=new Set(["contains","notContains","equals","notEquals","startsWith","endsWith","blank","notBlank"]),qo=new Set(["equals","notEquals","lessThan","lessThanOrEqual","greaterThan","greaterThanOrEqual","inRange","blank","notBlank"]),jo=new Set(["equals","notEquals","lessThan","greaterThan","inRange","blank","notBlank"]);function Yo(n){return n==null||typeof n=="string"||typeof n=="number"&&Number.isFinite(n)}function Xo(n){return n==="text"?Uo:n==="number"?qo:jo}function Qo(n,e,t){if(n==null||typeof n!="object")return null;let r=n;return typeof r.match!="string"||!t.has(r.match)?null:{match:r.match,...Jo(r,e)}}function Jo(n,e){let t=e==="number"?fr(n.value):typeof n.value=="string"?n.value:void 0,r=e==="number"?fr(n.value2):typeof n.value2=="string"?n.value2:void 0;return{...t!==void 0?{value:t}:{},...r!==void 0?{value2:r}:{}}}function fr(n){return typeof n=="number"&&Number.isFinite(n)?n:void 0}function Zo(n,e){let t=[],r=Xo(e);for(let o of n.slice(0,20)){let i=Qo(o,e,r);i&&t.push(i)}return t}function Rt(n){if(n==null||typeof n!="object")return null;let e=n;return e.type==="set"?Array.isArray(e.values)?{type:"set",values:e.values.filter(Yo).slice(0,2e3)}:null:e.type!=="text"&&e.type!=="number"&&e.type!=="date"||!Array.isArray(e.conditions)?null:{type:e.type,...e.operator==="or"||e.operator==="and"?{operator:e.operator}:{},conditions:Zo(e.conditions,e.type)}}function en(n,e){if(typeof n.colId!="string"||!n.colId.trim())return null;let t=n.colId.trim();if(e.validColumnIds?.has(t)===!1)return null;let r=Rt(n.filter);return r?{kind:"condition",colId:t,filter:r}:null}function tn(n,e,t){if(!Array.isArray(n.children))return null;let r=[];for(let o of n.children){let i=mr(o,e+1,t);i&&r.push(i)}return r.length===0?null:{kind:"group",operator:n.operator==="or"?"or":"and",children:r,...n.not===!0?{not:!0}:{}}}function rn(n,e,t){return e<=16&&t.nodes<512&&n!=null&&typeof n=="object"}function mr(n,e,t){if(!rn(n,e,t)||t.ancestors.has(n))return null;t.ancestors.add(n),t.nodes++;let r=n,o=r.kind==="condition"?en(r,t):r.kind==="group"?tn(r,e,t):null;return t.ancestors.delete(n),o}function z(n,e){if(n==null||typeof n!="object")return null;let t=n;if(t.version!==1||t.root==null)return null;let r=mr(t.root,0,{ancestors:new WeakSet,nodes:0,validColumnIds:e});return r?{version:1,root:r}:null}function on(n,e){return{kind:"condition",colId:n,filter:e}}function de(n,e){if(n==null||typeof n!="object"||Array.isArray(n))return{};let t={};for(let[r,o]of Object.entries(n).slice(0,2e3)){let i=r.trim();if(!i||e?.has(i)===!1)continue;let s=Rt(o);s&&(t[i]=s)}return t}function nn(n,e,t={}){return{kind:"group",operator:n,children:e,...t.not?{not:!0}:{}}}var St={align:"center",sortable:!0,resizable:!0,movable:!0,filter:!1,minWidth:80},ce={compact:{rowHeight:30,headerHeight:34,fontSize:12,cellPadding:6},normal:{rowHeight:36,headerHeight:40,fontSize:13,cellPadding:9},large:{rowHeight:44,headerHeight:48,fontSize:14,cellPadding:12}};function S(n,e,t,r=!1){return typeof n!="number"||!Number.isFinite(n)||n<t?e:r?Math.floor(n):n}function sn(n){return n&&Object.prototype.hasOwnProperty.call(ce,n)?n:"normal"}function an(n){return n.theme==="light"||n.theme==="dark"||n.theme==="auto"?n.theme:"light"}function ln(n,e){let t=typeof n.pagination=="object"&&Array.isArray(n.pagination.pageSizeOptions)?n.pagination.pageSizeOptions:void 0,r=t?[...new Set(t.map(o=>S(o,0,1,!0)).filter(Boolean))]:[10,20,50,100];return r.includes(e)||r.push(e),r.sort((o,i)=>o-i)}function Dt(n,e){let t=typeof n=="function"?n(e):X(e,n);return t==null?"":String(t)}function dn(n){let e=n.rowKey,t=e?({data:r})=>Dt(e,r):void 0;return{...t?{resolveRowId:t}:{},...e?{rowKey:e}:{}}}function cn(n,e){let t=ce[e];return{columnDefs:Array.isArray(n.columnDefs)?n.columnDefs:[],rowData:Array.isArray(n.rowData)?n.rowData:[],defaultColDef:{...St,...n.defaultColDef??{}},columnTypes:n.columnTypes??{},...dn(n),rowHeight:S(n.rowHeight,t.rowHeight,1),headerHeight:S(n.headerHeight,t.headerHeight,1),rowBuffer:S(n.rowBuffer,8,0,!0),columnLayout:n.columnLayout==="fit"?"fit":"normal",enableColumnResize:n.enableColumnResize===!0,domLayout:n.domLayout==="autoHeight"?"autoHeight":"normal",rowSelection:n.rowSelection==="single"||n.rowSelection==="multiple"?n.rowSelection:"none",multiSort:n.multiSort??!0,size:e,pinnedTopRowData:Array.isArray(n.pinnedTopRowData)?n.pinnedTopRowData:[],pinnedBottomRowData:Array.isArray(n.pinnedBottomRowData)?n.pinnedBottomRowData:[]}}function un(n){return{stripedRows:n.stripedRows??!1,showCellBorders:n.showCellBorders??!1,theme:an(n),quickFilterText:n.quickFilterText??null,suppressCellFocus:n.suppressCellFocus??!1,suppressRowHoverHighlight:n.suppressRowHoverHighlight??!1,suppressNoRowsOverlay:n.suppressNoRowsOverlay??!1,suppressHeaderFocus:n.suppressHeaderFocus??!1,loading:n.loading??!1,error:n.error??null,className:n.className??""}}function hn(n){return{editType:n.editType==="fullRow"?"fullRow":"cell",editableIndicator:n.editableIndicator==="always"||n.editableIndicator==="none"?n.editableIndicator:"hover",singleClickEdit:n.singleClickEdit??!1,manualSorting:n.manualSorting??!1,manualFiltering:n.manualFiltering??!1,showSummary:n.showSummary??!1,indexOffset:n.indexOffset??0,applyRowDrag:n.applyRowDrag??!0,undoStackSize:S(n.undoStackSize,100,0,!0),asyncTransactionWaitMillis:S(n.asyncTransactionWaitMillis,16,0,!0)}}function pn(n){return{masterDetail:n.masterDetail??!1,detailRowHeight:S(n.detailRowHeight,240,1),detailToggleColumn:n.detailToggleColumn??!0,treeData:n.treeData??!1,childrenKey:n.childrenKey??"children",autoCheckedChildren:n.autoCheckedChildren??!0,defaultExpandAll:n.defaultExpandAll??!1}}function fn(n){let e=typeof n.pagination=="object"?n.pagination:void 0,t=S(e?.pageSize,20,1,!0);return{paginationEnabled:n.pagination!==!1&&n.datasource==null,paginationMode:e?.mode==="server"?"server":"client",paginationPage:S(e?.page,1,1,!0),paginationTotal:S(e?.total,0,0,!0),paginationPageSize:t,paginationPageSizeOptions:ln(n,t),paginationShowTotal:e?e.showTotal!==!1:!0,paginationShowSizeSelector:e?e.showPageSizeSelector!==!1:!0}}function mn(n){return{watermarkEnabled:n.watermark!=null&&n.watermark!==!1,watermarkConfig:n.watermark==null||n.watermark===!1?null:n.watermark===!0?{text:"MachTable"}:n.watermark}}function gn(n){return{columnMenu:n.columnMenu??!1,advancedFilterModel:z(n.advancedFilterModel),...yn(n),locale:n.locale??{},suppressWarnings:n.suppressWarnings??!1,enableRangeSelection:n.enableRangeSelection??!1,suppressClipboard:n.suppressClipboard??!1,contextMenu:n.contextMenu??!1,tooltipShowDelay:S(n.tooltipShowDelay,600,0),flashCells:n.flashCells??!0,fillHandle:n.fillHandle??!0,statusBarEnabled:n.statusBar===!0||typeof n.statusBar=="object"&&n.statusBar!=null,statusBarPanels:typeof n.statusBar=="object"&&n.statusBar?.panels?n.statusBar.panels:["rowCount","selectedRowCount","rangeAggregate"]}}function yn(n){let e=n.persistence;return!e||typeof e.key!="string"||!e.key.trim()?{persistence:null}:{persistence:{key:e.key.trim(),debounceMs:S(e.debounceMs,160,0,!0),...e.sections?{sections:[...new Set(e.sections)]}:{},...e.store?{store:e.store}:{}}}}function vn(n){return{datasourceMode:n.datasourceMode==="block"?"block":"sequential",blockSize:S(n.blockSize,100,1,!0),infiniteBufferRows:S(n.infiniteBufferRows,40,0,!0),maxBlocksInCache:S(n.maxBlocksInCache,12,1,!0),datasourceMaxConcurrentRequests:S(n.datasourceMaxConcurrentRequests,4,1,!0),blockPrefetch:S(n.blockPrefetch,1,0,!0),datasourceRowCount:n.datasourceRowCount==null?null:S(n.datasourceRowCount,0,0,!0),dataProcessorMinRows:S(n.dataProcessorMinRows,5e3,1,!0),datasourceRetryCount:S(n.datasourceRetryCount,2,0,!0),datasourceRetryDelay:S(n.datasourceRetryDelay,300,0,!0),datasourceRetryJitter:Math.min(1,S(n.datasourceRetryJitter,.15,0))}}function wn(n){return{ariaLabel:n.ariaLabel??"MachTable data grid",ariaLabelledBy:n.ariaLabelledBy??"",ariaDescribedBy:n.ariaDescribedBy??"",overlayNoRowsTemplate:n.overlayNoRowsTemplate??"",overlayLoadingTemplate:n.overlayLoadingTemplate??"",overlayErrorTemplate:n.overlayErrorTemplate??"",allowUnsafeOverlayHtml:n.allowUnsafeOverlayHtml??!1}}var bn=["detailRowRenderer","isRowExpandable","aggFuncs","components","actionPolicy","summaryMethod","datasource","getRowHeight","tooltipComponent","getContextMenuItems","initialState","rowEditValidator","isTreeRowExpandable","loadTreeChildren","dataProcessor"];function Cn(n,e){for(let t of bn)n[t]&&Object.assign(e,{[t]:n[t]})}function Tn(n,e){for(let t of Object.keys(n))t.startsWith("on")&&typeof n[t]=="function"&&Object.assign(e,{[t]:n[t]})}function gr(n){let e=sn(n.size),t={...cn(n,e),...un(n),...hn(n),...pn(n),...fn(n),...mn(n),...gn(n),...vn(n),...wn(n),features:Array.isArray(n.features)?n.features:[]};return Cn(n,t),Tn(n,t),t}function yr(n){return Array.isArray(n)?n.filter(e=>typeof e=="string"&&e.length>0):typeof n=="string"&&n.length>0?[n]:[]}function re(n,e){return yr(n.type).includes(e)}function vr(n,e,t={}){let r={};for(let o of yr(n.type)){let i=t[o];i&&Object.assign(r,i)}return{...e,...r,...n}}var W=class{constructor(e,t){this.manualWidth=null;this.flex=null;this.currentWidth=0;this.parentGroup=null;this.level=0;this.isDetailToggle=!1;this.id=e,this.colDef=t,this.hide=t.hide??!1;let r=t.pinned;this.pinned=r===!0?"left":r===!1||r==null?null:r,this.resetWidth()}get sortable(){return this.colDef.sortable!==!1}get resizable(){return this.colDef.resizable!==!1}get movable(){return this.colDef.movable!==!1}get filterable(){return this.colDef.filter!=null&&this.colDef.filter!==!1}get filterType(){let e=this.colDef.filter;return e===!0?"text":e??"text"}get hasCheckbox(){return this.colDef.checkboxSelection===!0}resetWidth(){this.manualWidth=null,this.flex=typeof this.colDef.flex=="number"&&Number.isFinite(this.colDef.flex)&&this.colDef.flex>0?this.colDef.flex:null}};var Q=class n{constructor(e,t){this.parent=null;this.children=[];this.groupId=e,this.def=t}get headerName(){return this.def.headerName??this.def.groupId??""}getLeafColumns(e=[]){for(let t of this.children)t instanceof n?t.getLeafColumns(e):e.push(t);return e}};function ue(n){return Array.isArray(n.children)}function Ee(n,e){return typeof n=="number"&&Number.isFinite(n)&&n>0?n:e}function wr(n){let e=Ee(n.minWidth,80);return{min:e,max:Math.max(e,Ee(n.maxWidth,Number.MAX_SAFE_INTEGER))}}function N(n,e){let{min:t,max:r}=wr(e),o=Ee(n,Ee(e.width,150));return Math.max(t,Math.min(r,o))}function br(n,e){let t=n.map(s=>N(s.width??150,s)),r=[],o=0;n.forEach((s,a)=>{let l=s.flex??0;l>0&&(r.push(a),o+=l)});let i=0;for(let s of t)i+=s;if(o>0&&e>i){let s=e-i;for(let a=0;a<4&&s>.5&&r.length>0;a++){let l=[],d=0;for(let p of r){let m=n[p].flex??0;l.push(p),d+=m}let c=[];for(let p=0;p<l.length;p++){let m=l[p],y=n[m].flex??0,v=s*y/d,g=t[m];t[m]=N(g+v,n[m]),c.push(t[m]-g)}let u=0;for(let p of c)u+=p;s-=u;let h=l.filter((p,m)=>c[m]>.001);if(h.length===l.length)break;r.length=0;for(let p of h)r.push(p)}}return t}function Rn(n,e,t){let r=new Set(n.map((i,s)=>s)),o=t;for(let i=0;i<n.length+1&&r.size>0;i++){let s=0;for(let l of r)s+=Math.max(1,e[l]);if(s<=0)break;let a=!1;for(let l of[...r]){let d=o*(Math.max(1,e[l])/s),c=N(d,n[l]),{min:u,max:h}=wr(n[l]);(d<u||d>h)&&(e[l]=c,o-=c,r.delete(l),a=!0)}if(!a){for(let l of r)e[l]=N(o*(Math.max(1,e[l])/s),n[l]);break}o=Math.max(0,o)}}function Sn(n,e,t){let r=t-e.reduce((o,i)=>o+i,0);if(!(Math.abs(r)<=.01))for(let o=e.length-1;o>=0;o--){let i=N(e[o]+r,n[o]);if(Math.abs(i-e[o])>.01){e[o]=i;return}}}function Cr(n,e){let t=n.map(r=>N(r.width??150,r));return!Number.isFinite(e)||e<=0||n.length===0||(Rn(n,t,e),Sn(n,t,e)),t}var Et="__rg_detail_toggle__";function xe(n){return typeof n=="number"&&Number.isFinite(n)&&n>0}var Me=class{constructor(e){this.core=e;this.columns=[];this.rootChildren=[];this.left=[];this.center=[];this.right=[];this.sortModel=[];this.defs=[];this.headerDepth=1;this.flatIndexById=new Map;this.viewportWidth=0}setColumnDefs(e){this.defs=e?[...e]:[];let t=new Map(this.columns.map(s=>[s.id,s])),r=this.core.options.defaultColDef,o=new Set(this.core.options.masterDetail&&this.core.options.detailToggleColumn?[Et]:[]),i=(s,a,l)=>s.map((d,c)=>{if(ue(d)){let g=d.groupId??d.headerName??`group_${c}_${l}`,b=new Q(g,d);return b.parent=a,b.children=i(d.children,b,l+1),b}let u=d,h=u.colId??u.field??`col_${c}`,p=h,m=2;for(;o.has(p);)p=`${h}_${m++}`;o.add(p);let y=new W(p,vr(u,r,this.core.options.columnTypes));y.parentGroup=a,y.level=l;let v=t.get(p);return v&&(y.manualWidth=v.manualWidth,y.flex=v.flex,y.hide=v.hide,y.pinned=v.pinned),y});if(this.rootChildren=i(this.defs,null,0),this.core.options.masterDetail&&this.core.options.detailToggleColumn){let s=new W(Et,{colId:Et,headerName:"",width:38,pinned:"left",sortable:!1,resizable:!1,movable:!1,filter:!1});s.isDetailToggle=!0,this.rootChildren.unshift(s)}if(this.columns=this.collectLeaves(this.rootChildren),this.headerDepth=this.columns.reduce((s,a)=>Math.max(s,a.level+1),1),this.sortModel=this.sortModel.filter(s=>this.columns.some(a=>a.id===s.colId)),this.sortModel.length===0){let s=[];for(let a of this.columns)a.colDef.initialSort&&s.push({colId:a.id,direction:a.colDef.initialSort});this.sortModel=s}this.regroup()}collectLeaves(e,t=[]){for(let r of e)r instanceof Q?this.collectLeaves(r.children,t):t.push(r);return t}regroup(){let e=this.columns.filter(t=>!t.hide);this.left=e.filter(t=>t.pinned==="left"),this.right=e.filter(t=>t.pinned==="right"),this.center=e.filter(t=>t.pinned===null),this.flatIndexById.clear(),this.getOrderedVisible().forEach((t,r)=>this.flatIndexById.set(t.id,r))}getFlatIndex(e){return this.flatIndexById.get(e)??-1}getColumns(){return this.columns}getColumnDefs(){return this.defs}getRootChildren(){return this.rootChildren}getHeaderDepth(){return this.headerDepth}getColumn(e){return this.columns.find(t=>t.id===e)}getPaneColumns(e){return e==="left"?this.left:e==="right"?this.right:this.center}getOrderedVisible(){return[...this.left,...this.center,...this.right]}getRowGroupColumns(){return this.getOrderedVisible().filter(e=>e.colDef.rowGroup===!0)}getAggColumns(){return this.getOrderedVisible().filter(e=>e.colDef.aggFunc!=null&&e.colDef.rowGroup!==!0)}hasColSpan(){return this.center.some(e=>e.colDef.colSpan!=null)}getGroupLabelColumn(){let e=this.getOrderedVisible();return this.center.find(t=>!t.hasCheckbox&&!t.isDetailToggle)??e.find(t=>!t.hasCheckbox&&!t.isDetailToggle)??e[0]}paneOf(e){return e.pinned==="left"?"left":e.pinned==="right"?"right":"center"}computeLayout(e){this.viewportWidth=e;let t=0;for(let c of[...this.left,...this.right])c.currentWidth=N(c.manualWidth??c.colDef.width??150,this.widthInputOf(c)),t+=c.currentWidth;let r=Math.max(0,e-t),o=[],i=[];for(let c of this.center)(c.colDef.suppressSizeToFit||c.manualWidth!=null?i:o).push(c);let s=0;for(let c of i)c.currentWidth=N(c.manualWidth??c.colDef.width??150,this.widthInputOf(c)),s+=c.currentWidth;let a=o.map(c=>this.widthInputOf(c)),l=Math.max(0,r-s),d=this.core.options.columnLayout==="fit"?Cr(a,l):br(a,l);o.forEach((c,u)=>{c.currentWidth=d[u]})}widthInputOf(e){let t=e.colDef;return e.manualWidth!=null?{width:e.manualWidth,minWidth:t.minWidth,maxWidth:t.maxWidth}:{width:t.width,minWidth:t.minWidth,maxWidth:t.maxWidth,...e.flex!=null?{flex:e.flex}:{}}}setColumnWidth(e,t){return xe(t)?(e.manualWidth=N(t,this.widthInputOf(e)),e.flex=null,!0):!1}setColumnVisibility(e,t){let r=this.getColumn(e);!r||r.hide===!t||(r.hide=!t,this.regroup())}moveColumn(e,t){let r=this.getColumn(e);if(!r)return!1;let o=this.paneOf(r),i=u=>r.parentGroup?!0:this.paneOf(u)===o,s=r.parentGroup?r.parentGroup.children:this.rootChildren,a=s.filter(u=>u instanceof W&&!u.hide&&i(u)),l=a.indexOf(r);if(l<0)return!1;a.splice(l,1);let d=Math.max(0,Math.min(t,a.length));a.splice(d,0,r);let c=[];return s.forEach((u,h)=>{u instanceof W&&!u.hide&&i(u)&&c.push(h)}),c.length!==a.length?!1:(c.forEach((u,h)=>{s[u]=a[h]}),this.columns=this.collectLeaves(this.rootChildren),this.regroup(),!0)}setColumnPinned(e,t){let r=this.getColumn(e);!r||!r.movable||(r.pinned=t,this.regroup())}getColumnState(){return this.columns.map(e=>({colId:e.id,hide:e.hide,width:e.manualWidth??e.currentWidth,flex:e.flex,widthMode:e.manualWidth==null?"auto":"manual",pinned:e.pinned}))}applyColumnState(e){let t=new Map(e.map(r=>[r.colId,r]));for(let r of this.columns){let o=t.get(r.id);o&&this.applyColumnViewState(r,o)}this.applyStateOrder(e),this.regroup()}applyColumnViewState(e,t){typeof t.hide=="boolean"&&(e.hide=t.hide),t.widthMode==="auto"?(e.resetWidth(),xe(t.flex)&&(e.flex=t.flex)):xe(t.flex)?(e.flex=t.flex,e.manualWidth=null):xe(t.width)&&(e.manualWidth=N(t.width,this.widthInputOf(e)),e.flex=null),e.movable&&(t.pinned==="left"||t.pinned==="right"||t.pinned===null)&&(e.pinned=t.pinned)}applyStateOrder(e){let t=new Map;e.forEach((o,i)=>t.set(o.colId,i));let r=o=>o.pinned==="left"?"left":o.pinned==="right"?"right":"center";for(let o of["left","center","right"]){let i=this.rootChildren.filter(d=>d instanceof W&&!d.hide&&d.parentGroup===null&&r(d)===o);if(i.length<2)continue;let s=i.filter(d=>d.movable),a=s.slice().sort((d,c)=>(t.get(d.id)??Number.MAX_SAFE_INTEGER)-(t.get(c.id)??Number.MAX_SAFE_INTEGER));if(a.every((d,c)=>d===s[c]))continue;let l=[];this.rootChildren.forEach((d,c)=>{d instanceof W&&!d.hide&&d.parentGroup===null&&r(d)===o&&d.movable&&l.push(c)}),l.forEach((d,c)=>{this.rootChildren[d]=a[c]})}this.columns=this.collectLeaves(this.rootChildren)}resetColumnState(){for(let e of this.columns){e.resetWidth(),e.hide=e.colDef.hide??!1;let t=e.colDef.pinned;e.pinned=t===!0?"left":t===!1||t==null?null:t}this.regroup()}getSortModel(){return this.sortModel.map(e=>({...e}))}applySortModel(e){if(!e||e.length===0){this.sortModel=[];return}this.sortModel=e.filter(t=>this.columns.some(r=>r.id===t.colId)&&(t.direction==="asc"||t.direction==="desc")).map(t=>({colId:t.colId,direction:t.direction}))}cycleSort(e,t){let r=[...this.sortModel],o=r.findIndex(l=>l.colId===e.id),i=o>=0?r[o].direction:null,s=i===null?"asc":i==="asc"?"desc":null;t&&this.core.options.multiSort?s===null?o>=0&&r.splice(o,1):o>=0?r[o]={colId:e.id,direction:s}:r.push({colId:e.id,direction:s}):(r.length=0,s&&r.push({colId:e.id,direction:s})),this.sortModel=r}};function Rr(n){return n==null?"":String(n).toLowerCase()}function Dn(n,e,t){let r=Rr(n),o=e.map(i=>{let s=(i.value??"").toLowerCase();switch(i.match){case"contains":return r.includes(s);case"notContains":return!r.includes(s);case"equals":return r===s;case"notEquals":return r!==s;case"startsWith":return r.startsWith(s);case"endsWith":return r.endsWith(s);case"blank":return r==="";case"notBlank":return r!=="";default:return!0}});return o.length===0?!0:t==="or"?o.some(Boolean):o.every(Boolean)}function En(n,e,t){switch(t.match){case"equals":return n===e;case"notEquals":return n!==e;case"lessThan":return n<e;case"lessThanOrEqual":return n<=e;case"greaterThan":return n>e;case"greaterThanOrEqual":return n>=e;case"inRange":return n>=e&&n<=(t.value2??e);default:return!0}}function xn(n,e){let t=n==null||n==="";if(e.match==="blank")return t;if(e.match==="notBlank")return!t;if(t)return!1;let r=typeof n=="number"?n:Number(n);if(Number.isNaN(r))return!1;let o=e.value;return o==null||Number.isNaN(o)?!1:En(r,o,e)}function Mn(n,e,t){let r=e.map(o=>xn(n,o));return r.length===0?!0:t==="or"?r.some(Boolean):r.every(Boolean)}function ke(n){if(n==null||n==="")return null;if(n instanceof Date)return isNaN(n.getTime())?null:n.getTime();if(typeof n=="number")return n;let e=Date.parse(String(n));return isNaN(e)?null:e}function kn(n,e,t){let r=e.map(o=>{let i=ke(n)==null;if(o.match==="blank")return i;if(o.match==="notBlank")return!i;if(i)return!1;let s=ke(n),a=o.value!=null?ke(o.value):null;if(a==null)return!1;switch(o.match){case"equals":return s===a;case"notEquals":return s!==a;case"lessThan":return s<a;case"greaterThan":return s>a;case"inRange":{let l=o.value2!=null?ke(o.value2):null;return l!=null?s>=a&&s<=l:s>=a}default:return!0}});return r.length===0?!0:t==="or"?r.some(Boolean):r.every(Boolean)}function In(n,e){return e.length===0?!0:e.some(t=>t==null&&n==null||t===n)}function Sr(n,e){let t=e.type!=="set"&&e.operator==="or"?"or":"and";switch(e.type){case"text":return Dn(n,e.conditions,t);case"number":return Mn(n,e.conditions,t);case"date":return kn(n,e.conditions,t);case"set":return In(n,e.values);default:return!0}}function xt(n,e,t,r){if(n.kind==="condition"){let i=e.get(n.colId);return!i||Sr(r(t,i),n.filter)}let o=n.operator==="or"?n.children.some(i=>xt(i,e,t,r)):n.children.every(i=>xt(i,e,t,r));return n.not?!o:o}function Ln(n,e,t,r){return t?xt(t.root,new Map(e.map(o=>[o.id,o])),n,r):!0}function Mt(n,e,t,r,o,i){for(let s of Object.keys(t)){let a=t[s],l=e.find(c=>c.id===s);if(!l)continue;let d=i(n,l);if(!Sr(d,a))return!1}if(!Ln(n,e,r,i))return!1;if(o&&o.trim()!==""){let s=o.trim().toLowerCase().split(/\s+/);for(let a of s)if(!e.some(d=>Rr(i(n,d)).includes(a)))return!1}return!0}var Dr=typeof Intl<"u"?new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"}):null;function An(n,e){let t=n==null||n==="",r=e==null||e==="";return!t&&!r?null:t&&r?0:t?1:-1}function Pn(n,e){let t=Number.isNaN(n),r=Number.isNaN(e);return t||r?t===r?0:t?1:-1:n-e}function Gn(n,e){return n===e?0:n?1:-1}function Ie(n,e){let t=An(n,e);if(t!==null)return t;if(typeof n=="number"&&typeof e=="number")return Pn(n,e);if(n instanceof Date&&e instanceof Date)return n.getTime()-e.getTime();if(typeof n=="boolean"&&typeof e=="boolean")return Gn(n,e);let r=String(n),o=String(e);return Dr?Dr.compare(r,o):r.localeCompare(o)}function kt(n,e,t,r){let o=new Map;for(let l of t)o.set(l.id,l);let i=[],s=[];for(let l of e){let d=o.get(l.colId);d&&(i.push(d.colDef.comparator??Ie),s.push(l.direction))}let a=n.map(l=>({node:l,values:e.map(d=>r(l,o.get(d.colId)))}));return a.sort((l,d)=>{for(let c=0;c<i.length;c++){let u=i[c](l.values[c],d.values[c],l.node,d.node);if(u!==0)return s[c]==="asc"?u:-u}return 0}),a.map(l=>l.node)}function Le(n){return n.filter(e=>typeof e=="number"&&!isNaN(e))}var Er={sum:n=>Le(n).reduce((e,t)=>e+t,0),avg:n=>{let e=Le(n);return e.length===0?null:e.reduce((t,r)=>t+r,0)/e.length},count:n=>n.length,min:n=>{let e=Le(n);return e.length===0?null:Math.min(...e)},max:n=>{let e=Le(n);return e.length===0?null:Math.max(...e)},first:n=>n.length>0?n[0]:null,last:n=>n.length>0?n[n.length-1]:null};function It(n){let e={...Er,...n??{}};return t=>e[t]}function oe(n){if(n.reason instanceof Error)return n.reason;let e=new Error(typeof n.reason=="string"?n.reason:"Block request aborted");return e.name="AbortError",e}function Ae(n){return Number.isFinite(n)?Math.max(1,Math.trunc(n)):1}var Pe=class{constructor(e,t,r=4){this.maxBlocks=e;this.onEvict=t;this.maxConcurrentRequests=r;this.blocks=new Map;this.inflight=new Map;this.clock=0;this.generation=0;this.hitCount=0;this.missCount=0;this.evictionCount=0;this.activeRequests=0;this.maxBlocks=Ae(e),this.maxConcurrentRequests=Ae(r)}configure(e,t=this.maxConcurrentRequests){this.maxBlocks=Ae(e),this.maxConcurrentRequests=Ae(t),this.evictOverflow(),this.drainQueue()}peek(e){let t=this.blocks.get(e);if(t)return t.touchedAt=++this.clock,t}has(e){return this.blocks.has(e)}load(e,t,r,o=0){if(r?.aborted)return Promise.reject(oe(r));let i=this.peek(e);if(i)return this.hitCount++,Promise.resolve(i);let s=this.inflight.get(e);if(s)return this.hitCount++,s.priority=Math.max(s.priority,o),this.drainQueue(),this.attachConsumer(e,s,r);this.missCount++;let a=new AbortController,l,d,c=new Promise((p,m)=>{l=p,d=m}),u={controller:a,promise:c,consumers:0,loader:t,priority:o,state:"queued",resolve:l,reject:d};this.inflight.set(e,u);let h=this.attachConsumer(e,u,r);return this.drainQueue(),h}purge(){this.generation++;for(let e of this.inflight.values())e.controller.abort(),e.state==="queued"&&e.reject(oe(e.controller.signal));this.inflight.clear();for(let[e,t]of this.blocks)this.onEvict?.(e,t);this.blocks.clear()}snapshot(){let e=0,t=0;for(let r of this.blocks.values())e+=r.rows.length;for(let r of this.inflight.values())r.state==="active"&&t++;return{cachedBlockCount:this.blocks.size,loadingBlockCount:this.inflight.size,activeRequestCount:t,queuedRequestCount:Math.max(0,this.inflight.size-t),cachedRowCount:e,hitCount:this.hitCount,missCount:this.missCount,evictionCount:this.evictionCount}}drainQueue(){for(;this.activeRequests<this.maxConcurrentRequests;){let e,t;for(let[r,o]of this.inflight)o.state!=="queued"||o.controller.signal.aborted||(!t||o.priority>t.priority)&&(e=r,t=o);if(e==null||!t)return;this.startEntry(e,t)}}startEntry(e,t){t.state="active",this.activeRequests++;let r=this.generation;this.runLoader(t).then(o=>{r===this.generation&&!t.controller.signal.aborted&&(this.blocks.set(e,{rows:o.rows,...o.lastRow==null?{}:{lastRow:o.lastRow},touchedAt:++this.clock}),this.evictOverflow()),t.resolve(o)},t.reject).finally(()=>{this.activeRequests=Math.max(0,this.activeRequests-1),this.inflight.get(e)===t&&this.inflight.delete(e),this.drainQueue()})}runLoader(e){let{signal:t}=e.controller;return t.aborted?Promise.reject(oe(t)):new Promise((r,o)=>{let i=()=>o(oe(t));t.addEventListener("abort",i,{once:!0}),Promise.resolve().then(()=>e.loader(t)).then(r,o).finally(()=>{t.removeEventListener("abort",i)})})}attachConsumer(e,t,r){return t.consumers++,new Promise((o,i)=>{let s=!1,a=d=>{s||(s=!0,r?.removeEventListener("abort",l),t.consumers=Math.max(0,t.consumers-1),d())},l=()=>a(()=>{t.consumers===0&&this.inflight.get(e)===t&&(this.inflight.delete(e),t.controller.abort(r?.reason),t.state==="queued"&&t.reject(oe(t.controller.signal))),i(oe(r))});r?.addEventListener("abort",l,{once:!0}),t.promise.then(d=>a(()=>o(d)),d=>a(()=>i(d instanceof Error?d:new Error(String(d??"Block request failed")))))})}evictOverflow(){for(;this.blocks.size>this.maxBlocks;){let e=-1,t=Number.POSITIVE_INFINITY;for(let[o,i]of this.blocks)i.touchedAt<t&&(e=o,t=i.touchedAt);if(e<0)return;let r=this.blocks.get(e);this.blocks.delete(e),this.evictionCount++,r&&this.onEvict?.(e,r)}}};function he(n,e){if(n==null||typeof n!="object")return;let t=n[e];return Array.isArray(t)?t:void 0}var Ge=class{constructor(e){this.core=e;this.all=[];this.roots=[];this.childIds=new Map;this.displayed=[];this.nodesById=new Map;this.filterModel={};this.advancedFilterModel=null;this.quickFilter=null;this.expandedIds=new Set;this.groupExpandedIds=new Set;this.knownGroupIds=[];this.spanInfo=new Map;this.mastersBuf=[];this.infiniteLastRow=null;this.infiniteRequested=!1;this.infiniteLoading=!1;this.infiniteSeq=0;this.infiniteAbort=null;this.infiniteRetryTimer=null;this.infinitePendingResolve=null;this.treeDepth=new WeakMap;this.rowSequence=new WeakMap;this.treeLoadControllers=new Map;this.treeLoadPromises=new Map;this.displayRevision=0;this.blockNodes=new Map;this.blockPlaceholders=new Map;this.installedBlocks=new Set;this.blockCache=new Pe(12,e=>this.evictBlock(e));this.dataProcessorSeq=0;this.dataProcessorAbort=null;this.skipDataProcessorOnce=!1;this.lastRequestedBlock=0;this.pipelineRows=[];this.page=1;this.pageSize=20;this.advancedFilterModel=z(e.options.advancedFilterModel)}resolveRowId(e,t,r){let o=this.core.options.resolveRowId;if(!o)return r;try{let i=o({data:e,index:t,api:this.core.getApi()});if(typeof i=="string"&&i.length>0)return i;this.core.reportError(new Error("rowKey must resolve to a non-empty identifier"),"rowKey",{index:t})}catch(i){this.core.reportError(i,"rowKey",{index:t})}return r}get isTree(){return this.core.options.treeData}get isInfinite(){return this.core.options.datasource!=null}get isBlockDatasource(){return this.isInfinite&&this.core.options.datasourceMode==="block"}getDisplayTotalCount(){if(this.isInfinite){if(this.isBlockDatasource)return this.resolveBlockRowCount();let e=Math.max(0,this.displayed.length-this.all.length);return(this.infiniteLastRow??this.all.length)+e}return this.displayed.length}getDisplayRevision(){return this.displayRevision}isLoadingInfinite(){return this.infiniteLoading}startInfinite(e){return!this.isInfinite||e?.aborted?Promise.resolve():(this.cancelInfiniteRequest(),this.infiniteLastRow=null,this.infiniteRequested=!1,this.all=[],this.roots=[],this.nodesById.clear(),this.expandedIds.clear(),this.core.undoService.clear(),this.refreshPipeline(),this.core.requestUpdate({data:!0}),this.isBlockDatasource?(this.blockCache.configure(this.core.options.maxBlocksInCache,this.core.options.datasourceMaxConcurrentRequests),this.loadRandomBlock(0,e)):this.loadBlock(0,void 0,e))}reloadInfinite(e){return this.isInfinite?this.startInfinite(e):Promise.resolve()}setInfiniteLoading(e){this.infiniteLoading=e,this.core.skeleton.setInfiniteLoading(e,this.core.getLocaleText("loading"))}loadBlock(e,t,r){if(!this.isInfinite||this.infiniteRequested||this.infiniteLastRow!=null&&e>=this.infiniteLastRow)return Promise.resolve();let o=this.core.options.datasource,i=this.core.options.blockSize,s=t??e+i;if(s<=e)return Promise.resolve();let a=++this.infiniteSeq,l=new AbortController,d=()=>l.abort(r?.reason);return r?.addEventListener("abort",d,{once:!0}),this.infiniteAbort=l,this.infiniteRequested=!0,this.setInfiniteLoading(!0),new Promise(c=>{let u=!1,h=0;this.infinitePendingResolve=c;let p=y=>{u||(u=!0,r?.removeEventListener("abort",d),a===this.infiniteSeq&&(this.infiniteRequested=!1,this.infiniteAbort=null,this.infinitePendingResolve=null,this.setInfiniteLoading(!1),y!=null&&y?.name!=="AbortError"&&this.core.reportError(y,"datasource.getRows",{startRow:e,endRow:s})),c())},m=()=>{if(u||a!==this.infiniteSeq||l.signal.aborted||this.core.isDestroyed()){p();return}h++;let y=!1,v=g=>{if(!(y||u)){if(y=!0,a!==this.infiniteSeq||l.signal.aborted||this.core.isDestroyed()){p();return}if(h<=this.core.options.datasourceRetryCount){let b=this.retryDelay(h);this.infiniteRetryTimer=setTimeout(()=>{this.infiniteRetryTimer=null,m()},b);return}p(g??new Error("Datasource request failed"))}};try{let g=o.getRows({startRow:e,endRow:s,sortModel:this.core.columnModel.getSortModel(),filterModel:this.getFilterModel(),advancedFilterModel:this.getAdvancedFilterModel(),quickFilterText:this.quickFilter,signal:l.signal,onSuccess:(b,T)=>{if(y||u)return;if(y=!0,a!==this.infiniteSeq||this.core.isDestroyed()||l.signal.aborted){p();return}let D=b??[];typeof T=="number"&&T>=0?this.infiniteLastRow=T:D.length<s-e&&(this.infiniteLastRow=e+D.length);let w=this.all.length===0;this.appendInfiniteRows(D),p(),this.refreshPipeline(),this.core.requestUpdate({data:!0}),w&&this.core.relayout(),this.core.headerRenderer.refreshSelectAllCheckbox()},fail:v});g&&typeof g.catch=="function"&&g.catch(v)}catch(g){v(g)}};m()})}cancelInfiniteRequest(){this.infiniteSeq++,this.infiniteRetryTimer!=null&&clearTimeout(this.infiniteRetryTimer),this.infiniteRetryTimer=null,this.infiniteAbort?.abort(),this.infiniteAbort=null,this.infiniteRequested=!1,this.setInfiniteLoading(!1),this.infinitePendingResolve?.(),this.infinitePendingResolve=null,this.blockCache.purge(),this.blockNodes.clear(),this.blockPlaceholders.clear(),this.installedBlocks.clear()}appendInfiniteRows(e){for(let t of e){if(t==null)continue;let r=this.all.length,o=this.resolveRowId(t,r,`inf-${this.core.nextId()}`);if(this.nodesById.has(o)){this.core.reportError(new Error(`Duplicate row id: ${o}`),"datasource.getRows",{rowId:o});continue}let i={id:o,data:t,rowIndex:-1,selected:this.core.selectionService.isSelected(o)};this.all.push(i),this.nodesById.set(o,i),this.roots.push(i)}}loadRandomBlock(e,t,r=0){if(!this.isBlockDatasource||e<0)return Promise.resolve();if(t?.aborted)return Promise.reject(this.abortError(t.reason));let o=this.core.options.blockSize,i=e*o;if(i>=this.resolveBlockRowCount())return Promise.resolve();let s=this.infiniteLastRow==null?i+o:Math.min(this.infiniteLastRow,i+o),a=this.blockCache.load(e,l=>this.requestDatasourceRange(i,s,l),t,r);return this.setInfiniteLoading(this.all.length===0&&this.blockCache.snapshot().loadingBlockCount>0),a.then(l=>{t?.aborted||this.core.isDestroyed()||!this.isBlockDatasource||this.installedBlocks.has(e)||(this.installBlock(e,l),this.refreshPipeline(),this.core.requestUpdate({data:!0}),this.core.headerRenderer.refreshSelectAllCheckbox())}).catch(l=>{throw l?.name!=="AbortError"&&this.core.reportError(l,"datasource.getRows",{startRow:i,endRow:s}),l}).finally(()=>{this.setInfiniteLoading(this.all.length===0&&this.blockCache.snapshot().loadingBlockCount>0)})}requestDatasourceRange(e,t,r){let o=this.core.options.datasource;return new Promise((i,s)=>{let a=0,l=null,d=!1,c=p=>{d||(d=!0,l!=null&&clearTimeout(l),r.removeEventListener("abort",u),s(p instanceof Error?p:new Error(typeof p=="string"?p:"Datasource request failed")))},u=()=>c(this.abortError(r.reason));r.addEventListener("abort",u,{once:!0});let h=()=>{if(d)return;if(r.aborted||this.core.isDestroyed()){u();return}a++;let p=!1,m=y=>{if(!(p||d)){if(p=!0,r.aborted||this.core.isDestroyed()){u();return}if(a<=this.core.options.datasourceRetryCount){let v=this.retryDelay(a);l=setTimeout(()=>{l=null,h()},v)}else c(y)}};try{let y=o.getRows({startRow:e,endRow:t,sortModel:this.core.columnModel.getSortModel(),filterModel:this.getFilterModel(),advancedFilterModel:this.getAdvancedFilterModel(),quickFilterText:this.quickFilter,signal:r,onSuccess:(v,g)=>{p||d||(p=!0,d=!0,r.removeEventListener("abort",u),i({rows:v??[],...typeof g=="number"&&g>=0?{lastRow:g}:{}}))},fail:m});y&&typeof y.catch=="function"&&y.catch(m)}catch(y){m(y)}};h()})}installBlock(e,t){let r=this.core.options.blockSize,o=e*r;this.evictBlock(e),typeof t.lastRow=="number"&&t.lastRow>=0?this.infiniteLastRow=t.lastRow:t.rows.length<r&&(this.infiniteLastRow=o+t.rows.length),t.rows.forEach((i,s)=>{if(i==null)return;let a=o+s;if(this.infiniteLastRow!=null&&a>=this.infiniteLastRow)return;let l=this.resolveRowId(i,a,`block-${a}`),d=this.nodesById.get(l);if(d&&d.rowIndex!==a){this.core.reportError(new Error(`Duplicate row id: ${l}`),"datasource.getRows",{rowId:l});return}let c={id:l,data:i,rowIndex:a,selected:this.core.selectionService.isSelected(l)};this.blockNodes.set(a,c),this.blockPlaceholders.delete(a),this.nodesById.set(l,c),this.rowSequence.set(c,a+1)}),this.rebuildLoadedBlockRows(),this.installedBlocks.add(e)}evictBlock(e){this.installedBlocks.delete(e);let t=this.core.options.blockSize,r=e*t;for(let o=r;o<r+t;o++){let i=this.blockNodes.get(o);i&&(this.blockNodes.delete(o),this.nodesById.get(i.id)===i&&this.nodesById.delete(i.id))}this.rebuildLoadedBlockRows()}rebuildLoadedBlockRows(){this.all=[...this.blockNodes.entries()].sort(([e],[t])=>e-t).map(([,e])=>e),this.roots=this.all}resolveBlockRowCount(){if(this.infiniteLastRow!=null)return this.infiniteLastRow;if(this.core.options.datasourceRowCount!=null)return this.core.options.datasourceRowCount;if(this.blockNodes.size===0)return this.core.options.blockSize;let e=0;for(let t of this.blockNodes.keys())e=Math.max(e,t+1);return e+this.core.options.blockSize}blockPlaceholder(e){let t=this.blockPlaceholders.get(e);if(!t&&(t={id:`__mach_loading_${e}`,data:null,rowIndex:e,selected:!1,loading:!0},this.blockPlaceholders.set(e,t),this.blockPlaceholders.size>2e3)){let r=this.blockPlaceholders.keys().next().value;r!=null&&this.blockPlaceholders.delete(r)}return t}abortError(e){if(e instanceof Error)return e;let t=new Error(typeof e=="string"?e:"Operation aborted");return t.name="AbortError",t}retryDelay(e){let t=Math.min(this.core.options.datasourceRetryDelay*2**Math.max(0,e-1),3e4),r=this.core.options.datasourceRetryJitter;return Math.max(0,Math.round(t*(1+(Math.random()*2-1)*r)))}checkInfiniteScroll(e){if(this.isBlockDatasource){this.prefetchVisibleBlocks(e);return}if(!this.isInfinite||this.infiniteRequested)return;let t=this.all.length;if(this.infiniteLastRow!=null&&t>=this.infiniteLastRow)return;let r=this.core.options.infiniteBufferRows;if(e+r<t&&e<t)return;let o=this.core.options.blockSize,i=this.infiniteLastRow==null?t+o:Math.min(this.infiniteLastRow,t+o);this.loadBlock(t,i)}prefetchVisibleBlocks(e){if(e<0)return;let t=this.core.options.blockSize,r=Math.floor(e/t),o=this.core.options.blockPrefetch,i=r<this.lastRequestedBlock?-1:1;this.lastRequestedBlock=r;for(let s=0;s<=o;s++){let a=s===0?[r]:[r+i*s,r-i*s];for(let l of a)l<0||l*t>=this.resolveBlockRowCount()||this.loadRandomBlock(l,void 0,o-s+1).catch(()=>{})}}onServerParamsChanged(){return this.reloadInfinite().catch(()=>{})}onDatasourceChanged(){return this.cancelInfiniteRequest(),this.isInfinite?this.startInfinite().catch(()=>{}):(this.infiniteLastRow=null,this.setRowData(this.core.options.rowData),this.core.requestUpdate({data:!0}),Promise.resolve())}destroy(){this.cancelInfiniteRequest(),this.cancelTreeLoads(),this.cancelDataProcessor(),this.core.options.dataProcessor?.destroy?.()}ensureRowsLoaded(e,t,r){if(!this.isBlockDatasource)return Promise.resolve();let o=this.core.options.blockSize,i=Math.max(0,Math.trunc(e)),s=Math.min(this.resolveBlockRowCount(),Math.max(i,Math.trunc(t))),a=Math.floor(i/o),l=Math.max(a,Math.floor(Math.max(i,s-1)/o)),d=[];for(let c=a;c<=l;c++)d.push(this.loadRandomBlock(c,r,100));return Promise.all(d).then(()=>{})}purgeDatasourceCache(){this.isBlockDatasource&&(this.blockCache.purge(),this.blockNodes.clear(),this.blockPlaceholders.clear(),this.installedBlocks.clear(),this.all=[],this.roots=[],this.nodesById.clear(),this.refreshPipeline(),this.core.requestUpdate({data:!0}))}getDatasourceCacheSnapshot(){return this.blockCache.snapshot()}setRowData(e){this.cancelTreeLoads(),this.core.changeTracker.clear();let t=this.core.options.resolveRowId,r=this.core.options.childrenKey,o=[],i=[],s=new Map,a=new Map,l=0,d=(c,u,h)=>{let p=l++,m=this.resolveRowId(c,p,`auto-${p}`);if(s.has(m))return this.core.reportError(new Error(`Duplicate row id: ${m}`),"rowData",{rowId:m,index:p}),null;let y=this.isTree?he(c,r):void 0,v={id:m,data:c,rowIndex:-1,selected:!1,treeChildrenLoaded:Array.isArray(y)};if(this.treeDepth.set(v,u),o.push(v),s.set(m,v),h!=null){let g=a.get(h)??[];g.push(m),a.set(h,g)}else i.push(v);if(this.isTree&&Array.isArray(y))for(let g of y)g!=null&&d(g,u+1,m);return v};(e??[]).forEach(c=>{c!=null&&d(c,0,null)}),this.all=o,this.roots=i,this.childIds=a,this.nodesById=s,this.core.undoService.clear();for(let c of[...this.expandedIds])s.has(c)||this.expandedIds.delete(c);if(this.core.options.defaultExpandAll)for(let c of o)this.getChildrenCount(c.id)>0&&this.expandedIds.add(c.id);this.core.selectionService.onRowsRebuilt(t!=null),this.refreshPipeline()}getChildrenIds(e){return this.childIds.get(e)??[]}getChildrenCount(e){return this.childIds.get(e)?.length??0}hasChildren(e){return this.getChildrenCount(e)>0}isTreeRowLoading(e){return this.nodesById.get(e)?.treeLoading===!0}cancelTreeLoads(){for(let e of this.treeLoadControllers.values())e.abort();this.treeLoadControllers.clear(),this.treeLoadPromises.clear()}loadTreeChildren(e,t=!1){let r=this.nodesById.get(e),o=this.core.options.loadTreeChildren;if(!this.isTree||!r?.data||!o)return Promise.resolve([]);if(!t&&r.treeChildrenLoaded)return Promise.resolve(this.getChildrenIds(e).flatMap(l=>{let d=this.nodesById.get(l)?.data;return d==null?[]:[d]}));let i=this.treeLoadPromises.get(e);if(i&&!t)return i;this.treeLoadControllers.get(e)?.abort();let s=new AbortController;this.treeLoadControllers.set(e,s),r.treeLoading=!0,r.treeLoadError=void 0,this.core.requestUpdate({data:!0});let a=Promise.resolve().then(()=>o({data:r.data,node:r,api:this.core.getApi(),signal:s.signal})).then(l=>{if(s.signal.aborted||this.core.isDestroyed())return[];if(!Array.isArray(l))throw new TypeError("[MachTable] loadTreeChildren must resolve to an array.");return this.replaceTreeChildren(r,l),r.treeChildrenLoaded=!0,r.treeLoadError=void 0,this.core.emit("treeChildrenLoaded",{rowId:e,rowNode:r,children:l}),l}).catch(l=>{if(s.signal.aborted||l?.name==="AbortError")return[];throw r.treeLoadError=l,r.treeChildrenLoaded=!1,this.core.reportError(l,"treeData.loadChildren",{rowId:e}),this.core.emit("treeChildrenLoadFailed",{rowId:e,rowNode:r,error:l}),l}).finally(()=>{this.treeLoadControllers.get(e)===s&&(this.treeLoadControllers.delete(e),this.treeLoadPromises.delete(e),r.treeLoading=!1,this.core.requestUpdate({data:!0}))});return this.treeLoadPromises.set(e,a),a}replaceTreeChildren(e,t){let r=new Set,o=[...this.getChildrenIds(e.id)];for(;o.length>0;){let s=o.pop();r.has(s)||(r.add(s),o.push(...this.getChildrenIds(s)))}this.validateTreeChildren(t,r);for(let s of r)this.treeLoadControllers.get(s)?.abort(),this.treeLoadControllers.delete(s),this.treeLoadPromises.delete(s),this.childIds.delete(s),this.nodesById.delete(s),this.expandedIds.delete(s);this.childIds.delete(e.id);let i=this.getTreeDepth(e)+1;for(let s of t)s!=null&&this.buildChildNodes(e,s,i);this.reindexAll(),this.core.selectionService.onRowsRebuilt(this.core.options.resolveRowId!=null),this.refreshPipeline(),this.core.requestUpdate({data:!0})}validateTreeChildren(e,t){let r=this.core.options.resolveRowId,o=r?new Set([...this.nodesById.keys()].filter(l=>!t.has(l))):null,i=new WeakSet,s=[...e],a=0;for(;s.length>0;){let l=s.pop();if(l==null)continue;if(typeof l=="object"){if(i.has(l))throw new TypeError("[MachTable] Lazy tree children contain a cyclic object graph.");i.add(l)}if(r&&o){let c=r({data:l,index:a++,api:this.core.getApi()});if(typeof c!="string"||c.length===0)throw new TypeError("[MachTable] rowKey must resolve to a non-empty identifier for lazy tree children.");if(o.has(c))throw new Error(`Duplicate row id: ${c}`);o.add(c)}let d=he(l,this.core.options.childrenKey);d&&s.push(...d)}}applyTransaction(e,t=!0){let r=this.core.options.resolveRowId,o=[],i=[];if(e.remove?.length){let a=new Set,l=new Set,d=u=>{if(r){let p=[this.resolveRowId(u,-1,`__missing_remove_${this.core.nextId()}`)];for(;p.length>0;){let m=p.pop();if(!a.has(m)){a.add(m);for(let y of this.childIds.get(m)??[])p.push(y)}}}else{let h=[u];for(;h.length>0;){let p=h.pop();l.add(p);let m=this.isTree?he(p,this.core.options.childrenKey):void 0;if(m)for(let y of m)h.push(y)}}};e.remove.forEach(d),this.all=this.all.filter(u=>{let h=a.has(u.id)||u.data!=null&&l.has(u.data);return h&&(i.push(u.id),this.nodesById.delete(u.id),this.childIds.delete(u.id)),!h});let c=new Set(this.all);this.roots=this.roots.filter(u=>c.has(u))}if(e.update?.length)for(let a of e.update){let l;r?l=this.nodesById.get(this.resolveRowId(a,-1,`__missing_update_${this.core.nextId()}`)):l=this.all.find(d=>d.data===a),l&&(l.data=a,i.push(l.id),this.core.bodyRenderer.invalidateRowHeight(l),o.push(l))}if(e.add?.length){let a=e.addIndex!=null?Math.max(0,Math.min(e.addIndex,this.roots.length)):this.roots.length,l=[];e.add.forEach((d,c)=>{let u=this.resolveRowId(d,a+c,`add-${this.core.nextId()}`);if(this.nodesById.has(u)){this.core.reportError(new Error(`Duplicate row id: ${u}`),"transaction.add",{rowId:u});return}let h={id:u,data:d,rowIndex:-1,selected:!1};this.nodesById.set(u,h),this.treeDepth.set(h,0);let p=this.isTree?he(d,this.core.options.childrenKey):void 0;if(p)for(let m of p)m!=null&&this.buildChildNodes(h,m,1);l.push(h)}),this.roots.splice(a,0,...l),this.reindexAll()}let s=this.transactionNeedsPipeline(e);return t&&(s?this.refreshPipeline():o.length>0&&this.emitIncrementalModelUpdate()),this.core.changeTracker.clearRows(i),{pipelineChanged:s,updatedRowIds:o.map(a=>a.id)}}applyTransactions(e){if(e.length===0)return{pipelineChanged:!1,updatedRowIds:[]};let t=!1,r=new Set;for(let o of e){let i=this.applyTransaction(o,!1);t||(t=i.pipelineChanged);for(let s of i.updatedRowIds)r.add(s)}return t?this.refreshPipeline():r.size>0&&this.emitIncrementalModelUpdate(),{pipelineChanged:t,updatedRowIds:[...r]}}transactionNeedsPipeline(e){return e.add?.length||e.remove?.length?!0:e.update?.length?this.isTree||this.core.options.masterDetail||this.core.columnModel.getRowGroupColumns().length>0||!this.core.options.manualFiltering&&this.isFilterPresent()||!this.core.options.manualSorting&&this.core.columnModel.getSortModel().length>0||this.core.options.getRowHeight?!0:this.core.columnModel.getOrderedVisible().some(t=>t.colDef.autoHeight===!0||t.colDef.autoRowSpan===!0||t.colDef.rowSpan!=null):!1}emitIncrementalModelUpdate(){this.core.emit("modelUpdated",{rowCount:this.pipelineRows.length})}buildChildNodes(e,t,r){let o=this.resolveRowId(t,-1,`add-${this.core.nextId()}`);if(this.nodesById.has(o)){this.core.reportError(new Error(`Duplicate row id: ${o}`),"transaction.add",{rowId:o});return}let i=he(t,this.core.options.childrenKey),s={id:o,data:t,rowIndex:-1,selected:!1,treeChildrenLoaded:Array.isArray(i)};this.nodesById.set(o,s),this.treeDepth.set(s,r);let a=this.childIds.get(e.id)??[];if(a.push(s.id),this.childIds.set(e.id,a),!!i)for(let l of i)l!=null&&this.buildChildNodes(s,l,r+1)}reindexAll(){this.all=[];let e=t=>{this.all.push(t),this.nodesById.has(t.id)||this.nodesById.set(t.id,t);for(let r of this.childIds.get(t.id)??[]){let o=this.nodesById.get(r);o&&e(o)}};for(let t of this.roots)e(t)}setFilterModel(e){let t=JSON.stringify(this.filterModel),r=new Set(this.core.columnModel.getColumns().map(o=>o.id));return this.filterModel=de(e,r),JSON.stringify(this.filterModel)!==t}getFilterModel(){return{...this.filterModel}}setAdvancedFilterModel(e){let t=new Set(this.core.columnModel.getColumns().map(i=>i.id)),r=z(e,t),o=JSON.stringify(this.advancedFilterModel);return this.advancedFilterModel=r,this.core.options.advancedFilterModel=r,JSON.stringify(r)!==o}getAdvancedFilterModel(){return z(this.advancedFilterModel)}setQuickFilter(e){let t=e!=null&&e.trim()!==""?e:null;return t===this.quickFilter?!1:(this.quickFilter=t,!0)}getQuickFilter(){return this.quickFilter}isFilterPresent(){return Object.keys(this.filterModel).length>0||this.advancedFilterModel!=null||this.quickFilter!=null}refreshPipeline(){let e=this.core.performanceMonitor.start(),t=this.core.columnModel.getOrderedVisible(),r=(s,a)=>this.core.getCellValue(s,a);if(this.isInfinite){this.refreshInfinitePipeline(e);return}if(this.startDataProcessorIfNeeded(e))return;let o;if(this.isTree)o=this.buildTreeDisplay(t,r);else{o=this.all,this.isFilterPresent()&&!this.core.options.manualFiltering&&(o=o.filter(d=>Mt(d,t,this.filterModel,this.advancedFilterModel,this.quickFilter,r)));let a=this.core.columnModel.getSortModel();if(a.length>0&&!this.core.options.manualSorting)try{o=kt(o,a,t,r)}catch(d){this.core.reportError(d,"comparator",{sortModel:a})}let l=this.core.columnModel.getRowGroupColumns();if(l.length>0)o=this.buildGrouped(o,l);else if(this.core.options.masterDetail){let d=[];for(let c of o)d.push(c),this.expandedIds.has(c.id)&&this.isRowExpandable(c)&&d.push({id:`__detail__${c.id}`,data:c.data,rowIndex:-1,selected:!1,isDetail:!0,masterId:c.id});o=d}}for(let s of this.all)s.rowIndex=-1;let i=0;o.forEach((s,a)=>{s.rowIndex=a,!s.isDetail&&!s.isGroup&&(i++,this.rowSequence.set(s,i))}),this.pipelineRows=o,this.applyPagination(),this.computeSpans(r),this.core.emit("modelUpdated",{rowCount:o.length}),this.core.performanceMonitor.recordModel(e)}refreshInfinitePipeline(e){this.all.forEach((t,r)=>{this.isBlockDatasource||(t.rowIndex=r),this.rowSequence.set(t,this.isBlockDatasource?t.rowIndex+1:r+1)}),this.displayed=this.all,this.pipelineRows=this.all,this.spanInfo.clear(),this.displayRevision++,this.core.emit("modelUpdated",{rowCount:this.all.length}),this.core.performanceMonitor.recordModel(e)}startDataProcessorIfNeeded(e){let t=this.skipDataProcessorOnce;return this.skipDataProcessorOnce=!1,!t&&this.shouldUseDataProcessor()?(this.refreshWithDataProcessor(e),!0):(this.cancelDataProcessor(),!1)}shouldUseDataProcessor(){if(!this.core.options.dataProcessor||this.all.length<this.core.options.dataProcessorMinRows||this.isTree||this.core.options.masterDetail||this.core.columnModel.getRowGroupColumns().length>0)return!1;let e=!this.core.options.manualFiltering&&this.isFilterPresent(),t=!this.core.options.manualSorting&&this.core.columnModel.getSortModel().length>0;return e||t}refreshWithDataProcessor(e){this.cancelDataProcessor();let t=this.core.options.dataProcessor;if(!t)return;let r=++this.dataProcessorSeq,o=new AbortController;this.dataProcessorAbort=o;let i=this.core.columnModel.getOrderedVisible(),s=this.all.flatMap(d=>d.data==null?[]:[{id:d.id,data:d.data}]),a=!this.core.options.manualFiltering,l=!this.core.options.manualSorting;Promise.resolve().then(()=>t.process({rows:s,columns:i.map(d=>({colId:d.id,...d.colDef.field?{field:d.colDef.field}:{}})),sortModel:l?this.core.columnModel.getSortModel():[],filterModel:a?this.getFilterModel():{},advancedFilterModel:a?this.getAdvancedFilterModel():null,quickFilterText:a?this.quickFilter:null,signal:o.signal})).then(d=>{if(r!==this.dataProcessorSeq||o.signal.aborted||this.core.isDestroyed())return;let c=new Set,u=[];for(let p of d.rowIds){if(c.has(p))continue;c.add(p);let m=this.nodesById.get(p);m&&!m.isDetail&&!m.isGroup&&u.push(m)}for(let p of this.all)p.rowIndex=-1;u.forEach((p,m)=>{p.rowIndex=m,this.rowSequence.set(p,m+1)}),this.pipelineRows=u,this.applyPagination();let h=(p,m)=>this.core.getCellValue(p,m);this.computeSpans(h),this.core.emit("modelUpdated",{rowCount:u.length}),this.core.performanceMonitor.recordModel(e),this.core.requestUpdate({data:!0})}).catch(d=>{r!==this.dataProcessorSeq||o.signal.aborted||this.core.isDestroyed()||(this.core.reportError(d,"dataProcessor.process"),this.skipDataProcessorOnce=!0,this.refreshPipeline(),this.core.requestUpdate({data:!0}))}).finally(()=>{r===this.dataProcessorSeq&&(this.dataProcessorAbort=null)})}cancelDataProcessor(){this.dataProcessorSeq++,this.dataProcessorAbort?.abort(),this.dataProcessorAbort=null}get paginationActive(){return this.core.options.paginationEnabled&&!this.isInfinite}applyPagination(){if(!this.paginationActive){this.displayed=this.pipelineRows,this.displayRevision++;return}let e=this.effectivePageSize(),t=this.getPageCount();if(this.page>t&&(this.page=t),this.page<1&&(this.page=1),this.core.options.paginationPage=this.page,this.core.options.paginationMode==="server"){this.pipelineRows.forEach((i,s)=>{i.rowIndex=s}),this.displayed=this.pipelineRows,this.displayRevision++;return}let r=(this.page-1)*e,o=this.pipelineRows.slice(r,r+e);o.forEach((i,s)=>{i.rowIndex=s}),this.displayed=o,this.displayRevision++}effectivePageSize(){return this.pageSize=this.core.options.paginationPageSize,Math.max(1,this.pageSize)}getCurrentPage(){return this.paginationActive?this.page:1}getTotalRowCount(){return this.isInfinite?this.getDisplayTotalCount():this.paginationActive&&this.core.options.paginationMode==="server"?this.core.options.paginationTotal:this.pipelineRows.length}getPageCount(){return this.paginationActive?Math.max(1,Math.ceil(this.getTotalRowCount()/this.effectivePageSize())):1}getPipelineRows(){return this.pipelineRows}setPage(e,t=!1){if(!this.paginationActive)return;let r=this.getPageCount(),o=Math.max(1,Math.min(Math.round(e)||1,r));o!==this.page&&(this.page=o,this.core.options.paginationPage=o,this.applyPagination(),this.core.requestUpdate({data:!0}),this.core.bodyRenderer.scrollToIndex(0,"top"),t||this.emitPaginationChanged())}setPageSize(e){if(!this.paginationActive)return;let t=Math.max(1,Math.round(e)||this.effectivePageSize()),r=(this.page-1)*this.effectivePageSize();this.core.options.paginationPageSize=t,this.pageSize=t,this.page=Math.floor(r/t)+1,this.core.options.paginationPage=this.page,this.applyPagination(),this.core.requestUpdate({data:!0}),this.emitPaginationChanged()}restorePagination(e,t){this.pageSize=Math.max(1,Math.round(t)||1),this.core.options.paginationPageSize=this.pageSize,this.page=Math.max(1,Math.round(e)||1),this.core.options.paginationPage=this.page}setPaginationEnabled(e){this.core.options.paginationEnabled!==e&&(this.core.options.paginationEnabled=e&&!this.isInfinite,this.core.options.paginationEnabled&&(this.page=1),this.applyPagination(),this.core.requestUpdate({data:!0}),this.emitPaginationChanged())}onPaginationOptionsChanged(){this.paginationActive&&(this.page=this.core.options.paginationMode==="server"?this.core.options.paginationPage:1,this.applyPagination(),this.core.requestUpdate({data:!0}),this.emitPaginationChanged())}emitPaginationChanged(){this.core.emit("paginationChanged",{page:this.getCurrentPage(),pageSize:this.effectivePageSize(),pageCount:this.getPageCount(),total:this.getTotalRowCount()})}buildTreeDisplay(e,t){let r=this.core.options.manualSorting?[]:this.core.columnModel.getSortModel(),o=new Map,i=this.isFilterPresent()&&!this.core.options.manualFiltering,s=d=>{let c=o.get(d.id);if(c!==void 0)return c;let u=!0;if(i){u=Mt(d,e,this.filterModel,this.advancedFilterModel,this.quickFilter,t);for(let h of this.childIds.get(d.id)??[]){let p=this.nodesById.get(h);p&&s(p)&&(u=!0)}}return o.set(d.id,u),u},a=[],l=d=>{let c=d;r.length>0&&(c=kt(d,r,e,t));for(let u of c)if(s(u)&&(a.push(u),this.expandedIds.has(u.id))){let h=(this.childIds.get(u.id)??[]).map(p=>this.nodesById.get(p)).filter(p=>p!=null);l(h)}};return l(this.roots),a}collectSpanMasters(){let e=this.mastersBuf,t=0;for(let r of this.displayed)!r.isDetail&&!r.isGroup&&(e[t++]=r);return e.length=t,e}explicitRowSpan(e,t,r,o){let i=t.colDef.rowSpan;if(!i)return 1;try{let s=i({api:this.core.getApi(),colDef:t.colDef,column:t,node:e,data:e.data,value:r,rowIndex:e.rowIndex});return Math.max(1,Math.min(Math.round(s)||1,o))}catch(s){return this.core.reportError(s,"rowSpan",{colId:t.id,rowId:e.id}),1}}automaticRowSpan(e,t,r,o,i){if(!r.colDef.autoRowSpan||o==null||o==="")return 1;let s=1;for(;t+s<e.length&&Ie(o,i(e[t+s],r))===0;)s++;return s}computeColumnSpans(e,t,r){let o=new Int32Array(e.length),i=0;for(;i<e.length;){let s=e[i],a=r(s,t),l=t.colDef.rowSpan?this.explicitRowSpan(s,t,a,e.length-i):this.automaticRowSpan(e,i,t,a,r);o[i]=l;for(let d=1;d<l;d++)o[i+d]=-1;i+=l}return o}computeSpans(e){if(this.spanInfo.clear(),this.isTree||this.core.options.masterDetail||this.core.columnModel.getRowGroupColumns().length>0)return;let t=this.core.columnModel.getOrderedVisible().filter(o=>o.colDef.rowSpan!=null||o.colDef.autoRowSpan===!0);if(t.length===0)return;let r=this.collectSpanMasters();if(r.length!==0)for(let o of t)this.spanInfo.set(o.id,this.computeColumnSpans(r,o,e))}getSpanInfo(e){return this.spanInfo.get(e)}getRowSeq(e){return this.rowSequence.get(e)??0}getTreeDepth(e){return this.treeDepth.get(e)??0}buildGrouped(e,t){let r=It(this.core.options.aggFuncs),o=this.core.columnModel.getAggColumns();this.knownGroupIds=[];let i=a=>{let l={};for(let d of o){let c=r(d.colDef.aggFunc);if(c)try{l[d.id]=c(a.map(u=>this.core.getCellValue(u,d)))}catch(u){this.core.reportError(u,"aggFunc",{colId:d.id,aggFunc:d.colDef.aggFunc}),l[d.id]=null}}return l},s=(a,l,d)=>{if(l>=t.length)return{display:a,leaves:a};let c=t[l],u=new Map,h=[];for(let y of a){let v=this.core.getCellValue(y,c),g=v==null?"(\u7A7A)":String(v),b=u.get(g);b||(b=[],u.set(g,b),h.push(g)),b.push(y)}h.sort((y,v)=>y.localeCompare(v,void 0,{numeric:!0,sensitivity:"base"}));let p=[],m=[];for(let y of h){let v=u.get(y),g=`${d}/g${l}:${y}`;this.knownGroupIds.push(g);let b=s(v,l+1,g),T={id:g,data:null,rowIndex:-1,selected:!1,isGroup:!0,groupLevel:l,groupKey:y,leafNodes:b.leaves,aggValues:i(b.leaves)};p.push(T),this.groupExpandedIds.has(g)&&p.push(...b.display),m.push(...b.leaves)}return{display:p,leaves:m}};return s(e,0,"").display}isRowExpandable(e){if(this.isTree){if(this.hasChildren(e.id)||e.treeLoading)return!0;if(e.treeChildrenLoaded||!e.data||!this.core.options.loadTreeChildren)return!1;let r=this.core.options.isTreeRowExpandable;if(!r)return!1;try{return r({data:e.data,node:e,api:this.core.getApi()})}catch(o){return this.core.reportError(o,"isTreeRowExpandable",{rowId:e.id}),!1}}if(!this.core.options.masterDetail)return!1;let t=this.core.options.isRowExpandable;if(t)try{return t({data:e.data,node:e,api:this.core.getApi()})}catch(r){return this.core.reportError(r,"isRowExpandable",{rowId:e.id}),!1}return!0}isRowExpanded(e){return this.expandedIds.has(e)}getExpandedRowIds(){return[...this.expandedIds]}getExpandedGroupIds(){return[...this.groupExpandedIds]}restoreExpansion(e,t){this.expandedIds=new Set(e.filter(r=>this.nodesById.has(r))),this.groupExpandedIds=new Set(t)}expandRow(e){return this.setDetailExpanded(e,!0)}collapseRow(e){return this.setDetailExpanded(e,!1)}toggleDetail(e){return this.setDetailExpanded(e,!this.expandedIds.has(e))}setDetailExpanded(e,t){let r=this.nodesById.get(e);return!r||t&&!this.isRowExpandable(r)?!1:(t===this.expandedIds.has(e)||(t?this.expandedIds.add(e):this.expandedIds.delete(e),this.refreshPipeline(),this.core.requestUpdate({data:!0}),this.core.emit("detailToggled",{rowId:e,rowNode:r,expanded:t}),t&&this.isTree&&!this.hasChildren(e)&&!r.treeLoading&&this.loadTreeChildren(e).catch(()=>{})),t)}expandAllDetails(){let e=!1;for(let t of this.all)!this.expandedIds.has(t.id)&&this.isRowExpandable(t)&&(this.expandedIds.add(t.id),e=!0);e&&(this.refreshPipeline(),this.core.requestUpdate({data:!0}))}collapseAllDetails(){this.expandedIds.size!==0&&(this.expandedIds.clear(),this.refreshPipeline(),this.core.requestUpdate({data:!0}))}toggleGroup(e){return this.setGroupExpanded(e,!this.groupExpandedIds.has(e))}isGroupExpanded(e){return this.groupExpandedIds.has(e)}getGroupNode(e){return this.displayed.find(t=>t.isGroup&&t.id===e)}expandAllGroups(){if(this.knownGroupIds.length===0)return;let e=!1;for(let t of this.knownGroupIds)this.groupExpandedIds.has(t)||(this.groupExpandedIds.add(t),e=!0);e&&(this.refreshPipeline(),this.core.requestUpdate({data:!0}))}collapseAllGroups(){this.groupExpandedIds.size!==0&&(this.groupExpandedIds.clear(),this.refreshPipeline(),this.core.requestUpdate({data:!0}))}setGroupExpanded(e,t){return!this.knownGroupIds.includes(e)||t===this.groupExpandedIds.has(e)||(t?this.groupExpandedIds.add(e):this.groupExpandedIds.delete(e),this.refreshPipeline(),this.core.requestUpdate({data:!0})),t}reorderRowsByDisplayed(e,t){if(this.isTree)return!1;let r=this.getDisplayedRow(e),o=this.getDisplayedRow(t);if(!r||!o||r.isDetail||o.isDetail||r.isGroup||o.isGroup)return!1;let i=this.all.indexOf(r),s=this.all.indexOf(o);if(i<0||s<0)return!1;if(s>i){let l=s;for(;l+1<this.all.length&&this.all[l+1].isDetail;)l++;s=l}if(i===s)return!1;this.all.splice(i,1);let a=this.all.indexOf(o);return this.all.splice(s>i?a+1:a,0,r),this.refreshPipeline(),this.core.requestUpdate({data:!0}),!0}getAllNodes(){return this.all}getRootNodes(){return this.roots}getDisplayedRows(){return this.displayed}getDisplayedRowCount(){return this.isBlockDatasource?this.resolveBlockRowCount():this.displayed.length}getDisplayedRow(e){return this.isBlockDatasource?e<0||e>=this.resolveBlockRowCount()?void 0:this.blockNodes.get(e)??this.blockPlaceholder(e):this.displayed[e]}getNodeById(e){return this.nodesById.get(e)}forEachNode(e){this.all.forEach(e)}forEachNodeAfterFilterAndSort(e){let t=0;for(let r of this.pipelineRows)r.isDetail||r.isGroup||e(r,t++)}};var Fe=class{constructor(e){this.core=e;this.selectedIds=new Set;this.anchorId=null;this.indeterminateIds=new Set}isSelected(e){return this.selectedIds.has(e)}isIndeterminate(e){return this.indeterminateIds.has(e)}isSelectable(e){if(e.loading)return!1;let t=this.findSelectableColumn(e),r=t?.colDef.selectable;if(!t||!r)return!0;try{return r({api:this.core.getApi(),colDef:t.colDef,column:t,node:e,data:e.data,value:this.core.getCellValue(e,t),rowIndex:e.rowIndex})}catch(o){return this.core.reportError(o,"selectable",{rowId:e.id,colId:t?.id}),!1}}findSelectableColumn(e){if(!(e.isGroup||e.isDetail))return this.core.columnModel.getOrderedVisible().find(t=>t.hasCheckbox&&t.colDef.selectable!=null)}getSelectedNodes(){return this.core.rowModel.getAllNodes().filter(e=>this.selectedIds.has(e.id))}getSelectedRows(){return this.getSelectedNodes().filter(e=>e.data!=null).map(e=>e.data)}getSelectedIds(){return[...this.selectedIds]}restoreSelection(e){let t=new Set(e),r=this.core.rowModel.getAllNodes().filter(o=>t.has(o.id)&&!o.isDetail&&!o.isGroup).map(o=>({node:o,selected:!0}));this.applySelection(r,!0)}onRowsRebuilt(e){if(!e)this.selectedIds.clear(),this.anchorId=null;else{let t=new Set(this.core.rowModel.getAllNodes().map(r=>r.id));for(let r of[...this.selectedIds])t.has(r)||this.selectedIds.delete(r);this.anchorId!=null&&!t.has(this.anchorId)&&(this.anchorId=null)}for(let t of this.core.rowModel.getAllNodes())t.selected=this.selectedIds.has(t.id);this.recomputeTriState()}getGroupSelectionState(e){let t=e.leafNodes??[];if(t.length===0)return{all:!1,some:!1};let r=0,o=0;for(let i of t)this.isSelectable(i)&&(r++,this.selectedIds.has(i.id)&&o++);return r===0?{all:!1,some:!1}:{all:o===r,some:o>0}}setGroupSelected(e,t){let r=(e.leafNodes??[]).filter(o=>this.isSelectable(o));r.length!==0&&this.applySelection(r.map(o=>({node:o,selected:t})))}setNodeSelected(e,t,r=!1){this.applySelection([{node:e,selected:t,clearOthers:r}])}selectNodeById(e,t=!0,r=!0){let o=this.core.rowModel.getNodeById(e);o&&this.setNodeSelected(o,t,r)}selectFromCheckbox(e,t){let r=t==="single";this.applySelection([{node:e,selected:r?!0:!e.selected,clearOthers:r}]),this.anchorId=e.id}toggleFromModifier(e,t,r){return!r||!t.ctrlKey&&!t.metaKey?!1:(this.applySelection([{node:e,selected:!e.selected}]),this.anchorId=e.id,!0)}selectAnchorRange(e,t,r){if(!r||!t.shiftKey||this.anchorId==null)return!1;let o=this.core.rowModel.getNodeById(this.anchorId);if(!o||o.rowIndex<0||e.rowIndex<0)return!1;let i=Math.min(o.rowIndex,e.rowIndex),s=Math.max(o.rowIndex,e.rowIndex),a=[];for(let l=i;l<=s;l++){let d=this.core.rowModel.getDisplayedRow(l);d&&!d.isDetail&&!d.isGroup&&this.isSelectable(d)&&a.push({node:d,selected:!0})}return this.applySelection(a),!0}onRowClick(e,t,r){let o=this.core.options.rowSelection;if(o==="none"||!this.isSelectable(e))return;if(r){this.selectFromCheckbox(e,o);return}let i=o==="multiple";this.toggleFromModifier(e,t,i)||this.selectAnchorRange(e,t,i)||(this.applySelection([{node:e,selected:!0,clearOthers:!0}]),this.anchorId=e.id)}selectAll(e=!0){let t=this.core.options.rowSelection;if(t==="none")return;let o=(e?this.core.rowModel.getDisplayedRows():this.core.rowModel.getAllNodes()).filter(i=>!i.isDetail&&!i.isGroup&&this.isSelectable(i));if(o.length!==0){if(t==="single"){this.applySelection([{node:o[0],selected:!0,clearOthers:!0}]);return}this.applySelection(o.map(i=>({node:i,selected:!0})))}}deselectAll(){this.applySelection([],!0)}isSelectAllActive(){let t=this.core.rowModel.getDisplayedRows().filter(r=>!r.isDetail&&!r.isGroup).filter(r=>this.isSelectable(r));if(t.length===0)return!1;if(this.core.rowModel.isInfinite){let r=this.core.rowModel.getDisplayTotalCount();if(t.length<r)return!1}return t.every(r=>this.selectedIds.has(r.id))}isSelectAllIndeterminate(){let t=this.core.rowModel.getDisplayedRows().filter(o=>!o.isDetail&&!o.isGroup).filter(o=>this.isSelectable(o)),r=t.reduce((o,i)=>o+(this.selectedIds.has(i.id)?1:0),0);if(r===0)return!1;if(this.core.rowModel.isInfinite){let o=this.core.rowModel.getDisplayTotalCount();if(t.length<o)return!0}return r>0&&r<t.length}applySelectionPublic(e,t=!1){this.applySelection(e,t)}replaceSelection(e,t,r){!t&&!e.some(o=>o.clearOthers)||(this.selectedIds=t?new Set:new Set(e.filter(o=>o.selected).flatMap(o=>r?this.subtreeIds(o.node):[o.node.id])))}applySelectionChanges(e,t){for(let r of e){if(!this.isSelectable(r.node))continue;let o=t?this.subtreeIds(r.node):[r.node.id];for(let i of o)r.selected?this.selectedIds.add(i):this.selectedIds.delete(i)}}changedSelectionIds(e){let t=new Set;for(let r of new Set([...e,...this.selectedIds]))e.has(r)!==this.selectedIds.has(r)&&t.add(r);return t}synchronizeNodeSelection(e,t,r){let o=[],i=new Set([...e,...r,...this.indeterminateIds]);for(let s of this.core.rowModel.getAllNodes()){let a=this.selectedIds.has(s.id);s.selected=a,(i.has(s.id)||t.get(s.id)!==a)&&s.rowIndex>=0&&o.push(s.rowIndex)}return o}applySelection(e,t=!1){let r=new Set(this.selectedIds),o=this.core.rowModel.isTree&&this.core.options.autoCheckedChildren;this.replaceSelection(e,t,o),this.applySelectionChanges(e,o);let i=this.changedSelectionIds(r),s=new Map;for(let d of this.core.rowModel.getAllNodes())s.set(d.id,d.selected);let a=new Set(this.indeterminateIds);this.recomputeTriState();let l=this.synchronizeNodeSelection(i,s,a);i.size>0&&(this.core.bodyRenderer.refreshRows(l),this.core.headerRenderer.refreshSelectAllCheckbox(),this.core.emit("selectionChanged",{selectedNodes:this.getSelectedNodes(),selectedRows:this.getSelectedRows()}))}subtreeIds(e){let t=[e.id],r=o=>{for(let i of this.core.rowModel.getChildrenIds(o))t.push(i),r(i)};return r(e.id),t}recomputeTriState(){if(this.indeterminateIds.clear(),!this.core.rowModel.isTree)return;let e=t=>{let r=this.core.rowModel.getChildrenIds(t);if(r.length===0)return{all:this.selectedIds.has(t),some:this.selectedIds.has(t)};let o=!0,i=!1;for(let s of r){let a=e(s);a.all?i=!0:(a.some&&(i=!0),o=!1)}return i&&!o&&this.indeterminateIds.add(t),o?this.selectedIds.add(t):this.selectedIds.delete(t),{all:o,some:i}};for(let t of this.core.rowModel.getRootNodes())e(t.id);for(let t of this.core.rowModel.getAllNodes())t.selected=this.selectedIds.has(t.id)}};var Ne=class{constructor(e){this.core=e;this.active=null;this.rafId=0;this.pendingWidth=0;this.onMove=e=>{let t=this.matchActivePointer(e);t&&(this.pendingWidth=this.widthFromPointer(t,e.clientX),t.didResize||(t.didResize=Math.abs(this.pendingWidth-t.startWidth)>=.5),!this.rafId&&(this.rafId=requestAnimationFrame(()=>{this.rafId=0,this.applyPendingWidth()})))};this.onUp=e=>{let t=this.matchActivePointer(e);t&&(this.pendingWidth=this.widthFromPointer(t,e.clientX),t.didResize||(t.didResize=Math.abs(this.pendingWidth-t.startWidth)>=.5),this.finishResize(t))};this.onCancel=e=>{this.matchActivePointer(e)&&this.cancelResize()};this.onLostPointerCapture=()=>{this.cancelResize()}}startResize(e,t){if(!this.core.options.enableColumnResize||!t.resizable||e.isPrimary===!1)return;this.cancelResize();let r=e.currentTarget,o=t.currentWidth;this.pendingWidth=o,this.active={column:t,didResize:!1,handle:r,pointerId:e.pointerId,startFlex:t.flex,startManualWidth:t.manualWidth,startWidth:o,startX:e.clientX},window.addEventListener("pointermove",this.onMove),window.addEventListener("pointerup",this.onUp,!0),window.addEventListener("pointercancel",this.onCancel,!0),r.addEventListener("lostpointercapture",this.onLostPointerCapture);try{r.setPointerCapture?.(e.pointerId)}catch{}this.core.skeleton.root.classList.add("mach-root--resizing")}cancelResize(e=!0){let t=this.active;t&&(this.active=null,this.clearFrame(),this.removeListeners(t),e&&(t.column.manualWidth=t.startManualWidth,t.column.flex=t.startFlex,this.core.relayoutColumns()),this.core.skeleton.root.classList.remove("mach-root--resizing"))}finishResize(e){this.active=null,this.clearFrame(),e.didResize&&(Math.abs(this.pendingWidth-e.startWidth)<.5?(e.column.manualWidth=e.startManualWidth,e.column.flex=e.startFlex):this.core.columnModel.setColumnWidth(e.column,this.pendingWidth),this.core.relayoutColumns()),this.removeListeners(e);try{e.handle.releasePointerCapture?.(e.pointerId)}catch{}this.core.skeleton.root.classList.remove("mach-root--resizing"),e.didResize&&this.core.commitColumnWidths([e.column])}applyPendingWidth(){let e=this.active;!e||!this.core.columnModel.setColumnWidth(e.column,this.pendingWidth)||(this.core.relayoutColumns(),this.core.emitColumnResize(e.column,!1))}widthFromPointer(e,t){let r=Number.isFinite(t)?t:e.startX;return e.startWidth+r-e.startX}matchActivePointer(e){let t=this.active;return t&&e.pointerId===t.pointerId?t:null}clearFrame(){this.rafId&&cancelAnimationFrame(this.rafId),this.rafId=0}removeListeners(e){window.removeEventListener("pointermove",this.onMove),window.removeEventListener("pointerup",this.onUp,!0),window.removeEventListener("pointercancel",this.onCancel,!0),e.handle.removeEventListener("lostpointercapture",this.onLostPointerCapture)}destroy(){this.cancelResize(!1),this.clearFrame(),this.core.skeleton.root?.classList.remove("mach-root--resizing")}};function f(n,e,t){let r=document.createElement(n);if(e&&(r.className=e),t)for(let o of Object.keys(t))r.setAttribute(o,t[o]);return r}var Fn=["--mach-font-family","--mach-font-size","--mach-font-size-sm","--mach-header-font-weight","--mach-cell-padding","--mach-header-h","--mach-primary","--mach-primary-weak","--mach-success","--mach-warning","--mach-danger","--mach-info","--mach-border-color","--mach-border-width","--mach-header-bg","--mach-header-fg","--mach-body-bg","--mach-body-fg","--mach-row-hover-bg","--mach-radius-sm","--mach-radius","--mach-radius-lg","--mach-shadow-sm","--mach-shadow","--mach-transition","--mach-z-popup","--mach-z-menu"];function A(n,e){if(n.classList.add("mach-portal"),!e)return;let t=window.getComputedStyle(e);for(let r of Fn){let o=t.getPropertyValue(r).trim();o&&n.style.setProperty(r,o)}n.style.colorScheme=t.colorScheme}function x(n,e,t){return n<e?e:n>t?t:n}var xr=0;function Mr(n="rg"){return xr++,`${n}-${xr}`}var kr='<svg viewBox="0 0 16 16" width="12" height="12" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M2 3.5h12L9.5 8v4.5L6.5 14V8L2 3.5z"/></svg>',Ir='<svg viewBox="0 0 16 16" width="10" height="10" fill="currentColor"><path d="M8 3l4 5H4l4-5z"/></svg>',Lr='<svg viewBox="0 0 16 16" width="10" height="10" fill="currentColor"><path d="M8 13l4-5H4l4 5z"/></svg>',Ar='<svg viewBox="0 0 16 16" width="12" height="12" fill="none" stroke="currentColor" stroke-width="1.35" stroke-linecap="round"><path d="M2 4h3m3 0h6M2 8h7m3 0h2M2 12h1m3 0h8"/><circle cx="6.5" cy="4" r="1.35"/><circle cx="10.5" cy="8" r="1.35"/><circle cx="4.5" cy="12" r="1.35"/></svg>';var Pr=6,Oe=class{constructor(e){this.core=e;this.pending=null;this.dragging=null;this.suppressClick=!1;this.moveRaf=0;this.pendingPoint=null;this.onMove=e=>{if(this.dragging){this.scheduleIndicator(e);return}let t=this.pending;t&&(Math.abs(e.clientX-t.startX)<Pr&&Math.abs(e.clientY-t.startY)<Pr||this.startDrag(e))};this.onUp=e=>{this.pending=null,e.type!=="pointercancel"&&this.dragging&&this.applyIndicator(e.clientX,e.clientY),this.cleanup();let t=this.clearDrag();t&&e.type!=="pointercancel"&&t.targetIndex>=0&&this.core.moveColumn(t.column.id,t.targetIndex)}}onPointerDown(e,t){e.button===0&&t.movable&&(this.pending={column:t,startX:e.clientX,startY:e.clientY},window.addEventListener("pointermove",this.onMove),window.addEventListener("pointerup",this.onUp),window.addEventListener("pointercancel",this.onUp))}didDrag(){let e=this.suppressClick;return this.suppressClick=!1,e}startDrag(e){let t=this.pending;if(!t)return;let r=this.findHeaderCell(t.column);if(!r||!r.parentElement){this.cleanup();return}this.suppressClick=!0;let o=f("div","mach-drop-indicator"),i=f("div","mach-column-drag-ghost");i.textContent=t.column.colDef.headerName??t.column.colDef.field??t.column.id,i.ariaHidden="true",A(i,this.core.skeleton.root),document.body.appendChild(i),r.parentElement.appendChild(o),r.classList.add("mach-header-cell--dragging"),this.core.skeleton.root.classList.add("mach-root--dragging");let s=this.core.bodyRenderer.paneForColumn(t.column),a=this.core.skeleton.headerRowContainers[s],l=this.core.columnModel.getPaneColumns(s),d=new Float64Array(l.length+1),c=new Float64Array(l.length);for(let h=0;h<l.length;h++){let p=l[h].currentWidth;c[h]=d[h]+p/2,d[h+1]=d[h]+p}let u=i.getBoundingClientRect();this.dragging={column:t.column,cellEl:r,ghost:i,indicator:o,targetIndex:-1,pane:s,containerLeft:a.getBoundingClientRect().left,startScrollLeft:this.core.skeleton.bodyViewports.center.scrollLeft,fromIndex:l.indexOf(t.column),midpoints:c,offsets:d,ghostWidth:u.width,ghostHeight:u.height},this.applyIndicator(e.clientX,e.clientY)}findHeaderCell(e){let t=this.core.bodyRenderer.paneForColumn(e);return this.core.skeleton.headerRowContainers[t].querySelector(`.mach-header-cell[data-col-id="${Nn(e.id)}"]`)}scheduleIndicator(e){this.pendingPoint={clientX:e.clientX,clientY:e.clientY},!this.moveRaf&&(this.moveRaf=requestAnimationFrame(()=>{this.moveRaf=0;let t=this.pendingPoint;this.pendingPoint=null,t&&this.applyIndicator(t.clientX,t.clientY)}))}applyIndicator(e,t){let r=this.dragging;if(!r)return;let o=x(e+12,8,window.innerWidth-r.ghostWidth-8),i=x(t+12,8,window.innerHeight-r.ghostHeight-8);r.ghost.style.transform=`translate3d(${o}px, ${i}px, 0)`;let s=r.pane==="center"?this.core.skeleton.bodyViewports.center.scrollLeft-r.startScrollLeft:0,a=e-(r.containerLeft-s),l=r.midpoints.length;for(let d=0;d<r.midpoints.length;d++)if(a<r.midpoints[d]){l=d;break}r.targetIndex=l>r.fromIndex?l-1:l,r.indicator.style.transform=`translate3d(${r.offsets[l]}px, 0, 0)`}clearDrag(){let e=this.dragging;return e?(this.dragging=null,e.cellEl.classList.remove("mach-header-cell--dragging"),e.ghost.remove(),e.indicator.remove(),this.core.skeleton.root.classList.remove("mach-root--dragging"),e):null}cleanup(){window.removeEventListener("pointermove",this.onMove),window.removeEventListener("pointerup",this.onUp),window.removeEventListener("pointercancel",this.onUp),this.moveRaf&&cancelAnimationFrame(this.moveRaf),this.moveRaf=0,this.pendingPoint=null}destroy(){this.cleanup(),this.clearDrag(),this.pending=null}};function Nn(n){return typeof CSS<"u"&&typeof CSS.escape=="function"?CSS.escape(n):n.replace(/[^a-zA-Z0-9_-]/g,"\\$&")}function Gr(n,e){let t=n==null?"":String(n);return t.includes(e)||t.includes('"')||t.includes(`
1
+ var Se="0.29.2";var De=class{constructor(e){this.onListenerError=e;this.listeners=new Map}on(e,t){let r=this.listeners.get(e);return r||(r=new Set,this.listeners.set(e,r)),r.add(t),()=>{r.delete(t)}}once(e,t){let r=this.on(e,o=>{r(),t(o)});return r}off(e,t){let r=this.listeners.get(e);r&&(r.delete(t),r.size===0&&this.listeners.delete(e))}emit(e,t){let r=this.listeners.get(e);if(r)for(let o of[...r])try{o(t)}catch(i){console.error(`[mach-table] error in "${e}" listener`,i),this.onListenerError?.(i,e)}}clear(){this.listeners.clear()}};var $o=new Set(["__proto__","prototype","constructor"]);function le(n){return typeof n!="string"||n.length===0?!1:n.split(".").every(t=>t.length>0&&!$o.has(t))}function X(n,e){if(n==null||!le(e))return;if(e.indexOf(".")<0)return n[e];let r=n,o=0;for(;o<e.length;){if(r==null)return;let i=e.indexOf(".",o);if(i<0){r=r[e.slice(o)];break}r=r[e.slice(o,i)],o=i+1}return r}function te(n,e,t){if(n==null||!le(e))return!1;let r=e.split("."),o=n;for(let i=0;i<r.length-1;i++){if(typeof o!="object"&&typeof o!="function"||o===null)return!1;o[r[i]]==null&&(o[r[i]]={}),o=o[r[i]]}return typeof o!="object"&&typeof o!="function"||o===null?!1:(o[r[r.length-1]]=t,!0)}var Uo=new Set(["contains","notContains","equals","notEquals","startsWith","endsWith","blank","notBlank"]),qo=new Set(["equals","notEquals","lessThan","lessThanOrEqual","greaterThan","greaterThanOrEqual","inRange","blank","notBlank"]),jo=new Set(["equals","notEquals","lessThan","greaterThan","inRange","blank","notBlank"]);function Yo(n){return n==null||typeof n=="string"||typeof n=="number"&&Number.isFinite(n)}function Xo(n){return n==="text"?Uo:n==="number"?qo:jo}function Qo(n,e,t){if(n==null||typeof n!="object")return null;let r=n;return typeof r.match!="string"||!t.has(r.match)?null:{match:r.match,...Jo(r,e)}}function Jo(n,e){let t=e==="number"?fr(n.value):typeof n.value=="string"?n.value:void 0,r=e==="number"?fr(n.value2):typeof n.value2=="string"?n.value2:void 0;return{...t!==void 0?{value:t}:{},...r!==void 0?{value2:r}:{}}}function fr(n){return typeof n=="number"&&Number.isFinite(n)?n:void 0}function Zo(n,e){let t=[],r=Xo(e);for(let o of n.slice(0,20)){let i=Qo(o,e,r);i&&t.push(i)}return t}function Rt(n){if(n==null||typeof n!="object")return null;let e=n;return e.type==="set"?Array.isArray(e.values)?{type:"set",values:e.values.filter(Yo).slice(0,2e3)}:null:e.type!=="text"&&e.type!=="number"&&e.type!=="date"||!Array.isArray(e.conditions)?null:{type:e.type,...e.operator==="or"||e.operator==="and"?{operator:e.operator}:{},conditions:Zo(e.conditions,e.type)}}function en(n,e){if(typeof n.colId!="string"||!n.colId.trim())return null;let t=n.colId.trim();if(e.validColumnIds?.has(t)===!1)return null;let r=Rt(n.filter);return r?{kind:"condition",colId:t,filter:r}:null}function tn(n,e,t){if(!Array.isArray(n.children))return null;let r=[];for(let o of n.children){let i=mr(o,e+1,t);i&&r.push(i)}return r.length===0?null:{kind:"group",operator:n.operator==="or"?"or":"and",children:r,...n.not===!0?{not:!0}:{}}}function rn(n,e,t){return e<=16&&t.nodes<512&&n!=null&&typeof n=="object"}function mr(n,e,t){if(!rn(n,e,t)||t.ancestors.has(n))return null;t.ancestors.add(n),t.nodes++;let r=n,o=r.kind==="condition"?en(r,t):r.kind==="group"?tn(r,e,t):null;return t.ancestors.delete(n),o}function z(n,e){if(n==null||typeof n!="object")return null;let t=n;if(t.version!==1||t.root==null)return null;let r=mr(t.root,0,{ancestors:new WeakSet,nodes:0,validColumnIds:e});return r?{version:1,root:r}:null}function on(n,e){return{kind:"condition",colId:n,filter:e}}function de(n,e){if(n==null||typeof n!="object"||Array.isArray(n))return{};let t={};for(let[r,o]of Object.entries(n).slice(0,2e3)){let i=r.trim();if(!i||e?.has(i)===!1)continue;let s=Rt(o);s&&(t[i]=s)}return t}function nn(n,e,t={}){return{kind:"group",operator:n,children:e,...t.not?{not:!0}:{}}}var St={align:"center",sortable:!0,resizable:!0,movable:!0,filter:!1,minWidth:80},ce={compact:{rowHeight:30,headerHeight:34,fontSize:12,cellPadding:6},normal:{rowHeight:36,headerHeight:40,fontSize:13,cellPadding:9},large:{rowHeight:44,headerHeight:48,fontSize:14,cellPadding:12}};function S(n,e,t,r=!1){return typeof n!="number"||!Number.isFinite(n)||n<t?e:r?Math.floor(n):n}function sn(n){return n&&Object.prototype.hasOwnProperty.call(ce,n)?n:"normal"}function an(n){return n.theme==="light"||n.theme==="dark"||n.theme==="auto"?n.theme:"light"}function ln(n,e){let t=typeof n.pagination=="object"&&Array.isArray(n.pagination.pageSizeOptions)?n.pagination.pageSizeOptions:void 0,r=t?[...new Set(t.map(o=>S(o,0,1,!0)).filter(Boolean))]:[10,20,50,100];return r.includes(e)||r.push(e),r.sort((o,i)=>o-i)}function Dt(n,e){let t=typeof n=="function"?n(e):X(e,n);return t==null?"":String(t)}function dn(n){let e=n.rowKey,t=e?({data:r})=>Dt(e,r):void 0;return{...t?{resolveRowId:t}:{},...e?{rowKey:e}:{}}}function cn(n,e){let t=ce[e];return{columnDefs:Array.isArray(n.columnDefs)?n.columnDefs:[],rowData:Array.isArray(n.rowData)?n.rowData:[],defaultColDef:{...St,...n.defaultColDef??{}},columnTypes:n.columnTypes??{},...dn(n),rowHeight:S(n.rowHeight,t.rowHeight,1),headerHeight:S(n.headerHeight,t.headerHeight,1),rowBuffer:S(n.rowBuffer,8,0,!0),columnLayout:n.columnLayout==="fit"?"fit":"normal",enableColumnResize:n.enableColumnResize===!0,domLayout:n.domLayout==="autoHeight"?"autoHeight":"normal",rowSelection:n.rowSelection==="single"||n.rowSelection==="multiple"?n.rowSelection:"none",multiSort:n.multiSort??!0,size:e,pinnedTopRowData:Array.isArray(n.pinnedTopRowData)?n.pinnedTopRowData:[],pinnedBottomRowData:Array.isArray(n.pinnedBottomRowData)?n.pinnedBottomRowData:[]}}function un(n){return{stripedRows:n.stripedRows??!1,showCellBorders:n.showCellBorders??!1,theme:an(n),quickFilterText:n.quickFilterText??null,suppressCellFocus:n.suppressCellFocus??!1,suppressRowHoverHighlight:n.suppressRowHoverHighlight??!1,suppressNoRowsOverlay:n.suppressNoRowsOverlay??!1,suppressHeaderFocus:n.suppressHeaderFocus??!1,loading:n.loading??!1,error:n.error??null,className:n.className??""}}function hn(n){return{editType:n.editType==="fullRow"?"fullRow":"cell",editableIndicator:n.editableIndicator==="always"||n.editableIndicator==="none"?n.editableIndicator:"hover",singleClickEdit:n.singleClickEdit??!1,manualSorting:n.manualSorting??!1,manualFiltering:n.manualFiltering??!1,showSummary:n.showSummary??!1,indexOffset:n.indexOffset??0,applyRowDrag:n.applyRowDrag??!0,undoStackSize:S(n.undoStackSize,100,0,!0),asyncTransactionWaitMillis:S(n.asyncTransactionWaitMillis,16,0,!0)}}function pn(n){return{masterDetail:n.masterDetail??!1,detailRowHeight:S(n.detailRowHeight,240,1),detailToggleColumn:n.detailToggleColumn??!0,treeData:n.treeData??!1,childrenKey:n.childrenKey??"children",autoCheckedChildren:n.autoCheckedChildren??!0,defaultExpandAll:n.defaultExpandAll??!1}}function fn(n){let e=typeof n.pagination=="object"?n.pagination:void 0,t=S(e?.pageSize,20,1,!0);return{paginationEnabled:n.pagination!==!1&&n.datasource==null,paginationMode:e?.mode==="server"?"server":"client",paginationPage:S(e?.page,1,1,!0),paginationTotal:S(e?.total,0,0,!0),paginationPageSize:t,paginationPageSizeOptions:ln(n,t),paginationShowTotal:e?e.showTotal!==!1:!0,paginationShowSizeSelector:e?e.showPageSizeSelector!==!1:!0}}function mn(n){return{watermarkEnabled:n.watermark!=null&&n.watermark!==!1,watermarkConfig:n.watermark==null||n.watermark===!1?null:n.watermark===!0?{text:"MachTable"}:n.watermark}}function gn(n){return{columnMenu:n.columnMenu??!1,advancedFilterModel:z(n.advancedFilterModel),...yn(n),locale:n.locale??{},suppressWarnings:n.suppressWarnings??!1,enableRangeSelection:n.enableRangeSelection??!1,suppressClipboard:n.suppressClipboard??!1,contextMenu:n.contextMenu??!1,tooltipShowDelay:S(n.tooltipShowDelay,600,0),flashCells:n.flashCells??!0,fillHandle:n.fillHandle??!0,statusBarEnabled:n.statusBar===!0||typeof n.statusBar=="object"&&n.statusBar!=null,statusBarPanels:typeof n.statusBar=="object"&&n.statusBar?.panels?n.statusBar.panels:["rowCount","selectedRowCount","rangeAggregate"]}}function yn(n){let e=n.persistence;return!e||typeof e.key!="string"||!e.key.trim()?{persistence:null}:{persistence:{key:e.key.trim(),debounceMs:S(e.debounceMs,160,0,!0),...e.sections?{sections:[...new Set(e.sections)]}:{},...e.store?{store:e.store}:{}}}}function vn(n){return{datasourceMode:n.datasourceMode==="block"?"block":"sequential",blockSize:S(n.blockSize,100,1,!0),infiniteBufferRows:S(n.infiniteBufferRows,40,0,!0),maxBlocksInCache:S(n.maxBlocksInCache,12,1,!0),datasourceMaxConcurrentRequests:S(n.datasourceMaxConcurrentRequests,4,1,!0),blockPrefetch:S(n.blockPrefetch,1,0,!0),datasourceRowCount:n.datasourceRowCount==null?null:S(n.datasourceRowCount,0,0,!0),dataProcessorMinRows:S(n.dataProcessorMinRows,5e3,1,!0),datasourceRetryCount:S(n.datasourceRetryCount,2,0,!0),datasourceRetryDelay:S(n.datasourceRetryDelay,300,0,!0),datasourceRetryJitter:Math.min(1,S(n.datasourceRetryJitter,.15,0))}}function wn(n){return{ariaLabel:n.ariaLabel??"MachTable data grid",ariaLabelledBy:n.ariaLabelledBy??"",ariaDescribedBy:n.ariaDescribedBy??"",overlayNoRowsTemplate:n.overlayNoRowsTemplate??"",overlayLoadingTemplate:n.overlayLoadingTemplate??"",overlayErrorTemplate:n.overlayErrorTemplate??"",allowUnsafeOverlayHtml:n.allowUnsafeOverlayHtml??!1}}var bn=["detailRowRenderer","isRowExpandable","aggFuncs","components","actionPolicy","summaryMethod","datasource","getRowHeight","tooltipComponent","getContextMenuItems","initialState","rowEditValidator","isTreeRowExpandable","loadTreeChildren","dataProcessor"];function Cn(n,e){for(let t of bn)n[t]&&Object.assign(e,{[t]:n[t]})}function Tn(n,e){for(let t of Object.keys(n))t.startsWith("on")&&typeof n[t]=="function"&&Object.assign(e,{[t]:n[t]})}function gr(n){let e=sn(n.size),t={...cn(n,e),...un(n),...hn(n),...pn(n),...fn(n),...mn(n),...gn(n),...vn(n),...wn(n),features:Array.isArray(n.features)?n.features:[]};return Cn(n,t),Tn(n,t),t}function yr(n){return Array.isArray(n)?n.filter(e=>typeof e=="string"&&e.length>0):typeof n=="string"&&n.length>0?[n]:[]}function re(n,e){return yr(n.type).includes(e)}function vr(n,e,t={}){let r={};for(let o of yr(n.type)){let i=t[o];i&&Object.assign(r,i)}return{...e,...r,...n}}var W=class{constructor(e,t){this.manualWidth=null;this.flex=null;this.currentWidth=0;this.parentGroup=null;this.level=0;this.isDetailToggle=!1;this.id=e,this.colDef=t,this.hide=t.hide??!1;let r=t.pinned;this.pinned=r===!0?"left":r===!1||r==null?null:r,this.resetWidth()}get sortable(){return this.colDef.sortable!==!1}get resizable(){return this.colDef.resizable!==!1}get movable(){return this.colDef.movable!==!1}get filterable(){return this.colDef.filter!=null&&this.colDef.filter!==!1}get filterType(){let e=this.colDef.filter;return e===!0?"text":e??"text"}get hasCheckbox(){return this.colDef.checkboxSelection===!0}resetWidth(){this.manualWidth=null,this.flex=typeof this.colDef.flex=="number"&&Number.isFinite(this.colDef.flex)&&this.colDef.flex>0?this.colDef.flex:null}};var Q=class n{constructor(e,t){this.parent=null;this.children=[];this.groupId=e,this.def=t}get headerName(){return this.def.headerName??this.def.groupId??""}getLeafColumns(e=[]){for(let t of this.children)t instanceof n?t.getLeafColumns(e):e.push(t);return e}};function ue(n){return Array.isArray(n.children)}function Ee(n,e){return typeof n=="number"&&Number.isFinite(n)&&n>0?n:e}function wr(n){let e=Ee(n.minWidth,80);return{min:e,max:Math.max(e,Ee(n.maxWidth,Number.MAX_SAFE_INTEGER))}}function N(n,e){let{min:t,max:r}=wr(e),o=Ee(n,Ee(e.width,150));return Math.max(t,Math.min(r,o))}function br(n,e){let t=n.map(s=>N(s.width??150,s)),r=[],o=0;n.forEach((s,a)=>{let l=s.flex??0;l>0&&(r.push(a),o+=l)});let i=0;for(let s of t)i+=s;if(o>0&&e>i){let s=e-i;for(let a=0;a<4&&s>.5&&r.length>0;a++){let l=[],d=0;for(let p of r){let m=n[p].flex??0;l.push(p),d+=m}let c=[];for(let p=0;p<l.length;p++){let m=l[p],y=n[m].flex??0,v=s*y/d,g=t[m];t[m]=N(g+v,n[m]),c.push(t[m]-g)}let u=0;for(let p of c)u+=p;s-=u;let h=l.filter((p,m)=>c[m]>.001);if(h.length===l.length)break;r.length=0;for(let p of h)r.push(p)}}return t}function Rn(n,e,t){let r=new Set(n.map((i,s)=>s)),o=t;for(let i=0;i<n.length+1&&r.size>0;i++){let s=0;for(let l of r)s+=Math.max(1,e[l]);if(s<=0)break;let a=!1;for(let l of[...r]){let d=o*(Math.max(1,e[l])/s),c=N(d,n[l]),{min:u,max:h}=wr(n[l]);(d<u||d>h)&&(e[l]=c,o-=c,r.delete(l),a=!0)}if(!a){for(let l of r)e[l]=N(o*(Math.max(1,e[l])/s),n[l]);break}o=Math.max(0,o)}}function Sn(n,e,t){let r=t-e.reduce((o,i)=>o+i,0);if(!(Math.abs(r)<=.01))for(let o=e.length-1;o>=0;o--){let i=N(e[o]+r,n[o]);if(Math.abs(i-e[o])>.01){e[o]=i;return}}}function Cr(n,e){let t=n.map(r=>N(r.width??150,r));return!Number.isFinite(e)||e<=0||n.length===0||(Rn(n,t,e),Sn(n,t,e)),t}var Et="__rg_detail_toggle__";function xe(n){return typeof n=="number"&&Number.isFinite(n)&&n>0}var Me=class{constructor(e){this.core=e;this.columns=[];this.rootChildren=[];this.left=[];this.center=[];this.right=[];this.sortModel=[];this.defs=[];this.headerDepth=1;this.flatIndexById=new Map;this.viewportWidth=0}setColumnDefs(e){this.defs=e?[...e]:[];let t=new Map(this.columns.map(s=>[s.id,s])),r=this.core.options.defaultColDef,o=new Set(this.core.options.masterDetail&&this.core.options.detailToggleColumn?[Et]:[]),i=(s,a,l)=>s.map((d,c)=>{if(ue(d)){let g=d.groupId??d.headerName??`group_${c}_${l}`,b=new Q(g,d);return b.parent=a,b.children=i(d.children,b,l+1),b}let u=d,h=u.colId??u.field??`col_${c}`,p=h,m=2;for(;o.has(p);)p=`${h}_${m++}`;o.add(p);let y=new W(p,vr(u,r,this.core.options.columnTypes));y.parentGroup=a,y.level=l;let v=t.get(p);return v&&(y.manualWidth=v.manualWidth,y.flex=v.flex,y.hide=v.hide,y.pinned=v.pinned),y});if(this.rootChildren=i(this.defs,null,0),this.core.options.masterDetail&&this.core.options.detailToggleColumn){let s=new W(Et,{colId:Et,headerName:"",width:38,pinned:"left",sortable:!1,resizable:!1,movable:!1,filter:!1});s.isDetailToggle=!0,this.rootChildren.unshift(s)}if(this.columns=this.collectLeaves(this.rootChildren),this.headerDepth=this.columns.reduce((s,a)=>Math.max(s,a.level+1),1),this.sortModel=this.sortModel.filter(s=>this.columns.some(a=>a.id===s.colId)),this.sortModel.length===0){let s=[];for(let a of this.columns)a.colDef.initialSort&&s.push({colId:a.id,direction:a.colDef.initialSort});this.sortModel=s}this.regroup()}collectLeaves(e,t=[]){for(let r of e)r instanceof Q?this.collectLeaves(r.children,t):t.push(r);return t}regroup(){let e=this.columns.filter(t=>!t.hide);this.left=e.filter(t=>t.pinned==="left"),this.right=e.filter(t=>t.pinned==="right"),this.center=e.filter(t=>t.pinned===null),this.flatIndexById.clear(),this.getOrderedVisible().forEach((t,r)=>this.flatIndexById.set(t.id,r))}getFlatIndex(e){return this.flatIndexById.get(e)??-1}getColumns(){return this.columns}getColumnDefs(){return this.defs}getRootChildren(){return this.rootChildren}getHeaderDepth(){return this.headerDepth}getColumn(e){return this.columns.find(t=>t.id===e)}getPaneColumns(e){return e==="left"?this.left:e==="right"?this.right:this.center}getOrderedVisible(){return[...this.left,...this.center,...this.right]}getRowGroupColumns(){return this.getOrderedVisible().filter(e=>e.colDef.rowGroup===!0)}getAggColumns(){return this.getOrderedVisible().filter(e=>e.colDef.aggFunc!=null&&e.colDef.rowGroup!==!0)}hasColSpan(){return this.center.some(e=>e.colDef.colSpan!=null)}getGroupLabelColumn(){let e=this.getOrderedVisible();return this.center.find(t=>!t.hasCheckbox&&!t.isDetailToggle)??e.find(t=>!t.hasCheckbox&&!t.isDetailToggle)??e[0]}paneOf(e){return e.pinned==="left"?"left":e.pinned==="right"?"right":"center"}computeLayout(e){this.viewportWidth=e;let t=0;for(let c of[...this.left,...this.right])c.currentWidth=N(c.manualWidth??c.colDef.width??150,this.widthInputOf(c)),t+=c.currentWidth;let r=Math.max(0,e-t),o=[],i=[];for(let c of this.center)(c.colDef.suppressSizeToFit||c.manualWidth!=null?i:o).push(c);let s=0;for(let c of i)c.currentWidth=N(c.manualWidth??c.colDef.width??150,this.widthInputOf(c)),s+=c.currentWidth;let a=o.map(c=>this.widthInputOf(c)),l=Math.max(0,r-s),d=this.core.options.columnLayout==="fit"?Cr(a,l):br(a,l);o.forEach((c,u)=>{c.currentWidth=d[u]})}widthInputOf(e){let t=e.colDef;return e.manualWidth!=null?{width:e.manualWidth,minWidth:t.minWidth,maxWidth:t.maxWidth}:{width:t.width,minWidth:t.minWidth,maxWidth:t.maxWidth,...e.flex!=null?{flex:e.flex}:{}}}setColumnWidth(e,t){return xe(t)?(e.manualWidth=N(t,this.widthInputOf(e)),e.flex=null,!0):!1}setColumnVisibility(e,t){let r=this.getColumn(e);!r||r.hide===!t||(r.hide=!t,this.regroup())}moveColumn(e,t){let r=this.getColumn(e);if(!r)return!1;let o=this.paneOf(r),i=u=>r.parentGroup?!0:this.paneOf(u)===o,s=r.parentGroup?r.parentGroup.children:this.rootChildren,a=s.filter(u=>u instanceof W&&!u.hide&&i(u)),l=a.indexOf(r);if(l<0)return!1;a.splice(l,1);let d=Math.max(0,Math.min(t,a.length));a.splice(d,0,r);let c=[];return s.forEach((u,h)=>{u instanceof W&&!u.hide&&i(u)&&c.push(h)}),c.length!==a.length?!1:(c.forEach((u,h)=>{s[u]=a[h]}),this.columns=this.collectLeaves(this.rootChildren),this.regroup(),!0)}setColumnPinned(e,t){let r=this.getColumn(e);!r||!r.movable||(r.pinned=t,this.regroup())}getColumnState(){return this.columns.map(e=>({colId:e.id,hide:e.hide,width:e.manualWidth??e.currentWidth,flex:e.flex,widthMode:e.manualWidth==null?"auto":"manual",pinned:e.pinned}))}applyColumnState(e){let t=new Map(e.map(r=>[r.colId,r]));for(let r of this.columns){let o=t.get(r.id);o&&this.applyColumnViewState(r,o)}this.applyStateOrder(e),this.regroup()}applyColumnViewState(e,t){typeof t.hide=="boolean"&&(e.hide=t.hide),t.widthMode==="auto"?(e.resetWidth(),xe(t.flex)&&(e.flex=t.flex)):xe(t.flex)?(e.flex=t.flex,e.manualWidth=null):xe(t.width)&&(e.manualWidth=N(t.width,this.widthInputOf(e)),e.flex=null),e.movable&&(t.pinned==="left"||t.pinned==="right"||t.pinned===null)&&(e.pinned=t.pinned)}applyStateOrder(e){let t=new Map;e.forEach((o,i)=>t.set(o.colId,i));let r=o=>o.pinned==="left"?"left":o.pinned==="right"?"right":"center";for(let o of["left","center","right"]){let i=this.rootChildren.filter(d=>d instanceof W&&!d.hide&&d.parentGroup===null&&r(d)===o);if(i.length<2)continue;let s=i.filter(d=>d.movable),a=s.slice().sort((d,c)=>(t.get(d.id)??Number.MAX_SAFE_INTEGER)-(t.get(c.id)??Number.MAX_SAFE_INTEGER));if(a.every((d,c)=>d===s[c]))continue;let l=[];this.rootChildren.forEach((d,c)=>{d instanceof W&&!d.hide&&d.parentGroup===null&&r(d)===o&&d.movable&&l.push(c)}),l.forEach((d,c)=>{this.rootChildren[d]=a[c]})}this.columns=this.collectLeaves(this.rootChildren)}resetColumnState(){for(let e of this.columns){e.resetWidth(),e.hide=e.colDef.hide??!1;let t=e.colDef.pinned;e.pinned=t===!0?"left":t===!1||t==null?null:t}this.regroup()}getSortModel(){return this.sortModel.map(e=>({...e}))}applySortModel(e){if(!e||e.length===0){this.sortModel=[];return}this.sortModel=e.filter(t=>this.columns.some(r=>r.id===t.colId)&&(t.direction==="asc"||t.direction==="desc")).map(t=>({colId:t.colId,direction:t.direction}))}cycleSort(e,t){let r=[...this.sortModel],o=r.findIndex(l=>l.colId===e.id),i=o>=0?r[o].direction:null,s=i===null?"asc":i==="asc"?"desc":null;t&&this.core.options.multiSort?s===null?o>=0&&r.splice(o,1):o>=0?r[o]={colId:e.id,direction:s}:r.push({colId:e.id,direction:s}):(r.length=0,s&&r.push({colId:e.id,direction:s})),this.sortModel=r}};function Rr(n){return n==null?"":String(n).toLowerCase()}function Dn(n,e,t){let r=Rr(n),o=e.map(i=>{let s=(i.value??"").toLowerCase();switch(i.match){case"contains":return r.includes(s);case"notContains":return!r.includes(s);case"equals":return r===s;case"notEquals":return r!==s;case"startsWith":return r.startsWith(s);case"endsWith":return r.endsWith(s);case"blank":return r==="";case"notBlank":return r!=="";default:return!0}});return o.length===0?!0:t==="or"?o.some(Boolean):o.every(Boolean)}function En(n,e,t){switch(t.match){case"equals":return n===e;case"notEquals":return n!==e;case"lessThan":return n<e;case"lessThanOrEqual":return n<=e;case"greaterThan":return n>e;case"greaterThanOrEqual":return n>=e;case"inRange":return n>=e&&n<=(t.value2??e);default:return!0}}function xn(n,e){let t=n==null||n==="";if(e.match==="blank")return t;if(e.match==="notBlank")return!t;if(t)return!1;let r=typeof n=="number"?n:Number(n);if(Number.isNaN(r))return!1;let o=e.value;return o==null||Number.isNaN(o)?!1:En(r,o,e)}function Mn(n,e,t){let r=e.map(o=>xn(n,o));return r.length===0?!0:t==="or"?r.some(Boolean):r.every(Boolean)}function ke(n){if(n==null||n==="")return null;if(n instanceof Date)return isNaN(n.getTime())?null:n.getTime();if(typeof n=="number")return n;let e=Date.parse(String(n));return isNaN(e)?null:e}function kn(n,e,t){let r=e.map(o=>{let i=ke(n)==null;if(o.match==="blank")return i;if(o.match==="notBlank")return!i;if(i)return!1;let s=ke(n),a=o.value!=null?ke(o.value):null;if(a==null)return!1;switch(o.match){case"equals":return s===a;case"notEquals":return s!==a;case"lessThan":return s<a;case"greaterThan":return s>a;case"inRange":{let l=o.value2!=null?ke(o.value2):null;return l!=null?s>=a&&s<=l:s>=a}default:return!0}});return r.length===0?!0:t==="or"?r.some(Boolean):r.every(Boolean)}function In(n,e){return e.length===0?!0:e.some(t=>t==null&&n==null||t===n)}function Sr(n,e){let t=e.type!=="set"&&e.operator==="or"?"or":"and";switch(e.type){case"text":return Dn(n,e.conditions,t);case"number":return Mn(n,e.conditions,t);case"date":return kn(n,e.conditions,t);case"set":return In(n,e.values);default:return!0}}function xt(n,e,t,r){if(n.kind==="condition"){let i=e.get(n.colId);return!i||Sr(r(t,i),n.filter)}let o=n.operator==="or"?n.children.some(i=>xt(i,e,t,r)):n.children.every(i=>xt(i,e,t,r));return n.not?!o:o}function Ln(n,e,t,r){return t?xt(t.root,new Map(e.map(o=>[o.id,o])),n,r):!0}function Mt(n,e,t,r,o,i){for(let s of Object.keys(t)){let a=t[s],l=e.find(c=>c.id===s);if(!l)continue;let d=i(n,l);if(!Sr(d,a))return!1}if(!Ln(n,e,r,i))return!1;if(o&&o.trim()!==""){let s=o.trim().toLowerCase().split(/\s+/);for(let a of s)if(!e.some(d=>Rr(i(n,d)).includes(a)))return!1}return!0}var Dr=typeof Intl<"u"?new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"}):null;function An(n,e){let t=n==null||n==="",r=e==null||e==="";return!t&&!r?null:t&&r?0:t?1:-1}function Pn(n,e){let t=Number.isNaN(n),r=Number.isNaN(e);return t||r?t===r?0:t?1:-1:n-e}function Gn(n,e){return n===e?0:n?1:-1}function Ie(n,e){let t=An(n,e);if(t!==null)return t;if(typeof n=="number"&&typeof e=="number")return Pn(n,e);if(n instanceof Date&&e instanceof Date)return n.getTime()-e.getTime();if(typeof n=="boolean"&&typeof e=="boolean")return Gn(n,e);let r=String(n),o=String(e);return Dr?Dr.compare(r,o):r.localeCompare(o)}function kt(n,e,t,r){let o=new Map;for(let l of t)o.set(l.id,l);let i=[],s=[];for(let l of e){let d=o.get(l.colId);d&&(i.push(d.colDef.comparator??Ie),s.push(l.direction))}let a=n.map(l=>({node:l,values:e.map(d=>r(l,o.get(d.colId)))}));return a.sort((l,d)=>{for(let c=0;c<i.length;c++){let u=i[c](l.values[c],d.values[c],l.node,d.node);if(u!==0)return s[c]==="asc"?u:-u}return 0}),a.map(l=>l.node)}function Le(n){return n.filter(e=>typeof e=="number"&&!isNaN(e))}var Er={sum:n=>Le(n).reduce((e,t)=>e+t,0),avg:n=>{let e=Le(n);return e.length===0?null:e.reduce((t,r)=>t+r,0)/e.length},count:n=>n.length,min:n=>{let e=Le(n);return e.length===0?null:Math.min(...e)},max:n=>{let e=Le(n);return e.length===0?null:Math.max(...e)},first:n=>n.length>0?n[0]:null,last:n=>n.length>0?n[n.length-1]:null};function It(n){let e={...Er,...n??{}};return t=>e[t]}function oe(n){if(n.reason instanceof Error)return n.reason;let e=new Error(typeof n.reason=="string"?n.reason:"Block request aborted");return e.name="AbortError",e}function Ae(n){return Number.isFinite(n)?Math.max(1,Math.trunc(n)):1}var Pe=class{constructor(e,t,r=4){this.maxBlocks=e;this.onEvict=t;this.maxConcurrentRequests=r;this.blocks=new Map;this.inflight=new Map;this.clock=0;this.generation=0;this.hitCount=0;this.missCount=0;this.evictionCount=0;this.activeRequests=0;this.maxBlocks=Ae(e),this.maxConcurrentRequests=Ae(r)}configure(e,t=this.maxConcurrentRequests){this.maxBlocks=Ae(e),this.maxConcurrentRequests=Ae(t),this.evictOverflow(),this.drainQueue()}peek(e){let t=this.blocks.get(e);if(t)return t.touchedAt=++this.clock,t}has(e){return this.blocks.has(e)}load(e,t,r,o=0){if(r?.aborted)return Promise.reject(oe(r));let i=this.peek(e);if(i)return this.hitCount++,Promise.resolve(i);let s=this.inflight.get(e);if(s)return this.hitCount++,s.priority=Math.max(s.priority,o),this.drainQueue(),this.attachConsumer(e,s,r);this.missCount++;let a=new AbortController,l,d,c=new Promise((p,m)=>{l=p,d=m}),u={controller:a,promise:c,consumers:0,loader:t,priority:o,state:"queued",resolve:l,reject:d};this.inflight.set(e,u);let h=this.attachConsumer(e,u,r);return this.drainQueue(),h}purge(){this.generation++;for(let e of this.inflight.values())e.controller.abort(),e.state==="queued"&&e.reject(oe(e.controller.signal));this.inflight.clear();for(let[e,t]of this.blocks)this.onEvict?.(e,t);this.blocks.clear()}snapshot(){let e=0,t=0;for(let r of this.blocks.values())e+=r.rows.length;for(let r of this.inflight.values())r.state==="active"&&t++;return{cachedBlockCount:this.blocks.size,loadingBlockCount:this.inflight.size,activeRequestCount:t,queuedRequestCount:Math.max(0,this.inflight.size-t),cachedRowCount:e,hitCount:this.hitCount,missCount:this.missCount,evictionCount:this.evictionCount}}drainQueue(){for(;this.activeRequests<this.maxConcurrentRequests;){let e,t;for(let[r,o]of this.inflight)o.state!=="queued"||o.controller.signal.aborted||(!t||o.priority>t.priority)&&(e=r,t=o);if(e==null||!t)return;this.startEntry(e,t)}}startEntry(e,t){t.state="active",this.activeRequests++;let r=this.generation;this.runLoader(t).then(o=>{r===this.generation&&!t.controller.signal.aborted&&(this.blocks.set(e,{rows:o.rows,...o.lastRow==null?{}:{lastRow:o.lastRow},touchedAt:++this.clock}),this.evictOverflow()),t.resolve(o)},t.reject).finally(()=>{this.activeRequests=Math.max(0,this.activeRequests-1),this.inflight.get(e)===t&&this.inflight.delete(e),this.drainQueue()})}runLoader(e){let{signal:t}=e.controller;return t.aborted?Promise.reject(oe(t)):new Promise((r,o)=>{let i=()=>o(oe(t));t.addEventListener("abort",i,{once:!0}),Promise.resolve().then(()=>e.loader(t)).then(r,o).finally(()=>{t.removeEventListener("abort",i)})})}attachConsumer(e,t,r){return t.consumers++,new Promise((o,i)=>{let s=!1,a=d=>{s||(s=!0,r?.removeEventListener("abort",l),t.consumers=Math.max(0,t.consumers-1),d())},l=()=>a(()=>{t.consumers===0&&this.inflight.get(e)===t&&(this.inflight.delete(e),t.controller.abort(r?.reason),t.state==="queued"&&t.reject(oe(t.controller.signal))),i(oe(r))});r?.addEventListener("abort",l,{once:!0}),t.promise.then(d=>a(()=>o(d)),d=>a(()=>i(d instanceof Error?d:new Error(String(d??"Block request failed")))))})}evictOverflow(){for(;this.blocks.size>this.maxBlocks;){let e=-1,t=Number.POSITIVE_INFINITY;for(let[o,i]of this.blocks)i.touchedAt<t&&(e=o,t=i.touchedAt);if(e<0)return;let r=this.blocks.get(e);this.blocks.delete(e),this.evictionCount++,r&&this.onEvict?.(e,r)}}};function he(n,e){if(n==null||typeof n!="object")return;let t=n[e];return Array.isArray(t)?t:void 0}var Ge=class{constructor(e){this.core=e;this.all=[];this.roots=[];this.childIds=new Map;this.displayed=[];this.nodesById=new Map;this.filterModel={};this.advancedFilterModel=null;this.quickFilter=null;this.expandedIds=new Set;this.groupExpandedIds=new Set;this.knownGroupIds=[];this.spanInfo=new Map;this.mastersBuf=[];this.infiniteLastRow=null;this.infiniteRequested=!1;this.infiniteLoading=!1;this.infiniteSeq=0;this.infiniteAbort=null;this.infiniteRetryTimer=null;this.infinitePendingResolve=null;this.treeDepth=new WeakMap;this.rowSequence=new WeakMap;this.treeLoadControllers=new Map;this.treeLoadPromises=new Map;this.displayRevision=0;this.blockNodes=new Map;this.blockPlaceholders=new Map;this.installedBlocks=new Set;this.blockCache=new Pe(12,e=>this.evictBlock(e));this.dataProcessorSeq=0;this.dataProcessorAbort=null;this.skipDataProcessorOnce=!1;this.lastRequestedBlock=0;this.pipelineRows=[];this.page=1;this.pageSize=20;this.advancedFilterModel=z(e.options.advancedFilterModel)}resolveRowId(e,t,r){let o=this.core.options.resolveRowId;if(!o)return r;try{let i=o({data:e,index:t,api:this.core.getApi()});if(typeof i=="string"&&i.length>0)return i;this.core.reportError(new Error("rowKey must resolve to a non-empty identifier"),"rowKey",{index:t})}catch(i){this.core.reportError(i,"rowKey",{index:t})}return r}get isTree(){return this.core.options.treeData}get isInfinite(){return this.core.options.datasource!=null}get isBlockDatasource(){return this.isInfinite&&this.core.options.datasourceMode==="block"}getDisplayTotalCount(){if(this.isInfinite){if(this.isBlockDatasource)return this.resolveBlockRowCount();let e=Math.max(0,this.displayed.length-this.all.length);return(this.infiniteLastRow??this.all.length)+e}return this.displayed.length}getDisplayRevision(){return this.displayRevision}isLoadingInfinite(){return this.infiniteLoading}startInfinite(e){return!this.isInfinite||e?.aborted?Promise.resolve():(this.cancelInfiniteRequest(),this.infiniteLastRow=null,this.infiniteRequested=!1,this.all=[],this.roots=[],this.nodesById.clear(),this.expandedIds.clear(),this.core.undoService.clear(),this.refreshPipeline(),this.core.requestUpdate({data:!0}),this.isBlockDatasource?(this.blockCache.configure(this.core.options.maxBlocksInCache,this.core.options.datasourceMaxConcurrentRequests),this.loadRandomBlock(0,e)):this.loadBlock(0,void 0,e))}reloadInfinite(e){return this.isInfinite?this.startInfinite(e):Promise.resolve()}setInfiniteLoading(e){this.infiniteLoading=e,this.core.skeleton.setInfiniteLoading(e,this.core.getLocaleText("loading"))}loadBlock(e,t,r){if(!this.isInfinite||this.infiniteRequested||this.infiniteLastRow!=null&&e>=this.infiniteLastRow)return Promise.resolve();let o=this.core.options.datasource,i=this.core.options.blockSize,s=t??e+i;if(s<=e)return Promise.resolve();let a=++this.infiniteSeq,l=new AbortController,d=()=>l.abort(r?.reason);return r?.addEventListener("abort",d,{once:!0}),this.infiniteAbort=l,this.infiniteRequested=!0,this.setInfiniteLoading(!0),new Promise(c=>{let u=!1,h=0;this.infinitePendingResolve=c;let p=y=>{u||(u=!0,r?.removeEventListener("abort",d),a===this.infiniteSeq&&(this.infiniteRequested=!1,this.infiniteAbort=null,this.infinitePendingResolve=null,this.setInfiniteLoading(!1),y!=null&&y?.name!=="AbortError"&&this.core.reportError(y,"datasource.getRows",{startRow:e,endRow:s})),c())},m=()=>{if(u||a!==this.infiniteSeq||l.signal.aborted||this.core.isDestroyed()){p();return}h++;let y=!1,v=g=>{if(!(y||u)){if(y=!0,a!==this.infiniteSeq||l.signal.aborted||this.core.isDestroyed()){p();return}if(h<=this.core.options.datasourceRetryCount){let b=this.retryDelay(h);this.infiniteRetryTimer=setTimeout(()=>{this.infiniteRetryTimer=null,m()},b);return}p(g??new Error("Datasource request failed"))}};try{let g=o.getRows({startRow:e,endRow:s,sortModel:this.core.columnModel.getSortModel(),filterModel:this.getFilterModel(),advancedFilterModel:this.getAdvancedFilterModel(),quickFilterText:this.quickFilter,signal:l.signal,onSuccess:(b,T)=>{if(y||u)return;if(y=!0,a!==this.infiniteSeq||this.core.isDestroyed()||l.signal.aborted){p();return}let D=b??[];typeof T=="number"&&T>=0?this.infiniteLastRow=T:D.length<s-e&&(this.infiniteLastRow=e+D.length);let w=this.all.length===0;this.appendInfiniteRows(D),p(),this.refreshPipeline(),this.core.requestUpdate({data:!0}),w&&this.core.relayout(),this.core.headerRenderer.refreshSelectAllCheckbox()},fail:v});g&&typeof g.catch=="function"&&g.catch(v)}catch(g){v(g)}};m()})}cancelInfiniteRequest(){this.infiniteSeq++,this.infiniteRetryTimer!=null&&clearTimeout(this.infiniteRetryTimer),this.infiniteRetryTimer=null,this.infiniteAbort?.abort(),this.infiniteAbort=null,this.infiniteRequested=!1,this.setInfiniteLoading(!1),this.infinitePendingResolve?.(),this.infinitePendingResolve=null,this.blockCache.purge(),this.blockNodes.clear(),this.blockPlaceholders.clear(),this.installedBlocks.clear()}appendInfiniteRows(e){for(let t of e){if(t==null)continue;let r=this.all.length,o=this.resolveRowId(t,r,`inf-${this.core.nextId()}`);if(this.nodesById.has(o)){this.core.reportError(new Error(`Duplicate row id: ${o}`),"datasource.getRows",{rowId:o});continue}let i={id:o,data:t,rowIndex:-1,selected:this.core.selectionService.isSelected(o)};this.all.push(i),this.nodesById.set(o,i),this.roots.push(i)}}loadRandomBlock(e,t,r=0){if(!this.isBlockDatasource||e<0)return Promise.resolve();if(t?.aborted)return Promise.reject(this.abortError(t.reason));let o=this.core.options.blockSize,i=e*o;if(i>=this.resolveBlockRowCount())return Promise.resolve();let s=this.infiniteLastRow==null?i+o:Math.min(this.infiniteLastRow,i+o),a=this.blockCache.load(e,l=>this.requestDatasourceRange(i,s,l),t,r);return this.setInfiniteLoading(this.all.length===0&&this.blockCache.snapshot().loadingBlockCount>0),a.then(l=>{t?.aborted||this.core.isDestroyed()||!this.isBlockDatasource||this.installedBlocks.has(e)||(this.installBlock(e,l),this.refreshPipeline(),this.core.requestUpdate({data:!0}),this.core.headerRenderer.refreshSelectAllCheckbox())}).catch(l=>{throw l?.name!=="AbortError"&&this.core.reportError(l,"datasource.getRows",{startRow:i,endRow:s}),l}).finally(()=>{this.setInfiniteLoading(this.all.length===0&&this.blockCache.snapshot().loadingBlockCount>0)})}requestDatasourceRange(e,t,r){let o=this.core.options.datasource;return new Promise((i,s)=>{let a=0,l=null,d=!1,c=p=>{d||(d=!0,l!=null&&clearTimeout(l),r.removeEventListener("abort",u),s(p instanceof Error?p:new Error(typeof p=="string"?p:"Datasource request failed")))},u=()=>c(this.abortError(r.reason));r.addEventListener("abort",u,{once:!0});let h=()=>{if(d)return;if(r.aborted||this.core.isDestroyed()){u();return}a++;let p=!1,m=y=>{if(!(p||d)){if(p=!0,r.aborted||this.core.isDestroyed()){u();return}if(a<=this.core.options.datasourceRetryCount){let v=this.retryDelay(a);l=setTimeout(()=>{l=null,h()},v)}else c(y)}};try{let y=o.getRows({startRow:e,endRow:t,sortModel:this.core.columnModel.getSortModel(),filterModel:this.getFilterModel(),advancedFilterModel:this.getAdvancedFilterModel(),quickFilterText:this.quickFilter,signal:r,onSuccess:(v,g)=>{p||d||(p=!0,d=!0,r.removeEventListener("abort",u),i({rows:v??[],...typeof g=="number"&&g>=0?{lastRow:g}:{}}))},fail:m});y&&typeof y.catch=="function"&&y.catch(m)}catch(y){m(y)}};h()})}installBlock(e,t){let r=this.core.options.blockSize,o=e*r;this.evictBlock(e),typeof t.lastRow=="number"&&t.lastRow>=0?this.infiniteLastRow=t.lastRow:t.rows.length<r&&(this.infiniteLastRow=o+t.rows.length),t.rows.forEach((i,s)=>{if(i==null)return;let a=o+s;if(this.infiniteLastRow!=null&&a>=this.infiniteLastRow)return;let l=this.resolveRowId(i,a,`block-${a}`),d=this.nodesById.get(l);if(d&&d.rowIndex!==a){this.core.reportError(new Error(`Duplicate row id: ${l}`),"datasource.getRows",{rowId:l});return}let c={id:l,data:i,rowIndex:a,selected:this.core.selectionService.isSelected(l)};this.blockNodes.set(a,c),this.blockPlaceholders.delete(a),this.nodesById.set(l,c),this.rowSequence.set(c,a+1)}),this.rebuildLoadedBlockRows(),this.installedBlocks.add(e)}evictBlock(e){this.installedBlocks.delete(e);let t=this.core.options.blockSize,r=e*t;for(let o=r;o<r+t;o++){let i=this.blockNodes.get(o);i&&(this.blockNodes.delete(o),this.nodesById.get(i.id)===i&&this.nodesById.delete(i.id))}this.rebuildLoadedBlockRows()}rebuildLoadedBlockRows(){this.all=[...this.blockNodes.entries()].sort(([e],[t])=>e-t).map(([,e])=>e),this.roots=this.all}resolveBlockRowCount(){if(this.infiniteLastRow!=null)return this.infiniteLastRow;if(this.core.options.datasourceRowCount!=null)return this.core.options.datasourceRowCount;if(this.blockNodes.size===0)return this.core.options.blockSize;let e=0;for(let t of this.blockNodes.keys())e=Math.max(e,t+1);return e+this.core.options.blockSize}blockPlaceholder(e){let t=this.blockPlaceholders.get(e);if(!t&&(t={id:`__mach_loading_${e}`,data:null,rowIndex:e,selected:!1,loading:!0},this.blockPlaceholders.set(e,t),this.blockPlaceholders.size>2e3)){let r=this.blockPlaceholders.keys().next().value;r!=null&&this.blockPlaceholders.delete(r)}return t}abortError(e){if(e instanceof Error)return e;let t=new Error(typeof e=="string"?e:"Operation aborted");return t.name="AbortError",t}retryDelay(e){let t=Math.min(this.core.options.datasourceRetryDelay*2**Math.max(0,e-1),3e4),r=this.core.options.datasourceRetryJitter;return Math.max(0,Math.round(t*(1+(Math.random()*2-1)*r)))}checkInfiniteScroll(e){if(this.isBlockDatasource){this.prefetchVisibleBlocks(e);return}if(!this.isInfinite||this.infiniteRequested)return;let t=this.all.length;if(this.infiniteLastRow!=null&&t>=this.infiniteLastRow)return;let r=this.core.options.infiniteBufferRows;if(e+r<t&&e<t)return;let o=this.core.options.blockSize,i=this.infiniteLastRow==null?t+o:Math.min(this.infiniteLastRow,t+o);this.loadBlock(t,i)}prefetchVisibleBlocks(e){if(e<0)return;let t=this.core.options.blockSize,r=Math.floor(e/t),o=this.core.options.blockPrefetch,i=r<this.lastRequestedBlock?-1:1;this.lastRequestedBlock=r;for(let s=0;s<=o;s++){let a=s===0?[r]:[r+i*s,r-i*s];for(let l of a)l<0||l*t>=this.resolveBlockRowCount()||this.loadRandomBlock(l,void 0,o-s+1).catch(()=>{})}}onServerParamsChanged(){return this.reloadInfinite().catch(()=>{})}onDatasourceChanged(){return this.cancelInfiniteRequest(),this.isInfinite?this.startInfinite().catch(()=>{}):(this.infiniteLastRow=null,this.setRowData(this.core.options.rowData),this.core.requestUpdate({data:!0}),Promise.resolve())}destroy(){this.cancelInfiniteRequest(),this.cancelTreeLoads(),this.cancelDataProcessor(),this.core.options.dataProcessor?.destroy?.()}ensureRowsLoaded(e,t,r){if(!this.isBlockDatasource)return Promise.resolve();let o=this.core.options.blockSize,i=Math.max(0,Math.trunc(e)),s=Math.min(this.resolveBlockRowCount(),Math.max(i,Math.trunc(t))),a=Math.floor(i/o),l=Math.max(a,Math.floor(Math.max(i,s-1)/o)),d=[];for(let c=a;c<=l;c++)d.push(this.loadRandomBlock(c,r,100));return Promise.all(d).then(()=>{})}purgeDatasourceCache(){this.isBlockDatasource&&(this.blockCache.purge(),this.blockNodes.clear(),this.blockPlaceholders.clear(),this.installedBlocks.clear(),this.all=[],this.roots=[],this.nodesById.clear(),this.refreshPipeline(),this.core.requestUpdate({data:!0}))}getDatasourceCacheSnapshot(){return this.blockCache.snapshot()}setRowData(e){this.cancelTreeLoads(),this.core.changeTracker.clear();let t=this.core.options.resolveRowId,r=this.core.options.childrenKey,o=[],i=[],s=new Map,a=new Map,l=0,d=(c,u,h)=>{let p=l++,m=this.resolveRowId(c,p,`auto-${p}`);if(s.has(m))return this.core.reportError(new Error(`Duplicate row id: ${m}`),"rowData",{rowId:m,index:p}),null;let y=this.isTree?he(c,r):void 0,v={id:m,data:c,rowIndex:-1,selected:!1,treeChildrenLoaded:Array.isArray(y)};if(this.treeDepth.set(v,u),o.push(v),s.set(m,v),h!=null){let g=a.get(h)??[];g.push(m),a.set(h,g)}else i.push(v);if(this.isTree&&Array.isArray(y))for(let g of y)g!=null&&d(g,u+1,m);return v};(e??[]).forEach(c=>{c!=null&&d(c,0,null)}),this.all=o,this.roots=i,this.childIds=a,this.nodesById=s,this.core.undoService.clear();for(let c of[...this.expandedIds])s.has(c)||this.expandedIds.delete(c);if(this.core.options.defaultExpandAll)for(let c of o)this.getChildrenCount(c.id)>0&&this.expandedIds.add(c.id);this.core.selectionService.onRowsRebuilt(t!=null),this.refreshPipeline()}getChildrenIds(e){return this.childIds.get(e)??[]}getChildrenCount(e){return this.childIds.get(e)?.length??0}hasChildren(e){return this.getChildrenCount(e)>0}isTreeRowLoading(e){return this.nodesById.get(e)?.treeLoading===!0}cancelTreeLoads(){for(let e of this.treeLoadControllers.values())e.abort();this.treeLoadControllers.clear(),this.treeLoadPromises.clear()}loadTreeChildren(e,t=!1){let r=this.nodesById.get(e),o=this.core.options.loadTreeChildren;if(!this.isTree||!r?.data||!o)return Promise.resolve([]);if(!t&&r.treeChildrenLoaded)return Promise.resolve(this.getChildrenIds(e).flatMap(l=>{let d=this.nodesById.get(l)?.data;return d==null?[]:[d]}));let i=this.treeLoadPromises.get(e);if(i&&!t)return i;this.treeLoadControllers.get(e)?.abort();let s=new AbortController;this.treeLoadControllers.set(e,s),r.treeLoading=!0,r.treeLoadError=void 0,this.core.requestUpdate({data:!0});let a=Promise.resolve().then(()=>o({data:r.data,node:r,api:this.core.getApi(),signal:s.signal})).then(l=>{if(s.signal.aborted||this.core.isDestroyed())return[];if(!Array.isArray(l))throw new TypeError("[MachTable] loadTreeChildren must resolve to an array.");return this.replaceTreeChildren(r,l),r.treeChildrenLoaded=!0,r.treeLoadError=void 0,this.core.emit("treeChildrenLoaded",{rowId:e,rowNode:r,children:l}),l}).catch(l=>{if(s.signal.aborted||l?.name==="AbortError")return[];throw r.treeLoadError=l,r.treeChildrenLoaded=!1,this.core.reportError(l,"treeData.loadChildren",{rowId:e}),this.core.emit("treeChildrenLoadFailed",{rowId:e,rowNode:r,error:l}),l}).finally(()=>{this.treeLoadControllers.get(e)===s&&(this.treeLoadControllers.delete(e),this.treeLoadPromises.delete(e),r.treeLoading=!1,this.core.requestUpdate({data:!0}))});return this.treeLoadPromises.set(e,a),a}replaceTreeChildren(e,t){let r=new Set,o=[...this.getChildrenIds(e.id)];for(;o.length>0;){let s=o.pop();r.has(s)||(r.add(s),o.push(...this.getChildrenIds(s)))}this.validateTreeChildren(t,r);for(let s of r)this.treeLoadControllers.get(s)?.abort(),this.treeLoadControllers.delete(s),this.treeLoadPromises.delete(s),this.childIds.delete(s),this.nodesById.delete(s),this.expandedIds.delete(s);this.childIds.delete(e.id);let i=this.getTreeDepth(e)+1;for(let s of t)s!=null&&this.buildChildNodes(e,s,i);this.reindexAll(),this.core.selectionService.onRowsRebuilt(this.core.options.resolveRowId!=null),this.refreshPipeline(),this.core.requestUpdate({data:!0})}validateTreeChildren(e,t){let r=this.core.options.resolveRowId,o=r?new Set([...this.nodesById.keys()].filter(l=>!t.has(l))):null,i=new WeakSet,s=[...e],a=0;for(;s.length>0;){let l=s.pop();if(l==null)continue;if(typeof l=="object"){if(i.has(l))throw new TypeError("[MachTable] Lazy tree children contain a cyclic object graph.");i.add(l)}if(r&&o){let c=r({data:l,index:a++,api:this.core.getApi()});if(typeof c!="string"||c.length===0)throw new TypeError("[MachTable] rowKey must resolve to a non-empty identifier for lazy tree children.");if(o.has(c))throw new Error(`Duplicate row id: ${c}`);o.add(c)}let d=he(l,this.core.options.childrenKey);d&&s.push(...d)}}applyTransaction(e,t=!0){let r=this.core.options.resolveRowId,o=[],i=[];if(e.remove?.length){let a=new Set,l=new Set,d=u=>{if(r){let p=[this.resolveRowId(u,-1,`__missing_remove_${this.core.nextId()}`)];for(;p.length>0;){let m=p.pop();if(!a.has(m)){a.add(m);for(let y of this.childIds.get(m)??[])p.push(y)}}}else{let h=[u];for(;h.length>0;){let p=h.pop();l.add(p);let m=this.isTree?he(p,this.core.options.childrenKey):void 0;if(m)for(let y of m)h.push(y)}}};e.remove.forEach(d),this.all=this.all.filter(u=>{let h=a.has(u.id)||u.data!=null&&l.has(u.data);return h&&(i.push(u.id),this.nodesById.delete(u.id),this.childIds.delete(u.id)),!h});let c=new Set(this.all);this.roots=this.roots.filter(u=>c.has(u))}if(e.update?.length)for(let a of e.update){let l;r?l=this.nodesById.get(this.resolveRowId(a,-1,`__missing_update_${this.core.nextId()}`)):l=this.all.find(d=>d.data===a),l&&(l.data=a,i.push(l.id),this.core.bodyRenderer.invalidateRowHeight(l),o.push(l))}if(e.add?.length){let a=e.addIndex!=null?Math.max(0,Math.min(e.addIndex,this.roots.length)):this.roots.length,l=[];e.add.forEach((d,c)=>{let u=this.resolveRowId(d,a+c,`add-${this.core.nextId()}`);if(this.nodesById.has(u)){this.core.reportError(new Error(`Duplicate row id: ${u}`),"transaction.add",{rowId:u});return}let h={id:u,data:d,rowIndex:-1,selected:!1};this.nodesById.set(u,h),this.treeDepth.set(h,0);let p=this.isTree?he(d,this.core.options.childrenKey):void 0;if(p)for(let m of p)m!=null&&this.buildChildNodes(h,m,1);l.push(h)}),this.roots.splice(a,0,...l),this.reindexAll()}let s=this.transactionNeedsPipeline(e);return t&&(s?this.refreshPipeline():o.length>0&&this.emitIncrementalModelUpdate()),this.core.changeTracker.clearRows(i),{pipelineChanged:s,updatedRowIds:o.map(a=>a.id)}}applyTransactions(e){if(e.length===0)return{pipelineChanged:!1,updatedRowIds:[]};let t=!1,r=new Set;for(let o of e){let i=this.applyTransaction(o,!1);t||(t=i.pipelineChanged);for(let s of i.updatedRowIds)r.add(s)}return t?this.refreshPipeline():r.size>0&&this.emitIncrementalModelUpdate(),{pipelineChanged:t,updatedRowIds:[...r]}}transactionNeedsPipeline(e){return e.add?.length||e.remove?.length?!0:e.update?.length?this.isTree||this.core.options.masterDetail||this.core.columnModel.getRowGroupColumns().length>0||!this.core.options.manualFiltering&&this.isFilterPresent()||!this.core.options.manualSorting&&this.core.columnModel.getSortModel().length>0||this.core.options.getRowHeight?!0:this.core.columnModel.getOrderedVisible().some(t=>t.colDef.autoHeight===!0||t.colDef.autoRowSpan===!0||t.colDef.rowSpan!=null):!1}emitIncrementalModelUpdate(){this.core.emit("modelUpdated",{rowCount:this.pipelineRows.length})}buildChildNodes(e,t,r){let o=this.resolveRowId(t,-1,`add-${this.core.nextId()}`);if(this.nodesById.has(o)){this.core.reportError(new Error(`Duplicate row id: ${o}`),"transaction.add",{rowId:o});return}let i=he(t,this.core.options.childrenKey),s={id:o,data:t,rowIndex:-1,selected:!1,treeChildrenLoaded:Array.isArray(i)};this.nodesById.set(o,s),this.treeDepth.set(s,r);let a=this.childIds.get(e.id)??[];if(a.push(s.id),this.childIds.set(e.id,a),!!i)for(let l of i)l!=null&&this.buildChildNodes(s,l,r+1)}reindexAll(){this.all=[];let e=t=>{this.all.push(t),this.nodesById.has(t.id)||this.nodesById.set(t.id,t);for(let r of this.childIds.get(t.id)??[]){let o=this.nodesById.get(r);o&&e(o)}};for(let t of this.roots)e(t)}setFilterModel(e){let t=JSON.stringify(this.filterModel),r=new Set(this.core.columnModel.getColumns().map(o=>o.id));return this.filterModel=de(e,r),JSON.stringify(this.filterModel)!==t}getFilterModel(){return{...this.filterModel}}setAdvancedFilterModel(e){let t=new Set(this.core.columnModel.getColumns().map(i=>i.id)),r=z(e,t),o=JSON.stringify(this.advancedFilterModel);return this.advancedFilterModel=r,this.core.options.advancedFilterModel=r,JSON.stringify(r)!==o}getAdvancedFilterModel(){return z(this.advancedFilterModel)}setQuickFilter(e){let t=e!=null&&e.trim()!==""?e:null;return t===this.quickFilter?!1:(this.quickFilter=t,!0)}getQuickFilter(){return this.quickFilter}isFilterPresent(){return Object.keys(this.filterModel).length>0||this.advancedFilterModel!=null||this.quickFilter!=null}refreshPipeline(){let e=this.core.performanceMonitor.start(),t=this.core.columnModel.getOrderedVisible(),r=(s,a)=>this.core.getCellValue(s,a);if(this.isInfinite){this.refreshInfinitePipeline(e);return}if(this.startDataProcessorIfNeeded(e))return;let o;if(this.isTree)o=this.buildTreeDisplay(t,r);else{o=this.all,this.isFilterPresent()&&!this.core.options.manualFiltering&&(o=o.filter(d=>Mt(d,t,this.filterModel,this.advancedFilterModel,this.quickFilter,r)));let a=this.core.columnModel.getSortModel();if(a.length>0&&!this.core.options.manualSorting)try{o=kt(o,a,t,r)}catch(d){this.core.reportError(d,"comparator",{sortModel:a})}let l=this.core.columnModel.getRowGroupColumns();if(l.length>0)o=this.buildGrouped(o,l);else if(this.core.options.masterDetail){let d=[];for(let c of o)d.push(c),this.expandedIds.has(c.id)&&this.isRowExpandable(c)&&d.push({id:`__detail__${c.id}`,data:c.data,rowIndex:-1,selected:!1,isDetail:!0,masterId:c.id});o=d}}for(let s of this.all)s.rowIndex=-1;let i=0;o.forEach((s,a)=>{s.rowIndex=a,!s.isDetail&&!s.isGroup&&(i++,this.rowSequence.set(s,i))}),this.pipelineRows=o,this.applyPagination(),this.computeSpans(r),this.core.emit("modelUpdated",{rowCount:o.length}),this.core.performanceMonitor.recordModel(e)}refreshInfinitePipeline(e){this.all.forEach((t,r)=>{this.isBlockDatasource||(t.rowIndex=r),this.rowSequence.set(t,this.isBlockDatasource?t.rowIndex+1:r+1)}),this.displayed=this.all,this.pipelineRows=this.all,this.spanInfo.clear(),this.displayRevision++,this.core.emit("modelUpdated",{rowCount:this.all.length}),this.core.performanceMonitor.recordModel(e)}startDataProcessorIfNeeded(e){let t=this.skipDataProcessorOnce;return this.skipDataProcessorOnce=!1,!t&&this.shouldUseDataProcessor()?(this.refreshWithDataProcessor(e),!0):(this.cancelDataProcessor(),!1)}shouldUseDataProcessor(){if(!this.core.options.dataProcessor||this.all.length<this.core.options.dataProcessorMinRows||this.isTree||this.core.options.masterDetail||this.core.columnModel.getRowGroupColumns().length>0)return!1;let e=!this.core.options.manualFiltering&&this.isFilterPresent(),t=!this.core.options.manualSorting&&this.core.columnModel.getSortModel().length>0;return e||t}refreshWithDataProcessor(e){this.cancelDataProcessor();let t=this.core.options.dataProcessor;if(!t)return;let r=++this.dataProcessorSeq,o=new AbortController;this.dataProcessorAbort=o;let i=this.core.columnModel.getOrderedVisible(),s=this.all.flatMap(d=>d.data==null?[]:[{id:d.id,data:d.data}]),a=!this.core.options.manualFiltering,l=!this.core.options.manualSorting;Promise.resolve().then(()=>t.process({rows:s,columns:i.map(d=>({colId:d.id,...d.colDef.field?{field:d.colDef.field}:{}})),sortModel:l?this.core.columnModel.getSortModel():[],filterModel:a?this.getFilterModel():{},advancedFilterModel:a?this.getAdvancedFilterModel():null,quickFilterText:a?this.quickFilter:null,signal:o.signal})).then(d=>{if(r!==this.dataProcessorSeq||o.signal.aborted||this.core.isDestroyed())return;let c=new Set,u=[];for(let p of d.rowIds){if(c.has(p))continue;c.add(p);let m=this.nodesById.get(p);m&&!m.isDetail&&!m.isGroup&&u.push(m)}for(let p of this.all)p.rowIndex=-1;u.forEach((p,m)=>{p.rowIndex=m,this.rowSequence.set(p,m+1)}),this.pipelineRows=u,this.applyPagination();let h=(p,m)=>this.core.getCellValue(p,m);this.computeSpans(h),this.core.emit("modelUpdated",{rowCount:u.length}),this.core.performanceMonitor.recordModel(e),this.core.requestUpdate({data:!0})}).catch(d=>{r!==this.dataProcessorSeq||o.signal.aborted||this.core.isDestroyed()||(this.core.reportError(d,"dataProcessor.process"),this.skipDataProcessorOnce=!0,this.refreshPipeline(),this.core.requestUpdate({data:!0}))}).finally(()=>{r===this.dataProcessorSeq&&(this.dataProcessorAbort=null)})}cancelDataProcessor(){this.dataProcessorSeq++,this.dataProcessorAbort?.abort(),this.dataProcessorAbort=null}get paginationActive(){return this.core.options.paginationEnabled&&!this.isInfinite}applyPagination(){if(!this.paginationActive){this.displayed=this.pipelineRows,this.displayRevision++;return}let e=this.effectivePageSize(),t=this.getPageCount();if(this.page>t&&(this.page=t),this.page<1&&(this.page=1),this.core.options.paginationPage=this.page,this.core.options.paginationMode==="server"){this.pipelineRows.forEach((i,s)=>{i.rowIndex=s}),this.displayed=this.pipelineRows,this.displayRevision++;return}let r=(this.page-1)*e,o=this.pipelineRows.slice(r,r+e);o.forEach((i,s)=>{i.rowIndex=s}),this.displayed=o,this.displayRevision++}effectivePageSize(){return this.pageSize=this.core.options.paginationPageSize,Math.max(1,this.pageSize)}getCurrentPage(){return this.paginationActive?this.page:1}getTotalRowCount(){return this.isInfinite?this.getDisplayTotalCount():this.paginationActive&&this.core.options.paginationMode==="server"?this.core.options.paginationTotal:this.pipelineRows.length}getPageCount(){return this.paginationActive?Math.max(1,Math.ceil(this.getTotalRowCount()/this.effectivePageSize())):1}getPipelineRows(){return this.pipelineRows}setPage(e,t=!1){if(!this.paginationActive)return;let r=this.getPageCount(),o=Math.max(1,Math.min(Math.round(e)||1,r));o!==this.page&&(this.page=o,this.core.options.paginationPage=o,this.applyPagination(),this.core.requestUpdate({data:!0}),this.core.bodyRenderer.scrollToIndex(0,"top"),t||this.emitPaginationChanged())}setPageSize(e){if(!this.paginationActive)return;let t=Math.max(1,Math.round(e)||this.effectivePageSize()),r=(this.page-1)*this.effectivePageSize();this.core.options.paginationPageSize=t,this.pageSize=t,this.page=Math.floor(r/t)+1,this.core.options.paginationPage=this.page,this.applyPagination(),this.core.requestUpdate({data:!0}),this.emitPaginationChanged()}restorePagination(e,t){this.pageSize=Math.max(1,Math.round(t)||1),this.core.options.paginationPageSize=this.pageSize,this.page=Math.max(1,Math.round(e)||1),this.core.options.paginationPage=this.page}setPaginationEnabled(e){this.core.options.paginationEnabled!==e&&(this.core.options.paginationEnabled=e&&!this.isInfinite,this.core.options.paginationEnabled&&(this.page=1),this.applyPagination(),this.core.requestUpdate({data:!0}),this.emitPaginationChanged())}onPaginationOptionsChanged(){this.paginationActive&&(this.page=this.core.options.paginationMode==="server"?this.core.options.paginationPage:1,this.applyPagination(),this.core.requestUpdate({data:!0}),this.emitPaginationChanged())}emitPaginationChanged(){this.core.emit("paginationChanged",{page:this.getCurrentPage(),pageSize:this.effectivePageSize(),pageCount:this.getPageCount(),total:this.getTotalRowCount()})}buildTreeDisplay(e,t){let r=this.core.options.manualSorting?[]:this.core.columnModel.getSortModel(),o=new Map,i=this.isFilterPresent()&&!this.core.options.manualFiltering,s=d=>{let c=o.get(d.id);if(c!==void 0)return c;let u=!0;if(i){u=Mt(d,e,this.filterModel,this.advancedFilterModel,this.quickFilter,t);for(let h of this.childIds.get(d.id)??[]){let p=this.nodesById.get(h);p&&s(p)&&(u=!0)}}return o.set(d.id,u),u},a=[],l=d=>{let c=d;r.length>0&&(c=kt(d,r,e,t));for(let u of c)if(s(u)&&(a.push(u),this.expandedIds.has(u.id))){let h=(this.childIds.get(u.id)??[]).map(p=>this.nodesById.get(p)).filter(p=>p!=null);l(h)}};return l(this.roots),a}collectSpanMasters(){let e=this.mastersBuf,t=0;for(let r of this.displayed)!r.isDetail&&!r.isGroup&&(e[t++]=r);return e.length=t,e}explicitRowSpan(e,t,r,o){let i=t.colDef.rowSpan;if(!i)return 1;try{let s=i({api:this.core.getApi(),colDef:t.colDef,column:t,node:e,data:e.data,value:r,rowIndex:e.rowIndex});return Math.max(1,Math.min(Math.round(s)||1,o))}catch(s){return this.core.reportError(s,"rowSpan",{colId:t.id,rowId:e.id}),1}}automaticRowSpan(e,t,r,o,i){if(!r.colDef.autoRowSpan||o==null||o==="")return 1;let s=1;for(;t+s<e.length&&Ie(o,i(e[t+s],r))===0;)s++;return s}computeColumnSpans(e,t,r){let o=new Int32Array(e.length),i=0;for(;i<e.length;){let s=e[i],a=r(s,t),l=t.colDef.rowSpan?this.explicitRowSpan(s,t,a,e.length-i):this.automaticRowSpan(e,i,t,a,r);o[i]=l;for(let d=1;d<l;d++)o[i+d]=-1;i+=l}return o}computeSpans(e){if(this.spanInfo.clear(),this.isTree||this.core.options.masterDetail||this.core.columnModel.getRowGroupColumns().length>0)return;let t=this.core.columnModel.getOrderedVisible().filter(o=>o.colDef.rowSpan!=null||o.colDef.autoRowSpan===!0);if(t.length===0)return;let r=this.collectSpanMasters();if(r.length!==0)for(let o of t)this.spanInfo.set(o.id,this.computeColumnSpans(r,o,e))}getSpanInfo(e){return this.spanInfo.get(e)}getRowSeq(e){return this.rowSequence.get(e)??0}getTreeDepth(e){return this.treeDepth.get(e)??0}buildGrouped(e,t){let r=It(this.core.options.aggFuncs),o=this.core.columnModel.getAggColumns();this.knownGroupIds=[];let i=a=>{let l={};for(let d of o){let c=r(d.colDef.aggFunc);if(c)try{l[d.id]=c(a.map(u=>this.core.getCellValue(u,d)))}catch(u){this.core.reportError(u,"aggFunc",{colId:d.id,aggFunc:d.colDef.aggFunc}),l[d.id]=null}}return l},s=(a,l,d)=>{if(l>=t.length)return{display:a,leaves:a};let c=t[l],u=new Map,h=[];for(let y of a){let v=this.core.getCellValue(y,c),g=v==null?"(\u7A7A)":String(v),b=u.get(g);b||(b=[],u.set(g,b),h.push(g)),b.push(y)}h.sort((y,v)=>y.localeCompare(v,void 0,{numeric:!0,sensitivity:"base"}));let p=[],m=[];for(let y of h){let v=u.get(y),g=`${d}/g${l}:${y}`;this.knownGroupIds.push(g);let b=s(v,l+1,g),T={id:g,data:null,rowIndex:-1,selected:!1,isGroup:!0,groupLevel:l,groupKey:y,leafNodes:b.leaves,aggValues:i(b.leaves)};p.push(T),this.groupExpandedIds.has(g)&&p.push(...b.display),m.push(...b.leaves)}return{display:p,leaves:m}};return s(e,0,"").display}isRowExpandable(e){if(this.isTree){if(this.hasChildren(e.id)||e.treeLoading)return!0;if(e.treeChildrenLoaded||!e.data||!this.core.options.loadTreeChildren)return!1;let r=this.core.options.isTreeRowExpandable;if(!r)return!1;try{return r({data:e.data,node:e,api:this.core.getApi()})}catch(o){return this.core.reportError(o,"isTreeRowExpandable",{rowId:e.id}),!1}}if(!this.core.options.masterDetail)return!1;let t=this.core.options.isRowExpandable;if(t)try{return t({data:e.data,node:e,api:this.core.getApi()})}catch(r){return this.core.reportError(r,"isRowExpandable",{rowId:e.id}),!1}return!0}isRowExpanded(e){return this.expandedIds.has(e)}getExpandedRowIds(){return[...this.expandedIds]}getExpandedGroupIds(){return[...this.groupExpandedIds]}restoreExpansion(e,t){this.expandedIds=new Set(e.filter(r=>this.nodesById.has(r))),this.groupExpandedIds=new Set(t)}expandRow(e){return this.setDetailExpanded(e,!0)}collapseRow(e){return this.setDetailExpanded(e,!1)}toggleDetail(e){return this.setDetailExpanded(e,!this.expandedIds.has(e))}setDetailExpanded(e,t){let r=this.nodesById.get(e);return!r||t&&!this.isRowExpandable(r)?!1:(t===this.expandedIds.has(e)||(t?this.expandedIds.add(e):this.expandedIds.delete(e),this.refreshPipeline(),this.core.requestUpdate({data:!0}),this.core.emit("detailToggled",{rowId:e,rowNode:r,expanded:t}),t&&this.isTree&&!this.hasChildren(e)&&!r.treeLoading&&this.loadTreeChildren(e).catch(()=>{})),t)}expandAllDetails(){let e=!1;for(let t of this.all)!this.expandedIds.has(t.id)&&this.isRowExpandable(t)&&(this.expandedIds.add(t.id),e=!0);e&&(this.refreshPipeline(),this.core.requestUpdate({data:!0}))}collapseAllDetails(){this.expandedIds.size!==0&&(this.expandedIds.clear(),this.refreshPipeline(),this.core.requestUpdate({data:!0}))}toggleGroup(e){return this.setGroupExpanded(e,!this.groupExpandedIds.has(e))}isGroupExpanded(e){return this.groupExpandedIds.has(e)}getGroupNode(e){return this.displayed.find(t=>t.isGroup&&t.id===e)}expandAllGroups(){if(this.knownGroupIds.length===0)return;let e=!1;for(let t of this.knownGroupIds)this.groupExpandedIds.has(t)||(this.groupExpandedIds.add(t),e=!0);e&&(this.refreshPipeline(),this.core.requestUpdate({data:!0}))}collapseAllGroups(){this.groupExpandedIds.size!==0&&(this.groupExpandedIds.clear(),this.refreshPipeline(),this.core.requestUpdate({data:!0}))}setGroupExpanded(e,t){return!this.knownGroupIds.includes(e)||t===this.groupExpandedIds.has(e)||(t?this.groupExpandedIds.add(e):this.groupExpandedIds.delete(e),this.refreshPipeline(),this.core.requestUpdate({data:!0})),t}reorderRowsByDisplayed(e,t){if(this.isTree)return!1;let r=this.getDisplayedRow(e),o=this.getDisplayedRow(t);if(!r||!o||r.isDetail||o.isDetail||r.isGroup||o.isGroup)return!1;let i=this.all.indexOf(r),s=this.all.indexOf(o);if(i<0||s<0)return!1;if(s>i){let l=s;for(;l+1<this.all.length&&this.all[l+1].isDetail;)l++;s=l}if(i===s)return!1;this.all.splice(i,1);let a=this.all.indexOf(o);return this.all.splice(s>i?a+1:a,0,r),this.refreshPipeline(),this.core.requestUpdate({data:!0}),!0}getAllNodes(){return this.all}getRootNodes(){return this.roots}getDisplayedRows(){return this.displayed}getDisplayedRowCount(){return this.isBlockDatasource?this.resolveBlockRowCount():this.displayed.length}getDisplayedRow(e){return this.isBlockDatasource?e<0||e>=this.resolveBlockRowCount()?void 0:this.blockNodes.get(e)??this.blockPlaceholder(e):this.displayed[e]}getNodeById(e){return this.nodesById.get(e)}forEachNode(e){this.all.forEach(e)}forEachNodeAfterFilterAndSort(e){let t=0;for(let r of this.pipelineRows)r.isDetail||r.isGroup||e(r,t++)}};var Fe=class{constructor(e){this.core=e;this.selectedIds=new Set;this.anchorId=null;this.indeterminateIds=new Set}isSelected(e){return this.selectedIds.has(e)}isIndeterminate(e){return this.indeterminateIds.has(e)}isSelectable(e){if(e.loading)return!1;let t=this.findSelectableColumn(e),r=t?.colDef.selectable;if(!t||!r)return!0;try{return r({api:this.core.getApi(),colDef:t.colDef,column:t,node:e,data:e.data,value:this.core.getCellValue(e,t),rowIndex:e.rowIndex})}catch(o){return this.core.reportError(o,"selectable",{rowId:e.id,colId:t?.id}),!1}}findSelectableColumn(e){if(!(e.isGroup||e.isDetail))return this.core.columnModel.getOrderedVisible().find(t=>t.hasCheckbox&&t.colDef.selectable!=null)}getSelectedNodes(){return this.core.rowModel.getAllNodes().filter(e=>this.selectedIds.has(e.id))}getSelectedRows(){return this.getSelectedNodes().filter(e=>e.data!=null).map(e=>e.data)}getSelectedIds(){return[...this.selectedIds]}restoreSelection(e){let t=new Set(e),r=this.core.rowModel.getAllNodes().filter(o=>t.has(o.id)&&!o.isDetail&&!o.isGroup).map(o=>({node:o,selected:!0}));this.applySelection(r,!0)}onRowsRebuilt(e){if(!e)this.selectedIds.clear(),this.anchorId=null;else{let t=new Set(this.core.rowModel.getAllNodes().map(r=>r.id));for(let r of[...this.selectedIds])t.has(r)||this.selectedIds.delete(r);this.anchorId!=null&&!t.has(this.anchorId)&&(this.anchorId=null)}for(let t of this.core.rowModel.getAllNodes())t.selected=this.selectedIds.has(t.id);this.recomputeTriState()}getGroupSelectionState(e){let t=e.leafNodes??[];if(t.length===0)return{all:!1,some:!1};let r=0,o=0;for(let i of t)this.isSelectable(i)&&(r++,this.selectedIds.has(i.id)&&o++);return r===0?{all:!1,some:!1}:{all:o===r,some:o>0}}setGroupSelected(e,t){let r=(e.leafNodes??[]).filter(o=>this.isSelectable(o));r.length!==0&&this.applySelection(r.map(o=>({node:o,selected:t})))}setNodeSelected(e,t,r=!1){this.applySelection([{node:e,selected:t,clearOthers:r}])}selectNodeById(e,t=!0,r=!0){let o=this.core.rowModel.getNodeById(e);o&&this.setNodeSelected(o,t,r)}selectFromCheckbox(e,t){let r=t==="single";this.applySelection([{node:e,selected:r?!0:!e.selected,clearOthers:r}]),this.anchorId=e.id}toggleFromModifier(e,t,r){return!r||!t.ctrlKey&&!t.metaKey?!1:(this.applySelection([{node:e,selected:!e.selected}]),this.anchorId=e.id,!0)}selectAnchorRange(e,t,r){if(!r||!t.shiftKey||this.anchorId==null)return!1;let o=this.core.rowModel.getNodeById(this.anchorId);if(!o||o.rowIndex<0||e.rowIndex<0)return!1;let i=Math.min(o.rowIndex,e.rowIndex),s=Math.max(o.rowIndex,e.rowIndex),a=[];for(let l=i;l<=s;l++){let d=this.core.rowModel.getDisplayedRow(l);d&&!d.isDetail&&!d.isGroup&&this.isSelectable(d)&&a.push({node:d,selected:!0})}return this.applySelection(a),!0}onRowClick(e,t,r){let o=this.core.options.rowSelection;if(o==="none"||!this.isSelectable(e))return;if(r){this.selectFromCheckbox(e,o);return}let i=o==="multiple";this.toggleFromModifier(e,t,i)||this.selectAnchorRange(e,t,i)||(this.applySelection([{node:e,selected:!0,clearOthers:!0}]),this.anchorId=e.id)}selectAll(e=!0){let t=this.core.options.rowSelection;if(t==="none")return;let o=(e?this.core.rowModel.getDisplayedRows():this.core.rowModel.getAllNodes()).filter(i=>!i.isDetail&&!i.isGroup&&this.isSelectable(i));if(o.length!==0){if(t==="single"){this.applySelection([{node:o[0],selected:!0,clearOthers:!0}]);return}this.applySelection(o.map(i=>({node:i,selected:!0})))}}deselectAll(){this.applySelection([],!0)}isSelectAllActive(){let t=this.core.rowModel.getDisplayedRows().filter(r=>!r.isDetail&&!r.isGroup).filter(r=>this.isSelectable(r));if(t.length===0)return!1;if(this.core.rowModel.isInfinite){let r=this.core.rowModel.getDisplayTotalCount();if(t.length<r)return!1}return t.every(r=>this.selectedIds.has(r.id))}isSelectAllIndeterminate(){let t=this.core.rowModel.getDisplayedRows().filter(o=>!o.isDetail&&!o.isGroup).filter(o=>this.isSelectable(o)),r=t.reduce((o,i)=>o+(this.selectedIds.has(i.id)?1:0),0);if(r===0)return!1;if(this.core.rowModel.isInfinite){let o=this.core.rowModel.getDisplayTotalCount();if(t.length<o)return!0}return r>0&&r<t.length}applySelectionPublic(e,t=!1){this.applySelection(e,t)}replaceSelection(e,t,r){!t&&!e.some(o=>o.clearOthers)||(this.selectedIds=t?new Set:new Set(e.filter(o=>o.selected).flatMap(o=>r?this.subtreeIds(o.node):[o.node.id])))}applySelectionChanges(e,t){for(let r of e){if(!this.isSelectable(r.node))continue;let o=t?this.subtreeIds(r.node):[r.node.id];for(let i of o)r.selected?this.selectedIds.add(i):this.selectedIds.delete(i)}}changedSelectionIds(e){let t=new Set;for(let r of new Set([...e,...this.selectedIds]))e.has(r)!==this.selectedIds.has(r)&&t.add(r);return t}synchronizeNodeSelection(e,t,r){let o=[],i=new Set([...e,...r,...this.indeterminateIds]);for(let s of this.core.rowModel.getAllNodes()){let a=this.selectedIds.has(s.id);s.selected=a,(i.has(s.id)||t.get(s.id)!==a)&&s.rowIndex>=0&&o.push(s.rowIndex)}return o}applySelection(e,t=!1){let r=new Set(this.selectedIds),o=this.core.rowModel.isTree&&this.core.options.autoCheckedChildren;this.replaceSelection(e,t,o),this.applySelectionChanges(e,o);let i=this.changedSelectionIds(r),s=new Map;for(let d of this.core.rowModel.getAllNodes())s.set(d.id,d.selected);let a=new Set(this.indeterminateIds);this.recomputeTriState();let l=this.synchronizeNodeSelection(i,s,a);i.size>0&&(this.core.bodyRenderer.refreshRows(l),this.core.headerRenderer.refreshSelectAllCheckbox(),this.core.emit("selectionChanged",{selectedNodes:this.getSelectedNodes(),selectedRows:this.getSelectedRows()}))}subtreeIds(e){let t=[e.id],r=o=>{for(let i of this.core.rowModel.getChildrenIds(o))t.push(i),r(i)};return r(e.id),t}recomputeTriState(){if(this.indeterminateIds.clear(),!this.core.rowModel.isTree)return;let e=t=>{let r=this.core.rowModel.getChildrenIds(t);if(r.length===0)return{all:this.selectedIds.has(t),some:this.selectedIds.has(t)};let o=!0,i=!1;for(let s of r){let a=e(s);a.all?i=!0:(a.some&&(i=!0),o=!1)}return i&&!o&&this.indeterminateIds.add(t),o?this.selectedIds.add(t):this.selectedIds.delete(t),{all:o,some:i}};for(let t of this.core.rowModel.getRootNodes())e(t.id);for(let t of this.core.rowModel.getAllNodes())t.selected=this.selectedIds.has(t.id)}};var Ne=class{constructor(e){this.core=e;this.active=null;this.rafId=0;this.pendingWidth=0;this.onMove=e=>{let t=this.matchActivePointer(e);t&&(this.pendingWidth=this.widthFromPointer(t,e.clientX),t.didResize||(t.didResize=Math.abs(this.pendingWidth-t.startWidth)>=.5),!this.rafId&&(this.rafId=requestAnimationFrame(()=>{this.rafId=0,this.applyPendingWidth()})))};this.onUp=e=>{let t=this.matchActivePointer(e);t&&(this.pendingWidth=this.widthFromPointer(t,e.clientX),t.didResize||(t.didResize=Math.abs(this.pendingWidth-t.startWidth)>=.5),this.finishResize(t))};this.onCancel=e=>{this.matchActivePointer(e)&&this.cancelResize()};this.onLostPointerCapture=()=>{this.cancelResize()}}startResize(e,t){if(!this.core.options.enableColumnResize||!t.resizable||e.isPrimary===!1)return;this.cancelResize();let r=e.currentTarget,o=t.currentWidth;this.pendingWidth=o,this.active={column:t,didResize:!1,handle:r,pointerId:e.pointerId,startFlex:t.flex,startManualWidth:t.manualWidth,startWidth:o,startX:e.clientX},window.addEventListener("pointermove",this.onMove),window.addEventListener("pointerup",this.onUp,!0),window.addEventListener("pointercancel",this.onCancel,!0),r.addEventListener("lostpointercapture",this.onLostPointerCapture);try{r.setPointerCapture?.(e.pointerId)}catch{}this.core.skeleton.root.classList.add("mach-root--resizing")}cancelResize(e=!0){let t=this.active;t&&(this.active=null,this.clearFrame(),this.removeListeners(t),e&&(t.column.manualWidth=t.startManualWidth,t.column.flex=t.startFlex,this.core.relayoutColumns()),this.core.skeleton.root.classList.remove("mach-root--resizing"))}finishResize(e){this.active=null,this.clearFrame(),e.didResize&&(Math.abs(this.pendingWidth-e.startWidth)<.5?(e.column.manualWidth=e.startManualWidth,e.column.flex=e.startFlex):this.core.columnModel.setColumnWidth(e.column,this.pendingWidth),this.core.relayoutColumns()),this.removeListeners(e);try{e.handle.releasePointerCapture?.(e.pointerId)}catch{}this.core.skeleton.root.classList.remove("mach-root--resizing"),e.didResize&&this.core.commitColumnWidths([e.column])}applyPendingWidth(){let e=this.active;!e||!this.core.columnModel.setColumnWidth(e.column,this.pendingWidth)||(this.core.relayoutColumns(),this.core.emitColumnResize(e.column,!1))}widthFromPointer(e,t){let r=Number.isFinite(t)?t:e.startX;return e.startWidth+r-e.startX}matchActivePointer(e){let t=this.active;return t&&e.pointerId===t.pointerId?t:null}clearFrame(){this.rafId&&cancelAnimationFrame(this.rafId),this.rafId=0}removeListeners(e){window.removeEventListener("pointermove",this.onMove),window.removeEventListener("pointerup",this.onUp,!0),window.removeEventListener("pointercancel",this.onCancel,!0),e.handle.removeEventListener("lostpointercapture",this.onLostPointerCapture)}destroy(){this.cancelResize(!1),this.clearFrame(),this.core.skeleton.root?.classList.remove("mach-root--resizing")}};function f(n,e,t){let r=document.createElement(n);if(e&&(r.className=e),t)for(let o of Object.keys(t))r.setAttribute(o,t[o]);return r}var Fn=["--mach-font-family","--mach-font-size","--mach-font-size-sm","--mach-header-font-weight","--mach-cell-padding","--mach-header-h","--mach-primary","--mach-primary-weak","--mach-success","--mach-warning","--mach-danger","--mach-info","--mach-border-color","--mach-border-width","--mach-header-bg","--mach-header-fg","--mach-body-bg","--mach-body-fg","--mach-row-hover-bg","--mach-radius-sm","--mach-radius","--mach-radius-lg","--mach-shadow-sm","--mach-shadow","--mach-transition","--mach-z-popup","--mach-z-menu"];function A(n,e){if(n.classList.add("mach-portal"),!e)return;let t=window.getComputedStyle(e);for(let r of Fn){let o=t.getPropertyValue(r).trim();o&&n.style.setProperty(r,o)}n.style.colorScheme=t.colorScheme}function x(n,e,t){return n<e?e:n>t?t:n}var xr=0;function Mr(n="rg"){return xr++,`${n}-${xr}`}var kr='<svg viewBox="0 0 16 16" width="12" height="12" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M2 3.5h12L9.5 8v4.5L6.5 14V8L2 3.5z"/></svg>',Ir='<svg viewBox="0 0 16 16" width="10" height="10" fill="currentColor"><path d="M8 3l4 5H4l4-5z"/></svg>',Lr='<svg viewBox="0 0 16 16" width="10" height="10" fill="currentColor"><path d="M8 13l4-5H4l4 5z"/></svg>',Ar='<svg viewBox="0 0 16 16" width="12" height="12" fill="none" stroke="currentColor" stroke-width="1.35" stroke-linecap="round"><path d="M2 4h3m3 0h6M2 8h7m3 0h2M2 12h1m3 0h8"/><circle cx="6.5" cy="4" r="1.35"/><circle cx="10.5" cy="8" r="1.35"/><circle cx="4.5" cy="12" r="1.35"/></svg>';var Pr=6,Oe=class{constructor(e){this.core=e;this.pending=null;this.dragging=null;this.suppressClick=!1;this.moveRaf=0;this.pendingPoint=null;this.onMove=e=>{if(this.dragging){this.scheduleIndicator(e);return}let t=this.pending;t&&(Math.abs(e.clientX-t.startX)<Pr&&Math.abs(e.clientY-t.startY)<Pr||this.startDrag(e))};this.onUp=e=>{this.pending=null,e.type!=="pointercancel"&&this.dragging&&this.applyIndicator(e.clientX,e.clientY),this.cleanup();let t=this.clearDrag();t&&e.type!=="pointercancel"&&t.targetIndex>=0&&this.core.moveColumn(t.column.id,t.targetIndex)}}onPointerDown(e,t){e.button===0&&t.movable&&(this.pending={column:t,startX:e.clientX,startY:e.clientY},window.addEventListener("pointermove",this.onMove),window.addEventListener("pointerup",this.onUp),window.addEventListener("pointercancel",this.onUp))}didDrag(){let e=this.suppressClick;return this.suppressClick=!1,e}startDrag(e){let t=this.pending;if(!t)return;let r=this.findHeaderCell(t.column);if(!r||!r.parentElement){this.cleanup();return}this.suppressClick=!0;let o=f("div","mach-drop-indicator"),i=f("div","mach-column-drag-ghost");i.textContent=t.column.colDef.headerName??t.column.colDef.field??t.column.id,i.ariaHidden="true",A(i,this.core.skeleton.root),document.body.appendChild(i),r.parentElement.appendChild(o),r.classList.add("mach-header-cell--dragging"),this.core.skeleton.root.classList.add("mach-root--dragging");let s=this.core.bodyRenderer.paneForColumn(t.column),a=this.core.skeleton.headerRowContainers[s],l=this.core.columnModel.getPaneColumns(s),d=new Float64Array(l.length+1),c=new Float64Array(l.length);for(let h=0;h<l.length;h++){let p=l[h].currentWidth;c[h]=d[h]+p/2,d[h+1]=d[h]+p}let u=i.getBoundingClientRect();this.dragging={column:t.column,cellEl:r,ghost:i,indicator:o,targetIndex:-1,pane:s,containerLeft:a.getBoundingClientRect().left,startScrollLeft:this.core.skeleton.bodyViewports.center.scrollLeft,fromIndex:l.indexOf(t.column),midpoints:c,offsets:d,ghostWidth:u.width,ghostHeight:u.height},this.applyIndicator(e.clientX,e.clientY)}findHeaderCell(e){let t=this.core.bodyRenderer.paneForColumn(e);return this.core.skeleton.headerRowContainers[t].querySelector(`.mach-header-cell[data-col-id="${Nn(e.id)}"]`)}scheduleIndicator(e){this.pendingPoint={clientX:e.clientX,clientY:e.clientY},!this.moveRaf&&(this.moveRaf=requestAnimationFrame(()=>{this.moveRaf=0;let t=this.pendingPoint;this.pendingPoint=null,t&&this.applyIndicator(t.clientX,t.clientY)}))}applyIndicator(e,t){let r=this.dragging;if(!r)return;let o=x(e+12,8,window.innerWidth-r.ghostWidth-8),i=x(t+12,8,window.innerHeight-r.ghostHeight-8);r.ghost.style.transform=`translate3d(${o}px, ${i}px, 0)`;let s=r.pane==="center"?this.core.skeleton.bodyViewports.center.scrollLeft-r.startScrollLeft:0,a=e-(r.containerLeft-s),l=r.midpoints.length;for(let d=0;d<r.midpoints.length;d++)if(a<r.midpoints[d]){l=d;break}r.targetIndex=l>r.fromIndex?l-1:l,r.indicator.style.transform=`translate3d(${r.offsets[l]}px, 0, 0)`}clearDrag(){let e=this.dragging;return e?(this.dragging=null,e.cellEl.classList.remove("mach-header-cell--dragging"),e.ghost.remove(),e.indicator.remove(),this.core.skeleton.root.classList.remove("mach-root--dragging"),e):null}cleanup(){window.removeEventListener("pointermove",this.onMove),window.removeEventListener("pointerup",this.onUp),window.removeEventListener("pointercancel",this.onUp),this.moveRaf&&cancelAnimationFrame(this.moveRaf),this.moveRaf=0,this.pendingPoint=null}destroy(){this.cleanup(),this.clearDrag(),this.pending=null}};function Nn(n){return typeof CSS<"u"&&typeof CSS.escape=="function"?CSS.escape(n):n.replace(/[^a-zA-Z0-9_-]/g,"\\$&")}function Gr(n,e){let t=n==null?"":String(n);return t.includes(e)||t.includes('"')||t.includes(`
2
2
  `)||t.includes("\r")?'"'+t.replace(/"/g,'""')+'"':t}function He(n){return typeof n!="string"||n===""||/^[+-]?(?:\d+(?:\.\d+)?|\.\d+)(?:[eE][+-]?\d+)?$/.test(n)?n:/^[\s\u0000-\u001f]*[=+\-@]/.test(n)?"'"+n:n}function Lt(n,e={}){let t=e.columnSeparator??",",r=e.includeHeader??!0,o=e.protectFormulas??!0,i=[];r&&i.push(n.getHeaderLabels().map(a=>Gr(a,t)).join(t));for(let a of n.getRowValues())i.push(a.map(l=>Gr(o?He(l):l,t)).join(t));let s=i.join(`\r
3
3
  `);return e.prependBOM?"\uFEFF"+s:s}function On(n,e){let t=e?He(n):n,r=t==null?"":String(t);return/["\t\n\r]/.test(r)?'"'+r.replace(/"/g,'""')+'"':r}function pe(n,e=!0){return n.map(t=>t.map(r=>On(r,e)).join(" ")).join(`
4
4
  `)}function At(n){return Gt(n," ")}function Pt(n,e=","){return Gt(n,e)}function Gt(n,e){let t=[],r=[],o="",i=!1,s=0;for(;s<n.length;){let a=n[s];if(i){if(a==='"'){if(n[s+1]==='"'){o+='"',s+=2;continue}i=!1,s++;continue}o+=a,s++;continue}if(a==='"'&&o===""){i=!0,s++;continue}if(a===e){r.push(o),o="",s++;continue}if(a===`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agile-team/mach-table",
3
- "version": "0.29.1",
3
+ "version": "0.29.2",
4
4
  "description": "Enterprise-grade, framework-agnostic TypeScript data grid with virtualization, editing, grouping and extensibility",
5
5
  "keywords": [
6
6
  "data-grid",
@@ -80,5 +80,6 @@
80
80
  "typecheck": "tsc --noEmit",
81
81
  "test": "vitest run",
82
82
  "test:coverage": "vitest run --coverage"
83
- }
84
- }
83
+ },
84
+ "readme": "<p align=\"center\">\n <img src=\"https://raw.githubusercontent.com/ChenyCHENYU/MachTable/main/assets/mach-table-logo.svg\" alt=\"MachTable\" width=\"760\" />\n</p>\n\n# @agile-team/mach-table\n\nMachTable 0.28 的框架无关 TypeScript Core:零运行时依赖,提供行列双虚拟化、领域化 API、单元格/整行编辑、树与分组、随机访问远程数据、区段隔离状态持久化和可诊断扩展系统。0.28 保持公共 API 不变并清零历史复杂度豁免。\n\n```bash\npnpm add @agile-team/mach-table\n```\n\n```ts\nimport { createGrid, indexColumn } from \"@agile-team/mach-table\";\nimport \"@agile-team/mach-table/styles/mach-table.css\";\n\nconst api = createGrid(document.querySelector(\"#grid\")!, {\n columnDefs: [\n indexColumn({ headerName: \"序号\" }),\n { field: \"id\", headerName: \"ID\", width: 120 },\n { field: \"name\", headerName: \"名称\", flex: 1, editable: true }\n ],\n rowData: [{ id: \"1\", name: \"MachTable\" }],\n rowKey: \"id\",\n enableColumnResize: true,\n persistence: { key: \"tenant:user:customers\", sections: [\"columns\"] }\n});\n\napi.batch((grid) => {\n grid.rows.transact({ update: [{ id: \"1\", name: \"Updated\" }] });\n grid.columns.setVisible(\"internalNote\", false);\n grid.view.refreshCells({ rowIds: [\"1\"] });\n});\n\nconst saved = await api.editing.save(orderApi.saveChanges);\nconsole.table(saved.conflicts);\nconsole.info(api.diagnostics.get());\n\n// 原生宿主卸载时必须销毁;Vue/React 适配器会自动处理。\napi.destroy();\n```\n\n`persistence.sections` 同时约束进入 store 的数据与恢复范围;异步 store 写入有序,晚到加载不会覆盖加载期间的用户操作。\n\n单元格编辑通过内置对勾/取消控件显式结束,普通鼠标和焦点变化不会误提交;Enter、Escape、Tab 仍提供完整键盘路径。筛选、列设置、上下文菜单和操作菜单会继承所属表格实例的主题变量,不受宿主页面全局样式影响。\n\n`loading: true` 默认展示轻量表格骨架与本地化状态文案,空数据默认展示内置插画;需要品牌化时再通过 `overlayLoadingTemplate`、`overlayNoRowsTemplate` 覆盖,基础页面无需重复实现 loading/empty DOM。\n\n公共命令按 `rows`、`columns`、`selection`、`editing`、`filtering`、`sorting`、`pagination`、`hierarchy`、`view`、`state`、`io`、`diagnostics` 划分。完整签名见 [GridApi](https://github.com/ChenyCHENYU/MachTable/blob/main/docs/api/grid-api.md)。\n\n大型本地数据 Worker 使用独立入口:\n\n```ts\nimport { createWorkerDataProcessor } from \"@agile-team/mach-table/worker\";\n```\n\nVue/React 项目请只安装对应适配包,它会自动安装并重导出 Core:\n\n- [@agile-team/mach-table-vue](https://www.npmjs.com/package/@agile-team/mach-table-vue)\n- [@agile-team/mach-table-react](https://www.npmjs.com/package/@agile-team/mach-table-react)\n\n文档:[快速开始](https://github.com/ChenyCHENYU/MachTable/blob/main/docs/guide/getting-started.md) · [企业接入](https://github.com/ChenyCHENYU/MachTable/blob/main/docs/guide/enterprise-integration.md) · [API](https://github.com/ChenyCHENYU/MachTable/tree/main/docs/api)\n\nSource-available © ChenyCHENYU (Agile Team). 任何使用均须事先取得书面授权。详见 [LICENSE](https://github.com/ChenyCHENYU/MachTable/blob/main/LICENSE) 与[授权流程](https://github.com/ChenyCHENYU/MachTable/blob/main/LICENSING.md)。\n"
85
+ }