@agile-team/mach-table 0.31.0 → 0.31.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/README.md +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# @agile-team/mach-table
|
|
6
6
|
|
|
7
|
-
MachTable 0.31.
|
|
7
|
+
MachTable 0.31.1 的框架无关 TypeScript Core:零运行时依赖,提供行列双虚拟化、领域化 API、单元格/整行编辑、树与分组、随机访问远程数据、区段隔离状态持久化和可诊断扩展系统。本版增加可配置整行颜色、完善主题化行拖拽与键盘排序,并修正树交互与列宽拖动反馈。
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
10
|
pnpm add @agile-team/mach-table
|
package/dist/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var zt=Object.defineProperty;var yi=Object.getOwnPropertyDescriptor;var vi=Object.getOwnPropertyNames;var wi=Object.prototype.hasOwnProperty;var bi=(i,e)=>{for(var t in e)zt(i,t,{get:e[t],enumerable:!0})},Ci=(i,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of vi(e))!wi.call(i,o)&&o!==t&&zt(i,o,{get:()=>e[o],enumerable:!(r=yi(e,o))||r.enumerable});return i};var Ti=i=>Ci(zt({},"__esModule",{value:!0}),i);var Js={};bi(Js,{BUILTIN_AGG_FUNCS:()=>jt,DEFAULT_LOCALE:()=>D,EVENT_TYPES:()=>j,LOCALE_EN:()=>oo,actionsColumn:()=>ei,advancedFilterCondition:()=>Ar,advancedFilterGroup:()=>Ir,applyGridViewState:()=>Sr,buildColDefsFromSchema:()=>Yo,captureGridViewState:()=>Er,clearGridState:()=>Go,createActionButtonsRenderer:()=>me,createAggResolver:()=>He,createBusinessColumnTypes:()=>di,createCachedDictionary:()=>ci,createColumnHelper:()=>ri,createDictionaryRenderer:()=>ui,createEnterprisePreset:()=>ii,createGrid:()=>qo,createGridViewManager:()=>mi,createLocalGridStateStore:()=>ur,createLocalGridViewStore:()=>xr,createMachTableCommands:()=>Xo,createMachTablePreset:()=>Dr,createProgressBarRenderer:()=>gr,createRemoteExportRequest:()=>Uo,createRowActionsRenderer:()=>Pt,createStatusTagRenderer:()=>mr,defineColumns:()=>oi,defineGridOptions:()=>si,defineMachTableConfig:()=>ai,defineMachTablePreset:()=>ni,describeFilter:()=>wt,downloadFile:()=>gt,dragColumn:()=>Zo,escapeHtml:()=>re,formatText:()=>V,formatTwo:()=>ce,getByPath:()=>K,indexColumn:()=>Qo,isColDefGroup:()=>se,isSafePath:()=>ie,linkRenderer:()=>yr,loadGridState:()=>At,matchLocaleKey:()=>it,normalizeAdvancedFilterModel:()=>O,normalizeColumnFilter:()=>Ie,normalizeFilterModel:()=>q,normalizeGridState:()=>z,normalizeGridViewState:()=>Bt,normalizeSavedGridView:()=>ge,parseCsv:()=>qe,parseDelimited:()=>Ue,parseTsv:()=>Ke,resolveGridFeatures:()=>Ft,resolveSaveConflict:()=>fo,resolveTagVariant:()=>fr,rowActionsColumn:()=>ti,sanitizeFormulaCell:()=>we,saveGridState:()=>kt,selectionColumn:()=>Jo,setByPath:()=>Z,toTsv:()=>de,validateGridOptions:()=>Gt,version:()=>Xs});module.exports=Ti(Js);var ke="0.31.0";var Ae=class{constructor(e){this.onListenerError=e;this.ae=new Map}on(e,t){let r=this.ae.get(e);return r||(r=new Set,this.ae.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.ae.get(e);r&&(r.delete(t),r.size===0&&this.ae.delete(e))}emit(e,t){let r=this.ae.get(e);if(r)for(let o of[...r])try{o(t)}catch(n){console.error(`[mach-table] error in "${e}" listener`,n),this.onListenerError?.(n,e)}}clear(){this.ae.clear()}};var Di=new Set(["__proto__","prototype","constructor"]);function ie(i){return typeof i!="string"||i.length===0?!1:i.split(".").every(t=>t.length>0&&!Di.has(t))}function K(i,e){if(i==null||!ie(e))return;if(e.indexOf(".")<0)return i[e];let r=i,o=0;for(;o<e.length;){if(r==null)return;let n=e.indexOf(".",o);if(n<0){r=r[e.slice(o)];break}r=r[e.slice(o,n)],o=n+1}return r}function Z(i,e,t){if(i==null||!ie(e))return!1;let r=e.split("."),o=i;for(let n=0;n<r.length-1;n++){if(typeof o!="object"&&typeof o!="function"||o===null)return!1;o[r[n]]==null&&(o[r[n]]={}),o=o[r[n]]}return typeof o!="object"&&typeof o!="function"||o===null?!1:(o[r[r.length-1]]=t,!0)}var Ei=new Set(["contains","notContains","equals","notEquals","startsWith","endsWith","blank","notBlank"]),Si=new Set(["equals","notEquals","lessThan","lessThanOrEqual","greaterThan","greaterThanOrEqual","inRange","blank","notBlank"]),xi=new Set(["equals","notEquals","lessThan","greaterThan","inRange","blank","notBlank"]);function Mi(i){return i==null||typeof i=="string"||typeof i=="number"&&Number.isFinite(i)}function ki(i){return i==="text"?Ei:i==="number"?Si:xi}function Ai(i,e,t){if(i==null||typeof i!="object")return null;let r=i;return typeof r.match!="string"||!t.has(r.match)?null:{match:r.match,...Ii(r,e)}}function Ii(i,e){let t=e==="number"?Mr(i.value):typeof i.value=="string"?i.value:void 0,r=e==="number"?Mr(i.value2):typeof i.value2=="string"?i.value2:void 0;return{...t!==void 0?{value:t}:{},...r!==void 0?{value2:r}:{}}}function Mr(i){return typeof i=="number"&&Number.isFinite(i)?i:void 0}function Li(i,e){let t=[],r=ki(e);for(let o of i.slice(0,20)){let n=Ai(o,e,r);n&&t.push(n)}return t}function Ie(i){if(i==null||typeof i!="object")return null;let e=i;return e.type==="set"?Array.isArray(e.values)?{type:"set",values:e.values.filter(Mi).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:Li(e.conditions,e.type)}}function Pi(i,e){if(typeof i.colId!="string"||!i.colId.trim())return null;let t=i.colId.trim();if(e.validColumnIds?.has(t)===!1)return null;let r=Ie(i.filter);return r?{kind:"condition",colId:t,filter:r}:null}function Gi(i,e,t){if(!Array.isArray(i.children))return null;let r=[];for(let o of i.children){let n=kr(o,e+1,t);n&&r.push(n)}return r.length===0?null:{kind:"group",operator:i.operator==="or"?"or":"and",children:r,...i.not===!0?{not:!0}:{}}}function Ni(i,e,t){return e<=16&&t.nodes<512&&i!=null&&typeof i=="object"}function kr(i,e,t){if(!Ni(i,e,t)||t.ancestors.has(i))return null;t.ancestors.add(i),t.nodes++;let r=i,o=r.kind==="condition"?Pi(r,t):r.kind==="group"?Gi(r,e,t):null;return t.ancestors.delete(i),o}function O(i,e){if(i==null||typeof i!="object")return null;let t=i;if(t.version!==1||t.root==null)return null;let r=kr(t.root,0,{ancestors:new WeakSet,nodes:0,validColumnIds:e});return r?{version:1,root:r}:null}function Ar(i,e){return{kind:"condition",colId:i,filter:e}}function q(i,e){if(i==null||typeof i!="object"||Array.isArray(i))return{};let t={};for(let[r,o]of Object.entries(i).slice(0,2e3)){let n=r.trim();if(!n||e?.has(n)===!1)continue;let s=Ie(o);s&&(t[n]=s)}return t}function Ir(i,e,t={}){return{kind:"group",operator:i,children:e,...t.not?{not:!0}:{}}}var _t={align:"center",sortable:!0,resizable:!0,movable:!0,filter:!1,minWidth:80},ye={compact:{rowHeight:30,headerHeight:34,fontSize:12,cellPadding:6},normal:{rowHeight:36,headerHeight:40,fontSize:13,cellPadding:9},large:{rowHeight:44,headerHeight:48,fontSize:14,cellPadding:12}};function S(i,e,t,r=!1){return typeof i!="number"||!Number.isFinite(i)||i<t?e:r?Math.floor(i):i}function Fi(i){return i&&Object.prototype.hasOwnProperty.call(ye,i)?i:"normal"}function Oi(i){return i.theme==="light"||i.theme==="dark"||i.theme==="auto"?i.theme:"light"}function Hi(i,e){let t=typeof i.pagination=="object"&&Array.isArray(i.pagination.pageSizeOptions)?i.pagination.pageSizeOptions:void 0,r=t?[...new Set(t.map(o=>S(o,0,1,!0)).filter(Boolean))]:[10,20,50,100];return r.includes(e)||r.push(e),r.sort((o,n)=>o-n)}function Wt(i,e){let t=typeof i=="function"?i(e):K(e,i);return t==null?"":String(t)}function Vi(i){let e=i.rowKey,t=e?({data:r})=>Wt(e,r):void 0;return{...t?{resolveRowId:t}:{},...e?{rowKey:e}:{}}}function Bi(i,e){let t=ye[e];return{columnDefs:Array.isArray(i.columnDefs)?i.columnDefs:[],rowData:Array.isArray(i.rowData)?i.rowData:[],defaultColDef:{..._t,...i.defaultColDef??{}},columnTypes:i.columnTypes??{},...Vi(i),rowHeight:S(i.rowHeight,t.rowHeight,1),headerHeight:S(i.headerHeight,t.headerHeight,1),rowBuffer:S(i.rowBuffer,8,0,!0),columnLayout:i.columnLayout==="fit"?"fit":"normal",enableColumnResize:i.enableColumnResize===!0,domLayout:i.domLayout==="autoHeight"?"autoHeight":"normal",rowSelection:i.rowSelection==="single"||i.rowSelection==="multiple"?i.rowSelection:"none",multiSort:i.multiSort??!0,size:e,pinnedTopRowData:Array.isArray(i.pinnedTopRowData)?i.pinnedTopRowData:[],pinnedBottomRowData:Array.isArray(i.pinnedBottomRowData)?i.pinnedBottomRowData:[]}}function zi(i){return{stripedRows:i.stripedRows??!1,rowStyleRules:Array.isArray(i.rowStyleRules)?i.rowStyleRules:[],showCellBorders:i.showCellBorders??!1,theme:Oi(i),quickFilterText:i.quickFilterText??null,suppressCellFocus:i.suppressCellFocus??!1,suppressRowHoverHighlight:i.suppressRowHoverHighlight??!1,suppressNoRowsOverlay:i.suppressNoRowsOverlay??!1,suppressHeaderFocus:i.suppressHeaderFocus??!1,loading:i.loading??!1,error:i.error??null,className:i.className??""}}function _i(i){return{editType:i.editType==="fullRow"?"fullRow":"cell",editableIndicator:i.editableIndicator==="always"||i.editableIndicator==="none"?i.editableIndicator:"hover",singleClickEdit:i.singleClickEdit??!1,manualSorting:i.manualSorting??!1,manualFiltering:i.manualFiltering??!1,showSummary:i.showSummary??!1,indexOffset:i.indexOffset??0,applyRowDrag:i.applyRowDrag??!0,undoStackSize:S(i.undoStackSize,100,0,!0),asyncTransactionWaitMillis:S(i.asyncTransactionWaitMillis,16,0,!0)}}function Wi(i){return{masterDetail:i.masterDetail??!1,detailRowHeight:S(i.detailRowHeight,240,1),detailToggleColumn:i.detailToggleColumn??!0,treeData:i.treeData??!1,childrenKey:i.childrenKey??"children",autoCheckedChildren:i.autoCheckedChildren??!0,defaultExpandAll:i.defaultExpandAll??!1}}function $i(i){let e=typeof i.pagination=="object"?i.pagination:void 0,t=S(e?.pageSize,20,1,!0);return{paginationEnabled:i.pagination!==!1&&i.datasource==null,paginationMode:e?.mode==="server"?"server":"client",paginationPage:S(e?.page,1,1,!0),paginationTotal:S(e?.total,0,0,!0),paginationPageSize:t,paginationPageSizeOptions:Hi(i,t),paginationShowTotal:e?e.showTotal!==!1:!0,paginationShowSizeSelector:e?e.showPageSizeSelector!==!1:!0}}function Ki(i){return{watermarkEnabled:i.watermark!=null&&i.watermark!==!1,watermarkConfig:i.watermark==null||i.watermark===!1?null:i.watermark===!0?{text:"MachTable"}:i.watermark}}function qi(i){return{columnMenu:i.columnMenu??!1,advancedFilterModel:O(i.advancedFilterModel),...Ui(i),locale:i.locale??{},suppressWarnings:i.suppressWarnings??!1,enableRangeSelection:i.enableRangeSelection??!1,suppressClipboard:i.suppressClipboard??!1,contextMenu:i.contextMenu??!1,tooltipShowDelay:S(i.tooltipShowDelay,600,0),flashCells:i.flashCells??!0,fillHandle:i.fillHandle??!0,statusBarEnabled:i.statusBar===!0||typeof i.statusBar=="object"&&i.statusBar!=null,statusBarPanels:typeof i.statusBar=="object"&&i.statusBar?.panels?i.statusBar.panels:["rowCount","selectedRowCount","rangeAggregate"]}}function Ui(i){let e=i.persistence;return!e||typeof e.key!="string"||!e.key.trim()?{persistence:null}:{persistence:{key:e.key.trim(),debounceMs:S(e.debounceMs,160,0,!0),...e.sections?{sections:[...new Set(e.sections)]}:{},...e.store?{store:e.store}:{}}}}function ji(i){return{datasourceMode:i.datasourceMode==="block"?"block":"sequential",blockSize:S(i.blockSize,100,1,!0),infiniteBufferRows:S(i.infiniteBufferRows,40,0,!0),maxBlocksInCache:S(i.maxBlocksInCache,12,1,!0),datasourceMaxConcurrentRequests:S(i.datasourceMaxConcurrentRequests,4,1,!0),blockPrefetch:S(i.blockPrefetch,1,0,!0),datasourceRowCount:i.datasourceRowCount==null?null:S(i.datasourceRowCount,0,0,!0),dataProcessorMinRows:S(i.dataProcessorMinRows,5e3,1,!0),datasourceRetryCount:S(i.datasourceRetryCount,2,0,!0),datasourceRetryDelay:S(i.datasourceRetryDelay,300,0,!0),datasourceRetryJitter:Math.min(1,S(i.datasourceRetryJitter,.15,0))}}function Yi(i){return{ariaLabel:i.ariaLabel??"MachTable data grid",ariaLabelledBy:i.ariaLabelledBy??"",ariaDescribedBy:i.ariaDescribedBy??"",overlayNoRowsTemplate:i.overlayNoRowsTemplate??"",overlayLoadingTemplate:i.overlayLoadingTemplate??"",overlayErrorTemplate:i.overlayErrorTemplate??"",allowUnsafeOverlayHtml:i.allowUnsafeOverlayHtml??!1}}var Xi=["detailRowRenderer","isRowExpandable","aggFuncs","components","actionPolicy","summaryMethod","datasource","getRowHeight","tooltipComponent","getContextMenuItems","initialState","rowEditValidator","isTreeRowExpandable","loadTreeChildren","dataProcessor"];function Ji(i,e){for(let t of Xi)i[t]&&Object.assign(e,{[t]:i[t]})}function Qi(i,e){for(let t of Object.keys(i))t.startsWith("on")&&typeof i[t]=="function"&&Object.assign(e,{[t]:i[t]})}function Lr(i){let e=Fi(i.size),t={...Bi(i,e),...zi(i),..._i(i),...Wi(i),...$i(i),...Ki(i),...qi(i),...ji(i),...Yi(i),features:Array.isArray(i.features)?i.features:[]};return Ji(i,t),Qi(i,t),t}function Pr(i){return Array.isArray(i)?i.filter(e=>typeof e=="string"&&e.length>0):typeof i=="string"&&i.length>0?[i]:[]}function ne(i,e){return Pr(i.type).includes(e)}function Gr(i,e,t={}){let r={};for(let o of Pr(i.type)){let n=t[o];n&&Object.assign(r,n)}return{...e,...r,...i}}var W=class{constructor(e,t){this.manualWidth=null;this.contentWidth=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.contentWidth=null,this.flex=typeof this.colDef.flex=="number"&&Number.isFinite(this.colDef.flex)&&this.colDef.flex>0?this.colDef.flex:null}};var ee=class i{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 i?t.getLeafColumns(e):e.push(t);return e}};function se(i){return Array.isArray(i.children)}function Le(i,e){return typeof i=="number"&&Number.isFinite(i)&&i>0?i:e}function Nr(i){let e=Le(i.minWidth,80);return{min:e,max:Math.max(e,Le(i.maxWidth,Number.MAX_SAFE_INTEGER))}}function N(i,e){let{min:t,max:r}=Nr(e),o=Le(i,Le(e.width,150));return Math.max(t,Math.min(r,o))}function Fr(i,e){let t=i.map(s=>N(s.width??150,s)),r=[],o=0;i.forEach((s,a)=>{let l=s.flex??0;l>0&&(r.push(a),o+=l)});let n=0;for(let s of t)n+=s;if(o>0&&e>n){let s=e-n;for(let a=0;a<4&&s>.5&&r.length>0;a++){let l=[],d=0;for(let p of r){let m=i[p].flex??0;l.push(p),d+=m}let c=[];for(let p=0;p<l.length;p++){let m=l[p],v=i[m].flex??0,g=s*v/d,y=t[m];t[m]=N(y+g,i[m]),c.push(t[m]-y)}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 Zi(i,e,t){let r=new Set(i.map((n,s)=>s)),o=t;for(let n=0;n<i.length+1&&r.size>0;n++){let s=0;for(let l of r)s+=Math.max(1,e[l]);if(s<=0)break;let a=!1;for(let l of[...r]){let d=o*(Math.max(1,e[l])/s),c=N(d,i[l]),{min:u,max:h}=Nr(i[l]);(d<u||d>h)&&(e[l]=c,o-=c,r.delete(l),a=!0)}if(!a){for(let l of r)e[l]=N(o*(Math.max(1,e[l])/s),i[l]);break}o=Math.max(0,o)}}function en(i,e,t){let r=t-e.reduce((o,n)=>o+n,0);if(!(Math.abs(r)<=.01))for(let o=e.length-1;o>=0;o--){let n=N(e[o]+r,i[o]);if(Math.abs(n-e[o])>.01){e[o]=n;return}}}function Pe(i,e){let t=i.map(r=>N(r.width??150,r));return!Number.isFinite(e)||e<=0||i.length===0||(Zi(i,t,e),en(i,t,e)),t}var $t="__rg_detail_toggle__";function ae(i){return typeof i=="number"&&Number.isFinite(i)&&i>0}var Ge=class{constructor(e){this.core=e;this.columns=[];this.E=[];this.left=[];this.center=[];this.right=[];this.sortModel=[];this.defs=[];this.le=1;this.Vt=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?[$t]:[]),n=(s,a,l)=>s.map((d,c)=>{if(se(d)){let y=d.groupId??d.headerName??`group_${c}_${l}`,b=new ee(y,d);return b.parent=a,b.children=n(d.children,b,l+1),b}let u=d,h=u.colId??u.field??`col_${c}`,p=h,m=2;for(;o.has(p);)p=`${h}_${m++}`;o.add(p);let v=new W(p,Gr(u,r,this.core.options.columnTypes));v.parentGroup=a,v.level=l;let g=t.get(p);return g&&(v.manualWidth=g.manualWidth,v.contentWidth=g.contentWidth,v.flex=g.flex,v.hide=g.hide,v.pinned=g.pinned),v});if(this.E=n(this.defs,null,0),this.core.options.masterDetail&&this.core.options.detailToggleColumn){let s=new W($t,{colId:$t,headerName:"",width:38,pinned:"left",sortable:!1,resizable:!1,movable:!1,filter:!1});s.isDetailToggle=!0,this.E.unshift(s)}if(this.columns=this.Je(this.E),this.le=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.de()}Je(e,t=[]){for(let r of e)r instanceof ee?this.Je(r.children,t):t.push(r);return t}de(){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.Vt.clear(),this.getOrderedVisible().forEach((t,r)=>this.Vt.set(t.id,r))}getFlatIndex(e){return this.Vt.get(e)??-1}getColumns(){return this.columns}getColumnDefs(){return this.defs}getRootChildren(){return this.E}getHeaderDepth(){return this.le}getColumn(e){return this.columns.find(t=>t.id===e)}getPaneColumns(e){return e==="left"?this.left:e==="right"?this.right:this.center}getOrderedVisible(){return[...this.left,...this.center,...this.right]}getRowGroupColumns(){return this.getOrderedVisible().filter(e=>e.colDef.rowGroup===!0)}getAggColumns(){return this.getOrderedVisible().filter(e=>e.colDef.aggFunc!=null&&e.colDef.rowGroup!==!0)}hasColSpan(){return this.center.some(e=>e.colDef.colSpan!=null)}getGroupLabelColumn(){let e=this.getOrderedVisible();return this.center.find(t=>!t.hasCheckbox&&!t.isDetailToggle)??e.find(t=>!t.hasCheckbox&&!t.isDetailToggle)??e[0]}paneOf(e){return e.pinned==="left"?"left":e.pinned==="right"?"right":"center"}computeLayout(e){this.viewportWidth=e;let t=0;for(let c of[...this.left,...this.right])c.currentWidth=N(c.manualWidth??c.contentWidth??c.colDef.width??150,this.U(c)),t+=c.currentWidth;let r=Math.max(0,e-t),o=[],n=[];for(let c of this.center)(c.colDef.suppressSizeToFit||c.manualWidth!=null?n:o).push(c);let s=0;for(let c of n)c.currentWidth=N(c.manualWidth??c.contentWidth??c.colDef.width??150,this.U(c)),s+=c.currentWidth;let a=o.map(c=>this.U(c)),l=Math.max(0,r-s),d=this.core.options.columnLayout==="fit"?Pe(a,l):Fr(a,l);o.forEach((c,u)=>{c.currentWidth=d[u]})}U(e){let t=e.colDef;return{width:e.manualWidth??e.contentWidth??t.width,minWidth:t.minWidth,maxWidth:t.maxWidth,flex:e.manualWidth==null?e.flex??void 0:void 0}}setColumnWidth(e,t){return ae(t)?(e.manualWidth=N(t,this.U(e)),e.flex=null,!0):!1}setContentWidth(e,t){return ae(t)?(e.resetWidth(),e.contentWidth=N(t,this.U(e)),!0):!1}setColumnVisibility(e,t){let r=this.getColumn(e);!r||r.hide===!t||(r.hide=!t,this.de())}moveColumn(e,t){let r=this.getColumn(e);if(!r)return!1;let o=this.paneOf(r),n=u=>r.parentGroup?!0:this.paneOf(u)===o,s=r.parentGroup?r.parentGroup.children:this.E,a=s.filter(u=>u instanceof W&&!u.hide&&n(u)),l=a.indexOf(r);if(l<0)return!1;a.splice(l,1);let d=Math.max(0,Math.min(t,a.length));a.splice(d,0,r);let c=[];return s.forEach((u,h)=>{u instanceof W&&!u.hide&&n(u)&&c.push(h)}),c.length!==a.length?!1:(c.forEach((u,h)=>{s[u]=a[h]}),this.columns=this.Je(this.E),this.de(),!0)}setColumnPinned(e,t){let r=this.getColumn(e);!r||!r.movable||(r.pinned=t,this.de())}getColumnState(){return this.columns.map(e=>({colId:e.id,hide:e.hide,width:e.manualWidth??e.currentWidth,flex:e.flex,widthMode:e.manualWidth==null?"auto":"manual",contentWidth:e.contentWidth??void 0,pinned:e.pinned}))}applyColumnState(e){let t=new Map(e.map(r=>[r.colId,r]));for(let r of this.columns){let o=t.get(r.id);o&&this.Di(r,o)}this.Ei(e),this.de()}Di(e,t){typeof t.hide=="boolean"&&(e.hide=t.hide),t.widthMode==="auto"?(e.resetWidth(),ae(t.flex)&&(e.flex=t.flex)):ae(t.flex)?(e.flex=t.flex,e.manualWidth=null):ae(t.width)&&(e.manualWidth=N(t.width,this.U(e)),e.flex=null),ae(t.contentWidth)&&(e.contentWidth=N(t.contentWidth,this.U(e))),e.movable&&(t.pinned==="left"||t.pinned==="right"||t.pinned===null)&&(e.pinned=t.pinned)}Ei(e){let t=new Map;e.forEach((o,n)=>t.set(o.colId,n));let r=o=>o.pinned==="left"?"left":o.pinned==="right"?"right":"center";for(let o of["left","center","right"]){let n=this.E.filter(d=>d instanceof W&&!d.hide&&d.parentGroup===null&&r(d)===o);if(n.length<2)continue;let s=n.filter(d=>d.movable),a=s.slice().sort((d,c)=>(t.get(d.id)??Number.MAX_SAFE_INTEGER)-(t.get(c.id)??Number.MAX_SAFE_INTEGER));if(a.every((d,c)=>d===s[c]))continue;let l=[];this.E.forEach((d,c)=>{d instanceof W&&!d.hide&&d.parentGroup===null&&r(d)===o&&d.movable&&l.push(c)}),l.forEach((d,c)=>{this.E[d]=a[c]})}this.columns=this.Je(this.E)}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.de()}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),n=o>=0?r[o].direction:null,s=n===null?"asc":n==="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 Hr(i){return i==null?"":String(i).toLowerCase()}function tn(i,e,t){let r=Hr(i),o=e.map(n=>{let s=(n.value??"").toLowerCase();switch(n.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 rn(i,e,t){switch(t.match){case"equals":return i===e;case"notEquals":return i!==e;case"lessThan":return i<e;case"lessThanOrEqual":return i<=e;case"greaterThan":return i>e;case"greaterThanOrEqual":return i>=e;case"inRange":return i>=e&&i<=(t.value2??e);default:return!0}}function on(i,e){let t=i==null||i==="";if(e.match==="blank")return t;if(e.match==="notBlank")return!t;if(t)return!1;let r=typeof i=="number"?i:Number(i);if(Number.isNaN(r))return!1;let o=e.value;return o==null||Number.isNaN(o)?!1:rn(r,o,e)}function nn(i,e,t){let r=e.map(o=>on(i,o));return r.length===0?!0:t==="or"?r.some(Boolean):r.every(Boolean)}function Ne(i){if(i==null||i==="")return null;if(i instanceof Date)return isNaN(i.getTime())?null:i.getTime();if(typeof i=="number")return i;let e=Date.parse(String(i));return isNaN(e)?null:e}function sn(i,e,t){let r=e.map(o=>{let n=Ne(i)==null;if(o.match==="blank")return n;if(o.match==="notBlank")return!n;if(n)return!1;let s=Ne(i),a=o.value!=null?Ne(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?Ne(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 an(i,e){return e.length===0?!0:e.some(t=>t==null&&i==null||t===i)}function Vr(i,e){let t=e.type!=="set"&&e.operator==="or"?"or":"and";switch(e.type){case"text":return tn(i,e.conditions,t);case"number":return nn(i,e.conditions,t);case"date":return sn(i,e.conditions,t);case"set":return an(i,e.values);default:return!0}}function Kt(i,e,t,r){if(i.kind==="condition"){let n=e.get(i.colId);return!n||Vr(r(t,n),i.filter)}let o=i.operator==="or"?i.children.some(n=>Kt(n,e,t,r)):i.children.every(n=>Kt(n,e,t,r));return i.not?!o:o}function ln(i,e,t,r){return t?Kt(t.root,new Map(e.map(o=>[o.id,o])),i,r):!0}function qt(i,e,t,r,o,n){for(let s of Object.keys(t)){let a=t[s],l=e.find(c=>c.id===s);if(!l)continue;let d=n(i,l);if(!Vr(d,a))return!1}if(!ln(i,e,r,n))return!1;if(o&&o.trim()!==""){let s=o.trim().toLowerCase().split(/\s+/);for(let a of s)if(!e.some(d=>Hr(n(i,d)).includes(a)))return!1}return!0}var Br=typeof Intl<"u"?new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"}):null;function dn(i,e){let t=i==null||i==="",r=e==null||e==="";return!t&&!r?null:t&&r?0:t?1:-1}function cn(i,e){let t=Number.isNaN(i),r=Number.isNaN(e);return t||r?t===r?0:t?1:-1:i-e}function un(i,e){return i===e?0:i?1:-1}function Fe(i,e){let t=dn(i,e);if(t!==null)return t;if(typeof i=="number"&&typeof e=="number")return cn(i,e);if(i instanceof Date&&e instanceof Date)return i.getTime()-e.getTime();if(typeof i=="boolean"&&typeof e=="boolean")return un(i,e);let r=String(i),o=String(e);return Br?Br.compare(r,o):r.localeCompare(o)}function Ut(i,e,t,r){let o=new Map;for(let l of t)o.set(l.id,l);let n=[],s=[];for(let l of e){let d=o.get(l.colId);d&&(n.push(d.colDef.comparator??Fe),s.push(l.direction))}let a=i.map(l=>({node:l,values:e.map(d=>r(l,o.get(d.colId)))}));return a.sort((l,d)=>{for(let c=0;c<n.length;c++){let u=n[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 Oe(i){return i.filter(e=>typeof e=="number"&&!isNaN(e))}var jt={sum:i=>Oe(i).reduce((e,t)=>e+t,0),avg:i=>{let e=Oe(i);return e.length===0?null:e.reduce((t,r)=>t+r,0)/e.length},count:i=>i.length,min:i=>{let e=Oe(i);return e.length===0?null:Math.min(...e)},max:i=>{let e=Oe(i);return e.length===0?null:Math.max(...e)},first:i=>i.length>0?i[0]:null,last:i=>i.length>0?i[i.length-1]:null};function He(i){let e={...jt,...i??{}};return t=>e[t]}function le(i){if(i.reason instanceof Error)return i.reason;let e=new Error(typeof i.reason=="string"?i.reason:"Block request aborted");return e.name="AbortError",e}function Ve(i){return Number.isFinite(i)?Math.max(1,Math.trunc(i)):1}var Be=class{constructor(e,t,r=4){this.maxBlocks=e;this.onEvict=t;this.maxConcurrentRequests=r;this.b=new Map;this.f=new Map;this.zr=0;this.Bt=0;this.hitCount=0;this.missCount=0;this.evictionCount=0;this.Qe=0;this.maxBlocks=Ve(e),this.maxConcurrentRequests=Ve(r)}configure(e,t=this.maxConcurrentRequests){this.maxBlocks=Ve(e),this.maxConcurrentRequests=Ve(t),this._r(),this.Ze()}peek(e){let t=this.b.get(e);if(t)return t.touchedAt=++this.zr,t}has(e){return this.b.has(e)}load(e,t,r,o=0){if(r?.aborted)return Promise.reject(le(r));let n=this.peek(e);if(n)return this.hitCount++,Promise.resolve(n);let s=this.f.get(e);if(s)return this.hitCount++,s.priority=Math.max(s.priority,o),this.Ze(),this.Wr(e,s,r);this.missCount++;let a=new AbortController,l,d,c=new Promise((p,m)=>{l=p,d=m}),u={controller:a,promise:c,consumers:0,loader:t,priority:o,state:"queued",resolve:l,reject:d};this.f.set(e,u);let h=this.Wr(e,u,r);return this.Ze(),h}purge(){this.Bt++;for(let e of this.f.values())e.controller.abort(),e.state==="queued"&&e.reject(le(e.controller.signal));this.f.clear();for(let[e,t]of this.b)this.onEvict?.(e,t);this.b.clear()}snapshot(){let e=0,t=0;for(let r of this.b.values())e+=r.rows.length;for(let r of this.f.values())r.state==="active"&&t++;return{cachedBlockCount:this.b.size,loadingBlockCount:this.f.size,activeRequestCount:t,queuedRequestCount:Math.max(0,this.f.size-t),cachedRowCount:e,hitCount:this.hitCount,missCount:this.missCount,evictionCount:this.evictionCount}}Ze(){for(;this.Qe<this.maxConcurrentRequests;){let e,t;for(let[r,o]of this.f)o.state!=="queued"||o.controller.signal.aborted||(!t||o.priority>t.priority)&&(e=r,t=o);if(e==null||!t)return;this.Si(e,t)}}Si(e,t){t.state="active",this.Qe++;let r=this.Bt;this.xi(t).then(o=>{r===this.Bt&&!t.controller.signal.aborted&&(this.b.set(e,{rows:o.rows,...o.lastRow==null?{}:{lastRow:o.lastRow},touchedAt:++this.zr}),this._r()),t.resolve(o)},t.reject).finally(()=>{this.Qe=Math.max(0,this.Qe-1),this.f.get(e)===t&&this.f.delete(e),this.Ze()})}xi(e){let{signal:t}=e.controller;return t.aborted?Promise.reject(le(t)):new Promise((r,o)=>{let n=()=>o(le(t));t.addEventListener("abort",n,{once:!0}),Promise.resolve().then(()=>e.loader(t)).then(r,o).finally(()=>{t.removeEventListener("abort",n)})})}Wr(e,t,r){return t.consumers++,new Promise((o,n)=>{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.f.get(e)===t&&(this.f.delete(e),t.controller.abort(r?.reason),t.state==="queued"&&t.reject(le(t.controller.signal))),n(le(r))});r?.addEventListener("abort",l,{once:!0}),t.promise.then(d=>a(()=>o(d)),d=>a(()=>n(d instanceof Error?d:new Error(String(d??"Block request failed")))))})}_r(){for(;this.b.size>this.maxBlocks;){let e=-1,t=Number.POSITIVE_INFINITY;for(let[o,n]of this.b)n.touchedAt<t&&(e=o,t=n.touchedAt);if(e<0)return;let r=this.b.get(e);this.b.delete(e),this.evictionCount++,r&&this.onEvict?.(e,r)}}};function ve(i,e){if(i==null||typeof i!="object")return;let t=i[e];return Array.isArray(t)?t:void 0}var ze=class{constructor(e){this.core=e;this.all=[];this.h=[];this.m=new Map;this.C=[];this.e=new Map;this.filterModel={};this.advancedFilterModel=null;this.quickFilter=null;this.d=new Set;this.g=new Set;this.Ee=[];this.et=new Map;this.Mi=[];this.a=null;this.ce=!1;this.$r=!1;this.ue=0;this.tt=null;this.Se=null;this.rt=null;this.ot=new WeakMap;this.xe=new WeakMap;this.N=new Map;this.Me=new Map;this.ke=0;this.A=new Map;this.F=new Map;this.Ae=new Set;this.j=new Be(12,e=>this.Kr(e));this.Ie=0;this.it=null;this.zt=!1;this.qr=0;this.T=[];this.page=1;this.pageSize=20;this.advancedFilterModel=O(e.options.advancedFilterModel)}resolveRowId(e,t,r){let o=this.core.options.resolveRowId;if(!o)return r;try{let n=o({data:e,index:t,api:this.core.getApi()});if(typeof n=="string"&&n.length>0)return n;this.core.reportError(new Error("rowKey must resolve to a non-empty identifier"),"rowKey",{index:t})}catch(n){this.core.reportError(n,"rowKey",{index:t})}return r}get isTree(){return this.core.options.treeData}get isInfinite(){return this.core.options.datasource!=null}get isBlockDatasource(){return this.isInfinite&&this.core.options.datasourceMode==="block"}getDisplayTotalCount(){if(this.isInfinite){if(this.isBlockDatasource)return this.he();let e=Math.max(0,this.C.length-this.all.length);return(this.a??this.all.length)+e}return this.C.length}getDisplayRevision(){return this.ke}isLoadingInfinite(){return this.$r}startInfinite(e){return!this.isInfinite||e?.aborted?Promise.resolve():(this._t(),this.a=null,this.ce=!1,this.all=[],this.h=[],this.e.clear(),this.d.clear(),this.core.undoService.clear(),this.refreshPipeline(),this.core.requestUpdate({data:!0}),this.isBlockDatasource?(this.j.configure(this.core.options.maxBlocksInCache,this.core.options.datasourceMaxConcurrentRequests),this.Wt(0,e)):this.Ur(0,void 0,e))}reloadInfinite(e){return this.isInfinite?this.startInfinite(e):Promise.resolve()}setInfiniteLoading(e){this.$r=e,this.core.skeleton.setInfiniteLoading(e,this.core.getLocaleText("loading"))}Ur(e,t,r){if(!this.isInfinite||this.ce||this.a!=null&&e>=this.a)return Promise.resolve();let o=this.core.options.datasource,n=this.core.options.blockSize,s=t??e+n;if(s<=e)return Promise.resolve();let a=++this.ue,l=new AbortController,d=()=>l.abort(r?.reason);return r?.addEventListener("abort",d,{once:!0}),this.tt=l,this.ce=!0,this.setInfiniteLoading(!0),new Promise(c=>{let u=!1,h=0;this.rt=c;let p=v=>{u||(u=!0,r?.removeEventListener("abort",d),a===this.ue&&(this.ce=!1,this.tt=null,this.rt=null,this.setInfiniteLoading(!1),v!=null&&v?.name!=="AbortError"&&this.core.reportError(v,"datasource.getRows",{startRow:e,endRow:s})),c())},m=()=>{if(u||a!==this.ue||l.signal.aborted||this.core.isDestroyed()){p();return}h++;let v=!1,g=y=>{if(!(v||u)){if(v=!0,a!==this.ue||l.signal.aborted||this.core.isDestroyed()){p();return}if(h<=this.core.options.datasourceRetryCount){let b=this.jr(h);this.Se=setTimeout(()=>{this.Se=null,m()},b);return}p(y??new Error("Datasource request failed"))}};try{let y=o.getRows({startRow:e,endRow:s,sortModel:this.core.columnModel.getSortModel(),filterModel:this.getFilterModel(),advancedFilterModel:this.getAdvancedFilterModel(),quickFilterText:this.quickFilter,signal:l.signal,onSuccess:(b,T)=>{if(v||u)return;if(v=!0,a!==this.ue||this.core.isDestroyed()||l.signal.aborted){p();return}let x=b??[];typeof T=="number"&&T>=0?this.a=T:x.length<s-e&&(this.a=e+x.length);let w=this.all.length===0;this.ki(x),p(),this.refreshPipeline(),this.core.requestUpdate({data:!0}),w&&this.core.relayout(),this.core.headerRenderer.refreshSelectAllCheckbox()},fail:g});y&&typeof y.catch=="function"&&y.catch(g)}catch(y){g(y)}};m()})}_t(){this.ue++,this.Se!=null&&clearTimeout(this.Se),this.Se=null,this.tt?.abort(),this.tt=null,this.ce=!1,this.setInfiniteLoading(!1),this.rt?.(),this.rt=null,this.j.purge(),this.A.clear(),this.F.clear(),this.Ae.clear()}ki(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.e.has(o)){this.core.reportError(new Error(`Duplicate row id: ${o}`),"datasource.getRows",{rowId:o});continue}let n={id:o,data:t,rowIndex:-1,selected:this.core.selectionService.isSelected(o)};this.all.push(n),this.e.set(o,n),this.h.push(n)}}Wt(e,t,r=0){if(!this.isBlockDatasource||e<0)return Promise.resolve();if(t?.aborted)return Promise.reject(this.Yr(t.reason));let o=this.core.options.blockSize,n=e*o;if(n>=this.he())return Promise.resolve();let s=this.a==null?n+o:Math.min(this.a,n+o),a=this.j.load(e,l=>this.Ai(n,s,l),t,r);return this.setInfiniteLoading(this.all.length===0&&this.j.snapshot().loadingBlockCount>0),a.then(l=>{t?.aborted||this.core.isDestroyed()||!this.isBlockDatasource||this.Ae.has(e)||(this.Ii(e,l),this.refreshPipeline(),this.core.requestUpdate({data:!0}),this.core.headerRenderer.refreshSelectAllCheckbox())}).catch(l=>{throw l?.name!=="AbortError"&&this.core.reportError(l,"datasource.getRows",{startRow:n,endRow:s}),l}).finally(()=>{this.setInfiniteLoading(this.all.length===0&&this.j.snapshot().loadingBlockCount>0)})}Ai(e,t,r){let o=this.core.options.datasource;return new Promise((n,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.Yr(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=v=>{if(!(p||d)){if(p=!0,r.aborted||this.core.isDestroyed()){u();return}if(a<=this.core.options.datasourceRetryCount){let g=this.jr(a);l=setTimeout(()=>{l=null,h()},g)}else c(v)}};try{let v=o.getRows({startRow:e,endRow:t,sortModel:this.core.columnModel.getSortModel(),filterModel:this.getFilterModel(),advancedFilterModel:this.getAdvancedFilterModel(),quickFilterText:this.quickFilter,signal:r,onSuccess:(g,y)=>{p||d||(p=!0,d=!0,r.removeEventListener("abort",u),n({rows:g??[],...typeof y=="number"&&y>=0?{lastRow:y}:{}}))},fail:m});v&&typeof v.catch=="function"&&v.catch(m)}catch(v){m(v)}};h()})}Ii(e,t){let r=this.core.options.blockSize,o=e*r;this.Kr(e),typeof t.lastRow=="number"&&t.lastRow>=0?this.a=t.lastRow:t.rows.length<r&&(this.a=o+t.rows.length),t.rows.forEach((n,s)=>{if(n==null)return;let a=o+s;if(this.a!=null&&a>=this.a)return;let l=this.resolveRowId(n,a,`block-${a}`),d=this.e.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:n,rowIndex:a,selected:this.core.selectionService.isSelected(l)};this.A.set(a,c),this.F.delete(a),this.e.set(l,c),this.xe.set(c,a+1)}),this.Xr(),this.Ae.add(e)}Kr(e){this.Ae.delete(e);let t=this.core.options.blockSize,r=e*t;for(let o=r;o<r+t;o++){let n=this.A.get(o);n&&(this.A.delete(o),this.e.get(n.id)===n&&this.e.delete(n.id))}this.Xr()}Xr(){this.all=[...this.A.entries()].sort(([e],[t])=>e-t).map(([,e])=>e),this.h=this.all}he(){if(this.a!=null)return this.a;if(this.core.options.datasourceRowCount!=null)return this.core.options.datasourceRowCount;if(this.A.size===0)return this.core.options.blockSize;let e=0;for(let t of this.A.keys())e=Math.max(e,t+1);return e+this.core.options.blockSize}Li(e){let t=this.F.get(e);if(!t&&(t={id:`__mach_loading_${e}`,data:null,rowIndex:e,selected:!1,loading:!0},this.F.set(e,t),this.F.size>2e3)){let r=this.F.keys().next().value;r!=null&&this.F.delete(r)}return t}Yr(e){if(e instanceof Error)return e;let t=new Error(typeof e=="string"?e:"Operation aborted");return t.name="AbortError",t}jr(e){let t=Math.min(this.core.options.datasourceRetryDelay*2**Math.max(0,e-1),3e4),r=this.core.options.datasourceRetryJitter;return Math.max(0,Math.round(t*(1+(Math.random()*2-1)*r)))}checkInfiniteScroll(e){if(this.isBlockDatasource){this.Pi(e);return}if(!this.isInfinite||this.ce)return;let t=this.all.length;if(this.a!=null&&t>=this.a)return;let r=this.core.options.infiniteBufferRows;if(e+r<t&&e<t)return;let o=this.core.options.blockSize,n=this.a==null?t+o:Math.min(this.a,t+o);this.Ur(t,n)}Pi(e){if(e<0)return;let t=this.core.options.blockSize,r=Math.floor(e/t),o=this.core.options.blockPrefetch,n=r<this.qr?-1:1;this.qr=r;for(let s=0;s<=o;s++){let a=s===0?[r]:[r+n*s,r-n*s];for(let l of a)l<0||l*t>=this.he()||this.Wt(l,void 0,o-s+1).catch(()=>{})}}onServerParamsChanged(){return this.reloadInfinite().catch(()=>{})}onDatasourceChanged(){return this._t(),this.isInfinite?this.startInfinite().catch(()=>{}):(this.a=null,this.setRowData(this.core.options.rowData),this.core.requestUpdate({data:!0}),Promise.resolve())}destroy(){this._t(),this.Jr(),this.$t(),this.core.options.dataProcessor?.destroy?.()}ensureRowsLoaded(e,t,r){if(!this.isBlockDatasource)return Promise.resolve();let o=this.core.options.blockSize,n=Math.max(0,Math.trunc(e)),s=Math.min(this.he(),Math.max(n,Math.trunc(t))),a=Math.floor(n/o),l=Math.max(a,Math.floor(Math.max(n,s-1)/o)),d=[];for(let c=a;c<=l;c++)d.push(this.Wt(c,r,100));return Promise.all(d).then(()=>{})}purgeDatasourceCache(){this.isBlockDatasource&&(this.j.purge(),this.A.clear(),this.F.clear(),this.Ae.clear(),this.all=[],this.h=[],this.e.clear(),this.refreshPipeline(),this.core.requestUpdate({data:!0}))}getDatasourceCacheSnapshot(){return this.j.snapshot()}setRowData(e){this.Jr(),this.core.changeTracker.clear();let t=this.core.options.resolveRowId,r=this.core.options.childrenKey,o=[],n=[],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 v=this.isTree?ve(c,r):void 0,g={id:m,data:c,rowIndex:-1,selected:!1,treeChildrenLoaded:Array.isArray(v)};if(this.ot.set(g,u),o.push(g),s.set(m,g),h!=null){let y=a.get(h)??[];y.push(m),a.set(h,y)}else n.push(g);if(this.isTree&&Array.isArray(v))for(let y of v)y!=null&&d(y,u+1,m);return g};(e??[]).forEach(c=>{c!=null&&d(c,0,null)}),this.all=o,this.h=n,this.m=a,this.e=s,this.core.undoService.clear();for(let c of[...this.d])s.has(c)||this.d.delete(c);if(this.core.options.defaultExpandAll)for(let c of o)this.getChildrenCount(c.id)>0&&this.d.add(c.id);this.core.selectionService.onRowsRebuilt(t!=null),this.refreshPipeline()}getChildrenIds(e){return this.m.get(e)??[]}getChildrenCount(e){return this.m.get(e)?.length??0}hasChildren(e){return this.getChildrenCount(e)>0}isTreeRowLoading(e){return this.e.get(e)?.treeLoading===!0}Jr(){for(let e of this.N.values())e.abort();this.N.clear(),this.Me.clear()}loadTreeChildren(e,t=!1){let r=this.e.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.e.get(l)?.data;return d==null?[]:[d]}));let n=this.Me.get(e);if(n&&!t)return n;this.N.get(e)?.abort();let s=new AbortController;this.N.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.Gi(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.N.get(e)===s&&(this.N.delete(e),this.Me.delete(e),r.treeLoading=!1,this.core.requestUpdate({data:!0}))});return this.Me.set(e,a),a}Gi(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.Ni(t,r);for(let s of r)this.N.get(s)?.abort(),this.N.delete(s),this.Me.delete(s),this.m.delete(s),this.e.delete(s),this.d.delete(s);this.m.delete(e.id);let n=this.getTreeDepth(e)+1;for(let s of t)s!=null&&this.Kt(e,s,n);this.Qr(),this.core.selectionService.onRowsRebuilt(this.core.options.resolveRowId!=null),this.refreshPipeline(),this.core.requestUpdate({data:!0})}Ni(e,t){let r=this.core.options.resolveRowId,o=r?new Set([...this.e.keys()].filter(l=>!t.has(l))):null,n=new WeakSet,s=[...e],a=0;for(;s.length>0;){let l=s.pop();if(l==null)continue;if(typeof l=="object"){if(n.has(l))throw new TypeError("[MachTable] Lazy tree children contain a cyclic object graph.");n.add(l)}if(r&&o){let c=r({data:l,index:a++,api:this.core.getApi()});if(typeof c!="string"||c.length===0)throw new TypeError("[MachTable] rowKey must resolve to a non-empty identifier for lazy tree children.");if(o.has(c))throw new Error(`Duplicate row id: ${c}`);o.add(c)}let d=ve(l,this.core.options.childrenKey);d&&s.push(...d)}}applyTransaction(e,t=!0){let r=this.core.options.resolveRowId,o=[],n=[];if(e.remove?.length){let a=new Set,l=new Set,d=u=>{if(r){let p=[this.resolveRowId(u,-1,`__missing_remove_${this.core.nextId()}`)];for(;p.length>0;){let m=p.pop();if(!a.has(m)){a.add(m);for(let v of this.m.get(m)??[])p.push(v)}}}else{let h=[u];for(;h.length>0;){let p=h.pop();l.add(p);let m=this.isTree?ve(p,this.core.options.childrenKey):void 0;if(m)for(let v of m)h.push(v)}}};e.remove.forEach(d),this.all=this.all.filter(u=>{let h=a.has(u.id)||u.data!=null&&l.has(u.data);return h&&(n.push(u.id),this.e.delete(u.id),this.m.delete(u.id)),!h});let c=new Set(this.all);this.h=this.h.filter(u=>c.has(u))}if(e.update?.length)for(let a of e.update){let l;r?l=this.e.get(this.resolveRowId(a,-1,`__missing_update_${this.core.nextId()}`)):l=this.all.find(d=>d.data===a),l&&(l.data=a,n.push(l.id),this.core.bodyRenderer.invalidateRowHeight(l),o.push(l))}if(e.add?.length){let a=e.addIndex!=null?Math.max(0,Math.min(e.addIndex,this.h.length)):this.h.length,l=[];e.add.forEach((d,c)=>{let u=this.resolveRowId(d,a+c,`add-${this.core.nextId()}`);if(this.e.has(u)){this.core.reportError(new Error(`Duplicate row id: ${u}`),"transaction.add",{rowId:u});return}let h={id:u,data:d,rowIndex:-1,selected:!1};this.e.set(u,h),this.ot.set(h,0);let p=this.isTree?ve(d,this.core.options.childrenKey):void 0;if(p)for(let m of p)m!=null&&this.Kt(h,m,1);l.push(h)}),this.h.splice(a,0,...l),this.Qr()}let s=this.Fi(e);return t&&(s?this.refreshPipeline():o.length>0&&this.Zr()),this.core.changeTracker.clearRows(n),{pipelineChanged:s,updatedRowIds:o.map(a=>a.id)}}applyTransactions(e){if(e.length===0)return{pipelineChanged:!1,updatedRowIds:[]};let t=!1,r=new Set;for(let o of e){let n=this.applyTransaction(o,!1);t||(t=n.pipelineChanged);for(let s of n.updatedRowIds)r.add(s)}return t?this.refreshPipeline():r.size>0&&this.Zr(),{pipelineChanged:t,updatedRowIds:[...r]}}Fi(e){return e.add?.length||e.remove?.length?!0:e.update?.length?this.isTree||this.core.options.masterDetail||this.core.columnModel.getRowGroupColumns().length>0||!this.core.options.manualFiltering&&this.isFilterPresent()||!this.core.options.manualSorting&&this.core.columnModel.getSortModel().length>0||this.core.options.getRowHeight?!0:this.core.columnModel.getOrderedVisible().some(t=>t.colDef.autoHeight===!0||t.colDef.autoRowSpan===!0||t.colDef.rowSpan!=null):!1}Zr(){this.core.emit("modelUpdated",{rowCount:this.T.length})}Kt(e,t,r){let o=this.resolveRowId(t,-1,`add-${this.core.nextId()}`);if(this.e.has(o)){this.core.reportError(new Error(`Duplicate row id: ${o}`),"transaction.add",{rowId:o});return}let n=ve(t,this.core.options.childrenKey),s={id:o,data:t,rowIndex:-1,selected:!1,treeChildrenLoaded:Array.isArray(n)};this.e.set(o,s),this.ot.set(s,r);let a=this.m.get(e.id)??[];if(a.push(s.id),this.m.set(e.id,a),!!n)for(let l of n)l!=null&&this.Kt(s,l,r+1)}Qr(){this.all=[];let e=t=>{this.all.push(t),this.e.has(t.id)||this.e.set(t.id,t);for(let r of this.m.get(t.id)??[]){let o=this.e.get(r);o&&e(o)}};for(let t of this.h)e(t)}setFilterModel(e){let t=JSON.stringify(this.filterModel),r=new Set(this.core.columnModel.getColumns().map(o=>o.id));return this.filterModel=q(e,r),JSON.stringify(this.filterModel)!==t}getFilterModel(){return{...this.filterModel}}setAdvancedFilterModel(e){let t=new Set(this.core.columnModel.getColumns().map(n=>n.id)),r=O(e,t),o=JSON.stringify(this.advancedFilterModel);return this.advancedFilterModel=r,this.core.options.advancedFilterModel=r,JSON.stringify(r)!==o}getAdvancedFilterModel(){return O(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.Oi(e);return}if(this.Hi(e))return;let o;if(this.isTree)o=this.Vi(t,r);else{o=this.all,this.isFilterPresent()&&!this.core.options.manualFiltering&&(o=o.filter(d=>qt(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=Ut(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.Bi(o,l);else if(this.core.options.masterDetail){let d=[];for(let c of o)d.push(c),this.d.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 n=0;o.forEach((s,a)=>{s.rowIndex=a,!s.isDetail&&!s.isGroup&&(n++,this.xe.set(s,n))}),this.T=o,this.pe(),this.eo(r),this.core.emit("modelUpdated",{rowCount:o.length}),this.core.performanceMonitor.recordModel(e)}Oi(e){this.all.forEach((t,r)=>{this.isBlockDatasource||(t.rowIndex=r),this.xe.set(t,this.isBlockDatasource?t.rowIndex+1:r+1)}),this.C=this.all,this.T=this.all,this.et.clear(),this.ke++,this.core.emit("modelUpdated",{rowCount:this.all.length}),this.core.performanceMonitor.recordModel(e)}Hi(e){let t=this.zt;return this.zt=!1,!t&&this.zi()?(this._i(e),!0):(this.$t(),!1)}zi(){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}_i(e){this.$t();let t=this.core.options.dataProcessor;if(!t)return;let r=++this.Ie,o=new AbortController;this.it=o;let n=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:n.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.Ie||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.e.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.xe.set(p,m+1)}),this.T=u,this.pe();let h=(p,m)=>this.core.getCellValue(p,m);this.eo(h),this.core.emit("modelUpdated",{rowCount:u.length}),this.core.performanceMonitor.recordModel(e),this.core.requestUpdate({data:!0})}).catch(d=>{r!==this.Ie||o.signal.aborted||this.core.isDestroyed()||(this.core.reportError(d,"dataProcessor.process"),this.zt=!0,this.refreshPipeline(),this.core.requestUpdate({data:!0}))}).finally(()=>{r===this.Ie&&(this.it=null)})}$t(){this.Ie++,this.it?.abort(),this.it=null}get paginationActive(){return this.core.options.paginationEnabled&&!this.isInfinite}pe(){if(!this.paginationActive){this.C=this.T,this.ke++;return}let e=this.Le(),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.T.forEach((n,s)=>{n.rowIndex=s}),this.C=this.T,this.ke++;return}let r=(this.page-1)*e,o=this.T.slice(r,r+e);o.forEach((n,s)=>{n.rowIndex=s}),this.C=o,this.ke++}Le(){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.T.length}getPageCount(){return this.paginationActive?Math.max(1,Math.ceil(this.getTotalRowCount()/this.Le())):1}getPipelineRows(){return this.T}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.pe(),this.core.requestUpdate({data:!0}),this.core.bodyRenderer.scrollToIndex(0,"top"),t||this.nt())}setPageSize(e){if(!this.paginationActive)return;let t=Math.max(1,Math.round(e)||this.Le()),r=(this.page-1)*this.Le();this.core.options.paginationPageSize=t,this.pageSize=t,this.page=Math.floor(r/t)+1,this.core.options.paginationPage=this.page,this.pe(),this.core.requestUpdate({data:!0}),this.nt()}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.pe(),this.core.requestUpdate({data:!0}),this.nt())}onPaginationOptionsChanged(){this.paginationActive&&(this.page=this.core.options.paginationMode==="server"?this.core.options.paginationPage:1,this.pe(),this.core.requestUpdate({data:!0}),this.nt())}nt(){this.core.emit("paginationChanged",{page:this.getCurrentPage(),pageSize:this.Le(),pageCount:this.getPageCount(),total:this.getTotalRowCount()})}Vi(e,t){let r=this.core.options.manualSorting?[]:this.core.columnModel.getSortModel(),o=new Map,n=this.isFilterPresent()&&!this.core.options.manualFiltering,s=d=>{let c=o.get(d.id);if(c!==void 0)return c;let u=!0;if(n){u=qt(d,e,this.filterModel,this.advancedFilterModel,this.quickFilter,t);for(let h of this.m.get(d.id)??[]){let p=this.e.get(h);p&&s(p)&&(u=!0)}}return o.set(d.id,u),u},a=[],l=d=>{let c=d;r.length>0&&(c=Ut(d,r,e,t));for(let u of c)if(s(u)&&(a.push(u),this.d.has(u.id))){let h=(this.m.get(u.id)??[]).map(p=>this.e.get(p)).filter(p=>p!=null);l(h)}};return l(this.h),a}Wi(){let e=this.Mi,t=0;for(let r of this.C)!r.isDetail&&!r.isGroup&&(e[t++]=r);return e.length=t,e}$i(e,t,r,o){let n=t.colDef.rowSpan;if(!n)return 1;try{let s=n({api:this.core.getApi(),colDef:t.colDef,column:t,node:e,data:e.data,value:r,rowIndex:e.rowIndex});return Math.max(1,Math.min(Math.round(s)||1,o))}catch(s){return this.core.reportError(s,"rowSpan",{colId:t.id,rowId:e.id}),1}}Ki(e,t,r,o,n){if(!r.colDef.autoRowSpan||o==null||o==="")return 1;let s=1;for(;t+s<e.length&&Fe(o,n(e[t+s],r))===0;)s++;return s}qi(e,t,r){let o=new Int32Array(e.length),n=0;for(;n<e.length;){let s=e[n],a=r(s,t),l=t.colDef.rowSpan?this.$i(s,t,a,e.length-n):this.Ki(e,n,t,a,r);o[n]=l;for(let d=1;d<l;d++)o[n+d]=-1;n+=l}return o}eo(e){if(this.et.clear(),this.isTree||this.core.options.masterDetail||this.core.columnModel.getRowGroupColumns().length>0)return;let t=this.core.columnModel.getOrderedVisible().filter(o=>o.colDef.rowSpan!=null||o.colDef.autoRowSpan===!0);if(t.length===0)return;let r=this.Wi();if(r.length!==0)for(let o of t)this.et.set(o.id,this.qi(r,o,e))}getSpanInfo(e){return this.et.get(e)}getRowSeq(e){return this.xe.get(e)??0}getTreeDepth(e){return this.ot.get(e)??0}Bi(e,t){let r=He(this.core.options.aggFuncs),o=this.core.columnModel.getAggColumns();this.Ee=[];let n=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 v of a){let g=this.core.getCellValue(v,c),y=g==null?"(\u7A7A)":String(g),b=u.get(y);b||(b=[],u.set(y,b),h.push(y)),b.push(v)}h.sort((v,g)=>v.localeCompare(g,void 0,{numeric:!0,sensitivity:"base"}));let p=[],m=[];for(let v of h){let g=u.get(v),y=`${d}/g${l}:${v}`;this.Ee.push(y);let b=s(g,l+1,y),T={id:y,data:null,rowIndex:-1,selected:!1,isGroup:!0,groupLevel:l,groupKey:v,leafNodes:b.leaves,aggValues:n(b.leaves)};p.push(T),this.g.has(y)&&p.push(...b.display),m.push(...b.leaves)}return{display:p,leaves:m}};return s(e,0,"").display}isRowExpandable(e){if(this.isTree){if(this.hasChildren(e.id)||e.treeLoading)return!0;if(e.treeChildrenLoaded||!e.data||!this.core.options.loadTreeChildren)return!1;let r=this.core.options.isTreeRowExpandable;if(!r)return!1;try{return r({data:e.data,node:e,api:this.core.getApi()})}catch(o){return this.core.reportError(o,"isTreeRowExpandable",{rowId:e.id}),!1}}if(!this.core.options.masterDetail)return!1;let t=this.core.options.isRowExpandable;if(t)try{return t({data:e.data,node:e,api:this.core.getApi()})}catch(r){return this.core.reportError(r,"isRowExpandable",{rowId:e.id}),!1}return!0}isRowExpanded(e){return this.d.has(e)}getExpandedRowIds(){return[...this.d]}getExpandedGroupIds(){return[...this.g]}restoreExpansion(e,t){this.d=new Set(e.filter(r=>this.e.has(r))),this.g=new Set(t)}expandRow(e){return this.qt(e,!0)}collapseRow(e){return this.qt(e,!1)}toggleDetail(e){return this.qt(e,!this.d.has(e))}qt(e,t){let r=this.e.get(e);return!r||t&&!this.isRowExpandable(r)?!1:(t===this.d.has(e)||(t?this.d.add(e):this.d.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.d.has(t.id)&&this.isRowExpandable(t)&&(this.d.add(t.id),e=!0);e&&(this.refreshPipeline(),this.core.requestUpdate({data:!0}))}collapseAllDetails(){this.d.size!==0&&(this.d.clear(),this.refreshPipeline(),this.core.requestUpdate({data:!0}))}toggleGroup(e){return this.setGroupExpanded(e,!this.g.has(e))}isGroupExpanded(e){return this.g.has(e)}getGroupNode(e){return this.C.find(t=>t.isGroup&&t.id===e)}expandAllGroups(){if(this.Ee.length===0)return;let e=!1;for(let t of this.Ee)this.g.has(t)||(this.g.add(t),e=!0);e&&(this.refreshPipeline(),this.core.requestUpdate({data:!0}))}collapseAllGroups(){this.g.size!==0&&(this.g.clear(),this.refreshPipeline(),this.core.requestUpdate({data:!0}))}setGroupExpanded(e,t){return!this.Ee.includes(e)||t===this.g.has(e)||(t?this.g.add(e):this.g.delete(e),this.refreshPipeline(),this.core.requestUpdate({data:!0})),t}canReorderRows(){return!this.isTree&&!this.isInfinite&&!this.core.options.dataProcessor&&this.core.options.paginationMode!=="server"&&this.core.columnModel.getSortModel().length===0&&this.core.columnModel.getRowGroupColumns().length===0}reorderRowsByDisplayed(e,t){if(!this.canReorderRows()||!Number.isInteger(e)||!Number.isInteger(t))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 n=this.all.indexOf(r),s=this.all.indexOf(o);return n<0||s<0||n===s?!1:(this.all.splice(n,1),this.all.splice(s,0,r),this.refreshPipeline(),this.core.requestUpdate({data:!0}),!0)}getAllNodes(){return this.all}getRootNodes(){return this.h}getDisplayedRows(){return this.C}getDisplayedRowCount(){return this.isBlockDatasource?this.he():this.C.length}getDisplayedRow(e){return this.isBlockDatasource?e<0||e>=this.he()?void 0:this.A.get(e)??this.Li(e):this.C[e]}getNodeById(e){return this.e.get(e)}forEachNode(e){this.all.forEach(e)}forEachNodeAfterFilterAndSort(e){let t=0;for(let r of this.T)r.isDetail||r.isGroup||e(r,t++)}};var _e=class{constructor(e){this.core=e;this.n=new Set;this.I=null;this.Pe=new Set}isSelected(e){return this.n.has(e)}isIndeterminate(e){return this.Pe.has(e)}isSelectable(e){if(e.loading)return!1;let t=this.Ui(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}}Ui(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.n.has(e.id))}getSelectedRows(){return this.getSelectedNodes().filter(e=>e.data!=null).map(e=>e.data)}getSelectedIds(){return[...this.n]}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.R(r,!0)}onRowsRebuilt(e){if(!e)this.n.clear(),this.I=null;else{let t=new Set(this.core.rowModel.getAllNodes().map(r=>r.id));for(let r of[...this.n])t.has(r)||this.n.delete(r);this.I!=null&&!t.has(this.I)&&(this.I=null)}for(let t of this.core.rowModel.getAllNodes())t.selected=this.n.has(t.id);this.to()}getGroupSelectionState(e){let t=e.leafNodes??[];if(t.length===0)return{all:!1,some:!1};let r=0,o=0;for(let n of t)this.isSelectable(n)&&(r++,this.n.has(n.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.R(r.map(o=>({node:o,selected:t})))}setNodeSelected(e,t,r=!1){this.R([{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)}ji(e,t){let r=t==="single";this.R([{node:e,selected:r?!0:!e.selected,clearOthers:r}]),this.I=e.id}Yi(e,t,r){return!r||!t.ctrlKey&&!t.metaKey?!1:(this.R([{node:e,selected:!e.selected}]),this.I=e.id,!0)}Xi(e,t,r){if(!r||!t.shiftKey||this.I==null)return!1;let o=this.core.rowModel.getNodeById(this.I);if(!o||o.rowIndex<0||e.rowIndex<0)return!1;let n=Math.min(o.rowIndex,e.rowIndex),s=Math.max(o.rowIndex,e.rowIndex),a=[];for(let l=n;l<=s;l++){let d=this.core.rowModel.getDisplayedRow(l);d&&!d.isDetail&&!d.isGroup&&this.isSelectable(d)&&a.push({node:d,selected:!0})}return this.R(a),!0}onRowClick(e,t,r){let o=this.core.options.rowSelection;if(o==="none"||!this.isSelectable(e))return;if(r){this.ji(e,o);return}let n=o==="multiple";this.Yi(e,t,n)||this.Xi(e,t,n)||(this.R([{node:e,selected:!0,clearOthers:!0}]),this.I=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(n=>!n.isDetail&&!n.isGroup&&this.isSelectable(n));if(o.length!==0){if(t==="single"){this.R([{node:o[0],selected:!0,clearOthers:!0}]);return}this.R(o.map(n=>({node:n,selected:!0})))}}deselectAll(){this.R([],!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.n.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,n)=>o+(this.n.has(n.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.R(e,t)}Ji(e,t,r){!t&&!e.some(o=>o.clearOthers)||(this.n=t?new Set:new Set(e.filter(o=>o.selected).flatMap(o=>r?this.ro(o.node):[o.node.id])))}Qi(e,t){for(let r of e){if(!this.isSelectable(r.node))continue;let o=t?this.ro(r.node):[r.node.id];for(let n of o)r.selected?this.n.add(n):this.n.delete(n)}}Zi(e){let t=new Set;for(let r of new Set([...e,...this.n]))e.has(r)!==this.n.has(r)&&t.add(r);return t}en(e,t,r){let o=[],n=new Set([...e,...r,...this.Pe]);for(let s of this.core.rowModel.getAllNodes()){let a=this.n.has(s.id);s.selected=a,(n.has(s.id)||t.get(s.id)!==a)&&s.rowIndex>=0&&o.push(s.rowIndex)}return o}R(e,t=!1){let r=new Set(this.n),o=this.core.rowModel.isTree&&this.core.options.autoCheckedChildren;this.Ji(e,t,o),this.Qi(e,o);let n=this.Zi(r),s=new Map;for(let d of this.core.rowModel.getAllNodes())s.set(d.id,d.selected);let a=new Set(this.Pe);this.to();let l=this.en(n,s,a);n.size>0&&(this.core.bodyRenderer.refreshRows(l),this.core.headerRenderer.refreshSelectAllCheckbox(),this.core.emit("selectionChanged",{selectedNodes:this.getSelectedNodes(),selectedRows:this.getSelectedRows()}))}ro(e){let t=[e.id],r=o=>{for(let n of this.core.rowModel.getChildrenIds(o))t.push(n),r(n)};return r(e.id),t}to(){if(this.Pe.clear(),!this.core.rowModel.isTree)return;let e=t=>{let r=this.core.rowModel.getChildrenIds(t);if(r.length===0)return{all:this.n.has(t),some:this.n.has(t)};let o=!0,n=!1;for(let s of r){let a=e(s);a.all?n=!0:(a.some&&(n=!0),o=!1)}return n&&!o&&this.Pe.add(t),o?this.n.add(t):this.n.delete(t),{all:o,some:n}};for(let t of this.core.rowModel.getRootNodes())e(t.id);for(let t of this.core.rowModel.getAllNodes())t.selected=this.n.has(t.id)}};var We=class{constructor(e){this.core=e;this.active=null;this.D=0;this.O=0;this.S=null;this.Y=null;this.H=e=>{let t=this.jt(e);t&&(this.O=this.ao(t,e.clientX),t.didResize||(t.didResize=Math.abs(this.O-t.startWidth)>=.5),!this.D&&(this.D=requestAnimationFrame(()=>{this.D=0,this.rn()})))};this.x=e=>{let t=this.jt(e);t&&(this.O=this.ao(t,e.clientX),t.didResize||(t.didResize=Math.abs(this.O-t.startWidth)>=.5),this.nn(t))};this.X=e=>{this.jt(e)&&this.cancelResize()};this.oo=()=>{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.O=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.H),window.addEventListener("pointerup",this.x,!0),window.addEventListener("pointercancel",this.X,!0),r.addEventListener("lostpointercapture",this.oo);try{r.setPointerCapture?.(e.pointerId)}catch{}this.core.skeleton.root.classList.add("mach-root--resizing"),r.classList.add("mach-header-resize--active"),this.tn(this.active)}cancelResize(e=!0){let t=this.active;t&&(this.active=null,this.Ut(),this.no(t),e&&(t.column.manualWidth=t.startManualWidth,t.column.flex=t.startFlex,this.core.relayoutColumns()),this.core.skeleton.root.classList.remove("mach-root--resizing"),this.so(t))}nn(e){this.active=null,this.Ut(),e.didResize&&(Math.abs(this.O-e.startWidth)<.5?(e.column.manualWidth=e.startManualWidth,e.column.flex=e.startFlex):this.core.columnModel.setColumnWidth(e.column,this.O),this.core.relayoutColumns()),this.no(e);try{e.handle.releasePointerCapture?.(e.pointerId)}catch{}this.core.skeleton.root.classList.remove("mach-root--resizing"),this.so(e),e.didResize&&this.core.commitColumnWidths([e.column])}rn(){let e=this.active;!e||!this.core.columnModel.setColumnWidth(e.column,this.O)||(this.core.relayoutColumns(),this.Ge(e),this.core.emitColumnResize(e.column,!1))}tn(e){this.S=document.createElement("div"),this.S.className="mach-column-resize-guide",this.S.setAttribute("aria-hidden","true"),this.Y=document.createElement("span"),this.Y.className="mach-column-resize-label",this.S.appendChild(this.Y),this.core.skeleton.root.appendChild(this.S),this.Ge(e)}Ge(e){if(!this.S||!this.Y)return;let t=this.core.skeleton.root,r=t.getBoundingClientRect(),o=e.handle.parentElement.getBoundingClientRect(),n=Math.max(0,Math.min(t.clientWidth,o.right-r.left-t.clientLeft)),s=Math.max(32,Math.min(t.clientWidth-32,n));this.S.style.left=`${n}px`,this.S.style.top=`${Math.max(0,o.top-r.top-t.clientTop)}px`,this.Y.style.left=`${s-n}px`,this.Y.textContent=`${Math.round(e.column.currentWidth)} px`}so(e){e.handle.classList.remove("mach-header-resize--active"),this.S?.remove(),this.S=null,this.Y=null}ao(e,t){let r=Number.isFinite(t)?t:e.startX;return e.startWidth+r-e.startX}jt(e){let t=this.active;return t&&e.pointerId===t.pointerId?t:null}Ut(){this.D&&cancelAnimationFrame(this.D),this.D=0}no(e){window.removeEventListener("pointermove",this.H),window.removeEventListener("pointerup",this.x,!0),window.removeEventListener("pointercancel",this.X,!0),e.handle.removeEventListener("lostpointercapture",this.oo)}destroy(){this.cancelResize(!1),this.Ut(),this.core.skeleton.root?.classList.remove("mach-root--resizing")}};function f(i,e,t){let r=document.createElement(i);if(e&&(r.className=e),t)for(let o of Object.keys(t))r.setAttribute(o,t[o]);return r}var hn=["--mach-font-family","--mach-font-size","--mach-font-size-sm","--mach-header-font-weight","--mach-cell-padding","--mach-header-h","--mach-primary","--mach-primary-weak","--mach-success","--mach-warning","--mach-danger","--mach-info","--mach-border-color","--mach-border-width","--mach-header-bg","--mach-header-fg","--mach-body-bg","--mach-body-fg","--mach-row-hover-bg","--mach-radius-sm","--mach-radius","--mach-radius-lg","--mach-shadow-sm","--mach-shadow","--mach-transition","--mach-z-popup","--mach-z-menu"];function L(i,e){if(i.classList.add("mach-portal"),!e)return;let t=window.getComputedStyle(e);for(let r of hn){let o=t.getPropertyValue(r).trim();o&&i.style.setProperty(r,o)}i.style.colorScheme=t.colorScheme}function E(i,e,t){return i<e?e:i>t?t:i}var zr=0;function _r(i="rg"){return zr++,`${i}-${zr}`}var Wr='<svg viewBox="0 0 16 16" width="12" height="12" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M2 3.5h12L9.5 8v4.5L6.5 14V8L2 3.5z"/></svg>',$r='<svg viewBox="0 0 16 16" width="10" height="10" fill="currentColor"><path d="M8 3l4 5H4l4-5z"/></svg>',Kr='<svg viewBox="0 0 16 16" width="10" height="10" fill="currentColor"><path d="M8 13l4-5H4l4 5z"/></svg>',qr='<svg viewBox="0 0 16 16" width="12" height="12" fill="none" stroke="currentColor" stroke-width="1.35" stroke-linecap="round"><path d="M2 4h3m3 0h6M2 8h7m3 0h2M2 12h1m3 0h8"/><circle cx="6.5" cy="4" r="1.35"/><circle cx="10.5" cy="8" r="1.35"/><circle cx="4.5" cy="12" r="1.35"/></svg>';var Ur=6,$e=class{constructor(e){this.core=e;this.pending=null;this.fe=null;this.Yt=!1;this.y=0;this.st=null;this.H=e=>{if(this.fe){this.sn(e);return}let t=this.pending;t&&(Math.abs(e.clientX-t.startX)<Ur&&Math.abs(e.clientY-t.startY)<Ur||this.an(e))};this.x=e=>{this.pending=null,e.type!=="pointercancel"&&this.fe&&this.Jt(e.clientX,e.clientY),this.Xt();let t=this.lo();t&&e.type!=="pointercancel"&&t.targetIndex>=0&&this.core.moveColumn(t.column.id,t.targetIndex)}}onPointerDown(e,t){e.button===0&&t.movable&&(this.pending={column:t,startX:e.clientX,startY:e.clientY},window.addEventListener("pointermove",this.H),window.addEventListener("pointerup",this.x),window.addEventListener("pointercancel",this.x))}didDrag(){let e=this.Yt;return this.Yt=!1,e}an(e){let t=this.pending;if(!t)return;let r=this.ln(t.column);if(!r||!r.parentElement){this.Xt();return}this.Yt=!0;let o=f("div","mach-drop-indicator"),n=f("div","mach-column-drag-ghost");n.textContent=t.column.colDef.headerName??t.column.colDef.field??t.column.id,n.ariaHidden="true",L(n,this.core.skeleton.root),document.body.appendChild(n),r.parentElement.appendChild(o),r.classList.add("mach-header-cell--dragging"),this.core.skeleton.root.classList.add("mach-root--dragging");let s=this.core.bodyRenderer.paneForColumn(t.column),a=this.core.skeleton.headerRowContainers[s],l=this.core.columnModel.getPaneColumns(s),d=new Float64Array(l.length+1),c=new Float64Array(l.length);for(let h=0;h<l.length;h++){let p=l[h].currentWidth;c[h]=d[h]+p/2,d[h+1]=d[h]+p}let u=n.getBoundingClientRect();this.fe={column:t.column,cellEl:r,ghost:n,indicator:o,targetIndex:-1,pane:s,containerLeft:a.getBoundingClientRect().left,startScrollLeft:this.core.skeleton.bodyViewports.center.scrollLeft,fromIndex:l.indexOf(t.column),midpoints:c,offsets:d,ghostWidth:u.width,ghostHeight:u.height},this.Jt(e.clientX,e.clientY)}ln(e){let t=this.core.bodyRenderer.paneForColumn(e);return this.core.skeleton.headerRowContainers[t].querySelector(`.mach-header-cell[data-col-id="${pn(e.id)}"]`)}sn(e){this.st={clientX:e.clientX,clientY:e.clientY},!this.y&&(this.y=requestAnimationFrame(()=>{this.y=0;let t=this.st;this.st=null,t&&this.Jt(t.clientX,t.clientY)}))}Jt(e,t){let r=this.fe;if(!r)return;let o=E(e+12,8,window.innerWidth-r.ghostWidth-8),n=E(t+12,8,window.innerHeight-r.ghostHeight-8);r.ghost.style.transform=`translate3d(${o}px, ${n}px, 0)`;let s=r.pane==="center"?this.core.skeleton.bodyViewports.center.scrollLeft-r.startScrollLeft:0,a=e-(r.containerLeft-s),l=r.midpoints.length;for(let d=0;d<r.midpoints.length;d++)if(a<r.midpoints[d]){l=d;break}r.targetIndex=l>r.fromIndex?l-1:l,r.indicator.style.transform=`translate3d(${r.offsets[l]}px, 0, 0)`}lo(){let e=this.fe;return e?(this.fe=null,e.cellEl.classList.remove("mach-header-cell--dragging"),e.ghost.remove(),e.indicator.remove(),this.core.skeleton.root.classList.remove("mach-root--dragging"),e):null}Xt(){window.removeEventListener("pointermove",this.H),window.removeEventListener("pointerup",this.x),window.removeEventListener("pointercancel",this.x),this.y&&cancelAnimationFrame(this.y),this.y=0,this.st=null}destroy(){this.Xt(),this.lo(),this.pending=null}};function pn(i){return typeof CSS<"u"&&typeof CSS.escape=="function"?CSS.escape(i):i.replace(/[^a-zA-Z0-9_-]/g,"\\$&")}function jr(i,e){let t=i==null?"":String(i);return t.includes(e)||t.includes('"')||t.includes(`
|
|
1
|
+
"use strict";var zt=Object.defineProperty;var yi=Object.getOwnPropertyDescriptor;var vi=Object.getOwnPropertyNames;var wi=Object.prototype.hasOwnProperty;var bi=(i,e)=>{for(var t in e)zt(i,t,{get:e[t],enumerable:!0})},Ci=(i,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of vi(e))!wi.call(i,o)&&o!==t&&zt(i,o,{get:()=>e[o],enumerable:!(r=yi(e,o))||r.enumerable});return i};var Ti=i=>Ci(zt({},"__esModule",{value:!0}),i);var Js={};bi(Js,{BUILTIN_AGG_FUNCS:()=>jt,DEFAULT_LOCALE:()=>D,EVENT_TYPES:()=>j,LOCALE_EN:()=>oo,actionsColumn:()=>ei,advancedFilterCondition:()=>Ar,advancedFilterGroup:()=>Ir,applyGridViewState:()=>Sr,buildColDefsFromSchema:()=>Yo,captureGridViewState:()=>Er,clearGridState:()=>Go,createActionButtonsRenderer:()=>me,createAggResolver:()=>He,createBusinessColumnTypes:()=>di,createCachedDictionary:()=>ci,createColumnHelper:()=>ri,createDictionaryRenderer:()=>ui,createEnterprisePreset:()=>ii,createGrid:()=>qo,createGridViewManager:()=>mi,createLocalGridStateStore:()=>ur,createLocalGridViewStore:()=>xr,createMachTableCommands:()=>Xo,createMachTablePreset:()=>Dr,createProgressBarRenderer:()=>gr,createRemoteExportRequest:()=>Uo,createRowActionsRenderer:()=>Pt,createStatusTagRenderer:()=>mr,defineColumns:()=>oi,defineGridOptions:()=>si,defineMachTableConfig:()=>ai,defineMachTablePreset:()=>ni,describeFilter:()=>wt,downloadFile:()=>gt,dragColumn:()=>Zo,escapeHtml:()=>re,formatText:()=>V,formatTwo:()=>ce,getByPath:()=>K,indexColumn:()=>Qo,isColDefGroup:()=>se,isSafePath:()=>ie,linkRenderer:()=>yr,loadGridState:()=>At,matchLocaleKey:()=>it,normalizeAdvancedFilterModel:()=>O,normalizeColumnFilter:()=>Ie,normalizeFilterModel:()=>q,normalizeGridState:()=>z,normalizeGridViewState:()=>Bt,normalizeSavedGridView:()=>ge,parseCsv:()=>qe,parseDelimited:()=>Ue,parseTsv:()=>Ke,resolveGridFeatures:()=>Ft,resolveSaveConflict:()=>fo,resolveTagVariant:()=>fr,rowActionsColumn:()=>ti,sanitizeFormulaCell:()=>we,saveGridState:()=>kt,selectionColumn:()=>Jo,setByPath:()=>Z,toTsv:()=>de,validateGridOptions:()=>Gt,version:()=>Xs});module.exports=Ti(Js);var ke="0.31.1";var Ae=class{constructor(e){this.onListenerError=e;this.ae=new Map}on(e,t){let r=this.ae.get(e);return r||(r=new Set,this.ae.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.ae.get(e);r&&(r.delete(t),r.size===0&&this.ae.delete(e))}emit(e,t){let r=this.ae.get(e);if(r)for(let o of[...r])try{o(t)}catch(n){console.error(`[mach-table] error in "${e}" listener`,n),this.onListenerError?.(n,e)}}clear(){this.ae.clear()}};var Di=new Set(["__proto__","prototype","constructor"]);function ie(i){return typeof i!="string"||i.length===0?!1:i.split(".").every(t=>t.length>0&&!Di.has(t))}function K(i,e){if(i==null||!ie(e))return;if(e.indexOf(".")<0)return i[e];let r=i,o=0;for(;o<e.length;){if(r==null)return;let n=e.indexOf(".",o);if(n<0){r=r[e.slice(o)];break}r=r[e.slice(o,n)],o=n+1}return r}function Z(i,e,t){if(i==null||!ie(e))return!1;let r=e.split("."),o=i;for(let n=0;n<r.length-1;n++){if(typeof o!="object"&&typeof o!="function"||o===null)return!1;o[r[n]]==null&&(o[r[n]]={}),o=o[r[n]]}return typeof o!="object"&&typeof o!="function"||o===null?!1:(o[r[r.length-1]]=t,!0)}var Ei=new Set(["contains","notContains","equals","notEquals","startsWith","endsWith","blank","notBlank"]),Si=new Set(["equals","notEquals","lessThan","lessThanOrEqual","greaterThan","greaterThanOrEqual","inRange","blank","notBlank"]),xi=new Set(["equals","notEquals","lessThan","greaterThan","inRange","blank","notBlank"]);function Mi(i){return i==null||typeof i=="string"||typeof i=="number"&&Number.isFinite(i)}function ki(i){return i==="text"?Ei:i==="number"?Si:xi}function Ai(i,e,t){if(i==null||typeof i!="object")return null;let r=i;return typeof r.match!="string"||!t.has(r.match)?null:{match:r.match,...Ii(r,e)}}function Ii(i,e){let t=e==="number"?Mr(i.value):typeof i.value=="string"?i.value:void 0,r=e==="number"?Mr(i.value2):typeof i.value2=="string"?i.value2:void 0;return{...t!==void 0?{value:t}:{},...r!==void 0?{value2:r}:{}}}function Mr(i){return typeof i=="number"&&Number.isFinite(i)?i:void 0}function Li(i,e){let t=[],r=ki(e);for(let o of i.slice(0,20)){let n=Ai(o,e,r);n&&t.push(n)}return t}function Ie(i){if(i==null||typeof i!="object")return null;let e=i;return e.type==="set"?Array.isArray(e.values)?{type:"set",values:e.values.filter(Mi).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:Li(e.conditions,e.type)}}function Pi(i,e){if(typeof i.colId!="string"||!i.colId.trim())return null;let t=i.colId.trim();if(e.validColumnIds?.has(t)===!1)return null;let r=Ie(i.filter);return r?{kind:"condition",colId:t,filter:r}:null}function Gi(i,e,t){if(!Array.isArray(i.children))return null;let r=[];for(let o of i.children){let n=kr(o,e+1,t);n&&r.push(n)}return r.length===0?null:{kind:"group",operator:i.operator==="or"?"or":"and",children:r,...i.not===!0?{not:!0}:{}}}function Ni(i,e,t){return e<=16&&t.nodes<512&&i!=null&&typeof i=="object"}function kr(i,e,t){if(!Ni(i,e,t)||t.ancestors.has(i))return null;t.ancestors.add(i),t.nodes++;let r=i,o=r.kind==="condition"?Pi(r,t):r.kind==="group"?Gi(r,e,t):null;return t.ancestors.delete(i),o}function O(i,e){if(i==null||typeof i!="object")return null;let t=i;if(t.version!==1||t.root==null)return null;let r=kr(t.root,0,{ancestors:new WeakSet,nodes:0,validColumnIds:e});return r?{version:1,root:r}:null}function Ar(i,e){return{kind:"condition",colId:i,filter:e}}function q(i,e){if(i==null||typeof i!="object"||Array.isArray(i))return{};let t={};for(let[r,o]of Object.entries(i).slice(0,2e3)){let n=r.trim();if(!n||e?.has(n)===!1)continue;let s=Ie(o);s&&(t[n]=s)}return t}function Ir(i,e,t={}){return{kind:"group",operator:i,children:e,...t.not?{not:!0}:{}}}var _t={align:"center",sortable:!0,resizable:!0,movable:!0,filter:!1,minWidth:80},ye={compact:{rowHeight:30,headerHeight:34,fontSize:12,cellPadding:6},normal:{rowHeight:36,headerHeight:40,fontSize:13,cellPadding:9},large:{rowHeight:44,headerHeight:48,fontSize:14,cellPadding:12}};function S(i,e,t,r=!1){return typeof i!="number"||!Number.isFinite(i)||i<t?e:r?Math.floor(i):i}function Fi(i){return i&&Object.prototype.hasOwnProperty.call(ye,i)?i:"normal"}function Oi(i){return i.theme==="light"||i.theme==="dark"||i.theme==="auto"?i.theme:"light"}function Hi(i,e){let t=typeof i.pagination=="object"&&Array.isArray(i.pagination.pageSizeOptions)?i.pagination.pageSizeOptions:void 0,r=t?[...new Set(t.map(o=>S(o,0,1,!0)).filter(Boolean))]:[10,20,50,100];return r.includes(e)||r.push(e),r.sort((o,n)=>o-n)}function Wt(i,e){let t=typeof i=="function"?i(e):K(e,i);return t==null?"":String(t)}function Vi(i){let e=i.rowKey,t=e?({data:r})=>Wt(e,r):void 0;return{...t?{resolveRowId:t}:{},...e?{rowKey:e}:{}}}function Bi(i,e){let t=ye[e];return{columnDefs:Array.isArray(i.columnDefs)?i.columnDefs:[],rowData:Array.isArray(i.rowData)?i.rowData:[],defaultColDef:{..._t,...i.defaultColDef??{}},columnTypes:i.columnTypes??{},...Vi(i),rowHeight:S(i.rowHeight,t.rowHeight,1),headerHeight:S(i.headerHeight,t.headerHeight,1),rowBuffer:S(i.rowBuffer,8,0,!0),columnLayout:i.columnLayout==="fit"?"fit":"normal",enableColumnResize:i.enableColumnResize===!0,domLayout:i.domLayout==="autoHeight"?"autoHeight":"normal",rowSelection:i.rowSelection==="single"||i.rowSelection==="multiple"?i.rowSelection:"none",multiSort:i.multiSort??!0,size:e,pinnedTopRowData:Array.isArray(i.pinnedTopRowData)?i.pinnedTopRowData:[],pinnedBottomRowData:Array.isArray(i.pinnedBottomRowData)?i.pinnedBottomRowData:[]}}function zi(i){return{stripedRows:i.stripedRows??!1,rowStyleRules:Array.isArray(i.rowStyleRules)?i.rowStyleRules:[],showCellBorders:i.showCellBorders??!1,theme:Oi(i),quickFilterText:i.quickFilterText??null,suppressCellFocus:i.suppressCellFocus??!1,suppressRowHoverHighlight:i.suppressRowHoverHighlight??!1,suppressNoRowsOverlay:i.suppressNoRowsOverlay??!1,suppressHeaderFocus:i.suppressHeaderFocus??!1,loading:i.loading??!1,error:i.error??null,className:i.className??""}}function _i(i){return{editType:i.editType==="fullRow"?"fullRow":"cell",editableIndicator:i.editableIndicator==="always"||i.editableIndicator==="none"?i.editableIndicator:"hover",singleClickEdit:i.singleClickEdit??!1,manualSorting:i.manualSorting??!1,manualFiltering:i.manualFiltering??!1,showSummary:i.showSummary??!1,indexOffset:i.indexOffset??0,applyRowDrag:i.applyRowDrag??!0,undoStackSize:S(i.undoStackSize,100,0,!0),asyncTransactionWaitMillis:S(i.asyncTransactionWaitMillis,16,0,!0)}}function Wi(i){return{masterDetail:i.masterDetail??!1,detailRowHeight:S(i.detailRowHeight,240,1),detailToggleColumn:i.detailToggleColumn??!0,treeData:i.treeData??!1,childrenKey:i.childrenKey??"children",autoCheckedChildren:i.autoCheckedChildren??!0,defaultExpandAll:i.defaultExpandAll??!1}}function $i(i){let e=typeof i.pagination=="object"?i.pagination:void 0,t=S(e?.pageSize,20,1,!0);return{paginationEnabled:i.pagination!==!1&&i.datasource==null,paginationMode:e?.mode==="server"?"server":"client",paginationPage:S(e?.page,1,1,!0),paginationTotal:S(e?.total,0,0,!0),paginationPageSize:t,paginationPageSizeOptions:Hi(i,t),paginationShowTotal:e?e.showTotal!==!1:!0,paginationShowSizeSelector:e?e.showPageSizeSelector!==!1:!0}}function Ki(i){return{watermarkEnabled:i.watermark!=null&&i.watermark!==!1,watermarkConfig:i.watermark==null||i.watermark===!1?null:i.watermark===!0?{text:"MachTable"}:i.watermark}}function qi(i){return{columnMenu:i.columnMenu??!1,advancedFilterModel:O(i.advancedFilterModel),...Ui(i),locale:i.locale??{},suppressWarnings:i.suppressWarnings??!1,enableRangeSelection:i.enableRangeSelection??!1,suppressClipboard:i.suppressClipboard??!1,contextMenu:i.contextMenu??!1,tooltipShowDelay:S(i.tooltipShowDelay,600,0),flashCells:i.flashCells??!0,fillHandle:i.fillHandle??!0,statusBarEnabled:i.statusBar===!0||typeof i.statusBar=="object"&&i.statusBar!=null,statusBarPanels:typeof i.statusBar=="object"&&i.statusBar?.panels?i.statusBar.panels:["rowCount","selectedRowCount","rangeAggregate"]}}function Ui(i){let e=i.persistence;return!e||typeof e.key!="string"||!e.key.trim()?{persistence:null}:{persistence:{key:e.key.trim(),debounceMs:S(e.debounceMs,160,0,!0),...e.sections?{sections:[...new Set(e.sections)]}:{},...e.store?{store:e.store}:{}}}}function ji(i){return{datasourceMode:i.datasourceMode==="block"?"block":"sequential",blockSize:S(i.blockSize,100,1,!0),infiniteBufferRows:S(i.infiniteBufferRows,40,0,!0),maxBlocksInCache:S(i.maxBlocksInCache,12,1,!0),datasourceMaxConcurrentRequests:S(i.datasourceMaxConcurrentRequests,4,1,!0),blockPrefetch:S(i.blockPrefetch,1,0,!0),datasourceRowCount:i.datasourceRowCount==null?null:S(i.datasourceRowCount,0,0,!0),dataProcessorMinRows:S(i.dataProcessorMinRows,5e3,1,!0),datasourceRetryCount:S(i.datasourceRetryCount,2,0,!0),datasourceRetryDelay:S(i.datasourceRetryDelay,300,0,!0),datasourceRetryJitter:Math.min(1,S(i.datasourceRetryJitter,.15,0))}}function Yi(i){return{ariaLabel:i.ariaLabel??"MachTable data grid",ariaLabelledBy:i.ariaLabelledBy??"",ariaDescribedBy:i.ariaDescribedBy??"",overlayNoRowsTemplate:i.overlayNoRowsTemplate??"",overlayLoadingTemplate:i.overlayLoadingTemplate??"",overlayErrorTemplate:i.overlayErrorTemplate??"",allowUnsafeOverlayHtml:i.allowUnsafeOverlayHtml??!1}}var Xi=["detailRowRenderer","isRowExpandable","aggFuncs","components","actionPolicy","summaryMethod","datasource","getRowHeight","tooltipComponent","getContextMenuItems","initialState","rowEditValidator","isTreeRowExpandable","loadTreeChildren","dataProcessor"];function Ji(i,e){for(let t of Xi)i[t]&&Object.assign(e,{[t]:i[t]})}function Qi(i,e){for(let t of Object.keys(i))t.startsWith("on")&&typeof i[t]=="function"&&Object.assign(e,{[t]:i[t]})}function Lr(i){let e=Fi(i.size),t={...Bi(i,e),...zi(i),..._i(i),...Wi(i),...$i(i),...Ki(i),...qi(i),...ji(i),...Yi(i),features:Array.isArray(i.features)?i.features:[]};return Ji(i,t),Qi(i,t),t}function Pr(i){return Array.isArray(i)?i.filter(e=>typeof e=="string"&&e.length>0):typeof i=="string"&&i.length>0?[i]:[]}function ne(i,e){return Pr(i.type).includes(e)}function Gr(i,e,t={}){let r={};for(let o of Pr(i.type)){let n=t[o];n&&Object.assign(r,n)}return{...e,...r,...i}}var W=class{constructor(e,t){this.manualWidth=null;this.contentWidth=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.contentWidth=null,this.flex=typeof this.colDef.flex=="number"&&Number.isFinite(this.colDef.flex)&&this.colDef.flex>0?this.colDef.flex:null}};var ee=class i{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 i?t.getLeafColumns(e):e.push(t);return e}};function se(i){return Array.isArray(i.children)}function Le(i,e){return typeof i=="number"&&Number.isFinite(i)&&i>0?i:e}function Nr(i){let e=Le(i.minWidth,80);return{min:e,max:Math.max(e,Le(i.maxWidth,Number.MAX_SAFE_INTEGER))}}function N(i,e){let{min:t,max:r}=Nr(e),o=Le(i,Le(e.width,150));return Math.max(t,Math.min(r,o))}function Fr(i,e){let t=i.map(s=>N(s.width??150,s)),r=[],o=0;i.forEach((s,a)=>{let l=s.flex??0;l>0&&(r.push(a),o+=l)});let n=0;for(let s of t)n+=s;if(o>0&&e>n){let s=e-n;for(let a=0;a<4&&s>.5&&r.length>0;a++){let l=[],d=0;for(let p of r){let m=i[p].flex??0;l.push(p),d+=m}let c=[];for(let p=0;p<l.length;p++){let m=l[p],v=i[m].flex??0,g=s*v/d,y=t[m];t[m]=N(y+g,i[m]),c.push(t[m]-y)}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 Zi(i,e,t){let r=new Set(i.map((n,s)=>s)),o=t;for(let n=0;n<i.length+1&&r.size>0;n++){let s=0;for(let l of r)s+=Math.max(1,e[l]);if(s<=0)break;let a=!1;for(let l of[...r]){let d=o*(Math.max(1,e[l])/s),c=N(d,i[l]),{min:u,max:h}=Nr(i[l]);(d<u||d>h)&&(e[l]=c,o-=c,r.delete(l),a=!0)}if(!a){for(let l of r)e[l]=N(o*(Math.max(1,e[l])/s),i[l]);break}o=Math.max(0,o)}}function en(i,e,t){let r=t-e.reduce((o,n)=>o+n,0);if(!(Math.abs(r)<=.01))for(let o=e.length-1;o>=0;o--){let n=N(e[o]+r,i[o]);if(Math.abs(n-e[o])>.01){e[o]=n;return}}}function Pe(i,e){let t=i.map(r=>N(r.width??150,r));return!Number.isFinite(e)||e<=0||i.length===0||(Zi(i,t,e),en(i,t,e)),t}var $t="__rg_detail_toggle__";function ae(i){return typeof i=="number"&&Number.isFinite(i)&&i>0}var Ge=class{constructor(e){this.core=e;this.columns=[];this.E=[];this.left=[];this.center=[];this.right=[];this.sortModel=[];this.defs=[];this.le=1;this.Vt=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?[$t]:[]),n=(s,a,l)=>s.map((d,c)=>{if(se(d)){let y=d.groupId??d.headerName??`group_${c}_${l}`,b=new ee(y,d);return b.parent=a,b.children=n(d.children,b,l+1),b}let u=d,h=u.colId??u.field??`col_${c}`,p=h,m=2;for(;o.has(p);)p=`${h}_${m++}`;o.add(p);let v=new W(p,Gr(u,r,this.core.options.columnTypes));v.parentGroup=a,v.level=l;let g=t.get(p);return g&&(v.manualWidth=g.manualWidth,v.contentWidth=g.contentWidth,v.flex=g.flex,v.hide=g.hide,v.pinned=g.pinned),v});if(this.E=n(this.defs,null,0),this.core.options.masterDetail&&this.core.options.detailToggleColumn){let s=new W($t,{colId:$t,headerName:"",width:38,pinned:"left",sortable:!1,resizable:!1,movable:!1,filter:!1});s.isDetailToggle=!0,this.E.unshift(s)}if(this.columns=this.Je(this.E),this.le=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.de()}Je(e,t=[]){for(let r of e)r instanceof ee?this.Je(r.children,t):t.push(r);return t}de(){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.Vt.clear(),this.getOrderedVisible().forEach((t,r)=>this.Vt.set(t.id,r))}getFlatIndex(e){return this.Vt.get(e)??-1}getColumns(){return this.columns}getColumnDefs(){return this.defs}getRootChildren(){return this.E}getHeaderDepth(){return this.le}getColumn(e){return this.columns.find(t=>t.id===e)}getPaneColumns(e){return e==="left"?this.left:e==="right"?this.right:this.center}getOrderedVisible(){return[...this.left,...this.center,...this.right]}getRowGroupColumns(){return this.getOrderedVisible().filter(e=>e.colDef.rowGroup===!0)}getAggColumns(){return this.getOrderedVisible().filter(e=>e.colDef.aggFunc!=null&&e.colDef.rowGroup!==!0)}hasColSpan(){return this.center.some(e=>e.colDef.colSpan!=null)}getGroupLabelColumn(){let e=this.getOrderedVisible();return this.center.find(t=>!t.hasCheckbox&&!t.isDetailToggle)??e.find(t=>!t.hasCheckbox&&!t.isDetailToggle)??e[0]}paneOf(e){return e.pinned==="left"?"left":e.pinned==="right"?"right":"center"}computeLayout(e){this.viewportWidth=e;let t=0;for(let c of[...this.left,...this.right])c.currentWidth=N(c.manualWidth??c.contentWidth??c.colDef.width??150,this.U(c)),t+=c.currentWidth;let r=Math.max(0,e-t),o=[],n=[];for(let c of this.center)(c.colDef.suppressSizeToFit||c.manualWidth!=null?n:o).push(c);let s=0;for(let c of n)c.currentWidth=N(c.manualWidth??c.contentWidth??c.colDef.width??150,this.U(c)),s+=c.currentWidth;let a=o.map(c=>this.U(c)),l=Math.max(0,r-s),d=this.core.options.columnLayout==="fit"?Pe(a,l):Fr(a,l);o.forEach((c,u)=>{c.currentWidth=d[u]})}U(e){let t=e.colDef;return{width:e.manualWidth??e.contentWidth??t.width,minWidth:t.minWidth,maxWidth:t.maxWidth,flex:e.manualWidth==null?e.flex??void 0:void 0}}setColumnWidth(e,t){return ae(t)?(e.manualWidth=N(t,this.U(e)),e.flex=null,!0):!1}setContentWidth(e,t){return ae(t)?(e.resetWidth(),e.contentWidth=N(t,this.U(e)),!0):!1}setColumnVisibility(e,t){let r=this.getColumn(e);!r||r.hide===!t||(r.hide=!t,this.de())}moveColumn(e,t){let r=this.getColumn(e);if(!r)return!1;let o=this.paneOf(r),n=u=>r.parentGroup?!0:this.paneOf(u)===o,s=r.parentGroup?r.parentGroup.children:this.E,a=s.filter(u=>u instanceof W&&!u.hide&&n(u)),l=a.indexOf(r);if(l<0)return!1;a.splice(l,1);let d=Math.max(0,Math.min(t,a.length));a.splice(d,0,r);let c=[];return s.forEach((u,h)=>{u instanceof W&&!u.hide&&n(u)&&c.push(h)}),c.length!==a.length?!1:(c.forEach((u,h)=>{s[u]=a[h]}),this.columns=this.Je(this.E),this.de(),!0)}setColumnPinned(e,t){let r=this.getColumn(e);!r||!r.movable||(r.pinned=t,this.de())}getColumnState(){return this.columns.map(e=>({colId:e.id,hide:e.hide,width:e.manualWidth??e.currentWidth,flex:e.flex,widthMode:e.manualWidth==null?"auto":"manual",contentWidth:e.contentWidth??void 0,pinned:e.pinned}))}applyColumnState(e){let t=new Map(e.map(r=>[r.colId,r]));for(let r of this.columns){let o=t.get(r.id);o&&this.Di(r,o)}this.Ei(e),this.de()}Di(e,t){typeof t.hide=="boolean"&&(e.hide=t.hide),t.widthMode==="auto"?(e.resetWidth(),ae(t.flex)&&(e.flex=t.flex)):ae(t.flex)?(e.flex=t.flex,e.manualWidth=null):ae(t.width)&&(e.manualWidth=N(t.width,this.U(e)),e.flex=null),ae(t.contentWidth)&&(e.contentWidth=N(t.contentWidth,this.U(e))),e.movable&&(t.pinned==="left"||t.pinned==="right"||t.pinned===null)&&(e.pinned=t.pinned)}Ei(e){let t=new Map;e.forEach((o,n)=>t.set(o.colId,n));let r=o=>o.pinned==="left"?"left":o.pinned==="right"?"right":"center";for(let o of["left","center","right"]){let n=this.E.filter(d=>d instanceof W&&!d.hide&&d.parentGroup===null&&r(d)===o);if(n.length<2)continue;let s=n.filter(d=>d.movable),a=s.slice().sort((d,c)=>(t.get(d.id)??Number.MAX_SAFE_INTEGER)-(t.get(c.id)??Number.MAX_SAFE_INTEGER));if(a.every((d,c)=>d===s[c]))continue;let l=[];this.E.forEach((d,c)=>{d instanceof W&&!d.hide&&d.parentGroup===null&&r(d)===o&&d.movable&&l.push(c)}),l.forEach((d,c)=>{this.E[d]=a[c]})}this.columns=this.Je(this.E)}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.de()}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),n=o>=0?r[o].direction:null,s=n===null?"asc":n==="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 Hr(i){return i==null?"":String(i).toLowerCase()}function tn(i,e,t){let r=Hr(i),o=e.map(n=>{let s=(n.value??"").toLowerCase();switch(n.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 rn(i,e,t){switch(t.match){case"equals":return i===e;case"notEquals":return i!==e;case"lessThan":return i<e;case"lessThanOrEqual":return i<=e;case"greaterThan":return i>e;case"greaterThanOrEqual":return i>=e;case"inRange":return i>=e&&i<=(t.value2??e);default:return!0}}function on(i,e){let t=i==null||i==="";if(e.match==="blank")return t;if(e.match==="notBlank")return!t;if(t)return!1;let r=typeof i=="number"?i:Number(i);if(Number.isNaN(r))return!1;let o=e.value;return o==null||Number.isNaN(o)?!1:rn(r,o,e)}function nn(i,e,t){let r=e.map(o=>on(i,o));return r.length===0?!0:t==="or"?r.some(Boolean):r.every(Boolean)}function Ne(i){if(i==null||i==="")return null;if(i instanceof Date)return isNaN(i.getTime())?null:i.getTime();if(typeof i=="number")return i;let e=Date.parse(String(i));return isNaN(e)?null:e}function sn(i,e,t){let r=e.map(o=>{let n=Ne(i)==null;if(o.match==="blank")return n;if(o.match==="notBlank")return!n;if(n)return!1;let s=Ne(i),a=o.value!=null?Ne(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?Ne(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 an(i,e){return e.length===0?!0:e.some(t=>t==null&&i==null||t===i)}function Vr(i,e){let t=e.type!=="set"&&e.operator==="or"?"or":"and";switch(e.type){case"text":return tn(i,e.conditions,t);case"number":return nn(i,e.conditions,t);case"date":return sn(i,e.conditions,t);case"set":return an(i,e.values);default:return!0}}function Kt(i,e,t,r){if(i.kind==="condition"){let n=e.get(i.colId);return!n||Vr(r(t,n),i.filter)}let o=i.operator==="or"?i.children.some(n=>Kt(n,e,t,r)):i.children.every(n=>Kt(n,e,t,r));return i.not?!o:o}function ln(i,e,t,r){return t?Kt(t.root,new Map(e.map(o=>[o.id,o])),i,r):!0}function qt(i,e,t,r,o,n){for(let s of Object.keys(t)){let a=t[s],l=e.find(c=>c.id===s);if(!l)continue;let d=n(i,l);if(!Vr(d,a))return!1}if(!ln(i,e,r,n))return!1;if(o&&o.trim()!==""){let s=o.trim().toLowerCase().split(/\s+/);for(let a of s)if(!e.some(d=>Hr(n(i,d)).includes(a)))return!1}return!0}var Br=typeof Intl<"u"?new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"}):null;function dn(i,e){let t=i==null||i==="",r=e==null||e==="";return!t&&!r?null:t&&r?0:t?1:-1}function cn(i,e){let t=Number.isNaN(i),r=Number.isNaN(e);return t||r?t===r?0:t?1:-1:i-e}function un(i,e){return i===e?0:i?1:-1}function Fe(i,e){let t=dn(i,e);if(t!==null)return t;if(typeof i=="number"&&typeof e=="number")return cn(i,e);if(i instanceof Date&&e instanceof Date)return i.getTime()-e.getTime();if(typeof i=="boolean"&&typeof e=="boolean")return un(i,e);let r=String(i),o=String(e);return Br?Br.compare(r,o):r.localeCompare(o)}function Ut(i,e,t,r){let o=new Map;for(let l of t)o.set(l.id,l);let n=[],s=[];for(let l of e){let d=o.get(l.colId);d&&(n.push(d.colDef.comparator??Fe),s.push(l.direction))}let a=i.map(l=>({node:l,values:e.map(d=>r(l,o.get(d.colId)))}));return a.sort((l,d)=>{for(let c=0;c<n.length;c++){let u=n[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 Oe(i){return i.filter(e=>typeof e=="number"&&!isNaN(e))}var jt={sum:i=>Oe(i).reduce((e,t)=>e+t,0),avg:i=>{let e=Oe(i);return e.length===0?null:e.reduce((t,r)=>t+r,0)/e.length},count:i=>i.length,min:i=>{let e=Oe(i);return e.length===0?null:Math.min(...e)},max:i=>{let e=Oe(i);return e.length===0?null:Math.max(...e)},first:i=>i.length>0?i[0]:null,last:i=>i.length>0?i[i.length-1]:null};function He(i){let e={...jt,...i??{}};return t=>e[t]}function le(i){if(i.reason instanceof Error)return i.reason;let e=new Error(typeof i.reason=="string"?i.reason:"Block request aborted");return e.name="AbortError",e}function Ve(i){return Number.isFinite(i)?Math.max(1,Math.trunc(i)):1}var Be=class{constructor(e,t,r=4){this.maxBlocks=e;this.onEvict=t;this.maxConcurrentRequests=r;this.b=new Map;this.f=new Map;this.zr=0;this.Bt=0;this.hitCount=0;this.missCount=0;this.evictionCount=0;this.Qe=0;this.maxBlocks=Ve(e),this.maxConcurrentRequests=Ve(r)}configure(e,t=this.maxConcurrentRequests){this.maxBlocks=Ve(e),this.maxConcurrentRequests=Ve(t),this._r(),this.Ze()}peek(e){let t=this.b.get(e);if(t)return t.touchedAt=++this.zr,t}has(e){return this.b.has(e)}load(e,t,r,o=0){if(r?.aborted)return Promise.reject(le(r));let n=this.peek(e);if(n)return this.hitCount++,Promise.resolve(n);let s=this.f.get(e);if(s)return this.hitCount++,s.priority=Math.max(s.priority,o),this.Ze(),this.Wr(e,s,r);this.missCount++;let a=new AbortController,l,d,c=new Promise((p,m)=>{l=p,d=m}),u={controller:a,promise:c,consumers:0,loader:t,priority:o,state:"queued",resolve:l,reject:d};this.f.set(e,u);let h=this.Wr(e,u,r);return this.Ze(),h}purge(){this.Bt++;for(let e of this.f.values())e.controller.abort(),e.state==="queued"&&e.reject(le(e.controller.signal));this.f.clear();for(let[e,t]of this.b)this.onEvict?.(e,t);this.b.clear()}snapshot(){let e=0,t=0;for(let r of this.b.values())e+=r.rows.length;for(let r of this.f.values())r.state==="active"&&t++;return{cachedBlockCount:this.b.size,loadingBlockCount:this.f.size,activeRequestCount:t,queuedRequestCount:Math.max(0,this.f.size-t),cachedRowCount:e,hitCount:this.hitCount,missCount:this.missCount,evictionCount:this.evictionCount}}Ze(){for(;this.Qe<this.maxConcurrentRequests;){let e,t;for(let[r,o]of this.f)o.state!=="queued"||o.controller.signal.aborted||(!t||o.priority>t.priority)&&(e=r,t=o);if(e==null||!t)return;this.Si(e,t)}}Si(e,t){t.state="active",this.Qe++;let r=this.Bt;this.xi(t).then(o=>{r===this.Bt&&!t.controller.signal.aborted&&(this.b.set(e,{rows:o.rows,...o.lastRow==null?{}:{lastRow:o.lastRow},touchedAt:++this.zr}),this._r()),t.resolve(o)},t.reject).finally(()=>{this.Qe=Math.max(0,this.Qe-1),this.f.get(e)===t&&this.f.delete(e),this.Ze()})}xi(e){let{signal:t}=e.controller;return t.aborted?Promise.reject(le(t)):new Promise((r,o)=>{let n=()=>o(le(t));t.addEventListener("abort",n,{once:!0}),Promise.resolve().then(()=>e.loader(t)).then(r,o).finally(()=>{t.removeEventListener("abort",n)})})}Wr(e,t,r){return t.consumers++,new Promise((o,n)=>{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.f.get(e)===t&&(this.f.delete(e),t.controller.abort(r?.reason),t.state==="queued"&&t.reject(le(t.controller.signal))),n(le(r))});r?.addEventListener("abort",l,{once:!0}),t.promise.then(d=>a(()=>o(d)),d=>a(()=>n(d instanceof Error?d:new Error(String(d??"Block request failed")))))})}_r(){for(;this.b.size>this.maxBlocks;){let e=-1,t=Number.POSITIVE_INFINITY;for(let[o,n]of this.b)n.touchedAt<t&&(e=o,t=n.touchedAt);if(e<0)return;let r=this.b.get(e);this.b.delete(e),this.evictionCount++,r&&this.onEvict?.(e,r)}}};function ve(i,e){if(i==null||typeof i!="object")return;let t=i[e];return Array.isArray(t)?t:void 0}var ze=class{constructor(e){this.core=e;this.all=[];this.h=[];this.m=new Map;this.C=[];this.e=new Map;this.filterModel={};this.advancedFilterModel=null;this.quickFilter=null;this.d=new Set;this.g=new Set;this.Ee=[];this.et=new Map;this.Mi=[];this.a=null;this.ce=!1;this.$r=!1;this.ue=0;this.tt=null;this.Se=null;this.rt=null;this.ot=new WeakMap;this.xe=new WeakMap;this.N=new Map;this.Me=new Map;this.ke=0;this.A=new Map;this.F=new Map;this.Ae=new Set;this.j=new Be(12,e=>this.Kr(e));this.Ie=0;this.it=null;this.zt=!1;this.qr=0;this.T=[];this.page=1;this.pageSize=20;this.advancedFilterModel=O(e.options.advancedFilterModel)}resolveRowId(e,t,r){let o=this.core.options.resolveRowId;if(!o)return r;try{let n=o({data:e,index:t,api:this.core.getApi()});if(typeof n=="string"&&n.length>0)return n;this.core.reportError(new Error("rowKey must resolve to a non-empty identifier"),"rowKey",{index:t})}catch(n){this.core.reportError(n,"rowKey",{index:t})}return r}get isTree(){return this.core.options.treeData}get isInfinite(){return this.core.options.datasource!=null}get isBlockDatasource(){return this.isInfinite&&this.core.options.datasourceMode==="block"}getDisplayTotalCount(){if(this.isInfinite){if(this.isBlockDatasource)return this.he();let e=Math.max(0,this.C.length-this.all.length);return(this.a??this.all.length)+e}return this.C.length}getDisplayRevision(){return this.ke}isLoadingInfinite(){return this.$r}startInfinite(e){return!this.isInfinite||e?.aborted?Promise.resolve():(this._t(),this.a=null,this.ce=!1,this.all=[],this.h=[],this.e.clear(),this.d.clear(),this.core.undoService.clear(),this.refreshPipeline(),this.core.requestUpdate({data:!0}),this.isBlockDatasource?(this.j.configure(this.core.options.maxBlocksInCache,this.core.options.datasourceMaxConcurrentRequests),this.Wt(0,e)):this.Ur(0,void 0,e))}reloadInfinite(e){return this.isInfinite?this.startInfinite(e):Promise.resolve()}setInfiniteLoading(e){this.$r=e,this.core.skeleton.setInfiniteLoading(e,this.core.getLocaleText("loading"))}Ur(e,t,r){if(!this.isInfinite||this.ce||this.a!=null&&e>=this.a)return Promise.resolve();let o=this.core.options.datasource,n=this.core.options.blockSize,s=t??e+n;if(s<=e)return Promise.resolve();let a=++this.ue,l=new AbortController,d=()=>l.abort(r?.reason);return r?.addEventListener("abort",d,{once:!0}),this.tt=l,this.ce=!0,this.setInfiniteLoading(!0),new Promise(c=>{let u=!1,h=0;this.rt=c;let p=v=>{u||(u=!0,r?.removeEventListener("abort",d),a===this.ue&&(this.ce=!1,this.tt=null,this.rt=null,this.setInfiniteLoading(!1),v!=null&&v?.name!=="AbortError"&&this.core.reportError(v,"datasource.getRows",{startRow:e,endRow:s})),c())},m=()=>{if(u||a!==this.ue||l.signal.aborted||this.core.isDestroyed()){p();return}h++;let v=!1,g=y=>{if(!(v||u)){if(v=!0,a!==this.ue||l.signal.aborted||this.core.isDestroyed()){p();return}if(h<=this.core.options.datasourceRetryCount){let b=this.jr(h);this.Se=setTimeout(()=>{this.Se=null,m()},b);return}p(y??new Error("Datasource request failed"))}};try{let y=o.getRows({startRow:e,endRow:s,sortModel:this.core.columnModel.getSortModel(),filterModel:this.getFilterModel(),advancedFilterModel:this.getAdvancedFilterModel(),quickFilterText:this.quickFilter,signal:l.signal,onSuccess:(b,T)=>{if(v||u)return;if(v=!0,a!==this.ue||this.core.isDestroyed()||l.signal.aborted){p();return}let x=b??[];typeof T=="number"&&T>=0?this.a=T:x.length<s-e&&(this.a=e+x.length);let w=this.all.length===0;this.ki(x),p(),this.refreshPipeline(),this.core.requestUpdate({data:!0}),w&&this.core.relayout(),this.core.headerRenderer.refreshSelectAllCheckbox()},fail:g});y&&typeof y.catch=="function"&&y.catch(g)}catch(y){g(y)}};m()})}_t(){this.ue++,this.Se!=null&&clearTimeout(this.Se),this.Se=null,this.tt?.abort(),this.tt=null,this.ce=!1,this.setInfiniteLoading(!1),this.rt?.(),this.rt=null,this.j.purge(),this.A.clear(),this.F.clear(),this.Ae.clear()}ki(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.e.has(o)){this.core.reportError(new Error(`Duplicate row id: ${o}`),"datasource.getRows",{rowId:o});continue}let n={id:o,data:t,rowIndex:-1,selected:this.core.selectionService.isSelected(o)};this.all.push(n),this.e.set(o,n),this.h.push(n)}}Wt(e,t,r=0){if(!this.isBlockDatasource||e<0)return Promise.resolve();if(t?.aborted)return Promise.reject(this.Yr(t.reason));let o=this.core.options.blockSize,n=e*o;if(n>=this.he())return Promise.resolve();let s=this.a==null?n+o:Math.min(this.a,n+o),a=this.j.load(e,l=>this.Ai(n,s,l),t,r);return this.setInfiniteLoading(this.all.length===0&&this.j.snapshot().loadingBlockCount>0),a.then(l=>{t?.aborted||this.core.isDestroyed()||!this.isBlockDatasource||this.Ae.has(e)||(this.Ii(e,l),this.refreshPipeline(),this.core.requestUpdate({data:!0}),this.core.headerRenderer.refreshSelectAllCheckbox())}).catch(l=>{throw l?.name!=="AbortError"&&this.core.reportError(l,"datasource.getRows",{startRow:n,endRow:s}),l}).finally(()=>{this.setInfiniteLoading(this.all.length===0&&this.j.snapshot().loadingBlockCount>0)})}Ai(e,t,r){let o=this.core.options.datasource;return new Promise((n,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.Yr(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=v=>{if(!(p||d)){if(p=!0,r.aborted||this.core.isDestroyed()){u();return}if(a<=this.core.options.datasourceRetryCount){let g=this.jr(a);l=setTimeout(()=>{l=null,h()},g)}else c(v)}};try{let v=o.getRows({startRow:e,endRow:t,sortModel:this.core.columnModel.getSortModel(),filterModel:this.getFilterModel(),advancedFilterModel:this.getAdvancedFilterModel(),quickFilterText:this.quickFilter,signal:r,onSuccess:(g,y)=>{p||d||(p=!0,d=!0,r.removeEventListener("abort",u),n({rows:g??[],...typeof y=="number"&&y>=0?{lastRow:y}:{}}))},fail:m});v&&typeof v.catch=="function"&&v.catch(m)}catch(v){m(v)}};h()})}Ii(e,t){let r=this.core.options.blockSize,o=e*r;this.Kr(e),typeof t.lastRow=="number"&&t.lastRow>=0?this.a=t.lastRow:t.rows.length<r&&(this.a=o+t.rows.length),t.rows.forEach((n,s)=>{if(n==null)return;let a=o+s;if(this.a!=null&&a>=this.a)return;let l=this.resolveRowId(n,a,`block-${a}`),d=this.e.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:n,rowIndex:a,selected:this.core.selectionService.isSelected(l)};this.A.set(a,c),this.F.delete(a),this.e.set(l,c),this.xe.set(c,a+1)}),this.Xr(),this.Ae.add(e)}Kr(e){this.Ae.delete(e);let t=this.core.options.blockSize,r=e*t;for(let o=r;o<r+t;o++){let n=this.A.get(o);n&&(this.A.delete(o),this.e.get(n.id)===n&&this.e.delete(n.id))}this.Xr()}Xr(){this.all=[...this.A.entries()].sort(([e],[t])=>e-t).map(([,e])=>e),this.h=this.all}he(){if(this.a!=null)return this.a;if(this.core.options.datasourceRowCount!=null)return this.core.options.datasourceRowCount;if(this.A.size===0)return this.core.options.blockSize;let e=0;for(let t of this.A.keys())e=Math.max(e,t+1);return e+this.core.options.blockSize}Li(e){let t=this.F.get(e);if(!t&&(t={id:`__mach_loading_${e}`,data:null,rowIndex:e,selected:!1,loading:!0},this.F.set(e,t),this.F.size>2e3)){let r=this.F.keys().next().value;r!=null&&this.F.delete(r)}return t}Yr(e){if(e instanceof Error)return e;let t=new Error(typeof e=="string"?e:"Operation aborted");return t.name="AbortError",t}jr(e){let t=Math.min(this.core.options.datasourceRetryDelay*2**Math.max(0,e-1),3e4),r=this.core.options.datasourceRetryJitter;return Math.max(0,Math.round(t*(1+(Math.random()*2-1)*r)))}checkInfiniteScroll(e){if(this.isBlockDatasource){this.Pi(e);return}if(!this.isInfinite||this.ce)return;let t=this.all.length;if(this.a!=null&&t>=this.a)return;let r=this.core.options.infiniteBufferRows;if(e+r<t&&e<t)return;let o=this.core.options.blockSize,n=this.a==null?t+o:Math.min(this.a,t+o);this.Ur(t,n)}Pi(e){if(e<0)return;let t=this.core.options.blockSize,r=Math.floor(e/t),o=this.core.options.blockPrefetch,n=r<this.qr?-1:1;this.qr=r;for(let s=0;s<=o;s++){let a=s===0?[r]:[r+n*s,r-n*s];for(let l of a)l<0||l*t>=this.he()||this.Wt(l,void 0,o-s+1).catch(()=>{})}}onServerParamsChanged(){return this.reloadInfinite().catch(()=>{})}onDatasourceChanged(){return this._t(),this.isInfinite?this.startInfinite().catch(()=>{}):(this.a=null,this.setRowData(this.core.options.rowData),this.core.requestUpdate({data:!0}),Promise.resolve())}destroy(){this._t(),this.Jr(),this.$t(),this.core.options.dataProcessor?.destroy?.()}ensureRowsLoaded(e,t,r){if(!this.isBlockDatasource)return Promise.resolve();let o=this.core.options.blockSize,n=Math.max(0,Math.trunc(e)),s=Math.min(this.he(),Math.max(n,Math.trunc(t))),a=Math.floor(n/o),l=Math.max(a,Math.floor(Math.max(n,s-1)/o)),d=[];for(let c=a;c<=l;c++)d.push(this.Wt(c,r,100));return Promise.all(d).then(()=>{})}purgeDatasourceCache(){this.isBlockDatasource&&(this.j.purge(),this.A.clear(),this.F.clear(),this.Ae.clear(),this.all=[],this.h=[],this.e.clear(),this.refreshPipeline(),this.core.requestUpdate({data:!0}))}getDatasourceCacheSnapshot(){return this.j.snapshot()}setRowData(e){this.Jr(),this.core.changeTracker.clear();let t=this.core.options.resolveRowId,r=this.core.options.childrenKey,o=[],n=[],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 v=this.isTree?ve(c,r):void 0,g={id:m,data:c,rowIndex:-1,selected:!1,treeChildrenLoaded:Array.isArray(v)};if(this.ot.set(g,u),o.push(g),s.set(m,g),h!=null){let y=a.get(h)??[];y.push(m),a.set(h,y)}else n.push(g);if(this.isTree&&Array.isArray(v))for(let y of v)y!=null&&d(y,u+1,m);return g};(e??[]).forEach(c=>{c!=null&&d(c,0,null)}),this.all=o,this.h=n,this.m=a,this.e=s,this.core.undoService.clear();for(let c of[...this.d])s.has(c)||this.d.delete(c);if(this.core.options.defaultExpandAll)for(let c of o)this.getChildrenCount(c.id)>0&&this.d.add(c.id);this.core.selectionService.onRowsRebuilt(t!=null),this.refreshPipeline()}getChildrenIds(e){return this.m.get(e)??[]}getChildrenCount(e){return this.m.get(e)?.length??0}hasChildren(e){return this.getChildrenCount(e)>0}isTreeRowLoading(e){return this.e.get(e)?.treeLoading===!0}Jr(){for(let e of this.N.values())e.abort();this.N.clear(),this.Me.clear()}loadTreeChildren(e,t=!1){let r=this.e.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.e.get(l)?.data;return d==null?[]:[d]}));let n=this.Me.get(e);if(n&&!t)return n;this.N.get(e)?.abort();let s=new AbortController;this.N.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.Gi(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.N.get(e)===s&&(this.N.delete(e),this.Me.delete(e),r.treeLoading=!1,this.core.requestUpdate({data:!0}))});return this.Me.set(e,a),a}Gi(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.Ni(t,r);for(let s of r)this.N.get(s)?.abort(),this.N.delete(s),this.Me.delete(s),this.m.delete(s),this.e.delete(s),this.d.delete(s);this.m.delete(e.id);let n=this.getTreeDepth(e)+1;for(let s of t)s!=null&&this.Kt(e,s,n);this.Qr(),this.core.selectionService.onRowsRebuilt(this.core.options.resolveRowId!=null),this.refreshPipeline(),this.core.requestUpdate({data:!0})}Ni(e,t){let r=this.core.options.resolveRowId,o=r?new Set([...this.e.keys()].filter(l=>!t.has(l))):null,n=new WeakSet,s=[...e],a=0;for(;s.length>0;){let l=s.pop();if(l==null)continue;if(typeof l=="object"){if(n.has(l))throw new TypeError("[MachTable] Lazy tree children contain a cyclic object graph.");n.add(l)}if(r&&o){let c=r({data:l,index:a++,api:this.core.getApi()});if(typeof c!="string"||c.length===0)throw new TypeError("[MachTable] rowKey must resolve to a non-empty identifier for lazy tree children.");if(o.has(c))throw new Error(`Duplicate row id: ${c}`);o.add(c)}let d=ve(l,this.core.options.childrenKey);d&&s.push(...d)}}applyTransaction(e,t=!0){let r=this.core.options.resolveRowId,o=[],n=[];if(e.remove?.length){let a=new Set,l=new Set,d=u=>{if(r){let p=[this.resolveRowId(u,-1,`__missing_remove_${this.core.nextId()}`)];for(;p.length>0;){let m=p.pop();if(!a.has(m)){a.add(m);for(let v of this.m.get(m)??[])p.push(v)}}}else{let h=[u];for(;h.length>0;){let p=h.pop();l.add(p);let m=this.isTree?ve(p,this.core.options.childrenKey):void 0;if(m)for(let v of m)h.push(v)}}};e.remove.forEach(d),this.all=this.all.filter(u=>{let h=a.has(u.id)||u.data!=null&&l.has(u.data);return h&&(n.push(u.id),this.e.delete(u.id),this.m.delete(u.id)),!h});let c=new Set(this.all);this.h=this.h.filter(u=>c.has(u))}if(e.update?.length)for(let a of e.update){let l;r?l=this.e.get(this.resolveRowId(a,-1,`__missing_update_${this.core.nextId()}`)):l=this.all.find(d=>d.data===a),l&&(l.data=a,n.push(l.id),this.core.bodyRenderer.invalidateRowHeight(l),o.push(l))}if(e.add?.length){let a=e.addIndex!=null?Math.max(0,Math.min(e.addIndex,this.h.length)):this.h.length,l=[];e.add.forEach((d,c)=>{let u=this.resolveRowId(d,a+c,`add-${this.core.nextId()}`);if(this.e.has(u)){this.core.reportError(new Error(`Duplicate row id: ${u}`),"transaction.add",{rowId:u});return}let h={id:u,data:d,rowIndex:-1,selected:!1};this.e.set(u,h),this.ot.set(h,0);let p=this.isTree?ve(d,this.core.options.childrenKey):void 0;if(p)for(let m of p)m!=null&&this.Kt(h,m,1);l.push(h)}),this.h.splice(a,0,...l),this.Qr()}let s=this.Fi(e);return t&&(s?this.refreshPipeline():o.length>0&&this.Zr()),this.core.changeTracker.clearRows(n),{pipelineChanged:s,updatedRowIds:o.map(a=>a.id)}}applyTransactions(e){if(e.length===0)return{pipelineChanged:!1,updatedRowIds:[]};let t=!1,r=new Set;for(let o of e){let n=this.applyTransaction(o,!1);t||(t=n.pipelineChanged);for(let s of n.updatedRowIds)r.add(s)}return t?this.refreshPipeline():r.size>0&&this.Zr(),{pipelineChanged:t,updatedRowIds:[...r]}}Fi(e){return e.add?.length||e.remove?.length?!0:e.update?.length?this.isTree||this.core.options.masterDetail||this.core.columnModel.getRowGroupColumns().length>0||!this.core.options.manualFiltering&&this.isFilterPresent()||!this.core.options.manualSorting&&this.core.columnModel.getSortModel().length>0||this.core.options.getRowHeight?!0:this.core.columnModel.getOrderedVisible().some(t=>t.colDef.autoHeight===!0||t.colDef.autoRowSpan===!0||t.colDef.rowSpan!=null):!1}Zr(){this.core.emit("modelUpdated",{rowCount:this.T.length})}Kt(e,t,r){let o=this.resolveRowId(t,-1,`add-${this.core.nextId()}`);if(this.e.has(o)){this.core.reportError(new Error(`Duplicate row id: ${o}`),"transaction.add",{rowId:o});return}let n=ve(t,this.core.options.childrenKey),s={id:o,data:t,rowIndex:-1,selected:!1,treeChildrenLoaded:Array.isArray(n)};this.e.set(o,s),this.ot.set(s,r);let a=this.m.get(e.id)??[];if(a.push(s.id),this.m.set(e.id,a),!!n)for(let l of n)l!=null&&this.Kt(s,l,r+1)}Qr(){this.all=[];let e=t=>{this.all.push(t),this.e.has(t.id)||this.e.set(t.id,t);for(let r of this.m.get(t.id)??[]){let o=this.e.get(r);o&&e(o)}};for(let t of this.h)e(t)}setFilterModel(e){let t=JSON.stringify(this.filterModel),r=new Set(this.core.columnModel.getColumns().map(o=>o.id));return this.filterModel=q(e,r),JSON.stringify(this.filterModel)!==t}getFilterModel(){return{...this.filterModel}}setAdvancedFilterModel(e){let t=new Set(this.core.columnModel.getColumns().map(n=>n.id)),r=O(e,t),o=JSON.stringify(this.advancedFilterModel);return this.advancedFilterModel=r,this.core.options.advancedFilterModel=r,JSON.stringify(r)!==o}getAdvancedFilterModel(){return O(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.Oi(e);return}if(this.Hi(e))return;let o;if(this.isTree)o=this.Vi(t,r);else{o=this.all,this.isFilterPresent()&&!this.core.options.manualFiltering&&(o=o.filter(d=>qt(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=Ut(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.Bi(o,l);else if(this.core.options.masterDetail){let d=[];for(let c of o)d.push(c),this.d.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 n=0;o.forEach((s,a)=>{s.rowIndex=a,!s.isDetail&&!s.isGroup&&(n++,this.xe.set(s,n))}),this.T=o,this.pe(),this.eo(r),this.core.emit("modelUpdated",{rowCount:o.length}),this.core.performanceMonitor.recordModel(e)}Oi(e){this.all.forEach((t,r)=>{this.isBlockDatasource||(t.rowIndex=r),this.xe.set(t,this.isBlockDatasource?t.rowIndex+1:r+1)}),this.C=this.all,this.T=this.all,this.et.clear(),this.ke++,this.core.emit("modelUpdated",{rowCount:this.all.length}),this.core.performanceMonitor.recordModel(e)}Hi(e){let t=this.zt;return this.zt=!1,!t&&this.zi()?(this._i(e),!0):(this.$t(),!1)}zi(){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}_i(e){this.$t();let t=this.core.options.dataProcessor;if(!t)return;let r=++this.Ie,o=new AbortController;this.it=o;let n=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:n.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.Ie||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.e.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.xe.set(p,m+1)}),this.T=u,this.pe();let h=(p,m)=>this.core.getCellValue(p,m);this.eo(h),this.core.emit("modelUpdated",{rowCount:u.length}),this.core.performanceMonitor.recordModel(e),this.core.requestUpdate({data:!0})}).catch(d=>{r!==this.Ie||o.signal.aborted||this.core.isDestroyed()||(this.core.reportError(d,"dataProcessor.process"),this.zt=!0,this.refreshPipeline(),this.core.requestUpdate({data:!0}))}).finally(()=>{r===this.Ie&&(this.it=null)})}$t(){this.Ie++,this.it?.abort(),this.it=null}get paginationActive(){return this.core.options.paginationEnabled&&!this.isInfinite}pe(){if(!this.paginationActive){this.C=this.T,this.ke++;return}let e=this.Le(),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.T.forEach((n,s)=>{n.rowIndex=s}),this.C=this.T,this.ke++;return}let r=(this.page-1)*e,o=this.T.slice(r,r+e);o.forEach((n,s)=>{n.rowIndex=s}),this.C=o,this.ke++}Le(){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.T.length}getPageCount(){return this.paginationActive?Math.max(1,Math.ceil(this.getTotalRowCount()/this.Le())):1}getPipelineRows(){return this.T}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.pe(),this.core.requestUpdate({data:!0}),this.core.bodyRenderer.scrollToIndex(0,"top"),t||this.nt())}setPageSize(e){if(!this.paginationActive)return;let t=Math.max(1,Math.round(e)||this.Le()),r=(this.page-1)*this.Le();this.core.options.paginationPageSize=t,this.pageSize=t,this.page=Math.floor(r/t)+1,this.core.options.paginationPage=this.page,this.pe(),this.core.requestUpdate({data:!0}),this.nt()}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.pe(),this.core.requestUpdate({data:!0}),this.nt())}onPaginationOptionsChanged(){this.paginationActive&&(this.page=this.core.options.paginationMode==="server"?this.core.options.paginationPage:1,this.pe(),this.core.requestUpdate({data:!0}),this.nt())}nt(){this.core.emit("paginationChanged",{page:this.getCurrentPage(),pageSize:this.Le(),pageCount:this.getPageCount(),total:this.getTotalRowCount()})}Vi(e,t){let r=this.core.options.manualSorting?[]:this.core.columnModel.getSortModel(),o=new Map,n=this.isFilterPresent()&&!this.core.options.manualFiltering,s=d=>{let c=o.get(d.id);if(c!==void 0)return c;let u=!0;if(n){u=qt(d,e,this.filterModel,this.advancedFilterModel,this.quickFilter,t);for(let h of this.m.get(d.id)??[]){let p=this.e.get(h);p&&s(p)&&(u=!0)}}return o.set(d.id,u),u},a=[],l=d=>{let c=d;r.length>0&&(c=Ut(d,r,e,t));for(let u of c)if(s(u)&&(a.push(u),this.d.has(u.id))){let h=(this.m.get(u.id)??[]).map(p=>this.e.get(p)).filter(p=>p!=null);l(h)}};return l(this.h),a}Wi(){let e=this.Mi,t=0;for(let r of this.C)!r.isDetail&&!r.isGroup&&(e[t++]=r);return e.length=t,e}$i(e,t,r,o){let n=t.colDef.rowSpan;if(!n)return 1;try{let s=n({api:this.core.getApi(),colDef:t.colDef,column:t,node:e,data:e.data,value:r,rowIndex:e.rowIndex});return Math.max(1,Math.min(Math.round(s)||1,o))}catch(s){return this.core.reportError(s,"rowSpan",{colId:t.id,rowId:e.id}),1}}Ki(e,t,r,o,n){if(!r.colDef.autoRowSpan||o==null||o==="")return 1;let s=1;for(;t+s<e.length&&Fe(o,n(e[t+s],r))===0;)s++;return s}qi(e,t,r){let o=new Int32Array(e.length),n=0;for(;n<e.length;){let s=e[n],a=r(s,t),l=t.colDef.rowSpan?this.$i(s,t,a,e.length-n):this.Ki(e,n,t,a,r);o[n]=l;for(let d=1;d<l;d++)o[n+d]=-1;n+=l}return o}eo(e){if(this.et.clear(),this.isTree||this.core.options.masterDetail||this.core.columnModel.getRowGroupColumns().length>0)return;let t=this.core.columnModel.getOrderedVisible().filter(o=>o.colDef.rowSpan!=null||o.colDef.autoRowSpan===!0);if(t.length===0)return;let r=this.Wi();if(r.length!==0)for(let o of t)this.et.set(o.id,this.qi(r,o,e))}getSpanInfo(e){return this.et.get(e)}getRowSeq(e){return this.xe.get(e)??0}getTreeDepth(e){return this.ot.get(e)??0}Bi(e,t){let r=He(this.core.options.aggFuncs),o=this.core.columnModel.getAggColumns();this.Ee=[];let n=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 v of a){let g=this.core.getCellValue(v,c),y=g==null?"(\u7A7A)":String(g),b=u.get(y);b||(b=[],u.set(y,b),h.push(y)),b.push(v)}h.sort((v,g)=>v.localeCompare(g,void 0,{numeric:!0,sensitivity:"base"}));let p=[],m=[];for(let v of h){let g=u.get(v),y=`${d}/g${l}:${v}`;this.Ee.push(y);let b=s(g,l+1,y),T={id:y,data:null,rowIndex:-1,selected:!1,isGroup:!0,groupLevel:l,groupKey:v,leafNodes:b.leaves,aggValues:n(b.leaves)};p.push(T),this.g.has(y)&&p.push(...b.display),m.push(...b.leaves)}return{display:p,leaves:m}};return s(e,0,"").display}isRowExpandable(e){if(this.isTree){if(this.hasChildren(e.id)||e.treeLoading)return!0;if(e.treeChildrenLoaded||!e.data||!this.core.options.loadTreeChildren)return!1;let r=this.core.options.isTreeRowExpandable;if(!r)return!1;try{return r({data:e.data,node:e,api:this.core.getApi()})}catch(o){return this.core.reportError(o,"isTreeRowExpandable",{rowId:e.id}),!1}}if(!this.core.options.masterDetail)return!1;let t=this.core.options.isRowExpandable;if(t)try{return t({data:e.data,node:e,api:this.core.getApi()})}catch(r){return this.core.reportError(r,"isRowExpandable",{rowId:e.id}),!1}return!0}isRowExpanded(e){return this.d.has(e)}getExpandedRowIds(){return[...this.d]}getExpandedGroupIds(){return[...this.g]}restoreExpansion(e,t){this.d=new Set(e.filter(r=>this.e.has(r))),this.g=new Set(t)}expandRow(e){return this.qt(e,!0)}collapseRow(e){return this.qt(e,!1)}toggleDetail(e){return this.qt(e,!this.d.has(e))}qt(e,t){let r=this.e.get(e);return!r||t&&!this.isRowExpandable(r)?!1:(t===this.d.has(e)||(t?this.d.add(e):this.d.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.d.has(t.id)&&this.isRowExpandable(t)&&(this.d.add(t.id),e=!0);e&&(this.refreshPipeline(),this.core.requestUpdate({data:!0}))}collapseAllDetails(){this.d.size!==0&&(this.d.clear(),this.refreshPipeline(),this.core.requestUpdate({data:!0}))}toggleGroup(e){return this.setGroupExpanded(e,!this.g.has(e))}isGroupExpanded(e){return this.g.has(e)}getGroupNode(e){return this.C.find(t=>t.isGroup&&t.id===e)}expandAllGroups(){if(this.Ee.length===0)return;let e=!1;for(let t of this.Ee)this.g.has(t)||(this.g.add(t),e=!0);e&&(this.refreshPipeline(),this.core.requestUpdate({data:!0}))}collapseAllGroups(){this.g.size!==0&&(this.g.clear(),this.refreshPipeline(),this.core.requestUpdate({data:!0}))}setGroupExpanded(e,t){return!this.Ee.includes(e)||t===this.g.has(e)||(t?this.g.add(e):this.g.delete(e),this.refreshPipeline(),this.core.requestUpdate({data:!0})),t}canReorderRows(){return!this.isTree&&!this.isInfinite&&!this.core.options.dataProcessor&&this.core.options.paginationMode!=="server"&&this.core.columnModel.getSortModel().length===0&&this.core.columnModel.getRowGroupColumns().length===0}reorderRowsByDisplayed(e,t){if(!this.canReorderRows()||!Number.isInteger(e)||!Number.isInteger(t))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 n=this.all.indexOf(r),s=this.all.indexOf(o);return n<0||s<0||n===s?!1:(this.all.splice(n,1),this.all.splice(s,0,r),this.refreshPipeline(),this.core.requestUpdate({data:!0}),!0)}getAllNodes(){return this.all}getRootNodes(){return this.h}getDisplayedRows(){return this.C}getDisplayedRowCount(){return this.isBlockDatasource?this.he():this.C.length}getDisplayedRow(e){return this.isBlockDatasource?e<0||e>=this.he()?void 0:this.A.get(e)??this.Li(e):this.C[e]}getNodeById(e){return this.e.get(e)}forEachNode(e){this.all.forEach(e)}forEachNodeAfterFilterAndSort(e){let t=0;for(let r of this.T)r.isDetail||r.isGroup||e(r,t++)}};var _e=class{constructor(e){this.core=e;this.n=new Set;this.I=null;this.Pe=new Set}isSelected(e){return this.n.has(e)}isIndeterminate(e){return this.Pe.has(e)}isSelectable(e){if(e.loading)return!1;let t=this.Ui(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}}Ui(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.n.has(e.id))}getSelectedRows(){return this.getSelectedNodes().filter(e=>e.data!=null).map(e=>e.data)}getSelectedIds(){return[...this.n]}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.R(r,!0)}onRowsRebuilt(e){if(!e)this.n.clear(),this.I=null;else{let t=new Set(this.core.rowModel.getAllNodes().map(r=>r.id));for(let r of[...this.n])t.has(r)||this.n.delete(r);this.I!=null&&!t.has(this.I)&&(this.I=null)}for(let t of this.core.rowModel.getAllNodes())t.selected=this.n.has(t.id);this.to()}getGroupSelectionState(e){let t=e.leafNodes??[];if(t.length===0)return{all:!1,some:!1};let r=0,o=0;for(let n of t)this.isSelectable(n)&&(r++,this.n.has(n.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.R(r.map(o=>({node:o,selected:t})))}setNodeSelected(e,t,r=!1){this.R([{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)}ji(e,t){let r=t==="single";this.R([{node:e,selected:r?!0:!e.selected,clearOthers:r}]),this.I=e.id}Yi(e,t,r){return!r||!t.ctrlKey&&!t.metaKey?!1:(this.R([{node:e,selected:!e.selected}]),this.I=e.id,!0)}Xi(e,t,r){if(!r||!t.shiftKey||this.I==null)return!1;let o=this.core.rowModel.getNodeById(this.I);if(!o||o.rowIndex<0||e.rowIndex<0)return!1;let n=Math.min(o.rowIndex,e.rowIndex),s=Math.max(o.rowIndex,e.rowIndex),a=[];for(let l=n;l<=s;l++){let d=this.core.rowModel.getDisplayedRow(l);d&&!d.isDetail&&!d.isGroup&&this.isSelectable(d)&&a.push({node:d,selected:!0})}return this.R(a),!0}onRowClick(e,t,r){let o=this.core.options.rowSelection;if(o==="none"||!this.isSelectable(e))return;if(r){this.ji(e,o);return}let n=o==="multiple";this.Yi(e,t,n)||this.Xi(e,t,n)||(this.R([{node:e,selected:!0,clearOthers:!0}]),this.I=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(n=>!n.isDetail&&!n.isGroup&&this.isSelectable(n));if(o.length!==0){if(t==="single"){this.R([{node:o[0],selected:!0,clearOthers:!0}]);return}this.R(o.map(n=>({node:n,selected:!0})))}}deselectAll(){this.R([],!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.n.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,n)=>o+(this.n.has(n.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.R(e,t)}Ji(e,t,r){!t&&!e.some(o=>o.clearOthers)||(this.n=t?new Set:new Set(e.filter(o=>o.selected).flatMap(o=>r?this.ro(o.node):[o.node.id])))}Qi(e,t){for(let r of e){if(!this.isSelectable(r.node))continue;let o=t?this.ro(r.node):[r.node.id];for(let n of o)r.selected?this.n.add(n):this.n.delete(n)}}Zi(e){let t=new Set;for(let r of new Set([...e,...this.n]))e.has(r)!==this.n.has(r)&&t.add(r);return t}en(e,t,r){let o=[],n=new Set([...e,...r,...this.Pe]);for(let s of this.core.rowModel.getAllNodes()){let a=this.n.has(s.id);s.selected=a,(n.has(s.id)||t.get(s.id)!==a)&&s.rowIndex>=0&&o.push(s.rowIndex)}return o}R(e,t=!1){let r=new Set(this.n),o=this.core.rowModel.isTree&&this.core.options.autoCheckedChildren;this.Ji(e,t,o),this.Qi(e,o);let n=this.Zi(r),s=new Map;for(let d of this.core.rowModel.getAllNodes())s.set(d.id,d.selected);let a=new Set(this.Pe);this.to();let l=this.en(n,s,a);n.size>0&&(this.core.bodyRenderer.refreshRows(l),this.core.headerRenderer.refreshSelectAllCheckbox(),this.core.emit("selectionChanged",{selectedNodes:this.getSelectedNodes(),selectedRows:this.getSelectedRows()}))}ro(e){let t=[e.id],r=o=>{for(let n of this.core.rowModel.getChildrenIds(o))t.push(n),r(n)};return r(e.id),t}to(){if(this.Pe.clear(),!this.core.rowModel.isTree)return;let e=t=>{let r=this.core.rowModel.getChildrenIds(t);if(r.length===0)return{all:this.n.has(t),some:this.n.has(t)};let o=!0,n=!1;for(let s of r){let a=e(s);a.all?n=!0:(a.some&&(n=!0),o=!1)}return n&&!o&&this.Pe.add(t),o?this.n.add(t):this.n.delete(t),{all:o,some:n}};for(let t of this.core.rowModel.getRootNodes())e(t.id);for(let t of this.core.rowModel.getAllNodes())t.selected=this.n.has(t.id)}};var We=class{constructor(e){this.core=e;this.active=null;this.D=0;this.O=0;this.S=null;this.Y=null;this.H=e=>{let t=this.jt(e);t&&(this.O=this.ao(t,e.clientX),t.didResize||(t.didResize=Math.abs(this.O-t.startWidth)>=.5),!this.D&&(this.D=requestAnimationFrame(()=>{this.D=0,this.rn()})))};this.x=e=>{let t=this.jt(e);t&&(this.O=this.ao(t,e.clientX),t.didResize||(t.didResize=Math.abs(this.O-t.startWidth)>=.5),this.nn(t))};this.X=e=>{this.jt(e)&&this.cancelResize()};this.oo=()=>{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.O=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.H),window.addEventListener("pointerup",this.x,!0),window.addEventListener("pointercancel",this.X,!0),r.addEventListener("lostpointercapture",this.oo);try{r.setPointerCapture?.(e.pointerId)}catch{}this.core.skeleton.root.classList.add("mach-root--resizing"),r.classList.add("mach-header-resize--active"),this.tn(this.active)}cancelResize(e=!0){let t=this.active;t&&(this.active=null,this.Ut(),this.no(t),e&&(t.column.manualWidth=t.startManualWidth,t.column.flex=t.startFlex,this.core.relayoutColumns()),this.core.skeleton.root.classList.remove("mach-root--resizing"),this.so(t))}nn(e){this.active=null,this.Ut(),e.didResize&&(Math.abs(this.O-e.startWidth)<.5?(e.column.manualWidth=e.startManualWidth,e.column.flex=e.startFlex):this.core.columnModel.setColumnWidth(e.column,this.O),this.core.relayoutColumns()),this.no(e);try{e.handle.releasePointerCapture?.(e.pointerId)}catch{}this.core.skeleton.root.classList.remove("mach-root--resizing"),this.so(e),e.didResize&&this.core.commitColumnWidths([e.column])}rn(){let e=this.active;!e||!this.core.columnModel.setColumnWidth(e.column,this.O)||(this.core.relayoutColumns(),this.Ge(e),this.core.emitColumnResize(e.column,!1))}tn(e){this.S=document.createElement("div"),this.S.className="mach-column-resize-guide",this.S.setAttribute("aria-hidden","true"),this.Y=document.createElement("span"),this.Y.className="mach-column-resize-label",this.S.appendChild(this.Y),this.core.skeleton.root.appendChild(this.S),this.Ge(e)}Ge(e){if(!this.S||!this.Y)return;let t=this.core.skeleton.root,r=t.getBoundingClientRect(),o=e.handle.parentElement.getBoundingClientRect(),n=Math.max(0,Math.min(t.clientWidth,o.right-r.left-t.clientLeft)),s=Math.max(32,Math.min(t.clientWidth-32,n));this.S.style.left=`${n}px`,this.S.style.top=`${Math.max(0,o.top-r.top-t.clientTop)}px`,this.Y.style.left=`${s-n}px`,this.Y.textContent=`${Math.round(e.column.currentWidth)} px`}so(e){e.handle.classList.remove("mach-header-resize--active"),this.S?.remove(),this.S=null,this.Y=null}ao(e,t){let r=Number.isFinite(t)?t:e.startX;return e.startWidth+r-e.startX}jt(e){let t=this.active;return t&&e.pointerId===t.pointerId?t:null}Ut(){this.D&&cancelAnimationFrame(this.D),this.D=0}no(e){window.removeEventListener("pointermove",this.H),window.removeEventListener("pointerup",this.x,!0),window.removeEventListener("pointercancel",this.X,!0),e.handle.removeEventListener("lostpointercapture",this.oo)}destroy(){this.cancelResize(!1),this.Ut(),this.core.skeleton.root?.classList.remove("mach-root--resizing")}};function f(i,e,t){let r=document.createElement(i);if(e&&(r.className=e),t)for(let o of Object.keys(t))r.setAttribute(o,t[o]);return r}var hn=["--mach-font-family","--mach-font-size","--mach-font-size-sm","--mach-header-font-weight","--mach-cell-padding","--mach-header-h","--mach-primary","--mach-primary-weak","--mach-success","--mach-warning","--mach-danger","--mach-info","--mach-border-color","--mach-border-width","--mach-header-bg","--mach-header-fg","--mach-body-bg","--mach-body-fg","--mach-row-hover-bg","--mach-radius-sm","--mach-radius","--mach-radius-lg","--mach-shadow-sm","--mach-shadow","--mach-transition","--mach-z-popup","--mach-z-menu"];function L(i,e){if(i.classList.add("mach-portal"),!e)return;let t=window.getComputedStyle(e);for(let r of hn){let o=t.getPropertyValue(r).trim();o&&i.style.setProperty(r,o)}i.style.colorScheme=t.colorScheme}function E(i,e,t){return i<e?e:i>t?t:i}var zr=0;function _r(i="rg"){return zr++,`${i}-${zr}`}var Wr='<svg viewBox="0 0 16 16" width="12" height="12" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M2 3.5h12L9.5 8v4.5L6.5 14V8L2 3.5z"/></svg>',$r='<svg viewBox="0 0 16 16" width="10" height="10" fill="currentColor"><path d="M8 3l4 5H4l4-5z"/></svg>',Kr='<svg viewBox="0 0 16 16" width="10" height="10" fill="currentColor"><path d="M8 13l4-5H4l4 5z"/></svg>',qr='<svg viewBox="0 0 16 16" width="12" height="12" fill="none" stroke="currentColor" stroke-width="1.35" stroke-linecap="round"><path d="M2 4h3m3 0h6M2 8h7m3 0h2M2 12h1m3 0h8"/><circle cx="6.5" cy="4" r="1.35"/><circle cx="10.5" cy="8" r="1.35"/><circle cx="4.5" cy="12" r="1.35"/></svg>';var Ur=6,$e=class{constructor(e){this.core=e;this.pending=null;this.fe=null;this.Yt=!1;this.y=0;this.st=null;this.H=e=>{if(this.fe){this.sn(e);return}let t=this.pending;t&&(Math.abs(e.clientX-t.startX)<Ur&&Math.abs(e.clientY-t.startY)<Ur||this.an(e))};this.x=e=>{this.pending=null,e.type!=="pointercancel"&&this.fe&&this.Jt(e.clientX,e.clientY),this.Xt();let t=this.lo();t&&e.type!=="pointercancel"&&t.targetIndex>=0&&this.core.moveColumn(t.column.id,t.targetIndex)}}onPointerDown(e,t){e.button===0&&t.movable&&(this.pending={column:t,startX:e.clientX,startY:e.clientY},window.addEventListener("pointermove",this.H),window.addEventListener("pointerup",this.x),window.addEventListener("pointercancel",this.x))}didDrag(){let e=this.Yt;return this.Yt=!1,e}an(e){let t=this.pending;if(!t)return;let r=this.ln(t.column);if(!r||!r.parentElement){this.Xt();return}this.Yt=!0;let o=f("div","mach-drop-indicator"),n=f("div","mach-column-drag-ghost");n.textContent=t.column.colDef.headerName??t.column.colDef.field??t.column.id,n.ariaHidden="true",L(n,this.core.skeleton.root),document.body.appendChild(n),r.parentElement.appendChild(o),r.classList.add("mach-header-cell--dragging"),this.core.skeleton.root.classList.add("mach-root--dragging");let s=this.core.bodyRenderer.paneForColumn(t.column),a=this.core.skeleton.headerRowContainers[s],l=this.core.columnModel.getPaneColumns(s),d=new Float64Array(l.length+1),c=new Float64Array(l.length);for(let h=0;h<l.length;h++){let p=l[h].currentWidth;c[h]=d[h]+p/2,d[h+1]=d[h]+p}let u=n.getBoundingClientRect();this.fe={column:t.column,cellEl:r,ghost:n,indicator:o,targetIndex:-1,pane:s,containerLeft:a.getBoundingClientRect().left,startScrollLeft:this.core.skeleton.bodyViewports.center.scrollLeft,fromIndex:l.indexOf(t.column),midpoints:c,offsets:d,ghostWidth:u.width,ghostHeight:u.height},this.Jt(e.clientX,e.clientY)}ln(e){let t=this.core.bodyRenderer.paneForColumn(e);return this.core.skeleton.headerRowContainers[t].querySelector(`.mach-header-cell[data-col-id="${pn(e.id)}"]`)}sn(e){this.st={clientX:e.clientX,clientY:e.clientY},!this.y&&(this.y=requestAnimationFrame(()=>{this.y=0;let t=this.st;this.st=null,t&&this.Jt(t.clientX,t.clientY)}))}Jt(e,t){let r=this.fe;if(!r)return;let o=E(e+12,8,window.innerWidth-r.ghostWidth-8),n=E(t+12,8,window.innerHeight-r.ghostHeight-8);r.ghost.style.transform=`translate3d(${o}px, ${n}px, 0)`;let s=r.pane==="center"?this.core.skeleton.bodyViewports.center.scrollLeft-r.startScrollLeft:0,a=e-(r.containerLeft-s),l=r.midpoints.length;for(let d=0;d<r.midpoints.length;d++)if(a<r.midpoints[d]){l=d;break}r.targetIndex=l>r.fromIndex?l-1:l,r.indicator.style.transform=`translate3d(${r.offsets[l]}px, 0, 0)`}lo(){let e=this.fe;return e?(this.fe=null,e.cellEl.classList.remove("mach-header-cell--dragging"),e.ghost.remove(),e.indicator.remove(),this.core.skeleton.root.classList.remove("mach-root--dragging"),e):null}Xt(){window.removeEventListener("pointermove",this.H),window.removeEventListener("pointerup",this.x),window.removeEventListener("pointercancel",this.x),this.y&&cancelAnimationFrame(this.y),this.y=0,this.st=null}destroy(){this.Xt(),this.lo(),this.pending=null}};function pn(i){return typeof CSS<"u"&&typeof CSS.escape=="function"?CSS.escape(i):i.replace(/[^a-zA-Z0-9_-]/g,"\\$&")}function jr(i,e){let t=i==null?"":String(i);return t.includes(e)||t.includes('"')||t.includes(`
|
|
2
2
|
`)||t.includes("\r")?'"'+t.replace(/"/g,'""')+'"':t}function we(i){return typeof i!="string"||i===""||/^[+-]?(?:\d+(?:\.\d+)?|\.\d+)(?:[eE][+-]?\d+)?$/.test(i)?i:/^[\s\u0000-\u001f]*[=+\-@]/.test(i)?"'"+i:i}function Yt(i,e={}){let t=e.columnSeparator??",",r=e.includeHeader??!0,o=e.protectFormulas??!0,n=[];r&&n.push(i.getHeaderLabels().map(a=>jr(a,t)).join(t));for(let a of i.getRowValues())n.push(a.map(l=>jr(o?we(l):l,t)).join(t));let s=n.join(`\r
|
|
3
3
|
`);return e.prependBOM?"\uFEFF"+s:s}function fn(i,e){let t=e?we(i):i,r=t==null?"":String(t);return/["\t\n\r]/.test(r)?'"'+r.replace(/"/g,'""')+'"':r}function de(i,e=!0){return i.map(t=>t.map(r=>fn(r,e)).join(" ")).join(`
|
|
4
4
|
`)}function Ke(i){return Ue(i," ")}function qe(i,e=","){return Ue(i,e)}function Ue(i,e){let t=[],r=[],o="",n=!1,s=0;for(;s<i.length;){let a=i[s];if(n){if(a==='"'){if(i[s+1]==='"'){o+='"',s+=2;continue}n=!1,s++;continue}o+=a,s++;continue}if(a==='"'&&o===""){n=!0,s++;continue}if(a===e){r.push(o),o="",s++;continue}if(a===`
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var Me="0.31.0";var ke=class{constructor(e){this.onListenerError=e;this.ae=new Map}on(e,t){let r=this.ae.get(e);return r||(r=new Set,this.ae.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.ae.get(e);r&&(r.delete(t),r.size===0&&this.ae.delete(e))}emit(e,t){let r=this.ae.get(e);if(r)for(let o of[...r])try{o(t)}catch(n){console.error(`[mach-table] error in "${e}" listener`,n),this.onListenerError?.(n,e)}}clear(){this.ae.clear()}};var Uo=new Set(["__proto__","prototype","constructor"]);function ue(i){return typeof i!="string"||i.length===0?!1:i.split(".").every(t=>t.length>0&&!Uo.has(t))}function X(i,e){if(i==null||!ue(e))return;if(e.indexOf(".")<0)return i[e];let r=i,o=0;for(;o<e.length;){if(r==null)return;let n=e.indexOf(".",o);if(n<0){r=r[e.slice(o)];break}r=r[e.slice(o,n)],o=n+1}return r}function re(i,e,t){if(i==null||!ue(e))return!1;let r=e.split("."),o=i;for(let n=0;n<r.length-1;n++){if(typeof o!="object"&&typeof o!="function"||o===null)return!1;o[r[n]]==null&&(o[r[n]]={}),o=o[r[n]]}return typeof o!="object"&&typeof o!="function"||o===null?!1:(o[r[r.length-1]]=t,!0)}var jo=new Set(["contains","notContains","equals","notEquals","startsWith","endsWith","blank","notBlank"]),Yo=new Set(["equals","notEquals","lessThan","lessThanOrEqual","greaterThan","greaterThanOrEqual","inRange","blank","notBlank"]),Xo=new Set(["equals","notEquals","lessThan","greaterThan","inRange","blank","notBlank"]);function Jo(i){return i==null||typeof i=="string"||typeof i=="number"&&Number.isFinite(i)}function Qo(i){return i==="text"?jo:i==="number"?Yo:Xo}function Zo(i,e,t){if(i==null||typeof i!="object")return null;let r=i;return typeof r.match!="string"||!t.has(r.match)?null:{match:r.match,...ei(r,e)}}function ei(i,e){let t=e==="number"?yr(i.value):typeof i.value=="string"?i.value:void 0,r=e==="number"?yr(i.value2):typeof i.value2=="string"?i.value2:void 0;return{...t!==void 0?{value:t}:{},...r!==void 0?{value2:r}:{}}}function yr(i){return typeof i=="number"&&Number.isFinite(i)?i:void 0}function ti(i,e){let t=[],r=Qo(e);for(let o of i.slice(0,20)){let n=Zo(o,e,r);n&&t.push(n)}return t}function xt(i){if(i==null||typeof i!="object")return null;let e=i;return e.type==="set"?Array.isArray(e.values)?{type:"set",values:e.values.filter(Jo).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:ti(e.conditions,e.type)}}function ri(i,e){if(typeof i.colId!="string"||!i.colId.trim())return null;let t=i.colId.trim();if(e.validColumnIds?.has(t)===!1)return null;let r=xt(i.filter);return r?{kind:"condition",colId:t,filter:r}:null}function oi(i,e,t){if(!Array.isArray(i.children))return null;let r=[];for(let o of i.children){let n=vr(o,e+1,t);n&&r.push(n)}return r.length===0?null:{kind:"group",operator:i.operator==="or"?"or":"and",children:r,...i.not===!0?{not:!0}:{}}}function ii(i,e,t){return e<=16&&t.nodes<512&&i!=null&&typeof i=="object"}function vr(i,e,t){if(!ii(i,e,t)||t.ancestors.has(i))return null;t.ancestors.add(i),t.nodes++;let r=i,o=r.kind==="condition"?ri(r,t):r.kind==="group"?oi(r,e,t):null;return t.ancestors.delete(i),o}function O(i,e){if(i==null||typeof i!="object")return null;let t=i;if(t.version!==1||t.root==null)return null;let r=vr(t.root,0,{ancestors:new WeakSet,nodes:0,validColumnIds:e});return r?{version:1,root:r}:null}function ni(i,e){return{kind:"condition",colId:i,filter:e}}function J(i,e){if(i==null||typeof i!="object"||Array.isArray(i))return{};let t={};for(let[r,o]of Object.entries(i).slice(0,2e3)){let n=r.trim();if(!n||e?.has(n)===!1)continue;let s=xt(o);s&&(t[n]=s)}return t}function si(i,e,t={}){return{kind:"group",operator:i,children:e,...t.not?{not:!0}:{}}}var Mt={align:"center",sortable:!0,resizable:!0,movable:!0,filter:!1,minWidth:80},he={compact:{rowHeight:30,headerHeight:34,fontSize:12,cellPadding:6},normal:{rowHeight:36,headerHeight:40,fontSize:13,cellPadding:9},large:{rowHeight:44,headerHeight:48,fontSize:14,cellPadding:12}};function S(i,e,t,r=!1){return typeof i!="number"||!Number.isFinite(i)||i<t?e:r?Math.floor(i):i}function ai(i){return i&&Object.prototype.hasOwnProperty.call(he,i)?i:"normal"}function li(i){return i.theme==="light"||i.theme==="dark"||i.theme==="auto"?i.theme:"light"}function di(i,e){let t=typeof i.pagination=="object"&&Array.isArray(i.pagination.pageSizeOptions)?i.pagination.pageSizeOptions:void 0,r=t?[...new Set(t.map(o=>S(o,0,1,!0)).filter(Boolean))]:[10,20,50,100];return r.includes(e)||r.push(e),r.sort((o,n)=>o-n)}function kt(i,e){let t=typeof i=="function"?i(e):X(e,i);return t==null?"":String(t)}function ci(i){let e=i.rowKey,t=e?({data:r})=>kt(e,r):void 0;return{...t?{resolveRowId:t}:{},...e?{rowKey:e}:{}}}function ui(i,e){let t=he[e];return{columnDefs:Array.isArray(i.columnDefs)?i.columnDefs:[],rowData:Array.isArray(i.rowData)?i.rowData:[],defaultColDef:{...Mt,...i.defaultColDef??{}},columnTypes:i.columnTypes??{},...ci(i),rowHeight:S(i.rowHeight,t.rowHeight,1),headerHeight:S(i.headerHeight,t.headerHeight,1),rowBuffer:S(i.rowBuffer,8,0,!0),columnLayout:i.columnLayout==="fit"?"fit":"normal",enableColumnResize:i.enableColumnResize===!0,domLayout:i.domLayout==="autoHeight"?"autoHeight":"normal",rowSelection:i.rowSelection==="single"||i.rowSelection==="multiple"?i.rowSelection:"none",multiSort:i.multiSort??!0,size:e,pinnedTopRowData:Array.isArray(i.pinnedTopRowData)?i.pinnedTopRowData:[],pinnedBottomRowData:Array.isArray(i.pinnedBottomRowData)?i.pinnedBottomRowData:[]}}function hi(i){return{stripedRows:i.stripedRows??!1,rowStyleRules:Array.isArray(i.rowStyleRules)?i.rowStyleRules:[],showCellBorders:i.showCellBorders??!1,theme:li(i),quickFilterText:i.quickFilterText??null,suppressCellFocus:i.suppressCellFocus??!1,suppressRowHoverHighlight:i.suppressRowHoverHighlight??!1,suppressNoRowsOverlay:i.suppressNoRowsOverlay??!1,suppressHeaderFocus:i.suppressHeaderFocus??!1,loading:i.loading??!1,error:i.error??null,className:i.className??""}}function pi(i){return{editType:i.editType==="fullRow"?"fullRow":"cell",editableIndicator:i.editableIndicator==="always"||i.editableIndicator==="none"?i.editableIndicator:"hover",singleClickEdit:i.singleClickEdit??!1,manualSorting:i.manualSorting??!1,manualFiltering:i.manualFiltering??!1,showSummary:i.showSummary??!1,indexOffset:i.indexOffset??0,applyRowDrag:i.applyRowDrag??!0,undoStackSize:S(i.undoStackSize,100,0,!0),asyncTransactionWaitMillis:S(i.asyncTransactionWaitMillis,16,0,!0)}}function fi(i){return{masterDetail:i.masterDetail??!1,detailRowHeight:S(i.detailRowHeight,240,1),detailToggleColumn:i.detailToggleColumn??!0,treeData:i.treeData??!1,childrenKey:i.childrenKey??"children",autoCheckedChildren:i.autoCheckedChildren??!0,defaultExpandAll:i.defaultExpandAll??!1}}function mi(i){let e=typeof i.pagination=="object"?i.pagination:void 0,t=S(e?.pageSize,20,1,!0);return{paginationEnabled:i.pagination!==!1&&i.datasource==null,paginationMode:e?.mode==="server"?"server":"client",paginationPage:S(e?.page,1,1,!0),paginationTotal:S(e?.total,0,0,!0),paginationPageSize:t,paginationPageSizeOptions:di(i,t),paginationShowTotal:e?e.showTotal!==!1:!0,paginationShowSizeSelector:e?e.showPageSizeSelector!==!1:!0}}function gi(i){return{watermarkEnabled:i.watermark!=null&&i.watermark!==!1,watermarkConfig:i.watermark==null||i.watermark===!1?null:i.watermark===!0?{text:"MachTable"}:i.watermark}}function yi(i){return{columnMenu:i.columnMenu??!1,advancedFilterModel:O(i.advancedFilterModel),...vi(i),locale:i.locale??{},suppressWarnings:i.suppressWarnings??!1,enableRangeSelection:i.enableRangeSelection??!1,suppressClipboard:i.suppressClipboard??!1,contextMenu:i.contextMenu??!1,tooltipShowDelay:S(i.tooltipShowDelay,600,0),flashCells:i.flashCells??!0,fillHandle:i.fillHandle??!0,statusBarEnabled:i.statusBar===!0||typeof i.statusBar=="object"&&i.statusBar!=null,statusBarPanels:typeof i.statusBar=="object"&&i.statusBar?.panels?i.statusBar.panels:["rowCount","selectedRowCount","rangeAggregate"]}}function vi(i){let e=i.persistence;return!e||typeof e.key!="string"||!e.key.trim()?{persistence:null}:{persistence:{key:e.key.trim(),debounceMs:S(e.debounceMs,160,0,!0),...e.sections?{sections:[...new Set(e.sections)]}:{},...e.store?{store:e.store}:{}}}}function wi(i){return{datasourceMode:i.datasourceMode==="block"?"block":"sequential",blockSize:S(i.blockSize,100,1,!0),infiniteBufferRows:S(i.infiniteBufferRows,40,0,!0),maxBlocksInCache:S(i.maxBlocksInCache,12,1,!0),datasourceMaxConcurrentRequests:S(i.datasourceMaxConcurrentRequests,4,1,!0),blockPrefetch:S(i.blockPrefetch,1,0,!0),datasourceRowCount:i.datasourceRowCount==null?null:S(i.datasourceRowCount,0,0,!0),dataProcessorMinRows:S(i.dataProcessorMinRows,5e3,1,!0),datasourceRetryCount:S(i.datasourceRetryCount,2,0,!0),datasourceRetryDelay:S(i.datasourceRetryDelay,300,0,!0),datasourceRetryJitter:Math.min(1,S(i.datasourceRetryJitter,.15,0))}}function bi(i){return{ariaLabel:i.ariaLabel??"MachTable data grid",ariaLabelledBy:i.ariaLabelledBy??"",ariaDescribedBy:i.ariaDescribedBy??"",overlayNoRowsTemplate:i.overlayNoRowsTemplate??"",overlayLoadingTemplate:i.overlayLoadingTemplate??"",overlayErrorTemplate:i.overlayErrorTemplate??"",allowUnsafeOverlayHtml:i.allowUnsafeOverlayHtml??!1}}var Ci=["detailRowRenderer","isRowExpandable","aggFuncs","components","actionPolicy","summaryMethod","datasource","getRowHeight","tooltipComponent","getContextMenuItems","initialState","rowEditValidator","isTreeRowExpandable","loadTreeChildren","dataProcessor"];function Ti(i,e){for(let t of Ci)i[t]&&Object.assign(e,{[t]:i[t]})}function Ri(i,e){for(let t of Object.keys(i))t.startsWith("on")&&typeof i[t]=="function"&&Object.assign(e,{[t]:i[t]})}function wr(i){let e=ai(i.size),t={...ui(i,e),...hi(i),...pi(i),...fi(i),...mi(i),...gi(i),...yi(i),...wi(i),...bi(i),features:Array.isArray(i.features)?i.features:[]};return Ti(i,t),Ri(i,t),t}function br(i){return Array.isArray(i)?i.filter(e=>typeof e=="string"&&e.length>0):typeof i=="string"&&i.length>0?[i]:[]}function oe(i,e){return br(i.type).includes(e)}function Cr(i,e,t={}){let r={};for(let o of br(i.type)){let n=t[o];n&&Object.assign(r,n)}return{...e,...r,...i}}var _=class{constructor(e,t){this.manualWidth=null;this.contentWidth=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.contentWidth=null,this.flex=typeof this.colDef.flex=="number"&&Number.isFinite(this.colDef.flex)&&this.colDef.flex>0?this.colDef.flex:null}};var Q=class i{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 i?t.getLeafColumns(e):e.push(t);return e}};function pe(i){return Array.isArray(i.children)}function Ae(i,e){return typeof i=="number"&&Number.isFinite(i)&&i>0?i:e}function Tr(i){let e=Ae(i.minWidth,80);return{min:e,max:Math.max(e,Ae(i.maxWidth,Number.MAX_SAFE_INTEGER))}}function N(i,e){let{min:t,max:r}=Tr(e),o=Ae(i,Ae(e.width,150));return Math.max(t,Math.min(r,o))}function Rr(i,e){let t=i.map(s=>N(s.width??150,s)),r=[],o=0;i.forEach((s,a)=>{let l=s.flex??0;l>0&&(r.push(a),o+=l)});let n=0;for(let s of t)n+=s;if(o>0&&e>n){let s=e-n;for(let a=0;a<4&&s>.5&&r.length>0;a++){let l=[],d=0;for(let p of r){let m=i[p].flex??0;l.push(p),d+=m}let c=[];for(let p=0;p<l.length;p++){let m=l[p],v=i[m].flex??0,g=s*v/d,y=t[m];t[m]=N(y+g,i[m]),c.push(t[m]-y)}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 Di(i,e,t){let r=new Set(i.map((n,s)=>s)),o=t;for(let n=0;n<i.length+1&&r.size>0;n++){let s=0;for(let l of r)s+=Math.max(1,e[l]);if(s<=0)break;let a=!1;for(let l of[...r]){let d=o*(Math.max(1,e[l])/s),c=N(d,i[l]),{min:u,max:h}=Tr(i[l]);(d<u||d>h)&&(e[l]=c,o-=c,r.delete(l),a=!0)}if(!a){for(let l of r)e[l]=N(o*(Math.max(1,e[l])/s),i[l]);break}o=Math.max(0,o)}}function Ei(i,e,t){let r=t-e.reduce((o,n)=>o+n,0);if(!(Math.abs(r)<=.01))for(let o=e.length-1;o>=0;o--){let n=N(e[o]+r,i[o]);if(Math.abs(n-e[o])>.01){e[o]=n;return}}}function Ie(i,e){let t=i.map(r=>N(r.width??150,r));return!Number.isFinite(e)||e<=0||i.length===0||(Di(i,t,e),Ei(i,t,e)),t}var At="__rg_detail_toggle__";function ie(i){return typeof i=="number"&&Number.isFinite(i)&&i>0}var Le=class{constructor(e){this.core=e;this.columns=[];this.E=[];this.left=[];this.center=[];this.right=[];this.sortModel=[];this.defs=[];this.le=1;this.Vt=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?[At]:[]),n=(s,a,l)=>s.map((d,c)=>{if(pe(d)){let y=d.groupId??d.headerName??`group_${c}_${l}`,b=new Q(y,d);return b.parent=a,b.children=n(d.children,b,l+1),b}let u=d,h=u.colId??u.field??`col_${c}`,p=h,m=2;for(;o.has(p);)p=`${h}_${m++}`;o.add(p);let v=new _(p,Cr(u,r,this.core.options.columnTypes));v.parentGroup=a,v.level=l;let g=t.get(p);return g&&(v.manualWidth=g.manualWidth,v.contentWidth=g.contentWidth,v.flex=g.flex,v.hide=g.hide,v.pinned=g.pinned),v});if(this.E=n(this.defs,null,0),this.core.options.masterDetail&&this.core.options.detailToggleColumn){let s=new _(At,{colId:At,headerName:"",width:38,pinned:"left",sortable:!1,resizable:!1,movable:!1,filter:!1});s.isDetailToggle=!0,this.E.unshift(s)}if(this.columns=this.Je(this.E),this.le=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.de()}Je(e,t=[]){for(let r of e)r instanceof Q?this.Je(r.children,t):t.push(r);return t}de(){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.Vt.clear(),this.getOrderedVisible().forEach((t,r)=>this.Vt.set(t.id,r))}getFlatIndex(e){return this.Vt.get(e)??-1}getColumns(){return this.columns}getColumnDefs(){return this.defs}getRootChildren(){return this.E}getHeaderDepth(){return this.le}getColumn(e){return this.columns.find(t=>t.id===e)}getPaneColumns(e){return e==="left"?this.left:e==="right"?this.right:this.center}getOrderedVisible(){return[...this.left,...this.center,...this.right]}getRowGroupColumns(){return this.getOrderedVisible().filter(e=>e.colDef.rowGroup===!0)}getAggColumns(){return this.getOrderedVisible().filter(e=>e.colDef.aggFunc!=null&&e.colDef.rowGroup!==!0)}hasColSpan(){return this.center.some(e=>e.colDef.colSpan!=null)}getGroupLabelColumn(){let e=this.getOrderedVisible();return this.center.find(t=>!t.hasCheckbox&&!t.isDetailToggle)??e.find(t=>!t.hasCheckbox&&!t.isDetailToggle)??e[0]}paneOf(e){return e.pinned==="left"?"left":e.pinned==="right"?"right":"center"}computeLayout(e){this.viewportWidth=e;let t=0;for(let c of[...this.left,...this.right])c.currentWidth=N(c.manualWidth??c.contentWidth??c.colDef.width??150,this.U(c)),t+=c.currentWidth;let r=Math.max(0,e-t),o=[],n=[];for(let c of this.center)(c.colDef.suppressSizeToFit||c.manualWidth!=null?n:o).push(c);let s=0;for(let c of n)c.currentWidth=N(c.manualWidth??c.contentWidth??c.colDef.width??150,this.U(c)),s+=c.currentWidth;let a=o.map(c=>this.U(c)),l=Math.max(0,r-s),d=this.core.options.columnLayout==="fit"?Ie(a,l):Rr(a,l);o.forEach((c,u)=>{c.currentWidth=d[u]})}U(e){let t=e.colDef;return{width:e.manualWidth??e.contentWidth??t.width,minWidth:t.minWidth,maxWidth:t.maxWidth,flex:e.manualWidth==null?e.flex??void 0:void 0}}setColumnWidth(e,t){return ie(t)?(e.manualWidth=N(t,this.U(e)),e.flex=null,!0):!1}setContentWidth(e,t){return ie(t)?(e.resetWidth(),e.contentWidth=N(t,this.U(e)),!0):!1}setColumnVisibility(e,t){let r=this.getColumn(e);!r||r.hide===!t||(r.hide=!t,this.de())}moveColumn(e,t){let r=this.getColumn(e);if(!r)return!1;let o=this.paneOf(r),n=u=>r.parentGroup?!0:this.paneOf(u)===o,s=r.parentGroup?r.parentGroup.children:this.E,a=s.filter(u=>u instanceof _&&!u.hide&&n(u)),l=a.indexOf(r);if(l<0)return!1;a.splice(l,1);let d=Math.max(0,Math.min(t,a.length));a.splice(d,0,r);let c=[];return s.forEach((u,h)=>{u instanceof _&&!u.hide&&n(u)&&c.push(h)}),c.length!==a.length?!1:(c.forEach((u,h)=>{s[u]=a[h]}),this.columns=this.Je(this.E),this.de(),!0)}setColumnPinned(e,t){let r=this.getColumn(e);!r||!r.movable||(r.pinned=t,this.de())}getColumnState(){return this.columns.map(e=>({colId:e.id,hide:e.hide,width:e.manualWidth??e.currentWidth,flex:e.flex,widthMode:e.manualWidth==null?"auto":"manual",contentWidth:e.contentWidth??void 0,pinned:e.pinned}))}applyColumnState(e){let t=new Map(e.map(r=>[r.colId,r]));for(let r of this.columns){let o=t.get(r.id);o&&this.Di(r,o)}this.Ei(e),this.de()}Di(e,t){typeof t.hide=="boolean"&&(e.hide=t.hide),t.widthMode==="auto"?(e.resetWidth(),ie(t.flex)&&(e.flex=t.flex)):ie(t.flex)?(e.flex=t.flex,e.manualWidth=null):ie(t.width)&&(e.manualWidth=N(t.width,this.U(e)),e.flex=null),ie(t.contentWidth)&&(e.contentWidth=N(t.contentWidth,this.U(e))),e.movable&&(t.pinned==="left"||t.pinned==="right"||t.pinned===null)&&(e.pinned=t.pinned)}Ei(e){let t=new Map;e.forEach((o,n)=>t.set(o.colId,n));let r=o=>o.pinned==="left"?"left":o.pinned==="right"?"right":"center";for(let o of["left","center","right"]){let n=this.E.filter(d=>d instanceof _&&!d.hide&&d.parentGroup===null&&r(d)===o);if(n.length<2)continue;let s=n.filter(d=>d.movable),a=s.slice().sort((d,c)=>(t.get(d.id)??Number.MAX_SAFE_INTEGER)-(t.get(c.id)??Number.MAX_SAFE_INTEGER));if(a.every((d,c)=>d===s[c]))continue;let l=[];this.E.forEach((d,c)=>{d instanceof _&&!d.hide&&d.parentGroup===null&&r(d)===o&&d.movable&&l.push(c)}),l.forEach((d,c)=>{this.E[d]=a[c]})}this.columns=this.Je(this.E)}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.de()}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),n=o>=0?r[o].direction:null,s=n===null?"asc":n==="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 Er(i){return i==null?"":String(i).toLowerCase()}function Si(i,e,t){let r=Er(i),o=e.map(n=>{let s=(n.value??"").toLowerCase();switch(n.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 xi(i,e,t){switch(t.match){case"equals":return i===e;case"notEquals":return i!==e;case"lessThan":return i<e;case"lessThanOrEqual":return i<=e;case"greaterThan":return i>e;case"greaterThanOrEqual":return i>=e;case"inRange":return i>=e&&i<=(t.value2??e);default:return!0}}function Mi(i,e){let t=i==null||i==="";if(e.match==="blank")return t;if(e.match==="notBlank")return!t;if(t)return!1;let r=typeof i=="number"?i:Number(i);if(Number.isNaN(r))return!1;let o=e.value;return o==null||Number.isNaN(o)?!1:xi(r,o,e)}function ki(i,e,t){let r=e.map(o=>Mi(i,o));return r.length===0?!0:t==="or"?r.some(Boolean):r.every(Boolean)}function Pe(i){if(i==null||i==="")return null;if(i instanceof Date)return isNaN(i.getTime())?null:i.getTime();if(typeof i=="number")return i;let e=Date.parse(String(i));return isNaN(e)?null:e}function Ai(i,e,t){let r=e.map(o=>{let n=Pe(i)==null;if(o.match==="blank")return n;if(o.match==="notBlank")return!n;if(n)return!1;let s=Pe(i),a=o.value!=null?Pe(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?Pe(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 Ii(i,e){return e.length===0?!0:e.some(t=>t==null&&i==null||t===i)}function Sr(i,e){let t=e.type!=="set"&&e.operator==="or"?"or":"and";switch(e.type){case"text":return Si(i,e.conditions,t);case"number":return ki(i,e.conditions,t);case"date":return Ai(i,e.conditions,t);case"set":return Ii(i,e.values);default:return!0}}function It(i,e,t,r){if(i.kind==="condition"){let n=e.get(i.colId);return!n||Sr(r(t,n),i.filter)}let o=i.operator==="or"?i.children.some(n=>It(n,e,t,r)):i.children.every(n=>It(n,e,t,r));return i.not?!o:o}function Li(i,e,t,r){return t?It(t.root,new Map(e.map(o=>[o.id,o])),i,r):!0}function Lt(i,e,t,r,o,n){for(let s of Object.keys(t)){let a=t[s],l=e.find(c=>c.id===s);if(!l)continue;let d=n(i,l);if(!Sr(d,a))return!1}if(!Li(i,e,r,n))return!1;if(o&&o.trim()!==""){let s=o.trim().toLowerCase().split(/\s+/);for(let a of s)if(!e.some(d=>Er(n(i,d)).includes(a)))return!1}return!0}var xr=typeof Intl<"u"?new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"}):null;function Pi(i,e){let t=i==null||i==="",r=e==null||e==="";return!t&&!r?null:t&&r?0:t?1:-1}function Gi(i,e){let t=Number.isNaN(i),r=Number.isNaN(e);return t||r?t===r?0:t?1:-1:i-e}function Ni(i,e){return i===e?0:i?1:-1}function Ge(i,e){let t=Pi(i,e);if(t!==null)return t;if(typeof i=="number"&&typeof e=="number")return Gi(i,e);if(i instanceof Date&&e instanceof Date)return i.getTime()-e.getTime();if(typeof i=="boolean"&&typeof e=="boolean")return Ni(i,e);let r=String(i),o=String(e);return xr?xr.compare(r,o):r.localeCompare(o)}function Pt(i,e,t,r){let o=new Map;for(let l of t)o.set(l.id,l);let n=[],s=[];for(let l of e){let d=o.get(l.colId);d&&(n.push(d.colDef.comparator??Ge),s.push(l.direction))}let a=i.map(l=>({node:l,values:e.map(d=>r(l,o.get(d.colId)))}));return a.sort((l,d)=>{for(let c=0;c<n.length;c++){let u=n[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(i){return i.filter(e=>typeof e=="number"&&!isNaN(e))}var Mr={sum:i=>Ne(i).reduce((e,t)=>e+t,0),avg:i=>{let e=Ne(i);return e.length===0?null:e.reduce((t,r)=>t+r,0)/e.length},count:i=>i.length,min:i=>{let e=Ne(i);return e.length===0?null:Math.min(...e)},max:i=>{let e=Ne(i);return e.length===0?null:Math.max(...e)},first:i=>i.length>0?i[0]:null,last:i=>i.length>0?i[i.length-1]:null};function Gt(i){let e={...Mr,...i??{}};return t=>e[t]}function ne(i){if(i.reason instanceof Error)return i.reason;let e=new Error(typeof i.reason=="string"?i.reason:"Block request aborted");return e.name="AbortError",e}function Fe(i){return Number.isFinite(i)?Math.max(1,Math.trunc(i)):1}var Oe=class{constructor(e,t,r=4){this.maxBlocks=e;this.onEvict=t;this.maxConcurrentRequests=r;this.b=new Map;this.f=new Map;this.zr=0;this.Bt=0;this.hitCount=0;this.missCount=0;this.evictionCount=0;this.Qe=0;this.maxBlocks=Fe(e),this.maxConcurrentRequests=Fe(r)}configure(e,t=this.maxConcurrentRequests){this.maxBlocks=Fe(e),this.maxConcurrentRequests=Fe(t),this._r(),this.Ze()}peek(e){let t=this.b.get(e);if(t)return t.touchedAt=++this.zr,t}has(e){return this.b.has(e)}load(e,t,r,o=0){if(r?.aborted)return Promise.reject(ne(r));let n=this.peek(e);if(n)return this.hitCount++,Promise.resolve(n);let s=this.f.get(e);if(s)return this.hitCount++,s.priority=Math.max(s.priority,o),this.Ze(),this.Wr(e,s,r);this.missCount++;let a=new AbortController,l,d,c=new Promise((p,m)=>{l=p,d=m}),u={controller:a,promise:c,consumers:0,loader:t,priority:o,state:"queued",resolve:l,reject:d};this.f.set(e,u);let h=this.Wr(e,u,r);return this.Ze(),h}purge(){this.Bt++;for(let e of this.f.values())e.controller.abort(),e.state==="queued"&&e.reject(ne(e.controller.signal));this.f.clear();for(let[e,t]of this.b)this.onEvict?.(e,t);this.b.clear()}snapshot(){let e=0,t=0;for(let r of this.b.values())e+=r.rows.length;for(let r of this.f.values())r.state==="active"&&t++;return{cachedBlockCount:this.b.size,loadingBlockCount:this.f.size,activeRequestCount:t,queuedRequestCount:Math.max(0,this.f.size-t),cachedRowCount:e,hitCount:this.hitCount,missCount:this.missCount,evictionCount:this.evictionCount}}Ze(){for(;this.Qe<this.maxConcurrentRequests;){let e,t;for(let[r,o]of this.f)o.state!=="queued"||o.controller.signal.aborted||(!t||o.priority>t.priority)&&(e=r,t=o);if(e==null||!t)return;this.Si(e,t)}}Si(e,t){t.state="active",this.Qe++;let r=this.Bt;this.xi(t).then(o=>{r===this.Bt&&!t.controller.signal.aborted&&(this.b.set(e,{rows:o.rows,...o.lastRow==null?{}:{lastRow:o.lastRow},touchedAt:++this.zr}),this._r()),t.resolve(o)},t.reject).finally(()=>{this.Qe=Math.max(0,this.Qe-1),this.f.get(e)===t&&this.f.delete(e),this.Ze()})}xi(e){let{signal:t}=e.controller;return t.aborted?Promise.reject(ne(t)):new Promise((r,o)=>{let n=()=>o(ne(t));t.addEventListener("abort",n,{once:!0}),Promise.resolve().then(()=>e.loader(t)).then(r,o).finally(()=>{t.removeEventListener("abort",n)})})}Wr(e,t,r){return t.consumers++,new Promise((o,n)=>{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.f.get(e)===t&&(this.f.delete(e),t.controller.abort(r?.reason),t.state==="queued"&&t.reject(ne(t.controller.signal))),n(ne(r))});r?.addEventListener("abort",l,{once:!0}),t.promise.then(d=>a(()=>o(d)),d=>a(()=>n(d instanceof Error?d:new Error(String(d??"Block request failed")))))})}_r(){for(;this.b.size>this.maxBlocks;){let e=-1,t=Number.POSITIVE_INFINITY;for(let[o,n]of this.b)n.touchedAt<t&&(e=o,t=n.touchedAt);if(e<0)return;let r=this.b.get(e);this.b.delete(e),this.evictionCount++,r&&this.onEvict?.(e,r)}}};function fe(i,e){if(i==null||typeof i!="object")return;let t=i[e];return Array.isArray(t)?t:void 0}var He=class{constructor(e){this.core=e;this.all=[];this.h=[];this.m=new Map;this.C=[];this.e=new Map;this.filterModel={};this.advancedFilterModel=null;this.quickFilter=null;this.d=new Set;this.g=new Set;this.Ee=[];this.et=new Map;this.Mi=[];this.a=null;this.ce=!1;this.$r=!1;this.ue=0;this.tt=null;this.Se=null;this.rt=null;this.ot=new WeakMap;this.xe=new WeakMap;this.N=new Map;this.Me=new Map;this.ke=0;this.A=new Map;this.F=new Map;this.Ae=new Set;this.j=new Oe(12,e=>this.Kr(e));this.Ie=0;this.it=null;this.zt=!1;this.qr=0;this.T=[];this.page=1;this.pageSize=20;this.advancedFilterModel=O(e.options.advancedFilterModel)}resolveRowId(e,t,r){let o=this.core.options.resolveRowId;if(!o)return r;try{let n=o({data:e,index:t,api:this.core.getApi()});if(typeof n=="string"&&n.length>0)return n;this.core.reportError(new Error("rowKey must resolve to a non-empty identifier"),"rowKey",{index:t})}catch(n){this.core.reportError(n,"rowKey",{index:t})}return r}get isTree(){return this.core.options.treeData}get isInfinite(){return this.core.options.datasource!=null}get isBlockDatasource(){return this.isInfinite&&this.core.options.datasourceMode==="block"}getDisplayTotalCount(){if(this.isInfinite){if(this.isBlockDatasource)return this.he();let e=Math.max(0,this.C.length-this.all.length);return(this.a??this.all.length)+e}return this.C.length}getDisplayRevision(){return this.ke}isLoadingInfinite(){return this.$r}startInfinite(e){return!this.isInfinite||e?.aborted?Promise.resolve():(this._t(),this.a=null,this.ce=!1,this.all=[],this.h=[],this.e.clear(),this.d.clear(),this.core.undoService.clear(),this.refreshPipeline(),this.core.requestUpdate({data:!0}),this.isBlockDatasource?(this.j.configure(this.core.options.maxBlocksInCache,this.core.options.datasourceMaxConcurrentRequests),this.Wt(0,e)):this.Ur(0,void 0,e))}reloadInfinite(e){return this.isInfinite?this.startInfinite(e):Promise.resolve()}setInfiniteLoading(e){this.$r=e,this.core.skeleton.setInfiniteLoading(e,this.core.getLocaleText("loading"))}Ur(e,t,r){if(!this.isInfinite||this.ce||this.a!=null&&e>=this.a)return Promise.resolve();let o=this.core.options.datasource,n=this.core.options.blockSize,s=t??e+n;if(s<=e)return Promise.resolve();let a=++this.ue,l=new AbortController,d=()=>l.abort(r?.reason);return r?.addEventListener("abort",d,{once:!0}),this.tt=l,this.ce=!0,this.setInfiniteLoading(!0),new Promise(c=>{let u=!1,h=0;this.rt=c;let p=v=>{u||(u=!0,r?.removeEventListener("abort",d),a===this.ue&&(this.ce=!1,this.tt=null,this.rt=null,this.setInfiniteLoading(!1),v!=null&&v?.name!=="AbortError"&&this.core.reportError(v,"datasource.getRows",{startRow:e,endRow:s})),c())},m=()=>{if(u||a!==this.ue||l.signal.aborted||this.core.isDestroyed()){p();return}h++;let v=!1,g=y=>{if(!(v||u)){if(v=!0,a!==this.ue||l.signal.aborted||this.core.isDestroyed()){p();return}if(h<=this.core.options.datasourceRetryCount){let b=this.jr(h);this.Se=setTimeout(()=>{this.Se=null,m()},b);return}p(y??new Error("Datasource request failed"))}};try{let y=o.getRows({startRow:e,endRow:s,sortModel:this.core.columnModel.getSortModel(),filterModel:this.getFilterModel(),advancedFilterModel:this.getAdvancedFilterModel(),quickFilterText:this.quickFilter,signal:l.signal,onSuccess:(b,T)=>{if(v||u)return;if(v=!0,a!==this.ue||this.core.isDestroyed()||l.signal.aborted){p();return}let x=b??[];typeof T=="number"&&T>=0?this.a=T:x.length<s-e&&(this.a=e+x.length);let w=this.all.length===0;this.ki(x),p(),this.refreshPipeline(),this.core.requestUpdate({data:!0}),w&&this.core.relayout(),this.core.headerRenderer.refreshSelectAllCheckbox()},fail:g});y&&typeof y.catch=="function"&&y.catch(g)}catch(y){g(y)}};m()})}_t(){this.ue++,this.Se!=null&&clearTimeout(this.Se),this.Se=null,this.tt?.abort(),this.tt=null,this.ce=!1,this.setInfiniteLoading(!1),this.rt?.(),this.rt=null,this.j.purge(),this.A.clear(),this.F.clear(),this.Ae.clear()}ki(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.e.has(o)){this.core.reportError(new Error(`Duplicate row id: ${o}`),"datasource.getRows",{rowId:o});continue}let n={id:o,data:t,rowIndex:-1,selected:this.core.selectionService.isSelected(o)};this.all.push(n),this.e.set(o,n),this.h.push(n)}}Wt(e,t,r=0){if(!this.isBlockDatasource||e<0)return Promise.resolve();if(t?.aborted)return Promise.reject(this.Yr(t.reason));let o=this.core.options.blockSize,n=e*o;if(n>=this.he())return Promise.resolve();let s=this.a==null?n+o:Math.min(this.a,n+o),a=this.j.load(e,l=>this.Ai(n,s,l),t,r);return this.setInfiniteLoading(this.all.length===0&&this.j.snapshot().loadingBlockCount>0),a.then(l=>{t?.aborted||this.core.isDestroyed()||!this.isBlockDatasource||this.Ae.has(e)||(this.Ii(e,l),this.refreshPipeline(),this.core.requestUpdate({data:!0}),this.core.headerRenderer.refreshSelectAllCheckbox())}).catch(l=>{throw l?.name!=="AbortError"&&this.core.reportError(l,"datasource.getRows",{startRow:n,endRow:s}),l}).finally(()=>{this.setInfiniteLoading(this.all.length===0&&this.j.snapshot().loadingBlockCount>0)})}Ai(e,t,r){let o=this.core.options.datasource;return new Promise((n,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.Yr(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=v=>{if(!(p||d)){if(p=!0,r.aborted||this.core.isDestroyed()){u();return}if(a<=this.core.options.datasourceRetryCount){let g=this.jr(a);l=setTimeout(()=>{l=null,h()},g)}else c(v)}};try{let v=o.getRows({startRow:e,endRow:t,sortModel:this.core.columnModel.getSortModel(),filterModel:this.getFilterModel(),advancedFilterModel:this.getAdvancedFilterModel(),quickFilterText:this.quickFilter,signal:r,onSuccess:(g,y)=>{p||d||(p=!0,d=!0,r.removeEventListener("abort",u),n({rows:g??[],...typeof y=="number"&&y>=0?{lastRow:y}:{}}))},fail:m});v&&typeof v.catch=="function"&&v.catch(m)}catch(v){m(v)}};h()})}Ii(e,t){let r=this.core.options.blockSize,o=e*r;this.Kr(e),typeof t.lastRow=="number"&&t.lastRow>=0?this.a=t.lastRow:t.rows.length<r&&(this.a=o+t.rows.length),t.rows.forEach((n,s)=>{if(n==null)return;let a=o+s;if(this.a!=null&&a>=this.a)return;let l=this.resolveRowId(n,a,`block-${a}`),d=this.e.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:n,rowIndex:a,selected:this.core.selectionService.isSelected(l)};this.A.set(a,c),this.F.delete(a),this.e.set(l,c),this.xe.set(c,a+1)}),this.Xr(),this.Ae.add(e)}Kr(e){this.Ae.delete(e);let t=this.core.options.blockSize,r=e*t;for(let o=r;o<r+t;o++){let n=this.A.get(o);n&&(this.A.delete(o),this.e.get(n.id)===n&&this.e.delete(n.id))}this.Xr()}Xr(){this.all=[...this.A.entries()].sort(([e],[t])=>e-t).map(([,e])=>e),this.h=this.all}he(){if(this.a!=null)return this.a;if(this.core.options.datasourceRowCount!=null)return this.core.options.datasourceRowCount;if(this.A.size===0)return this.core.options.blockSize;let e=0;for(let t of this.A.keys())e=Math.max(e,t+1);return e+this.core.options.blockSize}Li(e){let t=this.F.get(e);if(!t&&(t={id:`__mach_loading_${e}`,data:null,rowIndex:e,selected:!1,loading:!0},this.F.set(e,t),this.F.size>2e3)){let r=this.F.keys().next().value;r!=null&&this.F.delete(r)}return t}Yr(e){if(e instanceof Error)return e;let t=new Error(typeof e=="string"?e:"Operation aborted");return t.name="AbortError",t}jr(e){let t=Math.min(this.core.options.datasourceRetryDelay*2**Math.max(0,e-1),3e4),r=this.core.options.datasourceRetryJitter;return Math.max(0,Math.round(t*(1+(Math.random()*2-1)*r)))}checkInfiniteScroll(e){if(this.isBlockDatasource){this.Pi(e);return}if(!this.isInfinite||this.ce)return;let t=this.all.length;if(this.a!=null&&t>=this.a)return;let r=this.core.options.infiniteBufferRows;if(e+r<t&&e<t)return;let o=this.core.options.blockSize,n=this.a==null?t+o:Math.min(this.a,t+o);this.Ur(t,n)}Pi(e){if(e<0)return;let t=this.core.options.blockSize,r=Math.floor(e/t),o=this.core.options.blockPrefetch,n=r<this.qr?-1:1;this.qr=r;for(let s=0;s<=o;s++){let a=s===0?[r]:[r+n*s,r-n*s];for(let l of a)l<0||l*t>=this.he()||this.Wt(l,void 0,o-s+1).catch(()=>{})}}onServerParamsChanged(){return this.reloadInfinite().catch(()=>{})}onDatasourceChanged(){return this._t(),this.isInfinite?this.startInfinite().catch(()=>{}):(this.a=null,this.setRowData(this.core.options.rowData),this.core.requestUpdate({data:!0}),Promise.resolve())}destroy(){this._t(),this.Jr(),this.$t(),this.core.options.dataProcessor?.destroy?.()}ensureRowsLoaded(e,t,r){if(!this.isBlockDatasource)return Promise.resolve();let o=this.core.options.blockSize,n=Math.max(0,Math.trunc(e)),s=Math.min(this.he(),Math.max(n,Math.trunc(t))),a=Math.floor(n/o),l=Math.max(a,Math.floor(Math.max(n,s-1)/o)),d=[];for(let c=a;c<=l;c++)d.push(this.Wt(c,r,100));return Promise.all(d).then(()=>{})}purgeDatasourceCache(){this.isBlockDatasource&&(this.j.purge(),this.A.clear(),this.F.clear(),this.Ae.clear(),this.all=[],this.h=[],this.e.clear(),this.refreshPipeline(),this.core.requestUpdate({data:!0}))}getDatasourceCacheSnapshot(){return this.j.snapshot()}setRowData(e){this.Jr(),this.core.changeTracker.clear();let t=this.core.options.resolveRowId,r=this.core.options.childrenKey,o=[],n=[],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 v=this.isTree?fe(c,r):void 0,g={id:m,data:c,rowIndex:-1,selected:!1,treeChildrenLoaded:Array.isArray(v)};if(this.ot.set(g,u),o.push(g),s.set(m,g),h!=null){let y=a.get(h)??[];y.push(m),a.set(h,y)}else n.push(g);if(this.isTree&&Array.isArray(v))for(let y of v)y!=null&&d(y,u+1,m);return g};(e??[]).forEach(c=>{c!=null&&d(c,0,null)}),this.all=o,this.h=n,this.m=a,this.e=s,this.core.undoService.clear();for(let c of[...this.d])s.has(c)||this.d.delete(c);if(this.core.options.defaultExpandAll)for(let c of o)this.getChildrenCount(c.id)>0&&this.d.add(c.id);this.core.selectionService.onRowsRebuilt(t!=null),this.refreshPipeline()}getChildrenIds(e){return this.m.get(e)??[]}getChildrenCount(e){return this.m.get(e)?.length??0}hasChildren(e){return this.getChildrenCount(e)>0}isTreeRowLoading(e){return this.e.get(e)?.treeLoading===!0}Jr(){for(let e of this.N.values())e.abort();this.N.clear(),this.Me.clear()}loadTreeChildren(e,t=!1){let r=this.e.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.e.get(l)?.data;return d==null?[]:[d]}));let n=this.Me.get(e);if(n&&!t)return n;this.N.get(e)?.abort();let s=new AbortController;this.N.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.Gi(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.N.get(e)===s&&(this.N.delete(e),this.Me.delete(e),r.treeLoading=!1,this.core.requestUpdate({data:!0}))});return this.Me.set(e,a),a}Gi(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.Ni(t,r);for(let s of r)this.N.get(s)?.abort(),this.N.delete(s),this.Me.delete(s),this.m.delete(s),this.e.delete(s),this.d.delete(s);this.m.delete(e.id);let n=this.getTreeDepth(e)+1;for(let s of t)s!=null&&this.Kt(e,s,n);this.Qr(),this.core.selectionService.onRowsRebuilt(this.core.options.resolveRowId!=null),this.refreshPipeline(),this.core.requestUpdate({data:!0})}Ni(e,t){let r=this.core.options.resolveRowId,o=r?new Set([...this.e.keys()].filter(l=>!t.has(l))):null,n=new WeakSet,s=[...e],a=0;for(;s.length>0;){let l=s.pop();if(l==null)continue;if(typeof l=="object"){if(n.has(l))throw new TypeError("[MachTable] Lazy tree children contain a cyclic object graph.");n.add(l)}if(r&&o){let c=r({data:l,index:a++,api:this.core.getApi()});if(typeof c!="string"||c.length===0)throw new TypeError("[MachTable] rowKey must resolve to a non-empty identifier for lazy tree children.");if(o.has(c))throw new Error(`Duplicate row id: ${c}`);o.add(c)}let d=fe(l,this.core.options.childrenKey);d&&s.push(...d)}}applyTransaction(e,t=!0){let r=this.core.options.resolveRowId,o=[],n=[];if(e.remove?.length){let a=new Set,l=new Set,d=u=>{if(r){let p=[this.resolveRowId(u,-1,`__missing_remove_${this.core.nextId()}`)];for(;p.length>0;){let m=p.pop();if(!a.has(m)){a.add(m);for(let v of this.m.get(m)??[])p.push(v)}}}else{let h=[u];for(;h.length>0;){let p=h.pop();l.add(p);let m=this.isTree?fe(p,this.core.options.childrenKey):void 0;if(m)for(let v of m)h.push(v)}}};e.remove.forEach(d),this.all=this.all.filter(u=>{let h=a.has(u.id)||u.data!=null&&l.has(u.data);return h&&(n.push(u.id),this.e.delete(u.id),this.m.delete(u.id)),!h});let c=new Set(this.all);this.h=this.h.filter(u=>c.has(u))}if(e.update?.length)for(let a of e.update){let l;r?l=this.e.get(this.resolveRowId(a,-1,`__missing_update_${this.core.nextId()}`)):l=this.all.find(d=>d.data===a),l&&(l.data=a,n.push(l.id),this.core.bodyRenderer.invalidateRowHeight(l),o.push(l))}if(e.add?.length){let a=e.addIndex!=null?Math.max(0,Math.min(e.addIndex,this.h.length)):this.h.length,l=[];e.add.forEach((d,c)=>{let u=this.resolveRowId(d,a+c,`add-${this.core.nextId()}`);if(this.e.has(u)){this.core.reportError(new Error(`Duplicate row id: ${u}`),"transaction.add",{rowId:u});return}let h={id:u,data:d,rowIndex:-1,selected:!1};this.e.set(u,h),this.ot.set(h,0);let p=this.isTree?fe(d,this.core.options.childrenKey):void 0;if(p)for(let m of p)m!=null&&this.Kt(h,m,1);l.push(h)}),this.h.splice(a,0,...l),this.Qr()}let s=this.Fi(e);return t&&(s?this.refreshPipeline():o.length>0&&this.Zr()),this.core.changeTracker.clearRows(n),{pipelineChanged:s,updatedRowIds:o.map(a=>a.id)}}applyTransactions(e){if(e.length===0)return{pipelineChanged:!1,updatedRowIds:[]};let t=!1,r=new Set;for(let o of e){let n=this.applyTransaction(o,!1);t||(t=n.pipelineChanged);for(let s of n.updatedRowIds)r.add(s)}return t?this.refreshPipeline():r.size>0&&this.Zr(),{pipelineChanged:t,updatedRowIds:[...r]}}Fi(e){return e.add?.length||e.remove?.length?!0:e.update?.length?this.isTree||this.core.options.masterDetail||this.core.columnModel.getRowGroupColumns().length>0||!this.core.options.manualFiltering&&this.isFilterPresent()||!this.core.options.manualSorting&&this.core.columnModel.getSortModel().length>0||this.core.options.getRowHeight?!0:this.core.columnModel.getOrderedVisible().some(t=>t.colDef.autoHeight===!0||t.colDef.autoRowSpan===!0||t.colDef.rowSpan!=null):!1}Zr(){this.core.emit("modelUpdated",{rowCount:this.T.length})}Kt(e,t,r){let o=this.resolveRowId(t,-1,`add-${this.core.nextId()}`);if(this.e.has(o)){this.core.reportError(new Error(`Duplicate row id: ${o}`),"transaction.add",{rowId:o});return}let n=fe(t,this.core.options.childrenKey),s={id:o,data:t,rowIndex:-1,selected:!1,treeChildrenLoaded:Array.isArray(n)};this.e.set(o,s),this.ot.set(s,r);let a=this.m.get(e.id)??[];if(a.push(s.id),this.m.set(e.id,a),!!n)for(let l of n)l!=null&&this.Kt(s,l,r+1)}Qr(){this.all=[];let e=t=>{this.all.push(t),this.e.has(t.id)||this.e.set(t.id,t);for(let r of this.m.get(t.id)??[]){let o=this.e.get(r);o&&e(o)}};for(let t of this.h)e(t)}setFilterModel(e){let t=JSON.stringify(this.filterModel),r=new Set(this.core.columnModel.getColumns().map(o=>o.id));return this.filterModel=J(e,r),JSON.stringify(this.filterModel)!==t}getFilterModel(){return{...this.filterModel}}setAdvancedFilterModel(e){let t=new Set(this.core.columnModel.getColumns().map(n=>n.id)),r=O(e,t),o=JSON.stringify(this.advancedFilterModel);return this.advancedFilterModel=r,this.core.options.advancedFilterModel=r,JSON.stringify(r)!==o}getAdvancedFilterModel(){return O(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.Oi(e);return}if(this.Hi(e))return;let o;if(this.isTree)o=this.Vi(t,r);else{o=this.all,this.isFilterPresent()&&!this.core.options.manualFiltering&&(o=o.filter(d=>Lt(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=Pt(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.Bi(o,l);else if(this.core.options.masterDetail){let d=[];for(let c of o)d.push(c),this.d.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 n=0;o.forEach((s,a)=>{s.rowIndex=a,!s.isDetail&&!s.isGroup&&(n++,this.xe.set(s,n))}),this.T=o,this.pe(),this.eo(r),this.core.emit("modelUpdated",{rowCount:o.length}),this.core.performanceMonitor.recordModel(e)}Oi(e){this.all.forEach((t,r)=>{this.isBlockDatasource||(t.rowIndex=r),this.xe.set(t,this.isBlockDatasource?t.rowIndex+1:r+1)}),this.C=this.all,this.T=this.all,this.et.clear(),this.ke++,this.core.emit("modelUpdated",{rowCount:this.all.length}),this.core.performanceMonitor.recordModel(e)}Hi(e){let t=this.zt;return this.zt=!1,!t&&this.zi()?(this._i(e),!0):(this.$t(),!1)}zi(){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}_i(e){this.$t();let t=this.core.options.dataProcessor;if(!t)return;let r=++this.Ie,o=new AbortController;this.it=o;let n=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:n.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.Ie||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.e.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.xe.set(p,m+1)}),this.T=u,this.pe();let h=(p,m)=>this.core.getCellValue(p,m);this.eo(h),this.core.emit("modelUpdated",{rowCount:u.length}),this.core.performanceMonitor.recordModel(e),this.core.requestUpdate({data:!0})}).catch(d=>{r!==this.Ie||o.signal.aborted||this.core.isDestroyed()||(this.core.reportError(d,"dataProcessor.process"),this.zt=!0,this.refreshPipeline(),this.core.requestUpdate({data:!0}))}).finally(()=>{r===this.Ie&&(this.it=null)})}$t(){this.Ie++,this.it?.abort(),this.it=null}get paginationActive(){return this.core.options.paginationEnabled&&!this.isInfinite}pe(){if(!this.paginationActive){this.C=this.T,this.ke++;return}let e=this.Le(),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.T.forEach((n,s)=>{n.rowIndex=s}),this.C=this.T,this.ke++;return}let r=(this.page-1)*e,o=this.T.slice(r,r+e);o.forEach((n,s)=>{n.rowIndex=s}),this.C=o,this.ke++}Le(){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.T.length}getPageCount(){return this.paginationActive?Math.max(1,Math.ceil(this.getTotalRowCount()/this.Le())):1}getPipelineRows(){return this.T}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.pe(),this.core.requestUpdate({data:!0}),this.core.bodyRenderer.scrollToIndex(0,"top"),t||this.nt())}setPageSize(e){if(!this.paginationActive)return;let t=Math.max(1,Math.round(e)||this.Le()),r=(this.page-1)*this.Le();this.core.options.paginationPageSize=t,this.pageSize=t,this.page=Math.floor(r/t)+1,this.core.options.paginationPage=this.page,this.pe(),this.core.requestUpdate({data:!0}),this.nt()}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.pe(),this.core.requestUpdate({data:!0}),this.nt())}onPaginationOptionsChanged(){this.paginationActive&&(this.page=this.core.options.paginationMode==="server"?this.core.options.paginationPage:1,this.pe(),this.core.requestUpdate({data:!0}),this.nt())}nt(){this.core.emit("paginationChanged",{page:this.getCurrentPage(),pageSize:this.Le(),pageCount:this.getPageCount(),total:this.getTotalRowCount()})}Vi(e,t){let r=this.core.options.manualSorting?[]:this.core.columnModel.getSortModel(),o=new Map,n=this.isFilterPresent()&&!this.core.options.manualFiltering,s=d=>{let c=o.get(d.id);if(c!==void 0)return c;let u=!0;if(n){u=Lt(d,e,this.filterModel,this.advancedFilterModel,this.quickFilter,t);for(let h of this.m.get(d.id)??[]){let p=this.e.get(h);p&&s(p)&&(u=!0)}}return o.set(d.id,u),u},a=[],l=d=>{let c=d;r.length>0&&(c=Pt(d,r,e,t));for(let u of c)if(s(u)&&(a.push(u),this.d.has(u.id))){let h=(this.m.get(u.id)??[]).map(p=>this.e.get(p)).filter(p=>p!=null);l(h)}};return l(this.h),a}Wi(){let e=this.Mi,t=0;for(let r of this.C)!r.isDetail&&!r.isGroup&&(e[t++]=r);return e.length=t,e}$i(e,t,r,o){let n=t.colDef.rowSpan;if(!n)return 1;try{let s=n({api:this.core.getApi(),colDef:t.colDef,column:t,node:e,data:e.data,value:r,rowIndex:e.rowIndex});return Math.max(1,Math.min(Math.round(s)||1,o))}catch(s){return this.core.reportError(s,"rowSpan",{colId:t.id,rowId:e.id}),1}}Ki(e,t,r,o,n){if(!r.colDef.autoRowSpan||o==null||o==="")return 1;let s=1;for(;t+s<e.length&&Ge(o,n(e[t+s],r))===0;)s++;return s}qi(e,t,r){let o=new Int32Array(e.length),n=0;for(;n<e.length;){let s=e[n],a=r(s,t),l=t.colDef.rowSpan?this.$i(s,t,a,e.length-n):this.Ki(e,n,t,a,r);o[n]=l;for(let d=1;d<l;d++)o[n+d]=-1;n+=l}return o}eo(e){if(this.et.clear(),this.isTree||this.core.options.masterDetail||this.core.columnModel.getRowGroupColumns().length>0)return;let t=this.core.columnModel.getOrderedVisible().filter(o=>o.colDef.rowSpan!=null||o.colDef.autoRowSpan===!0);if(t.length===0)return;let r=this.Wi();if(r.length!==0)for(let o of t)this.et.set(o.id,this.qi(r,o,e))}getSpanInfo(e){return this.et.get(e)}getRowSeq(e){return this.xe.get(e)??0}getTreeDepth(e){return this.ot.get(e)??0}Bi(e,t){let r=Gt(this.core.options.aggFuncs),o=this.core.columnModel.getAggColumns();this.Ee=[];let n=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 v of a){let g=this.core.getCellValue(v,c),y=g==null?"(\u7A7A)":String(g),b=u.get(y);b||(b=[],u.set(y,b),h.push(y)),b.push(v)}h.sort((v,g)=>v.localeCompare(g,void 0,{numeric:!0,sensitivity:"base"}));let p=[],m=[];for(let v of h){let g=u.get(v),y=`${d}/g${l}:${v}`;this.Ee.push(y);let b=s(g,l+1,y),T={id:y,data:null,rowIndex:-1,selected:!1,isGroup:!0,groupLevel:l,groupKey:v,leafNodes:b.leaves,aggValues:n(b.leaves)};p.push(T),this.g.has(y)&&p.push(...b.display),m.push(...b.leaves)}return{display:p,leaves:m}};return s(e,0,"").display}isRowExpandable(e){if(this.isTree){if(this.hasChildren(e.id)||e.treeLoading)return!0;if(e.treeChildrenLoaded||!e.data||!this.core.options.loadTreeChildren)return!1;let r=this.core.options.isTreeRowExpandable;if(!r)return!1;try{return r({data:e.data,node:e,api:this.core.getApi()})}catch(o){return this.core.reportError(o,"isTreeRowExpandable",{rowId:e.id}),!1}}if(!this.core.options.masterDetail)return!1;let t=this.core.options.isRowExpandable;if(t)try{return t({data:e.data,node:e,api:this.core.getApi()})}catch(r){return this.core.reportError(r,"isRowExpandable",{rowId:e.id}),!1}return!0}isRowExpanded(e){return this.d.has(e)}getExpandedRowIds(){return[...this.d]}getExpandedGroupIds(){return[...this.g]}restoreExpansion(e,t){this.d=new Set(e.filter(r=>this.e.has(r))),this.g=new Set(t)}expandRow(e){return this.qt(e,!0)}collapseRow(e){return this.qt(e,!1)}toggleDetail(e){return this.qt(e,!this.d.has(e))}qt(e,t){let r=this.e.get(e);return!r||t&&!this.isRowExpandable(r)?!1:(t===this.d.has(e)||(t?this.d.add(e):this.d.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.d.has(t.id)&&this.isRowExpandable(t)&&(this.d.add(t.id),e=!0);e&&(this.refreshPipeline(),this.core.requestUpdate({data:!0}))}collapseAllDetails(){this.d.size!==0&&(this.d.clear(),this.refreshPipeline(),this.core.requestUpdate({data:!0}))}toggleGroup(e){return this.setGroupExpanded(e,!this.g.has(e))}isGroupExpanded(e){return this.g.has(e)}getGroupNode(e){return this.C.find(t=>t.isGroup&&t.id===e)}expandAllGroups(){if(this.Ee.length===0)return;let e=!1;for(let t of this.Ee)this.g.has(t)||(this.g.add(t),e=!0);e&&(this.refreshPipeline(),this.core.requestUpdate({data:!0}))}collapseAllGroups(){this.g.size!==0&&(this.g.clear(),this.refreshPipeline(),this.core.requestUpdate({data:!0}))}setGroupExpanded(e,t){return!this.Ee.includes(e)||t===this.g.has(e)||(t?this.g.add(e):this.g.delete(e),this.refreshPipeline(),this.core.requestUpdate({data:!0})),t}canReorderRows(){return!this.isTree&&!this.isInfinite&&!this.core.options.dataProcessor&&this.core.options.paginationMode!=="server"&&this.core.columnModel.getSortModel().length===0&&this.core.columnModel.getRowGroupColumns().length===0}reorderRowsByDisplayed(e,t){if(!this.canReorderRows()||!Number.isInteger(e)||!Number.isInteger(t))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 n=this.all.indexOf(r),s=this.all.indexOf(o);return n<0||s<0||n===s?!1:(this.all.splice(n,1),this.all.splice(s,0,r),this.refreshPipeline(),this.core.requestUpdate({data:!0}),!0)}getAllNodes(){return this.all}getRootNodes(){return this.h}getDisplayedRows(){return this.C}getDisplayedRowCount(){return this.isBlockDatasource?this.he():this.C.length}getDisplayedRow(e){return this.isBlockDatasource?e<0||e>=this.he()?void 0:this.A.get(e)??this.Li(e):this.C[e]}getNodeById(e){return this.e.get(e)}forEachNode(e){this.all.forEach(e)}forEachNodeAfterFilterAndSort(e){let t=0;for(let r of this.T)r.isDetail||r.isGroup||e(r,t++)}};var Ve=class{constructor(e){this.core=e;this.n=new Set;this.I=null;this.Pe=new Set}isSelected(e){return this.n.has(e)}isIndeterminate(e){return this.Pe.has(e)}isSelectable(e){if(e.loading)return!1;let t=this.Ui(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}}Ui(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.n.has(e.id))}getSelectedRows(){return this.getSelectedNodes().filter(e=>e.data!=null).map(e=>e.data)}getSelectedIds(){return[...this.n]}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.R(r,!0)}onRowsRebuilt(e){if(!e)this.n.clear(),this.I=null;else{let t=new Set(this.core.rowModel.getAllNodes().map(r=>r.id));for(let r of[...this.n])t.has(r)||this.n.delete(r);this.I!=null&&!t.has(this.I)&&(this.I=null)}for(let t of this.core.rowModel.getAllNodes())t.selected=this.n.has(t.id);this.to()}getGroupSelectionState(e){let t=e.leafNodes??[];if(t.length===0)return{all:!1,some:!1};let r=0,o=0;for(let n of t)this.isSelectable(n)&&(r++,this.n.has(n.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.R(r.map(o=>({node:o,selected:t})))}setNodeSelected(e,t,r=!1){this.R([{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)}ji(e,t){let r=t==="single";this.R([{node:e,selected:r?!0:!e.selected,clearOthers:r}]),this.I=e.id}Yi(e,t,r){return!r||!t.ctrlKey&&!t.metaKey?!1:(this.R([{node:e,selected:!e.selected}]),this.I=e.id,!0)}Xi(e,t,r){if(!r||!t.shiftKey||this.I==null)return!1;let o=this.core.rowModel.getNodeById(this.I);if(!o||o.rowIndex<0||e.rowIndex<0)return!1;let n=Math.min(o.rowIndex,e.rowIndex),s=Math.max(o.rowIndex,e.rowIndex),a=[];for(let l=n;l<=s;l++){let d=this.core.rowModel.getDisplayedRow(l);d&&!d.isDetail&&!d.isGroup&&this.isSelectable(d)&&a.push({node:d,selected:!0})}return this.R(a),!0}onRowClick(e,t,r){let o=this.core.options.rowSelection;if(o==="none"||!this.isSelectable(e))return;if(r){this.ji(e,o);return}let n=o==="multiple";this.Yi(e,t,n)||this.Xi(e,t,n)||(this.R([{node:e,selected:!0,clearOthers:!0}]),this.I=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(n=>!n.isDetail&&!n.isGroup&&this.isSelectable(n));if(o.length!==0){if(t==="single"){this.R([{node:o[0],selected:!0,clearOthers:!0}]);return}this.R(o.map(n=>({node:n,selected:!0})))}}deselectAll(){this.R([],!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.n.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,n)=>o+(this.n.has(n.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.R(e,t)}Ji(e,t,r){!t&&!e.some(o=>o.clearOthers)||(this.n=t?new Set:new Set(e.filter(o=>o.selected).flatMap(o=>r?this.ro(o.node):[o.node.id])))}Qi(e,t){for(let r of e){if(!this.isSelectable(r.node))continue;let o=t?this.ro(r.node):[r.node.id];for(let n of o)r.selected?this.n.add(n):this.n.delete(n)}}Zi(e){let t=new Set;for(let r of new Set([...e,...this.n]))e.has(r)!==this.n.has(r)&&t.add(r);return t}en(e,t,r){let o=[],n=new Set([...e,...r,...this.Pe]);for(let s of this.core.rowModel.getAllNodes()){let a=this.n.has(s.id);s.selected=a,(n.has(s.id)||t.get(s.id)!==a)&&s.rowIndex>=0&&o.push(s.rowIndex)}return o}R(e,t=!1){let r=new Set(this.n),o=this.core.rowModel.isTree&&this.core.options.autoCheckedChildren;this.Ji(e,t,o),this.Qi(e,o);let n=this.Zi(r),s=new Map;for(let d of this.core.rowModel.getAllNodes())s.set(d.id,d.selected);let a=new Set(this.Pe);this.to();let l=this.en(n,s,a);n.size>0&&(this.core.bodyRenderer.refreshRows(l),this.core.headerRenderer.refreshSelectAllCheckbox(),this.core.emit("selectionChanged",{selectedNodes:this.getSelectedNodes(),selectedRows:this.getSelectedRows()}))}ro(e){let t=[e.id],r=o=>{for(let n of this.core.rowModel.getChildrenIds(o))t.push(n),r(n)};return r(e.id),t}to(){if(this.Pe.clear(),!this.core.rowModel.isTree)return;let e=t=>{let r=this.core.rowModel.getChildrenIds(t);if(r.length===0)return{all:this.n.has(t),some:this.n.has(t)};let o=!0,n=!1;for(let s of r){let a=e(s);a.all?n=!0:(a.some&&(n=!0),o=!1)}return n&&!o&&this.Pe.add(t),o?this.n.add(t):this.n.delete(t),{all:o,some:n}};for(let t of this.core.rowModel.getRootNodes())e(t.id);for(let t of this.core.rowModel.getAllNodes())t.selected=this.n.has(t.id)}};var Be=class{constructor(e){this.core=e;this.active=null;this.D=0;this.O=0;this.S=null;this.Y=null;this.H=e=>{let t=this.jt(e);t&&(this.O=this.ao(t,e.clientX),t.didResize||(t.didResize=Math.abs(this.O-t.startWidth)>=.5),!this.D&&(this.D=requestAnimationFrame(()=>{this.D=0,this.rn()})))};this.x=e=>{let t=this.jt(e);t&&(this.O=this.ao(t,e.clientX),t.didResize||(t.didResize=Math.abs(this.O-t.startWidth)>=.5),this.nn(t))};this.X=e=>{this.jt(e)&&this.cancelResize()};this.oo=()=>{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.O=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.H),window.addEventListener("pointerup",this.x,!0),window.addEventListener("pointercancel",this.X,!0),r.addEventListener("lostpointercapture",this.oo);try{r.setPointerCapture?.(e.pointerId)}catch{}this.core.skeleton.root.classList.add("mach-root--resizing"),r.classList.add("mach-header-resize--active"),this.tn(this.active)}cancelResize(e=!0){let t=this.active;t&&(this.active=null,this.Ut(),this.no(t),e&&(t.column.manualWidth=t.startManualWidth,t.column.flex=t.startFlex,this.core.relayoutColumns()),this.core.skeleton.root.classList.remove("mach-root--resizing"),this.so(t))}nn(e){this.active=null,this.Ut(),e.didResize&&(Math.abs(this.O-e.startWidth)<.5?(e.column.manualWidth=e.startManualWidth,e.column.flex=e.startFlex):this.core.columnModel.setColumnWidth(e.column,this.O),this.core.relayoutColumns()),this.no(e);try{e.handle.releasePointerCapture?.(e.pointerId)}catch{}this.core.skeleton.root.classList.remove("mach-root--resizing"),this.so(e),e.didResize&&this.core.commitColumnWidths([e.column])}rn(){let e=this.active;!e||!this.core.columnModel.setColumnWidth(e.column,this.O)||(this.core.relayoutColumns(),this.Ge(e),this.core.emitColumnResize(e.column,!1))}tn(e){this.S=document.createElement("div"),this.S.className="mach-column-resize-guide",this.S.setAttribute("aria-hidden","true"),this.Y=document.createElement("span"),this.Y.className="mach-column-resize-label",this.S.appendChild(this.Y),this.core.skeleton.root.appendChild(this.S),this.Ge(e)}Ge(e){if(!this.S||!this.Y)return;let t=this.core.skeleton.root,r=t.getBoundingClientRect(),o=e.handle.parentElement.getBoundingClientRect(),n=Math.max(0,Math.min(t.clientWidth,o.right-r.left-t.clientLeft)),s=Math.max(32,Math.min(t.clientWidth-32,n));this.S.style.left=`${n}px`,this.S.style.top=`${Math.max(0,o.top-r.top-t.clientTop)}px`,this.Y.style.left=`${s-n}px`,this.Y.textContent=`${Math.round(e.column.currentWidth)} px`}so(e){e.handle.classList.remove("mach-header-resize--active"),this.S?.remove(),this.S=null,this.Y=null}ao(e,t){let r=Number.isFinite(t)?t:e.startX;return e.startWidth+r-e.startX}jt(e){let t=this.active;return t&&e.pointerId===t.pointerId?t:null}Ut(){this.D&&cancelAnimationFrame(this.D),this.D=0}no(e){window.removeEventListener("pointermove",this.H),window.removeEventListener("pointerup",this.x,!0),window.removeEventListener("pointercancel",this.X,!0),e.handle.removeEventListener("lostpointercapture",this.oo)}destroy(){this.cancelResize(!1),this.Ut(),this.core.skeleton.root?.classList.remove("mach-root--resizing")}};function f(i,e,t){let r=document.createElement(i);if(e&&(r.className=e),t)for(let o of Object.keys(t))r.setAttribute(o,t[o]);return r}var Fi=["--mach-font-family","--mach-font-size","--mach-font-size-sm","--mach-header-font-weight","--mach-cell-padding","--mach-header-h","--mach-primary","--mach-primary-weak","--mach-success","--mach-warning","--mach-danger","--mach-info","--mach-border-color","--mach-border-width","--mach-header-bg","--mach-header-fg","--mach-body-bg","--mach-body-fg","--mach-row-hover-bg","--mach-radius-sm","--mach-radius","--mach-radius-lg","--mach-shadow-sm","--mach-shadow","--mach-transition","--mach-z-popup","--mach-z-menu"];function L(i,e){if(i.classList.add("mach-portal"),!e)return;let t=window.getComputedStyle(e);for(let r of Fi){let o=t.getPropertyValue(r).trim();o&&i.style.setProperty(r,o)}i.style.colorScheme=t.colorScheme}function D(i,e,t){return i<e?e:i>t?t:i}var kr=0;function Ar(i="rg"){return kr++,`${i}-${kr}`}var Ir='<svg viewBox="0 0 16 16" width="12" height="12" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M2 3.5h12L9.5 8v4.5L6.5 14V8L2 3.5z"/></svg>',Lr='<svg viewBox="0 0 16 16" width="10" height="10" fill="currentColor"><path d="M8 3l4 5H4l4-5z"/></svg>',Pr='<svg viewBox="0 0 16 16" width="10" height="10" fill="currentColor"><path d="M8 13l4-5H4l4 5z"/></svg>',Gr='<svg viewBox="0 0 16 16" width="12" height="12" fill="none" stroke="currentColor" stroke-width="1.35" stroke-linecap="round"><path d="M2 4h3m3 0h6M2 8h7m3 0h2M2 12h1m3 0h8"/><circle cx="6.5" cy="4" r="1.35"/><circle cx="10.5" cy="8" r="1.35"/><circle cx="4.5" cy="12" r="1.35"/></svg>';var Nr=6,ze=class{constructor(e){this.core=e;this.pending=null;this.fe=null;this.Yt=!1;this.y=0;this.st=null;this.H=e=>{if(this.fe){this.sn(e);return}let t=this.pending;t&&(Math.abs(e.clientX-t.startX)<Nr&&Math.abs(e.clientY-t.startY)<Nr||this.an(e))};this.x=e=>{this.pending=null,e.type!=="pointercancel"&&this.fe&&this.Jt(e.clientX,e.clientY),this.Xt();let t=this.lo();t&&e.type!=="pointercancel"&&t.targetIndex>=0&&this.core.moveColumn(t.column.id,t.targetIndex)}}onPointerDown(e,t){e.button===0&&t.movable&&(this.pending={column:t,startX:e.clientX,startY:e.clientY},window.addEventListener("pointermove",this.H),window.addEventListener("pointerup",this.x),window.addEventListener("pointercancel",this.x))}didDrag(){let e=this.Yt;return this.Yt=!1,e}an(e){let t=this.pending;if(!t)return;let r=this.ln(t.column);if(!r||!r.parentElement){this.Xt();return}this.Yt=!0;let o=f("div","mach-drop-indicator"),n=f("div","mach-column-drag-ghost");n.textContent=t.column.colDef.headerName??t.column.colDef.field??t.column.id,n.ariaHidden="true",L(n,this.core.skeleton.root),document.body.appendChild(n),r.parentElement.appendChild(o),r.classList.add("mach-header-cell--dragging"),this.core.skeleton.root.classList.add("mach-root--dragging");let s=this.core.bodyRenderer.paneForColumn(t.column),a=this.core.skeleton.headerRowContainers[s],l=this.core.columnModel.getPaneColumns(s),d=new Float64Array(l.length+1),c=new Float64Array(l.length);for(let h=0;h<l.length;h++){let p=l[h].currentWidth;c[h]=d[h]+p/2,d[h+1]=d[h]+p}let u=n.getBoundingClientRect();this.fe={column:t.column,cellEl:r,ghost:n,indicator:o,targetIndex:-1,pane:s,containerLeft:a.getBoundingClientRect().left,startScrollLeft:this.core.skeleton.bodyViewports.center.scrollLeft,fromIndex:l.indexOf(t.column),midpoints:c,offsets:d,ghostWidth:u.width,ghostHeight:u.height},this.Jt(e.clientX,e.clientY)}ln(e){let t=this.core.bodyRenderer.paneForColumn(e);return this.core.skeleton.headerRowContainers[t].querySelector(`.mach-header-cell[data-col-id="${Oi(e.id)}"]`)}sn(e){this.st={clientX:e.clientX,clientY:e.clientY},!this.y&&(this.y=requestAnimationFrame(()=>{this.y=0;let t=this.st;this.st=null,t&&this.Jt(t.clientX,t.clientY)}))}Jt(e,t){let r=this.fe;if(!r)return;let o=D(e+12,8,window.innerWidth-r.ghostWidth-8),n=D(t+12,8,window.innerHeight-r.ghostHeight-8);r.ghost.style.transform=`translate3d(${o}px, ${n}px, 0)`;let s=r.pane==="center"?this.core.skeleton.bodyViewports.center.scrollLeft-r.startScrollLeft:0,a=e-(r.containerLeft-s),l=r.midpoints.length;for(let d=0;d<r.midpoints.length;d++)if(a<r.midpoints[d]){l=d;break}r.targetIndex=l>r.fromIndex?l-1:l,r.indicator.style.transform=`translate3d(${r.offsets[l]}px, 0, 0)`}lo(){let e=this.fe;return e?(this.fe=null,e.cellEl.classList.remove("mach-header-cell--dragging"),e.ghost.remove(),e.indicator.remove(),this.core.skeleton.root.classList.remove("mach-root--dragging"),e):null}Xt(){window.removeEventListener("pointermove",this.H),window.removeEventListener("pointerup",this.x),window.removeEventListener("pointercancel",this.x),this.y&&cancelAnimationFrame(this.y),this.y=0,this.st=null}destroy(){this.Xt(),this.lo(),this.pending=null}};function Oi(i){return typeof CSS<"u"&&typeof CSS.escape=="function"?CSS.escape(i):i.replace(/[^a-zA-Z0-9_-]/g,"\\$&")}function Fr(i,e){let t=i==null?"":String(i);return t.includes(e)||t.includes('"')||t.includes(`
|
|
1
|
+
var Me="0.31.1";var ke=class{constructor(e){this.onListenerError=e;this.ae=new Map}on(e,t){let r=this.ae.get(e);return r||(r=new Set,this.ae.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.ae.get(e);r&&(r.delete(t),r.size===0&&this.ae.delete(e))}emit(e,t){let r=this.ae.get(e);if(r)for(let o of[...r])try{o(t)}catch(n){console.error(`[mach-table] error in "${e}" listener`,n),this.onListenerError?.(n,e)}}clear(){this.ae.clear()}};var Uo=new Set(["__proto__","prototype","constructor"]);function ue(i){return typeof i!="string"||i.length===0?!1:i.split(".").every(t=>t.length>0&&!Uo.has(t))}function X(i,e){if(i==null||!ue(e))return;if(e.indexOf(".")<0)return i[e];let r=i,o=0;for(;o<e.length;){if(r==null)return;let n=e.indexOf(".",o);if(n<0){r=r[e.slice(o)];break}r=r[e.slice(o,n)],o=n+1}return r}function re(i,e,t){if(i==null||!ue(e))return!1;let r=e.split("."),o=i;for(let n=0;n<r.length-1;n++){if(typeof o!="object"&&typeof o!="function"||o===null)return!1;o[r[n]]==null&&(o[r[n]]={}),o=o[r[n]]}return typeof o!="object"&&typeof o!="function"||o===null?!1:(o[r[r.length-1]]=t,!0)}var jo=new Set(["contains","notContains","equals","notEquals","startsWith","endsWith","blank","notBlank"]),Yo=new Set(["equals","notEquals","lessThan","lessThanOrEqual","greaterThan","greaterThanOrEqual","inRange","blank","notBlank"]),Xo=new Set(["equals","notEquals","lessThan","greaterThan","inRange","blank","notBlank"]);function Jo(i){return i==null||typeof i=="string"||typeof i=="number"&&Number.isFinite(i)}function Qo(i){return i==="text"?jo:i==="number"?Yo:Xo}function Zo(i,e,t){if(i==null||typeof i!="object")return null;let r=i;return typeof r.match!="string"||!t.has(r.match)?null:{match:r.match,...ei(r,e)}}function ei(i,e){let t=e==="number"?yr(i.value):typeof i.value=="string"?i.value:void 0,r=e==="number"?yr(i.value2):typeof i.value2=="string"?i.value2:void 0;return{...t!==void 0?{value:t}:{},...r!==void 0?{value2:r}:{}}}function yr(i){return typeof i=="number"&&Number.isFinite(i)?i:void 0}function ti(i,e){let t=[],r=Qo(e);for(let o of i.slice(0,20)){let n=Zo(o,e,r);n&&t.push(n)}return t}function xt(i){if(i==null||typeof i!="object")return null;let e=i;return e.type==="set"?Array.isArray(e.values)?{type:"set",values:e.values.filter(Jo).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:ti(e.conditions,e.type)}}function ri(i,e){if(typeof i.colId!="string"||!i.colId.trim())return null;let t=i.colId.trim();if(e.validColumnIds?.has(t)===!1)return null;let r=xt(i.filter);return r?{kind:"condition",colId:t,filter:r}:null}function oi(i,e,t){if(!Array.isArray(i.children))return null;let r=[];for(let o of i.children){let n=vr(o,e+1,t);n&&r.push(n)}return r.length===0?null:{kind:"group",operator:i.operator==="or"?"or":"and",children:r,...i.not===!0?{not:!0}:{}}}function ii(i,e,t){return e<=16&&t.nodes<512&&i!=null&&typeof i=="object"}function vr(i,e,t){if(!ii(i,e,t)||t.ancestors.has(i))return null;t.ancestors.add(i),t.nodes++;let r=i,o=r.kind==="condition"?ri(r,t):r.kind==="group"?oi(r,e,t):null;return t.ancestors.delete(i),o}function O(i,e){if(i==null||typeof i!="object")return null;let t=i;if(t.version!==1||t.root==null)return null;let r=vr(t.root,0,{ancestors:new WeakSet,nodes:0,validColumnIds:e});return r?{version:1,root:r}:null}function ni(i,e){return{kind:"condition",colId:i,filter:e}}function J(i,e){if(i==null||typeof i!="object"||Array.isArray(i))return{};let t={};for(let[r,o]of Object.entries(i).slice(0,2e3)){let n=r.trim();if(!n||e?.has(n)===!1)continue;let s=xt(o);s&&(t[n]=s)}return t}function si(i,e,t={}){return{kind:"group",operator:i,children:e,...t.not?{not:!0}:{}}}var Mt={align:"center",sortable:!0,resizable:!0,movable:!0,filter:!1,minWidth:80},he={compact:{rowHeight:30,headerHeight:34,fontSize:12,cellPadding:6},normal:{rowHeight:36,headerHeight:40,fontSize:13,cellPadding:9},large:{rowHeight:44,headerHeight:48,fontSize:14,cellPadding:12}};function S(i,e,t,r=!1){return typeof i!="number"||!Number.isFinite(i)||i<t?e:r?Math.floor(i):i}function ai(i){return i&&Object.prototype.hasOwnProperty.call(he,i)?i:"normal"}function li(i){return i.theme==="light"||i.theme==="dark"||i.theme==="auto"?i.theme:"light"}function di(i,e){let t=typeof i.pagination=="object"&&Array.isArray(i.pagination.pageSizeOptions)?i.pagination.pageSizeOptions:void 0,r=t?[...new Set(t.map(o=>S(o,0,1,!0)).filter(Boolean))]:[10,20,50,100];return r.includes(e)||r.push(e),r.sort((o,n)=>o-n)}function kt(i,e){let t=typeof i=="function"?i(e):X(e,i);return t==null?"":String(t)}function ci(i){let e=i.rowKey,t=e?({data:r})=>kt(e,r):void 0;return{...t?{resolveRowId:t}:{},...e?{rowKey:e}:{}}}function ui(i,e){let t=he[e];return{columnDefs:Array.isArray(i.columnDefs)?i.columnDefs:[],rowData:Array.isArray(i.rowData)?i.rowData:[],defaultColDef:{...Mt,...i.defaultColDef??{}},columnTypes:i.columnTypes??{},...ci(i),rowHeight:S(i.rowHeight,t.rowHeight,1),headerHeight:S(i.headerHeight,t.headerHeight,1),rowBuffer:S(i.rowBuffer,8,0,!0),columnLayout:i.columnLayout==="fit"?"fit":"normal",enableColumnResize:i.enableColumnResize===!0,domLayout:i.domLayout==="autoHeight"?"autoHeight":"normal",rowSelection:i.rowSelection==="single"||i.rowSelection==="multiple"?i.rowSelection:"none",multiSort:i.multiSort??!0,size:e,pinnedTopRowData:Array.isArray(i.pinnedTopRowData)?i.pinnedTopRowData:[],pinnedBottomRowData:Array.isArray(i.pinnedBottomRowData)?i.pinnedBottomRowData:[]}}function hi(i){return{stripedRows:i.stripedRows??!1,rowStyleRules:Array.isArray(i.rowStyleRules)?i.rowStyleRules:[],showCellBorders:i.showCellBorders??!1,theme:li(i),quickFilterText:i.quickFilterText??null,suppressCellFocus:i.suppressCellFocus??!1,suppressRowHoverHighlight:i.suppressRowHoverHighlight??!1,suppressNoRowsOverlay:i.suppressNoRowsOverlay??!1,suppressHeaderFocus:i.suppressHeaderFocus??!1,loading:i.loading??!1,error:i.error??null,className:i.className??""}}function pi(i){return{editType:i.editType==="fullRow"?"fullRow":"cell",editableIndicator:i.editableIndicator==="always"||i.editableIndicator==="none"?i.editableIndicator:"hover",singleClickEdit:i.singleClickEdit??!1,manualSorting:i.manualSorting??!1,manualFiltering:i.manualFiltering??!1,showSummary:i.showSummary??!1,indexOffset:i.indexOffset??0,applyRowDrag:i.applyRowDrag??!0,undoStackSize:S(i.undoStackSize,100,0,!0),asyncTransactionWaitMillis:S(i.asyncTransactionWaitMillis,16,0,!0)}}function fi(i){return{masterDetail:i.masterDetail??!1,detailRowHeight:S(i.detailRowHeight,240,1),detailToggleColumn:i.detailToggleColumn??!0,treeData:i.treeData??!1,childrenKey:i.childrenKey??"children",autoCheckedChildren:i.autoCheckedChildren??!0,defaultExpandAll:i.defaultExpandAll??!1}}function mi(i){let e=typeof i.pagination=="object"?i.pagination:void 0,t=S(e?.pageSize,20,1,!0);return{paginationEnabled:i.pagination!==!1&&i.datasource==null,paginationMode:e?.mode==="server"?"server":"client",paginationPage:S(e?.page,1,1,!0),paginationTotal:S(e?.total,0,0,!0),paginationPageSize:t,paginationPageSizeOptions:di(i,t),paginationShowTotal:e?e.showTotal!==!1:!0,paginationShowSizeSelector:e?e.showPageSizeSelector!==!1:!0}}function gi(i){return{watermarkEnabled:i.watermark!=null&&i.watermark!==!1,watermarkConfig:i.watermark==null||i.watermark===!1?null:i.watermark===!0?{text:"MachTable"}:i.watermark}}function yi(i){return{columnMenu:i.columnMenu??!1,advancedFilterModel:O(i.advancedFilterModel),...vi(i),locale:i.locale??{},suppressWarnings:i.suppressWarnings??!1,enableRangeSelection:i.enableRangeSelection??!1,suppressClipboard:i.suppressClipboard??!1,contextMenu:i.contextMenu??!1,tooltipShowDelay:S(i.tooltipShowDelay,600,0),flashCells:i.flashCells??!0,fillHandle:i.fillHandle??!0,statusBarEnabled:i.statusBar===!0||typeof i.statusBar=="object"&&i.statusBar!=null,statusBarPanels:typeof i.statusBar=="object"&&i.statusBar?.panels?i.statusBar.panels:["rowCount","selectedRowCount","rangeAggregate"]}}function vi(i){let e=i.persistence;return!e||typeof e.key!="string"||!e.key.trim()?{persistence:null}:{persistence:{key:e.key.trim(),debounceMs:S(e.debounceMs,160,0,!0),...e.sections?{sections:[...new Set(e.sections)]}:{},...e.store?{store:e.store}:{}}}}function wi(i){return{datasourceMode:i.datasourceMode==="block"?"block":"sequential",blockSize:S(i.blockSize,100,1,!0),infiniteBufferRows:S(i.infiniteBufferRows,40,0,!0),maxBlocksInCache:S(i.maxBlocksInCache,12,1,!0),datasourceMaxConcurrentRequests:S(i.datasourceMaxConcurrentRequests,4,1,!0),blockPrefetch:S(i.blockPrefetch,1,0,!0),datasourceRowCount:i.datasourceRowCount==null?null:S(i.datasourceRowCount,0,0,!0),dataProcessorMinRows:S(i.dataProcessorMinRows,5e3,1,!0),datasourceRetryCount:S(i.datasourceRetryCount,2,0,!0),datasourceRetryDelay:S(i.datasourceRetryDelay,300,0,!0),datasourceRetryJitter:Math.min(1,S(i.datasourceRetryJitter,.15,0))}}function bi(i){return{ariaLabel:i.ariaLabel??"MachTable data grid",ariaLabelledBy:i.ariaLabelledBy??"",ariaDescribedBy:i.ariaDescribedBy??"",overlayNoRowsTemplate:i.overlayNoRowsTemplate??"",overlayLoadingTemplate:i.overlayLoadingTemplate??"",overlayErrorTemplate:i.overlayErrorTemplate??"",allowUnsafeOverlayHtml:i.allowUnsafeOverlayHtml??!1}}var Ci=["detailRowRenderer","isRowExpandable","aggFuncs","components","actionPolicy","summaryMethod","datasource","getRowHeight","tooltipComponent","getContextMenuItems","initialState","rowEditValidator","isTreeRowExpandable","loadTreeChildren","dataProcessor"];function Ti(i,e){for(let t of Ci)i[t]&&Object.assign(e,{[t]:i[t]})}function Ri(i,e){for(let t of Object.keys(i))t.startsWith("on")&&typeof i[t]=="function"&&Object.assign(e,{[t]:i[t]})}function wr(i){let e=ai(i.size),t={...ui(i,e),...hi(i),...pi(i),...fi(i),...mi(i),...gi(i),...yi(i),...wi(i),...bi(i),features:Array.isArray(i.features)?i.features:[]};return Ti(i,t),Ri(i,t),t}function br(i){return Array.isArray(i)?i.filter(e=>typeof e=="string"&&e.length>0):typeof i=="string"&&i.length>0?[i]:[]}function oe(i,e){return br(i.type).includes(e)}function Cr(i,e,t={}){let r={};for(let o of br(i.type)){let n=t[o];n&&Object.assign(r,n)}return{...e,...r,...i}}var _=class{constructor(e,t){this.manualWidth=null;this.contentWidth=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.contentWidth=null,this.flex=typeof this.colDef.flex=="number"&&Number.isFinite(this.colDef.flex)&&this.colDef.flex>0?this.colDef.flex:null}};var Q=class i{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 i?t.getLeafColumns(e):e.push(t);return e}};function pe(i){return Array.isArray(i.children)}function Ae(i,e){return typeof i=="number"&&Number.isFinite(i)&&i>0?i:e}function Tr(i){let e=Ae(i.minWidth,80);return{min:e,max:Math.max(e,Ae(i.maxWidth,Number.MAX_SAFE_INTEGER))}}function N(i,e){let{min:t,max:r}=Tr(e),o=Ae(i,Ae(e.width,150));return Math.max(t,Math.min(r,o))}function Rr(i,e){let t=i.map(s=>N(s.width??150,s)),r=[],o=0;i.forEach((s,a)=>{let l=s.flex??0;l>0&&(r.push(a),o+=l)});let n=0;for(let s of t)n+=s;if(o>0&&e>n){let s=e-n;for(let a=0;a<4&&s>.5&&r.length>0;a++){let l=[],d=0;for(let p of r){let m=i[p].flex??0;l.push(p),d+=m}let c=[];for(let p=0;p<l.length;p++){let m=l[p],v=i[m].flex??0,g=s*v/d,y=t[m];t[m]=N(y+g,i[m]),c.push(t[m]-y)}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 Di(i,e,t){let r=new Set(i.map((n,s)=>s)),o=t;for(let n=0;n<i.length+1&&r.size>0;n++){let s=0;for(let l of r)s+=Math.max(1,e[l]);if(s<=0)break;let a=!1;for(let l of[...r]){let d=o*(Math.max(1,e[l])/s),c=N(d,i[l]),{min:u,max:h}=Tr(i[l]);(d<u||d>h)&&(e[l]=c,o-=c,r.delete(l),a=!0)}if(!a){for(let l of r)e[l]=N(o*(Math.max(1,e[l])/s),i[l]);break}o=Math.max(0,o)}}function Ei(i,e,t){let r=t-e.reduce((o,n)=>o+n,0);if(!(Math.abs(r)<=.01))for(let o=e.length-1;o>=0;o--){let n=N(e[o]+r,i[o]);if(Math.abs(n-e[o])>.01){e[o]=n;return}}}function Ie(i,e){let t=i.map(r=>N(r.width??150,r));return!Number.isFinite(e)||e<=0||i.length===0||(Di(i,t,e),Ei(i,t,e)),t}var At="__rg_detail_toggle__";function ie(i){return typeof i=="number"&&Number.isFinite(i)&&i>0}var Le=class{constructor(e){this.core=e;this.columns=[];this.E=[];this.left=[];this.center=[];this.right=[];this.sortModel=[];this.defs=[];this.le=1;this.Vt=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?[At]:[]),n=(s,a,l)=>s.map((d,c)=>{if(pe(d)){let y=d.groupId??d.headerName??`group_${c}_${l}`,b=new Q(y,d);return b.parent=a,b.children=n(d.children,b,l+1),b}let u=d,h=u.colId??u.field??`col_${c}`,p=h,m=2;for(;o.has(p);)p=`${h}_${m++}`;o.add(p);let v=new _(p,Cr(u,r,this.core.options.columnTypes));v.parentGroup=a,v.level=l;let g=t.get(p);return g&&(v.manualWidth=g.manualWidth,v.contentWidth=g.contentWidth,v.flex=g.flex,v.hide=g.hide,v.pinned=g.pinned),v});if(this.E=n(this.defs,null,0),this.core.options.masterDetail&&this.core.options.detailToggleColumn){let s=new _(At,{colId:At,headerName:"",width:38,pinned:"left",sortable:!1,resizable:!1,movable:!1,filter:!1});s.isDetailToggle=!0,this.E.unshift(s)}if(this.columns=this.Je(this.E),this.le=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.de()}Je(e,t=[]){for(let r of e)r instanceof Q?this.Je(r.children,t):t.push(r);return t}de(){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.Vt.clear(),this.getOrderedVisible().forEach((t,r)=>this.Vt.set(t.id,r))}getFlatIndex(e){return this.Vt.get(e)??-1}getColumns(){return this.columns}getColumnDefs(){return this.defs}getRootChildren(){return this.E}getHeaderDepth(){return this.le}getColumn(e){return this.columns.find(t=>t.id===e)}getPaneColumns(e){return e==="left"?this.left:e==="right"?this.right:this.center}getOrderedVisible(){return[...this.left,...this.center,...this.right]}getRowGroupColumns(){return this.getOrderedVisible().filter(e=>e.colDef.rowGroup===!0)}getAggColumns(){return this.getOrderedVisible().filter(e=>e.colDef.aggFunc!=null&&e.colDef.rowGroup!==!0)}hasColSpan(){return this.center.some(e=>e.colDef.colSpan!=null)}getGroupLabelColumn(){let e=this.getOrderedVisible();return this.center.find(t=>!t.hasCheckbox&&!t.isDetailToggle)??e.find(t=>!t.hasCheckbox&&!t.isDetailToggle)??e[0]}paneOf(e){return e.pinned==="left"?"left":e.pinned==="right"?"right":"center"}computeLayout(e){this.viewportWidth=e;let t=0;for(let c of[...this.left,...this.right])c.currentWidth=N(c.manualWidth??c.contentWidth??c.colDef.width??150,this.U(c)),t+=c.currentWidth;let r=Math.max(0,e-t),o=[],n=[];for(let c of this.center)(c.colDef.suppressSizeToFit||c.manualWidth!=null?n:o).push(c);let s=0;for(let c of n)c.currentWidth=N(c.manualWidth??c.contentWidth??c.colDef.width??150,this.U(c)),s+=c.currentWidth;let a=o.map(c=>this.U(c)),l=Math.max(0,r-s),d=this.core.options.columnLayout==="fit"?Ie(a,l):Rr(a,l);o.forEach((c,u)=>{c.currentWidth=d[u]})}U(e){let t=e.colDef;return{width:e.manualWidth??e.contentWidth??t.width,minWidth:t.minWidth,maxWidth:t.maxWidth,flex:e.manualWidth==null?e.flex??void 0:void 0}}setColumnWidth(e,t){return ie(t)?(e.manualWidth=N(t,this.U(e)),e.flex=null,!0):!1}setContentWidth(e,t){return ie(t)?(e.resetWidth(),e.contentWidth=N(t,this.U(e)),!0):!1}setColumnVisibility(e,t){let r=this.getColumn(e);!r||r.hide===!t||(r.hide=!t,this.de())}moveColumn(e,t){let r=this.getColumn(e);if(!r)return!1;let o=this.paneOf(r),n=u=>r.parentGroup?!0:this.paneOf(u)===o,s=r.parentGroup?r.parentGroup.children:this.E,a=s.filter(u=>u instanceof _&&!u.hide&&n(u)),l=a.indexOf(r);if(l<0)return!1;a.splice(l,1);let d=Math.max(0,Math.min(t,a.length));a.splice(d,0,r);let c=[];return s.forEach((u,h)=>{u instanceof _&&!u.hide&&n(u)&&c.push(h)}),c.length!==a.length?!1:(c.forEach((u,h)=>{s[u]=a[h]}),this.columns=this.Je(this.E),this.de(),!0)}setColumnPinned(e,t){let r=this.getColumn(e);!r||!r.movable||(r.pinned=t,this.de())}getColumnState(){return this.columns.map(e=>({colId:e.id,hide:e.hide,width:e.manualWidth??e.currentWidth,flex:e.flex,widthMode:e.manualWidth==null?"auto":"manual",contentWidth:e.contentWidth??void 0,pinned:e.pinned}))}applyColumnState(e){let t=new Map(e.map(r=>[r.colId,r]));for(let r of this.columns){let o=t.get(r.id);o&&this.Di(r,o)}this.Ei(e),this.de()}Di(e,t){typeof t.hide=="boolean"&&(e.hide=t.hide),t.widthMode==="auto"?(e.resetWidth(),ie(t.flex)&&(e.flex=t.flex)):ie(t.flex)?(e.flex=t.flex,e.manualWidth=null):ie(t.width)&&(e.manualWidth=N(t.width,this.U(e)),e.flex=null),ie(t.contentWidth)&&(e.contentWidth=N(t.contentWidth,this.U(e))),e.movable&&(t.pinned==="left"||t.pinned==="right"||t.pinned===null)&&(e.pinned=t.pinned)}Ei(e){let t=new Map;e.forEach((o,n)=>t.set(o.colId,n));let r=o=>o.pinned==="left"?"left":o.pinned==="right"?"right":"center";for(let o of["left","center","right"]){let n=this.E.filter(d=>d instanceof _&&!d.hide&&d.parentGroup===null&&r(d)===o);if(n.length<2)continue;let s=n.filter(d=>d.movable),a=s.slice().sort((d,c)=>(t.get(d.id)??Number.MAX_SAFE_INTEGER)-(t.get(c.id)??Number.MAX_SAFE_INTEGER));if(a.every((d,c)=>d===s[c]))continue;let l=[];this.E.forEach((d,c)=>{d instanceof _&&!d.hide&&d.parentGroup===null&&r(d)===o&&d.movable&&l.push(c)}),l.forEach((d,c)=>{this.E[d]=a[c]})}this.columns=this.Je(this.E)}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.de()}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),n=o>=0?r[o].direction:null,s=n===null?"asc":n==="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 Er(i){return i==null?"":String(i).toLowerCase()}function Si(i,e,t){let r=Er(i),o=e.map(n=>{let s=(n.value??"").toLowerCase();switch(n.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 xi(i,e,t){switch(t.match){case"equals":return i===e;case"notEquals":return i!==e;case"lessThan":return i<e;case"lessThanOrEqual":return i<=e;case"greaterThan":return i>e;case"greaterThanOrEqual":return i>=e;case"inRange":return i>=e&&i<=(t.value2??e);default:return!0}}function Mi(i,e){let t=i==null||i==="";if(e.match==="blank")return t;if(e.match==="notBlank")return!t;if(t)return!1;let r=typeof i=="number"?i:Number(i);if(Number.isNaN(r))return!1;let o=e.value;return o==null||Number.isNaN(o)?!1:xi(r,o,e)}function ki(i,e,t){let r=e.map(o=>Mi(i,o));return r.length===0?!0:t==="or"?r.some(Boolean):r.every(Boolean)}function Pe(i){if(i==null||i==="")return null;if(i instanceof Date)return isNaN(i.getTime())?null:i.getTime();if(typeof i=="number")return i;let e=Date.parse(String(i));return isNaN(e)?null:e}function Ai(i,e,t){let r=e.map(o=>{let n=Pe(i)==null;if(o.match==="blank")return n;if(o.match==="notBlank")return!n;if(n)return!1;let s=Pe(i),a=o.value!=null?Pe(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?Pe(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 Ii(i,e){return e.length===0?!0:e.some(t=>t==null&&i==null||t===i)}function Sr(i,e){let t=e.type!=="set"&&e.operator==="or"?"or":"and";switch(e.type){case"text":return Si(i,e.conditions,t);case"number":return ki(i,e.conditions,t);case"date":return Ai(i,e.conditions,t);case"set":return Ii(i,e.values);default:return!0}}function It(i,e,t,r){if(i.kind==="condition"){let n=e.get(i.colId);return!n||Sr(r(t,n),i.filter)}let o=i.operator==="or"?i.children.some(n=>It(n,e,t,r)):i.children.every(n=>It(n,e,t,r));return i.not?!o:o}function Li(i,e,t,r){return t?It(t.root,new Map(e.map(o=>[o.id,o])),i,r):!0}function Lt(i,e,t,r,o,n){for(let s of Object.keys(t)){let a=t[s],l=e.find(c=>c.id===s);if(!l)continue;let d=n(i,l);if(!Sr(d,a))return!1}if(!Li(i,e,r,n))return!1;if(o&&o.trim()!==""){let s=o.trim().toLowerCase().split(/\s+/);for(let a of s)if(!e.some(d=>Er(n(i,d)).includes(a)))return!1}return!0}var xr=typeof Intl<"u"?new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"}):null;function Pi(i,e){let t=i==null||i==="",r=e==null||e==="";return!t&&!r?null:t&&r?0:t?1:-1}function Gi(i,e){let t=Number.isNaN(i),r=Number.isNaN(e);return t||r?t===r?0:t?1:-1:i-e}function Ni(i,e){return i===e?0:i?1:-1}function Ge(i,e){let t=Pi(i,e);if(t!==null)return t;if(typeof i=="number"&&typeof e=="number")return Gi(i,e);if(i instanceof Date&&e instanceof Date)return i.getTime()-e.getTime();if(typeof i=="boolean"&&typeof e=="boolean")return Ni(i,e);let r=String(i),o=String(e);return xr?xr.compare(r,o):r.localeCompare(o)}function Pt(i,e,t,r){let o=new Map;for(let l of t)o.set(l.id,l);let n=[],s=[];for(let l of e){let d=o.get(l.colId);d&&(n.push(d.colDef.comparator??Ge),s.push(l.direction))}let a=i.map(l=>({node:l,values:e.map(d=>r(l,o.get(d.colId)))}));return a.sort((l,d)=>{for(let c=0;c<n.length;c++){let u=n[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(i){return i.filter(e=>typeof e=="number"&&!isNaN(e))}var Mr={sum:i=>Ne(i).reduce((e,t)=>e+t,0),avg:i=>{let e=Ne(i);return e.length===0?null:e.reduce((t,r)=>t+r,0)/e.length},count:i=>i.length,min:i=>{let e=Ne(i);return e.length===0?null:Math.min(...e)},max:i=>{let e=Ne(i);return e.length===0?null:Math.max(...e)},first:i=>i.length>0?i[0]:null,last:i=>i.length>0?i[i.length-1]:null};function Gt(i){let e={...Mr,...i??{}};return t=>e[t]}function ne(i){if(i.reason instanceof Error)return i.reason;let e=new Error(typeof i.reason=="string"?i.reason:"Block request aborted");return e.name="AbortError",e}function Fe(i){return Number.isFinite(i)?Math.max(1,Math.trunc(i)):1}var Oe=class{constructor(e,t,r=4){this.maxBlocks=e;this.onEvict=t;this.maxConcurrentRequests=r;this.b=new Map;this.f=new Map;this.zr=0;this.Bt=0;this.hitCount=0;this.missCount=0;this.evictionCount=0;this.Qe=0;this.maxBlocks=Fe(e),this.maxConcurrentRequests=Fe(r)}configure(e,t=this.maxConcurrentRequests){this.maxBlocks=Fe(e),this.maxConcurrentRequests=Fe(t),this._r(),this.Ze()}peek(e){let t=this.b.get(e);if(t)return t.touchedAt=++this.zr,t}has(e){return this.b.has(e)}load(e,t,r,o=0){if(r?.aborted)return Promise.reject(ne(r));let n=this.peek(e);if(n)return this.hitCount++,Promise.resolve(n);let s=this.f.get(e);if(s)return this.hitCount++,s.priority=Math.max(s.priority,o),this.Ze(),this.Wr(e,s,r);this.missCount++;let a=new AbortController,l,d,c=new Promise((p,m)=>{l=p,d=m}),u={controller:a,promise:c,consumers:0,loader:t,priority:o,state:"queued",resolve:l,reject:d};this.f.set(e,u);let h=this.Wr(e,u,r);return this.Ze(),h}purge(){this.Bt++;for(let e of this.f.values())e.controller.abort(),e.state==="queued"&&e.reject(ne(e.controller.signal));this.f.clear();for(let[e,t]of this.b)this.onEvict?.(e,t);this.b.clear()}snapshot(){let e=0,t=0;for(let r of this.b.values())e+=r.rows.length;for(let r of this.f.values())r.state==="active"&&t++;return{cachedBlockCount:this.b.size,loadingBlockCount:this.f.size,activeRequestCount:t,queuedRequestCount:Math.max(0,this.f.size-t),cachedRowCount:e,hitCount:this.hitCount,missCount:this.missCount,evictionCount:this.evictionCount}}Ze(){for(;this.Qe<this.maxConcurrentRequests;){let e,t;for(let[r,o]of this.f)o.state!=="queued"||o.controller.signal.aborted||(!t||o.priority>t.priority)&&(e=r,t=o);if(e==null||!t)return;this.Si(e,t)}}Si(e,t){t.state="active",this.Qe++;let r=this.Bt;this.xi(t).then(o=>{r===this.Bt&&!t.controller.signal.aborted&&(this.b.set(e,{rows:o.rows,...o.lastRow==null?{}:{lastRow:o.lastRow},touchedAt:++this.zr}),this._r()),t.resolve(o)},t.reject).finally(()=>{this.Qe=Math.max(0,this.Qe-1),this.f.get(e)===t&&this.f.delete(e),this.Ze()})}xi(e){let{signal:t}=e.controller;return t.aborted?Promise.reject(ne(t)):new Promise((r,o)=>{let n=()=>o(ne(t));t.addEventListener("abort",n,{once:!0}),Promise.resolve().then(()=>e.loader(t)).then(r,o).finally(()=>{t.removeEventListener("abort",n)})})}Wr(e,t,r){return t.consumers++,new Promise((o,n)=>{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.f.get(e)===t&&(this.f.delete(e),t.controller.abort(r?.reason),t.state==="queued"&&t.reject(ne(t.controller.signal))),n(ne(r))});r?.addEventListener("abort",l,{once:!0}),t.promise.then(d=>a(()=>o(d)),d=>a(()=>n(d instanceof Error?d:new Error(String(d??"Block request failed")))))})}_r(){for(;this.b.size>this.maxBlocks;){let e=-1,t=Number.POSITIVE_INFINITY;for(let[o,n]of this.b)n.touchedAt<t&&(e=o,t=n.touchedAt);if(e<0)return;let r=this.b.get(e);this.b.delete(e),this.evictionCount++,r&&this.onEvict?.(e,r)}}};function fe(i,e){if(i==null||typeof i!="object")return;let t=i[e];return Array.isArray(t)?t:void 0}var He=class{constructor(e){this.core=e;this.all=[];this.h=[];this.m=new Map;this.C=[];this.e=new Map;this.filterModel={};this.advancedFilterModel=null;this.quickFilter=null;this.d=new Set;this.g=new Set;this.Ee=[];this.et=new Map;this.Mi=[];this.a=null;this.ce=!1;this.$r=!1;this.ue=0;this.tt=null;this.Se=null;this.rt=null;this.ot=new WeakMap;this.xe=new WeakMap;this.N=new Map;this.Me=new Map;this.ke=0;this.A=new Map;this.F=new Map;this.Ae=new Set;this.j=new Oe(12,e=>this.Kr(e));this.Ie=0;this.it=null;this.zt=!1;this.qr=0;this.T=[];this.page=1;this.pageSize=20;this.advancedFilterModel=O(e.options.advancedFilterModel)}resolveRowId(e,t,r){let o=this.core.options.resolveRowId;if(!o)return r;try{let n=o({data:e,index:t,api:this.core.getApi()});if(typeof n=="string"&&n.length>0)return n;this.core.reportError(new Error("rowKey must resolve to a non-empty identifier"),"rowKey",{index:t})}catch(n){this.core.reportError(n,"rowKey",{index:t})}return r}get isTree(){return this.core.options.treeData}get isInfinite(){return this.core.options.datasource!=null}get isBlockDatasource(){return this.isInfinite&&this.core.options.datasourceMode==="block"}getDisplayTotalCount(){if(this.isInfinite){if(this.isBlockDatasource)return this.he();let e=Math.max(0,this.C.length-this.all.length);return(this.a??this.all.length)+e}return this.C.length}getDisplayRevision(){return this.ke}isLoadingInfinite(){return this.$r}startInfinite(e){return!this.isInfinite||e?.aborted?Promise.resolve():(this._t(),this.a=null,this.ce=!1,this.all=[],this.h=[],this.e.clear(),this.d.clear(),this.core.undoService.clear(),this.refreshPipeline(),this.core.requestUpdate({data:!0}),this.isBlockDatasource?(this.j.configure(this.core.options.maxBlocksInCache,this.core.options.datasourceMaxConcurrentRequests),this.Wt(0,e)):this.Ur(0,void 0,e))}reloadInfinite(e){return this.isInfinite?this.startInfinite(e):Promise.resolve()}setInfiniteLoading(e){this.$r=e,this.core.skeleton.setInfiniteLoading(e,this.core.getLocaleText("loading"))}Ur(e,t,r){if(!this.isInfinite||this.ce||this.a!=null&&e>=this.a)return Promise.resolve();let o=this.core.options.datasource,n=this.core.options.blockSize,s=t??e+n;if(s<=e)return Promise.resolve();let a=++this.ue,l=new AbortController,d=()=>l.abort(r?.reason);return r?.addEventListener("abort",d,{once:!0}),this.tt=l,this.ce=!0,this.setInfiniteLoading(!0),new Promise(c=>{let u=!1,h=0;this.rt=c;let p=v=>{u||(u=!0,r?.removeEventListener("abort",d),a===this.ue&&(this.ce=!1,this.tt=null,this.rt=null,this.setInfiniteLoading(!1),v!=null&&v?.name!=="AbortError"&&this.core.reportError(v,"datasource.getRows",{startRow:e,endRow:s})),c())},m=()=>{if(u||a!==this.ue||l.signal.aborted||this.core.isDestroyed()){p();return}h++;let v=!1,g=y=>{if(!(v||u)){if(v=!0,a!==this.ue||l.signal.aborted||this.core.isDestroyed()){p();return}if(h<=this.core.options.datasourceRetryCount){let b=this.jr(h);this.Se=setTimeout(()=>{this.Se=null,m()},b);return}p(y??new Error("Datasource request failed"))}};try{let y=o.getRows({startRow:e,endRow:s,sortModel:this.core.columnModel.getSortModel(),filterModel:this.getFilterModel(),advancedFilterModel:this.getAdvancedFilterModel(),quickFilterText:this.quickFilter,signal:l.signal,onSuccess:(b,T)=>{if(v||u)return;if(v=!0,a!==this.ue||this.core.isDestroyed()||l.signal.aborted){p();return}let x=b??[];typeof T=="number"&&T>=0?this.a=T:x.length<s-e&&(this.a=e+x.length);let w=this.all.length===0;this.ki(x),p(),this.refreshPipeline(),this.core.requestUpdate({data:!0}),w&&this.core.relayout(),this.core.headerRenderer.refreshSelectAllCheckbox()},fail:g});y&&typeof y.catch=="function"&&y.catch(g)}catch(y){g(y)}};m()})}_t(){this.ue++,this.Se!=null&&clearTimeout(this.Se),this.Se=null,this.tt?.abort(),this.tt=null,this.ce=!1,this.setInfiniteLoading(!1),this.rt?.(),this.rt=null,this.j.purge(),this.A.clear(),this.F.clear(),this.Ae.clear()}ki(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.e.has(o)){this.core.reportError(new Error(`Duplicate row id: ${o}`),"datasource.getRows",{rowId:o});continue}let n={id:o,data:t,rowIndex:-1,selected:this.core.selectionService.isSelected(o)};this.all.push(n),this.e.set(o,n),this.h.push(n)}}Wt(e,t,r=0){if(!this.isBlockDatasource||e<0)return Promise.resolve();if(t?.aborted)return Promise.reject(this.Yr(t.reason));let o=this.core.options.blockSize,n=e*o;if(n>=this.he())return Promise.resolve();let s=this.a==null?n+o:Math.min(this.a,n+o),a=this.j.load(e,l=>this.Ai(n,s,l),t,r);return this.setInfiniteLoading(this.all.length===0&&this.j.snapshot().loadingBlockCount>0),a.then(l=>{t?.aborted||this.core.isDestroyed()||!this.isBlockDatasource||this.Ae.has(e)||(this.Ii(e,l),this.refreshPipeline(),this.core.requestUpdate({data:!0}),this.core.headerRenderer.refreshSelectAllCheckbox())}).catch(l=>{throw l?.name!=="AbortError"&&this.core.reportError(l,"datasource.getRows",{startRow:n,endRow:s}),l}).finally(()=>{this.setInfiniteLoading(this.all.length===0&&this.j.snapshot().loadingBlockCount>0)})}Ai(e,t,r){let o=this.core.options.datasource;return new Promise((n,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.Yr(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=v=>{if(!(p||d)){if(p=!0,r.aborted||this.core.isDestroyed()){u();return}if(a<=this.core.options.datasourceRetryCount){let g=this.jr(a);l=setTimeout(()=>{l=null,h()},g)}else c(v)}};try{let v=o.getRows({startRow:e,endRow:t,sortModel:this.core.columnModel.getSortModel(),filterModel:this.getFilterModel(),advancedFilterModel:this.getAdvancedFilterModel(),quickFilterText:this.quickFilter,signal:r,onSuccess:(g,y)=>{p||d||(p=!0,d=!0,r.removeEventListener("abort",u),n({rows:g??[],...typeof y=="number"&&y>=0?{lastRow:y}:{}}))},fail:m});v&&typeof v.catch=="function"&&v.catch(m)}catch(v){m(v)}};h()})}Ii(e,t){let r=this.core.options.blockSize,o=e*r;this.Kr(e),typeof t.lastRow=="number"&&t.lastRow>=0?this.a=t.lastRow:t.rows.length<r&&(this.a=o+t.rows.length),t.rows.forEach((n,s)=>{if(n==null)return;let a=o+s;if(this.a!=null&&a>=this.a)return;let l=this.resolveRowId(n,a,`block-${a}`),d=this.e.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:n,rowIndex:a,selected:this.core.selectionService.isSelected(l)};this.A.set(a,c),this.F.delete(a),this.e.set(l,c),this.xe.set(c,a+1)}),this.Xr(),this.Ae.add(e)}Kr(e){this.Ae.delete(e);let t=this.core.options.blockSize,r=e*t;for(let o=r;o<r+t;o++){let n=this.A.get(o);n&&(this.A.delete(o),this.e.get(n.id)===n&&this.e.delete(n.id))}this.Xr()}Xr(){this.all=[...this.A.entries()].sort(([e],[t])=>e-t).map(([,e])=>e),this.h=this.all}he(){if(this.a!=null)return this.a;if(this.core.options.datasourceRowCount!=null)return this.core.options.datasourceRowCount;if(this.A.size===0)return this.core.options.blockSize;let e=0;for(let t of this.A.keys())e=Math.max(e,t+1);return e+this.core.options.blockSize}Li(e){let t=this.F.get(e);if(!t&&(t={id:`__mach_loading_${e}`,data:null,rowIndex:e,selected:!1,loading:!0},this.F.set(e,t),this.F.size>2e3)){let r=this.F.keys().next().value;r!=null&&this.F.delete(r)}return t}Yr(e){if(e instanceof Error)return e;let t=new Error(typeof e=="string"?e:"Operation aborted");return t.name="AbortError",t}jr(e){let t=Math.min(this.core.options.datasourceRetryDelay*2**Math.max(0,e-1),3e4),r=this.core.options.datasourceRetryJitter;return Math.max(0,Math.round(t*(1+(Math.random()*2-1)*r)))}checkInfiniteScroll(e){if(this.isBlockDatasource){this.Pi(e);return}if(!this.isInfinite||this.ce)return;let t=this.all.length;if(this.a!=null&&t>=this.a)return;let r=this.core.options.infiniteBufferRows;if(e+r<t&&e<t)return;let o=this.core.options.blockSize,n=this.a==null?t+o:Math.min(this.a,t+o);this.Ur(t,n)}Pi(e){if(e<0)return;let t=this.core.options.blockSize,r=Math.floor(e/t),o=this.core.options.blockPrefetch,n=r<this.qr?-1:1;this.qr=r;for(let s=0;s<=o;s++){let a=s===0?[r]:[r+n*s,r-n*s];for(let l of a)l<0||l*t>=this.he()||this.Wt(l,void 0,o-s+1).catch(()=>{})}}onServerParamsChanged(){return this.reloadInfinite().catch(()=>{})}onDatasourceChanged(){return this._t(),this.isInfinite?this.startInfinite().catch(()=>{}):(this.a=null,this.setRowData(this.core.options.rowData),this.core.requestUpdate({data:!0}),Promise.resolve())}destroy(){this._t(),this.Jr(),this.$t(),this.core.options.dataProcessor?.destroy?.()}ensureRowsLoaded(e,t,r){if(!this.isBlockDatasource)return Promise.resolve();let o=this.core.options.blockSize,n=Math.max(0,Math.trunc(e)),s=Math.min(this.he(),Math.max(n,Math.trunc(t))),a=Math.floor(n/o),l=Math.max(a,Math.floor(Math.max(n,s-1)/o)),d=[];for(let c=a;c<=l;c++)d.push(this.Wt(c,r,100));return Promise.all(d).then(()=>{})}purgeDatasourceCache(){this.isBlockDatasource&&(this.j.purge(),this.A.clear(),this.F.clear(),this.Ae.clear(),this.all=[],this.h=[],this.e.clear(),this.refreshPipeline(),this.core.requestUpdate({data:!0}))}getDatasourceCacheSnapshot(){return this.j.snapshot()}setRowData(e){this.Jr(),this.core.changeTracker.clear();let t=this.core.options.resolveRowId,r=this.core.options.childrenKey,o=[],n=[],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 v=this.isTree?fe(c,r):void 0,g={id:m,data:c,rowIndex:-1,selected:!1,treeChildrenLoaded:Array.isArray(v)};if(this.ot.set(g,u),o.push(g),s.set(m,g),h!=null){let y=a.get(h)??[];y.push(m),a.set(h,y)}else n.push(g);if(this.isTree&&Array.isArray(v))for(let y of v)y!=null&&d(y,u+1,m);return g};(e??[]).forEach(c=>{c!=null&&d(c,0,null)}),this.all=o,this.h=n,this.m=a,this.e=s,this.core.undoService.clear();for(let c of[...this.d])s.has(c)||this.d.delete(c);if(this.core.options.defaultExpandAll)for(let c of o)this.getChildrenCount(c.id)>0&&this.d.add(c.id);this.core.selectionService.onRowsRebuilt(t!=null),this.refreshPipeline()}getChildrenIds(e){return this.m.get(e)??[]}getChildrenCount(e){return this.m.get(e)?.length??0}hasChildren(e){return this.getChildrenCount(e)>0}isTreeRowLoading(e){return this.e.get(e)?.treeLoading===!0}Jr(){for(let e of this.N.values())e.abort();this.N.clear(),this.Me.clear()}loadTreeChildren(e,t=!1){let r=this.e.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.e.get(l)?.data;return d==null?[]:[d]}));let n=this.Me.get(e);if(n&&!t)return n;this.N.get(e)?.abort();let s=new AbortController;this.N.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.Gi(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.N.get(e)===s&&(this.N.delete(e),this.Me.delete(e),r.treeLoading=!1,this.core.requestUpdate({data:!0}))});return this.Me.set(e,a),a}Gi(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.Ni(t,r);for(let s of r)this.N.get(s)?.abort(),this.N.delete(s),this.Me.delete(s),this.m.delete(s),this.e.delete(s),this.d.delete(s);this.m.delete(e.id);let n=this.getTreeDepth(e)+1;for(let s of t)s!=null&&this.Kt(e,s,n);this.Qr(),this.core.selectionService.onRowsRebuilt(this.core.options.resolveRowId!=null),this.refreshPipeline(),this.core.requestUpdate({data:!0})}Ni(e,t){let r=this.core.options.resolveRowId,o=r?new Set([...this.e.keys()].filter(l=>!t.has(l))):null,n=new WeakSet,s=[...e],a=0;for(;s.length>0;){let l=s.pop();if(l==null)continue;if(typeof l=="object"){if(n.has(l))throw new TypeError("[MachTable] Lazy tree children contain a cyclic object graph.");n.add(l)}if(r&&o){let c=r({data:l,index:a++,api:this.core.getApi()});if(typeof c!="string"||c.length===0)throw new TypeError("[MachTable] rowKey must resolve to a non-empty identifier for lazy tree children.");if(o.has(c))throw new Error(`Duplicate row id: ${c}`);o.add(c)}let d=fe(l,this.core.options.childrenKey);d&&s.push(...d)}}applyTransaction(e,t=!0){let r=this.core.options.resolveRowId,o=[],n=[];if(e.remove?.length){let a=new Set,l=new Set,d=u=>{if(r){let p=[this.resolveRowId(u,-1,`__missing_remove_${this.core.nextId()}`)];for(;p.length>0;){let m=p.pop();if(!a.has(m)){a.add(m);for(let v of this.m.get(m)??[])p.push(v)}}}else{let h=[u];for(;h.length>0;){let p=h.pop();l.add(p);let m=this.isTree?fe(p,this.core.options.childrenKey):void 0;if(m)for(let v of m)h.push(v)}}};e.remove.forEach(d),this.all=this.all.filter(u=>{let h=a.has(u.id)||u.data!=null&&l.has(u.data);return h&&(n.push(u.id),this.e.delete(u.id),this.m.delete(u.id)),!h});let c=new Set(this.all);this.h=this.h.filter(u=>c.has(u))}if(e.update?.length)for(let a of e.update){let l;r?l=this.e.get(this.resolveRowId(a,-1,`__missing_update_${this.core.nextId()}`)):l=this.all.find(d=>d.data===a),l&&(l.data=a,n.push(l.id),this.core.bodyRenderer.invalidateRowHeight(l),o.push(l))}if(e.add?.length){let a=e.addIndex!=null?Math.max(0,Math.min(e.addIndex,this.h.length)):this.h.length,l=[];e.add.forEach((d,c)=>{let u=this.resolveRowId(d,a+c,`add-${this.core.nextId()}`);if(this.e.has(u)){this.core.reportError(new Error(`Duplicate row id: ${u}`),"transaction.add",{rowId:u});return}let h={id:u,data:d,rowIndex:-1,selected:!1};this.e.set(u,h),this.ot.set(h,0);let p=this.isTree?fe(d,this.core.options.childrenKey):void 0;if(p)for(let m of p)m!=null&&this.Kt(h,m,1);l.push(h)}),this.h.splice(a,0,...l),this.Qr()}let s=this.Fi(e);return t&&(s?this.refreshPipeline():o.length>0&&this.Zr()),this.core.changeTracker.clearRows(n),{pipelineChanged:s,updatedRowIds:o.map(a=>a.id)}}applyTransactions(e){if(e.length===0)return{pipelineChanged:!1,updatedRowIds:[]};let t=!1,r=new Set;for(let o of e){let n=this.applyTransaction(o,!1);t||(t=n.pipelineChanged);for(let s of n.updatedRowIds)r.add(s)}return t?this.refreshPipeline():r.size>0&&this.Zr(),{pipelineChanged:t,updatedRowIds:[...r]}}Fi(e){return e.add?.length||e.remove?.length?!0:e.update?.length?this.isTree||this.core.options.masterDetail||this.core.columnModel.getRowGroupColumns().length>0||!this.core.options.manualFiltering&&this.isFilterPresent()||!this.core.options.manualSorting&&this.core.columnModel.getSortModel().length>0||this.core.options.getRowHeight?!0:this.core.columnModel.getOrderedVisible().some(t=>t.colDef.autoHeight===!0||t.colDef.autoRowSpan===!0||t.colDef.rowSpan!=null):!1}Zr(){this.core.emit("modelUpdated",{rowCount:this.T.length})}Kt(e,t,r){let o=this.resolveRowId(t,-1,`add-${this.core.nextId()}`);if(this.e.has(o)){this.core.reportError(new Error(`Duplicate row id: ${o}`),"transaction.add",{rowId:o});return}let n=fe(t,this.core.options.childrenKey),s={id:o,data:t,rowIndex:-1,selected:!1,treeChildrenLoaded:Array.isArray(n)};this.e.set(o,s),this.ot.set(s,r);let a=this.m.get(e.id)??[];if(a.push(s.id),this.m.set(e.id,a),!!n)for(let l of n)l!=null&&this.Kt(s,l,r+1)}Qr(){this.all=[];let e=t=>{this.all.push(t),this.e.has(t.id)||this.e.set(t.id,t);for(let r of this.m.get(t.id)??[]){let o=this.e.get(r);o&&e(o)}};for(let t of this.h)e(t)}setFilterModel(e){let t=JSON.stringify(this.filterModel),r=new Set(this.core.columnModel.getColumns().map(o=>o.id));return this.filterModel=J(e,r),JSON.stringify(this.filterModel)!==t}getFilterModel(){return{...this.filterModel}}setAdvancedFilterModel(e){let t=new Set(this.core.columnModel.getColumns().map(n=>n.id)),r=O(e,t),o=JSON.stringify(this.advancedFilterModel);return this.advancedFilterModel=r,this.core.options.advancedFilterModel=r,JSON.stringify(r)!==o}getAdvancedFilterModel(){return O(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.Oi(e);return}if(this.Hi(e))return;let o;if(this.isTree)o=this.Vi(t,r);else{o=this.all,this.isFilterPresent()&&!this.core.options.manualFiltering&&(o=o.filter(d=>Lt(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=Pt(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.Bi(o,l);else if(this.core.options.masterDetail){let d=[];for(let c of o)d.push(c),this.d.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 n=0;o.forEach((s,a)=>{s.rowIndex=a,!s.isDetail&&!s.isGroup&&(n++,this.xe.set(s,n))}),this.T=o,this.pe(),this.eo(r),this.core.emit("modelUpdated",{rowCount:o.length}),this.core.performanceMonitor.recordModel(e)}Oi(e){this.all.forEach((t,r)=>{this.isBlockDatasource||(t.rowIndex=r),this.xe.set(t,this.isBlockDatasource?t.rowIndex+1:r+1)}),this.C=this.all,this.T=this.all,this.et.clear(),this.ke++,this.core.emit("modelUpdated",{rowCount:this.all.length}),this.core.performanceMonitor.recordModel(e)}Hi(e){let t=this.zt;return this.zt=!1,!t&&this.zi()?(this._i(e),!0):(this.$t(),!1)}zi(){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}_i(e){this.$t();let t=this.core.options.dataProcessor;if(!t)return;let r=++this.Ie,o=new AbortController;this.it=o;let n=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:n.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.Ie||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.e.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.xe.set(p,m+1)}),this.T=u,this.pe();let h=(p,m)=>this.core.getCellValue(p,m);this.eo(h),this.core.emit("modelUpdated",{rowCount:u.length}),this.core.performanceMonitor.recordModel(e),this.core.requestUpdate({data:!0})}).catch(d=>{r!==this.Ie||o.signal.aborted||this.core.isDestroyed()||(this.core.reportError(d,"dataProcessor.process"),this.zt=!0,this.refreshPipeline(),this.core.requestUpdate({data:!0}))}).finally(()=>{r===this.Ie&&(this.it=null)})}$t(){this.Ie++,this.it?.abort(),this.it=null}get paginationActive(){return this.core.options.paginationEnabled&&!this.isInfinite}pe(){if(!this.paginationActive){this.C=this.T,this.ke++;return}let e=this.Le(),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.T.forEach((n,s)=>{n.rowIndex=s}),this.C=this.T,this.ke++;return}let r=(this.page-1)*e,o=this.T.slice(r,r+e);o.forEach((n,s)=>{n.rowIndex=s}),this.C=o,this.ke++}Le(){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.T.length}getPageCount(){return this.paginationActive?Math.max(1,Math.ceil(this.getTotalRowCount()/this.Le())):1}getPipelineRows(){return this.T}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.pe(),this.core.requestUpdate({data:!0}),this.core.bodyRenderer.scrollToIndex(0,"top"),t||this.nt())}setPageSize(e){if(!this.paginationActive)return;let t=Math.max(1,Math.round(e)||this.Le()),r=(this.page-1)*this.Le();this.core.options.paginationPageSize=t,this.pageSize=t,this.page=Math.floor(r/t)+1,this.core.options.paginationPage=this.page,this.pe(),this.core.requestUpdate({data:!0}),this.nt()}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.pe(),this.core.requestUpdate({data:!0}),this.nt())}onPaginationOptionsChanged(){this.paginationActive&&(this.page=this.core.options.paginationMode==="server"?this.core.options.paginationPage:1,this.pe(),this.core.requestUpdate({data:!0}),this.nt())}nt(){this.core.emit("paginationChanged",{page:this.getCurrentPage(),pageSize:this.Le(),pageCount:this.getPageCount(),total:this.getTotalRowCount()})}Vi(e,t){let r=this.core.options.manualSorting?[]:this.core.columnModel.getSortModel(),o=new Map,n=this.isFilterPresent()&&!this.core.options.manualFiltering,s=d=>{let c=o.get(d.id);if(c!==void 0)return c;let u=!0;if(n){u=Lt(d,e,this.filterModel,this.advancedFilterModel,this.quickFilter,t);for(let h of this.m.get(d.id)??[]){let p=this.e.get(h);p&&s(p)&&(u=!0)}}return o.set(d.id,u),u},a=[],l=d=>{let c=d;r.length>0&&(c=Pt(d,r,e,t));for(let u of c)if(s(u)&&(a.push(u),this.d.has(u.id))){let h=(this.m.get(u.id)??[]).map(p=>this.e.get(p)).filter(p=>p!=null);l(h)}};return l(this.h),a}Wi(){let e=this.Mi,t=0;for(let r of this.C)!r.isDetail&&!r.isGroup&&(e[t++]=r);return e.length=t,e}$i(e,t,r,o){let n=t.colDef.rowSpan;if(!n)return 1;try{let s=n({api:this.core.getApi(),colDef:t.colDef,column:t,node:e,data:e.data,value:r,rowIndex:e.rowIndex});return Math.max(1,Math.min(Math.round(s)||1,o))}catch(s){return this.core.reportError(s,"rowSpan",{colId:t.id,rowId:e.id}),1}}Ki(e,t,r,o,n){if(!r.colDef.autoRowSpan||o==null||o==="")return 1;let s=1;for(;t+s<e.length&&Ge(o,n(e[t+s],r))===0;)s++;return s}qi(e,t,r){let o=new Int32Array(e.length),n=0;for(;n<e.length;){let s=e[n],a=r(s,t),l=t.colDef.rowSpan?this.$i(s,t,a,e.length-n):this.Ki(e,n,t,a,r);o[n]=l;for(let d=1;d<l;d++)o[n+d]=-1;n+=l}return o}eo(e){if(this.et.clear(),this.isTree||this.core.options.masterDetail||this.core.columnModel.getRowGroupColumns().length>0)return;let t=this.core.columnModel.getOrderedVisible().filter(o=>o.colDef.rowSpan!=null||o.colDef.autoRowSpan===!0);if(t.length===0)return;let r=this.Wi();if(r.length!==0)for(let o of t)this.et.set(o.id,this.qi(r,o,e))}getSpanInfo(e){return this.et.get(e)}getRowSeq(e){return this.xe.get(e)??0}getTreeDepth(e){return this.ot.get(e)??0}Bi(e,t){let r=Gt(this.core.options.aggFuncs),o=this.core.columnModel.getAggColumns();this.Ee=[];let n=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 v of a){let g=this.core.getCellValue(v,c),y=g==null?"(\u7A7A)":String(g),b=u.get(y);b||(b=[],u.set(y,b),h.push(y)),b.push(v)}h.sort((v,g)=>v.localeCompare(g,void 0,{numeric:!0,sensitivity:"base"}));let p=[],m=[];for(let v of h){let g=u.get(v),y=`${d}/g${l}:${v}`;this.Ee.push(y);let b=s(g,l+1,y),T={id:y,data:null,rowIndex:-1,selected:!1,isGroup:!0,groupLevel:l,groupKey:v,leafNodes:b.leaves,aggValues:n(b.leaves)};p.push(T),this.g.has(y)&&p.push(...b.display),m.push(...b.leaves)}return{display:p,leaves:m}};return s(e,0,"").display}isRowExpandable(e){if(this.isTree){if(this.hasChildren(e.id)||e.treeLoading)return!0;if(e.treeChildrenLoaded||!e.data||!this.core.options.loadTreeChildren)return!1;let r=this.core.options.isTreeRowExpandable;if(!r)return!1;try{return r({data:e.data,node:e,api:this.core.getApi()})}catch(o){return this.core.reportError(o,"isTreeRowExpandable",{rowId:e.id}),!1}}if(!this.core.options.masterDetail)return!1;let t=this.core.options.isRowExpandable;if(t)try{return t({data:e.data,node:e,api:this.core.getApi()})}catch(r){return this.core.reportError(r,"isRowExpandable",{rowId:e.id}),!1}return!0}isRowExpanded(e){return this.d.has(e)}getExpandedRowIds(){return[...this.d]}getExpandedGroupIds(){return[...this.g]}restoreExpansion(e,t){this.d=new Set(e.filter(r=>this.e.has(r))),this.g=new Set(t)}expandRow(e){return this.qt(e,!0)}collapseRow(e){return this.qt(e,!1)}toggleDetail(e){return this.qt(e,!this.d.has(e))}qt(e,t){let r=this.e.get(e);return!r||t&&!this.isRowExpandable(r)?!1:(t===this.d.has(e)||(t?this.d.add(e):this.d.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.d.has(t.id)&&this.isRowExpandable(t)&&(this.d.add(t.id),e=!0);e&&(this.refreshPipeline(),this.core.requestUpdate({data:!0}))}collapseAllDetails(){this.d.size!==0&&(this.d.clear(),this.refreshPipeline(),this.core.requestUpdate({data:!0}))}toggleGroup(e){return this.setGroupExpanded(e,!this.g.has(e))}isGroupExpanded(e){return this.g.has(e)}getGroupNode(e){return this.C.find(t=>t.isGroup&&t.id===e)}expandAllGroups(){if(this.Ee.length===0)return;let e=!1;for(let t of this.Ee)this.g.has(t)||(this.g.add(t),e=!0);e&&(this.refreshPipeline(),this.core.requestUpdate({data:!0}))}collapseAllGroups(){this.g.size!==0&&(this.g.clear(),this.refreshPipeline(),this.core.requestUpdate({data:!0}))}setGroupExpanded(e,t){return!this.Ee.includes(e)||t===this.g.has(e)||(t?this.g.add(e):this.g.delete(e),this.refreshPipeline(),this.core.requestUpdate({data:!0})),t}canReorderRows(){return!this.isTree&&!this.isInfinite&&!this.core.options.dataProcessor&&this.core.options.paginationMode!=="server"&&this.core.columnModel.getSortModel().length===0&&this.core.columnModel.getRowGroupColumns().length===0}reorderRowsByDisplayed(e,t){if(!this.canReorderRows()||!Number.isInteger(e)||!Number.isInteger(t))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 n=this.all.indexOf(r),s=this.all.indexOf(o);return n<0||s<0||n===s?!1:(this.all.splice(n,1),this.all.splice(s,0,r),this.refreshPipeline(),this.core.requestUpdate({data:!0}),!0)}getAllNodes(){return this.all}getRootNodes(){return this.h}getDisplayedRows(){return this.C}getDisplayedRowCount(){return this.isBlockDatasource?this.he():this.C.length}getDisplayedRow(e){return this.isBlockDatasource?e<0||e>=this.he()?void 0:this.A.get(e)??this.Li(e):this.C[e]}getNodeById(e){return this.e.get(e)}forEachNode(e){this.all.forEach(e)}forEachNodeAfterFilterAndSort(e){let t=0;for(let r of this.T)r.isDetail||r.isGroup||e(r,t++)}};var Ve=class{constructor(e){this.core=e;this.n=new Set;this.I=null;this.Pe=new Set}isSelected(e){return this.n.has(e)}isIndeterminate(e){return this.Pe.has(e)}isSelectable(e){if(e.loading)return!1;let t=this.Ui(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}}Ui(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.n.has(e.id))}getSelectedRows(){return this.getSelectedNodes().filter(e=>e.data!=null).map(e=>e.data)}getSelectedIds(){return[...this.n]}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.R(r,!0)}onRowsRebuilt(e){if(!e)this.n.clear(),this.I=null;else{let t=new Set(this.core.rowModel.getAllNodes().map(r=>r.id));for(let r of[...this.n])t.has(r)||this.n.delete(r);this.I!=null&&!t.has(this.I)&&(this.I=null)}for(let t of this.core.rowModel.getAllNodes())t.selected=this.n.has(t.id);this.to()}getGroupSelectionState(e){let t=e.leafNodes??[];if(t.length===0)return{all:!1,some:!1};let r=0,o=0;for(let n of t)this.isSelectable(n)&&(r++,this.n.has(n.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.R(r.map(o=>({node:o,selected:t})))}setNodeSelected(e,t,r=!1){this.R([{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)}ji(e,t){let r=t==="single";this.R([{node:e,selected:r?!0:!e.selected,clearOthers:r}]),this.I=e.id}Yi(e,t,r){return!r||!t.ctrlKey&&!t.metaKey?!1:(this.R([{node:e,selected:!e.selected}]),this.I=e.id,!0)}Xi(e,t,r){if(!r||!t.shiftKey||this.I==null)return!1;let o=this.core.rowModel.getNodeById(this.I);if(!o||o.rowIndex<0||e.rowIndex<0)return!1;let n=Math.min(o.rowIndex,e.rowIndex),s=Math.max(o.rowIndex,e.rowIndex),a=[];for(let l=n;l<=s;l++){let d=this.core.rowModel.getDisplayedRow(l);d&&!d.isDetail&&!d.isGroup&&this.isSelectable(d)&&a.push({node:d,selected:!0})}return this.R(a),!0}onRowClick(e,t,r){let o=this.core.options.rowSelection;if(o==="none"||!this.isSelectable(e))return;if(r){this.ji(e,o);return}let n=o==="multiple";this.Yi(e,t,n)||this.Xi(e,t,n)||(this.R([{node:e,selected:!0,clearOthers:!0}]),this.I=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(n=>!n.isDetail&&!n.isGroup&&this.isSelectable(n));if(o.length!==0){if(t==="single"){this.R([{node:o[0],selected:!0,clearOthers:!0}]);return}this.R(o.map(n=>({node:n,selected:!0})))}}deselectAll(){this.R([],!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.n.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,n)=>o+(this.n.has(n.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.R(e,t)}Ji(e,t,r){!t&&!e.some(o=>o.clearOthers)||(this.n=t?new Set:new Set(e.filter(o=>o.selected).flatMap(o=>r?this.ro(o.node):[o.node.id])))}Qi(e,t){for(let r of e){if(!this.isSelectable(r.node))continue;let o=t?this.ro(r.node):[r.node.id];for(let n of o)r.selected?this.n.add(n):this.n.delete(n)}}Zi(e){let t=new Set;for(let r of new Set([...e,...this.n]))e.has(r)!==this.n.has(r)&&t.add(r);return t}en(e,t,r){let o=[],n=new Set([...e,...r,...this.Pe]);for(let s of this.core.rowModel.getAllNodes()){let a=this.n.has(s.id);s.selected=a,(n.has(s.id)||t.get(s.id)!==a)&&s.rowIndex>=0&&o.push(s.rowIndex)}return o}R(e,t=!1){let r=new Set(this.n),o=this.core.rowModel.isTree&&this.core.options.autoCheckedChildren;this.Ji(e,t,o),this.Qi(e,o);let n=this.Zi(r),s=new Map;for(let d of this.core.rowModel.getAllNodes())s.set(d.id,d.selected);let a=new Set(this.Pe);this.to();let l=this.en(n,s,a);n.size>0&&(this.core.bodyRenderer.refreshRows(l),this.core.headerRenderer.refreshSelectAllCheckbox(),this.core.emit("selectionChanged",{selectedNodes:this.getSelectedNodes(),selectedRows:this.getSelectedRows()}))}ro(e){let t=[e.id],r=o=>{for(let n of this.core.rowModel.getChildrenIds(o))t.push(n),r(n)};return r(e.id),t}to(){if(this.Pe.clear(),!this.core.rowModel.isTree)return;let e=t=>{let r=this.core.rowModel.getChildrenIds(t);if(r.length===0)return{all:this.n.has(t),some:this.n.has(t)};let o=!0,n=!1;for(let s of r){let a=e(s);a.all?n=!0:(a.some&&(n=!0),o=!1)}return n&&!o&&this.Pe.add(t),o?this.n.add(t):this.n.delete(t),{all:o,some:n}};for(let t of this.core.rowModel.getRootNodes())e(t.id);for(let t of this.core.rowModel.getAllNodes())t.selected=this.n.has(t.id)}};var Be=class{constructor(e){this.core=e;this.active=null;this.D=0;this.O=0;this.S=null;this.Y=null;this.H=e=>{let t=this.jt(e);t&&(this.O=this.ao(t,e.clientX),t.didResize||(t.didResize=Math.abs(this.O-t.startWidth)>=.5),!this.D&&(this.D=requestAnimationFrame(()=>{this.D=0,this.rn()})))};this.x=e=>{let t=this.jt(e);t&&(this.O=this.ao(t,e.clientX),t.didResize||(t.didResize=Math.abs(this.O-t.startWidth)>=.5),this.nn(t))};this.X=e=>{this.jt(e)&&this.cancelResize()};this.oo=()=>{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.O=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.H),window.addEventListener("pointerup",this.x,!0),window.addEventListener("pointercancel",this.X,!0),r.addEventListener("lostpointercapture",this.oo);try{r.setPointerCapture?.(e.pointerId)}catch{}this.core.skeleton.root.classList.add("mach-root--resizing"),r.classList.add("mach-header-resize--active"),this.tn(this.active)}cancelResize(e=!0){let t=this.active;t&&(this.active=null,this.Ut(),this.no(t),e&&(t.column.manualWidth=t.startManualWidth,t.column.flex=t.startFlex,this.core.relayoutColumns()),this.core.skeleton.root.classList.remove("mach-root--resizing"),this.so(t))}nn(e){this.active=null,this.Ut(),e.didResize&&(Math.abs(this.O-e.startWidth)<.5?(e.column.manualWidth=e.startManualWidth,e.column.flex=e.startFlex):this.core.columnModel.setColumnWidth(e.column,this.O),this.core.relayoutColumns()),this.no(e);try{e.handle.releasePointerCapture?.(e.pointerId)}catch{}this.core.skeleton.root.classList.remove("mach-root--resizing"),this.so(e),e.didResize&&this.core.commitColumnWidths([e.column])}rn(){let e=this.active;!e||!this.core.columnModel.setColumnWidth(e.column,this.O)||(this.core.relayoutColumns(),this.Ge(e),this.core.emitColumnResize(e.column,!1))}tn(e){this.S=document.createElement("div"),this.S.className="mach-column-resize-guide",this.S.setAttribute("aria-hidden","true"),this.Y=document.createElement("span"),this.Y.className="mach-column-resize-label",this.S.appendChild(this.Y),this.core.skeleton.root.appendChild(this.S),this.Ge(e)}Ge(e){if(!this.S||!this.Y)return;let t=this.core.skeleton.root,r=t.getBoundingClientRect(),o=e.handle.parentElement.getBoundingClientRect(),n=Math.max(0,Math.min(t.clientWidth,o.right-r.left-t.clientLeft)),s=Math.max(32,Math.min(t.clientWidth-32,n));this.S.style.left=`${n}px`,this.S.style.top=`${Math.max(0,o.top-r.top-t.clientTop)}px`,this.Y.style.left=`${s-n}px`,this.Y.textContent=`${Math.round(e.column.currentWidth)} px`}so(e){e.handle.classList.remove("mach-header-resize--active"),this.S?.remove(),this.S=null,this.Y=null}ao(e,t){let r=Number.isFinite(t)?t:e.startX;return e.startWidth+r-e.startX}jt(e){let t=this.active;return t&&e.pointerId===t.pointerId?t:null}Ut(){this.D&&cancelAnimationFrame(this.D),this.D=0}no(e){window.removeEventListener("pointermove",this.H),window.removeEventListener("pointerup",this.x,!0),window.removeEventListener("pointercancel",this.X,!0),e.handle.removeEventListener("lostpointercapture",this.oo)}destroy(){this.cancelResize(!1),this.Ut(),this.core.skeleton.root?.classList.remove("mach-root--resizing")}};function f(i,e,t){let r=document.createElement(i);if(e&&(r.className=e),t)for(let o of Object.keys(t))r.setAttribute(o,t[o]);return r}var Fi=["--mach-font-family","--mach-font-size","--mach-font-size-sm","--mach-header-font-weight","--mach-cell-padding","--mach-header-h","--mach-primary","--mach-primary-weak","--mach-success","--mach-warning","--mach-danger","--mach-info","--mach-border-color","--mach-border-width","--mach-header-bg","--mach-header-fg","--mach-body-bg","--mach-body-fg","--mach-row-hover-bg","--mach-radius-sm","--mach-radius","--mach-radius-lg","--mach-shadow-sm","--mach-shadow","--mach-transition","--mach-z-popup","--mach-z-menu"];function L(i,e){if(i.classList.add("mach-portal"),!e)return;let t=window.getComputedStyle(e);for(let r of Fi){let o=t.getPropertyValue(r).trim();o&&i.style.setProperty(r,o)}i.style.colorScheme=t.colorScheme}function D(i,e,t){return i<e?e:i>t?t:i}var kr=0;function Ar(i="rg"){return kr++,`${i}-${kr}`}var Ir='<svg viewBox="0 0 16 16" width="12" height="12" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M2 3.5h12L9.5 8v4.5L6.5 14V8L2 3.5z"/></svg>',Lr='<svg viewBox="0 0 16 16" width="10" height="10" fill="currentColor"><path d="M8 3l4 5H4l4-5z"/></svg>',Pr='<svg viewBox="0 0 16 16" width="10" height="10" fill="currentColor"><path d="M8 13l4-5H4l4 5z"/></svg>',Gr='<svg viewBox="0 0 16 16" width="12" height="12" fill="none" stroke="currentColor" stroke-width="1.35" stroke-linecap="round"><path d="M2 4h3m3 0h6M2 8h7m3 0h2M2 12h1m3 0h8"/><circle cx="6.5" cy="4" r="1.35"/><circle cx="10.5" cy="8" r="1.35"/><circle cx="4.5" cy="12" r="1.35"/></svg>';var Nr=6,ze=class{constructor(e){this.core=e;this.pending=null;this.fe=null;this.Yt=!1;this.y=0;this.st=null;this.H=e=>{if(this.fe){this.sn(e);return}let t=this.pending;t&&(Math.abs(e.clientX-t.startX)<Nr&&Math.abs(e.clientY-t.startY)<Nr||this.an(e))};this.x=e=>{this.pending=null,e.type!=="pointercancel"&&this.fe&&this.Jt(e.clientX,e.clientY),this.Xt();let t=this.lo();t&&e.type!=="pointercancel"&&t.targetIndex>=0&&this.core.moveColumn(t.column.id,t.targetIndex)}}onPointerDown(e,t){e.button===0&&t.movable&&(this.pending={column:t,startX:e.clientX,startY:e.clientY},window.addEventListener("pointermove",this.H),window.addEventListener("pointerup",this.x),window.addEventListener("pointercancel",this.x))}didDrag(){let e=this.Yt;return this.Yt=!1,e}an(e){let t=this.pending;if(!t)return;let r=this.ln(t.column);if(!r||!r.parentElement){this.Xt();return}this.Yt=!0;let o=f("div","mach-drop-indicator"),n=f("div","mach-column-drag-ghost");n.textContent=t.column.colDef.headerName??t.column.colDef.field??t.column.id,n.ariaHidden="true",L(n,this.core.skeleton.root),document.body.appendChild(n),r.parentElement.appendChild(o),r.classList.add("mach-header-cell--dragging"),this.core.skeleton.root.classList.add("mach-root--dragging");let s=this.core.bodyRenderer.paneForColumn(t.column),a=this.core.skeleton.headerRowContainers[s],l=this.core.columnModel.getPaneColumns(s),d=new Float64Array(l.length+1),c=new Float64Array(l.length);for(let h=0;h<l.length;h++){let p=l[h].currentWidth;c[h]=d[h]+p/2,d[h+1]=d[h]+p}let u=n.getBoundingClientRect();this.fe={column:t.column,cellEl:r,ghost:n,indicator:o,targetIndex:-1,pane:s,containerLeft:a.getBoundingClientRect().left,startScrollLeft:this.core.skeleton.bodyViewports.center.scrollLeft,fromIndex:l.indexOf(t.column),midpoints:c,offsets:d,ghostWidth:u.width,ghostHeight:u.height},this.Jt(e.clientX,e.clientY)}ln(e){let t=this.core.bodyRenderer.paneForColumn(e);return this.core.skeleton.headerRowContainers[t].querySelector(`.mach-header-cell[data-col-id="${Oi(e.id)}"]`)}sn(e){this.st={clientX:e.clientX,clientY:e.clientY},!this.y&&(this.y=requestAnimationFrame(()=>{this.y=0;let t=this.st;this.st=null,t&&this.Jt(t.clientX,t.clientY)}))}Jt(e,t){let r=this.fe;if(!r)return;let o=D(e+12,8,window.innerWidth-r.ghostWidth-8),n=D(t+12,8,window.innerHeight-r.ghostHeight-8);r.ghost.style.transform=`translate3d(${o}px, ${n}px, 0)`;let s=r.pane==="center"?this.core.skeleton.bodyViewports.center.scrollLeft-r.startScrollLeft:0,a=e-(r.containerLeft-s),l=r.midpoints.length;for(let d=0;d<r.midpoints.length;d++)if(a<r.midpoints[d]){l=d;break}r.targetIndex=l>r.fromIndex?l-1:l,r.indicator.style.transform=`translate3d(${r.offsets[l]}px, 0, 0)`}lo(){let e=this.fe;return e?(this.fe=null,e.cellEl.classList.remove("mach-header-cell--dragging"),e.ghost.remove(),e.indicator.remove(),this.core.skeleton.root.classList.remove("mach-root--dragging"),e):null}Xt(){window.removeEventListener("pointermove",this.H),window.removeEventListener("pointerup",this.x),window.removeEventListener("pointercancel",this.x),this.y&&cancelAnimationFrame(this.y),this.y=0,this.st=null}destroy(){this.Xt(),this.lo(),this.pending=null}};function Oi(i){return typeof CSS<"u"&&typeof CSS.escape=="function"?CSS.escape(i):i.replace(/[^a-zA-Z0-9_-]/g,"\\$&")}function Fr(i,e){let t=i==null?"":String(i);return t.includes(e)||t.includes('"')||t.includes(`
|
|
2
2
|
`)||t.includes("\r")?'"'+t.replace(/"/g,'""')+'"':t}function _e(i){return typeof i!="string"||i===""||/^[+-]?(?:\d+(?:\.\d+)?|\.\d+)(?:[eE][+-]?\d+)?$/.test(i)?i:/^[\s\u0000-\u001f]*[=+\-@]/.test(i)?"'"+i:i}function Nt(i,e={}){let t=e.columnSeparator??",",r=e.includeHeader??!0,o=e.protectFormulas??!0,n=[];r&&n.push(i.getHeaderLabels().map(a=>Fr(a,t)).join(t));for(let a of i.getRowValues())n.push(a.map(l=>Fr(o?_e(l):l,t)).join(t));let s=n.join(`\r
|
|
3
3
|
`);return e.prependBOM?"\uFEFF"+s:s}function Hi(i,e){let t=e?_e(i):i,r=t==null?"":String(t);return/["\t\n\r]/.test(r)?'"'+r.replace(/"/g,'""')+'"':r}function me(i,e=!0){return i.map(t=>t.map(r=>Hi(r,e)).join(" ")).join(`
|
|
4
4
|
`)}function Ft(i){return Ht(i," ")}function Ot(i,e=","){return Ht(i,e)}function Ht(i,e){let t=[],r=[],o="",n=!1,s=0;for(;s<i.length;){let a=i[s];if(n){if(a==='"'){if(i[s+1]==='"'){o+='"',s+=2;continue}n=!1,s++;continue}o+=a,s++;continue}if(a==='"'&&o===""){n=!0,s++;continue}if(a===e){r.push(o),o="",s++;continue}if(a===`
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agile-team/mach-table",
|
|
3
|
-
"version": "0.31.
|
|
3
|
+
"version": "0.31.1",
|
|
4
4
|
"description": "Enterprise-grade, framework-agnostic TypeScript data grid with virtualization, editing, grouping and extensibility",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"data-grid",
|
|
@@ -81,5 +81,5 @@
|
|
|
81
81
|
"test": "vitest run",
|
|
82
82
|
"test:coverage": "vitest run --coverage"
|
|
83
83
|
},
|
|
84
|
-
"readme": "<p align=\"center\">\n <img src=\"https://raw.githubusercontent.com/ChenyCHENYU/MachTable/main/assets/mach-table-logo.svg\" alt=\"MachTable\" width=\"760\" />\n</p>\n\n# @agile-team/mach-table\n\nMachTable 0.31.
|
|
84
|
+
"readme": "<p align=\"center\">\n <img src=\"https://raw.githubusercontent.com/ChenyCHENYU/MachTable/main/assets/mach-table-logo.svg\" alt=\"MachTable\" width=\"760\" />\n</p>\n\n# @agile-team/mach-table\n\nMachTable 0.31.1 的框架无关 TypeScript Core:零运行时依赖,提供行列双虚拟化、领域化 API、单元格/整行编辑、树与分组、随机访问远程数据、区段隔离状态持久化和可诊断扩展系统。本版增加可配置整行颜色、完善主题化行拖拽与键盘排序,并修正树交互与列宽拖动反馈。\n\n```bash\npnpm add @agile-team/mach-table\n```\n\n```ts\nimport { createGrid, indexColumn } from \"@agile-team/mach-table\";\nimport \"@agile-team/mach-table/styles/mach-table.css\";\n\nconst api = createGrid(document.querySelector(\"#grid\")!, {\n columnDefs: [\n indexColumn({ headerName: \"序号\" }),\n { field: \"id\", headerName: \"ID\", width: 120 },\n { field: \"name\", headerName: \"名称\", flex: 1, editable: true }\n ],\n rowData: [{ id: \"1\", name: \"MachTable\" }],\n rowKey: \"id\",\n enableColumnResize: true,\n persistence: { key: \"tenant:user:customers\", sections: [\"columns\"] }\n});\n\napi.batch((grid) => {\n grid.rows.transact({ update: [{ id: \"1\", name: \"Updated\" }] });\n grid.columns.setVisible(\"internalNote\", false);\n grid.view.refreshCells({ rowIds: [\"1\"] });\n});\n\nconst saved = await api.editing.save(orderApi.saveChanges);\nconsole.table(saved.conflicts);\nconsole.info(api.diagnostics.get());\n\n// 原生宿主卸载时必须销毁;Vue/React 适配器会自动处理。\napi.destroy();\n```\n\n`persistence.sections` 同时约束进入 store 的数据与恢复范围;异步 store 写入有序,晚到加载不会覆盖加载期间的用户操作。\n\n单元格编辑通过内置对勾/取消控件显式结束,普通鼠标和焦点变化不会误提交;Enter、Escape、Tab 仍提供完整键盘路径。筛选、列设置、上下文菜单和操作菜单会继承所属表格实例的主题变量,不受宿主页面全局样式影响。\n\n`loading: true` 默认展示轻量表格骨架与本地化状态文案,空数据默认展示内置插画;需要品牌化时再通过 `overlayLoadingTemplate`、`overlayNoRowsTemplate` 覆盖,基础页面无需重复实现 loading/empty DOM。\n\n公共命令按 `rows`、`columns`、`selection`、`editing`、`filtering`、`sorting`、`pagination`、`hierarchy`、`view`、`state`、`io`、`diagnostics` 划分。完整签名见 [GridApi](https://github.com/ChenyCHENYU/MachTable/blob/main/docs/api/grid-api.md)。\n\n大型本地数据 Worker 使用独立入口:\n\n```ts\nimport { createWorkerDataProcessor } from \"@agile-team/mach-table/worker\";\n```\n\nVue/React 项目请只安装对应适配包,它会自动安装并重导出 Core:\n\n- [@agile-team/mach-table-vue](https://www.npmjs.com/package/@agile-team/mach-table-vue)\n- [@agile-team/mach-table-react](https://www.npmjs.com/package/@agile-team/mach-table-react)\n\n## 行拖拽与条件整行颜色\n\n```ts\nimport { dragColumn, type GridOptions } from \"@agile-team/mach-table\";\n\ninterface Plan { id: string; name: string; status: string }\nconst options: GridOptions<Plan> = {\n rowKey: \"id\",\n columnDefs: [dragColumn(), { field: \"name\" }, { field: \"status\" }],\n rowStyleRules: [\n { when: ({ data }) => data.status === \"pending\", tone: \"warning\" },\n { when: ({ data }) => data.status === \"failed\", tone: \"danger\" },\n { when: ({ data }) => data.status === \"done\", tone: \"success\" }\n ]\n};\n```\n\n状态码由应用定义,包内不识别业务状态。颜色规则取第一条命中结果,未命中时沿用默认样式;支持自定义背景/文字颜色、固定列、明暗主题、选择和虚拟行复用。拖拽提供主题手柄、落点线、位置浮层、边缘滚动、Esc 取消和 Alt + ↑/↓ 移动。扁平外部数据设置 `applyRowDrag: false`,由 `onRowDragEnd` 处理持久化;自动模式先完成移动再发出事件,使用 `targetIndex` 读取最终下标。树、分组及排序等自动模式限制见[完整配方](https://github.com/ChenyCHENYU/MachTable/blob/main/docs/recipes/row-presentation.md)。\n\n文档:[快速开始](https://github.com/ChenyCHENYU/MachTable/blob/main/docs/guide/getting-started.md) · [企业接入](https://github.com/ChenyCHENYU/MachTable/blob/main/docs/guide/enterprise-integration.md) · [API](https://github.com/ChenyCHENYU/MachTable/tree/main/docs/api)\n\nSource-available © ChenyCHENYU (Agile Team). 任何使用均须事先取得书面授权。详见 [LICENSE](https://github.com/ChenyCHENYU/MachTable/blob/main/LICENSE) 与[授权流程](https://github.com/ChenyCHENYU/MachTable/blob/main/LICENSING.md)。\n"
|
|
85
85
|
}
|