@agile-team/mach-table 0.19.0 → 0.19.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +3 -2
package/dist/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var zt=Object.defineProperty;var jo=Object.getOwnPropertyDescriptor;var Yo=Object.getOwnPropertyNames;var Xo=Object.prototype.hasOwnProperty;var Jo=(n,e)=>{for(var t in e)zt(n,t,{get:e[t],enumerable:!0})},Qo=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Yo(e))!Xo.call(n,o)&&o!==t&&zt(n,o,{get:()=>e[o],enumerable:!(r=jo(e,o))||r.enumerable});return n};var Zo=n=>Qo(zt({},"__esModule",{value:!0}),n);var Yi={};Jo(Yi,{BUILTIN_AGG_FUNCS:()=>qt,Column:()=>P,DEFAULT_LOCALE:()=>T,DIRECT_GRID_OPTION_KEYS:()=>jr,EVENT_TYPES:()=>z,EventBus:()=>Z,GRID_OPTION_KEYS:()=>ae,GRID_OPTION_META:()=>_,GRID_SIZE_PRESETS:()=>q,GridCore:()=>ce,LOCALE_EN:()=>Ur,actionsColumn:()=>Io,advancedFilterCondition:()=>Dr,advancedFilterGroup:()=>Er,applyGridViewState:()=>Cr,buildColDefsFromSchema:()=>Do,captureGridViewState:()=>wr,clearColumnState:()=>no,clearComponentRegistries:()=>go,clearGridState:()=>so,computeColumnWidths:()=>Ie,createActionButtonsRenderer:()=>de,createAggResolver:()=>Oe,createBusinessColumnTypes:()=>zo,createCachedDictionary:()=>_o,createColumnHelper:()=>Lo,createColumnStateKey:()=>oo,createDictionaryRenderer:()=>Wo,createEnterprisePreset:()=>Go,createGrid:()=>To,createGridViewManager:()=>qo,createLocalColumnStateStore:()=>nr,createLocalGridStateStore:()=>ar,createLocalGridViewStore:()=>br,createMachTableCommands:()=>Eo,createMachTablePreset:()=>B,createProgressBarRenderer:()=>ur,createRowActionsRenderer:()=>Lt,createSaveSnapshot:()=>ht,createStatusTagRenderer:()=>cr,defaultComparator:()=>ie,defineColumns:()=>Ao,defineGridOptions:()=>No,defineMachTableConfig:()=>Oo,defineMachTablePreset:()=>Fo,describeFilter:()=>gt,downloadFile:()=>ct,dragColumn:()=>ko,escapeHtml:()=>Y,evaluateColumnFilter:()=>Fe,fitColumnWidths:()=>Pe,formatText:()=>I,formatTwo:()=>et,getByPath:()=>te,getCellEditor:()=>Gt,getCellRenderer:()=>Te,indexColumn:()=>Mo,isColDefGroup:()=>ne,isSafePath:()=>ee,linkRenderer:()=>hr,loadColumnState:()=>Mt,loadGridState:()=>It,matchLocaleKey:()=>Ze,matchesGridOptionKind:()=>we,mergeMachTableConfig:()=>Ho,migrateGridState:()=>O,normalizeAdvancedFilterModel:()=>G,normalizeBatchSaveResult:()=>pt,normalizeColumnFilter:()=>Me,normalizeFilterModel:()=>re,normalizeGridViewState:()=>Vt,normalizeMachTableConfig:()=>vr,normalizeSavedGridView:()=>ue,parseCsv:()=>Ke,parseDelimited:()=>$e,parseTsv:()=>We,registerBuiltinRenderers:()=>At,registerCellEditor:()=>fo,registerCellRenderer:()=>po,resolveGridFeatures:()=>Ot,resolveMachTableGridOptions:()=>Bo,resolveSaveConflict:()=>Zr,resolveTagVariant:()=>dr,rowActionsColumn:()=>Po,sanitizeFormulaCell:()=>fe,sanitizeGridOptionPatch:()=>ut,saveColumnState:()=>xt,saveGridState:()=>kt,selectionColumn:()=>xo,setByPath:()=>U,sortNodes:()=>he,toTsv:()=>se,validateGridOptions:()=>Ft,version:()=>ji});module.exports=Zo(Yi);var xe={name:"@agile-team/mach-table",version:"0.19.0",description:"Enterprise-grade, framework-agnostic TypeScript data grid with virtualization, editing, grouping and extensibility",keywords:["data-grid","table","virtualization","typescript","enterprise","vue","react"],author:"ChenyCHENYU (Agile Team)",license:"SEE LICENSE IN LICENSE",homepage:"https://github.com/ChenyCHENYU/MachTable#readme",bugs:{url:"https://github.com/ChenyCHENYU/MachTable/issues"},repository:{type:"git",url:"git+https://github.com/ChenyCHENYU/MachTable.git",directory:"packages/core"},type:"module",main:"./dist/index.cjs",module:"./dist/index.js",types:"./dist/index.d.ts",engines:{node:">=18.0.0"},publishConfig:{access:"public"},exports:{".":{import:{types:"./dist/index.d.ts",default:"./dist/index.js"},require:{types:"./dist/index.d.cts",default:"./dist/index.cjs"}},"./worker":{import:{types:"./dist/worker.d.ts",default:"./dist/worker.js"},require:{types:"./dist/worker.d.cts",default:"./dist/worker.cjs"}},"./styles/mach-table.css":{types:"./styles/mach-table.css.d.ts",default:"./styles/mach-table.css"}},files:["dist","styles"],sideEffects:["**/*.css"],scripts:{build:"tsup",typecheck:"tsc --noEmit",test:"vitest run","test:coverage":"vitest run --coverage"}};var Z=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 ee(n){return typeof n!="string"||n.length===0?!1:n.split(".").every(t=>t.length>0&&!tn.has(t))}function te(n,e){if(n==null||!ee(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 U(n,e,t){if(n==null||!ee(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"]),on=new Set(["equals","notEquals","lessThan","lessThanOrEqual","greaterThan","greaterThanOrEqual","inRange","blank","notBlank"]),nn=new Set(["equals","notEquals","lessThan","greaterThan","inRange","blank","notBlank"]);function sn(n){return n==null||typeof n=="string"||typeof n=="number"&&Number.isFinite(n)}function an(n){return n==="text"?rn:n==="number"?on:nn}function ln(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,...dn(r,e)}}function dn(n,e){let t=e==="number"?Tr(n.value):typeof n.value=="string"?n.value:void 0,r=e==="number"?Tr(n.value2):typeof n.value2=="string"?n.value2:void 0;return{...t!==void 0?{value:t}:{},...r!==void 0?{value2:r}:{}}}function Tr(n){return typeof n=="number"&&Number.isFinite(n)?n:void 0}function cn(n,e){let t=[],r=an(e);for(let o of n.slice(0,20)){let i=ln(o,e,r);i&&t.push(i)}return t}function Me(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(sn).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:cn(e.conditions,e.type)}}function un(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=Me(n.filter);return r?{kind:"condition",colId:t,filter:r}:null}function hn(n,e,t){if(!Array.isArray(n.children))return null;let r=[];for(let o of n.children){let i=Sr(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 Sr(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"?un(r,t):r.kind==="group"?hn(r,e,t):null;return t.ancestors.delete(n),o}function G(n,e){if(n==null||typeof n!="object")return null;let t=n;if(t.version!==1||t.root==null)return null;let r=Sr(t.root,0,{ancestors:new WeakSet,nodes:0,validColumnIds:e});return r?{version:1,root:r}:null}function Dr(n,e){return{kind:"condition",colId:n,filter:e}}function re(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=Me(o);s&&(t[i]=s)}return t}function Er(n,e,t={}){return{kind:"group",operator:n,children:e,...t.not?{not:!0}:{}}}var _t={sortable:!0,resizable:!0,movable:!0,filter:!1,minWidth:80},q={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 D(n,e,t,r=!1){return typeof n!="number"||!Number.isFinite(n)||n<t?e:r?Math.floor(n):n}function fn(n){return n&&Object.prototype.hasOwnProperty.call(q,n)?n:"normal"}function mn(n){return n.theme==="light"||n.theme==="dark"||n.theme==="auto"?n.theme:n.className?.includes("mach-theme-dark")?"dark":"light"}function gn(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=>D(o,0,1,!0)).filter(Boolean))]:[10,20,50,100];return r.includes(e)||r.push(e),r.sort((o,i)=>o-i)}function Wt(n,e){let t=typeof n=="function"?n(e):te(e,n);return t==null?"":String(t)}function yn(n){let e=n.rowKey,t=n.getRowId??(e?({data:r})=>Wt(e,r):void 0);return{...t?{getRowId:t}:{},...e?{rowKey:e}:{}}}function vn(n,e){let t=q[e];return{columnDefs:Array.isArray(n.columnDefs)?n.columnDefs:[],rowData:Array.isArray(n.rowData)?n.rowData:[],defaultColDef:{..._t,...n.defaultColDef??{}},columnTypes:n.columnTypes??{},...yn(n),rowHeight:D(n.rowHeight,t.rowHeight,1),headerHeight:D(n.headerHeight,t.headerHeight,1),rowBuffer:D(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 wn(n){return{stripedRows:n.stripedRows??!1,showCellBorders:n.showCellBorders??!1,theme:mn(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 Cn(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:D(n.undoStackSize,100,0,!0),asyncTransactionWaitMillis:D(n.asyncTransactionWaitMillis,16,0,!0)}}function bn(n){return{masterDetail:n.masterDetail??!1,detailRowHeight:D(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 Rn(n){let e=typeof n.pagination=="object"?n.pagination:void 0,t=D(e?.pageSize,20,1,!0);return{paginationEnabled:n.pagination!==!1&&n.datasource==null,paginationMode:e?.mode==="server"?"server":"client",paginationPage:D(e?.page,1,1,!0),paginationTotal:D(e?.total,0,0,!0),paginationPageSize:t,paginationPageSizeOptions:gn(n,t),paginationShowTotal:e?e.showTotal!==!1:!0,paginationShowSizeSelector:e?e.showPageSizeSelector!==!1:!0}}function Tn(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 Sn(n){return{columnMenu:n.columnMenu??!1,columnStateKey:n.columnStateKey??null,advancedFilterModel:G(n.advancedFilterModel),...Dn(n),locale:n.locale??{},suppressWarnings:n.suppressWarnings??!1,enableRangeSelection:n.enableRangeSelection??!1,suppressClipboard:n.suppressClipboard??!1,contextMenu:n.contextMenu??!1,tooltipShowDelay:D(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 Dn(n){return{stateKey:n.stateKey??null,stateSaveDebounceMs:D(n.stateSaveDebounceMs,160,0,!0)}}function En(n){return{datasourceMode:n.datasourceMode==="block"?"block":"sequential",blockSize:D(n.blockSize,100,1,!0),infiniteBufferRows:D(n.infiniteBufferRows,40,0,!0),maxBlocksInCache:D(n.maxBlocksInCache,12,1,!0),blockPrefetch:D(n.blockPrefetch,1,0,!0),datasourceRowCount:n.datasourceRowCount==null?null:D(n.datasourceRowCount,0,0,!0),dataProcessorMinRows:D(n.dataProcessorMinRows,5e3,1,!0),datasourceRetryCount:D(n.datasourceRetryCount,2,0,!0),datasourceRetryDelay:D(n.datasourceRetryDelay,300,0,!0)}}function xn(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 Mn=["stateStore","detailRowRenderer","isRowExpandable","columnStateStore","aggFuncs","components","actionPolicy","summaryMethod","datasource","getRowHeight","tooltipComponent","getContextMenuItems","initialState","rowEditValidator","isTreeRowExpandable","loadTreeChildren","dataProcessor"];function kn(n,e){for(let t of Mn)n[t]&&Object.assign(e,{[t]:n[t]})}function In(n,e){for(let t of Object.keys(n))t.startsWith("on")&&typeof n[t]=="function"&&Object.assign(e,{[t]:n[t]})}function xr(n){let e=fn(n.size),t={...vn(n,e),...wn(n),...Cn(n),...bn(n),...Rn(n),...Tn(n),...Sn(n),...En(n),...xn(n),features:Array.isArray(n.features)?n.features:[]};return kn(n,t),In(n,t),t}function Mr(n){return Array.isArray(n)?n.filter(e=>typeof e=="string"&&e.length>0):typeof n=="string"&&n.length>0?[n]:[]}function oe(n,e){return Mr(n.type).includes(e)}function kr(n,e,t={}){let r={};for(let o of Mr(n.type)){let i=t[o];i&&Object.assign(r,i)}return{...e,...r,...n}}var P=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 j=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 ne(n){return Array.isArray(n.children)}function ke(n,e){return typeof n=="number"&&Number.isFinite(n)&&n>0?n:e}function Ir(n){let e=ke(n.minWidth,80);return{min:e,max:Math.max(e,ke(n.maxWidth,Number.MAX_SAFE_INTEGER))}}function L(n,e){let{min:t,max:r}=Ir(e),o=ke(n,ke(e.width,150));return Math.max(t,Math.min(r,o))}function Ie(n,e){let t=n.map(s=>L(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],f=n[m].flex??0,y=s*f/d,v=t[m];t[m]=L(v+y,n[m]),c.push(t[m]-v)}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 Pe(n,e){let t=n.map(s=>L(s.width??150,s));if(!Number.isFinite(e)||e<=0||n.length===0)return t;let r=new Set(n.map((s,a)=>a)),o=e;for(let s=0;s<n.length+1&&r.size>0;s++){let a=0;for(let d of r)a+=Math.max(1,t[d]);if(a<=0)break;let l=!1;for(let d of[...r]){let c=o*(Math.max(1,t[d])/a),u=L(c,n[d]),{min:h,max:p}=Ir(n[d]);(c<h||c>p)&&(t[d]=u,o-=u,r.delete(d),l=!0)}if(!l){for(let d of r)t[d]=L(o*(Math.max(1,t[d])/a),n[d]);break}o=Math.max(0,o)}let i=e-t.reduce((s,a)=>s+a,0);if(Math.abs(i)>.01)for(let s=t.length-1;s>=0;s--){let a=L(t[s]+i,n[s]);if(Math.abs(a-t[s])>.01){t[s]=a;break}}return t}var Kt="__rg_detail_toggle__";function Le(n){return typeof n=="number"&&Number.isFinite(n)&&n>0}var Ae=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?[Kt]:[]),i=(s,a,l)=>s.map((d,c)=>{if(ne(d)){let v=d.groupId??d.headerName??`group_${c}_${l}`,w=new j(v,d);return w.parent=a,w.children=i(d.children,w,l+1),w}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 f=new P(p,kr(u,r,this.core.options.columnTypes));f.parentGroup=a,f.level=l;let y=t.get(p);return y&&(f.manualWidth=y.manualWidth,f.flex=y.flex,f.hide=y.hide,f.pinned=y.pinned),f});if(this.rootChildren=i(this.defs,null,0),this.core.options.masterDetail&&this.core.options.detailToggleColumn){let s=new P(Kt,{colId:Kt,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 j?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=L(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=L(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"?Pe(a,l):Ie(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 Le(t)?(e.manualWidth=L(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 P&&!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 P&&!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.pinned=t,this.regroup())}getColumnState(){return this.columns.map(e=>{let t=this.sortModel.findIndex(o=>o.colId===e.id),r={colId:e.id,hide:e.hide,width:e.manualWidth??e.currentWidth,flex:e.flex,widthMode:e.manualWidth==null?"auto":"manual",pinned:e.pinned};return t>=0?(r.sort=this.sortModel[t].direction,r.sortIndex=t):(r.sort=null,r.sortIndex=null),r})}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.sortModel=this.sortModelFromState(e),this.applyStateOrder(e),this.regroup()}applyColumnViewState(e,t){typeof t.hide=="boolean"&&(e.hide=t.hide),t.widthMode==="auto"?(e.resetWidth(),Le(t.flex)&&(e.flex=t.flex)):Le(t.flex)?(e.flex=t.flex,e.manualWidth=null):Le(t.width)&&(e.manualWidth=L(t.width,this.widthInputOf(e)),e.flex=null),(t.pinned==="left"||t.pinned==="right"||t.pinned===null)&&(e.pinned=t.pinned)}sortModelFromState(e){let t=new Set(this.columns.map(i=>i.id)),r=new Set,o=[];for(let i of e){if(i.sort!=="asc"&&i.sort!=="desc"||!t.has(i.colId)||r.has(i.colId))continue;r.add(i.colId);let s=typeof i.sortIndex=="number"&&Number.isInteger(i.sortIndex)&&i.sortIndex>=0?i.sortIndex:o.length;o.push({colId:i.colId,direction:i.sort,sortIndex:s})}return o.sort((i,s)=>i.sortIndex-s.sortIndex),o.map(({colId:i,direction:s})=>({colId:i,direction:s}))}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(l=>l instanceof P&&!l.hide&&l.parentGroup===null&&r(l)===o);if(i.length<2)continue;let s=i.slice().sort((l,d)=>(t.get(l.id)??Number.MAX_SAFE_INTEGER)-(t.get(d.id)??Number.MAX_SAFE_INTEGER));if(s.every((l,d)=>l===i[d]))continue;let a=[];this.rootChildren.forEach((l,d)=>{l instanceof P&&!l.hide&&l.parentGroup===null&&r(l)===o&&a.push(d)}),a.forEach((l,d)=>{this.rootChildren[l]=s[d]})}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.sortModel=[],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 Lr(n){return n==null?"":String(n).toLowerCase()}function Pn(n,e,t){let r=Lr(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 Ln(n,e,t){let r=e.map(o=>{let i=n==null||n==="";if(o.match==="blank")return i;if(o.match==="notBlank")return!i;if(i)return!1;let s=typeof n=="number"?n:Number(n);if(isNaN(s))return!1;let a=o.value;if(a==null||isNaN(a))return!1;switch(o.match){case"equals":return s===a;case"notEquals":return s!==a;case"lessThan":return s<a;case"lessThanOrEqual":return s<=a;case"greaterThan":return s>a;case"greaterThanOrEqual":return s>=a;case"inRange":return s>=a&&s<=(o.value2??a);default:return!0}});return r.length===0?!0:t==="or"?r.some(Boolean):r.every(Boolean)}function Ge(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 An(n,e,t){let r=e.map(o=>{let i=Ge(n)==null;if(o.match==="blank")return i;if(o.match==="notBlank")return!i;if(i)return!1;let s=Ge(n),a=o.value!=null?Ge(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?Ge(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 Gn(n,e){return e.length===0?!0:e.some(t=>t==null&&n==null||t===n)}function Fe(n,e){let t=e.type!=="set"&&e.operator==="or"?"or":"and";switch(e.type){case"text":return Pn(n,e.conditions,t);case"number":return Ln(n,e.conditions,t);case"date":return An(n,e.conditions,t);case"set":return Gn(n,e.values);default:return!0}}function $t(n,e,t,r){if(n.kind==="condition"){let i=e.get(n.colId);return!i||Fe(r(t,i),n.filter)}let o=n.operator==="or"?n.children.some(i=>$t(i,e,t,r)):n.children.every(i=>$t(i,e,t,r));return n.not?!o:o}function Fn(n,e,t,r){return t?$t(t.root,new Map(e.map(o=>[o.id,o])),n,r):!0}function Ut(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(!Fe(d,a))return!1}if(!Fn(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=>Lr(i(n,d)).includes(a)))return!1}return!0}var Ar=typeof Intl<"u"?new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"}):null;function ie(n,e){let t=n==null||n==="",r=e==null||e==="";if(t&&r)return 0;if(t)return 1;if(r)return-1;if(typeof n=="number"&&typeof e=="number")return isNaN(n)&&isNaN(e)?0:isNaN(n)?1:isNaN(e)?-1:n-e;if(n instanceof Date&&e instanceof Date)return n.getTime()-e.getTime();if(typeof n=="boolean"&&typeof e=="boolean")return n===e?0:n?1:-1;let o=String(n),i=String(e);return Ar?Ar.compare(o,i):o.localeCompare(i)}function he(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 Ne(n){return n.filter(e=>typeof e=="number"&&!isNaN(e))}var qt={sum:n=>Ne(n).reduce((e,t)=>e+t,0),avg:n=>{let e=Ne(n);return e.length===0?null:e.reduce((t,r)=>t+r,0)/e.length},count:n=>n.length,min:n=>{let e=Ne(n);return e.length===0?null:Math.min(...e)},max:n=>{let e=Ne(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 Oe(n){let e={...qt,...n??{}};return t=>e[t]}function Gr(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 Fr(n){return Number.isFinite(n)?Math.max(1,Math.trunc(n)):1}var He=class{constructor(e,t){this.maxBlocks=e;this.onEvict=t;this.blocks=new Map;this.inflight=new Map;this.clock=0;this.generation=0;this.hitCount=0;this.missCount=0;this.evictionCount=0;this.maxBlocks=Fr(e)}configure(e){this.maxBlocks=Fr(e),this.evictOverflow()}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){if(r?.aborted)return Promise.reject(Gr(r));let o=this.peek(e);if(o)return this.hitCount++,Promise.resolve(o);let i=this.inflight.get(e);if(i)return this.hitCount++,this.attachConsumer(e,i,r);this.missCount++;let s=this.generation,a=new AbortController,l=Promise.resolve().then(()=>t(a.signal)).then(c=>(s!==this.generation||a.signal.aborted||(this.blocks.set(e,{rows:c.rows,...c.lastRow==null?{}:{lastRow:c.lastRow},touchedAt:++this.clock}),this.evictOverflow()),c)).finally(()=>{this.inflight.get(e)?.promise===l&&this.inflight.delete(e)}),d={controller:a,promise:l,consumers:0};return this.inflight.set(e,d),this.attachConsumer(e,d,r)}purge(){this.generation++;for(let e of this.inflight.values())e.controller.abort();this.inflight.clear();for(let[e,t]of this.blocks)this.onEvict?.(e,t);this.blocks.clear()}snapshot(){let e=0;for(let t of this.blocks.values())e+=t.rows.length;return{cachedBlockCount:this.blocks.size,loadingBlockCount:this.inflight.size,cachedRowCount:e,hitCount:this.hitCount,missCount:this.missCount,evictionCount:this.evictionCount}}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)),i(Gr(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 pe(n,e){if(n==null||typeof n!="object")return;let t=n[e];return Array.isArray(t)?t:void 0}var Be=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 He(12,e=>this.evictBlock(e));this.dataProcessorSeq=0;this.dataProcessorAbort=null;this.skipDataProcessorOnce=!1;this.pipelineRows=[];this.page=1;this.pageSize=20;this.advancedFilterModel=G(e.options.advancedFilterModel)}resolveRowId(e,t,r){let o=this.core.options.getRowId;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("getRowId must return a non-empty string"),"getRowId",{index:t})}catch(i){this.core.reportError(i,"getRowId",{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.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=f=>{u||(u=!0,r?.removeEventListener("abort",d),a===this.infiniteSeq&&(this.infiniteRequested=!1,this.infiniteAbort=null,this.infinitePendingResolve=null,this.setInfiniteLoading(!1),f!=null&&f?.name!=="AbortError"&&this.core.reportError(f,"datasource.getRows",{startRow:e,endRow:s})),c())},m=()=>{if(u||a!==this.infiniteSeq||l.signal.aborted||this.core.isDestroyed()){p();return}h++;let f=!1,y=v=>{if(!(f||u)){if(f=!0,a!==this.infiniteSeq||l.signal.aborted||this.core.isDestroyed()){p();return}if(h<=this.core.options.datasourceRetryCount){let w=Math.min(this.core.options.datasourceRetryDelay*2**Math.max(0,h-1),3e4);this.infiniteRetryTimer=setTimeout(()=>{this.infiniteRetryTimer=null,m()},w);return}p(v??new Error("Datasource request failed"))}};try{let v=o.getRows({startRow:e,endRow:s,sortModel:this.core.columnModel.getSortModel(),filterModel:this.getFilterModel(),advancedFilterModel:this.getAdvancedFilterModel(),quickFilterText:this.quickFilter,signal:l.signal,onSuccess:(w,b)=>{if(f||u)return;if(f=!0,a!==this.infiniteSeq||this.core.isDestroyed()||l.signal.aborted){p();return}let S=w??[];typeof b=="number"&&b>=0?this.infiniteLastRow=b:S.length<s-e&&(this.infiniteLastRow=e+S.length);let R=this.all.length===0;this.appendInfiniteRows(S),p(),this.refreshPipeline(),this.core.requestUpdate({data:!0}),R&&this.core.relayout(),this.core.headerRenderer.refreshSelectAllCheckbox()},fail:y});v&&typeof v.catch=="function"&&v.catch(y)}catch(v){y(v)}};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){if(!this.isBlockDatasource||e<0)return Promise.resolve();if(t?.aborted)return Promise.reject(this.abortError(t.reason));let r=this.core.options.blockSize,o=e*r;if(o>=this.resolveBlockRowCount())return Promise.resolve();let i=this.infiniteLastRow==null?o+r:Math.min(this.infiniteLastRow,o+r),s=this.blockCache.load(e,a=>this.requestDatasourceRange(o,i,a),t);return this.setInfiniteLoading(this.all.length===0&&this.blockCache.snapshot().loadingBlockCount>0),s.then(a=>{t?.aborted||this.core.isDestroyed()||!this.isBlockDatasource||this.installedBlocks.has(e)||(this.installBlock(e,a),this.refreshPipeline(),this.core.requestUpdate({data:!0}),this.core.headerRenderer.refreshSelectAllCheckbox())}).catch(a=>{throw a?.name!=="AbortError"&&this.core.reportError(a,"datasource.getRows",{startRow:o,endRow:i}),a}).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=f=>{if(!(p||d)){if(p=!0,r.aborted||this.core.isDestroyed()){u();return}if(a<=this.core.options.datasourceRetryCount){let y=Math.min(this.core.options.datasourceRetryDelay*2**Math.max(0,a-1),3e4);l=setTimeout(()=>{l=null,h()},y)}else c(f)}};try{let f=o.getRows({startRow:e,endRow:t,sortModel:this.core.columnModel.getSortModel(),filterModel:this.getFilterModel(),advancedFilterModel:this.getAdvancedFilterModel(),quickFilterText:this.quickFilter,signal:r,onSuccess:(y,v)=>{p||d||(p=!0,d=!0,r.removeEventListener("abort",u),i({rows:y??[],...typeof v=="number"&&v>=0?{lastRow:v}:{}}))},fail:m});f&&typeof f.catch=="function"&&f.catch(m)}catch(f){m(f)}};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}checkInfiniteScroll(e){if(this.isBlockDatasource){if(e<0)return;let s=this.core.options.blockSize,a=Math.floor(e/s),l=this.core.options.blockPrefetch;for(let d=0;d<=l;d++){let c=d===0?[a]:[a+d,a-d];for(let u of c)u<0||u*s>=this.resolveBlockRowCount()||this.loadRandomBlock(u).catch(()=>{})}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)}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));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.getRowId,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 f=this.isTree?pe(c,r):void 0,y={id:m,data:c,rowIndex:-1,selected:!1,treeChildrenLoaded:Array.isArray(f)};if(this.treeDepth.set(y,u),o.push(y),s.set(m,y),h!=null){let v=a.get(h)??[];v.push(m),a.set(h,v)}else i.push(y);if(this.isTree&&Array.isArray(f))for(let v of f)v!=null&&d(v,u+1,m);return y};(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.getRowId!=null),this.refreshPipeline(),this.core.requestUpdate({data:!0})}validateTreeChildren(e,t){let r=this.core.options.getRowId,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] getRowId must return a non-empty string for lazy tree children.");if(o.has(c))throw new Error(`Duplicate row id: ${c}`);o.add(c)}let d=pe(l,this.core.options.childrenKey);d&&s.push(...d)}}applyTransaction(e,t=!0){let r=this.core.options.getRowId,o=[],i=[];if(e.remove?.length){let s=new Set,a=new Set,l=c=>{if(r){let h=[this.resolveRowId(c,-1,`__missing_remove_${this.core.nextId()}`)];for(;h.length>0;){let p=h.pop();if(!s.has(p)){s.add(p);for(let m of this.childIds.get(p)??[])h.push(m)}}}else{let u=[c];for(;u.length>0;){let h=u.pop();a.add(h);let p=this.isTree?pe(h,this.core.options.childrenKey):void 0;if(p)for(let m of p)u.push(m)}}};e.remove.forEach(l),this.all=this.all.filter(c=>{let u=s.has(c.id)||c.data!=null&&a.has(c.data);return u&&(i.push(c.id),this.nodesById.delete(c.id),this.childIds.delete(c.id)),!u});let d=new Set(this.all);this.roots=this.roots.filter(c=>d.has(c))}if(e.update?.length)for(let s of e.update){let a;r?a=this.nodesById.get(this.resolveRowId(s,-1,`__missing_update_${this.core.nextId()}`)):a=this.all.find(l=>l.data===s),a&&(a.data=s,i.push(a.id),this.core.bodyRenderer.invalidateRowHeight(a),o.push(a))}if(e.add?.length){let s=e.addIndex!=null?Math.max(0,Math.min(e.addIndex,this.roots.length)):this.roots.length,a=[];e.add.forEach((l,d)=>{let c=this.resolveRowId(l,s+d,`add-${this.core.nextId()}`);if(this.nodesById.has(c)){this.core.reportError(new Error(`Duplicate row id: ${c}`),"transaction.add",{rowId:c});return}let u={id:c,data:l,rowIndex:-1,selected:!1};this.nodesById.set(c,u),this.treeDepth.set(u,0);let h=this.isTree?pe(l,this.core.options.childrenKey):void 0;if(h)for(let p of h)p!=null&&this.buildChildNodes(u,p,1);a.push(u)}),this.roots.splice(s,0,...a),this.reindexAll()}if(t){this.refreshPipeline();for(let s of o)s.rowIndex>=0&&this.core.bodyRenderer.refreshRows([s.rowIndex])}this.core.changeTracker.clearRows(i)}applyTransactions(e){if(e.length!==0){for(let t of e)this.applyTransaction(t,!1);this.refreshPipeline()}}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=pe(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=re(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=G(e,t),o=JSON.stringify(this.advancedFilterModel);return this.advancedFilterModel=r,this.core.options.advancedFilterModel=r,JSON.stringify(r)!==o}getAdvancedFilterModel(){return G(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=>Ut(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=he(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=Ut(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=he(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}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(s=>s.colDef.rowSpan!=null||s.colDef.autoRowSpan===!0);if(t.length===0)return;let r=this.mastersBuf,o=0;for(let s of this.displayed)!s.isDetail&&!s.isGroup&&(r[o++]=s);r.length=o;let i=o;if(i!==0)for(let s of t){let a=new Int32Array(i),l=0;for(;l<i;){let d=r[l],c=e(d,s),u=1;if(s.colDef.rowSpan)try{let h=s.colDef.rowSpan({api:this.core.getApi(),colDef:s.colDef,column:s,node:d,data:d.data,value:c,rowIndex:d.rowIndex});u=Math.max(1,Math.min(Math.round(h)||1,i-l))}catch(h){this.core.reportError(h,"rowSpan",{colId:s.id,rowId:d.id})}else if(s.colDef.autoRowSpan)for(;l+u<i&&c!=null&&c!==""&&ie(c,e(r[l+u],s))===0;)u++;a[l]=u;for(let h=1;h<u;h++)a[l+h]=-1;l+=u}this.spanInfo.set(s.id,a)}}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=Oe(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 f of a){let y=this.core.getCellValue(f,c),v=y==null?"(\u7A7A)":String(y),w=u.get(v);w||(w=[],u.set(v,w),h.push(v)),w.push(f)}h.sort((f,y)=>f.localeCompare(y,void 0,{numeric:!0,sensitivity:"base"}));let p=[],m=[];for(let f of h){let y=u.get(f),v=`${d}/g${l}:${f}`;this.knownGroupIds.push(v);let w=s(y,l+1,v),b={id:v,data:null,rowIndex:-1,selected:!1,isGroup:!0,groupLevel:l,groupKey:f,leafNodes:w.leaves,aggValues:i(w.leaves)};p.push(b),this.groupExpandedIds.has(v)&&p.push(...w.display),m.push(...w.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 Ve=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)}onRowClick(e,t,r){let o=this.core.options.rowSelection;if(o==="none"||!this.isSelectable(e))return;if(r){let s=o==="single";this.applySelection([{node:e,selected:s?!0:!e.selected,clearOthers:s}]),this.anchorId=e.id;return}let i=o==="multiple";if(i&&(t.ctrlKey||t.metaKey)){this.applySelection([{node:e,selected:!e.selected}]),this.anchorId=e.id;return}if(i&&t.shiftKey&&this.anchorId!=null){let s=this.core.rowModel.getNodeById(this.anchorId);if(s&&s.rowIndex>=0&&e.rowIndex>=0){let a=Math.min(s.rowIndex,e.rowIndex),l=Math.max(s.rowIndex,e.rowIndex),d=[];for(let c=a;c<=l;c++){let u=this.core.rowModel.getDisplayedRow(c);u&&!u.isDetail&&!u.isGroup&&this.isSelectable(u)&&d.push({node:u,selected:!0})}this.applySelection(d);return}}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)}applySelection(e,t=!1){let r=new Set(this.selectedIds),o=t||e.some(u=>u.clearOthers),i=this.core.rowModel.isTree&&this.core.options.autoCheckedChildren;if(o){let u=t?new Set:new Set(e.filter(h=>h.selected).flatMap(h=>i?this.subtreeIds(h.node):[h.node.id]));this.selectedIds=u}for(let u of e){if(!this.isSelectable(u.node))continue;let h=i?this.subtreeIds(u.node):[u.node.id];for(let p of h)u.selected?this.selectedIds.add(p):this.selectedIds.delete(p)}let s=new Set;for(let u of new Set([...r,...this.selectedIds]))r.has(u)!==this.selectedIds.has(u)&&s.add(u);let a=new Map;for(let u of this.core.rowModel.getAllNodes())a.set(u.id,u.selected);let l=new Set(this.indeterminateIds);this.recomputeTriState();let d=[],c=new Set([...s,...l,...this.indeterminateIds]);for(let u of this.core.rowModel.getAllNodes()){let h=this.selectedIds.has(u.id);u.selected=h,(c.has(u.id)||a.get(u.id)!==h)&&u.rowIndex>=0&&d.push(u.rowIndex)}s.size>0&&(this.core.bodyRenderer.refreshRows(d),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 ze=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 g(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}function x(n,e,t){return n<e?e:n>t?t:n}var Nr='<svg viewBox="0 0 16 16" width="14" height="14" 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>',Or='<svg viewBox="0 0 16 16" width="12" height="12" fill="currentColor"><path d="M8 3l4 5H4l4-5z"/></svg>',Hr='<svg viewBox="0 0 16 16" width="12" height="12" fill="currentColor"><path d="M8 13l4-5H4l4 5z"/></svg>';var Br=6,_e=class{constructor(e){this.core=e;this.pending=null;this.dragging=null;this.suppressClick=!1;this.onMove=e=>{if(this.dragging){this.updateIndicator(e);return}let t=this.pending;t&&(Math.abs(e.clientX-t.startX)<Br&&Math.abs(e.clientY-t.startY)<Br||this.startDrag(e))};this.onUp=()=>{let e=this.dragging;this.pending=null,this.cleanup(),e&&(this.dragging=null,e.cellEl.classList.remove("mach-header-cell--dragging"),e.indicator.remove(),this.core.skeleton.root.classList.remove("mach-root--dragging"),e.targetIndex>=0&&this.core.moveColumn(e.column.id,e.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=g("div","mach-drop-indicator");r.parentElement.appendChild(o),r.classList.add("mach-header-cell--dragging"),this.core.skeleton.root.classList.add("mach-root--dragging"),this.dragging={column:t.column,cellEl:r,indicator:o,targetIndex:-1},this.updateIndicator(e)}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)}"]`)}updateIndicator(e){let t=this.dragging;if(!t)return;let r=this.core.bodyRenderer.paneForColumn(t.column),i=this.core.skeleton.headerRowContainers[r].getBoundingClientRect(),s=this.core.columnModel.getPaneColumns(r),a=s.indexOf(t.column),l=e.clientX-i.left,d=-1,c=0,u=0;for(let h=0;h<s.length;h++){let p=u+s[h].currentWidth/2;if(l<p){d=h,c=u;break}u+=s[h].currentWidth}d<0&&(d=s.length,c=u),t.targetIndex=d>a?d-1:d,t.indicator.style.left=`${c}px`}cleanup(){window.removeEventListener("pointermove",this.onMove),window.removeEventListener("pointerup",this.onUp),window.removeEventListener("pointercancel",this.onUp)}destroy(){this.cleanup(),this.dragging&&(this.dragging.cellEl.classList.remove("mach-header-cell--dragging"),this.dragging.indicator.remove(),this.core.skeleton.root.classList.remove("mach-root--dragging"),this.dragging=null),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 Vr(n,e){let t=n==null?"":String(n);return t.includes(e)||t.includes('"')||t.includes(`
|
|
1
|
+
"use strict";var zt=Object.defineProperty;var jo=Object.getOwnPropertyDescriptor;var Yo=Object.getOwnPropertyNames;var Xo=Object.prototype.hasOwnProperty;var Jo=(n,e)=>{for(var t in e)zt(n,t,{get:e[t],enumerable:!0})},Qo=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Yo(e))!Xo.call(n,o)&&o!==t&&zt(n,o,{get:()=>e[o],enumerable:!(r=jo(e,o))||r.enumerable});return n};var Zo=n=>Qo(zt({},"__esModule",{value:!0}),n);var Yi={};Jo(Yi,{BUILTIN_AGG_FUNCS:()=>qt,Column:()=>P,DEFAULT_LOCALE:()=>T,DIRECT_GRID_OPTION_KEYS:()=>jr,EVENT_TYPES:()=>z,EventBus:()=>Z,GRID_OPTION_KEYS:()=>ae,GRID_OPTION_META:()=>_,GRID_SIZE_PRESETS:()=>q,GridCore:()=>ce,LOCALE_EN:()=>Ur,actionsColumn:()=>Io,advancedFilterCondition:()=>Dr,advancedFilterGroup:()=>Er,applyGridViewState:()=>Cr,buildColDefsFromSchema:()=>Do,captureGridViewState:()=>wr,clearColumnState:()=>no,clearComponentRegistries:()=>go,clearGridState:()=>so,computeColumnWidths:()=>Ie,createActionButtonsRenderer:()=>de,createAggResolver:()=>Oe,createBusinessColumnTypes:()=>zo,createCachedDictionary:()=>_o,createColumnHelper:()=>Lo,createColumnStateKey:()=>oo,createDictionaryRenderer:()=>Wo,createEnterprisePreset:()=>Go,createGrid:()=>To,createGridViewManager:()=>qo,createLocalColumnStateStore:()=>nr,createLocalGridStateStore:()=>ar,createLocalGridViewStore:()=>br,createMachTableCommands:()=>Eo,createMachTablePreset:()=>B,createProgressBarRenderer:()=>ur,createRowActionsRenderer:()=>Lt,createSaveSnapshot:()=>ht,createStatusTagRenderer:()=>cr,defaultComparator:()=>ie,defineColumns:()=>Ao,defineGridOptions:()=>No,defineMachTableConfig:()=>Oo,defineMachTablePreset:()=>Fo,describeFilter:()=>gt,downloadFile:()=>ct,dragColumn:()=>ko,escapeHtml:()=>Y,evaluateColumnFilter:()=>Fe,fitColumnWidths:()=>Pe,formatText:()=>I,formatTwo:()=>et,getByPath:()=>te,getCellEditor:()=>Gt,getCellRenderer:()=>Te,indexColumn:()=>Mo,isColDefGroup:()=>ne,isSafePath:()=>ee,linkRenderer:()=>hr,loadColumnState:()=>Mt,loadGridState:()=>It,matchLocaleKey:()=>Ze,matchesGridOptionKind:()=>we,mergeMachTableConfig:()=>Ho,migrateGridState:()=>O,normalizeAdvancedFilterModel:()=>G,normalizeBatchSaveResult:()=>pt,normalizeColumnFilter:()=>Me,normalizeFilterModel:()=>re,normalizeGridViewState:()=>Vt,normalizeMachTableConfig:()=>vr,normalizeSavedGridView:()=>ue,parseCsv:()=>Ke,parseDelimited:()=>$e,parseTsv:()=>We,registerBuiltinRenderers:()=>At,registerCellEditor:()=>fo,registerCellRenderer:()=>po,resolveGridFeatures:()=>Ot,resolveMachTableGridOptions:()=>Bo,resolveSaveConflict:()=>Zr,resolveTagVariant:()=>dr,rowActionsColumn:()=>Po,sanitizeFormulaCell:()=>fe,sanitizeGridOptionPatch:()=>ut,saveColumnState:()=>xt,saveGridState:()=>kt,selectionColumn:()=>xo,setByPath:()=>U,sortNodes:()=>he,toTsv:()=>se,validateGridOptions:()=>Ft,version:()=>ji});module.exports=Zo(Yi);var xe={name:"@agile-team/mach-table",version:"0.19.1",description:"Enterprise-grade, framework-agnostic TypeScript data grid with virtualization, editing, grouping and extensibility",keywords:["data-grid","table","virtualization","typescript","enterprise","vue","react"],author:"ChenyCHENYU (Agile Team)",license:"SEE LICENSE IN LICENSE",homepage:"https://github.com/ChenyCHENYU/MachTable#readme",bugs:{url:"https://github.com/ChenyCHENYU/MachTable/issues"},repository:{type:"git",url:"git+https://github.com/ChenyCHENYU/MachTable.git",directory:"packages/core"},type:"module",main:"./dist/index.cjs",module:"./dist/index.js",types:"./dist/index.d.ts",engines:{node:">=18.0.0"},publishConfig:{access:"public"},exports:{".":{import:{types:"./dist/index.d.ts",default:"./dist/index.js"},require:{types:"./dist/index.d.cts",default:"./dist/index.cjs"}},"./worker":{import:{types:"./dist/worker.d.ts",default:"./dist/worker.js"},require:{types:"./dist/worker.d.cts",default:"./dist/worker.cjs"}},"./styles/mach-table.css":{types:"./styles/mach-table.css.d.ts",default:"./styles/mach-table.css"}},files:["dist","styles"],sideEffects:["**/*.css"],scripts:{build:"tsup",typecheck:"tsc --noEmit",test:"vitest run","test:coverage":"vitest run --coverage"}};var Z=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 ee(n){return typeof n!="string"||n.length===0?!1:n.split(".").every(t=>t.length>0&&!tn.has(t))}function te(n,e){if(n==null||!ee(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 U(n,e,t){if(n==null||!ee(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"]),on=new Set(["equals","notEquals","lessThan","lessThanOrEqual","greaterThan","greaterThanOrEqual","inRange","blank","notBlank"]),nn=new Set(["equals","notEquals","lessThan","greaterThan","inRange","blank","notBlank"]);function sn(n){return n==null||typeof n=="string"||typeof n=="number"&&Number.isFinite(n)}function an(n){return n==="text"?rn:n==="number"?on:nn}function ln(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,...dn(r,e)}}function dn(n,e){let t=e==="number"?Tr(n.value):typeof n.value=="string"?n.value:void 0,r=e==="number"?Tr(n.value2):typeof n.value2=="string"?n.value2:void 0;return{...t!==void 0?{value:t}:{},...r!==void 0?{value2:r}:{}}}function Tr(n){return typeof n=="number"&&Number.isFinite(n)?n:void 0}function cn(n,e){let t=[],r=an(e);for(let o of n.slice(0,20)){let i=ln(o,e,r);i&&t.push(i)}return t}function Me(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(sn).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:cn(e.conditions,e.type)}}function un(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=Me(n.filter);return r?{kind:"condition",colId:t,filter:r}:null}function hn(n,e,t){if(!Array.isArray(n.children))return null;let r=[];for(let o of n.children){let i=Sr(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 Sr(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"?un(r,t):r.kind==="group"?hn(r,e,t):null;return t.ancestors.delete(n),o}function G(n,e){if(n==null||typeof n!="object")return null;let t=n;if(t.version!==1||t.root==null)return null;let r=Sr(t.root,0,{ancestors:new WeakSet,nodes:0,validColumnIds:e});return r?{version:1,root:r}:null}function Dr(n,e){return{kind:"condition",colId:n,filter:e}}function re(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=Me(o);s&&(t[i]=s)}return t}function Er(n,e,t={}){return{kind:"group",operator:n,children:e,...t.not?{not:!0}:{}}}var _t={sortable:!0,resizable:!0,movable:!0,filter:!1,minWidth:80},q={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 D(n,e,t,r=!1){return typeof n!="number"||!Number.isFinite(n)||n<t?e:r?Math.floor(n):n}function fn(n){return n&&Object.prototype.hasOwnProperty.call(q,n)?n:"normal"}function mn(n){return n.theme==="light"||n.theme==="dark"||n.theme==="auto"?n.theme:n.className?.includes("mach-theme-dark")?"dark":"light"}function gn(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=>D(o,0,1,!0)).filter(Boolean))]:[10,20,50,100];return r.includes(e)||r.push(e),r.sort((o,i)=>o-i)}function Wt(n,e){let t=typeof n=="function"?n(e):te(e,n);return t==null?"":String(t)}function yn(n){let e=n.rowKey,t=n.getRowId??(e?({data:r})=>Wt(e,r):void 0);return{...t?{getRowId:t}:{},...e?{rowKey:e}:{}}}function vn(n,e){let t=q[e];return{columnDefs:Array.isArray(n.columnDefs)?n.columnDefs:[],rowData:Array.isArray(n.rowData)?n.rowData:[],defaultColDef:{..._t,...n.defaultColDef??{}},columnTypes:n.columnTypes??{},...yn(n),rowHeight:D(n.rowHeight,t.rowHeight,1),headerHeight:D(n.headerHeight,t.headerHeight,1),rowBuffer:D(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 wn(n){return{stripedRows:n.stripedRows??!1,showCellBorders:n.showCellBorders??!1,theme:mn(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 Cn(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:D(n.undoStackSize,100,0,!0),asyncTransactionWaitMillis:D(n.asyncTransactionWaitMillis,16,0,!0)}}function bn(n){return{masterDetail:n.masterDetail??!1,detailRowHeight:D(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 Rn(n){let e=typeof n.pagination=="object"?n.pagination:void 0,t=D(e?.pageSize,20,1,!0);return{paginationEnabled:n.pagination!==!1&&n.datasource==null,paginationMode:e?.mode==="server"?"server":"client",paginationPage:D(e?.page,1,1,!0),paginationTotal:D(e?.total,0,0,!0),paginationPageSize:t,paginationPageSizeOptions:gn(n,t),paginationShowTotal:e?e.showTotal!==!1:!0,paginationShowSizeSelector:e?e.showPageSizeSelector!==!1:!0}}function Tn(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 Sn(n){return{columnMenu:n.columnMenu??!1,columnStateKey:n.columnStateKey??null,advancedFilterModel:G(n.advancedFilterModel),...Dn(n),locale:n.locale??{},suppressWarnings:n.suppressWarnings??!1,enableRangeSelection:n.enableRangeSelection??!1,suppressClipboard:n.suppressClipboard??!1,contextMenu:n.contextMenu??!1,tooltipShowDelay:D(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 Dn(n){return{stateKey:n.stateKey??null,stateSaveDebounceMs:D(n.stateSaveDebounceMs,160,0,!0)}}function En(n){return{datasourceMode:n.datasourceMode==="block"?"block":"sequential",blockSize:D(n.blockSize,100,1,!0),infiniteBufferRows:D(n.infiniteBufferRows,40,0,!0),maxBlocksInCache:D(n.maxBlocksInCache,12,1,!0),blockPrefetch:D(n.blockPrefetch,1,0,!0),datasourceRowCount:n.datasourceRowCount==null?null:D(n.datasourceRowCount,0,0,!0),dataProcessorMinRows:D(n.dataProcessorMinRows,5e3,1,!0),datasourceRetryCount:D(n.datasourceRetryCount,2,0,!0),datasourceRetryDelay:D(n.datasourceRetryDelay,300,0,!0)}}function xn(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 Mn=["stateStore","detailRowRenderer","isRowExpandable","columnStateStore","aggFuncs","components","actionPolicy","summaryMethod","datasource","getRowHeight","tooltipComponent","getContextMenuItems","initialState","rowEditValidator","isTreeRowExpandable","loadTreeChildren","dataProcessor"];function kn(n,e){for(let t of Mn)n[t]&&Object.assign(e,{[t]:n[t]})}function In(n,e){for(let t of Object.keys(n))t.startsWith("on")&&typeof n[t]=="function"&&Object.assign(e,{[t]:n[t]})}function xr(n){let e=fn(n.size),t={...vn(n,e),...wn(n),...Cn(n),...bn(n),...Rn(n),...Tn(n),...Sn(n),...En(n),...xn(n),features:Array.isArray(n.features)?n.features:[]};return kn(n,t),In(n,t),t}function Mr(n){return Array.isArray(n)?n.filter(e=>typeof e=="string"&&e.length>0):typeof n=="string"&&n.length>0?[n]:[]}function oe(n,e){return Mr(n.type).includes(e)}function kr(n,e,t={}){let r={};for(let o of Mr(n.type)){let i=t[o];i&&Object.assign(r,i)}return{...e,...r,...n}}var P=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 j=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 ne(n){return Array.isArray(n.children)}function ke(n,e){return typeof n=="number"&&Number.isFinite(n)&&n>0?n:e}function Ir(n){let e=ke(n.minWidth,80);return{min:e,max:Math.max(e,ke(n.maxWidth,Number.MAX_SAFE_INTEGER))}}function L(n,e){let{min:t,max:r}=Ir(e),o=ke(n,ke(e.width,150));return Math.max(t,Math.min(r,o))}function Ie(n,e){let t=n.map(s=>L(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],f=n[m].flex??0,y=s*f/d,v=t[m];t[m]=L(v+y,n[m]),c.push(t[m]-v)}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 Pe(n,e){let t=n.map(s=>L(s.width??150,s));if(!Number.isFinite(e)||e<=0||n.length===0)return t;let r=new Set(n.map((s,a)=>a)),o=e;for(let s=0;s<n.length+1&&r.size>0;s++){let a=0;for(let d of r)a+=Math.max(1,t[d]);if(a<=0)break;let l=!1;for(let d of[...r]){let c=o*(Math.max(1,t[d])/a),u=L(c,n[d]),{min:h,max:p}=Ir(n[d]);(c<h||c>p)&&(t[d]=u,o-=u,r.delete(d),l=!0)}if(!l){for(let d of r)t[d]=L(o*(Math.max(1,t[d])/a),n[d]);break}o=Math.max(0,o)}let i=e-t.reduce((s,a)=>s+a,0);if(Math.abs(i)>.01)for(let s=t.length-1;s>=0;s--){let a=L(t[s]+i,n[s]);if(Math.abs(a-t[s])>.01){t[s]=a;break}}return t}var Kt="__rg_detail_toggle__";function Le(n){return typeof n=="number"&&Number.isFinite(n)&&n>0}var Ae=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?[Kt]:[]),i=(s,a,l)=>s.map((d,c)=>{if(ne(d)){let v=d.groupId??d.headerName??`group_${c}_${l}`,w=new j(v,d);return w.parent=a,w.children=i(d.children,w,l+1),w}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 f=new P(p,kr(u,r,this.core.options.columnTypes));f.parentGroup=a,f.level=l;let y=t.get(p);return y&&(f.manualWidth=y.manualWidth,f.flex=y.flex,f.hide=y.hide,f.pinned=y.pinned),f});if(this.rootChildren=i(this.defs,null,0),this.core.options.masterDetail&&this.core.options.detailToggleColumn){let s=new P(Kt,{colId:Kt,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 j?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=L(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=L(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"?Pe(a,l):Ie(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 Le(t)?(e.manualWidth=L(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 P&&!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 P&&!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.pinned=t,this.regroup())}getColumnState(){return this.columns.map(e=>{let t=this.sortModel.findIndex(o=>o.colId===e.id),r={colId:e.id,hide:e.hide,width:e.manualWidth??e.currentWidth,flex:e.flex,widthMode:e.manualWidth==null?"auto":"manual",pinned:e.pinned};return t>=0?(r.sort=this.sortModel[t].direction,r.sortIndex=t):(r.sort=null,r.sortIndex=null),r})}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.sortModel=this.sortModelFromState(e),this.applyStateOrder(e),this.regroup()}applyColumnViewState(e,t){typeof t.hide=="boolean"&&(e.hide=t.hide),t.widthMode==="auto"?(e.resetWidth(),Le(t.flex)&&(e.flex=t.flex)):Le(t.flex)?(e.flex=t.flex,e.manualWidth=null):Le(t.width)&&(e.manualWidth=L(t.width,this.widthInputOf(e)),e.flex=null),(t.pinned==="left"||t.pinned==="right"||t.pinned===null)&&(e.pinned=t.pinned)}sortModelFromState(e){let t=new Set(this.columns.map(i=>i.id)),r=new Set,o=[];for(let i of e){if(i.sort!=="asc"&&i.sort!=="desc"||!t.has(i.colId)||r.has(i.colId))continue;r.add(i.colId);let s=typeof i.sortIndex=="number"&&Number.isInteger(i.sortIndex)&&i.sortIndex>=0?i.sortIndex:o.length;o.push({colId:i.colId,direction:i.sort,sortIndex:s})}return o.sort((i,s)=>i.sortIndex-s.sortIndex),o.map(({colId:i,direction:s})=>({colId:i,direction:s}))}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(l=>l instanceof P&&!l.hide&&l.parentGroup===null&&r(l)===o);if(i.length<2)continue;let s=i.slice().sort((l,d)=>(t.get(l.id)??Number.MAX_SAFE_INTEGER)-(t.get(d.id)??Number.MAX_SAFE_INTEGER));if(s.every((l,d)=>l===i[d]))continue;let a=[];this.rootChildren.forEach((l,d)=>{l instanceof P&&!l.hide&&l.parentGroup===null&&r(l)===o&&a.push(d)}),a.forEach((l,d)=>{this.rootChildren[l]=s[d]})}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.sortModel=[],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 Lr(n){return n==null?"":String(n).toLowerCase()}function Pn(n,e,t){let r=Lr(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 Ln(n,e,t){let r=e.map(o=>{let i=n==null||n==="";if(o.match==="blank")return i;if(o.match==="notBlank")return!i;if(i)return!1;let s=typeof n=="number"?n:Number(n);if(isNaN(s))return!1;let a=o.value;if(a==null||isNaN(a))return!1;switch(o.match){case"equals":return s===a;case"notEquals":return s!==a;case"lessThan":return s<a;case"lessThanOrEqual":return s<=a;case"greaterThan":return s>a;case"greaterThanOrEqual":return s>=a;case"inRange":return s>=a&&s<=(o.value2??a);default:return!0}});return r.length===0?!0:t==="or"?r.some(Boolean):r.every(Boolean)}function Ge(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 An(n,e,t){let r=e.map(o=>{let i=Ge(n)==null;if(o.match==="blank")return i;if(o.match==="notBlank")return!i;if(i)return!1;let s=Ge(n),a=o.value!=null?Ge(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?Ge(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 Gn(n,e){return e.length===0?!0:e.some(t=>t==null&&n==null||t===n)}function Fe(n,e){let t=e.type!=="set"&&e.operator==="or"?"or":"and";switch(e.type){case"text":return Pn(n,e.conditions,t);case"number":return Ln(n,e.conditions,t);case"date":return An(n,e.conditions,t);case"set":return Gn(n,e.values);default:return!0}}function $t(n,e,t,r){if(n.kind==="condition"){let i=e.get(n.colId);return!i||Fe(r(t,i),n.filter)}let o=n.operator==="or"?n.children.some(i=>$t(i,e,t,r)):n.children.every(i=>$t(i,e,t,r));return n.not?!o:o}function Fn(n,e,t,r){return t?$t(t.root,new Map(e.map(o=>[o.id,o])),n,r):!0}function Ut(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(!Fe(d,a))return!1}if(!Fn(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=>Lr(i(n,d)).includes(a)))return!1}return!0}var Ar=typeof Intl<"u"?new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"}):null;function ie(n,e){let t=n==null||n==="",r=e==null||e==="";if(t&&r)return 0;if(t)return 1;if(r)return-1;if(typeof n=="number"&&typeof e=="number")return isNaN(n)&&isNaN(e)?0:isNaN(n)?1:isNaN(e)?-1:n-e;if(n instanceof Date&&e instanceof Date)return n.getTime()-e.getTime();if(typeof n=="boolean"&&typeof e=="boolean")return n===e?0:n?1:-1;let o=String(n),i=String(e);return Ar?Ar.compare(o,i):o.localeCompare(i)}function he(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 Ne(n){return n.filter(e=>typeof e=="number"&&!isNaN(e))}var qt={sum:n=>Ne(n).reduce((e,t)=>e+t,0),avg:n=>{let e=Ne(n);return e.length===0?null:e.reduce((t,r)=>t+r,0)/e.length},count:n=>n.length,min:n=>{let e=Ne(n);return e.length===0?null:Math.min(...e)},max:n=>{let e=Ne(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 Oe(n){let e={...qt,...n??{}};return t=>e[t]}function Gr(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 Fr(n){return Number.isFinite(n)?Math.max(1,Math.trunc(n)):1}var He=class{constructor(e,t){this.maxBlocks=e;this.onEvict=t;this.blocks=new Map;this.inflight=new Map;this.clock=0;this.generation=0;this.hitCount=0;this.missCount=0;this.evictionCount=0;this.maxBlocks=Fr(e)}configure(e){this.maxBlocks=Fr(e),this.evictOverflow()}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){if(r?.aborted)return Promise.reject(Gr(r));let o=this.peek(e);if(o)return this.hitCount++,Promise.resolve(o);let i=this.inflight.get(e);if(i)return this.hitCount++,this.attachConsumer(e,i,r);this.missCount++;let s=this.generation,a=new AbortController,l=Promise.resolve().then(()=>t(a.signal)).then(c=>(s!==this.generation||a.signal.aborted||(this.blocks.set(e,{rows:c.rows,...c.lastRow==null?{}:{lastRow:c.lastRow},touchedAt:++this.clock}),this.evictOverflow()),c)).finally(()=>{this.inflight.get(e)?.promise===l&&this.inflight.delete(e)}),d={controller:a,promise:l,consumers:0};return this.inflight.set(e,d),this.attachConsumer(e,d,r)}purge(){this.generation++;for(let e of this.inflight.values())e.controller.abort();this.inflight.clear();for(let[e,t]of this.blocks)this.onEvict?.(e,t);this.blocks.clear()}snapshot(){let e=0;for(let t of this.blocks.values())e+=t.rows.length;return{cachedBlockCount:this.blocks.size,loadingBlockCount:this.inflight.size,cachedRowCount:e,hitCount:this.hitCount,missCount:this.missCount,evictionCount:this.evictionCount}}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)),i(Gr(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 pe(n,e){if(n==null||typeof n!="object")return;let t=n[e];return Array.isArray(t)?t:void 0}var Be=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 He(12,e=>this.evictBlock(e));this.dataProcessorSeq=0;this.dataProcessorAbort=null;this.skipDataProcessorOnce=!1;this.pipelineRows=[];this.page=1;this.pageSize=20;this.advancedFilterModel=G(e.options.advancedFilterModel)}resolveRowId(e,t,r){let o=this.core.options.getRowId;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("getRowId must return a non-empty string"),"getRowId",{index:t})}catch(i){this.core.reportError(i,"getRowId",{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.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=f=>{u||(u=!0,r?.removeEventListener("abort",d),a===this.infiniteSeq&&(this.infiniteRequested=!1,this.infiniteAbort=null,this.infinitePendingResolve=null,this.setInfiniteLoading(!1),f!=null&&f?.name!=="AbortError"&&this.core.reportError(f,"datasource.getRows",{startRow:e,endRow:s})),c())},m=()=>{if(u||a!==this.infiniteSeq||l.signal.aborted||this.core.isDestroyed()){p();return}h++;let f=!1,y=v=>{if(!(f||u)){if(f=!0,a!==this.infiniteSeq||l.signal.aborted||this.core.isDestroyed()){p();return}if(h<=this.core.options.datasourceRetryCount){let w=Math.min(this.core.options.datasourceRetryDelay*2**Math.max(0,h-1),3e4);this.infiniteRetryTimer=setTimeout(()=>{this.infiniteRetryTimer=null,m()},w);return}p(v??new Error("Datasource request failed"))}};try{let v=o.getRows({startRow:e,endRow:s,sortModel:this.core.columnModel.getSortModel(),filterModel:this.getFilterModel(),advancedFilterModel:this.getAdvancedFilterModel(),quickFilterText:this.quickFilter,signal:l.signal,onSuccess:(w,b)=>{if(f||u)return;if(f=!0,a!==this.infiniteSeq||this.core.isDestroyed()||l.signal.aborted){p();return}let S=w??[];typeof b=="number"&&b>=0?this.infiniteLastRow=b:S.length<s-e&&(this.infiniteLastRow=e+S.length);let R=this.all.length===0;this.appendInfiniteRows(S),p(),this.refreshPipeline(),this.core.requestUpdate({data:!0}),R&&this.core.relayout(),this.core.headerRenderer.refreshSelectAllCheckbox()},fail:y});v&&typeof v.catch=="function"&&v.catch(y)}catch(v){y(v)}};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){if(!this.isBlockDatasource||e<0)return Promise.resolve();if(t?.aborted)return Promise.reject(this.abortError(t.reason));let r=this.core.options.blockSize,o=e*r;if(o>=this.resolveBlockRowCount())return Promise.resolve();let i=this.infiniteLastRow==null?o+r:Math.min(this.infiniteLastRow,o+r),s=this.blockCache.load(e,a=>this.requestDatasourceRange(o,i,a),t);return this.setInfiniteLoading(this.all.length===0&&this.blockCache.snapshot().loadingBlockCount>0),s.then(a=>{t?.aborted||this.core.isDestroyed()||!this.isBlockDatasource||this.installedBlocks.has(e)||(this.installBlock(e,a),this.refreshPipeline(),this.core.requestUpdate({data:!0}),this.core.headerRenderer.refreshSelectAllCheckbox())}).catch(a=>{throw a?.name!=="AbortError"&&this.core.reportError(a,"datasource.getRows",{startRow:o,endRow:i}),a}).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=f=>{if(!(p||d)){if(p=!0,r.aborted||this.core.isDestroyed()){u();return}if(a<=this.core.options.datasourceRetryCount){let y=Math.min(this.core.options.datasourceRetryDelay*2**Math.max(0,a-1),3e4);l=setTimeout(()=>{l=null,h()},y)}else c(f)}};try{let f=o.getRows({startRow:e,endRow:t,sortModel:this.core.columnModel.getSortModel(),filterModel:this.getFilterModel(),advancedFilterModel:this.getAdvancedFilterModel(),quickFilterText:this.quickFilter,signal:r,onSuccess:(y,v)=>{p||d||(p=!0,d=!0,r.removeEventListener("abort",u),i({rows:y??[],...typeof v=="number"&&v>=0?{lastRow:v}:{}}))},fail:m});f&&typeof f.catch=="function"&&f.catch(m)}catch(f){m(f)}};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}checkInfiniteScroll(e){if(this.isBlockDatasource){if(e<0)return;let s=this.core.options.blockSize,a=Math.floor(e/s),l=this.core.options.blockPrefetch;for(let d=0;d<=l;d++){let c=d===0?[a]:[a+d,a-d];for(let u of c)u<0||u*s>=this.resolveBlockRowCount()||this.loadRandomBlock(u).catch(()=>{})}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)}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));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.getRowId,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 f=this.isTree?pe(c,r):void 0,y={id:m,data:c,rowIndex:-1,selected:!1,treeChildrenLoaded:Array.isArray(f)};if(this.treeDepth.set(y,u),o.push(y),s.set(m,y),h!=null){let v=a.get(h)??[];v.push(m),a.set(h,v)}else i.push(y);if(this.isTree&&Array.isArray(f))for(let v of f)v!=null&&d(v,u+1,m);return y};(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.getRowId!=null),this.refreshPipeline(),this.core.requestUpdate({data:!0})}validateTreeChildren(e,t){let r=this.core.options.getRowId,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] getRowId must return a non-empty string for lazy tree children.");if(o.has(c))throw new Error(`Duplicate row id: ${c}`);o.add(c)}let d=pe(l,this.core.options.childrenKey);d&&s.push(...d)}}applyTransaction(e,t=!0){let r=this.core.options.getRowId,o=[],i=[];if(e.remove?.length){let s=new Set,a=new Set,l=c=>{if(r){let h=[this.resolveRowId(c,-1,`__missing_remove_${this.core.nextId()}`)];for(;h.length>0;){let p=h.pop();if(!s.has(p)){s.add(p);for(let m of this.childIds.get(p)??[])h.push(m)}}}else{let u=[c];for(;u.length>0;){let h=u.pop();a.add(h);let p=this.isTree?pe(h,this.core.options.childrenKey):void 0;if(p)for(let m of p)u.push(m)}}};e.remove.forEach(l),this.all=this.all.filter(c=>{let u=s.has(c.id)||c.data!=null&&a.has(c.data);return u&&(i.push(c.id),this.nodesById.delete(c.id),this.childIds.delete(c.id)),!u});let d=new Set(this.all);this.roots=this.roots.filter(c=>d.has(c))}if(e.update?.length)for(let s of e.update){let a;r?a=this.nodesById.get(this.resolveRowId(s,-1,`__missing_update_${this.core.nextId()}`)):a=this.all.find(l=>l.data===s),a&&(a.data=s,i.push(a.id),this.core.bodyRenderer.invalidateRowHeight(a),o.push(a))}if(e.add?.length){let s=e.addIndex!=null?Math.max(0,Math.min(e.addIndex,this.roots.length)):this.roots.length,a=[];e.add.forEach((l,d)=>{let c=this.resolveRowId(l,s+d,`add-${this.core.nextId()}`);if(this.nodesById.has(c)){this.core.reportError(new Error(`Duplicate row id: ${c}`),"transaction.add",{rowId:c});return}let u={id:c,data:l,rowIndex:-1,selected:!1};this.nodesById.set(c,u),this.treeDepth.set(u,0);let h=this.isTree?pe(l,this.core.options.childrenKey):void 0;if(h)for(let p of h)p!=null&&this.buildChildNodes(u,p,1);a.push(u)}),this.roots.splice(s,0,...a),this.reindexAll()}if(t){this.refreshPipeline();for(let s of o)s.rowIndex>=0&&this.core.bodyRenderer.refreshRows([s.rowIndex])}this.core.changeTracker.clearRows(i)}applyTransactions(e){if(e.length!==0){for(let t of e)this.applyTransaction(t,!1);this.refreshPipeline()}}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=pe(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=re(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=G(e,t),o=JSON.stringify(this.advancedFilterModel);return this.advancedFilterModel=r,this.core.options.advancedFilterModel=r,JSON.stringify(r)!==o}getAdvancedFilterModel(){return G(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=>Ut(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=he(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=Ut(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=he(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}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(s=>s.colDef.rowSpan!=null||s.colDef.autoRowSpan===!0);if(t.length===0)return;let r=this.mastersBuf,o=0;for(let s of this.displayed)!s.isDetail&&!s.isGroup&&(r[o++]=s);r.length=o;let i=o;if(i!==0)for(let s of t){let a=new Int32Array(i),l=0;for(;l<i;){let d=r[l],c=e(d,s),u=1;if(s.colDef.rowSpan)try{let h=s.colDef.rowSpan({api:this.core.getApi(),colDef:s.colDef,column:s,node:d,data:d.data,value:c,rowIndex:d.rowIndex});u=Math.max(1,Math.min(Math.round(h)||1,i-l))}catch(h){this.core.reportError(h,"rowSpan",{colId:s.id,rowId:d.id})}else if(s.colDef.autoRowSpan)for(;l+u<i&&c!=null&&c!==""&&ie(c,e(r[l+u],s))===0;)u++;a[l]=u;for(let h=1;h<u;h++)a[l+h]=-1;l+=u}this.spanInfo.set(s.id,a)}}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=Oe(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 f of a){let y=this.core.getCellValue(f,c),v=y==null?"(\u7A7A)":String(y),w=u.get(v);w||(w=[],u.set(v,w),h.push(v)),w.push(f)}h.sort((f,y)=>f.localeCompare(y,void 0,{numeric:!0,sensitivity:"base"}));let p=[],m=[];for(let f of h){let y=u.get(f),v=`${d}/g${l}:${f}`;this.knownGroupIds.push(v);let w=s(y,l+1,v),b={id:v,data:null,rowIndex:-1,selected:!1,isGroup:!0,groupLevel:l,groupKey:f,leafNodes:w.leaves,aggValues:i(w.leaves)};p.push(b),this.groupExpandedIds.has(v)&&p.push(...w.display),m.push(...w.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 Ve=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)}onRowClick(e,t,r){let o=this.core.options.rowSelection;if(o==="none"||!this.isSelectable(e))return;if(r){let s=o==="single";this.applySelection([{node:e,selected:s?!0:!e.selected,clearOthers:s}]),this.anchorId=e.id;return}let i=o==="multiple";if(i&&(t.ctrlKey||t.metaKey)){this.applySelection([{node:e,selected:!e.selected}]),this.anchorId=e.id;return}if(i&&t.shiftKey&&this.anchorId!=null){let s=this.core.rowModel.getNodeById(this.anchorId);if(s&&s.rowIndex>=0&&e.rowIndex>=0){let a=Math.min(s.rowIndex,e.rowIndex),l=Math.max(s.rowIndex,e.rowIndex),d=[];for(let c=a;c<=l;c++){let u=this.core.rowModel.getDisplayedRow(c);u&&!u.isDetail&&!u.isGroup&&this.isSelectable(u)&&d.push({node:u,selected:!0})}this.applySelection(d);return}}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)}applySelection(e,t=!1){let r=new Set(this.selectedIds),o=t||e.some(u=>u.clearOthers),i=this.core.rowModel.isTree&&this.core.options.autoCheckedChildren;if(o){let u=t?new Set:new Set(e.filter(h=>h.selected).flatMap(h=>i?this.subtreeIds(h.node):[h.node.id]));this.selectedIds=u}for(let u of e){if(!this.isSelectable(u.node))continue;let h=i?this.subtreeIds(u.node):[u.node.id];for(let p of h)u.selected?this.selectedIds.add(p):this.selectedIds.delete(p)}let s=new Set;for(let u of new Set([...r,...this.selectedIds]))r.has(u)!==this.selectedIds.has(u)&&s.add(u);let a=new Map;for(let u of this.core.rowModel.getAllNodes())a.set(u.id,u.selected);let l=new Set(this.indeterminateIds);this.recomputeTriState();let d=[],c=new Set([...s,...l,...this.indeterminateIds]);for(let u of this.core.rowModel.getAllNodes()){let h=this.selectedIds.has(u.id);u.selected=h,(c.has(u.id)||a.get(u.id)!==h)&&u.rowIndex>=0&&d.push(u.rowIndex)}s.size>0&&(this.core.bodyRenderer.refreshRows(d),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 ze=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 g(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}function x(n,e,t){return n<e?e:n>t?t:n}var Nr='<svg viewBox="0 0 16 16" width="14" height="14" 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>',Or='<svg viewBox="0 0 16 16" width="12" height="12" fill="currentColor"><path d="M8 3l4 5H4l4-5z"/></svg>',Hr='<svg viewBox="0 0 16 16" width="12" height="12" fill="currentColor"><path d="M8 13l4-5H4l4 5z"/></svg>';var Br=6,_e=class{constructor(e){this.core=e;this.pending=null;this.dragging=null;this.suppressClick=!1;this.onMove=e=>{if(this.dragging){this.updateIndicator(e);return}let t=this.pending;t&&(Math.abs(e.clientX-t.startX)<Br&&Math.abs(e.clientY-t.startY)<Br||this.startDrag(e))};this.onUp=()=>{let e=this.dragging;this.pending=null,this.cleanup(),e&&(this.dragging=null,e.cellEl.classList.remove("mach-header-cell--dragging"),e.indicator.remove(),this.core.skeleton.root.classList.remove("mach-root--dragging"),e.targetIndex>=0&&this.core.moveColumn(e.column.id,e.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=g("div","mach-drop-indicator");r.parentElement.appendChild(o),r.classList.add("mach-header-cell--dragging"),this.core.skeleton.root.classList.add("mach-root--dragging"),this.dragging={column:t.column,cellEl:r,indicator:o,targetIndex:-1},this.updateIndicator(e)}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)}"]`)}updateIndicator(e){let t=this.dragging;if(!t)return;let r=this.core.bodyRenderer.paneForColumn(t.column),i=this.core.skeleton.headerRowContainers[r].getBoundingClientRect(),s=this.core.columnModel.getPaneColumns(r),a=s.indexOf(t.column),l=e.clientX-i.left,d=-1,c=0,u=0;for(let h=0;h<s.length;h++){let p=u+s[h].currentWidth/2;if(l<p){d=h,c=u;break}u+=s[h].currentWidth}d<0&&(d=s.length,c=u),t.targetIndex=d>a?d-1:d,t.indicator.style.left=`${c}px`}cleanup(){window.removeEventListener("pointermove",this.onMove),window.removeEventListener("pointerup",this.onUp),window.removeEventListener("pointercancel",this.onUp)}destroy(){this.cleanup(),this.dragging&&(this.dragging.cellEl.classList.remove("mach-header-cell--dragging"),this.dragging.indicator.remove(),this.core.skeleton.root.classList.remove("mach-root--dragging"),this.dragging=null),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 Vr(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 fe(n){return typeof n!="string"||n===""||/^[+-]?(?:\d+(?:\.\d+)?|\.\d+)(?:[eE][+-]?\d+)?$/.test(n)?n:/^[\s\u0000-\u001f]*[=+\-@]/.test(n)?"'"+n:n}function jt(n,e={}){let t=e.columnSeparator??",",r=e.includeHeader??!0,o=e.protectFormulas??!0,i=[];r&&i.push(n.getHeaderLabels().map(a=>Vr(a,t)).join(t));for(let a of n.getRowValues())i.push(a.map(l=>Vr(o?fe(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?fe(n):n,r=t==null?"":String(t);return/["\t\n\r]/.test(r)?'"'+r.replace(/"/g,'""')+'"':r}function se(n,e=!0){return n.map(t=>t.map(r=>On(r,e)).join(" ")).join(`
|
|
4
4
|
`)}function We(n){return $e(n," ")}function Ke(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===`
|