@agile-team/mach-table 0.19.0 → 0.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1,7 +1,6 @@
1
- "use strict";var zt=Object.defineProperty;var jo=Object.getOwnPropertyDescriptor;var Yo=Object.getOwnPropertyNames;var Xo=Object.prototype.hasOwnProperty;var Jo=(n,e)=>{for(var t in e)zt(n,t,{get:e[t],enumerable:!0})},Qo=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Yo(e))!Xo.call(n,o)&&o!==t&&zt(n,o,{get:()=>e[o],enumerable:!(r=jo(e,o))||r.enumerable});return n};var Zo=n=>Qo(zt({},"__esModule",{value:!0}),n);var Yi={};Jo(Yi,{BUILTIN_AGG_FUNCS:()=>qt,Column:()=>P,DEFAULT_LOCALE:()=>T,DIRECT_GRID_OPTION_KEYS:()=>jr,EVENT_TYPES:()=>z,EventBus:()=>Z,GRID_OPTION_KEYS:()=>ae,GRID_OPTION_META:()=>_,GRID_SIZE_PRESETS:()=>q,GridCore:()=>ce,LOCALE_EN:()=>Ur,actionsColumn:()=>Io,advancedFilterCondition:()=>Dr,advancedFilterGroup:()=>Er,applyGridViewState:()=>Cr,buildColDefsFromSchema:()=>Do,captureGridViewState:()=>wr,clearColumnState:()=>no,clearComponentRegistries:()=>go,clearGridState:()=>so,computeColumnWidths:()=>Ie,createActionButtonsRenderer:()=>de,createAggResolver:()=>Oe,createBusinessColumnTypes:()=>zo,createCachedDictionary:()=>_o,createColumnHelper:()=>Lo,createColumnStateKey:()=>oo,createDictionaryRenderer:()=>Wo,createEnterprisePreset:()=>Go,createGrid:()=>To,createGridViewManager:()=>qo,createLocalColumnStateStore:()=>nr,createLocalGridStateStore:()=>ar,createLocalGridViewStore:()=>br,createMachTableCommands:()=>Eo,createMachTablePreset:()=>B,createProgressBarRenderer:()=>ur,createRowActionsRenderer:()=>Lt,createSaveSnapshot:()=>ht,createStatusTagRenderer:()=>cr,defaultComparator:()=>ie,defineColumns:()=>Ao,defineGridOptions:()=>No,defineMachTableConfig:()=>Oo,defineMachTablePreset:()=>Fo,describeFilter:()=>gt,downloadFile:()=>ct,dragColumn:()=>ko,escapeHtml:()=>Y,evaluateColumnFilter:()=>Fe,fitColumnWidths:()=>Pe,formatText:()=>I,formatTwo:()=>et,getByPath:()=>te,getCellEditor:()=>Gt,getCellRenderer:()=>Te,indexColumn:()=>Mo,isColDefGroup:()=>ne,isSafePath:()=>ee,linkRenderer:()=>hr,loadColumnState:()=>Mt,loadGridState:()=>It,matchLocaleKey:()=>Ze,matchesGridOptionKind:()=>we,mergeMachTableConfig:()=>Ho,migrateGridState:()=>O,normalizeAdvancedFilterModel:()=>G,normalizeBatchSaveResult:()=>pt,normalizeColumnFilter:()=>Me,normalizeFilterModel:()=>re,normalizeGridViewState:()=>Vt,normalizeMachTableConfig:()=>vr,normalizeSavedGridView:()=>ue,parseCsv:()=>Ke,parseDelimited:()=>$e,parseTsv:()=>We,registerBuiltinRenderers:()=>At,registerCellEditor:()=>fo,registerCellRenderer:()=>po,resolveGridFeatures:()=>Ot,resolveMachTableGridOptions:()=>Bo,resolveSaveConflict:()=>Zr,resolveTagVariant:()=>dr,rowActionsColumn:()=>Po,sanitizeFormulaCell:()=>fe,sanitizeGridOptionPatch:()=>ut,saveColumnState:()=>xt,saveGridState:()=>kt,selectionColumn:()=>xo,setByPath:()=>U,sortNodes:()=>he,toTsv:()=>se,validateGridOptions:()=>Ft,version:()=>ji});module.exports=Zo(Yi);var xe={name:"@agile-team/mach-table",version:"0.19.0",description:"Enterprise-grade, framework-agnostic TypeScript data grid with virtualization, editing, grouping and extensibility",keywords:["data-grid","table","virtualization","typescript","enterprise","vue","react"],author:"ChenyCHENYU (Agile Team)",license:"SEE LICENSE IN LICENSE",homepage:"https://github.com/ChenyCHENYU/MachTable#readme",bugs:{url:"https://github.com/ChenyCHENYU/MachTable/issues"},repository:{type:"git",url:"git+https://github.com/ChenyCHENYU/MachTable.git",directory:"packages/core"},type:"module",main:"./dist/index.cjs",module:"./dist/index.js",types:"./dist/index.d.ts",engines:{node:">=18.0.0"},publishConfig:{access:"public"},exports:{".":{import:{types:"./dist/index.d.ts",default:"./dist/index.js"},require:{types:"./dist/index.d.cts",default:"./dist/index.cjs"}},"./worker":{import:{types:"./dist/worker.d.ts",default:"./dist/worker.js"},require:{types:"./dist/worker.d.cts",default:"./dist/worker.cjs"}},"./styles/mach-table.css":{types:"./styles/mach-table.css.d.ts",default:"./styles/mach-table.css"}},files:["dist","styles"],sideEffects:["**/*.css"],scripts:{build:"tsup",typecheck:"tsc --noEmit",test:"vitest run","test:coverage":"vitest run --coverage"}};var Z=class{constructor(e){this.onListenerError=e;this.listeners=new Map}on(e,t){let r=this.listeners.get(e);return r||(r=new Set,this.listeners.set(e,r)),r.add(t),()=>{r.delete(t)}}once(e,t){let r=this.on(e,o=>{r(),t(o)});return r}off(e,t){let r=this.listeners.get(e);r&&(r.delete(t),r.size===0&&this.listeners.delete(e))}emit(e,t){let r=this.listeners.get(e);if(r)for(let o of[...r])try{o(t)}catch(i){console.error(`[mach-table] error in "${e}" listener`,i),this.onListenerError?.(i,e)}}clear(){this.listeners.clear()}};var tn=new Set(["__proto__","prototype","constructor"]);function ee(n){return typeof n!="string"||n.length===0?!1:n.split(".").every(t=>t.length>0&&!tn.has(t))}function te(n,e){if(n==null||!ee(e))return;if(e.indexOf(".")<0)return n[e];let r=n,o=0;for(;o<e.length;){if(r==null)return;let i=e.indexOf(".",o);if(i<0){r=r[e.slice(o)];break}r=r[e.slice(o,i)],o=i+1}return r}function U(n,e,t){if(n==null||!ee(e))return!1;let r=e.split("."),o=n;for(let i=0;i<r.length-1;i++){if(typeof o!="object"&&typeof o!="function"||o===null)return!1;o[r[i]]==null&&(o[r[i]]={}),o=o[r[i]]}return typeof o!="object"&&typeof o!="function"||o===null?!1:(o[r[r.length-1]]=t,!0)}var rn=new Set(["contains","notContains","equals","notEquals","startsWith","endsWith","blank","notBlank"]),on=new Set(["equals","notEquals","lessThan","lessThanOrEqual","greaterThan","greaterThanOrEqual","inRange","blank","notBlank"]),nn=new Set(["equals","notEquals","lessThan","greaterThan","inRange","blank","notBlank"]);function sn(n){return n==null||typeof n=="string"||typeof n=="number"&&Number.isFinite(n)}function an(n){return n==="text"?rn:n==="number"?on:nn}function ln(n,e,t){if(n==null||typeof n!="object")return null;let r=n;return typeof r.match!="string"||!t.has(r.match)?null:{match:r.match,...dn(r,e)}}function dn(n,e){let t=e==="number"?Tr(n.value):typeof n.value=="string"?n.value:void 0,r=e==="number"?Tr(n.value2):typeof n.value2=="string"?n.value2:void 0;return{...t!==void 0?{value:t}:{},...r!==void 0?{value2:r}:{}}}function Tr(n){return typeof n=="number"&&Number.isFinite(n)?n:void 0}function cn(n,e){let t=[],r=an(e);for(let o of n.slice(0,20)){let i=ln(o,e,r);i&&t.push(i)}return t}function Me(n){if(n==null||typeof n!="object")return null;let e=n;return e.type==="set"?Array.isArray(e.values)?{type:"set",values:e.values.filter(sn).slice(0,2e3)}:null:e.type!=="text"&&e.type!=="number"&&e.type!=="date"||!Array.isArray(e.conditions)?null:{type:e.type,...e.operator==="or"||e.operator==="and"?{operator:e.operator}:{},conditions:cn(e.conditions,e.type)}}function un(n,e){if(typeof n.colId!="string"||!n.colId.trim())return null;let t=n.colId.trim();if(e.validColumnIds?.has(t)===!1)return null;let r=Me(n.filter);return r?{kind:"condition",colId:t,filter:r}:null}function hn(n,e,t){if(!Array.isArray(n.children))return null;let r=[];for(let o of n.children){let i=Sr(o,e+1,t);i&&r.push(i)}return r.length===0?null:{kind:"group",operator:n.operator==="or"?"or":"and",children:r,...n.not===!0?{not:!0}:{}}}function pn(n,e,t){return e<=16&&t.nodes<512&&n!=null&&typeof n=="object"}function Sr(n,e,t){if(!pn(n,e,t)||t.ancestors.has(n))return null;t.ancestors.add(n),t.nodes++;let r=n,o=r.kind==="condition"?un(r,t):r.kind==="group"?hn(r,e,t):null;return t.ancestors.delete(n),o}function G(n,e){if(n==null||typeof n!="object")return null;let t=n;if(t.version!==1||t.root==null)return null;let r=Sr(t.root,0,{ancestors:new WeakSet,nodes:0,validColumnIds:e});return r?{version:1,root:r}:null}function Dr(n,e){return{kind:"condition",colId:n,filter:e}}function re(n,e){if(n==null||typeof n!="object"||Array.isArray(n))return{};let t={};for(let[r,o]of Object.entries(n).slice(0,2e3)){let i=r.trim();if(!i||e?.has(i)===!1)continue;let s=Me(o);s&&(t[i]=s)}return t}function Er(n,e,t={}){return{kind:"group",operator:n,children:e,...t.not?{not:!0}:{}}}var _t={sortable:!0,resizable:!0,movable:!0,filter:!1,minWidth:80},q={compact:{rowHeight:30,headerHeight:34,fontSize:12,cellPadding:6},normal:{rowHeight:36,headerHeight:40,fontSize:13,cellPadding:9},large:{rowHeight:44,headerHeight:48,fontSize:14,cellPadding:12}};function D(n,e,t,r=!1){return typeof n!="number"||!Number.isFinite(n)||n<t?e:r?Math.floor(n):n}function fn(n){return n&&Object.prototype.hasOwnProperty.call(q,n)?n:"normal"}function mn(n){return n.theme==="light"||n.theme==="dark"||n.theme==="auto"?n.theme:n.className?.includes("mach-theme-dark")?"dark":"light"}function gn(n,e){let t=typeof n.pagination=="object"&&Array.isArray(n.pagination.pageSizeOptions)?n.pagination.pageSizeOptions:void 0,r=t?[...new Set(t.map(o=>D(o,0,1,!0)).filter(Boolean))]:[10,20,50,100];return r.includes(e)||r.push(e),r.sort((o,i)=>o-i)}function Wt(n,e){let t=typeof n=="function"?n(e):te(e,n);return t==null?"":String(t)}function yn(n){let e=n.rowKey,t=n.getRowId??(e?({data:r})=>Wt(e,r):void 0);return{...t?{getRowId:t}:{},...e?{rowKey:e}:{}}}function vn(n,e){let t=q[e];return{columnDefs:Array.isArray(n.columnDefs)?n.columnDefs:[],rowData:Array.isArray(n.rowData)?n.rowData:[],defaultColDef:{..._t,...n.defaultColDef??{}},columnTypes:n.columnTypes??{},...yn(n),rowHeight:D(n.rowHeight,t.rowHeight,1),headerHeight:D(n.headerHeight,t.headerHeight,1),rowBuffer:D(n.rowBuffer,8,0,!0),columnLayout:n.columnLayout==="fit"?"fit":"normal",enableColumnResize:n.enableColumnResize===!0,domLayout:n.domLayout==="autoHeight"?"autoHeight":"normal",rowSelection:n.rowSelection==="single"||n.rowSelection==="multiple"?n.rowSelection:"none",multiSort:n.multiSort??!0,size:e,pinnedTopRowData:Array.isArray(n.pinnedTopRowData)?n.pinnedTopRowData:[],pinnedBottomRowData:Array.isArray(n.pinnedBottomRowData)?n.pinnedBottomRowData:[]}}function wn(n){return{stripedRows:n.stripedRows??!1,showCellBorders:n.showCellBorders??!1,theme:mn(n),quickFilterText:n.quickFilterText??null,suppressCellFocus:n.suppressCellFocus??!1,suppressRowHoverHighlight:n.suppressRowHoverHighlight??!1,suppressNoRowsOverlay:n.suppressNoRowsOverlay??!1,suppressHeaderFocus:n.suppressHeaderFocus??!1,loading:n.loading??!1,error:n.error??null,className:n.className??""}}function Cn(n){return{editType:n.editType==="fullRow"?"fullRow":"cell",editableIndicator:n.editableIndicator==="always"||n.editableIndicator==="none"?n.editableIndicator:"hover",singleClickEdit:n.singleClickEdit??!1,manualSorting:n.manualSorting??!1,manualFiltering:n.manualFiltering??!1,showSummary:n.showSummary??!1,indexOffset:n.indexOffset??0,applyRowDrag:n.applyRowDrag??!0,undoStackSize:D(n.undoStackSize,100,0,!0),asyncTransactionWaitMillis:D(n.asyncTransactionWaitMillis,16,0,!0)}}function bn(n){return{masterDetail:n.masterDetail??!1,detailRowHeight:D(n.detailRowHeight,240,1),detailToggleColumn:n.detailToggleColumn??!0,treeData:n.treeData??!1,childrenKey:n.childrenKey??"children",autoCheckedChildren:n.autoCheckedChildren??!0,defaultExpandAll:n.defaultExpandAll??!1}}function Rn(n){let e=typeof n.pagination=="object"?n.pagination:void 0,t=D(e?.pageSize,20,1,!0);return{paginationEnabled:n.pagination!==!1&&n.datasource==null,paginationMode:e?.mode==="server"?"server":"client",paginationPage:D(e?.page,1,1,!0),paginationTotal:D(e?.total,0,0,!0),paginationPageSize:t,paginationPageSizeOptions:gn(n,t),paginationShowTotal:e?e.showTotal!==!1:!0,paginationShowSizeSelector:e?e.showPageSizeSelector!==!1:!0}}function Tn(n){return{watermarkEnabled:n.watermark!=null&&n.watermark!==!1,watermarkConfig:n.watermark==null||n.watermark===!1?null:n.watermark===!0?{text:"MachTable"}:n.watermark}}function Sn(n){return{columnMenu:n.columnMenu??!1,columnStateKey:n.columnStateKey??null,advancedFilterModel:G(n.advancedFilterModel),...Dn(n),locale:n.locale??{},suppressWarnings:n.suppressWarnings??!1,enableRangeSelection:n.enableRangeSelection??!1,suppressClipboard:n.suppressClipboard??!1,contextMenu:n.contextMenu??!1,tooltipShowDelay:D(n.tooltipShowDelay,600,0),flashCells:n.flashCells??!0,fillHandle:n.fillHandle??!0,statusBarEnabled:n.statusBar===!0||typeof n.statusBar=="object"&&n.statusBar!=null,statusBarPanels:typeof n.statusBar=="object"&&n.statusBar?.panels?n.statusBar.panels:["rowCount","selectedRowCount","rangeAggregate"]}}function Dn(n){return{stateKey:n.stateKey??null,stateSaveDebounceMs:D(n.stateSaveDebounceMs,160,0,!0)}}function En(n){return{datasourceMode:n.datasourceMode==="block"?"block":"sequential",blockSize:D(n.blockSize,100,1,!0),infiniteBufferRows:D(n.infiniteBufferRows,40,0,!0),maxBlocksInCache:D(n.maxBlocksInCache,12,1,!0),blockPrefetch:D(n.blockPrefetch,1,0,!0),datasourceRowCount:n.datasourceRowCount==null?null:D(n.datasourceRowCount,0,0,!0),dataProcessorMinRows:D(n.dataProcessorMinRows,5e3,1,!0),datasourceRetryCount:D(n.datasourceRetryCount,2,0,!0),datasourceRetryDelay:D(n.datasourceRetryDelay,300,0,!0)}}function xn(n){return{ariaLabel:n.ariaLabel??"MachTable data grid",ariaLabelledBy:n.ariaLabelledBy??"",ariaDescribedBy:n.ariaDescribedBy??"",overlayNoRowsTemplate:n.overlayNoRowsTemplate??"",overlayLoadingTemplate:n.overlayLoadingTemplate??"",overlayErrorTemplate:n.overlayErrorTemplate??"",allowUnsafeOverlayHtml:n.allowUnsafeOverlayHtml??!1}}var Mn=["stateStore","detailRowRenderer","isRowExpandable","columnStateStore","aggFuncs","components","actionPolicy","summaryMethod","datasource","getRowHeight","tooltipComponent","getContextMenuItems","initialState","rowEditValidator","isTreeRowExpandable","loadTreeChildren","dataProcessor"];function kn(n,e){for(let t of Mn)n[t]&&Object.assign(e,{[t]:n[t]})}function In(n,e){for(let t of Object.keys(n))t.startsWith("on")&&typeof n[t]=="function"&&Object.assign(e,{[t]:n[t]})}function xr(n){let e=fn(n.size),t={...vn(n,e),...wn(n),...Cn(n),...bn(n),...Rn(n),...Tn(n),...Sn(n),...En(n),...xn(n),features:Array.isArray(n.features)?n.features:[]};return kn(n,t),In(n,t),t}function Mr(n){return Array.isArray(n)?n.filter(e=>typeof e=="string"&&e.length>0):typeof n=="string"&&n.length>0?[n]:[]}function oe(n,e){return Mr(n.type).includes(e)}function kr(n,e,t={}){let r={};for(let o of Mr(n.type)){let i=t[o];i&&Object.assign(r,i)}return{...e,...r,...n}}var P=class{constructor(e,t){this.manualWidth=null;this.flex=null;this.currentWidth=0;this.parentGroup=null;this.level=0;this.isDetailToggle=!1;this.id=e,this.colDef=t,this.hide=t.hide??!1;let r=t.pinned;this.pinned=r===!0?"left":r===!1||r==null?null:r,this.resetWidth()}get sortable(){return this.colDef.sortable!==!1}get resizable(){return this.colDef.resizable!==!1}get movable(){return this.colDef.movable!==!1}get filterable(){return this.colDef.filter!=null&&this.colDef.filter!==!1}get filterType(){let e=this.colDef.filter;return e===!0?"text":e??"text"}get hasCheckbox(){return this.colDef.checkboxSelection===!0}resetWidth(){this.manualWidth=null,this.flex=typeof this.colDef.flex=="number"&&Number.isFinite(this.colDef.flex)&&this.colDef.flex>0?this.colDef.flex:null}};var j=class n{constructor(e,t){this.parent=null;this.children=[];this.groupId=e,this.def=t}get headerName(){return this.def.headerName??this.def.groupId??""}getLeafColumns(e=[]){for(let t of this.children)t instanceof n?t.getLeafColumns(e):e.push(t);return e}};function ne(n){return Array.isArray(n.children)}function ke(n,e){return typeof n=="number"&&Number.isFinite(n)&&n>0?n:e}function Ir(n){let e=ke(n.minWidth,80);return{min:e,max:Math.max(e,ke(n.maxWidth,Number.MAX_SAFE_INTEGER))}}function L(n,e){let{min:t,max:r}=Ir(e),o=ke(n,ke(e.width,150));return Math.max(t,Math.min(r,o))}function Ie(n,e){let t=n.map(s=>L(s.width??150,s)),r=[],o=0;n.forEach((s,a)=>{let l=s.flex??0;l>0&&(r.push(a),o+=l)});let i=0;for(let s of t)i+=s;if(o>0&&e>i){let s=e-i;for(let a=0;a<4&&s>.5&&r.length>0;a++){let l=[],d=0;for(let p of r){let m=n[p].flex??0;l.push(p),d+=m}let c=[];for(let p=0;p<l.length;p++){let m=l[p],f=n[m].flex??0,y=s*f/d,v=t[m];t[m]=L(v+y,n[m]),c.push(t[m]-v)}let u=0;for(let p of c)u+=p;s-=u;let h=l.filter((p,m)=>c[m]>.001);if(h.length===l.length)break;r.length=0;for(let p of h)r.push(p)}}return t}function Pe(n,e){let t=n.map(s=>L(s.width??150,s));if(!Number.isFinite(e)||e<=0||n.length===0)return t;let r=new Set(n.map((s,a)=>a)),o=e;for(let s=0;s<n.length+1&&r.size>0;s++){let a=0;for(let d of r)a+=Math.max(1,t[d]);if(a<=0)break;let l=!1;for(let d of[...r]){let c=o*(Math.max(1,t[d])/a),u=L(c,n[d]),{min:h,max:p}=Ir(n[d]);(c<h||c>p)&&(t[d]=u,o-=u,r.delete(d),l=!0)}if(!l){for(let d of r)t[d]=L(o*(Math.max(1,t[d])/a),n[d]);break}o=Math.max(0,o)}let i=e-t.reduce((s,a)=>s+a,0);if(Math.abs(i)>.01)for(let s=t.length-1;s>=0;s--){let a=L(t[s]+i,n[s]);if(Math.abs(a-t[s])>.01){t[s]=a;break}}return t}var Kt="__rg_detail_toggle__";function Le(n){return typeof n=="number"&&Number.isFinite(n)&&n>0}var Ae=class{constructor(e){this.core=e;this.columns=[];this.rootChildren=[];this.left=[];this.center=[];this.right=[];this.sortModel=[];this.defs=[];this.headerDepth=1;this.flatIndexById=new Map;this.viewportWidth=0}setColumnDefs(e){this.defs=e?[...e]:[];let t=new Map(this.columns.map(s=>[s.id,s])),r=this.core.options.defaultColDef,o=new Set(this.core.options.masterDetail&&this.core.options.detailToggleColumn?[Kt]:[]),i=(s,a,l)=>s.map((d,c)=>{if(ne(d)){let v=d.groupId??d.headerName??`group_${c}_${l}`,w=new j(v,d);return w.parent=a,w.children=i(d.children,w,l+1),w}let u=d,h=u.colId??u.field??`col_${c}`,p=h,m=2;for(;o.has(p);)p=`${h}_${m++}`;o.add(p);let f=new P(p,kr(u,r,this.core.options.columnTypes));f.parentGroup=a,f.level=l;let y=t.get(p);return y&&(f.manualWidth=y.manualWidth,f.flex=y.flex,f.hide=y.hide,f.pinned=y.pinned),f});if(this.rootChildren=i(this.defs,null,0),this.core.options.masterDetail&&this.core.options.detailToggleColumn){let s=new P(Kt,{colId:Kt,headerName:"",width:38,pinned:"left",sortable:!1,resizable:!1,movable:!1,filter:!1});s.isDetailToggle=!0,this.rootChildren.unshift(s)}if(this.columns=this.collectLeaves(this.rootChildren),this.headerDepth=this.columns.reduce((s,a)=>Math.max(s,a.level+1),1),this.sortModel=this.sortModel.filter(s=>this.columns.some(a=>a.id===s.colId)),this.sortModel.length===0){let s=[];for(let a of this.columns)a.colDef.initialSort&&s.push({colId:a.id,direction:a.colDef.initialSort});this.sortModel=s}this.regroup()}collectLeaves(e,t=[]){for(let r of e)r instanceof j?this.collectLeaves(r.children,t):t.push(r);return t}regroup(){let e=this.columns.filter(t=>!t.hide);this.left=e.filter(t=>t.pinned==="left"),this.right=e.filter(t=>t.pinned==="right"),this.center=e.filter(t=>t.pinned===null),this.flatIndexById.clear(),this.getOrderedVisible().forEach((t,r)=>this.flatIndexById.set(t.id,r))}getFlatIndex(e){return this.flatIndexById.get(e)??-1}getColumns(){return this.columns}getColumnDefs(){return this.defs}getRootChildren(){return this.rootChildren}getHeaderDepth(){return this.headerDepth}getColumn(e){return this.columns.find(t=>t.id===e)}getPaneColumns(e){return e==="left"?this.left:e==="right"?this.right:this.center}getOrderedVisible(){return[...this.left,...this.center,...this.right]}getRowGroupColumns(){return this.getOrderedVisible().filter(e=>e.colDef.rowGroup===!0)}getAggColumns(){return this.getOrderedVisible().filter(e=>e.colDef.aggFunc!=null&&e.colDef.rowGroup!==!0)}hasColSpan(){return this.center.some(e=>e.colDef.colSpan!=null)}getGroupLabelColumn(){let e=this.getOrderedVisible();return this.center.find(t=>!t.hasCheckbox&&!t.isDetailToggle)??e.find(t=>!t.hasCheckbox&&!t.isDetailToggle)??e[0]}paneOf(e){return e.pinned==="left"?"left":e.pinned==="right"?"right":"center"}computeLayout(e){this.viewportWidth=e;let t=0;for(let c of[...this.left,...this.right])c.currentWidth=L(c.manualWidth??c.colDef.width??150,this.widthInputOf(c)),t+=c.currentWidth;let r=Math.max(0,e-t),o=[],i=[];for(let c of this.center)(c.colDef.suppressSizeToFit||c.manualWidth!=null?i:o).push(c);let s=0;for(let c of i)c.currentWidth=L(c.manualWidth??c.colDef.width??150,this.widthInputOf(c)),s+=c.currentWidth;let a=o.map(c=>this.widthInputOf(c)),l=Math.max(0,r-s),d=this.core.options.columnLayout==="fit"?Pe(a,l):Ie(a,l);o.forEach((c,u)=>{c.currentWidth=d[u]})}widthInputOf(e){let t=e.colDef;return e.manualWidth!=null?{width:e.manualWidth,minWidth:t.minWidth,maxWidth:t.maxWidth}:{width:t.width,minWidth:t.minWidth,maxWidth:t.maxWidth,...e.flex!=null?{flex:e.flex}:{}}}setColumnWidth(e,t){return Le(t)?(e.manualWidth=L(t,this.widthInputOf(e)),e.flex=null,!0):!1}setColumnVisibility(e,t){let r=this.getColumn(e);!r||r.hide===!t||(r.hide=!t,this.regroup())}moveColumn(e,t){let r=this.getColumn(e);if(!r)return!1;let o=this.paneOf(r),i=u=>r.parentGroup?!0:this.paneOf(u)===o,s=r.parentGroup?r.parentGroup.children:this.rootChildren,a=s.filter(u=>u instanceof P&&!u.hide&&i(u)),l=a.indexOf(r);if(l<0)return!1;a.splice(l,1);let d=Math.max(0,Math.min(t,a.length));a.splice(d,0,r);let c=[];return s.forEach((u,h)=>{u instanceof P&&!u.hide&&i(u)&&c.push(h)}),c.length!==a.length?!1:(c.forEach((u,h)=>{s[u]=a[h]}),this.columns=this.collectLeaves(this.rootChildren),this.regroup(),!0)}setColumnPinned(e,t){let r=this.getColumn(e);r&&(r.pinned=t,this.regroup())}getColumnState(){return this.columns.map(e=>{let t=this.sortModel.findIndex(o=>o.colId===e.id),r={colId:e.id,hide:e.hide,width:e.manualWidth??e.currentWidth,flex:e.flex,widthMode:e.manualWidth==null?"auto":"manual",pinned:e.pinned};return t>=0?(r.sort=this.sortModel[t].direction,r.sortIndex=t):(r.sort=null,r.sortIndex=null),r})}applyColumnState(e){let t=new Map(e.map(r=>[r.colId,r]));for(let r of this.columns){let o=t.get(r.id);o&&this.applyColumnViewState(r,o)}this.sortModel=this.sortModelFromState(e),this.applyStateOrder(e),this.regroup()}applyColumnViewState(e,t){typeof t.hide=="boolean"&&(e.hide=t.hide),t.widthMode==="auto"?(e.resetWidth(),Le(t.flex)&&(e.flex=t.flex)):Le(t.flex)?(e.flex=t.flex,e.manualWidth=null):Le(t.width)&&(e.manualWidth=L(t.width,this.widthInputOf(e)),e.flex=null),(t.pinned==="left"||t.pinned==="right"||t.pinned===null)&&(e.pinned=t.pinned)}sortModelFromState(e){let t=new Set(this.columns.map(i=>i.id)),r=new Set,o=[];for(let i of e){if(i.sort!=="asc"&&i.sort!=="desc"||!t.has(i.colId)||r.has(i.colId))continue;r.add(i.colId);let s=typeof i.sortIndex=="number"&&Number.isInteger(i.sortIndex)&&i.sortIndex>=0?i.sortIndex:o.length;o.push({colId:i.colId,direction:i.sort,sortIndex:s})}return o.sort((i,s)=>i.sortIndex-s.sortIndex),o.map(({colId:i,direction:s})=>({colId:i,direction:s}))}applyStateOrder(e){let t=new Map;e.forEach((o,i)=>t.set(o.colId,i));let r=o=>o.pinned==="left"?"left":o.pinned==="right"?"right":"center";for(let o of["left","center","right"]){let i=this.rootChildren.filter(l=>l instanceof P&&!l.hide&&l.parentGroup===null&&r(l)===o);if(i.length<2)continue;let s=i.slice().sort((l,d)=>(t.get(l.id)??Number.MAX_SAFE_INTEGER)-(t.get(d.id)??Number.MAX_SAFE_INTEGER));if(s.every((l,d)=>l===i[d]))continue;let a=[];this.rootChildren.forEach((l,d)=>{l instanceof P&&!l.hide&&l.parentGroup===null&&r(l)===o&&a.push(d)}),a.forEach((l,d)=>{this.rootChildren[l]=s[d]})}this.columns=this.collectLeaves(this.rootChildren)}resetColumnState(){for(let e of this.columns){e.resetWidth(),e.hide=e.colDef.hide??!1;let t=e.colDef.pinned;e.pinned=t===!0?"left":t===!1||t==null?null:t}this.sortModel=[],this.regroup()}getSortModel(){return this.sortModel.map(e=>({...e}))}applySortModel(e){if(!e||e.length===0){this.sortModel=[];return}this.sortModel=e.filter(t=>this.columns.some(r=>r.id===t.colId)&&(t.direction==="asc"||t.direction==="desc")).map(t=>({colId:t.colId,direction:t.direction}))}cycleSort(e,t){let r=[...this.sortModel],o=r.findIndex(l=>l.colId===e.id),i=o>=0?r[o].direction:null,s=i===null?"asc":i==="asc"?"desc":null;t&&this.core.options.multiSort?s===null?o>=0&&r.splice(o,1):o>=0?r[o]={colId:e.id,direction:s}:r.push({colId:e.id,direction:s}):(r.length=0,s&&r.push({colId:e.id,direction:s})),this.sortModel=r}};function Lr(n){return n==null?"":String(n).toLowerCase()}function Pn(n,e,t){let r=Lr(n),o=e.map(i=>{let s=(i.value??"").toLowerCase();switch(i.match){case"contains":return r.includes(s);case"notContains":return!r.includes(s);case"equals":return r===s;case"notEquals":return r!==s;case"startsWith":return r.startsWith(s);case"endsWith":return r.endsWith(s);case"blank":return r==="";case"notBlank":return r!=="";default:return!0}});return o.length===0?!0:t==="or"?o.some(Boolean):o.every(Boolean)}function Ln(n,e,t){let r=e.map(o=>{let i=n==null||n==="";if(o.match==="blank")return i;if(o.match==="notBlank")return!i;if(i)return!1;let s=typeof n=="number"?n:Number(n);if(isNaN(s))return!1;let a=o.value;if(a==null||isNaN(a))return!1;switch(o.match){case"equals":return s===a;case"notEquals":return s!==a;case"lessThan":return s<a;case"lessThanOrEqual":return s<=a;case"greaterThan":return s>a;case"greaterThanOrEqual":return s>=a;case"inRange":return s>=a&&s<=(o.value2??a);default:return!0}});return r.length===0?!0:t==="or"?r.some(Boolean):r.every(Boolean)}function Ge(n){if(n==null||n==="")return null;if(n instanceof Date)return isNaN(n.getTime())?null:n.getTime();if(typeof n=="number")return n;let e=Date.parse(String(n));return isNaN(e)?null:e}function An(n,e,t){let r=e.map(o=>{let i=Ge(n)==null;if(o.match==="blank")return i;if(o.match==="notBlank")return!i;if(i)return!1;let s=Ge(n),a=o.value!=null?Ge(o.value):null;if(a==null)return!1;switch(o.match){case"equals":return s===a;case"notEquals":return s!==a;case"lessThan":return s<a;case"greaterThan":return s>a;case"inRange":{let l=o.value2!=null?Ge(o.value2):null;return l!=null?s>=a&&s<=l:s>=a}default:return!0}});return r.length===0?!0:t==="or"?r.some(Boolean):r.every(Boolean)}function Gn(n,e){return e.length===0?!0:e.some(t=>t==null&&n==null||t===n)}function Fe(n,e){let t=e.type!=="set"&&e.operator==="or"?"or":"and";switch(e.type){case"text":return Pn(n,e.conditions,t);case"number":return Ln(n,e.conditions,t);case"date":return An(n,e.conditions,t);case"set":return Gn(n,e.values);default:return!0}}function $t(n,e,t,r){if(n.kind==="condition"){let i=e.get(n.colId);return!i||Fe(r(t,i),n.filter)}let o=n.operator==="or"?n.children.some(i=>$t(i,e,t,r)):n.children.every(i=>$t(i,e,t,r));return n.not?!o:o}function Fn(n,e,t,r){return t?$t(t.root,new Map(e.map(o=>[o.id,o])),n,r):!0}function Ut(n,e,t,r,o,i){for(let s of Object.keys(t)){let a=t[s],l=e.find(c=>c.id===s);if(!l)continue;let d=i(n,l);if(!Fe(d,a))return!1}if(!Fn(n,e,r,i))return!1;if(o&&o.trim()!==""){let s=o.trim().toLowerCase().split(/\s+/);for(let a of s)if(!e.some(d=>Lr(i(n,d)).includes(a)))return!1}return!0}var Ar=typeof Intl<"u"?new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"}):null;function ie(n,e){let t=n==null||n==="",r=e==null||e==="";if(t&&r)return 0;if(t)return 1;if(r)return-1;if(typeof n=="number"&&typeof e=="number")return isNaN(n)&&isNaN(e)?0:isNaN(n)?1:isNaN(e)?-1:n-e;if(n instanceof Date&&e instanceof Date)return n.getTime()-e.getTime();if(typeof n=="boolean"&&typeof e=="boolean")return n===e?0:n?1:-1;let o=String(n),i=String(e);return Ar?Ar.compare(o,i):o.localeCompare(i)}function he(n,e,t,r){let o=new Map;for(let l of t)o.set(l.id,l);let i=[],s=[];for(let l of e){let d=o.get(l.colId);d&&(i.push(d.colDef.comparator??ie),s.push(l.direction))}let a=n.map(l=>({node:l,values:e.map(d=>r(l,o.get(d.colId)))}));return a.sort((l,d)=>{for(let c=0;c<i.length;c++){let u=i[c](l.values[c],d.values[c],l.node,d.node);if(u!==0)return s[c]==="asc"?u:-u}return 0}),a.map(l=>l.node)}function Ne(n){return n.filter(e=>typeof e=="number"&&!isNaN(e))}var qt={sum:n=>Ne(n).reduce((e,t)=>e+t,0),avg:n=>{let e=Ne(n);return e.length===0?null:e.reduce((t,r)=>t+r,0)/e.length},count:n=>n.length,min:n=>{let e=Ne(n);return e.length===0?null:Math.min(...e)},max:n=>{let e=Ne(n);return e.length===0?null:Math.max(...e)},first:n=>n.length>0?n[0]:null,last:n=>n.length>0?n[n.length-1]:null};function Oe(n){let e={...qt,...n??{}};return t=>e[t]}function Gr(n){if(n.reason instanceof Error)return n.reason;let e=new Error(typeof n.reason=="string"?n.reason:"Block request aborted");return e.name="AbortError",e}function Fr(n){return Number.isFinite(n)?Math.max(1,Math.trunc(n)):1}var He=class{constructor(e,t){this.maxBlocks=e;this.onEvict=t;this.blocks=new Map;this.inflight=new Map;this.clock=0;this.generation=0;this.hitCount=0;this.missCount=0;this.evictionCount=0;this.maxBlocks=Fr(e)}configure(e){this.maxBlocks=Fr(e),this.evictOverflow()}peek(e){let t=this.blocks.get(e);if(t)return t.touchedAt=++this.clock,t}has(e){return this.blocks.has(e)}load(e,t,r){if(r?.aborted)return Promise.reject(Gr(r));let o=this.peek(e);if(o)return this.hitCount++,Promise.resolve(o);let i=this.inflight.get(e);if(i)return this.hitCount++,this.attachConsumer(e,i,r);this.missCount++;let s=this.generation,a=new AbortController,l=Promise.resolve().then(()=>t(a.signal)).then(c=>(s!==this.generation||a.signal.aborted||(this.blocks.set(e,{rows:c.rows,...c.lastRow==null?{}:{lastRow:c.lastRow},touchedAt:++this.clock}),this.evictOverflow()),c)).finally(()=>{this.inflight.get(e)?.promise===l&&this.inflight.delete(e)}),d={controller:a,promise:l,consumers:0};return this.inflight.set(e,d),this.attachConsumer(e,d,r)}purge(){this.generation++;for(let e of this.inflight.values())e.controller.abort();this.inflight.clear();for(let[e,t]of this.blocks)this.onEvict?.(e,t);this.blocks.clear()}snapshot(){let e=0;for(let t of this.blocks.values())e+=t.rows.length;return{cachedBlockCount:this.blocks.size,loadingBlockCount:this.inflight.size,cachedRowCount:e,hitCount:this.hitCount,missCount:this.missCount,evictionCount:this.evictionCount}}attachConsumer(e,t,r){return t.consumers++,new Promise((o,i)=>{let s=!1,a=d=>{s||(s=!0,r?.removeEventListener("abort",l),t.consumers=Math.max(0,t.consumers-1),d())},l=()=>a(()=>{t.consumers===0&&this.inflight.get(e)===t&&(this.inflight.delete(e),t.controller.abort(r?.reason)),i(Gr(r))});r?.addEventListener("abort",l,{once:!0}),t.promise.then(d=>a(()=>o(d)),d=>a(()=>i(d instanceof Error?d:new Error(String(d??"Block request failed")))))})}evictOverflow(){for(;this.blocks.size>this.maxBlocks;){let e=-1,t=Number.POSITIVE_INFINITY;for(let[o,i]of this.blocks)i.touchedAt<t&&(e=o,t=i.touchedAt);if(e<0)return;let r=this.blocks.get(e);this.blocks.delete(e),this.evictionCount++,r&&this.onEvict?.(e,r)}}};function pe(n,e){if(n==null||typeof n!="object")return;let t=n[e];return Array.isArray(t)?t:void 0}var Be=class{constructor(e){this.core=e;this.all=[];this.roots=[];this.childIds=new Map;this.displayed=[];this.nodesById=new Map;this.filterModel={};this.advancedFilterModel=null;this.quickFilter=null;this.expandedIds=new Set;this.groupExpandedIds=new Set;this.knownGroupIds=[];this.spanInfo=new Map;this.mastersBuf=[];this.infiniteLastRow=null;this.infiniteRequested=!1;this.infiniteLoading=!1;this.infiniteSeq=0;this.infiniteAbort=null;this.infiniteRetryTimer=null;this.infinitePendingResolve=null;this.treeDepth=new WeakMap;this.rowSequence=new WeakMap;this.treeLoadControllers=new Map;this.treeLoadPromises=new Map;this.displayRevision=0;this.blockNodes=new Map;this.blockPlaceholders=new Map;this.installedBlocks=new Set;this.blockCache=new He(12,e=>this.evictBlock(e));this.dataProcessorSeq=0;this.dataProcessorAbort=null;this.skipDataProcessorOnce=!1;this.pipelineRows=[];this.page=1;this.pageSize=20;this.advancedFilterModel=G(e.options.advancedFilterModel)}resolveRowId(e,t,r){let o=this.core.options.getRowId;if(!o)return r;try{let i=o({data:e,index:t,api:this.core.getApi()});if(typeof i=="string"&&i.length>0)return i;this.core.reportError(new Error("getRowId must return a non-empty string"),"getRowId",{index:t})}catch(i){this.core.reportError(i,"getRowId",{index:t})}return r}get isTree(){return this.core.options.treeData}get isInfinite(){return this.core.options.datasource!=null}get isBlockDatasource(){return this.isInfinite&&this.core.options.datasourceMode==="block"}getDisplayTotalCount(){if(this.isInfinite){if(this.isBlockDatasource)return this.resolveBlockRowCount();let e=Math.max(0,this.displayed.length-this.all.length);return(this.infiniteLastRow??this.all.length)+e}return this.displayed.length}getDisplayRevision(){return this.displayRevision}isLoadingInfinite(){return this.infiniteLoading}startInfinite(e){return!this.isInfinite||e?.aborted?Promise.resolve():(this.cancelInfiniteRequest(),this.infiniteLastRow=null,this.infiniteRequested=!1,this.all=[],this.roots=[],this.nodesById.clear(),this.expandedIds.clear(),this.core.undoService.clear(),this.refreshPipeline(),this.core.requestUpdate({data:!0}),this.isBlockDatasource?(this.blockCache.configure(this.core.options.maxBlocksInCache),this.loadRandomBlock(0,e)):this.loadBlock(0,void 0,e))}reloadInfinite(e){return this.isInfinite?this.startInfinite(e):Promise.resolve()}setInfiniteLoading(e){this.infiniteLoading=e,this.core.skeleton.setInfiniteLoading(e,this.core.getLocaleText("loading"))}loadBlock(e,t,r){if(!this.isInfinite||this.infiniteRequested||this.infiniteLastRow!=null&&e>=this.infiniteLastRow)return Promise.resolve();let o=this.core.options.datasource,i=this.core.options.blockSize,s=t??e+i;if(s<=e)return Promise.resolve();let a=++this.infiniteSeq,l=new AbortController,d=()=>l.abort(r?.reason);return r?.addEventListener("abort",d,{once:!0}),this.infiniteAbort=l,this.infiniteRequested=!0,this.setInfiniteLoading(!0),new Promise(c=>{let u=!1,h=0;this.infinitePendingResolve=c;let p=f=>{u||(u=!0,r?.removeEventListener("abort",d),a===this.infiniteSeq&&(this.infiniteRequested=!1,this.infiniteAbort=null,this.infinitePendingResolve=null,this.setInfiniteLoading(!1),f!=null&&f?.name!=="AbortError"&&this.core.reportError(f,"datasource.getRows",{startRow:e,endRow:s})),c())},m=()=>{if(u||a!==this.infiniteSeq||l.signal.aborted||this.core.isDestroyed()){p();return}h++;let f=!1,y=v=>{if(!(f||u)){if(f=!0,a!==this.infiniteSeq||l.signal.aborted||this.core.isDestroyed()){p();return}if(h<=this.core.options.datasourceRetryCount){let w=Math.min(this.core.options.datasourceRetryDelay*2**Math.max(0,h-1),3e4);this.infiniteRetryTimer=setTimeout(()=>{this.infiniteRetryTimer=null,m()},w);return}p(v??new Error("Datasource request failed"))}};try{let v=o.getRows({startRow:e,endRow:s,sortModel:this.core.columnModel.getSortModel(),filterModel:this.getFilterModel(),advancedFilterModel:this.getAdvancedFilterModel(),quickFilterText:this.quickFilter,signal:l.signal,onSuccess:(w,b)=>{if(f||u)return;if(f=!0,a!==this.infiniteSeq||this.core.isDestroyed()||l.signal.aborted){p();return}let S=w??[];typeof b=="number"&&b>=0?this.infiniteLastRow=b:S.length<s-e&&(this.infiniteLastRow=e+S.length);let R=this.all.length===0;this.appendInfiniteRows(S),p(),this.refreshPipeline(),this.core.requestUpdate({data:!0}),R&&this.core.relayout(),this.core.headerRenderer.refreshSelectAllCheckbox()},fail:y});v&&typeof v.catch=="function"&&v.catch(y)}catch(v){y(v)}};m()})}cancelInfiniteRequest(){this.infiniteSeq++,this.infiniteRetryTimer!=null&&clearTimeout(this.infiniteRetryTimer),this.infiniteRetryTimer=null,this.infiniteAbort?.abort(),this.infiniteAbort=null,this.infiniteRequested=!1,this.setInfiniteLoading(!1),this.infinitePendingResolve?.(),this.infinitePendingResolve=null,this.blockCache.purge(),this.blockNodes.clear(),this.blockPlaceholders.clear(),this.installedBlocks.clear()}appendInfiniteRows(e){for(let t of e){if(t==null)continue;let r=this.all.length,o=this.resolveRowId(t,r,`inf-${this.core.nextId()}`);if(this.nodesById.has(o)){this.core.reportError(new Error(`Duplicate row id: ${o}`),"datasource.getRows",{rowId:o});continue}let i={id:o,data:t,rowIndex:-1,selected:this.core.selectionService.isSelected(o)};this.all.push(i),this.nodesById.set(o,i),this.roots.push(i)}}loadRandomBlock(e,t){if(!this.isBlockDatasource||e<0)return Promise.resolve();if(t?.aborted)return Promise.reject(this.abortError(t.reason));let r=this.core.options.blockSize,o=e*r;if(o>=this.resolveBlockRowCount())return Promise.resolve();let i=this.infiniteLastRow==null?o+r:Math.min(this.infiniteLastRow,o+r),s=this.blockCache.load(e,a=>this.requestDatasourceRange(o,i,a),t);return this.setInfiniteLoading(this.all.length===0&&this.blockCache.snapshot().loadingBlockCount>0),s.then(a=>{t?.aborted||this.core.isDestroyed()||!this.isBlockDatasource||this.installedBlocks.has(e)||(this.installBlock(e,a),this.refreshPipeline(),this.core.requestUpdate({data:!0}),this.core.headerRenderer.refreshSelectAllCheckbox())}).catch(a=>{throw a?.name!=="AbortError"&&this.core.reportError(a,"datasource.getRows",{startRow:o,endRow:i}),a}).finally(()=>{this.setInfiniteLoading(this.all.length===0&&this.blockCache.snapshot().loadingBlockCount>0)})}requestDatasourceRange(e,t,r){let o=this.core.options.datasource;return new Promise((i,s)=>{let a=0,l=null,d=!1,c=p=>{d||(d=!0,l!=null&&clearTimeout(l),r.removeEventListener("abort",u),s(p instanceof Error?p:new Error(typeof p=="string"?p:"Datasource request failed")))},u=()=>c(this.abortError(r.reason));r.addEventListener("abort",u,{once:!0});let h=()=>{if(d)return;if(r.aborted||this.core.isDestroyed()){u();return}a++;let p=!1,m=f=>{if(!(p||d)){if(p=!0,r.aborted||this.core.isDestroyed()){u();return}if(a<=this.core.options.datasourceRetryCount){let y=Math.min(this.core.options.datasourceRetryDelay*2**Math.max(0,a-1),3e4);l=setTimeout(()=>{l=null,h()},y)}else c(f)}};try{let f=o.getRows({startRow:e,endRow:t,sortModel:this.core.columnModel.getSortModel(),filterModel:this.getFilterModel(),advancedFilterModel:this.getAdvancedFilterModel(),quickFilterText:this.quickFilter,signal:r,onSuccess:(y,v)=>{p||d||(p=!0,d=!0,r.removeEventListener("abort",u),i({rows:y??[],...typeof v=="number"&&v>=0?{lastRow:v}:{}}))},fail:m});f&&typeof f.catch=="function"&&f.catch(m)}catch(f){m(f)}};h()})}installBlock(e,t){let r=this.core.options.blockSize,o=e*r;this.evictBlock(e),typeof t.lastRow=="number"&&t.lastRow>=0?this.infiniteLastRow=t.lastRow:t.rows.length<r&&(this.infiniteLastRow=o+t.rows.length),t.rows.forEach((i,s)=>{if(i==null)return;let a=o+s;if(this.infiniteLastRow!=null&&a>=this.infiniteLastRow)return;let l=this.resolveRowId(i,a,`block-${a}`),d=this.nodesById.get(l);if(d&&d.rowIndex!==a){this.core.reportError(new Error(`Duplicate row id: ${l}`),"datasource.getRows",{rowId:l});return}let c={id:l,data:i,rowIndex:a,selected:this.core.selectionService.isSelected(l)};this.blockNodes.set(a,c),this.blockPlaceholders.delete(a),this.nodesById.set(l,c),this.rowSequence.set(c,a+1)}),this.rebuildLoadedBlockRows(),this.installedBlocks.add(e)}evictBlock(e){this.installedBlocks.delete(e);let t=this.core.options.blockSize,r=e*t;for(let o=r;o<r+t;o++){let i=this.blockNodes.get(o);i&&(this.blockNodes.delete(o),this.nodesById.get(i.id)===i&&this.nodesById.delete(i.id))}this.rebuildLoadedBlockRows()}rebuildLoadedBlockRows(){this.all=[...this.blockNodes.entries()].sort(([e],[t])=>e-t).map(([,e])=>e),this.roots=this.all}resolveBlockRowCount(){if(this.infiniteLastRow!=null)return this.infiniteLastRow;if(this.core.options.datasourceRowCount!=null)return this.core.options.datasourceRowCount;if(this.blockNodes.size===0)return this.core.options.blockSize;let e=0;for(let t of this.blockNodes.keys())e=Math.max(e,t+1);return e+this.core.options.blockSize}blockPlaceholder(e){let t=this.blockPlaceholders.get(e);if(!t&&(t={id:`__mach_loading_${e}`,data:null,rowIndex:e,selected:!1,loading:!0},this.blockPlaceholders.set(e,t),this.blockPlaceholders.size>2e3)){let r=this.blockPlaceholders.keys().next().value;r!=null&&this.blockPlaceholders.delete(r)}return t}abortError(e){if(e instanceof Error)return e;let t=new Error(typeof e=="string"?e:"Operation aborted");return t.name="AbortError",t}checkInfiniteScroll(e){if(this.isBlockDatasource){if(e<0)return;let s=this.core.options.blockSize,a=Math.floor(e/s),l=this.core.options.blockPrefetch;for(let d=0;d<=l;d++){let c=d===0?[a]:[a+d,a-d];for(let u of c)u<0||u*s>=this.resolveBlockRowCount()||this.loadRandomBlock(u).catch(()=>{})}return}if(!this.isInfinite||this.infiniteRequested)return;let t=this.all.length;if(this.infiniteLastRow!=null&&t>=this.infiniteLastRow)return;let r=this.core.options.infiniteBufferRows;if(e+r<t&&e<t)return;let o=this.core.options.blockSize,i=this.infiniteLastRow==null?t+o:Math.min(this.infiniteLastRow,t+o);this.loadBlock(t,i)}onServerParamsChanged(){return this.reloadInfinite().catch(()=>{})}onDatasourceChanged(){return this.cancelInfiniteRequest(),this.isInfinite?this.startInfinite().catch(()=>{}):(this.infiniteLastRow=null,this.setRowData(this.core.options.rowData),this.core.requestUpdate({data:!0}),Promise.resolve())}destroy(){this.cancelInfiniteRequest(),this.cancelTreeLoads(),this.cancelDataProcessor(),this.core.options.dataProcessor?.destroy?.()}ensureRowsLoaded(e,t,r){if(!this.isBlockDatasource)return Promise.resolve();let o=this.core.options.blockSize,i=Math.max(0,Math.trunc(e)),s=Math.min(this.resolveBlockRowCount(),Math.max(i,Math.trunc(t))),a=Math.floor(i/o),l=Math.max(a,Math.floor(Math.max(i,s-1)/o)),d=[];for(let c=a;c<=l;c++)d.push(this.loadRandomBlock(c,r));return Promise.all(d).then(()=>{})}purgeDatasourceCache(){this.isBlockDatasource&&(this.blockCache.purge(),this.blockNodes.clear(),this.blockPlaceholders.clear(),this.installedBlocks.clear(),this.all=[],this.roots=[],this.nodesById.clear(),this.refreshPipeline(),this.core.requestUpdate({data:!0}))}getDatasourceCacheSnapshot(){return this.blockCache.snapshot()}setRowData(e){this.cancelTreeLoads(),this.core.changeTracker.clear();let t=this.core.options.getRowId,r=this.core.options.childrenKey,o=[],i=[],s=new Map,a=new Map,l=0,d=(c,u,h)=>{let p=l++,m=this.resolveRowId(c,p,`auto-${p}`);if(s.has(m))return this.core.reportError(new Error(`Duplicate row id: ${m}`),"rowData",{rowId:m,index:p}),null;let f=this.isTree?pe(c,r):void 0,y={id:m,data:c,rowIndex:-1,selected:!1,treeChildrenLoaded:Array.isArray(f)};if(this.treeDepth.set(y,u),o.push(y),s.set(m,y),h!=null){let v=a.get(h)??[];v.push(m),a.set(h,v)}else i.push(y);if(this.isTree&&Array.isArray(f))for(let v of f)v!=null&&d(v,u+1,m);return y};(e??[]).forEach(c=>{c!=null&&d(c,0,null)}),this.all=o,this.roots=i,this.childIds=a,this.nodesById=s,this.core.undoService.clear();for(let c of[...this.expandedIds])s.has(c)||this.expandedIds.delete(c);if(this.core.options.defaultExpandAll)for(let c of o)this.getChildrenCount(c.id)>0&&this.expandedIds.add(c.id);this.core.selectionService.onRowsRebuilt(t!=null),this.refreshPipeline()}getChildrenIds(e){return this.childIds.get(e)??[]}getChildrenCount(e){return this.childIds.get(e)?.length??0}hasChildren(e){return this.getChildrenCount(e)>0}isTreeRowLoading(e){return this.nodesById.get(e)?.treeLoading===!0}cancelTreeLoads(){for(let e of this.treeLoadControllers.values())e.abort();this.treeLoadControllers.clear(),this.treeLoadPromises.clear()}loadTreeChildren(e,t=!1){let r=this.nodesById.get(e),o=this.core.options.loadTreeChildren;if(!this.isTree||!r?.data||!o)return Promise.resolve([]);if(!t&&r.treeChildrenLoaded)return Promise.resolve(this.getChildrenIds(e).flatMap(l=>{let d=this.nodesById.get(l)?.data;return d==null?[]:[d]}));let i=this.treeLoadPromises.get(e);if(i&&!t)return i;this.treeLoadControllers.get(e)?.abort();let s=new AbortController;this.treeLoadControllers.set(e,s),r.treeLoading=!0,r.treeLoadError=void 0,this.core.requestUpdate({data:!0});let a=Promise.resolve().then(()=>o({data:r.data,node:r,api:this.core.getApi(),signal:s.signal})).then(l=>{if(s.signal.aborted||this.core.isDestroyed())return[];if(!Array.isArray(l))throw new TypeError("[MachTable] loadTreeChildren must resolve to an array.");return this.replaceTreeChildren(r,l),r.treeChildrenLoaded=!0,r.treeLoadError=void 0,this.core.emit("treeChildrenLoaded",{rowId:e,rowNode:r,children:l}),l}).catch(l=>{if(s.signal.aborted||l?.name==="AbortError")return[];throw r.treeLoadError=l,r.treeChildrenLoaded=!1,this.core.reportError(l,"treeData.loadChildren",{rowId:e}),this.core.emit("treeChildrenLoadFailed",{rowId:e,rowNode:r,error:l}),l}).finally(()=>{this.treeLoadControllers.get(e)===s&&(this.treeLoadControllers.delete(e),this.treeLoadPromises.delete(e),r.treeLoading=!1,this.core.requestUpdate({data:!0}))});return this.treeLoadPromises.set(e,a),a}replaceTreeChildren(e,t){let r=new Set,o=[...this.getChildrenIds(e.id)];for(;o.length>0;){let s=o.pop();r.has(s)||(r.add(s),o.push(...this.getChildrenIds(s)))}this.validateTreeChildren(t,r);for(let s of r)this.treeLoadControllers.get(s)?.abort(),this.treeLoadControllers.delete(s),this.treeLoadPromises.delete(s),this.childIds.delete(s),this.nodesById.delete(s),this.expandedIds.delete(s);this.childIds.delete(e.id);let i=this.getTreeDepth(e)+1;for(let s of t)s!=null&&this.buildChildNodes(e,s,i);this.reindexAll(),this.core.selectionService.onRowsRebuilt(this.core.options.getRowId!=null),this.refreshPipeline(),this.core.requestUpdate({data:!0})}validateTreeChildren(e,t){let r=this.core.options.getRowId,o=r?new Set([...this.nodesById.keys()].filter(l=>!t.has(l))):null,i=new WeakSet,s=[...e],a=0;for(;s.length>0;){let l=s.pop();if(l==null)continue;if(typeof l=="object"){if(i.has(l))throw new TypeError("[MachTable] Lazy tree children contain a cyclic object graph.");i.add(l)}if(r&&o){let c=r({data:l,index:a++,api:this.core.getApi()});if(typeof c!="string"||c.length===0)throw new TypeError("[MachTable] getRowId must return a non-empty string for lazy tree children.");if(o.has(c))throw new Error(`Duplicate row id: ${c}`);o.add(c)}let d=pe(l,this.core.options.childrenKey);d&&s.push(...d)}}applyTransaction(e,t=!0){let r=this.core.options.getRowId,o=[],i=[];if(e.remove?.length){let s=new Set,a=new Set,l=c=>{if(r){let h=[this.resolveRowId(c,-1,`__missing_remove_${this.core.nextId()}`)];for(;h.length>0;){let p=h.pop();if(!s.has(p)){s.add(p);for(let m of this.childIds.get(p)??[])h.push(m)}}}else{let u=[c];for(;u.length>0;){let h=u.pop();a.add(h);let p=this.isTree?pe(h,this.core.options.childrenKey):void 0;if(p)for(let m of p)u.push(m)}}};e.remove.forEach(l),this.all=this.all.filter(c=>{let u=s.has(c.id)||c.data!=null&&a.has(c.data);return u&&(i.push(c.id),this.nodesById.delete(c.id),this.childIds.delete(c.id)),!u});let d=new Set(this.all);this.roots=this.roots.filter(c=>d.has(c))}if(e.update?.length)for(let s of e.update){let a;r?a=this.nodesById.get(this.resolveRowId(s,-1,`__missing_update_${this.core.nextId()}`)):a=this.all.find(l=>l.data===s),a&&(a.data=s,i.push(a.id),this.core.bodyRenderer.invalidateRowHeight(a),o.push(a))}if(e.add?.length){let s=e.addIndex!=null?Math.max(0,Math.min(e.addIndex,this.roots.length)):this.roots.length,a=[];e.add.forEach((l,d)=>{let c=this.resolveRowId(l,s+d,`add-${this.core.nextId()}`);if(this.nodesById.has(c)){this.core.reportError(new Error(`Duplicate row id: ${c}`),"transaction.add",{rowId:c});return}let u={id:c,data:l,rowIndex:-1,selected:!1};this.nodesById.set(c,u),this.treeDepth.set(u,0);let h=this.isTree?pe(l,this.core.options.childrenKey):void 0;if(h)for(let p of h)p!=null&&this.buildChildNodes(u,p,1);a.push(u)}),this.roots.splice(s,0,...a),this.reindexAll()}if(t){this.refreshPipeline();for(let s of o)s.rowIndex>=0&&this.core.bodyRenderer.refreshRows([s.rowIndex])}this.core.changeTracker.clearRows(i)}applyTransactions(e){if(e.length!==0){for(let t of e)this.applyTransaction(t,!1);this.refreshPipeline()}}buildChildNodes(e,t,r){let o=this.resolveRowId(t,-1,`add-${this.core.nextId()}`);if(this.nodesById.has(o)){this.core.reportError(new Error(`Duplicate row id: ${o}`),"transaction.add",{rowId:o});return}let i=pe(t,this.core.options.childrenKey),s={id:o,data:t,rowIndex:-1,selected:!1,treeChildrenLoaded:Array.isArray(i)};this.nodesById.set(o,s),this.treeDepth.set(s,r);let a=this.childIds.get(e.id)??[];if(a.push(s.id),this.childIds.set(e.id,a),!!i)for(let l of i)l!=null&&this.buildChildNodes(s,l,r+1)}reindexAll(){this.all=[];let e=t=>{this.all.push(t),this.nodesById.has(t.id)||this.nodesById.set(t.id,t);for(let r of this.childIds.get(t.id)??[]){let o=this.nodesById.get(r);o&&e(o)}};for(let t of this.roots)e(t)}setFilterModel(e){let t=JSON.stringify(this.filterModel),r=new Set(this.core.columnModel.getColumns().map(o=>o.id));return this.filterModel=re(e,r),JSON.stringify(this.filterModel)!==t}getFilterModel(){return{...this.filterModel}}setAdvancedFilterModel(e){let t=new Set(this.core.columnModel.getColumns().map(i=>i.id)),r=G(e,t),o=JSON.stringify(this.advancedFilterModel);return this.advancedFilterModel=r,this.core.options.advancedFilterModel=r,JSON.stringify(r)!==o}getAdvancedFilterModel(){return G(this.advancedFilterModel)}setQuickFilter(e){let t=e!=null&&e.trim()!==""?e:null;return t===this.quickFilter?!1:(this.quickFilter=t,!0)}getQuickFilter(){return this.quickFilter}isFilterPresent(){return Object.keys(this.filterModel).length>0||this.advancedFilterModel!=null||this.quickFilter!=null}refreshPipeline(){let e=this.core.performanceMonitor.start(),t=this.core.columnModel.getOrderedVisible(),r=(s,a)=>this.core.getCellValue(s,a);if(this.isInfinite){this.refreshInfinitePipeline(e);return}if(this.startDataProcessorIfNeeded(e))return;let o;if(this.isTree)o=this.buildTreeDisplay(t,r);else{o=this.all,this.isFilterPresent()&&!this.core.options.manualFiltering&&(o=o.filter(d=>Ut(d,t,this.filterModel,this.advancedFilterModel,this.quickFilter,r)));let a=this.core.columnModel.getSortModel();if(a.length>0&&!this.core.options.manualSorting)try{o=he(o,a,t,r)}catch(d){this.core.reportError(d,"comparator",{sortModel:a})}let l=this.core.columnModel.getRowGroupColumns();if(l.length>0)o=this.buildGrouped(o,l);else if(this.core.options.masterDetail){let d=[];for(let c of o)d.push(c),this.expandedIds.has(c.id)&&this.isRowExpandable(c)&&d.push({id:`__detail__${c.id}`,data:c.data,rowIndex:-1,selected:!1,isDetail:!0,masterId:c.id});o=d}}for(let s of this.all)s.rowIndex=-1;let i=0;o.forEach((s,a)=>{s.rowIndex=a,!s.isDetail&&!s.isGroup&&(i++,this.rowSequence.set(s,i))}),this.pipelineRows=o,this.applyPagination(),this.computeSpans(r),this.core.emit("modelUpdated",{rowCount:o.length}),this.core.performanceMonitor.recordModel(e)}refreshInfinitePipeline(e){this.all.forEach((t,r)=>{this.isBlockDatasource||(t.rowIndex=r),this.rowSequence.set(t,this.isBlockDatasource?t.rowIndex+1:r+1)}),this.displayed=this.all,this.pipelineRows=this.all,this.spanInfo.clear(),this.displayRevision++,this.core.emit("modelUpdated",{rowCount:this.all.length}),this.core.performanceMonitor.recordModel(e)}startDataProcessorIfNeeded(e){let t=this.skipDataProcessorOnce;return this.skipDataProcessorOnce=!1,!t&&this.shouldUseDataProcessor()?(this.refreshWithDataProcessor(e),!0):(this.cancelDataProcessor(),!1)}shouldUseDataProcessor(){if(!this.core.options.dataProcessor||this.all.length<this.core.options.dataProcessorMinRows||this.isTree||this.core.options.masterDetail||this.core.columnModel.getRowGroupColumns().length>0)return!1;let e=!this.core.options.manualFiltering&&this.isFilterPresent(),t=!this.core.options.manualSorting&&this.core.columnModel.getSortModel().length>0;return e||t}refreshWithDataProcessor(e){this.cancelDataProcessor();let t=this.core.options.dataProcessor;if(!t)return;let r=++this.dataProcessorSeq,o=new AbortController;this.dataProcessorAbort=o;let i=this.core.columnModel.getOrderedVisible(),s=this.all.flatMap(d=>d.data==null?[]:[{id:d.id,data:d.data}]),a=!this.core.options.manualFiltering,l=!this.core.options.manualSorting;Promise.resolve().then(()=>t.process({rows:s,columns:i.map(d=>({colId:d.id,...d.colDef.field?{field:d.colDef.field}:{}})),sortModel:l?this.core.columnModel.getSortModel():[],filterModel:a?this.getFilterModel():{},advancedFilterModel:a?this.getAdvancedFilterModel():null,quickFilterText:a?this.quickFilter:null,signal:o.signal})).then(d=>{if(r!==this.dataProcessorSeq||o.signal.aborted||this.core.isDestroyed())return;let c=new Set,u=[];for(let p of d.rowIds){if(c.has(p))continue;c.add(p);let m=this.nodesById.get(p);m&&!m.isDetail&&!m.isGroup&&u.push(m)}for(let p of this.all)p.rowIndex=-1;u.forEach((p,m)=>{p.rowIndex=m,this.rowSequence.set(p,m+1)}),this.pipelineRows=u,this.applyPagination();let h=(p,m)=>this.core.getCellValue(p,m);this.computeSpans(h),this.core.emit("modelUpdated",{rowCount:u.length}),this.core.performanceMonitor.recordModel(e),this.core.requestUpdate({data:!0})}).catch(d=>{r!==this.dataProcessorSeq||o.signal.aborted||this.core.isDestroyed()||(this.core.reportError(d,"dataProcessor.process"),this.skipDataProcessorOnce=!0,this.refreshPipeline(),this.core.requestUpdate({data:!0}))}).finally(()=>{r===this.dataProcessorSeq&&(this.dataProcessorAbort=null)})}cancelDataProcessor(){this.dataProcessorSeq++,this.dataProcessorAbort?.abort(),this.dataProcessorAbort=null}get paginationActive(){return this.core.options.paginationEnabled&&!this.isInfinite}applyPagination(){if(!this.paginationActive){this.displayed=this.pipelineRows,this.displayRevision++;return}let e=this.effectivePageSize(),t=this.getPageCount();if(this.page>t&&(this.page=t),this.page<1&&(this.page=1),this.core.options.paginationPage=this.page,this.core.options.paginationMode==="server"){this.pipelineRows.forEach((i,s)=>{i.rowIndex=s}),this.displayed=this.pipelineRows,this.displayRevision++;return}let r=(this.page-1)*e,o=this.pipelineRows.slice(r,r+e);o.forEach((i,s)=>{i.rowIndex=s}),this.displayed=o,this.displayRevision++}effectivePageSize(){return this.pageSize=this.core.options.paginationPageSize,Math.max(1,this.pageSize)}getCurrentPage(){return this.paginationActive?this.page:1}getTotalRowCount(){return this.isInfinite?this.getDisplayTotalCount():this.paginationActive&&this.core.options.paginationMode==="server"?this.core.options.paginationTotal:this.pipelineRows.length}getPageCount(){return this.paginationActive?Math.max(1,Math.ceil(this.getTotalRowCount()/this.effectivePageSize())):1}getPipelineRows(){return this.pipelineRows}setPage(e,t=!1){if(!this.paginationActive)return;let r=this.getPageCount(),o=Math.max(1,Math.min(Math.round(e)||1,r));o!==this.page&&(this.page=o,this.core.options.paginationPage=o,this.applyPagination(),this.core.requestUpdate({data:!0}),this.core.bodyRenderer.scrollToIndex(0,"top"),t||this.emitPaginationChanged())}setPageSize(e){if(!this.paginationActive)return;let t=Math.max(1,Math.round(e)||this.effectivePageSize()),r=(this.page-1)*this.effectivePageSize();this.core.options.paginationPageSize=t,this.pageSize=t,this.page=Math.floor(r/t)+1,this.core.options.paginationPage=this.page,this.applyPagination(),this.core.requestUpdate({data:!0}),this.emitPaginationChanged()}restorePagination(e,t){this.pageSize=Math.max(1,Math.round(t)||1),this.core.options.paginationPageSize=this.pageSize,this.page=Math.max(1,Math.round(e)||1),this.core.options.paginationPage=this.page}setPaginationEnabled(e){this.core.options.paginationEnabled!==e&&(this.core.options.paginationEnabled=e&&!this.isInfinite,this.core.options.paginationEnabled&&(this.page=1),this.applyPagination(),this.core.requestUpdate({data:!0}),this.emitPaginationChanged())}onPaginationOptionsChanged(){this.paginationActive&&(this.page=this.core.options.paginationMode==="server"?this.core.options.paginationPage:1,this.applyPagination(),this.core.requestUpdate({data:!0}),this.emitPaginationChanged())}emitPaginationChanged(){this.core.emit("paginationChanged",{page:this.getCurrentPage(),pageSize:this.effectivePageSize(),pageCount:this.getPageCount(),total:this.getTotalRowCount()})}buildTreeDisplay(e,t){let r=this.core.options.manualSorting?[]:this.core.columnModel.getSortModel(),o=new Map,i=this.isFilterPresent()&&!this.core.options.manualFiltering,s=d=>{let c=o.get(d.id);if(c!==void 0)return c;let u=!0;if(i){u=Ut(d,e,this.filterModel,this.advancedFilterModel,this.quickFilter,t);for(let h of this.childIds.get(d.id)??[]){let p=this.nodesById.get(h);p&&s(p)&&(u=!0)}}return o.set(d.id,u),u},a=[],l=d=>{let c=d;r.length>0&&(c=he(d,r,e,t));for(let u of c)if(s(u)&&(a.push(u),this.expandedIds.has(u.id))){let h=(this.childIds.get(u.id)??[]).map(p=>this.nodesById.get(p)).filter(p=>p!=null);l(h)}};return l(this.roots),a}computeSpans(e){if(this.spanInfo.clear(),this.isTree||this.core.options.masterDetail||this.core.columnModel.getRowGroupColumns().length>0)return;let t=this.core.columnModel.getOrderedVisible().filter(s=>s.colDef.rowSpan!=null||s.colDef.autoRowSpan===!0);if(t.length===0)return;let r=this.mastersBuf,o=0;for(let s of this.displayed)!s.isDetail&&!s.isGroup&&(r[o++]=s);r.length=o;let i=o;if(i!==0)for(let s of t){let a=new Int32Array(i),l=0;for(;l<i;){let d=r[l],c=e(d,s),u=1;if(s.colDef.rowSpan)try{let h=s.colDef.rowSpan({api:this.core.getApi(),colDef:s.colDef,column:s,node:d,data:d.data,value:c,rowIndex:d.rowIndex});u=Math.max(1,Math.min(Math.round(h)||1,i-l))}catch(h){this.core.reportError(h,"rowSpan",{colId:s.id,rowId:d.id})}else if(s.colDef.autoRowSpan)for(;l+u<i&&c!=null&&c!==""&&ie(c,e(r[l+u],s))===0;)u++;a[l]=u;for(let h=1;h<u;h++)a[l+h]=-1;l+=u}this.spanInfo.set(s.id,a)}}getSpanInfo(e){return this.spanInfo.get(e)}getRowSeq(e){return this.rowSequence.get(e)??0}getTreeDepth(e){return this.treeDepth.get(e)??0}buildGrouped(e,t){let r=Oe(this.core.options.aggFuncs),o=this.core.columnModel.getAggColumns();this.knownGroupIds=[];let i=a=>{let l={};for(let d of o){let c=r(d.colDef.aggFunc);if(c)try{l[d.id]=c(a.map(u=>this.core.getCellValue(u,d)))}catch(u){this.core.reportError(u,"aggFunc",{colId:d.id,aggFunc:d.colDef.aggFunc}),l[d.id]=null}}return l},s=(a,l,d)=>{if(l>=t.length)return{display:a,leaves:a};let c=t[l],u=new Map,h=[];for(let f of a){let y=this.core.getCellValue(f,c),v=y==null?"(\u7A7A)":String(y),w=u.get(v);w||(w=[],u.set(v,w),h.push(v)),w.push(f)}h.sort((f,y)=>f.localeCompare(y,void 0,{numeric:!0,sensitivity:"base"}));let p=[],m=[];for(let f of h){let y=u.get(f),v=`${d}/g${l}:${f}`;this.knownGroupIds.push(v);let w=s(y,l+1,v),b={id:v,data:null,rowIndex:-1,selected:!1,isGroup:!0,groupLevel:l,groupKey:f,leafNodes:w.leaves,aggValues:i(w.leaves)};p.push(b),this.groupExpandedIds.has(v)&&p.push(...w.display),m.push(...w.leaves)}return{display:p,leaves:m}};return s(e,0,"").display}isRowExpandable(e){if(this.isTree){if(this.hasChildren(e.id)||e.treeLoading)return!0;if(e.treeChildrenLoaded||!e.data||!this.core.options.loadTreeChildren)return!1;let r=this.core.options.isTreeRowExpandable;if(!r)return!1;try{return r({data:e.data,node:e,api:this.core.getApi()})}catch(o){return this.core.reportError(o,"isTreeRowExpandable",{rowId:e.id}),!1}}if(!this.core.options.masterDetail)return!1;let t=this.core.options.isRowExpandable;if(t)try{return t({data:e.data,node:e,api:this.core.getApi()})}catch(r){return this.core.reportError(r,"isRowExpandable",{rowId:e.id}),!1}return!0}isRowExpanded(e){return this.expandedIds.has(e)}getExpandedRowIds(){return[...this.expandedIds]}getExpandedGroupIds(){return[...this.groupExpandedIds]}restoreExpansion(e,t){this.expandedIds=new Set(e.filter(r=>this.nodesById.has(r))),this.groupExpandedIds=new Set(t)}expandRow(e){return this.setDetailExpanded(e,!0)}collapseRow(e){return this.setDetailExpanded(e,!1)}toggleDetail(e){return this.setDetailExpanded(e,!this.expandedIds.has(e))}setDetailExpanded(e,t){let r=this.nodesById.get(e);return!r||t&&!this.isRowExpandable(r)?!1:(t===this.expandedIds.has(e)||(t?this.expandedIds.add(e):this.expandedIds.delete(e),this.refreshPipeline(),this.core.requestUpdate({data:!0}),this.core.emit("detailToggled",{rowId:e,rowNode:r,expanded:t}),t&&this.isTree&&!this.hasChildren(e)&&!r.treeLoading&&this.loadTreeChildren(e).catch(()=>{})),t)}expandAllDetails(){let e=!1;for(let t of this.all)!this.expandedIds.has(t.id)&&this.isRowExpandable(t)&&(this.expandedIds.add(t.id),e=!0);e&&(this.refreshPipeline(),this.core.requestUpdate({data:!0}))}collapseAllDetails(){this.expandedIds.size!==0&&(this.expandedIds.clear(),this.refreshPipeline(),this.core.requestUpdate({data:!0}))}toggleGroup(e){return this.setGroupExpanded(e,!this.groupExpandedIds.has(e))}isGroupExpanded(e){return this.groupExpandedIds.has(e)}getGroupNode(e){return this.displayed.find(t=>t.isGroup&&t.id===e)}expandAllGroups(){if(this.knownGroupIds.length===0)return;let e=!1;for(let t of this.knownGroupIds)this.groupExpandedIds.has(t)||(this.groupExpandedIds.add(t),e=!0);e&&(this.refreshPipeline(),this.core.requestUpdate({data:!0}))}collapseAllGroups(){this.groupExpandedIds.size!==0&&(this.groupExpandedIds.clear(),this.refreshPipeline(),this.core.requestUpdate({data:!0}))}setGroupExpanded(e,t){return!this.knownGroupIds.includes(e)||t===this.groupExpandedIds.has(e)||(t?this.groupExpandedIds.add(e):this.groupExpandedIds.delete(e),this.refreshPipeline(),this.core.requestUpdate({data:!0})),t}reorderRowsByDisplayed(e,t){if(this.isTree)return!1;let r=this.getDisplayedRow(e),o=this.getDisplayedRow(t);if(!r||!o||r.isDetail||o.isDetail||r.isGroup||o.isGroup)return!1;let i=this.all.indexOf(r),s=this.all.indexOf(o);if(i<0||s<0)return!1;if(s>i){let l=s;for(;l+1<this.all.length&&this.all[l+1].isDetail;)l++;s=l}if(i===s)return!1;this.all.splice(i,1);let a=this.all.indexOf(o);return this.all.splice(s>i?a+1:a,0,r),this.refreshPipeline(),this.core.requestUpdate({data:!0}),!0}getAllNodes(){return this.all}getRootNodes(){return this.roots}getDisplayedRows(){return this.displayed}getDisplayedRowCount(){return this.isBlockDatasource?this.resolveBlockRowCount():this.displayed.length}getDisplayedRow(e){return this.isBlockDatasource?e<0||e>=this.resolveBlockRowCount()?void 0:this.blockNodes.get(e)??this.blockPlaceholder(e):this.displayed[e]}getNodeById(e){return this.nodesById.get(e)}forEachNode(e){this.all.forEach(e)}forEachNodeAfterFilterAndSort(e){let t=0;for(let r of this.pipelineRows)r.isDetail||r.isGroup||e(r,t++)}};var Ve=class{constructor(e){this.core=e;this.selectedIds=new Set;this.anchorId=null;this.indeterminateIds=new Set}isSelected(e){return this.selectedIds.has(e)}isIndeterminate(e){return this.indeterminateIds.has(e)}isSelectable(e){if(e.loading)return!1;let t=this.findSelectableColumn(e),r=t?.colDef.selectable;if(!t||!r)return!0;try{return r({api:this.core.getApi(),colDef:t.colDef,column:t,node:e,data:e.data,value:this.core.getCellValue(e,t),rowIndex:e.rowIndex})}catch(o){return this.core.reportError(o,"selectable",{rowId:e.id,colId:t?.id}),!1}}findSelectableColumn(e){if(!(e.isGroup||e.isDetail))return this.core.columnModel.getOrderedVisible().find(t=>t.hasCheckbox&&t.colDef.selectable!=null)}getSelectedNodes(){return this.core.rowModel.getAllNodes().filter(e=>this.selectedIds.has(e.id))}getSelectedRows(){return this.getSelectedNodes().filter(e=>e.data!=null).map(e=>e.data)}getSelectedIds(){return[...this.selectedIds]}restoreSelection(e){let t=new Set(e),r=this.core.rowModel.getAllNodes().filter(o=>t.has(o.id)&&!o.isDetail&&!o.isGroup).map(o=>({node:o,selected:!0}));this.applySelection(r,!0)}onRowsRebuilt(e){if(!e)this.selectedIds.clear(),this.anchorId=null;else{let t=new Set(this.core.rowModel.getAllNodes().map(r=>r.id));for(let r of[...this.selectedIds])t.has(r)||this.selectedIds.delete(r);this.anchorId!=null&&!t.has(this.anchorId)&&(this.anchorId=null)}for(let t of this.core.rowModel.getAllNodes())t.selected=this.selectedIds.has(t.id);this.recomputeTriState()}getGroupSelectionState(e){let t=e.leafNodes??[];if(t.length===0)return{all:!1,some:!1};let r=0,o=0;for(let i of t)this.isSelectable(i)&&(r++,this.selectedIds.has(i.id)&&o++);return r===0?{all:!1,some:!1}:{all:o===r,some:o>0}}setGroupSelected(e,t){let r=(e.leafNodes??[]).filter(o=>this.isSelectable(o));r.length!==0&&this.applySelection(r.map(o=>({node:o,selected:t})))}setNodeSelected(e,t,r=!1){this.applySelection([{node:e,selected:t,clearOthers:r}])}selectNodeById(e,t=!0,r=!0){let o=this.core.rowModel.getNodeById(e);o&&this.setNodeSelected(o,t,r)}onRowClick(e,t,r){let o=this.core.options.rowSelection;if(o==="none"||!this.isSelectable(e))return;if(r){let s=o==="single";this.applySelection([{node:e,selected:s?!0:!e.selected,clearOthers:s}]),this.anchorId=e.id;return}let i=o==="multiple";if(i&&(t.ctrlKey||t.metaKey)){this.applySelection([{node:e,selected:!e.selected}]),this.anchorId=e.id;return}if(i&&t.shiftKey&&this.anchorId!=null){let s=this.core.rowModel.getNodeById(this.anchorId);if(s&&s.rowIndex>=0&&e.rowIndex>=0){let a=Math.min(s.rowIndex,e.rowIndex),l=Math.max(s.rowIndex,e.rowIndex),d=[];for(let c=a;c<=l;c++){let u=this.core.rowModel.getDisplayedRow(c);u&&!u.isDetail&&!u.isGroup&&this.isSelectable(u)&&d.push({node:u,selected:!0})}this.applySelection(d);return}}this.applySelection([{node:e,selected:!0,clearOthers:!0}]),this.anchorId=e.id}selectAll(e=!0){let t=this.core.options.rowSelection;if(t==="none")return;let o=(e?this.core.rowModel.getDisplayedRows():this.core.rowModel.getAllNodes()).filter(i=>!i.isDetail&&!i.isGroup&&this.isSelectable(i));if(o.length!==0){if(t==="single"){this.applySelection([{node:o[0],selected:!0,clearOthers:!0}]);return}this.applySelection(o.map(i=>({node:i,selected:!0})))}}deselectAll(){this.applySelection([],!0)}isSelectAllActive(){let t=this.core.rowModel.getDisplayedRows().filter(r=>!r.isDetail&&!r.isGroup).filter(r=>this.isSelectable(r));if(t.length===0)return!1;if(this.core.rowModel.isInfinite){let r=this.core.rowModel.getDisplayTotalCount();if(t.length<r)return!1}return t.every(r=>this.selectedIds.has(r.id))}isSelectAllIndeterminate(){let t=this.core.rowModel.getDisplayedRows().filter(o=>!o.isDetail&&!o.isGroup).filter(o=>this.isSelectable(o)),r=t.reduce((o,i)=>o+(this.selectedIds.has(i.id)?1:0),0);if(r===0)return!1;if(this.core.rowModel.isInfinite){let o=this.core.rowModel.getDisplayTotalCount();if(t.length<o)return!0}return r>0&&r<t.length}applySelectionPublic(e,t=!1){this.applySelection(e,t)}applySelection(e,t=!1){let r=new Set(this.selectedIds),o=t||e.some(u=>u.clearOthers),i=this.core.rowModel.isTree&&this.core.options.autoCheckedChildren;if(o){let u=t?new Set:new Set(e.filter(h=>h.selected).flatMap(h=>i?this.subtreeIds(h.node):[h.node.id]));this.selectedIds=u}for(let u of e){if(!this.isSelectable(u.node))continue;let h=i?this.subtreeIds(u.node):[u.node.id];for(let p of h)u.selected?this.selectedIds.add(p):this.selectedIds.delete(p)}let s=new Set;for(let u of new Set([...r,...this.selectedIds]))r.has(u)!==this.selectedIds.has(u)&&s.add(u);let a=new Map;for(let u of this.core.rowModel.getAllNodes())a.set(u.id,u.selected);let l=new Set(this.indeterminateIds);this.recomputeTriState();let d=[],c=new Set([...s,...l,...this.indeterminateIds]);for(let u of this.core.rowModel.getAllNodes()){let h=this.selectedIds.has(u.id);u.selected=h,(c.has(u.id)||a.get(u.id)!==h)&&u.rowIndex>=0&&d.push(u.rowIndex)}s.size>0&&(this.core.bodyRenderer.refreshRows(d),this.core.headerRenderer.refreshSelectAllCheckbox(),this.core.emit("selectionChanged",{selectedNodes:this.getSelectedNodes(),selectedRows:this.getSelectedRows()}))}subtreeIds(e){let t=[e.id],r=o=>{for(let i of this.core.rowModel.getChildrenIds(o))t.push(i),r(i)};return r(e.id),t}recomputeTriState(){if(this.indeterminateIds.clear(),!this.core.rowModel.isTree)return;let e=t=>{let r=this.core.rowModel.getChildrenIds(t);if(r.length===0)return{all:this.selectedIds.has(t),some:this.selectedIds.has(t)};let o=!0,i=!1;for(let s of r){let a=e(s);a.all?i=!0:(a.some&&(i=!0),o=!1)}return i&&!o&&this.indeterminateIds.add(t),o?this.selectedIds.add(t):this.selectedIds.delete(t),{all:o,some:i}};for(let t of this.core.rowModel.getRootNodes())e(t.id);for(let t of this.core.rowModel.getAllNodes())t.selected=this.selectedIds.has(t.id)}};var ze=class{constructor(e){this.core=e;this.active=null;this.rafId=0;this.pendingWidth=0;this.onMove=e=>{let t=this.matchActivePointer(e);t&&(this.pendingWidth=this.widthFromPointer(t,e.clientX),t.didResize||(t.didResize=Math.abs(this.pendingWidth-t.startWidth)>=.5),!this.rafId&&(this.rafId=requestAnimationFrame(()=>{this.rafId=0,this.applyPendingWidth()})))};this.onUp=e=>{let t=this.matchActivePointer(e);t&&(this.pendingWidth=this.widthFromPointer(t,e.clientX),t.didResize||(t.didResize=Math.abs(this.pendingWidth-t.startWidth)>=.5),this.finishResize(t))};this.onCancel=e=>{this.matchActivePointer(e)&&this.cancelResize()};this.onLostPointerCapture=()=>{this.cancelResize()}}startResize(e,t){if(!this.core.options.enableColumnResize||!t.resizable||e.isPrimary===!1)return;this.cancelResize();let r=e.currentTarget,o=t.currentWidth;this.pendingWidth=o,this.active={column:t,didResize:!1,handle:r,pointerId:e.pointerId,startFlex:t.flex,startManualWidth:t.manualWidth,startWidth:o,startX:e.clientX},window.addEventListener("pointermove",this.onMove),window.addEventListener("pointerup",this.onUp,!0),window.addEventListener("pointercancel",this.onCancel,!0),r.addEventListener("lostpointercapture",this.onLostPointerCapture);try{r.setPointerCapture?.(e.pointerId)}catch{}this.core.skeleton.root.classList.add("mach-root--resizing")}cancelResize(e=!0){let t=this.active;t&&(this.active=null,this.clearFrame(),this.removeListeners(t),e&&(t.column.manualWidth=t.startManualWidth,t.column.flex=t.startFlex,this.core.relayoutColumns()),this.core.skeleton.root.classList.remove("mach-root--resizing"))}finishResize(e){this.active=null,this.clearFrame(),e.didResize&&(Math.abs(this.pendingWidth-e.startWidth)<.5?(e.column.manualWidth=e.startManualWidth,e.column.flex=e.startFlex):this.core.columnModel.setColumnWidth(e.column,this.pendingWidth),this.core.relayoutColumns()),this.removeListeners(e);try{e.handle.releasePointerCapture?.(e.pointerId)}catch{}this.core.skeleton.root.classList.remove("mach-root--resizing"),e.didResize&&this.core.commitColumnWidths([e.column])}applyPendingWidth(){let e=this.active;!e||!this.core.columnModel.setColumnWidth(e.column,this.pendingWidth)||(this.core.relayoutColumns(),this.core.emitColumnResize(e.column,!1))}widthFromPointer(e,t){let r=Number.isFinite(t)?t:e.startX;return e.startWidth+r-e.startX}matchActivePointer(e){let t=this.active;return t&&e.pointerId===t.pointerId?t:null}clearFrame(){this.rafId&&cancelAnimationFrame(this.rafId),this.rafId=0}removeListeners(e){window.removeEventListener("pointermove",this.onMove),window.removeEventListener("pointerup",this.onUp,!0),window.removeEventListener("pointercancel",this.onCancel,!0),e.handle.removeEventListener("lostpointercapture",this.onLostPointerCapture)}destroy(){this.cancelResize(!1),this.clearFrame(),this.core.skeleton.root?.classList.remove("mach-root--resizing")}};function g(n,e,t){let r=document.createElement(n);if(e&&(r.className=e),t)for(let o of Object.keys(t))r.setAttribute(o,t[o]);return r}function x(n,e,t){return n<e?e:n>t?t:n}var Nr='<svg viewBox="0 0 16 16" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M2 3.5h12L9.5 8v4.5L6.5 14V8L2 3.5z"/></svg>',Or='<svg viewBox="0 0 16 16" width="12" height="12" fill="currentColor"><path d="M8 3l4 5H4l4-5z"/></svg>',Hr='<svg viewBox="0 0 16 16" width="12" height="12" fill="currentColor"><path d="M8 13l4-5H4l4 5z"/></svg>';var Br=6,_e=class{constructor(e){this.core=e;this.pending=null;this.dragging=null;this.suppressClick=!1;this.onMove=e=>{if(this.dragging){this.updateIndicator(e);return}let t=this.pending;t&&(Math.abs(e.clientX-t.startX)<Br&&Math.abs(e.clientY-t.startY)<Br||this.startDrag(e))};this.onUp=()=>{let e=this.dragging;this.pending=null,this.cleanup(),e&&(this.dragging=null,e.cellEl.classList.remove("mach-header-cell--dragging"),e.indicator.remove(),this.core.skeleton.root.classList.remove("mach-root--dragging"),e.targetIndex>=0&&this.core.moveColumn(e.column.id,e.targetIndex))}}onPointerDown(e,t){e.button===0&&t.movable&&(this.pending={column:t,startX:e.clientX,startY:e.clientY},window.addEventListener("pointermove",this.onMove),window.addEventListener("pointerup",this.onUp),window.addEventListener("pointercancel",this.onUp))}didDrag(){let e=this.suppressClick;return this.suppressClick=!1,e}startDrag(e){let t=this.pending;if(!t)return;let r=this.findHeaderCell(t.column);if(!r||!r.parentElement){this.cleanup();return}this.suppressClick=!0;let o=g("div","mach-drop-indicator");r.parentElement.appendChild(o),r.classList.add("mach-header-cell--dragging"),this.core.skeleton.root.classList.add("mach-root--dragging"),this.dragging={column:t.column,cellEl:r,indicator:o,targetIndex:-1},this.updateIndicator(e)}findHeaderCell(e){let t=this.core.bodyRenderer.paneForColumn(e);return this.core.skeleton.headerRowContainers[t].querySelector(`.mach-header-cell[data-col-id="${Nn(e.id)}"]`)}updateIndicator(e){let t=this.dragging;if(!t)return;let r=this.core.bodyRenderer.paneForColumn(t.column),i=this.core.skeleton.headerRowContainers[r].getBoundingClientRect(),s=this.core.columnModel.getPaneColumns(r),a=s.indexOf(t.column),l=e.clientX-i.left,d=-1,c=0,u=0;for(let h=0;h<s.length;h++){let p=u+s[h].currentWidth/2;if(l<p){d=h,c=u;break}u+=s[h].currentWidth}d<0&&(d=s.length,c=u),t.targetIndex=d>a?d-1:d,t.indicator.style.left=`${c}px`}cleanup(){window.removeEventListener("pointermove",this.onMove),window.removeEventListener("pointerup",this.onUp),window.removeEventListener("pointercancel",this.onUp)}destroy(){this.cleanup(),this.dragging&&(this.dragging.cellEl.classList.remove("mach-header-cell--dragging"),this.dragging.indicator.remove(),this.core.skeleton.root.classList.remove("mach-root--dragging"),this.dragging=null),this.pending=null}};function Nn(n){return typeof CSS<"u"&&typeof CSS.escape=="function"?CSS.escape(n):n.replace(/[^a-zA-Z0-9_-]/g,"\\$&")}function Vr(n,e){let t=n==null?"":String(n);return t.includes(e)||t.includes('"')||t.includes(`
2
- `)||t.includes("\r")?'"'+t.replace(/"/g,'""')+'"':t}function fe(n){return typeof n!="string"||n===""||/^[+-]?(?:\d+(?:\.\d+)?|\.\d+)(?:[eE][+-]?\d+)?$/.test(n)?n:/^[\s\u0000-\u001f]*[=+\-@]/.test(n)?"'"+n:n}function jt(n,e={}){let t=e.columnSeparator??",",r=e.includeHeader??!0,o=e.protectFormulas??!0,i=[];r&&i.push(n.getHeaderLabels().map(a=>Vr(a,t)).join(t));for(let a of n.getRowValues())i.push(a.map(l=>Vr(o?fe(l):l,t)).join(t));let s=i.join(`\r
3
- `);return e.prependBOM?"\uFEFF"+s:s}function On(n,e){let t=e?fe(n):n,r=t==null?"":String(t);return/["\t\n\r]/.test(r)?'"'+r.replace(/"/g,'""')+'"':r}function se(n,e=!0){return n.map(t=>t.map(r=>On(r,e)).join(" ")).join(`
4
- `)}function We(n){return $e(n," ")}function Ke(n,e=","){return $e(n,e)}function $e(n,e){let t=[],r=[],o="",i=!1,s=0;for(;s<n.length;){let a=n[s];if(i){if(a==='"'){if(n[s+1]==='"'){o+='"',s+=2;continue}i=!1,s++;continue}o+=a,s++;continue}if(a==='"'&&o===""){i=!0,s++;continue}if(a===e){r.push(o),o="",s++;continue}if(a===`
1
+ "use strict";var Kt=Object.defineProperty;var on=Object.getOwnPropertyDescriptor;var nn=Object.getOwnPropertyNames;var sn=Object.prototype.hasOwnProperty;var an=(n,e)=>{for(var t in e)Kt(n,t,{get:e[t],enumerable:!0})},ln=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of nn(e))!sn.call(n,o)&&o!==t&&Kt(n,o,{get:()=>e[o],enumerable:!(r=on(e,o))||r.enumerable});return n};var dn=n=>ln(Kt({},"__esModule",{value:!0}),n);var ns={};an(ns,{BUILTIN_AGG_FUNCS:()=>Xt,Column:()=>P,DEFAULT_LOCALE:()=>S,DIRECT_GRID_OPTION_KEYS:()=>Xr,EVENT_TYPES:()=>z,EventBus:()=>Z,GRID_OPTION_KEYS:()=>le,GRID_OPTION_META:()=>_,GRID_SIZE_PRESETS:()=>U,GridCore:()=>he,LOCALE_EN:()=>jr,actionsColumn:()=>Bo,advancedFilterCondition:()=>kr,advancedFilterGroup:()=>Ir,applyGridViewState:()=>Sr,buildColDefsFromSchema:()=>Go,captureGridViewState:()=>Tr,clearColumnState:()=>fo,clearComponentRegistries:()=>Do,clearGridState:()=>go,computeColumnWidths:()=>Ae,createActionButtonsRenderer:()=>ue,createAggResolver:()=>Be,createBusinessColumnTypes:()=>Xo,createCachedDictionary:()=>Jo,createColumnHelper:()=>zo,createColumnStateKey:()=>po,createDictionaryRenderer:()=>Qo,createEnterprisePreset:()=>Wo,createGrid:()=>Ao,createGridViewManager:()=>rn,createLocalColumnStateStore:()=>lr,createLocalGridStateStore:()=>ur,createLocalGridViewStore:()=>Dr,createMachTableCommands:()=>Fo,createMachTablePreset:()=>B,createProgressBarRenderer:()=>mr,createRowActionsRenderer:()=>Ft,createSaveSnapshot:()=>gt,createStatusTagRenderer:()=>fr,defaultComparator:()=>ie,defineColumns:()=>_o,defineGridOptions:()=>qo,defineMachTableConfig:()=>$o,defineMachTablePreset:()=>Ko,describeFilter:()=>Ct,downloadFile:()=>ft,dragColumn:()=>Ho,escapeHtml:()=>Y,evaluateColumnFilter:()=>Oe,fitColumnWidths:()=>Le,formatText:()=>I,formatTwo:()=>ot,getByPath:()=>te,getCellEditor:()=>Ot,getCellRenderer:()=>De,indexColumn:()=>Oo,isColDefGroup:()=>ne,isSafePath:()=>ee,linkRenderer:()=>gr,loadColumnState:()=>Pt,loadGridState:()=>Lt,matchLocaleKey:()=>rt,matchesGridOptionKind:()=>be,mergeMachTableConfig:()=>Uo,migrateGridState:()=>O,normalizeAdvancedFilterModel:()=>G,normalizeBatchSaveResult:()=>yt,normalizeColumnFilter:()=>Ie,normalizeFilterModel:()=>re,normalizeGridViewState:()=>Wt,normalizeMachTableConfig:()=>Rr,normalizeSavedGridView:()=>pe,parseCsv:()=>Ue,parseDelimited:()=>je,parseTsv:()=>$e,registerBuiltinRenderers:()=>Nt,registerCellEditor:()=>To,registerCellRenderer:()=>Ro,resolveGridFeatures:()=>Vt,resolveMachTableGridOptions:()=>jo,resolveSaveConflict:()=>to,resolveTagVariant:()=>pr,rowActionsColumn:()=>Vo,sanitizeFormulaCell:()=>ge,sanitizeGridOptionPatch:()=>mt,saveColumnState:()=>It,saveGridState:()=>At,selectionColumn:()=>No,setByPath:()=>$,sortNodes:()=>fe,toTsv:()=>ae,validateGridOptions:()=>Ht,version:()=>os});module.exports=dn(ns);var ke={name:"@agile-team/mach-table",version:"0.23.0",description:"Enterprise-grade, framework-agnostic TypeScript data grid with virtualization, editing, grouping and extensibility",keywords:["data-grid","table","virtualization","typescript","enterprise","vue","react"],author:"ChenyCHENYU (Agile Team)",license:"SEE LICENSE IN LICENSE",homepage:"https://github.com/ChenyCHENYU/MachTable#readme",bugs:{url:"https://github.com/ChenyCHENYU/MachTable/issues"},repository:{type:"git",url:"git+https://github.com/ChenyCHENYU/MachTable.git",directory:"packages/core"},type:"module",main:"./dist/index.cjs",module:"./dist/index.js",types:"./dist/index.d.ts",engines:{node:">=18.0.0"},publishConfig:{access:"public"},exports:{".":{import:{types:"./dist/index.d.ts",default:"./dist/index.js"},require:{types:"./dist/index.d.cts",default:"./dist/index.cjs"}},"./worker":{import:{types:"./dist/worker.d.ts",default:"./dist/worker.js"},require:{types:"./dist/worker.d.cts",default:"./dist/worker.cjs"}},"./styles/mach-table.css":{types:"./styles/mach-table.css.d.ts",default:"./styles/mach-table.css"}},files:["dist","styles"],sideEffects:["**/*.css"],scripts:{build:"tsup",typecheck:"tsc --noEmit",test:"vitest run","test:coverage":"vitest run --coverage"}};var Z=class{constructor(e){this.onListenerError=e;this.listeners=new Map}on(e,t){let r=this.listeners.get(e);return r||(r=new Set,this.listeners.set(e,r)),r.add(t),()=>{r.delete(t)}}once(e,t){let r=this.on(e,o=>{r(),t(o)});return r}off(e,t){let r=this.listeners.get(e);r&&(r.delete(t),r.size===0&&this.listeners.delete(e))}emit(e,t){let r=this.listeners.get(e);if(r)for(let o of[...r])try{o(t)}catch(i){console.error(`[mach-table] error in "${e}" listener`,i),this.onListenerError?.(i,e)}}clear(){this.listeners.clear()}};var un=new Set(["__proto__","prototype","constructor"]);function ee(n){return typeof n!="string"||n.length===0?!1:n.split(".").every(t=>t.length>0&&!un.has(t))}function te(n,e){if(n==null||!ee(e))return;if(e.indexOf(".")<0)return n[e];let r=n,o=0;for(;o<e.length;){if(r==null)return;let i=e.indexOf(".",o);if(i<0){r=r[e.slice(o)];break}r=r[e.slice(o,i)],o=i+1}return r}function $(n,e,t){if(n==null||!ee(e))return!1;let r=e.split("."),o=n;for(let i=0;i<r.length-1;i++){if(typeof o!="object"&&typeof o!="function"||o===null)return!1;o[r[i]]==null&&(o[r[i]]={}),o=o[r[i]]}return typeof o!="object"&&typeof o!="function"||o===null?!1:(o[r[r.length-1]]=t,!0)}var hn=new Set(["contains","notContains","equals","notEquals","startsWith","endsWith","blank","notBlank"]),pn=new Set(["equals","notEquals","lessThan","lessThanOrEqual","greaterThan","greaterThanOrEqual","inRange","blank","notBlank"]),fn=new Set(["equals","notEquals","lessThan","greaterThan","inRange","blank","notBlank"]);function mn(n){return n==null||typeof n=="string"||typeof n=="number"&&Number.isFinite(n)}function gn(n){return n==="text"?hn:n==="number"?pn:fn}function yn(n,e,t){if(n==null||typeof n!="object")return null;let r=n;return typeof r.match!="string"||!t.has(r.match)?null:{match:r.match,...vn(r,e)}}function vn(n,e){let t=e==="number"?xr(n.value):typeof n.value=="string"?n.value:void 0,r=e==="number"?xr(n.value2):typeof n.value2=="string"?n.value2:void 0;return{...t!==void 0?{value:t}:{},...r!==void 0?{value2:r}:{}}}function xr(n){return typeof n=="number"&&Number.isFinite(n)?n:void 0}function wn(n,e){let t=[],r=gn(e);for(let o of n.slice(0,20)){let i=yn(o,e,r);i&&t.push(i)}return t}function Ie(n){if(n==null||typeof n!="object")return null;let e=n;return e.type==="set"?Array.isArray(e.values)?{type:"set",values:e.values.filter(mn).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:wn(e.conditions,e.type)}}function Cn(n,e){if(typeof n.colId!="string"||!n.colId.trim())return null;let t=n.colId.trim();if(e.validColumnIds?.has(t)===!1)return null;let r=Ie(n.filter);return r?{kind:"condition",colId:t,filter:r}:null}function bn(n,e,t){if(!Array.isArray(n.children))return null;let r=[];for(let o of n.children){let i=Mr(o,e+1,t);i&&r.push(i)}return r.length===0?null:{kind:"group",operator:n.operator==="or"?"or":"and",children:r,...n.not===!0?{not:!0}:{}}}function Rn(n,e,t){return e<=16&&t.nodes<512&&n!=null&&typeof n=="object"}function Mr(n,e,t){if(!Rn(n,e,t)||t.ancestors.has(n))return null;t.ancestors.add(n),t.nodes++;let r=n,o=r.kind==="condition"?Cn(r,t):r.kind==="group"?bn(r,e,t):null;return t.ancestors.delete(n),o}function G(n,e){if(n==null||typeof n!="object")return null;let t=n;if(t.version!==1||t.root==null)return null;let r=Mr(t.root,0,{ancestors:new WeakSet,nodes:0,validColumnIds:e});return r?{version:1,root:r}:null}function kr(n,e){return{kind:"condition",colId:n,filter:e}}function re(n,e){if(n==null||typeof n!="object"||Array.isArray(n))return{};let t={};for(let[r,o]of Object.entries(n).slice(0,2e3)){let i=r.trim();if(!i||e?.has(i)===!1)continue;let s=Ie(o);s&&(t[i]=s)}return t}function Ir(n,e,t={}){return{kind:"group",operator:n,children:e,...t.not?{not:!0}:{}}}var qt={sortable:!0,resizable:!0,movable:!0,filter:!1,minWidth:80},U={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 T(n,e,t,r=!1){return typeof n!="number"||!Number.isFinite(n)||n<t?e:r?Math.floor(n):n}function Tn(n){return n&&Object.prototype.hasOwnProperty.call(U,n)?n:"normal"}function Sn(n){return n.theme==="light"||n.theme==="dark"||n.theme==="auto"?n.theme:n.className?.includes("mach-theme-dark")?"dark":"light"}function Dn(n,e){let t=typeof n.pagination=="object"&&Array.isArray(n.pagination.pageSizeOptions)?n.pagination.pageSizeOptions:void 0,r=t?[...new Set(t.map(o=>T(o,0,1,!0)).filter(Boolean))]:[10,20,50,100];return r.includes(e)||r.push(e),r.sort((o,i)=>o-i)}function $t(n,e){let t=typeof n=="function"?n(e):te(e,n);return t==null?"":String(t)}function En(n){let e=n.rowKey,t=n.getRowId??(e?({data:r})=>$t(e,r):void 0);return{...t?{getRowId:t}:{},...e?{rowKey:e}:{}}}function xn(n,e){let t=U[e];return{columnDefs:Array.isArray(n.columnDefs)?n.columnDefs:[],rowData:Array.isArray(n.rowData)?n.rowData:[],defaultColDef:{...qt,...n.defaultColDef??{}},columnTypes:n.columnTypes??{},...En(n),rowHeight:T(n.rowHeight,t.rowHeight,1),headerHeight:T(n.headerHeight,t.headerHeight,1),rowBuffer:T(n.rowBuffer,8,0,!0),columnLayout:n.columnLayout==="fit"?"fit":"normal",enableColumnResize:n.enableColumnResize===!0,domLayout:n.domLayout==="autoHeight"?"autoHeight":"normal",rowSelection:n.rowSelection==="single"||n.rowSelection==="multiple"?n.rowSelection:"none",multiSort:n.multiSort??!0,size:e,pinnedTopRowData:Array.isArray(n.pinnedTopRowData)?n.pinnedTopRowData:[],pinnedBottomRowData:Array.isArray(n.pinnedBottomRowData)?n.pinnedBottomRowData:[]}}function Mn(n){return{stripedRows:n.stripedRows??!1,showCellBorders:n.showCellBorders??!1,theme:Sn(n),quickFilterText:n.quickFilterText??null,suppressCellFocus:n.suppressCellFocus??!1,suppressRowHoverHighlight:n.suppressRowHoverHighlight??!1,suppressNoRowsOverlay:n.suppressNoRowsOverlay??!1,suppressHeaderFocus:n.suppressHeaderFocus??!1,loading:n.loading??!1,error:n.error??null,className:n.className??""}}function kn(n){return{editType:n.editType==="fullRow"?"fullRow":"cell",editableIndicator:n.editableIndicator==="always"||n.editableIndicator==="none"?n.editableIndicator:"hover",singleClickEdit:n.singleClickEdit??!1,manualSorting:n.manualSorting??!1,manualFiltering:n.manualFiltering??!1,showSummary:n.showSummary??!1,indexOffset:n.indexOffset??0,applyRowDrag:n.applyRowDrag??!0,undoStackSize:T(n.undoStackSize,100,0,!0),asyncTransactionWaitMillis:T(n.asyncTransactionWaitMillis,16,0,!0)}}function In(n){return{masterDetail:n.masterDetail??!1,detailRowHeight:T(n.detailRowHeight,240,1),detailToggleColumn:n.detailToggleColumn??!0,treeData:n.treeData??!1,childrenKey:n.childrenKey??"children",autoCheckedChildren:n.autoCheckedChildren??!0,defaultExpandAll:n.defaultExpandAll??!1}}function Pn(n){let e=typeof n.pagination=="object"?n.pagination:void 0,t=T(e?.pageSize,20,1,!0);return{paginationEnabled:n.pagination!==!1&&n.datasource==null,paginationMode:e?.mode==="server"?"server":"client",paginationPage:T(e?.page,1,1,!0),paginationTotal:T(e?.total,0,0,!0),paginationPageSize:t,paginationPageSizeOptions:Dn(n,t),paginationShowTotal:e?e.showTotal!==!1:!0,paginationShowSizeSelector:e?e.showPageSizeSelector!==!1:!0}}function An(n){return{watermarkEnabled:n.watermark!=null&&n.watermark!==!1,watermarkConfig:n.watermark==null||n.watermark===!1?null:n.watermark===!0?{text:"MachTable"}:n.watermark}}function Ln(n){return{columnMenu:n.columnMenu??!1,columnStateKey:n.columnStateKey??null,advancedFilterModel:G(n.advancedFilterModel),...Gn(n),locale:n.locale??{},suppressWarnings:n.suppressWarnings??!1,enableRangeSelection:n.enableRangeSelection??!1,suppressClipboard:n.suppressClipboard??!1,contextMenu:n.contextMenu??!1,tooltipShowDelay:T(n.tooltipShowDelay,600,0),flashCells:n.flashCells??!0,fillHandle:n.fillHandle??!0,statusBarEnabled:n.statusBar===!0||typeof n.statusBar=="object"&&n.statusBar!=null,statusBarPanels:typeof n.statusBar=="object"&&n.statusBar?.panels?n.statusBar.panels:["rowCount","selectedRowCount","rangeAggregate"]}}function Gn(n){return{stateKey:n.stateKey??null,stateSaveDebounceMs:T(n.stateSaveDebounceMs,160,0,!0)}}function Fn(n){return{datasourceMode:n.datasourceMode==="block"?"block":"sequential",blockSize:T(n.blockSize,100,1,!0),infiniteBufferRows:T(n.infiniteBufferRows,40,0,!0),maxBlocksInCache:T(n.maxBlocksInCache,12,1,!0),datasourceMaxConcurrentRequests:T(n.datasourceMaxConcurrentRequests,4,1,!0),blockPrefetch:T(n.blockPrefetch,1,0,!0),datasourceRowCount:n.datasourceRowCount==null?null:T(n.datasourceRowCount,0,0,!0),dataProcessorMinRows:T(n.dataProcessorMinRows,5e3,1,!0),datasourceRetryCount:T(n.datasourceRetryCount,2,0,!0),datasourceRetryDelay:T(n.datasourceRetryDelay,300,0,!0),datasourceRetryJitter:Math.min(1,T(n.datasourceRetryJitter,.15,0))}}function Nn(n){return{ariaLabel:n.ariaLabel??"MachTable data grid",ariaLabelledBy:n.ariaLabelledBy??"",ariaDescribedBy:n.ariaDescribedBy??"",overlayNoRowsTemplate:n.overlayNoRowsTemplate??"",overlayLoadingTemplate:n.overlayLoadingTemplate??"",overlayErrorTemplate:n.overlayErrorTemplate??"",allowUnsafeOverlayHtml:n.allowUnsafeOverlayHtml??!1}}var On=["stateStore","detailRowRenderer","isRowExpandable","columnStateStore","aggFuncs","components","actionPolicy","summaryMethod","datasource","getRowHeight","tooltipComponent","getContextMenuItems","initialState","rowEditValidator","isTreeRowExpandable","loadTreeChildren","dataProcessor"];function Hn(n,e){for(let t of On)n[t]&&Object.assign(e,{[t]:n[t]})}function Bn(n,e){for(let t of Object.keys(n))t.startsWith("on")&&typeof n[t]=="function"&&Object.assign(e,{[t]:n[t]})}function Pr(n){let e=Tn(n.size),t={...xn(n,e),...Mn(n),...kn(n),...In(n),...Pn(n),...An(n),...Ln(n),...Fn(n),...Nn(n),features:Array.isArray(n.features)?n.features:[]};return Hn(n,t),Bn(n,t),t}function Ar(n){return Array.isArray(n)?n.filter(e=>typeof e=="string"&&e.length>0):typeof n=="string"&&n.length>0?[n]:[]}function oe(n,e){return Ar(n.type).includes(e)}function Lr(n,e,t={}){let r={};for(let o of Ar(n.type)){let i=t[o];i&&Object.assign(r,i)}return{...e,...r,...n}}var P=class{constructor(e,t){this.manualWidth=null;this.flex=null;this.currentWidth=0;this.parentGroup=null;this.level=0;this.isDetailToggle=!1;this.id=e,this.colDef=t,this.hide=t.hide??!1;let r=t.pinned;this.pinned=r===!0?"left":r===!1||r==null?null:r,this.resetWidth()}get sortable(){return this.colDef.sortable!==!1}get resizable(){return this.colDef.resizable!==!1}get movable(){return this.colDef.movable!==!1}get filterable(){return this.colDef.filter!=null&&this.colDef.filter!==!1}get filterType(){let e=this.colDef.filter;return e===!0?"text":e??"text"}get hasCheckbox(){return this.colDef.checkboxSelection===!0}resetWidth(){this.manualWidth=null,this.flex=typeof this.colDef.flex=="number"&&Number.isFinite(this.colDef.flex)&&this.colDef.flex>0?this.colDef.flex:null}};var j=class n{constructor(e,t){this.parent=null;this.children=[];this.groupId=e,this.def=t}get headerName(){return this.def.headerName??this.def.groupId??""}getLeafColumns(e=[]){for(let t of this.children)t instanceof n?t.getLeafColumns(e):e.push(t);return e}};function ne(n){return Array.isArray(n.children)}function Pe(n,e){return typeof n=="number"&&Number.isFinite(n)&&n>0?n:e}function Gr(n){let e=Pe(n.minWidth,80);return{min:e,max:Math.max(e,Pe(n.maxWidth,Number.MAX_SAFE_INTEGER))}}function A(n,e){let{min:t,max:r}=Gr(e),o=Pe(n,Pe(e.width,150));return Math.max(t,Math.min(r,o))}function Ae(n,e){let t=n.map(s=>A(s.width??150,s)),r=[],o=0;n.forEach((s,a)=>{let l=s.flex??0;l>0&&(r.push(a),o+=l)});let i=0;for(let s of t)i+=s;if(o>0&&e>i){let s=e-i;for(let a=0;a<4&&s>.5&&r.length>0;a++){let l=[],d=0;for(let p of r){let m=n[p].flex??0;l.push(p),d+=m}let c=[];for(let p=0;p<l.length;p++){let m=l[p],f=n[m].flex??0,y=s*f/d,v=t[m];t[m]=A(v+y,n[m]),c.push(t[m]-v)}let u=0;for(let p of c)u+=p;s-=u;let h=l.filter((p,m)=>c[m]>.001);if(h.length===l.length)break;r.length=0;for(let p of h)r.push(p)}}return t}function Le(n,e){let t=n.map(s=>A(s.width??150,s));if(!Number.isFinite(e)||e<=0||n.length===0)return t;let r=new Set(n.map((s,a)=>a)),o=e;for(let s=0;s<n.length+1&&r.size>0;s++){let a=0;for(let d of r)a+=Math.max(1,t[d]);if(a<=0)break;let l=!1;for(let d of[...r]){let c=o*(Math.max(1,t[d])/a),u=A(c,n[d]),{min:h,max:p}=Gr(n[d]);(c<h||c>p)&&(t[d]=u,o-=u,r.delete(d),l=!0)}if(!l){for(let d of r)t[d]=A(o*(Math.max(1,t[d])/a),n[d]);break}o=Math.max(0,o)}let i=e-t.reduce((s,a)=>s+a,0);if(Math.abs(i)>.01)for(let s=t.length-1;s>=0;s--){let a=A(t[s]+i,n[s]);if(Math.abs(a-t[s])>.01){t[s]=a;break}}return t}var Ut="__rg_detail_toggle__";function Ge(n){return typeof n=="number"&&Number.isFinite(n)&&n>0}var Fe=class{constructor(e){this.core=e;this.columns=[];this.rootChildren=[];this.left=[];this.center=[];this.right=[];this.sortModel=[];this.defs=[];this.headerDepth=1;this.flatIndexById=new Map;this.viewportWidth=0}setColumnDefs(e){this.defs=e?[...e]:[];let t=new Map(this.columns.map(s=>[s.id,s])),r=this.core.options.defaultColDef,o=new Set(this.core.options.masterDetail&&this.core.options.detailToggleColumn?[Ut]:[]),i=(s,a,l)=>s.map((d,c)=>{if(ne(d)){let v=d.groupId??d.headerName??`group_${c}_${l}`,w=new j(v,d);return w.parent=a,w.children=i(d.children,w,l+1),w}let u=d,h=u.colId??u.field??`col_${c}`,p=h,m=2;for(;o.has(p);)p=`${h}_${m++}`;o.add(p);let f=new P(p,Lr(u,r,this.core.options.columnTypes));f.parentGroup=a,f.level=l;let y=t.get(p);return y&&(f.manualWidth=y.manualWidth,f.flex=y.flex,f.hide=y.hide,f.pinned=y.pinned),f});if(this.rootChildren=i(this.defs,null,0),this.core.options.masterDetail&&this.core.options.detailToggleColumn){let s=new P(Ut,{colId:Ut,headerName:"",width:38,pinned:"left",sortable:!1,resizable:!1,movable:!1,filter:!1});s.isDetailToggle=!0,this.rootChildren.unshift(s)}if(this.columns=this.collectLeaves(this.rootChildren),this.headerDepth=this.columns.reduce((s,a)=>Math.max(s,a.level+1),1),this.sortModel=this.sortModel.filter(s=>this.columns.some(a=>a.id===s.colId)),this.sortModel.length===0){let s=[];for(let a of this.columns)a.colDef.initialSort&&s.push({colId:a.id,direction:a.colDef.initialSort});this.sortModel=s}this.regroup()}collectLeaves(e,t=[]){for(let r of e)r instanceof j?this.collectLeaves(r.children,t):t.push(r);return t}regroup(){let e=this.columns.filter(t=>!t.hide);this.left=e.filter(t=>t.pinned==="left"),this.right=e.filter(t=>t.pinned==="right"),this.center=e.filter(t=>t.pinned===null),this.flatIndexById.clear(),this.getOrderedVisible().forEach((t,r)=>this.flatIndexById.set(t.id,r))}getFlatIndex(e){return this.flatIndexById.get(e)??-1}getColumns(){return this.columns}getColumnDefs(){return this.defs}getRootChildren(){return this.rootChildren}getHeaderDepth(){return this.headerDepth}getColumn(e){return this.columns.find(t=>t.id===e)}getPaneColumns(e){return e==="left"?this.left:e==="right"?this.right:this.center}getOrderedVisible(){return[...this.left,...this.center,...this.right]}getRowGroupColumns(){return this.getOrderedVisible().filter(e=>e.colDef.rowGroup===!0)}getAggColumns(){return this.getOrderedVisible().filter(e=>e.colDef.aggFunc!=null&&e.colDef.rowGroup!==!0)}hasColSpan(){return this.center.some(e=>e.colDef.colSpan!=null)}getGroupLabelColumn(){let e=this.getOrderedVisible();return this.center.find(t=>!t.hasCheckbox&&!t.isDetailToggle)??e.find(t=>!t.hasCheckbox&&!t.isDetailToggle)??e[0]}paneOf(e){return e.pinned==="left"?"left":e.pinned==="right"?"right":"center"}computeLayout(e){this.viewportWidth=e;let t=0;for(let c of[...this.left,...this.right])c.currentWidth=A(c.manualWidth??c.colDef.width??150,this.widthInputOf(c)),t+=c.currentWidth;let r=Math.max(0,e-t),o=[],i=[];for(let c of this.center)(c.colDef.suppressSizeToFit||c.manualWidth!=null?i:o).push(c);let s=0;for(let c of i)c.currentWidth=A(c.manualWidth??c.colDef.width??150,this.widthInputOf(c)),s+=c.currentWidth;let a=o.map(c=>this.widthInputOf(c)),l=Math.max(0,r-s),d=this.core.options.columnLayout==="fit"?Le(a,l):Ae(a,l);o.forEach((c,u)=>{c.currentWidth=d[u]})}widthInputOf(e){let t=e.colDef;return e.manualWidth!=null?{width:e.manualWidth,minWidth:t.minWidth,maxWidth:t.maxWidth}:{width:t.width,minWidth:t.minWidth,maxWidth:t.maxWidth,...e.flex!=null?{flex:e.flex}:{}}}setColumnWidth(e,t){return Ge(t)?(e.manualWidth=A(t,this.widthInputOf(e)),e.flex=null,!0):!1}setColumnVisibility(e,t){let r=this.getColumn(e);!r||r.hide===!t||(r.hide=!t,this.regroup())}moveColumn(e,t){let r=this.getColumn(e);if(!r)return!1;let o=this.paneOf(r),i=u=>r.parentGroup?!0:this.paneOf(u)===o,s=r.parentGroup?r.parentGroup.children:this.rootChildren,a=s.filter(u=>u instanceof P&&!u.hide&&i(u)),l=a.indexOf(r);if(l<0)return!1;a.splice(l,1);let d=Math.max(0,Math.min(t,a.length));a.splice(d,0,r);let c=[];return s.forEach((u,h)=>{u instanceof P&&!u.hide&&i(u)&&c.push(h)}),c.length!==a.length?!1:(c.forEach((u,h)=>{s[u]=a[h]}),this.columns=this.collectLeaves(this.rootChildren),this.regroup(),!0)}setColumnPinned(e,t){let r=this.getColumn(e);r&&(r.pinned=t,this.regroup())}getColumnState(){return this.columns.map(e=>{let t=this.sortModel.findIndex(o=>o.colId===e.id),r={colId:e.id,hide:e.hide,width:e.manualWidth??e.currentWidth,flex:e.flex,widthMode:e.manualWidth==null?"auto":"manual",pinned:e.pinned};return t>=0?(r.sort=this.sortModel[t].direction,r.sortIndex=t):(r.sort=null,r.sortIndex=null),r})}applyColumnState(e){let t=new Map(e.map(r=>[r.colId,r]));for(let r of this.columns){let o=t.get(r.id);o&&this.applyColumnViewState(r,o)}this.sortModel=this.sortModelFromState(e),this.applyStateOrder(e),this.regroup()}applyColumnViewState(e,t){typeof t.hide=="boolean"&&(e.hide=t.hide),t.widthMode==="auto"?(e.resetWidth(),Ge(t.flex)&&(e.flex=t.flex)):Ge(t.flex)?(e.flex=t.flex,e.manualWidth=null):Ge(t.width)&&(e.manualWidth=A(t.width,this.widthInputOf(e)),e.flex=null),(t.pinned==="left"||t.pinned==="right"||t.pinned===null)&&(e.pinned=t.pinned)}sortModelFromState(e){let t=new Set(this.columns.map(i=>i.id)),r=new Set,o=[];for(let i of e){if(i.sort!=="asc"&&i.sort!=="desc"||!t.has(i.colId)||r.has(i.colId))continue;r.add(i.colId);let s=typeof i.sortIndex=="number"&&Number.isInteger(i.sortIndex)&&i.sortIndex>=0?i.sortIndex:o.length;o.push({colId:i.colId,direction:i.sort,sortIndex:s})}return o.sort((i,s)=>i.sortIndex-s.sortIndex),o.map(({colId:i,direction:s})=>({colId:i,direction:s}))}applyStateOrder(e){let t=new Map;e.forEach((o,i)=>t.set(o.colId,i));let r=o=>o.pinned==="left"?"left":o.pinned==="right"?"right":"center";for(let o of["left","center","right"]){let i=this.rootChildren.filter(l=>l instanceof P&&!l.hide&&l.parentGroup===null&&r(l)===o);if(i.length<2)continue;let s=i.slice().sort((l,d)=>(t.get(l.id)??Number.MAX_SAFE_INTEGER)-(t.get(d.id)??Number.MAX_SAFE_INTEGER));if(s.every((l,d)=>l===i[d]))continue;let a=[];this.rootChildren.forEach((l,d)=>{l instanceof P&&!l.hide&&l.parentGroup===null&&r(l)===o&&a.push(d)}),a.forEach((l,d)=>{this.rootChildren[l]=s[d]})}this.columns=this.collectLeaves(this.rootChildren)}resetColumnState(){for(let e of this.columns){e.resetWidth(),e.hide=e.colDef.hide??!1;let t=e.colDef.pinned;e.pinned=t===!0?"left":t===!1||t==null?null:t}this.sortModel=[],this.regroup()}getSortModel(){return this.sortModel.map(e=>({...e}))}applySortModel(e){if(!e||e.length===0){this.sortModel=[];return}this.sortModel=e.filter(t=>this.columns.some(r=>r.id===t.colId)&&(t.direction==="asc"||t.direction==="desc")).map(t=>({colId:t.colId,direction:t.direction}))}cycleSort(e,t){let r=[...this.sortModel],o=r.findIndex(l=>l.colId===e.id),i=o>=0?r[o].direction:null,s=i===null?"asc":i==="asc"?"desc":null;t&&this.core.options.multiSort?s===null?o>=0&&r.splice(o,1):o>=0?r[o]={colId:e.id,direction:s}:r.push({colId:e.id,direction:s}):(r.length=0,s&&r.push({colId:e.id,direction:s})),this.sortModel=r}};function Nr(n){return n==null?"":String(n).toLowerCase()}function Vn(n,e,t){let r=Nr(n),o=e.map(i=>{let s=(i.value??"").toLowerCase();switch(i.match){case"contains":return r.includes(s);case"notContains":return!r.includes(s);case"equals":return r===s;case"notEquals":return r!==s;case"startsWith":return r.startsWith(s);case"endsWith":return r.endsWith(s);case"blank":return r==="";case"notBlank":return r!=="";default:return!0}});return o.length===0?!0:t==="or"?o.some(Boolean):o.every(Boolean)}function zn(n,e,t){let r=e.map(o=>{let i=n==null||n==="";if(o.match==="blank")return i;if(o.match==="notBlank")return!i;if(i)return!1;let s=typeof n=="number"?n:Number(n);if(isNaN(s))return!1;let a=o.value;if(a==null||isNaN(a))return!1;switch(o.match){case"equals":return s===a;case"notEquals":return s!==a;case"lessThan":return s<a;case"lessThanOrEqual":return s<=a;case"greaterThan":return s>a;case"greaterThanOrEqual":return s>=a;case"inRange":return s>=a&&s<=(o.value2??a);default:return!0}});return r.length===0?!0:t==="or"?r.some(Boolean):r.every(Boolean)}function Ne(n){if(n==null||n==="")return null;if(n instanceof Date)return isNaN(n.getTime())?null:n.getTime();if(typeof n=="number")return n;let e=Date.parse(String(n));return isNaN(e)?null:e}function _n(n,e,t){let r=e.map(o=>{let i=Ne(n)==null;if(o.match==="blank")return i;if(o.match==="notBlank")return!i;if(i)return!1;let s=Ne(n),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 Wn(n,e){return e.length===0?!0:e.some(t=>t==null&&n==null||t===n)}function Oe(n,e){let t=e.type!=="set"&&e.operator==="or"?"or":"and";switch(e.type){case"text":return Vn(n,e.conditions,t);case"number":return zn(n,e.conditions,t);case"date":return _n(n,e.conditions,t);case"set":return Wn(n,e.values);default:return!0}}function jt(n,e,t,r){if(n.kind==="condition"){let i=e.get(n.colId);return!i||Oe(r(t,i),n.filter)}let o=n.operator==="or"?n.children.some(i=>jt(i,e,t,r)):n.children.every(i=>jt(i,e,t,r));return n.not?!o:o}function Kn(n,e,t,r){return t?jt(t.root,new Map(e.map(o=>[o.id,o])),n,r):!0}function Yt(n,e,t,r,o,i){for(let s of Object.keys(t)){let a=t[s],l=e.find(c=>c.id===s);if(!l)continue;let d=i(n,l);if(!Oe(d,a))return!1}if(!Kn(n,e,r,i))return!1;if(o&&o.trim()!==""){let s=o.trim().toLowerCase().split(/\s+/);for(let a of s)if(!e.some(d=>Nr(i(n,d)).includes(a)))return!1}return!0}var Or=typeof Intl<"u"?new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"}):null;function ie(n,e){let t=n==null||n==="",r=e==null||e==="";if(t&&r)return 0;if(t)return 1;if(r)return-1;if(typeof n=="number"&&typeof e=="number")return isNaN(n)&&isNaN(e)?0:isNaN(n)?1:isNaN(e)?-1:n-e;if(n instanceof Date&&e instanceof Date)return n.getTime()-e.getTime();if(typeof n=="boolean"&&typeof e=="boolean")return n===e?0:n?1:-1;let o=String(n),i=String(e);return Or?Or.compare(o,i):o.localeCompare(i)}function fe(n,e,t,r){let o=new Map;for(let l of t)o.set(l.id,l);let i=[],s=[];for(let l of e){let d=o.get(l.colId);d&&(i.push(d.colDef.comparator??ie),s.push(l.direction))}let a=n.map(l=>({node:l,values:e.map(d=>r(l,o.get(d.colId)))}));return a.sort((l,d)=>{for(let c=0;c<i.length;c++){let u=i[c](l.values[c],d.values[c],l.node,d.node);if(u!==0)return s[c]==="asc"?u:-u}return 0}),a.map(l=>l.node)}function He(n){return n.filter(e=>typeof e=="number"&&!isNaN(e))}var Xt={sum:n=>He(n).reduce((e,t)=>e+t,0),avg:n=>{let e=He(n);return e.length===0?null:e.reduce((t,r)=>t+r,0)/e.length},count:n=>n.length,min:n=>{let e=He(n);return e.length===0?null:Math.min(...e)},max:n=>{let e=He(n);return e.length===0?null:Math.max(...e)},first:n=>n.length>0?n[0]:null,last:n=>n.length>0?n[n.length-1]:null};function Be(n){let e={...Xt,...n??{}};return t=>e[t]}function se(n){if(n.reason instanceof Error)return n.reason;let e=new Error(typeof n.reason=="string"?n.reason:"Block request aborted");return e.name="AbortError",e}function Ve(n){return Number.isFinite(n)?Math.max(1,Math.trunc(n)):1}var ze=class{constructor(e,t,r=4){this.maxBlocks=e;this.onEvict=t;this.maxConcurrentRequests=r;this.blocks=new Map;this.inflight=new Map;this.clock=0;this.generation=0;this.hitCount=0;this.missCount=0;this.evictionCount=0;this.activeRequests=0;this.maxBlocks=Ve(e),this.maxConcurrentRequests=Ve(r)}configure(e,t=this.maxConcurrentRequests){this.maxBlocks=Ve(e),this.maxConcurrentRequests=Ve(t),this.evictOverflow(),this.drainQueue()}peek(e){let t=this.blocks.get(e);if(t)return t.touchedAt=++this.clock,t}has(e){return this.blocks.has(e)}load(e,t,r,o=0){if(r?.aborted)return Promise.reject(se(r));let i=this.peek(e);if(i)return this.hitCount++,Promise.resolve(i);let s=this.inflight.get(e);if(s)return this.hitCount++,s.priority=Math.max(s.priority,o),this.drainQueue(),this.attachConsumer(e,s,r);this.missCount++;let a=new AbortController,l,d,c=new Promise((p,m)=>{l=p,d=m}),u={controller:a,promise:c,consumers:0,loader:t,priority:o,state:"queued",resolve:l,reject:d};this.inflight.set(e,u);let h=this.attachConsumer(e,u,r);return this.drainQueue(),h}purge(){this.generation++;for(let e of this.inflight.values())e.controller.abort(),e.state==="queued"&&e.reject(se(e.controller.signal));this.inflight.clear();for(let[e,t]of this.blocks)this.onEvict?.(e,t);this.blocks.clear()}snapshot(){let e=0,t=0;for(let r of this.blocks.values())e+=r.rows.length;for(let r of this.inflight.values())r.state==="active"&&t++;return{cachedBlockCount:this.blocks.size,loadingBlockCount:this.inflight.size,activeRequestCount:t,queuedRequestCount:Math.max(0,this.inflight.size-t),cachedRowCount:e,hitCount:this.hitCount,missCount:this.missCount,evictionCount:this.evictionCount}}drainQueue(){for(;this.activeRequests<this.maxConcurrentRequests;){let e,t;for(let[r,o]of this.inflight)o.state!=="queued"||o.controller.signal.aborted||(!t||o.priority>t.priority)&&(e=r,t=o);if(e==null||!t)return;this.startEntry(e,t)}}startEntry(e,t){t.state="active",this.activeRequests++;let r=this.generation;this.runLoader(t).then(o=>{r===this.generation&&!t.controller.signal.aborted&&(this.blocks.set(e,{rows:o.rows,...o.lastRow==null?{}:{lastRow:o.lastRow},touchedAt:++this.clock}),this.evictOverflow()),t.resolve(o)},t.reject).finally(()=>{this.activeRequests=Math.max(0,this.activeRequests-1),this.inflight.get(e)===t&&this.inflight.delete(e),this.drainQueue()})}runLoader(e){let{signal:t}=e.controller;return t.aborted?Promise.reject(se(t)):new Promise((r,o)=>{let i=()=>o(se(t));t.addEventListener("abort",i,{once:!0}),Promise.resolve().then(()=>e.loader(t)).then(r,o).finally(()=>{t.removeEventListener("abort",i)})})}attachConsumer(e,t,r){return t.consumers++,new Promise((o,i)=>{let s=!1,a=d=>{s||(s=!0,r?.removeEventListener("abort",l),t.consumers=Math.max(0,t.consumers-1),d())},l=()=>a(()=>{t.consumers===0&&this.inflight.get(e)===t&&(this.inflight.delete(e),t.controller.abort(r?.reason),t.state==="queued"&&t.reject(se(t.controller.signal))),i(se(r))});r?.addEventListener("abort",l,{once:!0}),t.promise.then(d=>a(()=>o(d)),d=>a(()=>i(d instanceof Error?d:new Error(String(d??"Block request failed")))))})}evictOverflow(){for(;this.blocks.size>this.maxBlocks;){let e=-1,t=Number.POSITIVE_INFINITY;for(let[o,i]of this.blocks)i.touchedAt<t&&(e=o,t=i.touchedAt);if(e<0)return;let r=this.blocks.get(e);this.blocks.delete(e),this.evictionCount++,r&&this.onEvict?.(e,r)}}};function me(n,e){if(n==null||typeof n!="object")return;let t=n[e];return Array.isArray(t)?t:void 0}var _e=class{constructor(e){this.core=e;this.all=[];this.roots=[];this.childIds=new Map;this.displayed=[];this.nodesById=new Map;this.filterModel={};this.advancedFilterModel=null;this.quickFilter=null;this.expandedIds=new Set;this.groupExpandedIds=new Set;this.knownGroupIds=[];this.spanInfo=new Map;this.mastersBuf=[];this.infiniteLastRow=null;this.infiniteRequested=!1;this.infiniteLoading=!1;this.infiniteSeq=0;this.infiniteAbort=null;this.infiniteRetryTimer=null;this.infinitePendingResolve=null;this.treeDepth=new WeakMap;this.rowSequence=new WeakMap;this.treeLoadControllers=new Map;this.treeLoadPromises=new Map;this.displayRevision=0;this.blockNodes=new Map;this.blockPlaceholders=new Map;this.installedBlocks=new Set;this.blockCache=new ze(12,e=>this.evictBlock(e));this.dataProcessorSeq=0;this.dataProcessorAbort=null;this.skipDataProcessorOnce=!1;this.lastRequestedBlock=0;this.pipelineRows=[];this.page=1;this.pageSize=20;this.advancedFilterModel=G(e.options.advancedFilterModel)}resolveRowId(e,t,r){let o=this.core.options.getRowId;if(!o)return r;try{let i=o({data:e,index:t,api:this.core.getApi()});if(typeof i=="string"&&i.length>0)return i;this.core.reportError(new Error("getRowId must return a non-empty string"),"getRowId",{index:t})}catch(i){this.core.reportError(i,"getRowId",{index:t})}return r}get isTree(){return this.core.options.treeData}get isInfinite(){return this.core.options.datasource!=null}get isBlockDatasource(){return this.isInfinite&&this.core.options.datasourceMode==="block"}getDisplayTotalCount(){if(this.isInfinite){if(this.isBlockDatasource)return this.resolveBlockRowCount();let e=Math.max(0,this.displayed.length-this.all.length);return(this.infiniteLastRow??this.all.length)+e}return this.displayed.length}getDisplayRevision(){return this.displayRevision}isLoadingInfinite(){return this.infiniteLoading}startInfinite(e){return!this.isInfinite||e?.aborted?Promise.resolve():(this.cancelInfiniteRequest(),this.infiniteLastRow=null,this.infiniteRequested=!1,this.all=[],this.roots=[],this.nodesById.clear(),this.expandedIds.clear(),this.core.undoService.clear(),this.refreshPipeline(),this.core.requestUpdate({data:!0}),this.isBlockDatasource?(this.blockCache.configure(this.core.options.maxBlocksInCache,this.core.options.datasourceMaxConcurrentRequests),this.loadRandomBlock(0,e)):this.loadBlock(0,void 0,e))}reloadInfinite(e){return this.isInfinite?this.startInfinite(e):Promise.resolve()}setInfiniteLoading(e){this.infiniteLoading=e,this.core.skeleton.setInfiniteLoading(e,this.core.getLocaleText("loading"))}loadBlock(e,t,r){if(!this.isInfinite||this.infiniteRequested||this.infiniteLastRow!=null&&e>=this.infiniteLastRow)return Promise.resolve();let o=this.core.options.datasource,i=this.core.options.blockSize,s=t??e+i;if(s<=e)return Promise.resolve();let a=++this.infiniteSeq,l=new AbortController,d=()=>l.abort(r?.reason);return r?.addEventListener("abort",d,{once:!0}),this.infiniteAbort=l,this.infiniteRequested=!0,this.setInfiniteLoading(!0),new Promise(c=>{let u=!1,h=0;this.infinitePendingResolve=c;let p=f=>{u||(u=!0,r?.removeEventListener("abort",d),a===this.infiniteSeq&&(this.infiniteRequested=!1,this.infiniteAbort=null,this.infinitePendingResolve=null,this.setInfiniteLoading(!1),f!=null&&f?.name!=="AbortError"&&this.core.reportError(f,"datasource.getRows",{startRow:e,endRow:s})),c())},m=()=>{if(u||a!==this.infiniteSeq||l.signal.aborted||this.core.isDestroyed()){p();return}h++;let f=!1,y=v=>{if(!(f||u)){if(f=!0,a!==this.infiniteSeq||l.signal.aborted||this.core.isDestroyed()){p();return}if(h<=this.core.options.datasourceRetryCount){let w=this.retryDelay(h);this.infiniteRetryTimer=setTimeout(()=>{this.infiniteRetryTimer=null,m()},w);return}p(v??new Error("Datasource request failed"))}};try{let v=o.getRows({startRow:e,endRow:s,sortModel:this.core.columnModel.getSortModel(),filterModel:this.getFilterModel(),advancedFilterModel:this.getAdvancedFilterModel(),quickFilterText:this.quickFilter,signal:l.signal,onSuccess:(w,b)=>{if(f||u)return;if(f=!0,a!==this.infiniteSeq||this.core.isDestroyed()||l.signal.aborted){p();return}let D=w??[];typeof b=="number"&&b>=0?this.infiniteLastRow=b:D.length<s-e&&(this.infiniteLastRow=e+D.length);let R=this.all.length===0;this.appendInfiniteRows(D),p(),this.refreshPipeline(),this.core.requestUpdate({data:!0}),R&&this.core.relayout(),this.core.headerRenderer.refreshSelectAllCheckbox()},fail:y});v&&typeof v.catch=="function"&&v.catch(y)}catch(v){y(v)}};m()})}cancelInfiniteRequest(){this.infiniteSeq++,this.infiniteRetryTimer!=null&&clearTimeout(this.infiniteRetryTimer),this.infiniteRetryTimer=null,this.infiniteAbort?.abort(),this.infiniteAbort=null,this.infiniteRequested=!1,this.setInfiniteLoading(!1),this.infinitePendingResolve?.(),this.infinitePendingResolve=null,this.blockCache.purge(),this.blockNodes.clear(),this.blockPlaceholders.clear(),this.installedBlocks.clear()}appendInfiniteRows(e){for(let t of e){if(t==null)continue;let r=this.all.length,o=this.resolveRowId(t,r,`inf-${this.core.nextId()}`);if(this.nodesById.has(o)){this.core.reportError(new Error(`Duplicate row id: ${o}`),"datasource.getRows",{rowId:o});continue}let i={id:o,data:t,rowIndex:-1,selected:this.core.selectionService.isSelected(o)};this.all.push(i),this.nodesById.set(o,i),this.roots.push(i)}}loadRandomBlock(e,t,r=0){if(!this.isBlockDatasource||e<0)return Promise.resolve();if(t?.aborted)return Promise.reject(this.abortError(t.reason));let o=this.core.options.blockSize,i=e*o;if(i>=this.resolveBlockRowCount())return Promise.resolve();let s=this.infiniteLastRow==null?i+o:Math.min(this.infiniteLastRow,i+o),a=this.blockCache.load(e,l=>this.requestDatasourceRange(i,s,l),t,r);return this.setInfiniteLoading(this.all.length===0&&this.blockCache.snapshot().loadingBlockCount>0),a.then(l=>{t?.aborted||this.core.isDestroyed()||!this.isBlockDatasource||this.installedBlocks.has(e)||(this.installBlock(e,l),this.refreshPipeline(),this.core.requestUpdate({data:!0}),this.core.headerRenderer.refreshSelectAllCheckbox())}).catch(l=>{throw l?.name!=="AbortError"&&this.core.reportError(l,"datasource.getRows",{startRow:i,endRow:s}),l}).finally(()=>{this.setInfiniteLoading(this.all.length===0&&this.blockCache.snapshot().loadingBlockCount>0)})}requestDatasourceRange(e,t,r){let o=this.core.options.datasource;return new Promise((i,s)=>{let a=0,l=null,d=!1,c=p=>{d||(d=!0,l!=null&&clearTimeout(l),r.removeEventListener("abort",u),s(p instanceof Error?p:new Error(typeof p=="string"?p:"Datasource request failed")))},u=()=>c(this.abortError(r.reason));r.addEventListener("abort",u,{once:!0});let h=()=>{if(d)return;if(r.aborted||this.core.isDestroyed()){u();return}a++;let p=!1,m=f=>{if(!(p||d)){if(p=!0,r.aborted||this.core.isDestroyed()){u();return}if(a<=this.core.options.datasourceRetryCount){let y=this.retryDelay(a);l=setTimeout(()=>{l=null,h()},y)}else c(f)}};try{let f=o.getRows({startRow:e,endRow:t,sortModel:this.core.columnModel.getSortModel(),filterModel:this.getFilterModel(),advancedFilterModel:this.getAdvancedFilterModel(),quickFilterText:this.quickFilter,signal:r,onSuccess:(y,v)=>{p||d||(p=!0,d=!0,r.removeEventListener("abort",u),i({rows:y??[],...typeof v=="number"&&v>=0?{lastRow:v}:{}}))},fail:m});f&&typeof f.catch=="function"&&f.catch(m)}catch(f){m(f)}};h()})}installBlock(e,t){let r=this.core.options.blockSize,o=e*r;this.evictBlock(e),typeof t.lastRow=="number"&&t.lastRow>=0?this.infiniteLastRow=t.lastRow:t.rows.length<r&&(this.infiniteLastRow=o+t.rows.length),t.rows.forEach((i,s)=>{if(i==null)return;let a=o+s;if(this.infiniteLastRow!=null&&a>=this.infiniteLastRow)return;let l=this.resolveRowId(i,a,`block-${a}`),d=this.nodesById.get(l);if(d&&d.rowIndex!==a){this.core.reportError(new Error(`Duplicate row id: ${l}`),"datasource.getRows",{rowId:l});return}let c={id:l,data:i,rowIndex:a,selected:this.core.selectionService.isSelected(l)};this.blockNodes.set(a,c),this.blockPlaceholders.delete(a),this.nodesById.set(l,c),this.rowSequence.set(c,a+1)}),this.rebuildLoadedBlockRows(),this.installedBlocks.add(e)}evictBlock(e){this.installedBlocks.delete(e);let t=this.core.options.blockSize,r=e*t;for(let o=r;o<r+t;o++){let i=this.blockNodes.get(o);i&&(this.blockNodes.delete(o),this.nodesById.get(i.id)===i&&this.nodesById.delete(i.id))}this.rebuildLoadedBlockRows()}rebuildLoadedBlockRows(){this.all=[...this.blockNodes.entries()].sort(([e],[t])=>e-t).map(([,e])=>e),this.roots=this.all}resolveBlockRowCount(){if(this.infiniteLastRow!=null)return this.infiniteLastRow;if(this.core.options.datasourceRowCount!=null)return this.core.options.datasourceRowCount;if(this.blockNodes.size===0)return this.core.options.blockSize;let e=0;for(let t of this.blockNodes.keys())e=Math.max(e,t+1);return e+this.core.options.blockSize}blockPlaceholder(e){let t=this.blockPlaceholders.get(e);if(!t&&(t={id:`__mach_loading_${e}`,data:null,rowIndex:e,selected:!1,loading:!0},this.blockPlaceholders.set(e,t),this.blockPlaceholders.size>2e3)){let r=this.blockPlaceholders.keys().next().value;r!=null&&this.blockPlaceholders.delete(r)}return t}abortError(e){if(e instanceof Error)return e;let t=new Error(typeof e=="string"?e:"Operation aborted");return t.name="AbortError",t}retryDelay(e){let t=Math.min(this.core.options.datasourceRetryDelay*2**Math.max(0,e-1),3e4),r=this.core.options.datasourceRetryJitter;return Math.max(0,Math.round(t*(1+(Math.random()*2-1)*r)))}checkInfiniteScroll(e){if(this.isBlockDatasource){this.prefetchVisibleBlocks(e);return}if(!this.isInfinite||this.infiniteRequested)return;let t=this.all.length;if(this.infiniteLastRow!=null&&t>=this.infiniteLastRow)return;let r=this.core.options.infiniteBufferRows;if(e+r<t&&e<t)return;let o=this.core.options.blockSize,i=this.infiniteLastRow==null?t+o:Math.min(this.infiniteLastRow,t+o);this.loadBlock(t,i)}prefetchVisibleBlocks(e){if(e<0)return;let t=this.core.options.blockSize,r=Math.floor(e/t),o=this.core.options.blockPrefetch,i=r<this.lastRequestedBlock?-1:1;this.lastRequestedBlock=r;for(let s=0;s<=o;s++){let a=s===0?[r]:[r+i*s,r-i*s];for(let l of a)l<0||l*t>=this.resolveBlockRowCount()||this.loadRandomBlock(l,void 0,o-s+1).catch(()=>{})}}onServerParamsChanged(){return this.reloadInfinite().catch(()=>{})}onDatasourceChanged(){return this.cancelInfiniteRequest(),this.isInfinite?this.startInfinite().catch(()=>{}):(this.infiniteLastRow=null,this.setRowData(this.core.options.rowData),this.core.requestUpdate({data:!0}),Promise.resolve())}destroy(){this.cancelInfiniteRequest(),this.cancelTreeLoads(),this.cancelDataProcessor(),this.core.options.dataProcessor?.destroy?.()}ensureRowsLoaded(e,t,r){if(!this.isBlockDatasource)return Promise.resolve();let o=this.core.options.blockSize,i=Math.max(0,Math.trunc(e)),s=Math.min(this.resolveBlockRowCount(),Math.max(i,Math.trunc(t))),a=Math.floor(i/o),l=Math.max(a,Math.floor(Math.max(i,s-1)/o)),d=[];for(let c=a;c<=l;c++)d.push(this.loadRandomBlock(c,r,100));return Promise.all(d).then(()=>{})}purgeDatasourceCache(){this.isBlockDatasource&&(this.blockCache.purge(),this.blockNodes.clear(),this.blockPlaceholders.clear(),this.installedBlocks.clear(),this.all=[],this.roots=[],this.nodesById.clear(),this.refreshPipeline(),this.core.requestUpdate({data:!0}))}getDatasourceCacheSnapshot(){return this.blockCache.snapshot()}setRowData(e){this.cancelTreeLoads(),this.core.changeTracker.clear();let t=this.core.options.getRowId,r=this.core.options.childrenKey,o=[],i=[],s=new Map,a=new Map,l=0,d=(c,u,h)=>{let p=l++,m=this.resolveRowId(c,p,`auto-${p}`);if(s.has(m))return this.core.reportError(new Error(`Duplicate row id: ${m}`),"rowData",{rowId:m,index:p}),null;let f=this.isTree?me(c,r):void 0,y={id:m,data:c,rowIndex:-1,selected:!1,treeChildrenLoaded:Array.isArray(f)};if(this.treeDepth.set(y,u),o.push(y),s.set(m,y),h!=null){let v=a.get(h)??[];v.push(m),a.set(h,v)}else i.push(y);if(this.isTree&&Array.isArray(f))for(let v of f)v!=null&&d(v,u+1,m);return y};(e??[]).forEach(c=>{c!=null&&d(c,0,null)}),this.all=o,this.roots=i,this.childIds=a,this.nodesById=s,this.core.undoService.clear();for(let c of[...this.expandedIds])s.has(c)||this.expandedIds.delete(c);if(this.core.options.defaultExpandAll)for(let c of o)this.getChildrenCount(c.id)>0&&this.expandedIds.add(c.id);this.core.selectionService.onRowsRebuilt(t!=null),this.refreshPipeline()}getChildrenIds(e){return this.childIds.get(e)??[]}getChildrenCount(e){return this.childIds.get(e)?.length??0}hasChildren(e){return this.getChildrenCount(e)>0}isTreeRowLoading(e){return this.nodesById.get(e)?.treeLoading===!0}cancelTreeLoads(){for(let e of this.treeLoadControllers.values())e.abort();this.treeLoadControllers.clear(),this.treeLoadPromises.clear()}loadTreeChildren(e,t=!1){let r=this.nodesById.get(e),o=this.core.options.loadTreeChildren;if(!this.isTree||!r?.data||!o)return Promise.resolve([]);if(!t&&r.treeChildrenLoaded)return Promise.resolve(this.getChildrenIds(e).flatMap(l=>{let d=this.nodesById.get(l)?.data;return d==null?[]:[d]}));let i=this.treeLoadPromises.get(e);if(i&&!t)return i;this.treeLoadControllers.get(e)?.abort();let s=new AbortController;this.treeLoadControllers.set(e,s),r.treeLoading=!0,r.treeLoadError=void 0,this.core.requestUpdate({data:!0});let a=Promise.resolve().then(()=>o({data:r.data,node:r,api:this.core.getApi(),signal:s.signal})).then(l=>{if(s.signal.aborted||this.core.isDestroyed())return[];if(!Array.isArray(l))throw new TypeError("[MachTable] loadTreeChildren must resolve to an array.");return this.replaceTreeChildren(r,l),r.treeChildrenLoaded=!0,r.treeLoadError=void 0,this.core.emit("treeChildrenLoaded",{rowId:e,rowNode:r,children:l}),l}).catch(l=>{if(s.signal.aborted||l?.name==="AbortError")return[];throw r.treeLoadError=l,r.treeChildrenLoaded=!1,this.core.reportError(l,"treeData.loadChildren",{rowId:e}),this.core.emit("treeChildrenLoadFailed",{rowId:e,rowNode:r,error:l}),l}).finally(()=>{this.treeLoadControllers.get(e)===s&&(this.treeLoadControllers.delete(e),this.treeLoadPromises.delete(e),r.treeLoading=!1,this.core.requestUpdate({data:!0}))});return this.treeLoadPromises.set(e,a),a}replaceTreeChildren(e,t){let r=new Set,o=[...this.getChildrenIds(e.id)];for(;o.length>0;){let s=o.pop();r.has(s)||(r.add(s),o.push(...this.getChildrenIds(s)))}this.validateTreeChildren(t,r);for(let s of r)this.treeLoadControllers.get(s)?.abort(),this.treeLoadControllers.delete(s),this.treeLoadPromises.delete(s),this.childIds.delete(s),this.nodesById.delete(s),this.expandedIds.delete(s);this.childIds.delete(e.id);let i=this.getTreeDepth(e)+1;for(let s of t)s!=null&&this.buildChildNodes(e,s,i);this.reindexAll(),this.core.selectionService.onRowsRebuilt(this.core.options.getRowId!=null),this.refreshPipeline(),this.core.requestUpdate({data:!0})}validateTreeChildren(e,t){let r=this.core.options.getRowId,o=r?new Set([...this.nodesById.keys()].filter(l=>!t.has(l))):null,i=new WeakSet,s=[...e],a=0;for(;s.length>0;){let l=s.pop();if(l==null)continue;if(typeof l=="object"){if(i.has(l))throw new TypeError("[MachTable] Lazy tree children contain a cyclic object graph.");i.add(l)}if(r&&o){let c=r({data:l,index:a++,api:this.core.getApi()});if(typeof c!="string"||c.length===0)throw new TypeError("[MachTable] getRowId must return a non-empty string for lazy tree children.");if(o.has(c))throw new Error(`Duplicate row id: ${c}`);o.add(c)}let d=me(l,this.core.options.childrenKey);d&&s.push(...d)}}applyTransaction(e,t=!0){let r=this.core.options.getRowId,o=[],i=[];if(e.remove?.length){let 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 f of this.childIds.get(m)??[])p.push(f)}}}else{let h=[u];for(;h.length>0;){let p=h.pop();l.add(p);let m=this.isTree?me(p,this.core.options.childrenKey):void 0;if(m)for(let f of m)h.push(f)}}};e.remove.forEach(d),this.all=this.all.filter(u=>{let h=a.has(u.id)||u.data!=null&&l.has(u.data);return h&&(i.push(u.id),this.nodesById.delete(u.id),this.childIds.delete(u.id)),!h});let c=new Set(this.all);this.roots=this.roots.filter(u=>c.has(u))}if(e.update?.length)for(let a of e.update){let l;r?l=this.nodesById.get(this.resolveRowId(a,-1,`__missing_update_${this.core.nextId()}`)):l=this.all.find(d=>d.data===a),l&&(l.data=a,i.push(l.id),this.core.bodyRenderer.invalidateRowHeight(l),o.push(l))}if(e.add?.length){let a=e.addIndex!=null?Math.max(0,Math.min(e.addIndex,this.roots.length)):this.roots.length,l=[];e.add.forEach((d,c)=>{let u=this.resolveRowId(d,a+c,`add-${this.core.nextId()}`);if(this.nodesById.has(u)){this.core.reportError(new Error(`Duplicate row id: ${u}`),"transaction.add",{rowId:u});return}let h={id:u,data:d,rowIndex:-1,selected:!1};this.nodesById.set(u,h),this.treeDepth.set(h,0);let p=this.isTree?me(d,this.core.options.childrenKey):void 0;if(p)for(let m of p)m!=null&&this.buildChildNodes(h,m,1);l.push(h)}),this.roots.splice(a,0,...l),this.reindexAll()}let s=this.transactionNeedsPipeline(e);return t&&(s?this.refreshPipeline():o.length>0&&this.emitIncrementalModelUpdate()),this.core.changeTracker.clearRows(i),{pipelineChanged:s,updatedRowIds:o.map(a=>a.id)}}applyTransactions(e){if(e.length===0)return{pipelineChanged:!1,updatedRowIds:[]};let t=!1,r=new Set;for(let o of e){let i=this.applyTransaction(o,!1);t||(t=i.pipelineChanged);for(let s of i.updatedRowIds)r.add(s)}return t?this.refreshPipeline():r.size>0&&this.emitIncrementalModelUpdate(),{pipelineChanged:t,updatedRowIds:[...r]}}transactionNeedsPipeline(e){return e.add?.length||e.remove?.length?!0:e.update?.length?this.isTree||this.core.options.masterDetail||this.core.columnModel.getRowGroupColumns().length>0||!this.core.options.manualFiltering&&this.isFilterPresent()||!this.core.options.manualSorting&&this.core.columnModel.getSortModel().length>0||this.core.options.getRowHeight?!0:this.core.columnModel.getOrderedVisible().some(t=>t.colDef.autoHeight===!0||t.colDef.autoRowSpan===!0||t.colDef.rowSpan!=null):!1}emitIncrementalModelUpdate(){this.core.emit("modelUpdated",{rowCount:this.pipelineRows.length})}buildChildNodes(e,t,r){let o=this.resolveRowId(t,-1,`add-${this.core.nextId()}`);if(this.nodesById.has(o)){this.core.reportError(new Error(`Duplicate row id: ${o}`),"transaction.add",{rowId:o});return}let i=me(t,this.core.options.childrenKey),s={id:o,data:t,rowIndex:-1,selected:!1,treeChildrenLoaded:Array.isArray(i)};this.nodesById.set(o,s),this.treeDepth.set(s,r);let a=this.childIds.get(e.id)??[];if(a.push(s.id),this.childIds.set(e.id,a),!!i)for(let l of i)l!=null&&this.buildChildNodes(s,l,r+1)}reindexAll(){this.all=[];let e=t=>{this.all.push(t),this.nodesById.has(t.id)||this.nodesById.set(t.id,t);for(let r of this.childIds.get(t.id)??[]){let o=this.nodesById.get(r);o&&e(o)}};for(let t of this.roots)e(t)}setFilterModel(e){let t=JSON.stringify(this.filterModel),r=new Set(this.core.columnModel.getColumns().map(o=>o.id));return this.filterModel=re(e,r),JSON.stringify(this.filterModel)!==t}getFilterModel(){return{...this.filterModel}}setAdvancedFilterModel(e){let t=new Set(this.core.columnModel.getColumns().map(i=>i.id)),r=G(e,t),o=JSON.stringify(this.advancedFilterModel);return this.advancedFilterModel=r,this.core.options.advancedFilterModel=r,JSON.stringify(r)!==o}getAdvancedFilterModel(){return G(this.advancedFilterModel)}setQuickFilter(e){let t=e!=null&&e.trim()!==""?e:null;return t===this.quickFilter?!1:(this.quickFilter=t,!0)}getQuickFilter(){return this.quickFilter}isFilterPresent(){return Object.keys(this.filterModel).length>0||this.advancedFilterModel!=null||this.quickFilter!=null}refreshPipeline(){let e=this.core.performanceMonitor.start(),t=this.core.columnModel.getOrderedVisible(),r=(s,a)=>this.core.getCellValue(s,a);if(this.isInfinite){this.refreshInfinitePipeline(e);return}if(this.startDataProcessorIfNeeded(e))return;let o;if(this.isTree)o=this.buildTreeDisplay(t,r);else{o=this.all,this.isFilterPresent()&&!this.core.options.manualFiltering&&(o=o.filter(d=>Yt(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=fe(o,a,t,r)}catch(d){this.core.reportError(d,"comparator",{sortModel:a})}let l=this.core.columnModel.getRowGroupColumns();if(l.length>0)o=this.buildGrouped(o,l);else if(this.core.options.masterDetail){let d=[];for(let c of o)d.push(c),this.expandedIds.has(c.id)&&this.isRowExpandable(c)&&d.push({id:`__detail__${c.id}`,data:c.data,rowIndex:-1,selected:!1,isDetail:!0,masterId:c.id});o=d}}for(let s of this.all)s.rowIndex=-1;let i=0;o.forEach((s,a)=>{s.rowIndex=a,!s.isDetail&&!s.isGroup&&(i++,this.rowSequence.set(s,i))}),this.pipelineRows=o,this.applyPagination(),this.computeSpans(r),this.core.emit("modelUpdated",{rowCount:o.length}),this.core.performanceMonitor.recordModel(e)}refreshInfinitePipeline(e){this.all.forEach((t,r)=>{this.isBlockDatasource||(t.rowIndex=r),this.rowSequence.set(t,this.isBlockDatasource?t.rowIndex+1:r+1)}),this.displayed=this.all,this.pipelineRows=this.all,this.spanInfo.clear(),this.displayRevision++,this.core.emit("modelUpdated",{rowCount:this.all.length}),this.core.performanceMonitor.recordModel(e)}startDataProcessorIfNeeded(e){let t=this.skipDataProcessorOnce;return this.skipDataProcessorOnce=!1,!t&&this.shouldUseDataProcessor()?(this.refreshWithDataProcessor(e),!0):(this.cancelDataProcessor(),!1)}shouldUseDataProcessor(){if(!this.core.options.dataProcessor||this.all.length<this.core.options.dataProcessorMinRows||this.isTree||this.core.options.masterDetail||this.core.columnModel.getRowGroupColumns().length>0)return!1;let e=!this.core.options.manualFiltering&&this.isFilterPresent(),t=!this.core.options.manualSorting&&this.core.columnModel.getSortModel().length>0;return e||t}refreshWithDataProcessor(e){this.cancelDataProcessor();let t=this.core.options.dataProcessor;if(!t)return;let r=++this.dataProcessorSeq,o=new AbortController;this.dataProcessorAbort=o;let i=this.core.columnModel.getOrderedVisible(),s=this.all.flatMap(d=>d.data==null?[]:[{id:d.id,data:d.data}]),a=!this.core.options.manualFiltering,l=!this.core.options.manualSorting;Promise.resolve().then(()=>t.process({rows:s,columns:i.map(d=>({colId:d.id,...d.colDef.field?{field:d.colDef.field}:{}})),sortModel:l?this.core.columnModel.getSortModel():[],filterModel:a?this.getFilterModel():{},advancedFilterModel:a?this.getAdvancedFilterModel():null,quickFilterText:a?this.quickFilter:null,signal:o.signal})).then(d=>{if(r!==this.dataProcessorSeq||o.signal.aborted||this.core.isDestroyed())return;let c=new Set,u=[];for(let p of d.rowIds){if(c.has(p))continue;c.add(p);let m=this.nodesById.get(p);m&&!m.isDetail&&!m.isGroup&&u.push(m)}for(let p of this.all)p.rowIndex=-1;u.forEach((p,m)=>{p.rowIndex=m,this.rowSequence.set(p,m+1)}),this.pipelineRows=u,this.applyPagination();let h=(p,m)=>this.core.getCellValue(p,m);this.computeSpans(h),this.core.emit("modelUpdated",{rowCount:u.length}),this.core.performanceMonitor.recordModel(e),this.core.requestUpdate({data:!0})}).catch(d=>{r!==this.dataProcessorSeq||o.signal.aborted||this.core.isDestroyed()||(this.core.reportError(d,"dataProcessor.process"),this.skipDataProcessorOnce=!0,this.refreshPipeline(),this.core.requestUpdate({data:!0}))}).finally(()=>{r===this.dataProcessorSeq&&(this.dataProcessorAbort=null)})}cancelDataProcessor(){this.dataProcessorSeq++,this.dataProcessorAbort?.abort(),this.dataProcessorAbort=null}get paginationActive(){return this.core.options.paginationEnabled&&!this.isInfinite}applyPagination(){if(!this.paginationActive){this.displayed=this.pipelineRows,this.displayRevision++;return}let e=this.effectivePageSize(),t=this.getPageCount();if(this.page>t&&(this.page=t),this.page<1&&(this.page=1),this.core.options.paginationPage=this.page,this.core.options.paginationMode==="server"){this.pipelineRows.forEach((i,s)=>{i.rowIndex=s}),this.displayed=this.pipelineRows,this.displayRevision++;return}let r=(this.page-1)*e,o=this.pipelineRows.slice(r,r+e);o.forEach((i,s)=>{i.rowIndex=s}),this.displayed=o,this.displayRevision++}effectivePageSize(){return this.pageSize=this.core.options.paginationPageSize,Math.max(1,this.pageSize)}getCurrentPage(){return this.paginationActive?this.page:1}getTotalRowCount(){return this.isInfinite?this.getDisplayTotalCount():this.paginationActive&&this.core.options.paginationMode==="server"?this.core.options.paginationTotal:this.pipelineRows.length}getPageCount(){return this.paginationActive?Math.max(1,Math.ceil(this.getTotalRowCount()/this.effectivePageSize())):1}getPipelineRows(){return this.pipelineRows}setPage(e,t=!1){if(!this.paginationActive)return;let r=this.getPageCount(),o=Math.max(1,Math.min(Math.round(e)||1,r));o!==this.page&&(this.page=o,this.core.options.paginationPage=o,this.applyPagination(),this.core.requestUpdate({data:!0}),this.core.bodyRenderer.scrollToIndex(0,"top"),t||this.emitPaginationChanged())}setPageSize(e){if(!this.paginationActive)return;let t=Math.max(1,Math.round(e)||this.effectivePageSize()),r=(this.page-1)*this.effectivePageSize();this.core.options.paginationPageSize=t,this.pageSize=t,this.page=Math.floor(r/t)+1,this.core.options.paginationPage=this.page,this.applyPagination(),this.core.requestUpdate({data:!0}),this.emitPaginationChanged()}restorePagination(e,t){this.pageSize=Math.max(1,Math.round(t)||1),this.core.options.paginationPageSize=this.pageSize,this.page=Math.max(1,Math.round(e)||1),this.core.options.paginationPage=this.page}setPaginationEnabled(e){this.core.options.paginationEnabled!==e&&(this.core.options.paginationEnabled=e&&!this.isInfinite,this.core.options.paginationEnabled&&(this.page=1),this.applyPagination(),this.core.requestUpdate({data:!0}),this.emitPaginationChanged())}onPaginationOptionsChanged(){this.paginationActive&&(this.page=this.core.options.paginationMode==="server"?this.core.options.paginationPage:1,this.applyPagination(),this.core.requestUpdate({data:!0}),this.emitPaginationChanged())}emitPaginationChanged(){this.core.emit("paginationChanged",{page:this.getCurrentPage(),pageSize:this.effectivePageSize(),pageCount:this.getPageCount(),total:this.getTotalRowCount()})}buildTreeDisplay(e,t){let r=this.core.options.manualSorting?[]:this.core.columnModel.getSortModel(),o=new Map,i=this.isFilterPresent()&&!this.core.options.manualFiltering,s=d=>{let c=o.get(d.id);if(c!==void 0)return c;let u=!0;if(i){u=Yt(d,e,this.filterModel,this.advancedFilterModel,this.quickFilter,t);for(let h of this.childIds.get(d.id)??[]){let p=this.nodesById.get(h);p&&s(p)&&(u=!0)}}return o.set(d.id,u),u},a=[],l=d=>{let c=d;r.length>0&&(c=fe(d,r,e,t));for(let u of c)if(s(u)&&(a.push(u),this.expandedIds.has(u.id))){let h=(this.childIds.get(u.id)??[]).map(p=>this.nodesById.get(p)).filter(p=>p!=null);l(h)}};return l(this.roots),a}computeSpans(e){if(this.spanInfo.clear(),this.isTree||this.core.options.masterDetail||this.core.columnModel.getRowGroupColumns().length>0)return;let t=this.core.columnModel.getOrderedVisible().filter(s=>s.colDef.rowSpan!=null||s.colDef.autoRowSpan===!0);if(t.length===0)return;let r=this.mastersBuf,o=0;for(let s of this.displayed)!s.isDetail&&!s.isGroup&&(r[o++]=s);r.length=o;let i=o;if(i!==0)for(let s of t){let a=new Int32Array(i),l=0;for(;l<i;){let d=r[l],c=e(d,s),u=1;if(s.colDef.rowSpan)try{let h=s.colDef.rowSpan({api:this.core.getApi(),colDef:s.colDef,column:s,node:d,data:d.data,value:c,rowIndex:d.rowIndex});u=Math.max(1,Math.min(Math.round(h)||1,i-l))}catch(h){this.core.reportError(h,"rowSpan",{colId:s.id,rowId:d.id})}else if(s.colDef.autoRowSpan)for(;l+u<i&&c!=null&&c!==""&&ie(c,e(r[l+u],s))===0;)u++;a[l]=u;for(let h=1;h<u;h++)a[l+h]=-1;l+=u}this.spanInfo.set(s.id,a)}}getSpanInfo(e){return this.spanInfo.get(e)}getRowSeq(e){return this.rowSequence.get(e)??0}getTreeDepth(e){return this.treeDepth.get(e)??0}buildGrouped(e,t){let r=Be(this.core.options.aggFuncs),o=this.core.columnModel.getAggColumns();this.knownGroupIds=[];let i=a=>{let l={};for(let d of o){let c=r(d.colDef.aggFunc);if(c)try{l[d.id]=c(a.map(u=>this.core.getCellValue(u,d)))}catch(u){this.core.reportError(u,"aggFunc",{colId:d.id,aggFunc:d.colDef.aggFunc}),l[d.id]=null}}return l},s=(a,l,d)=>{if(l>=t.length)return{display:a,leaves:a};let c=t[l],u=new Map,h=[];for(let f of a){let y=this.core.getCellValue(f,c),v=y==null?"(\u7A7A)":String(y),w=u.get(v);w||(w=[],u.set(v,w),h.push(v)),w.push(f)}h.sort((f,y)=>f.localeCompare(y,void 0,{numeric:!0,sensitivity:"base"}));let p=[],m=[];for(let f of h){let y=u.get(f),v=`${d}/g${l}:${f}`;this.knownGroupIds.push(v);let w=s(y,l+1,v),b={id:v,data:null,rowIndex:-1,selected:!1,isGroup:!0,groupLevel:l,groupKey:f,leafNodes:w.leaves,aggValues:i(w.leaves)};p.push(b),this.groupExpandedIds.has(v)&&p.push(...w.display),m.push(...w.leaves)}return{display:p,leaves:m}};return s(e,0,"").display}isRowExpandable(e){if(this.isTree){if(this.hasChildren(e.id)||e.treeLoading)return!0;if(e.treeChildrenLoaded||!e.data||!this.core.options.loadTreeChildren)return!1;let r=this.core.options.isTreeRowExpandable;if(!r)return!1;try{return r({data:e.data,node:e,api:this.core.getApi()})}catch(o){return this.core.reportError(o,"isTreeRowExpandable",{rowId:e.id}),!1}}if(!this.core.options.masterDetail)return!1;let t=this.core.options.isRowExpandable;if(t)try{return t({data:e.data,node:e,api:this.core.getApi()})}catch(r){return this.core.reportError(r,"isRowExpandable",{rowId:e.id}),!1}return!0}isRowExpanded(e){return this.expandedIds.has(e)}getExpandedRowIds(){return[...this.expandedIds]}getExpandedGroupIds(){return[...this.groupExpandedIds]}restoreExpansion(e,t){this.expandedIds=new Set(e.filter(r=>this.nodesById.has(r))),this.groupExpandedIds=new Set(t)}expandRow(e){return this.setDetailExpanded(e,!0)}collapseRow(e){return this.setDetailExpanded(e,!1)}toggleDetail(e){return this.setDetailExpanded(e,!this.expandedIds.has(e))}setDetailExpanded(e,t){let r=this.nodesById.get(e);return!r||t&&!this.isRowExpandable(r)?!1:(t===this.expandedIds.has(e)||(t?this.expandedIds.add(e):this.expandedIds.delete(e),this.refreshPipeline(),this.core.requestUpdate({data:!0}),this.core.emit("detailToggled",{rowId:e,rowNode:r,expanded:t}),t&&this.isTree&&!this.hasChildren(e)&&!r.treeLoading&&this.loadTreeChildren(e).catch(()=>{})),t)}expandAllDetails(){let e=!1;for(let t of this.all)!this.expandedIds.has(t.id)&&this.isRowExpandable(t)&&(this.expandedIds.add(t.id),e=!0);e&&(this.refreshPipeline(),this.core.requestUpdate({data:!0}))}collapseAllDetails(){this.expandedIds.size!==0&&(this.expandedIds.clear(),this.refreshPipeline(),this.core.requestUpdate({data:!0}))}toggleGroup(e){return this.setGroupExpanded(e,!this.groupExpandedIds.has(e))}isGroupExpanded(e){return this.groupExpandedIds.has(e)}getGroupNode(e){return this.displayed.find(t=>t.isGroup&&t.id===e)}expandAllGroups(){if(this.knownGroupIds.length===0)return;let e=!1;for(let t of this.knownGroupIds)this.groupExpandedIds.has(t)||(this.groupExpandedIds.add(t),e=!0);e&&(this.refreshPipeline(),this.core.requestUpdate({data:!0}))}collapseAllGroups(){this.groupExpandedIds.size!==0&&(this.groupExpandedIds.clear(),this.refreshPipeline(),this.core.requestUpdate({data:!0}))}setGroupExpanded(e,t){return!this.knownGroupIds.includes(e)||t===this.groupExpandedIds.has(e)||(t?this.groupExpandedIds.add(e):this.groupExpandedIds.delete(e),this.refreshPipeline(),this.core.requestUpdate({data:!0})),t}reorderRowsByDisplayed(e,t){if(this.isTree)return!1;let r=this.getDisplayedRow(e),o=this.getDisplayedRow(t);if(!r||!o||r.isDetail||o.isDetail||r.isGroup||o.isGroup)return!1;let i=this.all.indexOf(r),s=this.all.indexOf(o);if(i<0||s<0)return!1;if(s>i){let l=s;for(;l+1<this.all.length&&this.all[l+1].isDetail;)l++;s=l}if(i===s)return!1;this.all.splice(i,1);let a=this.all.indexOf(o);return this.all.splice(s>i?a+1:a,0,r),this.refreshPipeline(),this.core.requestUpdate({data:!0}),!0}getAllNodes(){return this.all}getRootNodes(){return this.roots}getDisplayedRows(){return this.displayed}getDisplayedRowCount(){return this.isBlockDatasource?this.resolveBlockRowCount():this.displayed.length}getDisplayedRow(e){return this.isBlockDatasource?e<0||e>=this.resolveBlockRowCount()?void 0:this.blockNodes.get(e)??this.blockPlaceholder(e):this.displayed[e]}getNodeById(e){return this.nodesById.get(e)}forEachNode(e){this.all.forEach(e)}forEachNodeAfterFilterAndSort(e){let t=0;for(let r of this.pipelineRows)r.isDetail||r.isGroup||e(r,t++)}};var We=class{constructor(e){this.core=e;this.selectedIds=new Set;this.anchorId=null;this.indeterminateIds=new Set}isSelected(e){return this.selectedIds.has(e)}isIndeterminate(e){return this.indeterminateIds.has(e)}isSelectable(e){if(e.loading)return!1;let t=this.findSelectableColumn(e),r=t?.colDef.selectable;if(!t||!r)return!0;try{return r({api:this.core.getApi(),colDef:t.colDef,column:t,node:e,data:e.data,value:this.core.getCellValue(e,t),rowIndex:e.rowIndex})}catch(o){return this.core.reportError(o,"selectable",{rowId:e.id,colId:t?.id}),!1}}findSelectableColumn(e){if(!(e.isGroup||e.isDetail))return this.core.columnModel.getOrderedVisible().find(t=>t.hasCheckbox&&t.colDef.selectable!=null)}getSelectedNodes(){return this.core.rowModel.getAllNodes().filter(e=>this.selectedIds.has(e.id))}getSelectedRows(){return this.getSelectedNodes().filter(e=>e.data!=null).map(e=>e.data)}getSelectedIds(){return[...this.selectedIds]}restoreSelection(e){let t=new Set(e),r=this.core.rowModel.getAllNodes().filter(o=>t.has(o.id)&&!o.isDetail&&!o.isGroup).map(o=>({node:o,selected:!0}));this.applySelection(r,!0)}onRowsRebuilt(e){if(!e)this.selectedIds.clear(),this.anchorId=null;else{let t=new Set(this.core.rowModel.getAllNodes().map(r=>r.id));for(let r of[...this.selectedIds])t.has(r)||this.selectedIds.delete(r);this.anchorId!=null&&!t.has(this.anchorId)&&(this.anchorId=null)}for(let t of this.core.rowModel.getAllNodes())t.selected=this.selectedIds.has(t.id);this.recomputeTriState()}getGroupSelectionState(e){let t=e.leafNodes??[];if(t.length===0)return{all:!1,some:!1};let r=0,o=0;for(let i of t)this.isSelectable(i)&&(r++,this.selectedIds.has(i.id)&&o++);return r===0?{all:!1,some:!1}:{all:o===r,some:o>0}}setGroupSelected(e,t){let r=(e.leafNodes??[]).filter(o=>this.isSelectable(o));r.length!==0&&this.applySelection(r.map(o=>({node:o,selected:t})))}setNodeSelected(e,t,r=!1){this.applySelection([{node:e,selected:t,clearOthers:r}])}selectNodeById(e,t=!0,r=!0){let o=this.core.rowModel.getNodeById(e);o&&this.setNodeSelected(o,t,r)}onRowClick(e,t,r){let o=this.core.options.rowSelection;if(o==="none"||!this.isSelectable(e))return;if(r){let s=o==="single";this.applySelection([{node:e,selected:s?!0:!e.selected,clearOthers:s}]),this.anchorId=e.id;return}let i=o==="multiple";if(i&&(t.ctrlKey||t.metaKey)){this.applySelection([{node:e,selected:!e.selected}]),this.anchorId=e.id;return}if(i&&t.shiftKey&&this.anchorId!=null){let s=this.core.rowModel.getNodeById(this.anchorId);if(s&&s.rowIndex>=0&&e.rowIndex>=0){let a=Math.min(s.rowIndex,e.rowIndex),l=Math.max(s.rowIndex,e.rowIndex),d=[];for(let c=a;c<=l;c++){let u=this.core.rowModel.getDisplayedRow(c);u&&!u.isDetail&&!u.isGroup&&this.isSelectable(u)&&d.push({node:u,selected:!0})}this.applySelection(d);return}}this.applySelection([{node:e,selected:!0,clearOthers:!0}]),this.anchorId=e.id}selectAll(e=!0){let t=this.core.options.rowSelection;if(t==="none")return;let o=(e?this.core.rowModel.getDisplayedRows():this.core.rowModel.getAllNodes()).filter(i=>!i.isDetail&&!i.isGroup&&this.isSelectable(i));if(o.length!==0){if(t==="single"){this.applySelection([{node:o[0],selected:!0,clearOthers:!0}]);return}this.applySelection(o.map(i=>({node:i,selected:!0})))}}deselectAll(){this.applySelection([],!0)}isSelectAllActive(){let t=this.core.rowModel.getDisplayedRows().filter(r=>!r.isDetail&&!r.isGroup).filter(r=>this.isSelectable(r));if(t.length===0)return!1;if(this.core.rowModel.isInfinite){let r=this.core.rowModel.getDisplayTotalCount();if(t.length<r)return!1}return t.every(r=>this.selectedIds.has(r.id))}isSelectAllIndeterminate(){let t=this.core.rowModel.getDisplayedRows().filter(o=>!o.isDetail&&!o.isGroup).filter(o=>this.isSelectable(o)),r=t.reduce((o,i)=>o+(this.selectedIds.has(i.id)?1:0),0);if(r===0)return!1;if(this.core.rowModel.isInfinite){let o=this.core.rowModel.getDisplayTotalCount();if(t.length<o)return!0}return r>0&&r<t.length}applySelectionPublic(e,t=!1){this.applySelection(e,t)}applySelection(e,t=!1){let r=new Set(this.selectedIds),o=t||e.some(u=>u.clearOthers),i=this.core.rowModel.isTree&&this.core.options.autoCheckedChildren;if(o){let u=t?new Set:new Set(e.filter(h=>h.selected).flatMap(h=>i?this.subtreeIds(h.node):[h.node.id]));this.selectedIds=u}for(let u of e){if(!this.isSelectable(u.node))continue;let h=i?this.subtreeIds(u.node):[u.node.id];for(let p of h)u.selected?this.selectedIds.add(p):this.selectedIds.delete(p)}let s=new Set;for(let u of new Set([...r,...this.selectedIds]))r.has(u)!==this.selectedIds.has(u)&&s.add(u);let a=new Map;for(let u of this.core.rowModel.getAllNodes())a.set(u.id,u.selected);let l=new Set(this.indeterminateIds);this.recomputeTriState();let d=[],c=new Set([...s,...l,...this.indeterminateIds]);for(let u of this.core.rowModel.getAllNodes()){let h=this.selectedIds.has(u.id);u.selected=h,(c.has(u.id)||a.get(u.id)!==h)&&u.rowIndex>=0&&d.push(u.rowIndex)}s.size>0&&(this.core.bodyRenderer.refreshRows(d),this.core.headerRenderer.refreshSelectAllCheckbox(),this.core.emit("selectionChanged",{selectedNodes:this.getSelectedNodes(),selectedRows:this.getSelectedRows()}))}subtreeIds(e){let t=[e.id],r=o=>{for(let i of this.core.rowModel.getChildrenIds(o))t.push(i),r(i)};return r(e.id),t}recomputeTriState(){if(this.indeterminateIds.clear(),!this.core.rowModel.isTree)return;let e=t=>{let r=this.core.rowModel.getChildrenIds(t);if(r.length===0)return{all:this.selectedIds.has(t),some:this.selectedIds.has(t)};let o=!0,i=!1;for(let s of r){let a=e(s);a.all?i=!0:(a.some&&(i=!0),o=!1)}return i&&!o&&this.indeterminateIds.add(t),o?this.selectedIds.add(t):this.selectedIds.delete(t),{all:o,some:i}};for(let t of this.core.rowModel.getRootNodes())e(t.id);for(let t of this.core.rowModel.getAllNodes())t.selected=this.selectedIds.has(t.id)}};var Ke=class{constructor(e){this.core=e;this.active=null;this.rafId=0;this.pendingWidth=0;this.onMove=e=>{let t=this.matchActivePointer(e);t&&(this.pendingWidth=this.widthFromPointer(t,e.clientX),t.didResize||(t.didResize=Math.abs(this.pendingWidth-t.startWidth)>=.5),!this.rafId&&(this.rafId=requestAnimationFrame(()=>{this.rafId=0,this.applyPendingWidth()})))};this.onUp=e=>{let t=this.matchActivePointer(e);t&&(this.pendingWidth=this.widthFromPointer(t,e.clientX),t.didResize||(t.didResize=Math.abs(this.pendingWidth-t.startWidth)>=.5),this.finishResize(t))};this.onCancel=e=>{this.matchActivePointer(e)&&this.cancelResize()};this.onLostPointerCapture=()=>{this.cancelResize()}}startResize(e,t){if(!this.core.options.enableColumnResize||!t.resizable||e.isPrimary===!1)return;this.cancelResize();let r=e.currentTarget,o=t.currentWidth;this.pendingWidth=o,this.active={column:t,didResize:!1,handle:r,pointerId:e.pointerId,startFlex:t.flex,startManualWidth:t.manualWidth,startWidth:o,startX:e.clientX},window.addEventListener("pointermove",this.onMove),window.addEventListener("pointerup",this.onUp,!0),window.addEventListener("pointercancel",this.onCancel,!0),r.addEventListener("lostpointercapture",this.onLostPointerCapture);try{r.setPointerCapture?.(e.pointerId)}catch{}this.core.skeleton.root.classList.add("mach-root--resizing")}cancelResize(e=!0){let t=this.active;t&&(this.active=null,this.clearFrame(),this.removeListeners(t),e&&(t.column.manualWidth=t.startManualWidth,t.column.flex=t.startFlex,this.core.relayoutColumns()),this.core.skeleton.root.classList.remove("mach-root--resizing"))}finishResize(e){this.active=null,this.clearFrame(),e.didResize&&(Math.abs(this.pendingWidth-e.startWidth)<.5?(e.column.manualWidth=e.startManualWidth,e.column.flex=e.startFlex):this.core.columnModel.setColumnWidth(e.column,this.pendingWidth),this.core.relayoutColumns()),this.removeListeners(e);try{e.handle.releasePointerCapture?.(e.pointerId)}catch{}this.core.skeleton.root.classList.remove("mach-root--resizing"),e.didResize&&this.core.commitColumnWidths([e.column])}applyPendingWidth(){let e=this.active;!e||!this.core.columnModel.setColumnWidth(e.column,this.pendingWidth)||(this.core.relayoutColumns(),this.core.emitColumnResize(e.column,!1))}widthFromPointer(e,t){let r=Number.isFinite(t)?t:e.startX;return e.startWidth+r-e.startX}matchActivePointer(e){let t=this.active;return t&&e.pointerId===t.pointerId?t:null}clearFrame(){this.rafId&&cancelAnimationFrame(this.rafId),this.rafId=0}removeListeners(e){window.removeEventListener("pointermove",this.onMove),window.removeEventListener("pointerup",this.onUp,!0),window.removeEventListener("pointercancel",this.onCancel,!0),e.handle.removeEventListener("lostpointercapture",this.onLostPointerCapture)}destroy(){this.cancelResize(!1),this.clearFrame(),this.core.skeleton.root?.classList.remove("mach-root--resizing")}};function g(n,e,t){let r=document.createElement(n);if(e&&(r.className=e),t)for(let o of Object.keys(t))r.setAttribute(o,t[o]);return r}function M(n,e,t){return n<e?e:n>t?t:n}var Hr='<svg viewBox="0 0 16 16" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M2 3.5h12L9.5 8v4.5L6.5 14V8L2 3.5z"/></svg>',Br='<svg viewBox="0 0 16 16" width="12" height="12" fill="currentColor"><path d="M8 3l4 5H4l4-5z"/></svg>',Vr='<svg viewBox="0 0 16 16" width="12" height="12" fill="currentColor"><path d="M8 13l4-5H4l4 5z"/></svg>';var zr=6,qe=class{constructor(e){this.core=e;this.pending=null;this.dragging=null;this.suppressClick=!1;this.onMove=e=>{if(this.dragging){this.updateIndicator(e);return}let t=this.pending;t&&(Math.abs(e.clientX-t.startX)<zr&&Math.abs(e.clientY-t.startY)<zr||this.startDrag(e))};this.onUp=()=>{let e=this.dragging;this.pending=null,this.cleanup(),e&&(this.dragging=null,e.cellEl.classList.remove("mach-header-cell--dragging"),e.indicator.remove(),this.core.skeleton.root.classList.remove("mach-root--dragging"),e.targetIndex>=0&&this.core.moveColumn(e.column.id,e.targetIndex))}}onPointerDown(e,t){e.button===0&&t.movable&&(this.pending={column:t,startX:e.clientX,startY:e.clientY},window.addEventListener("pointermove",this.onMove),window.addEventListener("pointerup",this.onUp),window.addEventListener("pointercancel",this.onUp))}didDrag(){let e=this.suppressClick;return this.suppressClick=!1,e}startDrag(e){let t=this.pending;if(!t)return;let r=this.findHeaderCell(t.column);if(!r||!r.parentElement){this.cleanup();return}this.suppressClick=!0;let o=g("div","mach-drop-indicator");r.parentElement.appendChild(o),r.classList.add("mach-header-cell--dragging"),this.core.skeleton.root.classList.add("mach-root--dragging"),this.dragging={column:t.column,cellEl:r,indicator:o,targetIndex:-1},this.updateIndicator(e)}findHeaderCell(e){let t=this.core.bodyRenderer.paneForColumn(e);return this.core.skeleton.headerRowContainers[t].querySelector(`.mach-header-cell[data-col-id="${qn(e.id)}"]`)}updateIndicator(e){let t=this.dragging;if(!t)return;let r=this.core.bodyRenderer.paneForColumn(t.column),i=this.core.skeleton.headerRowContainers[r].getBoundingClientRect(),s=this.core.columnModel.getPaneColumns(r),a=s.indexOf(t.column),l=e.clientX-i.left,d=-1,c=0,u=0;for(let h=0;h<s.length;h++){let p=u+s[h].currentWidth/2;if(l<p){d=h,c=u;break}u+=s[h].currentWidth}d<0&&(d=s.length,c=u),t.targetIndex=d>a?d-1:d,t.indicator.style.left=`${c}px`}cleanup(){window.removeEventListener("pointermove",this.onMove),window.removeEventListener("pointerup",this.onUp),window.removeEventListener("pointercancel",this.onUp)}destroy(){this.cleanup(),this.dragging&&(this.dragging.cellEl.classList.remove("mach-header-cell--dragging"),this.dragging.indicator.remove(),this.core.skeleton.root.classList.remove("mach-root--dragging"),this.dragging=null),this.pending=null}};function qn(n){return typeof CSS<"u"&&typeof CSS.escape=="function"?CSS.escape(n):n.replace(/[^a-zA-Z0-9_-]/g,"\\$&")}function _r(n,e){let t=n==null?"":String(n);return t.includes(e)||t.includes('"')||t.includes(`
2
+ `)||t.includes("\r")?'"'+t.replace(/"/g,'""')+'"':t}function ge(n){return typeof n!="string"||n===""||/^[+-]?(?:\d+(?:\.\d+)?|\.\d+)(?:[eE][+-]?\d+)?$/.test(n)?n:/^[\s\u0000-\u001f]*[=+\-@]/.test(n)?"'"+n:n}function Jt(n,e={}){let t=e.columnSeparator??",",r=e.includeHeader??!0,o=e.protectFormulas??!0,i=[];r&&i.push(n.getHeaderLabels().map(a=>_r(a,t)).join(t));for(let a of n.getRowValues())i.push(a.map(l=>_r(o?ge(l):l,t)).join(t));let s=i.join(`\r
3
+ `);return e.prependBOM?"\uFEFF"+s:s}function $n(n,e){let t=e?ge(n):n,r=t==null?"":String(t);return/["\t\n\r]/.test(r)?'"'+r.replace(/"/g,'""')+'"':r}function ae(n,e=!0){return n.map(t=>t.map(r=>$n(r,e)).join(" ")).join(`
4
+ `)}function $e(n){return je(n," ")}function Ue(n,e=","){return je(n,e)}function je(n,e){let t=[],r=[],o="",i=!1,s=0;for(;s<n.length;){let a=n[s];if(i){if(a==='"'){if(n[s+1]==='"'){o+='"',s+=2;continue}i=!1,s++;continue}o+=a,s++;continue}if(a==='"'&&o===""){i=!0,s++;continue}if(a===e){r.push(o),o="",s++;continue}if(a===`
5
5
  `||a==="\r"){r.push(o),t.push(r),r=[],o="",a==="\r"&&n[s+1]===`
6
- `?s+=2:s++;continue}o+=a,s++}return(o!==""||r.length>0)&&(r.push(o),t.push(r)),t}function Hn(n){let e=null;try{return e=document.createElement("textarea"),e.value=n,e.style.position="fixed",e.style.opacity="0",document.body.appendChild(e),e.focus(),e.select(),document.execCommand("copy")}catch{return!1}finally{e?.remove()}}async function me(n){try{if(typeof navigator<"u"&&navigator.clipboard?.writeText)return await navigator.clipboard.writeText(n),!0}catch{}return Hn(n)}var Bn=new Set(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Enter","F2","Home","End","PageUp","PageDown","Tab"," ","Escape","Delete","Backspace"]),Vn=new Set(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Home","End","PageUp","PageDown"]),Ue=class{constructor(e){this.core=e;this.onCopy=e=>{if(this.core.options.suppressClipboard||this.core.editingService.isEditing())return;let t=this.core.bodyRenderer.getNormalizedRangeOrFocus();if(!t)return;let r=this.core.buildRangeTsv(t),o=e.clipboardData;o&&typeof o.setData=="function"?o.setData("text/plain",r):me(r),e.preventDefault()};this.onCut=e=>{if(this.core.options.suppressClipboard||this.core.editingService.isEditing())return;let t=this.core.bodyRenderer.getNormalizedRangeOrFocus();if(!t)return;let r=this.core.buildRangeTsv(t),o=e.clipboardData;o&&typeof o.setData=="function"?o.setData("text/plain",r):me(r),this.core.clearRangeValues(t),e.preventDefault()};this.onPaste=e=>{if(this.core.options.suppressClipboard||this.core.editingService.isEditing())return;let t=this.core.bodyRenderer.getPasteStart();if(!t)return;let r=e.clipboardData,o=r&&typeof r.getData=="function"?r.getData("text/plain"):null;typeof o!="string"||o===""||(e.preventDefault(),this.core.pasteText(o,t.row,t.colIdx))};this.onKeyDown=e=>{this.core.isDestroyed()||this.core.editingService.isEditing()||this.handleSelectAll(e)||this.handleHistoryShortcut(e)||Bn.has(e.key)&&(this.handleRangeCommand(e)||this.focusFirstCell(e)||this.handleFocusedKey(e))}}init(){this.core.skeleton.root.addEventListener("keydown",this.onKeyDown),this.core.skeleton.root.addEventListener("copy",this.onCopy),this.core.skeleton.root.addEventListener("cut",this.onCut),this.core.skeleton.root.addEventListener("paste",this.onPaste)}destroy(){this.core.skeleton.root.removeEventListener("keydown",this.onKeyDown),this.core.skeleton.root.removeEventListener("copy",this.onCopy),this.core.skeleton.root.removeEventListener("cut",this.onCut),this.core.skeleton.root.removeEventListener("paste",this.onPaste)}nextEditable(e,t,r){let o=this.core.columnModel.getOrderedVisible(),i=o.findIndex(d=>d.id===t);if(i<0)return null;let s=this.core.rowModel.getDisplayedRowCount(),a=i,l=e;for(let d=0;d<(o.length+1)*(s+1);d++){if(a+=r,a>=o.length){if(l>=s-1)return null;a=0,l=this.skipDetailRows(l+1,1)}else if(a<0){if(l<=0)return null;a=o.length-1,l=this.skipDetailRows(l-1,-1)}if(l<0||l>=s)return null;let c=this.core.rowModel.getDisplayedRow(l);if(c&&!c.isDetail&&this.core.editingService.isEditable(c,o[a]))return{rowIndex:l,column:o[a]}}return null}skipDetailRows(e,t){let r=this.core.rowModel.getDisplayedRowCount(),o=0;for(;e>=0&&e<r;){let i=this.core.rowModel.getDisplayedRow(e);if(!i||!i.isDetail)return e;if(e+=t,o++,o>r+2)break}return-1}handleSelectAll(e){return!(e.ctrlKey||e.metaKey)||e.key.toLowerCase()!=="a"?!1:(this.core.options.rowSelection==="multiple"&&(e.preventDefault(),this.core.selectionService.selectAll(!0)),!0)}handleHistoryShortcut(e){if(!e.ctrlKey&&!e.metaKey||e.altKey)return!1;let t=e.key.toLowerCase();return t==="z"?(e.preventDefault(),e.shiftKey?this.core.undoService.redo():this.core.undoService.undo(),!0):t!=="y"?!1:(e.preventDefault(),this.core.undoService.redo(),!0)}handleRangeCommand(e){let t=this.core.bodyRenderer;if(e.key==="Escape")return this.core.options.enableRangeSelection&&t.normalizedRange()&&(e.preventDefault(),t.clearRangeSelection()),!0;if(e.key!=="Delete"&&e.key!=="Backspace")return!1;if(!this.core.options.enableRangeSelection)return!0;let r=t.normalizedRange();return r&&!(r.r1===r.r2&&r.c1===r.c2)&&(e.preventDefault(),this.core.clearRangeValues(r)),!0}focusFirstCell(e){if(this.core.bodyRenderer.focusedCell)return!1;let t=this.core.columnModel.getOrderedVisible();return this.core.rowModel.getDisplayedRowCount()>0&&t.length>0&&(e.preventDefault(),this.core.bodyRenderer.setFocusedCell(0,t[0].id)),!0}handleFocusedKey(e){let t=this.core.bodyRenderer,r=t.focusedCell;if(!r)return;let o=this.core.columnModel.getOrderedVisible(),i=o.findIndex(c=>c.id===r.colId),s=this.core.rowModel.getDisplayedRowCount();if(i<0||s===0)return;let a={row:r.rowIndex,colIdx:i},l=this.resolveKeyPosition(e,a,o,s);if(!l)return;e.preventDefault();let d=l.row!==a.row||l.colIdx!==a.colIdx;if(e.shiftKey&&this.core.options.enableRangeSelection&&d){t.moveRangeEnd(l.row,l.colIdx);return}d&&t.setFocusedCell(l.row,o[l.colIdx].id)}resolveKeyPosition(e,t,r,o){return Vn.has(e.key)?this.movePosition(e,t,r.length,o):e.key==="Enter"||e.key==="F2"?this.activateEditor(e,t,r,o):e.key===" "?(this.toggleFocusedRow(t.row),t):e.key==="Tab"?this.moveToEditable(e,t,r):null}movePosition(e,t,r,o){let{row:i,colIdx:s}=t;switch(e.key){case"ArrowUp":i=this.validSkippedRow(i,this.skipDetailRows(i-1,-1),o);break;case"ArrowDown":i=this.validSkippedRow(i,this.skipDetailRows(i+1,1),o);break;case"ArrowLeft":s=Math.max(0,s-1);break;case"ArrowRight":s=Math.min(r-1,s+1);break;case"Home":s=0,e.ctrlKey&&(i=0);break;case"End":s=r-1,e.ctrlKey&&(i=Math.max(0,this.skipDetailRows(o-1,-1)));break;case"PageUp":case"PageDown":i=this.movePage(e.key,i,o);break}return{row:i,colIdx:s}}validSkippedRow(e,t,r){return t>=0&&t<r?t:e}movePage(e,t,r){let o=this.core.skeleton.bodyViewports.center,i=Math.max(1,Math.floor(o.clientHeight/this.core.options.rowHeight)),s=e==="PageUp"?-1:1,a=Math.max(0,Math.min(r-1,t+i*s));return this.validSkippedRow(t,this.skipDetailRows(a,s),r)}activateEditor(e,t,r,o){let i=this.core.rowModel.getDisplayedRow(t.row),s=r[t.colIdx];if(i&&!i.isDetail&&s&&this.core.editingService.isEditable(i,s))return this.core.editingService.start(t.row,s,e.key==="F2"?e.key:null),t;let a=this.skipDetailRows(t.row+1,1);return{...t,row:this.validSkippedRow(t.row,a,o)}}toggleFocusedRow(e){let t=this.core.rowModel.getDisplayedRow(e);if(!(!t||t.isDetail)){if(t.isGroup){this.core.rowModel.toggleGroup(t.id);return}this.core.options.rowSelection!=="none"&&this.core.selectionService.setNodeSelected(t,!t.selected,this.core.options.rowSelection==="single")}}moveToEditable(e,t,r){let o=this.nextEditable(t.row,r[t.colIdx].id,e.shiftKey?-1:1);return o?(this.core.bodyRenderer.setFocusedCell(o.rowIndex,o.column.id),this.core.editingService.start(o.rowIndex,o.column),t):null}};function Yt(n,e){let t=document.createElement("input");return t.type=n,t.className="mach-editor-input",e!=null&&e!==""&&(t.value=n==="date"?String(e).slice(0,10):String(e)),t}function zn(n,e){return e&&e.length>0?"select":typeof n=="number"?"number":n instanceof Date||typeof n=="string"&&/^\d{4}-\d{2}-\d{2}/.test(n)?"date":"text"}function Xt(n,e,t){let r=n.colDef,o=typeof r.cellEditor=="string"?r.cellEditor:zn(e,r.cellEditorParams?.values);if(o==="number"){let s=Yt("number",e);return{el:s,getValue:()=>s.value===""?null:Number(s.value),focus:()=>{s.focus(),s.select()}}}if(o==="date"){let s=Yt("date",e),l=(e==null?"":String(e)).match(/T(\d{2}:\d{2})/);return{el:s,getValue:()=>s.value===""?null:l?`${s.value}T${l[1]}`:s.value,focus:()=>s.focus()}}if(o==="select"){let s=r.cellEditorParams?.values??[],a=document.createElement("select");a.className="mach-editor-select";for(let l of s){let d=document.createElement("option");d.value=String(l),d.textContent=String(l),String(e)===String(l)&&(d.selected=!0),a.appendChild(d)}return{el:a,getValue:()=>{let l=s.find(d=>String(d)===a.value);return l!==void 0?l:a.value},focus:()=>a.focus()}}let i=Yt("text",e);return t&&t.length===1&&(i.value=t),{el:i,getValue:()=>i.value,focus:()=>{i.focus(),i.select()}}}var Jt=new WeakMap,qe=new WeakMap,je=new WeakMap;function ge(n){let e=Jt.get(n);return e||(e={},Jt.set(n,e)),e}function Qt(n){return Jt.get(n)}function zr(n,e){e?qe.set(n,e):qe.delete(n)}function _r(n){let e=qe.get(n);return qe.delete(n),e}function Wr(n,e){e?je.set(n,e):je.delete(n)}function Zt(n){let e=je.get(n);return je.delete(n),e}function Ye(n){if(n==null)return"";if(n instanceof Date)return n.toLocaleDateString();if(typeof n=="object")try{return JSON.stringify(n)}catch{return String(n)}return String(n)}function E(n,e){let t=Qt(e);if(!t)return;t.flashTimer&&clearTimeout(t.flashTimer),t.flashTimer=void 0;let r=t.destroy;if(t.destroy=void 0,t.refresh=void 0,t.rendererDefinition=void 0,t.rendererRowId=void 0,t.rendererColumnId=void 0,!!r)try{r()}catch(o){n.reportError(o,"cellRenderer.destroy",{colId:e.dataset.colId})}}function Kr(n,e,t,r,o,i){let s=n.options.tooltipComponent?"":i,a=r.colDef.tooltipValueGetter;if(a)try{s=a({api:n.getApi(),colDef:r.colDef,column:r,node:t,data:t.data,value:o})??i}catch(l){n.reportError(l,"tooltipValueGetter",{colId:r.id,rowId:t.id})}s?e.setAttribute("title",s):e.removeAttribute("title")}function _n(n,e,t,r,o,i){let s=Qt(e);if(!s?.refresh||s.rendererDefinition!==o||s.rendererRowId!==t.id||s.rendererColumnId!==r.id)return!1;try{return e.querySelector(":scope > .mach-cell-edit-trigger")?.remove(),s.refresh(i)!==!1}catch(a){return n.reportError(a,"cellRenderer.refresh",{colId:r.id,rowId:t.id}),!1}}function N(n,e,t){let r=n.getCellValue(e,t),o=t.colDef.valueFormatter;if(o)try{let i=o({api:n.getApi(),colDef:t.colDef,column:t,node:e,data:e.data,value:r});return i==null?"":String(i)}catch(i){n.reportError(i,"valueFormatter",{colId:t.id,rowId:e.id})}return Ye(r)}function ye(n,e,t,r){let o=t.colDef.valueFormatter;if(o)try{let i=o({api:n.getApi(),colDef:t.colDef,column:t,node:e,data:e.data,value:r});return i==null?"":String(i)}catch(i){n.reportError(i,"valueFormatter",{colId:t.id,rowId:e.id})}return Ye(r)}function Xe(n,e,t,r){let o=r.colDef.cellStyle,i=ge(e),s=i.styleKeys;if(s)for(let d of s)Reflect.set(e.style,d,"");if(!o){i.styleKeys=void 0;return}let a;if(typeof o=="function"){let d=n.getCellValue(t,r);try{a=o({api:n.getApi(),colDef:r.colDef,column:r,node:t,data:t.data,value:d,rowIndex:t.rowIndex})}catch(c){n.reportError(c,"cellStyle",{colId:r.id,rowId:t.id}),a=null}}else a=o;if(!a){i.styleKeys=void 0;return}let l=Object.keys(a);for(let d of l)Reflect.set(e.style,d,Reflect.get(a,d));i.styleKeys=l}function Je(n,e,t,r){let o=n.getCellValue(t,r),i=N(n,t,r),s=r.colDef.cellRenderer,a=typeof s=="string"?n.resolveCellRenderer(s):s;if(a){let l={api:n.getApi(),colDef:r.colDef,column:r,node:t,data:t.data,value:o,formatted:i,rowIndex:t.rowIndex,rendererParams:r.colDef.cellRendererParams};if(_n(n,e,t,r,a,l)){Kr(n,e,t,r,o,i);return}E(n,e);let d;try{d=a(l)}catch(c){n.reportError(c,"cellRenderer",{colId:r.id,rowId:t.id}),e.textContent=i;return}if(typeof d=="string")e.textContent=d;else if(d instanceof HTMLElement)e.replaceChildren(d);else if(d&&typeof d=="object"&&d.el instanceof HTMLElement){let c=d;e.replaceChildren(c.el);let u=ge(e);u.destroy=c.destroy,c.refresh&&(u.refresh=h=>c.refresh(h),u.rendererDefinition=a,u.rendererRowId=t.id,u.rendererColumnId=r.id)}else e.textContent=""}else E(n,e),e.textContent=i;Kr(n,e,t,r,o,i)}function ve(n,e,t,r){let o=n.getCellValue(t,r),i=["mach-cell"],s=r.colDef.align;s==="center"?i.push("mach-cell--center"):s==="right"?i.push("mach-cell--right"):(oe(r.colDef,"rightAligned")||oe(r.colDef,"numericColumn")||typeof o=="number"&&o!=null)&&i.push("mach-cell--num");let a=r.colDef.cellClass;if(a)if(typeof a=="function"){let u={api:n.getApi(),colDef:r.colDef,column:r,node:t,data:t.data,value:o,rowIndex:t.rowIndex};try{let h=a(u);typeof h=="string"?i.push(h):Array.isArray(h)&&i.push(...h)}catch(h){n.reportError(h,"cellClass",{colId:r.id,rowId:t.id})}}else typeof a=="string"?i.push(a):Array.isArray(a)&&i.push(...a);let l=e.classList.contains("mach-cell--focus"),d=e.classList.contains("mach-cell--editing");l&&i.push("mach-cell--focus"),d&&i.push("mach-cell--editing"),r.colDef.wrapText&&i.push("mach-cell--wrap");let c=i.join(" ");e.className!==c&&(e.className=c)}var Wn='<path d="M3 8.5 6.4 12 13.5 4"/>',Kn='<path d="m4 4 8 8m0-8-8 8"/>';function $r(n,e){let t=document.createElement("button");return t.type="button",t.className=`mach-edit-control mach-edit-control--${n}`,t.setAttribute("aria-label",e),t.title=e,t.innerHTML=`<svg viewBox="0 0 16 16" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round">${n==="confirm"?Wn:Kn}</svg>`,t.addEventListener("mousedown",r=>{r.preventDefault(),r.stopPropagation()}),t}var Qe=class{constructor(e){this.core=e;this.cellEditing=null;this.rowEditing=null;this.stopPromise=null;this.stopToken=0;this.onCellEditorKeyDown=e=>{if(this.cellEditing){if(e.key==="Enter")e.preventDefault(),e.stopPropagation(),this.stopAsync(!1);else if(e.key==="Escape")e.preventDefault(),e.stopPropagation(),this.stopAsync(!0);else if(e.key==="Tab"){e.preventDefault(),e.stopPropagation();let t=this.cellEditing,r=this.core.keyboardService.nextEditable(t.rowIndex,t.column.id,e.shiftKey?-1:1);this.stopAsync(!1).then(o=>{o&&r&&(this.core.bodyRenderer.scrollToIndex(r.rowIndex,"nearest"),this.core.bodyRenderer.setFocusedCell(r.rowIndex,r.column.id),this.start(r.rowIndex,r.column))})}}};this.onCellEditorBlur=()=>{window.setTimeout(()=>{this.cellEditing&&this.stopAsync(!1)},0)}}isEditing(e,t){return this.cellEditing?e==null&&t==null?!0:this.cellEditing.rowIndex===e&&this.cellEditing.column.id===t:this.rowEditing?e==null&&t==null?!0:this.currentRowIndex(this.rowEditing)!==e?!1:t==null||this.rowEditing.drafts.has(t):!1}isCellEditing(){return this.cellEditing!=null}isRowEditing(e){return this.rowEditing?e==null||this.currentRowIndex(this.rowEditing)===e:!1}isEditable(e,t){if(e.isDetail||e.isGroup||e.data==null)return!1;let r=t.colDef.editable;if(!r)return!1;if(typeof r=="function")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,"editable",{colId:t.id,rowId:e.id}),!1}return!0}start(e,t,r){if(this.core.options.editType==="fullRow")return this.startRow(e,t.id);if(this.cellEditing||this.rowEditing)return!1;let o=this.core.rowModel.getDisplayedRow(e);if(!o||o.data==null||!this.isEditable(o,t))return!1;let i=this.core.bodyRenderer.getCellElement(e,t.id);if(!i)return!1;let s=this.core.getCellValue(o,t),a=this.createCellEditor(o,t,e,s,r);if(!a)return!1;E(this.core,i);let l=document.createElement("div");l.className="mach-cell-editor-shell";let d=document.createElement("div");d.className="mach-cell-editor-controls";let c=$r("confirm","Confirm edit"),u=$r("cancel","Cancel edit");d.append(c,u),l.append(a.el,d),i.replaceChildren(l),i.classList.add("mach-cell--editing"),i.removeAttribute("title");let h=this.onCellEditorKeyDown;return a.el.addEventListener("keydown",h),a.el.addEventListener("focusout",this.onCellEditorBlur),c.addEventListener("click",p=>{p.stopPropagation(),this.stopAsync(!1)}),u.addEventListener("click",p=>{p.stopPropagation(),this.stopAsync(!0)}),this.cellEditing={node:o,column:t,editor:a,rowIndex:e,oldValue:s,cell:i,shell:l,keydown:h,confirmButton:c,cancelButton:u},this.focusEditor(a,t,o),this.core.emit("cellEditingStarted",{rowIndex:e,colId:t.id,rowNode:o}),!0}startRow(e,t){if(this.cellEditing||this.rowEditing)return!1;let r=this.core.rowModel.getDisplayedRow(e);if(!r||r.data==null||r.isDetail||r.isGroup)return!1;let o=new Map;for(let l of this.core.columnModel.getOrderedVisible()){if(!this.isEditable(r,l))continue;let d=this.core.getCellValue(r,l);o.set(l.id,{column:l,oldValue:d,value:d,mounted:null})}if(o.size===0)return!1;let i={node:r,rowIndex:e,drafts:o,validating:!1};if(this.rowEditing=i,this.core.bodyRenderer.refreshRows([e]),o.size===0)return this.rowEditing=null,this.core.bodyRenderer.refreshRows([e]),!1;let s=o.values().next().value,a=(t?o.get(t):void 0)??s;return a?.mounted&&this.focusEditor(a.mounted.editor,a.column,r),this.core.emit("rowEditingStarted",{rowIndex:e,rowNode:r,data:r.data}),!0}renderEditor(e,t,r,o){if(this.cellEditing)return this.cellEditing.node===t&&this.cellEditing.column.id===r.id;let i=this.rowEditing;if(!i||i.node!==t)return!1;let s=i.drafts.get(r.id);return s?s.mounted?.cell!==o&&(s.mounted&&this.unmountRowDraft(s),!this.mountRowDraft(e,i,s,o))?(i.drafts.delete(r.id),!1):!0:!1}releaseCell(e,t,r){let o=this.rowEditing;if(o&&this.currentRowIndex(o)===e){let i=o.drafts.get(t);i?.mounted?.cell===r&&this.unmountRowDraft(i);return}if(this.cellEditing?.cell===r){let i=this.cellEditing;this.stopAsync(!1),this.cellEditing===i&&this.stopAsync(!0)}}stop(e=!1){this.stopAsync(e)}stopAsync(e=!1){if(this.rowEditing)return this.stopRowAsync(e);let t=this.cellEditing;if(!t)return Promise.resolve(!1);if(e)return this.stopToken++,this.stopPromise=null,Promise.resolve(this.finishCellStop(t,!0,t.oldValue));if(this.stopPromise)return this.stopPromise;let r;try{r=t.editor.getValue()}catch(i){return this.core.reportError(i,"cellEditor.getValue",{colId:t.column.id,rowId:t.node.id}),Promise.resolve(this.finishCellStop(t,!0,t.oldValue))}try{if(t.editor.isCancelAfterEnd?.(r))return Promise.resolve(this.finishCellStop(t,!0,t.oldValue))}catch(i){return this.core.reportError(i,"cellEditor.isCancelAfterEnd",{colId:t.column.id,rowId:t.node.id}),Promise.resolve(this.finishCellStop(t,!0,t.oldValue))}let o=this.validateValue(t.node,t.column,t.oldValue,r);if(o&&typeof o.then=="function"){let i=++this.stopToken;this.setCellBusy(t,!0);let s=Promise.resolve(o).then(a=>i!==this.stopToken||this.cellEditing!==t?!1:typeof a=="string"?(this.showError(t.editor,a),!1):this.finishCellStop(t,!1,r)).catch(a=>(i!==this.stopToken||this.cellEditing!==t||(this.core.reportError(a,"validate",{colId:t.column.id,rowId:t.node.id}),this.showError(t.editor,"Validation failed")),!1)).finally(()=>{this.stopPromise===s&&(this.stopPromise=null)});return this.stopPromise=s,s}return typeof o=="string"?(this.showError(t.editor,o),Promise.resolve(!1)):Promise.resolve(this.finishCellStop(t,!1,r))}stopRowAsync(e=!1){let t=this.rowEditing;if(!t)return Promise.resolve(!1);if(e)return this.stopToken++,this.stopPromise=null,Promise.resolve(this.finishRowStop(t,!0));if(this.stopPromise)return this.stopPromise;for(let s of t.drafts.values())this.captureRowDraft(s);let r=[...t.drafts.values()].filter(s=>!Object.is(s.oldValue,s.value));if(r.length===0)return Promise.resolve(this.finishRowStop(t,!1));let o=++this.stopToken;for(let s of r)s.error=void 0;t.validating=!0,this.setRowBusy(t,!0);let i=Promise.all(r.map(async s=>{try{let a=await this.validateValue(t.node,s.column,s.oldValue,s.value);return{draft:s,message:typeof a=="string"?a:null}}catch(a){return this.core.reportError(a,"validate",{colId:s.column.id,rowId:t.node.id}),{draft:s,message:"Validation failed"}}})).then(async s=>{if(o!==this.stopToken||this.rowEditing!==t)return!1;let a=s.filter(d=>d.message!=null);if(a.length>0)return this.showRowErrors(t,a.map(d=>({draft:d.draft,message:d.message}))),!1;let l=await this.validateRowDraft(t,r);return o!==this.stopToken||this.rowEditing!==t?!1:l.length>0?(this.showRowErrors(t,l),!1):this.finishRowStop(t,!1)}).finally(()=>{this.stopPromise===i&&(this.stopPromise=null)});return this.stopPromise=i,i}finishCellStop(e,t,r){if(this.cellEditing!==e)return!1;this.cellEditing=null;let o=!t&&this.applyValue(e.node,e.column,e.oldValue,r);return this.destroyMountedEditor(e,!0),this.core.emit("cellEditingStopped",{rowIndex:e.rowIndex,colId:e.column.id,rowNode:e.node,oldValue:e.oldValue,newValue:o?r:e.oldValue}),e.node.rowIndex>=0&&this.core.bodyRenderer.refreshRows([e.node.rowIndex]),this.core.summaryRenderer.refresh(),this.core.statusBarService.refresh(),!0}finishRowStop(e,t){if(this.rowEditing!==e)return!1;let r=t?[]:this.commitRowDrafts(e);if(r==null)return!1;for(let i of e.drafts.values())t||this.captureRowDraft(i),i.mounted&&this.destroyMountedEditor(i.mounted,!0),i.mounted=null;this.rowEditing=null;let o=this.currentRowIndex(e);return this.core.emit("rowEditingStopped",{rowIndex:o,rowNode:e.node,data:e.node.data,cancelled:t,changes:r}),o>=0&&this.core.bodyRenderer.refreshRows([o]),this.core.summaryRenderer.refresh(),this.core.statusBarService.refresh(),!0}commitRowDrafts(e){let t=[...e.drafts.values()].filter(o=>!Object.is(o.oldValue,o.value));if(t.length===0)return[];let r=[];this.core.undoService.beginBatch();for(let o of t){if(!this.core.writeValue(e.node,o.column,o.value,o.oldValue)){let i=!1;for(let s of[...r].reverse())this.core.writeValue(e.node,s.column,s.oldValue,s.value)||(i=!0);return this.core.undoService.cancelBatch(),i&&this.core.reportError(new Error("A valueSetter rejected full-row rollback"),"rowEditRollback",{rowId:e.node.id,colId:o.column.id}),this.showRowErrors(e,[{draft:o,message:"Value was rejected by the column setter"}]),null}r.push(o)}for(let o of r)this.core.notifyCellValueChanged(e.node,o.column,o.oldValue,o.value);return this.core.undoService.endBatch(),r.map(o=>({colId:o.column.id,oldValue:o.oldValue,newValue:o.value}))}mountRowDraft(e,t,r,o){let i=this.createCellEditor(t.node,r.column,e,r.value,null);if(!i)return!1;E(this.core,o);let s=document.createElement("div");s.className="mach-row-editor-shell",s.appendChild(i.el),o.replaceChildren(s),o.classList.add("mach-cell--editing","mach-cell--row-editing"),o.removeAttribute("title");let a=d=>this.onRowEditorKeyDown(d,t,r),l=()=>{try{r.value=i.getValue(),r.error=void 0}catch{}};return i.el.addEventListener("keydown",a),i.el.addEventListener("input",l),r.mounted={editor:i,cell:o,shell:s,keydown:a,input:l},r.error&&this.showError(i,r.error),t.validating&&(i.el.classList.add("mach-editor-validating"),i.el.setAttribute("aria-busy","true"),i.el.inert=!0),!0}unmountRowDraft(e){e.mounted&&(this.captureRowDraft(e),this.destroyMountedEditor(e.mounted,!0),e.mounted=null)}captureRowDraft(e){if(e.mounted)try{let t=e.mounted.editor.getValue();t!==void 0&&(e.value=t)}catch(t){this.core.reportError(t,"cellEditor.getValue",{colId:e.column.id,rowId:this.rowEditing?.node.id})}}createCellEditor(e,t,r,o,i){let s=t.colDef,a;try{let l={api:this.core.getApi(),colDef:s,column:t,node:e,data:e.data,value:o,rowIndex:r,keyPress:i};typeof s.cellEditor=="function"?a=s.cellEditor(l):typeof s.cellEditor=="string"&&!["text","number","date","select"].includes(s.cellEditor)?a=this.core.resolveCellEditor(s.cellEditor)?.(l)??Xt(t,o,i):a=Xt(t,o,i)}catch(l){return this.core.reportError(l,"cellEditor",{colId:t.id,rowId:e.id}),null}if(!a||!(a.el instanceof HTMLElement))return this.core.reportError(new Error("cellEditor must return an editor with an HTMLElement el"),"cellEditor",{colId:t.id,rowId:e.id}),null;try{if(a.isCancelBeforeStart?.())return a.destroy?.(),null}catch(l){this.core.reportError(l,"cellEditor.isCancelBeforeStart",{colId:t.id,rowId:e.id});try{a.destroy?.()}catch{}return null}return a}validateValue(e,t,r,o){let i=t.colDef.validate;if(!i)return!0;try{return i(o,{oldValue:r,newValue:o,data:e.data,node:e,colDef:t.colDef,column:t,api:this.core.getApi()})}catch(s){return this.core.reportError(s,"validate",{colId:t.id,rowId:e.id}),"Validation failed"}}async validateRowDraft(e,t){let r=this.core.options.rowEditValidator;if(!r)return[];let o=Object.create(null);for(let[l,d]of e.drafts)o[l]=d.value;let i=t.map(l=>({colId:l.column.id,oldValue:l.oldValue,newValue:l.value})),s;try{s=await r({data:e.node.data,node:e.node,values:o,changes:i,api:this.core.getApi()})}catch(l){return this.core.reportError(l,"rowEditValidator",{rowId:e.node.id}),[{draft:t[0],message:"Row validation failed"}]}if(typeof s=="string")return[{draft:t[0],message:s}];if(!s||s===!0||typeof s!="object")return[];let a=[];for(let[l,d]of Object.entries(s)){let c=e.drafts.get(l);c&&typeof d=="string"&&d&&a.push({draft:c,message:d})}if(a.length===0){let l=Object.values(s).find(d=>typeof d=="string"&&d);typeof l=="string"&&a.push({draft:t[0],message:l})}return a}showRowErrors(e,t){e.validating=!1,this.setRowBusy(e,!1);for(let{draft:r,message:o}of t)r.error=o,r.mounted&&this.showError(r.mounted.editor,o);t[0].draft.mounted?.editor.focus?.()}showError(e,t){let r=e.el;r.classList.add("mach-editor-invalid"),r.setAttribute("title",t),r.setAttribute("aria-invalid","true"),r.classList.remove("mach-editor-validating"),r.removeAttribute("aria-busy"),r.inert=!1,(r.querySelector("input, select, textarea")??r).focus?.();let i=()=>{r.classList.remove("mach-editor-invalid"),r.removeAttribute("title"),r.removeAttribute("aria-invalid")};r.addEventListener("input",i,{once:!0})}setCellBusy(e,t){e.editor.el.classList.toggle("mach-editor-validating",t),t?e.editor.el.setAttribute("aria-busy","true"):e.editor.el.removeAttribute("aria-busy"),e.editor.el.inert=t,e.confirmButton.disabled=t,e.cancelButton.disabled=!1,e.shell.classList.toggle("mach-editor-shell--busy",t)}setRowBusy(e,t){for(let r of e.drafts.values()){let o=r.mounted?.editor.el;o&&(o.classList.toggle("mach-editor-validating",t),t?o.setAttribute("aria-busy","true"):o.removeAttribute("aria-busy"),o.inert=t)}}applyValue(e,t,r,o){return o===void 0?!1:this.core.setCellValue(e,t,o,r)}focusEditor(e,t,r){try{e.focus?.()}catch(o){this.core.reportError(o,"cellEditor.focus",{colId:t.id,rowId:r.id})}}destroyMountedEditor(e,t){e.editor.el.removeEventListener("keydown",e.keydown),e.input&&e.editor.el.removeEventListener("input",e.input),e.editor.el.removeEventListener("focusout",this.onCellEditorBlur),e.editor.el.classList.remove("mach-editor-validating"),e.editor.el.removeAttribute("aria-busy"),e.editor.el.inert=!1;try{e.editor.destroy?.()}catch(r){this.core.reportError(r,"cellEditor.destroy",{colId:e.cell.dataset.colId})}t&&e.cell.classList.remove("mach-cell--editing","mach-cell--row-editing","mach-cell--error")}currentRowIndex(e){return e.node.rowIndex>=0?e.node.rowIndex:e.rowIndex}onRowEditorKeyDown(e,t,r){if(this.rowEditing!==t)return;if(e.key==="Escape"){e.preventDefault(),e.stopPropagation(),this.stopRowAsync(!0);return}if(e.key==="Enter"&&!e.shiftKey){e.preventDefault(),e.stopPropagation(),this.stopRowAsync(!1);return}if(e.key!=="Tab")return;e.preventDefault(),e.stopPropagation(),this.captureRowDraft(r);let o=[...t.drafts.values()],i=o.indexOf(r),s=e.shiftKey?-1:1;for(let a=1;a<=o.length;a++){let l=o[(i+s*a+o.length)%o.length];if(l.mounted){this.focusEditor(l.mounted.editor,l.column,t.node);break}}}destroy(){(this.cellEditing||this.rowEditing)&&this.stopAsync(!0)}};var T={matchContains:"\u5305\u542B",matchNotContains:"\u4E0D\u5305\u542B",matchEquals:"\u7B49\u4E8E",matchNotEquals:"\u4E0D\u7B49\u4E8E",matchStartsWith:"\u5F00\u5934\u662F",matchEndsWith:"\u7ED3\u5C3E\u662F",matchBlank:"\u4E3A\u7A7A",matchNotBlank:"\u4E0D\u4E3A\u7A7A",matchLessThan:"\u5C0F\u4E8E",matchLessThanOrEqual:"\u5C0F\u4E8E\u7B49\u4E8E",matchGreaterThan:"\u5927\u4E8E",matchGreaterThanOrEqual:"\u5927\u4E8E\u7B49\u4E8E",matchInRange:"\u5728\u8303\u56F4\u5185",apply:"\u5E94\u7528",reset:"\u91CD\u7F6E",search:"\u641C\u7D22...",emptySetLabel:"(\u7A7A)",selectedCount:"\u5DF2\u9009 {n} \u9879",sortAsc:"\u5347\u5E8F",sortDesc:"\u964D\u5E8F",clearSort:"\u53D6\u6D88\u6392\u5E8F",pinLeft:"\u56FA\u5B9A\u5DE6\u4FA7",pinRight:"\u56FA\u5B9A\u53F3\u4FA7",clearPin:"\u53D6\u6D88\u56FA\u5B9A",autoSize:"\u81EA\u9002\u5E94\u5217\u5BBD",hideColumn:"\u9690\u85CF\u6B64\u5217",columnVisibility:"\u5217\u663E\u793A",resetAll:"\u91CD\u7F6E\u5168\u90E8",autoSizeAll:"\u5168\u90E8\u81EA\u9002\u5E94",columnSettings:"\u5217\u8BBE\u7F6E",totalLabel:"\u5408\u8BA1",totalRowsLabel:"\u5171 {n} \u884C",menuCopy:"\u590D\u5236",menuPaste:"\u7C98\u8D34",menuClearContents:"\u6E05\u9664\u5185\u5BB9",loading:"\u52A0\u8F7D\u4E2D...",statusSelected:"\u5DF2\u9009 {n} \u884C",statusSum:"\u548C {n}",statusAvg:"\u5747 {n}",statusCount:"\u8BA1 {n}",emptyRows:"\u6682\u65E0\u6570\u636E",emptyRowsHint:"\u6CA1\u6709\u53EF\u663E\u793A\u7684\u884C",paginationTotal:"\u5171 {n} \u6761",paginationPage:"\u7B2C {a} / {b} \u9875",perPage:"{n} \u6761/\u9875",pageFirst:"\u9996\u9875",pagePrev:"\u4E0A\u4E00\u9875",pageNext:"\u4E0B\u4E00\u9875",pageLast:"\u672B\u9875",requestFailed:"\u6570\u636E\u52A0\u8F7D\u5931\u8D25",requestFailedHint:"\u8BF7\u68C0\u67E5\u7F51\u7EDC\u540E\u91CD\u8BD5",actionView:"\u67E5\u770B",actionEdit:"\u7F16\u8F91",actionDelete:"\u5220\u9664",actionConfirm:"\u786E\u8BA4",actionSave:"\u4FDD\u5B58",actionCancel:"\u53D6\u6D88",actionMore:"\u66F4\u591A\u64CD\u4F5C"},Ur={matchContains:"Contains",matchNotContains:"Not Contains",matchEquals:"Equals",matchNotEquals:"Not Equals",matchStartsWith:"Starts With",matchEndsWith:"Ends With",matchBlank:"Blank",matchNotBlank:"Not Blank",matchLessThan:"Less Than",matchLessThanOrEqual:"\u2264",matchGreaterThan:"Greater Than",matchGreaterThanOrEqual:"\u2265",matchInRange:"In Range",apply:"Apply",reset:"Reset",search:"Search...",emptySetLabel:"(blank)",selectedCount:"{n} selected",sortAsc:"Ascending",sortDesc:"Descending",clearSort:"Clear Sort",pinLeft:"Pin Left",pinRight:"Pin Right",clearPin:"Unpin",autoSize:"Auto Fit",hideColumn:"Hide Column",columnVisibility:"Columns",resetAll:"Reset All",autoSizeAll:"Fit All",columnSettings:"Column Settings",totalLabel:"Total",totalRowsLabel:"{n} rows",menuCopy:"Copy",menuPaste:"Paste",menuClearContents:"Clear Contents",loading:"Loading...",statusSelected:"{n} selected",statusSum:"Sum {n}",statusAvg:"Avg {n}",statusCount:"Cnt {n}",emptyRows:"No Data",emptyRowsHint:"No rows to display",paginationTotal:"{n} items",paginationPage:"Page {a} / {b}",perPage:"{n} / page",pageFirst:"First",pagePrev:"Previous",pageNext:"Next",pageLast:"Last",requestFailed:"Unable to load data",requestFailedHint:"Check your connection and try again",actionView:"View",actionEdit:"Edit",actionDelete:"Delete",actionConfirm:"Confirm",actionSave:"Save",actionCancel:"Cancel",actionMore:"More actions"},$n={contains:"matchContains",notContains:"matchNotContains",equals:"matchEquals",notEquals:"matchNotEquals",startsWith:"matchStartsWith",endsWith:"matchEndsWith",blank:"matchBlank",notBlank:"matchNotBlank",lessThan:"matchLessThan",lessThanOrEqual:"matchLessThanOrEqual",greaterThan:"matchGreaterThan",greaterThanOrEqual:"matchGreaterThanOrEqual",inRange:"matchInRange"};function Ze(n){return $n[n]??"matchEquals"}function I(n,e){return n.replace("{n}",String(e))}function et(n,e,t){return n.replace("{a}",String(e)).replace("{b}",String(t))}var Un=["contains","notContains","equals","notEquals","startsWith","endsWith","blank","notBlank"],qn=["equals","notEquals","lessThan","lessThanOrEqual","greaterThan","greaterThanOrEqual","inRange","blank","notBlank"],jn=["equals","notEquals","lessThan","greaterThan","inRange","blank","notBlank"],tt=class{constructor(e){this.core=e;this.panel=null;this.openColId=null;this.docMouseDown=e=>{this.panel&&!this.panel.contains(e.target)&&this.close()};this.docKeyDown=e=>{e.key==="Escape"&&this.close()}}toggle(e,t){if(this.openColId===e.id){this.close();return}this.close(),this.open(e,t)}open(e,t){let r=this.core.rowModel.getFilterModel()[e.id]??null,o=r?.type??e.filterType,i=g("div","mach-filter-panel");i.setAttribute("role","dialog"),i.setAttribute("aria-label",`${e.id} filter`),o==="set"?this.buildSetBody(i,e,r):this.buildConditionBody(i,e,o,r);let s=g("div","mach-filter-footer"),a=g("button","mach-filter-btn-reset");a.type="button",a.textContent=this.core.getLocaleText("reset"),a.addEventListener("click",()=>{this.core.applyColumnFilter(e,null),this.close()});let l=g("button","mach-filter-btn-apply");l.type="button",l.textContent=this.core.getLocaleText("apply"),l.addEventListener("click",()=>{let m=this.readFilter(i);this.core.applyColumnFilter(e,m),this.close()}),s.append(a,l),i.appendChild(s),document.body.appendChild(i),this.panel=i,this.openColId=e.id;let d=t.getBoundingClientRect(),c=i.getBoundingClientRect(),u=x(d.left,8,window.innerWidth-c.width-8),h=d.bottom+4;h+c.height>window.innerHeight-8&&(h=Math.max(8,d.top-c.height-4)),i.style.left=`${u}px`,i.style.top=`${h}px`,document.addEventListener("mousedown",this.docMouseDown,!0),document.addEventListener("keydown",this.docKeyDown,!0),i.querySelector("input, select")?.focus()}close(){this.panel&&(this.panel.remove(),this.panel=null,this.openColId=null,document.removeEventListener("mousedown",this.docMouseDown,!0),document.removeEventListener("keydown",this.docKeyDown,!0))}destroy(){this.close()}buildConditionBody(e,t,r,o){let i=r==="text"?Un:r==="number"?qn:jn,s=o&&o.type!=="set"&&o.conditions.length>0?o.conditions[0]:null,a=s?.match??(r==="text"?"contains":"equals"),l=a==="blank"||a==="notBlank",d=g("select","mach-filter-select");for(let m of i){let f=document.createElement("option");f.value=m,f.textContent=this.core.getLocaleText(Ze(m)),d.appendChild(f)}d.value=a;let c=g("input","mach-filter-input");r==="number"&&(c.type="number"),r==="date"&&(c.type="date"),s&&s.value!=null&&!l&&(c.value=r==="date"?String(s.value).slice(0,10):String(s.value));let u=g("input","mach-filter-input mach-filter-input--second");r==="number"&&(u.type="number"),r==="date"&&(u.type="date"),s&&"value2"in s&&s.value2!=null&&(u.value=String(s.value2).slice(0,10)),u.style.display=a==="inRange"?"":"none",d.addEventListener("change",()=>{let m=d.value==="blank"||d.value==="notBlank";c.style.display=m?"none":"",u.style.display=d.value==="inRange"?"":"none"});let h=m=>{if(m.key==="Enter"){let f=this.readFilter(e);this.core.applyColumnFilter(t,f),this.close()}};c.addEventListener("keydown",h),u.addEventListener("keydown",h);let p=g("div","mach-filter-body");p.append(d,c,u),e.appendChild(p),e.dataset.filterType=r}buildSetBody(e,t,r){let i=t.colDef.filterParams,s;if(i?.values)s=i.values;else{let f=new Set;s=[];let y=this.core.rowModel.getAllNodes(),v=Math.min(y.length,i?.maxValues??500);for(let w=0;w<v;w++){let b=this.core.getCellValue(y[w],t),S=b==null?"__null__":String(b);f.has(S)||(f.add(S),s.push(b))}}let a=new Set(r?.type==="set"?r.values.map(f=>f==null?"__null__":String(f)):s.map(f=>f==null?"__null__":String(f))),l=g("input","mach-filter-input mach-filter-input--search");l.type="text",l.placeholder=this.core.getLocaleText("search");let d=g("div","mach-filter-set-list"),c=[],u=new Map,h=f=>{d.textContent="",c.length=0;let y=f.trim().toLowerCase();for(let v of s){let w=v==null?this.core.getLocaleText("emptySetLabel"):String(v);if(y&&!w.toLowerCase().includes(y))continue;let b=v==null?"__null__":String(v);u.set(b,v);let S=g("label","mach-filter-set-item"),R=document.createElement("input");R.type="checkbox",R.checked=a.has(b),R.addEventListener("change",()=>{R.checked?a.add(b):a.delete(b)});let V=g("span");V.textContent=w,S.append(R,V),d.appendChild(S),c.push(R)}};l.addEventListener("input",()=>h(l.value)),h(""),e.dataset.filterType="set",e.dataset.setValues=JSON.stringify([...u.entries()]),(()=>{let f=[...u.entries()];e.dataset.setValues=JSON.stringify(f)})();let m=g("div","mach-filter-body mach-filter-body--set");m.append(l,d),e.appendChild(m)}readFilter(e){let t=e.dataset.filterType;if(t==="set"){let d=[];try{d=JSON.parse(e.dataset.setValues??"[]")}catch{d=[]}let c=new Set;e.querySelectorAll(".mach-filter-set-item input:checked").forEach(h=>{let m=h.closest(".mach-filter-set-item").querySelector("span"),f=this.core.getLocaleText("emptySetLabel"),y=m.textContent===f?"__null__":m.textContent??"";c.add(y)});let u=d.filter(([h])=>c.has(h)).map(([,h])=>h);return u.length===d.length||u.length===0?null:{type:"set",values:u}}let r=e.querySelector(".mach-filter-select"),o=e.querySelectorAll(".mach-filter-input"),i=o[0],s=o[1];if(!r||!i)return null;let a=r.value;if(a==="blank"||a==="notBlank")return{type:t,conditions:[{match:a}]};let l=i.value;if(l===""&&a!=="inRange")return null;if(t==="number"){let d=Number(l);if(isNaN(d))return null;if(a==="inRange"){let c=s&&s.value!==""?Number(s.value):d;return isNaN(c)?null:{type:"number",conditions:[{match:"inRange",value:d,value2:c}]}}return{type:"number",conditions:[{match:a,value:d}]}}if(t==="date"){let d=l;if(a==="inRange"){let c=s&&s.value!==""?s.value:d;return{type:"date",conditions:[{match:"inRange",value:d,value2:c}]}}return{type:"date",conditions:[{match:a,value:d}]}}return{type:"text",conditions:[{match:a,value:l}]}}};var rt=class{constructor(e){this.core=e;this.panel=null;this.openColId=null;this.standaloneAnchor=null;this.searchText="";this.docMouseDown=e=>{this.panel&&!this.panel.contains(e.target)&&this.close()};this.docKeyDown=e=>{e.key==="Escape"&&this.close()}}toggle(e,t){if(this.openColId===e.id){this.close();return}this.close(),this.open(e,t)}openStandalone(e){this.close();let t=e??(()=>{let o=this.core.skeleton.root.getBoundingClientRect(),i=document.createElement("div");return i.style.position="fixed",i.style.left=`${o.right-16}px`,i.style.top=`${o.top+this.core.options.headerHeight}px`,i.style.width="1px",i.style.height="1px",document.body.appendChild(i),this.standaloneAnchor=i,i})();this.open(null,t)}close(){this.standaloneAnchor&&(this.standaloneAnchor.remove(),this.standaloneAnchor=null),this.panel?.remove(),this.panel=null,this.openColId=null,document.removeEventListener("mousedown",this.docMouseDown,!0),document.removeEventListener("keydown",this.docKeyDown,!0)}destroy(){this.close()}open(e,t){let r=this.core.getApi(),o=g("div","mach-filter-panel mach-column-panel");o.setAttribute("role",e?"menu":"dialog"),e||(o.setAttribute("aria-modal","false"),o.setAttribute("aria-label",this.core.getLocaleText("columnSettings")));let i=g("div","mach-column-panel-title");if(i.textContent=e?e.colDef.headerName??e.colDef.field??e.id:this.core.getLocaleText("columnSettings"),o.appendChild(i),e&&e.sortable){let R=g("div","mach-column-panel-actions"),V=(Q,Rr)=>{let Ee=g("button","mach-column-panel-btn");return Ee.type="button",Ee.textContent=this.core.getLocaleText(Q),Ee.addEventListener("click",()=>{r.setSortModel(Rr?[{colId:e.id,direction:Rr}]:[]),this.close()}),Ee};R.append(V("sortAsc","asc"),V("sortDesc","desc"),V("clearSort",null)),o.appendChild(R)}let s=g("div","mach-column-panel-actions"),a=(R,V)=>{let Q=g("button","mach-column-panel-btn");return Q.type="button",Q.textContent=this.core.getLocaleText(R),Q.addEventListener("click",()=>{e&&r.setColumnPinned(e.id,V),this.close()}),Q};e&&(s.append(a("pinLeft","left"),a("pinRight","right"),a("clearPin",null)),o.appendChild(s));let l=g("div","mach-column-panel-actions"),d=g("button","mach-column-panel-btn");d.type="button",d.textContent=this.core.getLocaleText("autoSize"),d.addEventListener("click",()=>{e?r.autoSizeColumn(e.id):r.autoSizeAllColumns(),this.close()});let c=g("button","mach-column-panel-btn");c.type="button",c.textContent=this.core.getLocaleText("hideColumn"),c.addEventListener("click",()=>{e&&r.setColumnVisibility(e.id,!1),this.close()}),e&&(l.append(d,c),o.appendChild(l));let u=g("div","mach-column-panel-divider");o.appendChild(u);let h=g("div","mach-column-panel-subtitle");if(h.textContent=this.core.getLocaleText("columnVisibility"),o.appendChild(h),!e){let R=document.createElement("input");R.type="search",R.className="mach-column-workbench-search",R.placeholder=this.core.getLocaleText("search"),R.setAttribute("aria-label",this.core.getLocaleText("search")),R.value=this.searchText,R.addEventListener("input",()=>{this.searchText=R.value.trim().toLocaleLowerCase(),this.renderColumnList(p,!0)}),o.appendChild(R)}let p=g("div","mach-column-panel-list");this.renderColumnList(p,!e),o.appendChild(p);let m=g("div","mach-filter-footer"),f=g("button","mach-filter-btn-reset");f.type="button",f.textContent=this.core.getLocaleText("resetAll"),f.addEventListener("click",()=>{r.resetColumnState(),this.close()});let y=g("button","mach-filter-btn-apply");y.type="button",y.textContent=this.core.getLocaleText("autoSizeAll"),y.addEventListener("click",()=>{r.autoSizeAllColumns(),this.close()}),m.append(f,y),o.appendChild(m),document.body.appendChild(o),this.panel=o,this.openColId=e?e.id:"__standalone__";let v=t.getBoundingClientRect(),w=o.getBoundingClientRect(),b=x(v.left,8,window.innerWidth-w.width-8),S=v.bottom+4;S+w.height>window.innerHeight-8&&(S=Math.max(8,v.top-w.height-4)),o.style.left=`${b}px`,o.style.top=`${S}px`,document.addEventListener("mousedown",this.docMouseDown,!0),document.addEventListener("keydown",this.docKeyDown,!0)}rebuildListStates(){if(!this.panel)return;let e=this.panel.querySelector(".mach-column-panel-list");e&&this.renderColumnList(e,this.openColId==="__standalone__")}renderColumnList(e,t){let r=this.core.getApi();e.replaceChildren();let o=this.core.columnModel.getColumns().filter(i=>i.isDetailToggle?!1:!t||!this.searchText?!0:`${i.colDef.headerName??i.colDef.field??i.id} ${i.id}`.toLocaleLowerCase().includes(this.searchText));for(let i of o){let s=g("div",t?"mach-column-workbench-item":"mach-filter-set-item"),a=g("label","mach-column-workbench-label"),l=document.createElement("input");l.type="checkbox",l.checked=!i.hide,l.disabled=i.hasCheckbox,l.addEventListener("change",()=>{r.setColumnVisibility(i.id,l.checked),this.rebuildListStates()});let d=g("span","mach-column-workbench-name");if(d.textContent=i.colDef.headerName??i.colDef.field??i.id,d.title=`${d.textContent} (${i.id})`,a.append(l,d),s.appendChild(a),t){let c=document.createElement("select");c.className="mach-column-workbench-pin",c.setAttribute("aria-label",`${d.textContent} ${this.core.getLocaleText("clearPin")}`);for(let[m,f]of[["",this.core.getLocaleText("clearPin")],["left",this.core.getLocaleText("pinLeft")],["right",this.core.getLocaleText("pinRight")]]){let y=document.createElement("option");y.value=m,y.textContent=f,c.appendChild(y)}c.value=i.pinned??"",c.addEventListener("change",()=>{r.setColumnPinned(i.id,c.value==="left"||c.value==="right"?c.value:null),this.rebuildListStates()}),s.appendChild(c);let u=this.core.columnModel.getColumns().filter(m=>!m.hide&&m.parentGroup===i.parentGroup&&(i.parentGroup!=null||m.pinned===i.pinned)),h=u.indexOf(i),p=(m,f,y)=>{let v=g("button","mach-column-workbench-move");return v.type="button",v.textContent=m,v.disabled=y||i.hide||!i.movable,v.addEventListener("click",()=>{r.moveColumn(i.id,f),this.rebuildListStates()}),v};s.append(p("\u2191",h-1,h<=0),p("\u2193",h+1,h<0||h>=u.length-1))}e.appendChild(s)}}};var ot=class{constructor(e){this.core=e;this.panel=null;this.docMouseDown=e=>{this.panel&&!this.panel.contains(e.target)&&this.close()};this.docKeyDown=e=>{e.key==="Escape"&&this.close()}}open(e,t,r){this.close();let o=this.core,i,s;if(r)i=o.rowModel.getDisplayedRow(r.rowIndex),s=o.columnModel.getColumn(r.colId);else{let u=o.bodyRenderer.getNormalizedRangeOrFocus();if(!u)return;let h=o.columnModel.getOrderedVisible();i=o.rowModel.getDisplayedRow(u.r1),s=h[u.c1]}if(!i||!s)return;let a=i.rowIndex,l=g("div","mach-context-menu");l.setAttribute("role","menu");let d=o.options.getContextMenuItems;if(d){let u;try{u=d({data:i.data,node:i,api:o.getApi(),colId:s.id,value:o.getCellValue(i,s),rowIndex:a})}catch(p){o.reportError(p,"getContextMenuItems",{colId:s.id,rowId:i.id});return}if(u==null)return;let h=!1;for(let p of u){if(p.separator){let f=g("div","mach-context-menu-separator");l.appendChild(f);continue}let m=g("button","mach-context-menu-item");m.type="button",m.textContent=p.label??"",p.danger&&m.classList.add("mach-context-menu-item--danger"),p.disabled?m.disabled=!0:(h=!0,m.addEventListener("click",()=>{this.close();try{p.action?.()}catch(f){o.reportError(f,"contextMenu.action",{colId:s.id,rowId:i.id})}})),l.appendChild(m)}if(!h){l.remove();return}this.attach(l,e,t);return}let c=g("button","mach-context-menu-item");if(c.type="button",c.textContent=o.getLocaleText("menuCopy"),c.addEventListener("click",()=>{o.copyActiveRange(),this.close()}),l.appendChild(c),!o.options.suppressClipboard){let u=g("button","mach-context-menu-item");u.type="button",u.textContent=o.getLocaleText("menuPaste"),u.addEventListener("click",()=>{o.pasteFromSystemClipboard(),this.close()}),l.appendChild(u);let h=g("button","mach-context-menu-item");h.type="button",h.textContent=o.getLocaleText("menuClearContents"),h.addEventListener("click",()=>{let p=o.bodyRenderer.getNormalizedRangeOrFocus();p&&o.clearRangeValues(p),this.close()}),l.appendChild(h)}this.attach(l,e,t)}attach(e,t,r){document.body.appendChild(e),this.panel=e;let o=e.getBoundingClientRect(),i=x(t,8,Math.max(8,window.innerWidth-o.width-8)),s=x(r,8,Math.max(8,window.innerHeight-o.height-8));e.style.left=`${i}px`,e.style.top=`${s}px`,document.addEventListener("mousedown",this.docMouseDown,!0),document.addEventListener("keydown",this.docKeyDown,!0)}close(){this.panel&&(this.panel.remove(),this.panel=null,document.removeEventListener("mousedown",this.docMouseDown,!0),document.removeEventListener("keydown",this.docKeyDown,!0))}destroy(){this.close()}};var nt=class{constructor(e){this.core=e;this.panel=null;this.showTimer=0;this.hideTimer=0;this.currentCell=null;this.onMouseOver=e=>{if(this.core.isDestroyed()||!this.core.options.tooltipComponent)return;let r=e.target.closest(".mach-cell");if(!r||r===this.currentCell)return;this.clearTimers(),this.removePanel(),this.currentCell=r;let o=r.dataset.colId??"",i=r.closest(".mach-row"),s=Number(i?.dataset.index),a=Number.isNaN(s)?void 0:this.core.rowModel.getDisplayedRow(s),l=o?this.core.columnModel.getColumn(o):void 0;if(!a||!l||a.isDetail||a.isGroup||r.classList.contains("mach-cell--editing"))return;let d=this.core.getCellValue(a,l),c={data:a.data,node:a,api:this.core.getApi(),colId:l.id,value:d,formatted:N(this.core,a,l),rowIndex:s},u=l.colDef.tooltipValueGetter,h=c.formatted;if(u)try{h=u({...c,colDef:l.colDef,column:l})??c.formatted}catch(p){this.core.reportError(p,"tooltipValueGetter",{colId:l.id,rowId:a.id})}!h&&!l.colDef.tooltipValueGetter||(this.showTimer=setTimeout(()=>{this.core.isDestroyed()||this.currentCell!==r||this.showPanel(r,c)},Math.max(0,this.core.options.tooltipShowDelay)))};this.onBodyLeave=()=>{this.hide()}}init(){let e=this.core.skeleton.bodyEl;e.addEventListener("mouseover",this.onMouseOver),e.addEventListener("mouseleave",this.onBodyLeave)}destroy(){this.clearTimers(),this.removePanel();let e=this.core.skeleton.bodyEl;e.removeEventListener("mouseover",this.onMouseOver),e.removeEventListener("mouseleave",this.onBodyLeave),this.currentCell=null}hide(){this.clearTimers(),this.removePanel(),this.currentCell=null}clearTimers(){this.showTimer&&(clearTimeout(this.showTimer),this.showTimer=0),this.hideTimer&&(clearTimeout(this.hideTimer),this.hideTimer=0)}removePanel(){this.panel&&(this.panel.remove(),this.panel=null)}showPanel(e,t){this.removePanel();let r=this.core.options.tooltipComponent;if(!r)return;let o=g("div","mach-tooltip");o.setAttribute("role","tooltip");let i;try{i=r(t)}catch(c){this.core.reportError(c,"tooltipComponent",{colId:t.colId,rowIndex:t.rowIndex});return}typeof i=="string"?o.textContent=i:o.appendChild(i),document.body.appendChild(o),this.panel=o;let s=e.getBoundingClientRect(),a=o.getBoundingClientRect(),l=x(s.left,8,Math.max(8,window.innerWidth-a.width-8)),d=s.bottom+6;d+a.height>window.innerHeight-8&&(d=Math.max(8,s.top-a.height-6)),o.style.left=`${l}px`,o.style.top=`${d}px`}};var it=class{constructor(e){this.core=e;this.overlay=null}init(){this.overlay=document.createElement("div"),this.overlay.className="mach-watermark",this.overlay.setAttribute("aria-hidden","true"),this.overlay.style.pointerEvents="none",this.core.skeleton.root.appendChild(this.overlay),this.apply()}apply(){if(!this.overlay||this.core.isDestroyed())return;let e=this.core.options.watermarkEnabled?this.core.options.watermarkConfig:null;if(!e||!e.text){this.overlay.style.display="none",this.overlay.style.backgroundImage="";return}let t=this.buildTile(e);this.overlay.style.display="",t?(this.overlay.style.backgroundImage=`url(${t})`,this.overlay.style.backgroundColor=""):this.overlay.style.backgroundImage=""}buildTile(e){try{let t=document.createElement("canvas"),r=t.getContext("2d");if(!r)return null;let o=e.fontSize??14,i=e.gap??160,s=e.angle??-22,a=e.color??(this.isDark()?"rgba(255,255,255,0.9)":"rgba(31,55,88,0.9)"),l=e.opacity??.06;r.font=`500 ${o}px sans-serif`;let d=r.measureText(e.text),c=Math.ceil(d.width),u=Math.max(i,c+40);t.width=u,t.height=u;let h=t.getContext("2d");return h.clearRect(0,0,u,u),h.globalAlpha=l,h.fillStyle=a,h.font=`500 ${o}px sans-serif`,h.translate(u/2,u/2),h.rotate(s*Math.PI/180),h.textAlign="center",h.textBaseline="middle",h.fillText(e.text,0,0),t.toDataURL("image/png")}catch{return null}}isDark(){return this.core.skeleton.root.classList.contains("mach-theme-dark")}refresh(){this.apply()}destroy(){this.overlay?.remove(),this.overlay=null}};var st=class{constructor(e){this.core=e;this.stack=[];this.pointer=-1;this.pending=null}beginBatch(){this.pending||(this.pending=[])}endBatch(){if(!this.pending)return;let e=this.pending;this.pending=null,e.length>0&&this.push(e)}cancelBatch(){this.pending=null}record(e){if(this.pending){this.pending.push(e);return}this.push([e])}push(e){let t=Math.max(0,this.core.options.undoStackSize);if(t!==0){for(this.stack.length=this.pointer+1,this.stack.push(e);this.stack.length>t;)this.stack.shift();this.pointer=this.stack.length-1}}trimToSize(){let e=Math.max(0,this.core.options.undoStackSize);if(e===0){this.clear();return}for(;this.stack.length>e;)this.stack.shift(),this.pointer--;this.pointer<-1&&(this.pointer=-1)}canUndo(){return this.pointer>=0}canRedo(){return this.pointer<this.stack.length-1}undo(){return this.canUndo()?(this.apply(this.stack[this.pointer],!1),this.pointer--,!0):!1}redo(){return this.canRedo()?(this.pointer++,this.apply(this.stack[this.pointer],!0),!0):!1}apply(e,t){let r=this.core,o=[];for(let i of e){let s=r.rowModel.getNodeById(i.nodeId),a=r.columnModel.getColumn(i.columnId);if(!s||!a||s.data==null)continue;let l=t?i.newValue:i.oldValue,d=t?i.oldValue:i.newValue;r.writeValue(s,a,l,d)&&(r.bodyRenderer.invalidateRowHeight(s),r.bodyRenderer.queueFlash([s.rowIndex],[a.id]),s.rowIndex>=0&&o.push(s.rowIndex),r.emit("cellValueChanged",{oldValue:d,newValue:l,rowNode:s,rowIndex:s.rowIndex,column:a,colDef:a.colDef,data:s.data}))}o.length>0&&r.bodyRenderer.refreshRows(o),r.summaryRenderer.refresh(),r.statusBarService.refresh()}clear(){this.stack=[],this.pointer=-1,this.pending=null}};var at=class{constructor(e){this.core=e;this.changes=new Map;this.rollingBack=!1;this.unsubscribe=null}init(){this.unsubscribe=this.core.eventBus.on("cellValueChanged",e=>{this.rollingBack||this.record(e)})}record(e){let t=`${e.rowNode.id}\0${e.column.id}`,o=this.changes.get(t)?.originalValue??e.oldValue;Object.is(e.newValue,o)?this.changes.delete(t):this.changes.set(t,{rowId:e.rowNode.id,colId:e.column.id,originalValue:o,value:e.newValue}),this.emitChanged()}getDirtyRowIds(){return[...new Set([...this.changes.values()].map(e=>e.rowId))]}getChanges(){let e=new Map;for(let t of this.changes.values()){let r=this.core.rowModel.getNodeById(t.rowId);if(!r?.data)continue;let o=e.get(t.rowId);o||(o={rowId:t.rowId,data:r.data,cells:[]},e.set(t.rowId,o)),o.cells.push({colId:t.colId,originalValue:t.originalValue,value:t.value})}return[...e.values()]}markSaved(e){if(!e)this.changes.clear();else{let t=new Set(e);for(let[r,o]of this.changes)t.has(o.rowId)&&this.changes.delete(r)}this.emitChanged()}acknowledge(e){for(let t of e)for(let r of t.cells){let o=`${t.rowId}\0${r.colId}`,i=this.changes.get(o);if(i){Object.is(i.value,r.value)?this.changes.delete(o):i.originalValue=r.value;continue}let s=this.core.rowModel.getNodeById(t.rowId),a=this.core.columnModel.getColumn(r.colId);if(!s||!a||s.data==null)continue;let l=this.core.getCellValue(s,a);Object.is(l,r.value)||this.changes.set(o,{rowId:t.rowId,colId:r.colId,originalValue:r.value,value:l})}this.emitChanged()}rollback(e){let t=e?new Set(e):null,r=[...this.changes.entries()].filter(([,s])=>!t||t.has(s.rowId));if(r.length===0)return!1;let o=new Set,i=new Set;this.rollingBack=!0;try{for(let[s,a]of r){let l=this.core.rowModel.getNodeById(a.rowId),d=this.core.columnModel.getColumn(a.colId);if(!l||!d||l.data==null)continue;let c=this.core.getCellValue(l,d);if(Object.is(c,a.originalValue)){i.add(s);continue}this.core.writeValue(l,d,a.originalValue,c)&&(i.add(s),this.core.bodyRenderer.invalidateRowHeight(l),l.rowIndex>=0&&o.add(l.rowIndex),this.core.emit("cellValueChanged",{oldValue:c,newValue:a.originalValue,rowNode:l,rowIndex:l.rowIndex,column:d,colDef:d.colDef,data:l.data}))}}finally{this.rollingBack=!1}for(let s of i)this.changes.delete(s);return o.size>0&&this.core.bodyRenderer.refreshRows([...o]),this.core.summaryRenderer.refresh(),this.core.statusBarService.refresh(),this.emitChanged(),i.size>0}clearRows(e){if(e.length===0)return;let t=new Set(e);for(let[r,o]of this.changes)t.has(o.rowId)&&this.changes.delete(r);this.emitChanged()}clear(){this.changes.size!==0&&(this.changes.clear(),this.emitChanged())}destroy(){this.unsubscribe?.(),this.unsubscribe=null,this.changes.clear()}emitChanged(){this.core.emit("dirtyStateChanged",{dirtyRowIds:this.getDirtyRowIds()})}};function er(){return typeof performance<"u"&&typeof performance.now=="function"?performance.now():Date.now()}var lt=class{constructor(){this.samples=[];this.layoutSamples=[];this.modelSamples=[];this.longTaskCount=0;this.longTaskTotalMs=0;this.longTaskObserver=null;if(!(typeof PerformanceObserver>"u"))try{this.longTaskObserver=new PerformanceObserver(e=>{for(let t of e.getEntries())this.longTaskCount++,this.longTaskTotalMs+=t.duration}),this.longTaskObserver.observe({entryTypes:["longtask"]})}catch{this.longTaskObserver=null}}start(){return er()}recordRender(e,t,r){this.samples.push({duration:Math.max(0,er()-e),rows:t,columns:r}),this.samples.length>120&&this.samples.shift()}recordLayout(e){this.pushDuration(this.layoutSamples,e)}recordModel(e){this.pushDuration(this.modelSamples,e)}snapshot(){let e=this.samples.map(o=>o.duration),t=this.samples[this.samples.length-1],r=[...e].sort((o,i)=>o-i);return{sampleCount:e.length,lastRenderMs:t?.duration??0,averageRenderMs:this.average(e),maxRenderMs:r[r.length-1]??0,p95RenderMs:this.percentile(r,!0),longRenderCount:e.filter(o=>o>16.7).length,renderedRows:t?.rows??0,renderedColumns:t?.columns??0,renderedCells:(t?.rows??0)*(t?.columns??0),layoutSampleCount:this.layoutSamples.length,p95LayoutMs:this.percentile(this.layoutSamples),modelSampleCount:this.modelSamples.length,p95ModelMs:this.percentile(this.modelSamples),longTaskCount:this.longTaskCount,longTaskTotalMs:this.longTaskTotalMs,usedHeapBytes:this.usedHeapBytes()}}reset(){this.samples=[],this.layoutSamples=[],this.modelSamples=[],this.longTaskCount=0,this.longTaskTotalMs=0}destroy(){this.longTaskObserver?.disconnect(),this.longTaskObserver=null}pushDuration(e,t){e.push(Math.max(0,er()-t)),e.length>120&&e.shift()}average(e){return e.length===0?0:e.reduce((t,r)=>t+r,0)/e.length}usedHeapBytes(){let e=typeof performance>"u"?void 0:performance.memory?.usedJSHeapSize;return typeof e=="number"&&Number.isFinite(e)?e:null}percentile(e,t=!1){if(e.length===0)return 0;let r=t?e:[...e].sort((o,i)=>o-i);return r[Math.max(0,Math.ceil(r.length*.95)-1)]??0}};function qr(n,e){if(!(n==null||e==null))return[...new Set([...n,...e])]}function Yn(n,e){return n===!0||e===!0?!0:n?e?{rowIds:qr(n.rowIds,e.rowIds),rowIndexes:n.rowIndexes==null||e.rowIndexes==null?void 0:[...new Set([...n.rowIndexes,...e.rowIndexes])],columns:qr(n.columns,e.columns),force:n.force===!0||e.force===!0,includePinned:n.includePinned===!0||e.includePinned===!0}:n:e}function Xn(n,e){return{columns:n.columns===!0||e.columns===!0,header:n.header===!0||e.header===!0,pool:n.pool===!0||e.pool===!0,data:n.data===!0||e.data===!0,layout:n.layout===!0||e.layout===!0,cells:Yn(n.cells,e.cells),pinned:n.pinned===!0||e.pinned===!0,summary:n.summary===!0||e.summary===!0,overlays:n.overlays===!0||e.overlays===!0}}var dt=class{constructor(e){this.apply=e;this.depth=0;this.pending=null;this.flushCount=0;this.requestCount=0;this.coalescedRequestCount=0;this.destroyed=!1}batch(e){if(this.destroyed)return e();this.depth++;try{return e()}finally{this.depth--,this.depth===0&&this.flush()}}schedule(e){this.destroyed||(this.requestCount++,this.pending&&this.coalescedRequestCount++,this.pending=Xn(this.pending??{},e),this.depth===0&&this.flush())}flush(){if(this.destroyed||this.depth>0||!this.pending)return;let e=this.pending;this.pending=null,this.flushCount++,this.apply(e)}snapshot(){return{batchDepth:this.depth,flushCount:this.flushCount,requestCount:this.requestCount,coalescedRequestCount:this.coalescedRequestCount,pending:this.pending!=null}}destroy(){this.destroyed=!0,this.pending=null,this.depth=0}};var z=["gridReady","gridDestroyed","modelUpdated","cellClicked","cellDoubleClicked","cellContextMenu","rowClicked","rowDoubleClicked","selectionChanged","sortChanged","filterChanged","columnResized","columnMoved","columnVisibilityChanged","cellValueChanged","cellEditingStarted","cellEditingStopped","rowEditingStarted","rowEditingStopped","detailToggled","treeChildrenLoaded","treeChildrenLoadFailed","rowDragEnd","rangeSelectionChanged","paginationChanged","displayedColumnsChanged","gridError","dirtyStateChanged"];function Y(n){return(n==null?"":String(n)).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function ct(n,e,t="text/plain;charset=utf-8"){try{if(typeof document>"u"||typeof Blob>"u")return!1;let r=document.createElement("a");if(typeof URL<"u"&&typeof URL.createObjectURL=="function"){let o=new Blob([e],{type:t}),i=URL.createObjectURL(o);r.href=i,r.download=n,r.click();let s=typeof URL.revokeObjectURL=="function"?URL.revokeObjectURL.bind(URL):null;s&&setTimeout(()=>{try{s(i)}catch{}},0)}else r.href=`data:${t},${encodeURIComponent(e)}`,r.download=n,r.click();return!0}catch{return!1}}var _={columnDefs:{kind:"array",update:"columnDefs"},rowData:{kind:"array",update:"rowData"},defaultColDef:{kind:"object",update:"options"},columnTypes:{kind:"object",update:"options"},getRowId:{kind:"function",update:"options"},rowKey:{kind:"unknown",update:"options"},rowHeight:{kind:"number",update:"options"},headerHeight:{kind:"number",update:"options"},rowBuffer:{kind:"number",update:"options"},columnLayout:{kind:"string",update:"options"},enableColumnResize:{kind:"boolean",update:"options"},domLayout:{kind:"string",update:"options"},rowSelection:{kind:"string",update:"options"},multiSort:{kind:"boolean",update:"options"},size:{kind:"string",update:"options"},stripedRows:{kind:"boolean",update:"options"},showCellBorders:{kind:"boolean",update:"options"},theme:{kind:"string",update:"options"},quickFilterText:{kind:"string",update:"quickFilter"},advancedFilterModel:{kind:"object",update:"options"},masterDetail:{kind:"boolean",update:"options"},detailRowHeight:{kind:"number",update:"options"},detailRowRenderer:{kind:"function",update:"options"},isRowExpandable:{kind:"function",update:"options"},detailToggleColumn:{kind:"boolean",update:"options"},columnMenu:{kind:"boolean",update:"options"},columnStateKey:{kind:"string",update:"options"},columnStateStore:{kind:"object",update:"options"},aggFuncs:{kind:"object",update:"options"},components:{kind:"object",update:"options"},actionPolicy:{kind:"object",update:"options"},features:{kind:"array",update:"options"},initialState:{kind:"object",update:"options"},stateKey:{kind:"string",update:"options"},stateStore:{kind:"object",update:"options"},stateSaveDebounceMs:{kind:"number",update:"options"},locale:{kind:"object",update:"options"},editType:{kind:"string",update:"options"},editableIndicator:{kind:"string",update:"options"},rowEditValidator:{kind:"function",update:"options"},singleClickEdit:{kind:"boolean",update:"options"},manualSorting:{kind:"boolean",update:"options"},manualFiltering:{kind:"boolean",update:"options"},showSummary:{kind:"boolean",update:"options"},summaryMethod:{kind:"function",update:"options"},treeData:{kind:"boolean",update:"options"},childrenKey:{kind:"string",update:"options"},isTreeRowExpandable:{kind:"function",update:"options"},loadTreeChildren:{kind:"function",update:"options"},autoCheckedChildren:{kind:"boolean",update:"options"},defaultExpandAll:{kind:"boolean",update:"options"},indexOffset:{kind:"number",update:"options"},applyRowDrag:{kind:"boolean",update:"options"},undoStackSize:{kind:"number",update:"options"},asyncTransactionWaitMillis:{kind:"number",update:"options"},getRowHeight:{kind:"function",update:"options"},pinnedTopRowData:{kind:"array",update:"options"},pinnedBottomRowData:{kind:"array",update:"options"},pagination:{kind:"boolean-object",update:"options"},watermark:{kind:"boolean-object",update:"options"},suppressWarnings:{kind:"boolean",update:"options"},enableRangeSelection:{kind:"boolean",update:"options"},suppressClipboard:{kind:"boolean",update:"options"},contextMenu:{kind:"boolean",update:"options"},getContextMenuItems:{kind:"function",update:"options"},tooltipComponent:{kind:"function",update:"options"},tooltipShowDelay:{kind:"number",update:"options"},flashCells:{kind:"boolean",update:"options"},fillHandle:{kind:"boolean",update:"options"},statusBar:{kind:"boolean-object",update:"options"},datasource:{kind:"object",update:"options"},datasourceMode:{kind:"string",update:"options"},blockSize:{kind:"number",update:"options"},infiniteBufferRows:{kind:"number",update:"options"},maxBlocksInCache:{kind:"number",update:"options"},blockPrefetch:{kind:"number",update:"options"},datasourceRowCount:{kind:"number",update:"options"},dataProcessor:{kind:"object",update:"options"},dataProcessorMinRows:{kind:"number",update:"options"},datasourceRetryCount:{kind:"number",update:"options"},datasourceRetryDelay:{kind:"number",update:"options"},suppressCellFocus:{kind:"boolean",update:"options"},suppressRowHoverHighlight:{kind:"boolean",update:"options"},suppressNoRowsOverlay:{kind:"boolean",update:"options"},suppressHeaderFocus:{kind:"boolean",update:"options"},ariaLabel:{kind:"string",update:"options"},ariaLabelledBy:{kind:"string",update:"options"},ariaDescribedBy:{kind:"string",update:"options"},loading:{kind:"boolean",update:"options"},error:{kind:"unknown",update:"options"},overlayNoRowsTemplate:{kind:"unknown",update:"options"},overlayLoadingTemplate:{kind:"unknown",update:"options"},overlayErrorTemplate:{kind:"unknown",update:"options"},allowUnsafeOverlayHtml:{kind:"boolean",update:"options"},className:{kind:"string",update:"options"}},ae=Object.freeze(Object.keys(_)),jr=Object.freeze(ae.filter(n=>_[n].update==="options"));var Jn=new Set(z.map(n=>`on${n.charAt(0).toUpperCase()}${n.slice(1)}`));function we(n,e){return n==null||e==="unknown"?!0:e==="array"?Array.isArray(n):e==="boolean-object"?typeof n=="boolean"||typeof n=="object"&&!Array.isArray(n):e==="object"?typeof n=="object"&&!Array.isArray(n):e==="number"?typeof n=="number"&&Number.isFinite(n):typeof n===e}function ut(n){let e={};for(let[t,r]of Object.entries(n)){if(Jn.has(t)){(r==null||typeof r=="function")&&(e[t]=r);continue}let o=_[t];!o||!we(r,o.kind)||(e[t]=r)}return e}var Jr=2e3,Qn=1e5,rr=512,Zn=1e4;function tr(n){return Array.isArray(n)?[...new Set(n.slice(0,Qn).filter(e=>typeof e=="string"&&e.length>0&&e.length<=rr))]:[]}function Yr(n,e){return typeof n=="number"&&Number.isFinite(n)&&n>=1?Math.floor(n):e}function Xr(n){return typeof n=="number"&&Number.isFinite(n)&&n>0?n:void 0}function ei(n,e){let t=Xr(e.width),r=Xr(e.flex);t!==void 0&&(n.width=t),e.flex===null?n.flex=null:r!==void 0&&(n.flex=r),(e.widthMode==="auto"||e.widthMode==="manual")&&(n.widthMode=e.widthMode)}function ti(n,e){typeof e.hide=="boolean"&&(n.hide=e.hide),(e.pinned===null||e.pinned==="left"||e.pinned==="right")&&(n.pinned=e.pinned)}function ri(n,e){(e.sort===null||e.sort==="asc"||e.sort==="desc")&&(n.sort=e.sort),e.sortIndex===null?n.sortIndex=null:typeof e.sortIndex=="number"&&Number.isInteger(e.sortIndex)&&e.sortIndex>=0&&(n.sortIndex=e.sortIndex)}function oi(n,e){if(n==null||typeof n!="object")return null;let t=n,r=typeof t.colId=="string"?t.colId.trim():"";if(!r||r.length>rr||e.has(r))return null;e.add(r);let o={colId:r};return ti(o,t),ei(o,t),ri(o,t),o}function ni(n){if(!Array.isArray(n))return[];let e=[],t=new Set;for(let r of n.slice(0,Jr)){let o=oi(r,t);o&&e.push(o)}return e}function ii(n){if(!Array.isArray(n))return[];let e=[],t=new Set;for(let r of n.slice(0,Jr)){if(r==null||typeof r!="object")continue;let o=r,i=typeof o.colId=="string"?o.colId.trim():"";!i||i.length>rr||t.has(i)||o.direction!=="asc"&&o.direction!=="desc"||(t.add(i),e.push({colId:i,direction:o.direction}))}return e}function O(n){if(n==null||typeof n!="object")return null;let e=n;if(e.version!==1&&e.version!==2||!Array.isArray(e.columns)||!Array.isArray(e.sortModel))return null;let t=e.pagination!=null&&typeof e.pagination=="object"?e.pagination:{};return{version:2,columns:ni(e.columns),sortModel:ii(e.sortModel),filterModel:re(e.filterModel),advancedFilterModel:e.version===2?G(e.advancedFilterModel):null,quickFilterText:typeof e.quickFilterText=="string"&&e.quickFilterText.trim()?e.quickFilterText.slice(0,Zn):null,pagination:{enabled:t.enabled===!0,page:Yr(t.page,1),pageSize:Yr(t.pageSize,20)},selectedRowIds:tr(e.selectedRowIds),expandedRowIds:tr(e.expandedRowIds),expandedGroupIds:tr(e.expandedGroupIds)}}function si(n){try{if(typeof structuredClone=="function")return structuredClone(n)}catch{}return Array.isArray(n)?[...n]:n!=null&&typeof n=="object"?{...n}:n}function ht(n,e){let t=e?new Set(e.map(String)):null;return n.filter(r=>!t||t.has(r.rowId)).map(r=>({...r,data:si(r.data),cells:r.cells.map(o=>({...o}))}))}function ai(n,e){let t=typeof n?.rowId=="string"?n.rowId:"";return!e.has(t)||typeof n.message!="string"||!n.message.trim()?null:{...n,rowId:t,message:n.message.trim(),...typeof n.code=="string"&&n.code.trim()?{code:n.code.trim()}:{},...Array.isArray(n.colIds)?{colIds:[...new Set(n.colIds.filter(r=>typeof r=="string"&&r.length>0))]}:{}}}function Qr(n,e){let t=new Map;for(let r of n??[]){let o=ai(r,e);o&&!t.has(o.rowId)&&t.set(o.rowId,o)}return[...t.values()]}function pt(n,e){let t=new Set(n.map(d=>d.rowId)),r=Qr(e?.conflicts,t),o=new Set(r.map(d=>d.rowId)),i=Qr(e?.failures,t).filter(d=>!o.has(d.rowId)),s=new Set([...i,...r].map(d=>d.rowId)),a=e?.savedRowIds==null?null:new Set(e.savedRowIds.map(String).filter(d=>t.has(d))),l=n.filter(d=>!s.has(d.rowId)&&(a==null||a.has(d.rowId)));return{submitted:n,saved:l,failures:i,conflicts:r}}function li(n,e){if(e.serverData===void 0)return null;let t=n.getNodeById(e.rowId);if(!t||t.data==null)return null;let r=n.getGridOption("getRowId");if(r)try{return r({data:e.serverData,index:t.rowIndex,api:n})===e.rowId?{data:e.serverData,mergeIntoCurrent:!1}:null}catch{return null}let o=t.data;return o!=null&&e.serverData!=null&&typeof o=="object"&&typeof e.serverData=="object"?{data:o,mergeIntoCurrent:!0}:null}function Zr(n,e,t){if(n.isDestroyed())return!1;if(t==="keepLocal")return!0;let r=li(n,e);return r?(n.rollbackChanges([e.rowId]),r.mergeIntoCurrent&&Object.assign(r.data,e.serverData),n.applyTransaction({update:[r.data]}),n.markChangesSaved([e.rowId]),!0):!1}function eo(n){return{rows:{setData:e=>n.setRowData(e),apply:e=>n.applyTransaction(e),applyAsync:(e,t)=>n.applyTransactionAsync(e,t),getDisplayedCount:()=>n.getDisplayedRowCount(),getById:e=>n.getNodeById(e),scrollTo:(e,t)=>n.scrollToIndex(e,t),ensureLoaded:(e,t,r)=>n.ensureRowsLoaded(e,t,r),purgeCache:()=>n.purgeDatasourceCache(),getCacheSnapshot:()=>n.getDatasourceCacheSnapshot()},columns:{getState:()=>n.getColumnState(),setState:e=>n.setColumnState(e),resetState:()=>n.resetColumnState(),setVisible:(e,t)=>n.setColumnVisibility(e,t),setWidth:(e,t)=>n.setColumnWidth(e,t)},selection:{getRows:()=>n.getSelectedRows(),getIds:()=>n.getSelectedIds(),selectAll:e=>n.selectAll(e),clear:()=>n.deselectAll()},editing:{getChanges:()=>n.getChanges(),rollback:e=>n.rollbackChanges(e),save:(e,t)=>n.saveChangesDetailed(e,t),stop:e=>n.stopEditingAsync(e)},state:{get:()=>n.getState(),apply:(e,t)=>n.applyState(e,t)},diagnostics:{get:()=>n.getDiagnostics(),getPerformance:()=>n.getPerformanceSnapshot(),resetPerformance:()=>n.resetPerformanceMetrics()}}}function be(n){if(n?.reason instanceof Error)return n.reason;let e=new Error(typeof n?.reason=="string"?n.reason:"The operation was aborted");return e.name="AbortError",e}function to(n,e){return e?e.aborted?Promise.reject(be(e)):new Promise((t,r)=>{let o=()=>r(be(e));e.addEventListener("abort",o,{once:!0}),n.then(t,r).finally(()=>e.removeEventListener("abort",o))}):n}function di(){return{datasourceChanged:!1,filterChanged:!1,needsCellRefresh:!1,needsColumnRebuild:!1,needsHeaderRebuild:!1,needsPoolRebuild:!1,needsRelayout:!1,needsRowRebuild:!1,needsStateLoad:!1,needsSummaryRefresh:!1}}function C(n,e){return Object.prototype.hasOwnProperty.call(n,e)}function M(n,e,t=!1){if(!(typeof n!="number"||!Number.isFinite(n)||n<e))return t?Math.floor(n):n}function Ce(n,e,t,r=!1){let o=M(n,t,r);return o===void 0||o===e?void 0:o}var ft=class{constructor(e){this.core=e;this.measureCanvas=null;this.asyncTransactions=[];this.asyncTransactionTimer=null;let t=eo(this);this.rows=t.rows,this.columns=t.columns,this.selection=t.selection,this.editing=t.editing,this.state=t.state,this.diagnostics=t.diagnostics}batch(e){return this.core.batchUpdates(()=>e(this))}flushUpdates(){this.core.updateScheduler.flush()}whenReady(){return this.core.whenReady()}getRootElement(){return this.core.isDestroyed()?null:this.core.skeleton.root}setRowData(e){this.core.isDestroyed()||(this.core.options.rowData=e??[],!this.core.rowModel.isInfinite&&(this.core.rowModel.setRowData(e),this.core.requestUpdate({data:!0})))}applyTransaction(e){this.core.isDestroyed()||this.core.rowModel.isInfinite||(this.core.rowModel.applyTransaction(e),this.core.requestUpdate({data:!0}))}applyTransactionAsync(e,t={}){if(this.core.isDestroyed()||this.core.rowModel.isInfinite)return Promise.resolve();if(t.signal?.aborted)return Promise.reject(be(t.signal));let r=new Promise((o,i)=>{let s={transaction:e,resolve:o,reject:i,signal:t.signal,aborted:!1};t.signal&&(s.onAbort=()=>{s.aborted||(s.aborted=!0,i(be(t.signal)))},t.signal.addEventListener("abort",s.onAbort,{once:!0})),this.asyncTransactions.push(s)});return this.asyncTransactionTimer==null&&(this.asyncTransactionTimer=setTimeout(()=>this.flushAsyncTransactions(),this.core.options.asyncTransactionWaitMillis)),r}flushAsyncTransactions(){this.asyncTransactionTimer!=null&&clearTimeout(this.asyncTransactionTimer),this.asyncTransactionTimer=null;let e=this.asyncTransactions;this.asyncTransactions=[];let t=e.filter(r=>!r.aborted).map(r=>r.transaction);t.length>0&&!this.core.isDestroyed()&&!this.core.rowModel.isInfinite&&(this.core.rowModel.applyTransactions(t),this.core.requestUpdate({data:!0}));for(let r of e)r.signal&&r.onAbort&&r.signal.removeEventListener("abort",r.onAbort),r.aborted||r.resolve()}getColumnDefs(){return this.core.columnModel.getColumnDefs()}setColumnDefs(e){this.core.isDestroyed()||(this.core.options.columnDefs=e??[],this.core.columnModel.setColumnDefs(e),this.core.loadPersistedColumnState(),this.core.onColumnsStructureChanged(),this.core.rowModel.isInfinite?this.core.rowModel.onServerParamsChanged():(this.core.rowModel.refreshPipeline(),this.core.requestUpdate({data:!0})))}getColumnState(){return this.core.columnModel.getColumnState()}setColumnState(e){this.core.isDestroyed()||(this.core.columnModel.applyColumnState(e),this.core.onColumnsStructureChanged(),this.core.applySortModel(),this.core.persistColumnState())}resetColumnState(){this.core.isDestroyed()||(this.core.columnModel.resetColumnState(),this.core.onColumnsStructureChanged(),this.core.applySortModel(),this.core.persistColumnState())}setColumnVisibility(e,t){this.core.isDestroyed()||(this.core.columnModel.setColumnVisibility(e,t),this.core.onColumnsStructureChanged(),this.core.emit("columnVisibilityChanged",{colId:e,visible:t}),this.core.persistColumnState())}moveColumn(e,t){this.core.isDestroyed()||this.core.moveColumn(e,t)}setColumnPinned(e,t){this.core.isDestroyed()||(this.core.columnModel.setColumnPinned(e,t),this.core.onColumnsStructureChanged(),this.core.persistColumnState())}setColumnWidth(e,t){if(this.core.isDestroyed())return!1;let r=this.core.columnModel.getColumn(e);return!r||!this.core.columnModel.setColumnWidth(r,t)?!1:(this.core.relayoutColumns(),this.core.commitColumnWidths([r]),!0)}sizeColumnsToFit(e){if(this.core.isDestroyed())return;let t=this.core.columnModel.getOrderedVisible();if(t.length===0)return;let r=e??this.core.skeleton.measureViewportWidth();if(r<=0)return;let o=t.reduce((s,a)=>s+a.currentWidth,0);if(o<=0)return;let i=t.filter(s=>this.core.columnModel.setColumnWidth(s,Math.max(30,Math.floor(s.currentWidth*r/o))));this.core.relayoutColumns(),this.core.commitColumnWidths(i)}autoSizeColumn(e,t=!1){if(this.core.isDestroyed())return;let r=this.core.columnModel.getColumn(e);r&&this.autoSizeColumnInternal(r,t)&&(this.core.relayoutColumns(),this.core.commitColumnWidths([r]))}autoSizeColumnInternal(e,t){if(e.hasCheckbox||e.isDetailToggle)return this.core.columnModel.setColumnWidth(e,e.isDetailToggle?38:46);this.measureCanvas??(this.measureCanvas=document.createElement("canvas"));let r=this.measureCanvas.getContext("2d");if(!r)return!1;let o=window.getComputedStyle(this.core.skeleton.root);r.font=`${o.fontStyle} ${o.fontWeight} ${o.fontSize} ${o.fontFamily}`;let i=0,s=c=>{if(!c)return;let u=r.measureText(c).width;u>i&&(i=u)};t||s(e.colDef.headerName??e.colDef.field??e.id);let a=this.core.rowModel.getAllNodes(),l=Math.min(a.length,2e3);for(let c=0;c<l;c++)s(N(this.core,a[c],e));let d=(e.sortable?20:0)+(e.filterable?28:0)+(this.core.options.columnMenu?22:0)+28;return this.core.columnModel.setColumnWidth(e,Math.ceil(i)+d)}autoSizeAllColumns(e){if(this.core.isDestroyed())return;let t=[];for(let r of this.core.columnModel.getOrderedVisible())this.autoSizeColumnInternal(r,e??!1)&&t.push(r);t.length>0&&(this.core.relayoutColumns(),this.core.commitColumnWidths(t))}getSortModel(){return this.core.columnModel.getSortModel()}setSortModel(e){this.core.isDestroyed()||(this.core.columnModel.applySortModel(e),this.core.applySortModel())}getFilterModel(){return this.core.rowModel.getFilterModel()}setFilterModel(e){if(!this.core.isDestroyed()){if(this.core.rowModel.setFilterModel(e),this.core.headerRenderer.refreshFilterIcons(),this.emitFilterChanged(),this.core.rowModel.isInfinite){this.core.rowModel.onServerParamsChanged();return}this.core.rowModel.refreshPipeline(),this.core.requestUpdate({data:!0})}}getAdvancedFilterModel(){return this.core.rowModel.getAdvancedFilterModel()}setAdvancedFilterModel(e){if(!(this.core.isDestroyed()||!this.core.rowModel.setAdvancedFilterModel(e))){if(this.emitFilterChanged(),this.core.rowModel.isInfinite){this.core.rowModel.onServerParamsChanged();return}this.core.rowModel.refreshPipeline(),this.core.requestUpdate({data:!0})}}emitFilterChanged(){this.core.emit("filterChanged",{filterModel:this.core.rowModel.getFilterModel(),advancedFilterModel:this.core.rowModel.getAdvancedFilterModel()})}isColumnFilterPresent(e){return Object.prototype.hasOwnProperty.call(this.core.rowModel.getFilterModel(),e)}setQuickFilter(e){this.core.isDestroyed()||(this.core.options.quickFilterText=e!=null&&e.trim()!==""?e:null,this.core.rowModel.setQuickFilter(e)&&this.core.applyQuickFilter())}getQuickFilter(){return this.core.rowModel.getQuickFilter()}getRowSelection(){return this.core.options.rowSelection}setRowSelection(e){this.core.isDestroyed()||this.core.options.rowSelection!==e&&(this.core.options.rowSelection=e,e==="none"&&this.deselectAll(),this.core.headerRenderer.build(),this.core.bodyRenderer.rebuildPool())}getSelectedNodes(){return this.core.selectionService.getSelectedNodes()}getSelectedRows(){return this.core.selectionService.getSelectedRows()}selectNodeById(e,t=!0,r=!0){this.core.selectionService.selectNodeById(e,t,r)}selectAll(e=!0){this.core.selectionService.selectAll(e)}deselectAll(){this.core.selectionService.deselectAll()}getDisplayedRowCount(){return this.core.rowModel.getDisplayedRowCount()}getRowNode(e){return this.core.rowModel.getDisplayedRow(e)}getNodeById(e){return this.core.rowModel.getNodeById(e)}forEachNode(e){this.core.rowModel.forEachNode(e)}forEachNodeAfterFilterAndSort(e){this.core.rowModel.forEachNodeAfterFilterAndSort(e)}scrollToIndex(e,t="top"){this.core.bodyRenderer.scrollToIndex(e,t)}expandRow(e){return this.core.isDestroyed()?!1:this.core.rowModel.expandRow(e)}collapseRow(e){return this.core.isDestroyed()?!1:this.core.rowModel.collapseRow(e)}toggleDetailRow(e){return this.core.isDestroyed()?!1:this.core.rowModel.toggleDetail(e)}isRowExpanded(e){return this.core.rowModel.isRowExpanded(e)}expandAllDetails(){this.core.isDestroyed()||this.core.rowModel.expandAllDetails()}collapseAllDetails(){this.core.isDestroyed()||this.core.rowModel.collapseAllDetails()}loadTreeChildren(e,t={}){return this.core.isDestroyed()?Promise.resolve([]):this.core.rowModel.loadTreeChildren(e,t.force===!0)}retryTreeChildren(e){return this.loadTreeChildren(e,{force:!0})}isTreeRowLoading(e){return!this.core.isDestroyed()&&this.core.rowModel.isTreeRowLoading(e)}toggleRowGroup(e){return this.core.isDestroyed()?!1:this.core.rowModel.toggleGroup(e)}reorderRows(e,t){return this.core.isDestroyed()?!1:this.core.rowModel.reorderRowsByDisplayed(e,t)}isGroupExpanded(e){return this.core.rowModel.isGroupExpanded(e)}expandAllGroups(){this.core.isDestroyed()||this.core.rowModel.expandAllGroups()}collapseAllGroups(){this.core.isDestroyed()||this.core.rowModel.collapseAllGroups()}setSelection(e,t=!0){if(this.core.isDestroyed())return;let r=this.core.options.getRowId,o=[];for(let i of e){let s=r?this.core.rowModel.getNodeById(this.core.rowModel.resolveRowId(i,-1,`__missing_selection_${this.core.nextId()}`)):this.core.rowModel.getAllNodes().find(a=>a.data===i);s&&o.push({node:s,selected:!0})}o.length>0?this.core.selectionService.applySelectionPublic(o,t):t&&this.deselectAll()}getVisibleSelection(){let e=new Set(this.core.selectionService.getSelectedNodes().map(t=>t.id));return this.core.rowModel.getDisplayedRows().filter(t=>!t.isDetail&&!t.isGroup&&e.has(t.id)).map(t=>t.data).filter(Boolean)}getSelectedIds(){return this.core.selectionService.getSelectedIds()}undo(){return this.core.isDestroyed()?!1:this.core.undoService.undo()}redo(){return this.core.isDestroyed()?!1:this.core.undoService.redo()}canUndo(){return this.core.undoService.canUndo()}canRedo(){return this.core.undoService.canRedo()}getDirtyRowIds(){return this.core.changeTracker.getDirtyRowIds()}getChanges(){return this.core.changeTracker.getChanges()}markChangesSaved(e){this.core.changeTracker.markSaved(e)}async saveChanges(e,t){return(await this.saveChangesDetailed(e,t)).saved}async saveChangesDetailed(e,t){let r=ht(this.core.changeTracker.getChanges(),t);if(r.length===0)return{submitted:[],saved:[],failures:[],conflicts:[]};let o=pt(r,await e(r));return this.core.isDestroyed()||this.core.changeTracker.acknowledge(o.saved),o}rollbackChanges(e){return this.core.changeTracker.rollback(e)}setPinnedTopRowData(e){this.core.isDestroyed()||(this.core.options.pinnedTopRowData=e??[],this.core.pinnedRowsRenderer.setTopData(this.core.options.pinnedTopRowData))}getPinnedTopRowData(){return this.core.pinnedRowsRenderer.getTopData()}setPinnedBottomRowData(e){this.core.isDestroyed()||(this.core.options.pinnedBottomRowData=e??[],this.core.pinnedRowsRenderer.setBottomData(this.core.options.pinnedBottomRowData))}getPinnedBottomRowData(){return this.core.pinnedRowsRenderer.getBottomData()}getRangeSelection(){return this.core.bodyRenderer.getRangeSelection()}clearRangeSelection(){this.core.isDestroyed()||this.core.bodyRenderer.clearRangeSelection()}copyRangeToClipboard(){return this.core.isDestroyed()?Promise.resolve(!1):this.core.copyActiveRange()}openColumnPanel(e){this.openColumnWorkbench(e)}openColumnWorkbench(e){this.core.isDestroyed()||this.core.columnMenu.openStandalone(e)}closeColumnWorkbench(){this.core.columnMenu.close()}getColumnWorkbenchItems(){return this.core.columnModel.getColumns().filter(e=>!e.isDetailToggle).map(e=>({colId:e.id,label:e.colDef.headerName??e.colDef.field??e.id,visible:!e.hide,pinned:e.pinned,width:e.currentWidth||e.manualWidth||e.colDef.width||0,movable:e.movable,hideable:!e.hasCheckbox}))}refreshLayout(){this.core.isDestroyed()||(this.core.relayout(),this.core.bodyRenderer.syncScroll())}isInfinite(){return this.core.rowModel.isInfinite}reload(e={}){return this.core.isDestroyed()?Promise.resolve():e.signal?.aborted?Promise.reject(be(e.signal)):this.core.rowModel.isInfinite?to(this.core.rowModel.reloadInfinite(e.signal),e.signal):(this.core.rowModel.setRowData(this.core.options.rowData),this.core.requestUpdate({data:!0}),Promise.resolve())}ensureRowsLoaded(e,t,r={}){return this.core.isDestroyed()?Promise.resolve():to(this.core.rowModel.ensureRowsLoaded(e,t,r.signal),r.signal)}purgeDatasourceCache(){this.core.isDestroyed()||this.core.rowModel.purgeDatasourceCache()}getDatasourceCacheSnapshot(){return this.core.rowModel.getDatasourceCacheSnapshot()}paginationEnabled(){return this.core.rowModel.paginationActive}setPaginationEnabled(e){this.core.isDestroyed()||this.core.rowModel.setPaginationEnabled(e)}getPage(){return this.core.rowModel.getCurrentPage()}setPage(e){this.core.isDestroyed()||this.core.rowModel.setPage(e)}getPageSize(){return this.core.options.paginationPageSize}setPageSize(e){this.core.isDestroyed()||this.core.rowModel.setPageSize(e)}getPageCount(){return this.core.rowModel.getPageCount()}getTotalRowCount(){return this.core.rowModel.getTotalRowCount()}importCsv(e,t={}){if(this.core.isDestroyed()||!e)return!1;let r=Ke(e,t.separator??",");if(r.length===0)return!1;let o=r[t.headerRowIndex??0]??[],i=r.slice((t.headerRowIndex??0)+1).filter(c=>c.some(u=>u!=="")),s=t.mode??"replace";if(s==="paste")return this.core.pasteText(se(i,!1),0,0),!0;let a=this.core.columnModel.getOrderedVisible().filter(c=>c.colDef.field),l=this.resolveCsvFieldOrder(o,a),d=this.buildCsvRecords(i,l,t);return s==="append"?this.core.rowModel.applyTransaction({add:d}):this.core.rowModel.setRowData(d),this.core.requestUpdate({data:!0}),!0}resolveCsvFieldOrder(e,t){let r=new Map;for(let i of t){let s=i.colDef.field;s&&(r.set(String(i.colDef.headerName??s),s),r.set(s,s))}e.length>0&&(e[0]=e[0].replace(/^\uFEFF/,""));let o=e.map((i,s)=>({field:r.get(String(i).trim())??null,index:s})).filter(i=>i.field!=null);return o.length>0?o:t.map((i,s)=>({field:i.colDef.field,index:s}))}buildCsvRecords(e,t,r){return e.map((o,i)=>{let s={};return t.forEach(({field:a,index:l})=>{let d=o[l];if(d===void 0)return;let c=this.parseCsvValue(d,a,i,l,r);U(s,a,c)||this.core.reportError(new Error(`Unsafe CSV field: ${a}`),"csv.import",{field:a})}),s})}parseCsvValue(e,t,r,o,i){if(i.parseValue)try{return i.parseValue({value:e,field:t,rowIndex:r,columnIndex:o})}catch(l){return this.core.reportError(l,"csv.parseValue",{field:t,rowIndex:r,columnIndex:o}),e}if(e==="")return null;let s=/^[+-]?(?:\d+(?:\.\d+)?|\.\d+)(?:[eE][+-]?\d+)?$/.test(e),a=/^[+-]?0\d/.test(e);return i.coerceNumbers!==!1&&s&&!a?Number(e):e}print(e={}){if(this.core.isDestroyed())return!1;try{let t=window.open("","_blank","width=980,height=720");if(!t)return!1;let r=this.core.columnModel.getOrderedVisible().filter(d=>!d.hasCheckbox&&!d.isDetailToggle&&!d.colDef.rowDrag),o=this.core.rowModel.getPipelineRows().filter(d=>!d.isDetail&&!d.isGroup),s=e.includeHeader!==!1?`<tr>${r.map(d=>`<th>${Y(d.colDef.headerName??d.colDef.field??d.id)}</th>`).join("")}</tr>`:"",a=o.map(d=>`<tr>${r.map(c=>{let u=N(this.core,d,c);return`<td>${Y(u)}</td>`}).join("")}</tr>`).join(""),l=`<!doctype html><html><head><meta charset="utf-8"><title>${Y(e.title??"MachTable")}</title><style>body{font-family:system-ui,"PingFang SC","Microsoft YaHei",sans-serif;padding:20px}h3{margin:0 0 12px;font-size:16px}table{border-collapse:collapse;width:100%;font-size:12px}th,td{border:1px solid #bbb;padding:5px 8px;text-align:left;word-break:break-all}th{background:#f2f5f9;font-weight:600}@page{margin:12mm}</style></head><body><h3>${Y(e.title??"")}</h3><table>${s}${a}</table></body></html>`;return t.document.write(l),t.document.close(),t.focus(),t.print(),!0}catch{return!1}}startEditingCell(e){let t=this.core.columnModel.getColumn(e.colId);return t?this.core.editingService.start(e.rowIndex,t,e.keyPress??null):!1}startEditingRow(e){return this.core.editingService.startRow(e)}isRowEditing(e){return this.core.editingService.isRowEditing(e)}stopEditing(e){this.core.editingService.stop(e??!1)}stopEditingAsync(e){return this.core.editingService.stopAsync(e??!1)}stopEditingRow(e){return this.core.editingService.stopRowAsync(e??!1)}refreshCells(e){let t=e==null||e.rowIds==null&&e.rowIndexes==null&&e.columns==null;this.core.requestUpdate({cells:e??!0,pinned:e?.includePinned??t,summary:t})}getGridOption(e){return this.core.options[e]}setGridOption(e,t){this.updateOptions({[e]:t})}updateOptions(e){if(this.core.isDestroyed())return;this.core.checkWarnings(e),e=ut(e);let t=di(),r=this.core.options.columnMenu;this.updateSourceOptions(e,t),this.updateDimensionOptions(e,t),this.updateEditingOptions(e,t),this.updateInteractionOptions(e,t),this.updatePaginationOptions(e),this.updatePresentationOptions(e,t),this.updateAccessibilityOptions(e,t),this.updateRowModelOptions(e,t),this.updateExtensionOptions(e,t),this.updateDatasourceOptions(e,t),this.applyOptionUpdateEffects(e,t,r)}updateSourceOptions(e,t){let r=this.core.options;C(e,"columnDefs")&&e.columnDefs!==r.columnDefs&&(r.columnDefs=Array.isArray(e.columnDefs)?e.columnDefs:[],t.needsColumnRebuild=!0,t.needsRowRebuild=!0),C(e,"rowData")&&(r.rowData=Array.isArray(e.rowData)?e.rowData:[],t.needsRowRebuild=!0),C(e,"initialState")&&e.initialState&&(r.initialState=e.initialState,t.stateToApply=e.initialState),this.updateEventHandlers(e)}updateEventHandlers(e){for(let t of z){let r=`on${t.charAt(0).toUpperCase()}${t.slice(1)}`;C(e,r)&&Object.assign(this.core.options,{[r]:e[r]})}}updateDimensionOptions(e,t){let r=this.core.options,o=Ce(e.rowHeight,r.rowHeight,1),i=Ce(e.headerHeight,r.headerHeight,1),s=Ce(e.rowBuffer,r.rowBuffer,0,!0),a=Ce(e.detailRowHeight,r.detailRowHeight,1);o!==void 0&&(r.rowHeight=o,t.needsRelayout=!0),i!==void 0&&(r.headerHeight=i,t.needsRelayout=!0,t.needsHeaderRebuild=!0),s!==void 0&&(r.rowBuffer=s,t.needsRelayout=!0),e.columnLayout!=null&&e.columnLayout!==r.columnLayout&&(r.columnLayout=e.columnLayout==="fit"?"fit":"normal",t.needsRelayout=!0),e.domLayout!=null&&e.domLayout!==r.domLayout&&(r.domLayout=e.domLayout==="autoHeight"?"autoHeight":"normal",this.core.skeleton.applyDomLayout(r.domLayout),t.needsPoolRebuild=!0),e.multiSort!=null&&(r.multiSort=e.multiSort),a!==void 0&&(r.detailRowHeight=a,this.core.bodyRenderer.applyContainerSizes(),this.core.bodyRenderer.updateRange(!0))}updateEditingOptions(e,t){let r=this.core.options;e.editType!=null&&e.editType!==r.editType&&(this.core.editingService.stop(!0),r.editType=e.editType==="fullRow"?"fullRow":"cell",t.needsCellRefresh=!0),e.editableIndicator!=null&&e.editableIndicator!==r.editableIndicator&&(r.editableIndicator=e.editableIndicator==="always"||e.editableIndicator==="none"?e.editableIndicator:"hover",t.needsCellRefresh=!0),C(e,"rowEditValidator")&&(r.rowEditValidator=e.rowEditValidator),e.singleClickEdit!=null&&(r.singleClickEdit=e.singleClickEdit),e.manualSorting!=null&&(r.manualSorting=e.manualSorting),e.manualFiltering!=null&&(r.manualFiltering=e.manualFiltering)}updateInteractionOptions(e,t){let r=this.core.options;typeof e.enableColumnResize=="boolean"&&e.enableColumnResize!==r.enableColumnResize&&(this.core.resizeService.cancelResize(),r.enableColumnResize=e.enableColumnResize,t.needsHeaderRebuild=!0),e.locale!=null&&e.locale!==r.locale&&(r.locale=e.locale,t.needsHeaderRebuild=!0,t.needsCellRefresh=!0,this.core.paginationBar.rebuild(),this.core.statusBarService.rebuild()),e.indexOffset!=null&&e.indexOffset!==r.indexOffset&&(r.indexOffset=e.indexOffset,t.needsCellRefresh=!0),e.showSummary!=null&&e.showSummary!==r.showSummary&&(r.showSummary=e.showSummary,t.needsSummaryRefresh=!0,t.needsRelayout=!0);let o=Ce(e.undoStackSize,r.undoStackSize,0,!0);o!==void 0&&(r.undoStackSize=o,this.core.undoService.trimToSize());let i=M(e.asyncTransactionWaitMillis,0,!0);i!==void 0&&(r.asyncTransactionWaitMillis=i),this.updateDynamicRowHeight(e,t),this.updateRangeAndFeedbackOptions(e)}updateDynamicRowHeight(e,t){if(!C(e,"getRowHeight"))return;let r=this.core.options.getRowHeight!==e.getRowHeight;this.core.options.getRowHeight=e.getRowHeight,r&&this.core.bodyRenderer.invalidateAllRowHeights(),t.needsRelayout=!0}updateRangeAndFeedbackOptions(e){let t=this.core.options;e.enableRangeSelection!=null&&(t.enableRangeSelection=e.enableRangeSelection,e.enableRangeSelection||this.clearRangeSelection()),C(e,"tooltipComponent")&&(t.tooltipComponent=e.tooltipComponent);let r=M(e.tooltipShowDelay,0);r!==void 0&&(t.tooltipShowDelay=r),e.flashCells!=null&&(t.flashCells=e.flashCells),C(e,"getContextMenuItems")&&(t.getContextMenuItems=e.getContextMenuItems),e.theme!=null&&e.theme!==t.theme&&(t.theme=e.theme,this.core.skeleton.applyTheme(e.theme),this.core.watermarkService.refresh())}updatePaginationOptions(e){if(e.pagination===void 0)return;let t=this.core.options,r=e.pagination,o=r!==!1&&t.datasource==null;o!==t.paginationEnabled&&this.core.rowModel.setPaginationEnabled(o),typeof r=="object"&&r&&this.updatePaginationConfig(r),t.paginationEnabled&&this.core.rowModel.onPaginationOptionsChanged(),this.core.paginationBar.rebuild()}updatePaginationConfig(e){let t=this.core.options;t.paginationMode=e.mode==="server"?"server":"client";let r=M(e.page,1,!0),o=M(e.total,0,!0);r!==void 0&&(t.paginationPage=r),o!==void 0&&(t.paginationTotal=o),e.pageSize!=null&&(t.paginationPageSize=e.pageSize),e.pageSizeOptions!=null&&(t.paginationPageSizeOptions=e.pageSizeOptions),e.showTotal!=null&&(t.paginationShowTotal=e.showTotal),e.showPageSizeSelector!=null&&(t.paginationShowSizeSelector=e.showPageSizeSelector)}updatePresentationOptions(e,t){this.updateWatermarkAndStatus(e,t),this.updateSizePreset(e,t);let r=this.core.options;e.stripedRows!=null&&e.stripedRows!==r.stripedRows&&(r.stripedRows=e.stripedRows,this.core.skeleton.setStriped(e.stripedRows)),e.showCellBorders!=null&&e.showCellBorders!==r.showCellBorders&&(r.showCellBorders=e.showCellBorders,this.core.skeleton.setCellBorders(e.showCellBorders))}updateWatermarkAndStatus(e,t){let r=this.core.options;e.watermark!==void 0&&(r.watermarkEnabled=e.watermark!=null&&e.watermark!==!1,r.watermarkConfig=e.watermark==null||e.watermark===!1?null:e.watermark===!0?{text:"MachTable"}:e.watermark,this.core.watermarkService.refresh()),this.updateStatusOptions(e),C(e,"summaryMethod")&&(r.summaryMethod=e.summaryMethod,t.needsSummaryRefresh=!0)}updateStatusOptions(e){let t=this.core.options;e.suppressClipboard!=null&&(t.suppressClipboard=e.suppressClipboard),e.contextMenu!=null&&(t.contextMenu=e.contextMenu),e.columnMenu!=null&&(t.columnMenu=e.columnMenu),e.fillHandle!=null&&(t.fillHandle=e.fillHandle),e.statusBar!==void 0&&(t.statusBarEnabled=e.statusBar===!0||typeof e.statusBar=="object"&&e.statusBar!=null,typeof e.statusBar=="object"&&e.statusBar?.panels&&(t.statusBarPanels=e.statusBar.panels),this.core.statusBarService.rebuild())}updateSizePreset(e,t){let{size:r}=e;if(r==null||!C(q,r)||r===this.core.options.size)return;let o=q[r];this.core.options.size=r,this.core.options.rowHeight=e.rowHeight??o.rowHeight,this.core.options.headerHeight=e.headerHeight??o.headerHeight,this.core.skeleton.applySize(r),t.needsRelayout=!0,t.needsHeaderRebuild=!0}updateAccessibilityOptions(e,t){let r=this.core.options;e.suppressCellFocus!=null&&(r.suppressCellFocus=e.suppressCellFocus),e.suppressRowHoverHighlight!=null&&(r.suppressRowHoverHighlight=e.suppressRowHoverHighlight),e.suppressNoRowsOverlay!=null&&(r.suppressNoRowsOverlay=e.suppressNoRowsOverlay),e.suppressHeaderFocus!=null&&e.suppressHeaderFocus!==r.suppressHeaderFocus&&(r.suppressHeaderFocus=e.suppressHeaderFocus,t.needsHeaderRebuild=!0),this.updateAriaLabels(e),this.updateOverlayOptions(e)}updateAriaLabels(e){let t=this.core.options,r=!1;C(e,"ariaLabel")&&(t.ariaLabel=e.ariaLabel??"MachTable data grid",r=!0),C(e,"ariaLabelledBy")&&(t.ariaLabelledBy=e.ariaLabelledBy??"",r=!0),C(e,"ariaDescribedBy")&&(t.ariaDescribedBy=e.ariaDescribedBy??"",r=!0),r&&this.core.skeleton.applyAriaLabels(t)}updateOverlayOptions(e){let t=this.core.options;C(e,"overlayNoRowsTemplate")&&(t.overlayNoRowsTemplate=e.overlayNoRowsTemplate??""),C(e,"overlayLoadingTemplate")&&(t.overlayLoadingTemplate=e.overlayLoadingTemplate??""),C(e,"overlayErrorTemplate")&&(t.overlayErrorTemplate=e.overlayErrorTemplate??""),e.allowUnsafeOverlayHtml!=null&&(t.allowUnsafeOverlayHtml=e.allowUnsafeOverlayHtml),C(e,"className")&&(t.className=e.className??"",this.core.skeleton.setCustomClass(t.className)),e.loading!=null&&(t.loading=e.loading),C(e,"error")&&(t.error=e.error??null)}updateRowModelOptions(e,t){this.updateSelectionAndColumns(e,t),this.updateHierarchyOptions(e,t);let r=this.core.options;e.autoCheckedChildren!=null&&(r.autoCheckedChildren=e.autoCheckedChildren),e.defaultExpandAll!=null&&e.defaultExpandAll!==r.defaultExpandAll&&(r.defaultExpandAll=e.defaultExpandAll,t.needsRowRebuild=!0),C(e,"advancedFilterModel")&&(t.filterChanged=this.core.rowModel.setAdvancedFilterModel(e.advancedFilterModel)||t.filterChanged),e.applyRowDrag!=null&&(r.applyRowDrag=e.applyRowDrag),e.suppressWarnings!=null&&(r.suppressWarnings=e.suppressWarnings)}updateSelectionAndColumns(e,t){let r=this.core.options;if(e.rowSelection!=null&&e.rowSelection!==r.rowSelection&&(r.rowSelection=e.rowSelection,e.rowSelection==="none"&&this.deselectAll(),t.needsHeaderRebuild=!0,t.needsPoolRebuild=!0,this.core.refreshAriaState()),e.quickFilterText!==void 0&&this.setQuickFilter(e.quickFilterText),e.defaultColDef!==void 0&&e.defaultColDef!==r.defaultColDef&&(r.defaultColDef={..._t,...e.defaultColDef},t.needsColumnRebuild=!0),C(e,"columnTypes")&&e.columnTypes!==r.columnTypes&&(r.columnTypes=e.columnTypes??{},t.needsColumnRebuild=!0),C(e,"getRowId")&&e.getRowId!==r.getRowId&&(r.getRowId=e.getRowId,t.needsRowRebuild=!0),C(e,"rowKey")){if(r.rowKey=e.rowKey,!C(e,"getRowId")){let o=e.rowKey;r.getRowId=o?({data:i})=>Wt(o,i):void 0}t.needsRowRebuild=!0}}updateHierarchyOptions(e,t){let r=this.core.options;e.masterDetail!=null&&e.masterDetail!==r.masterDetail&&(r.masterDetail=e.masterDetail,t.needsColumnRebuild=!0,t.needsRowRebuild=!0),e.detailToggleColumn!=null&&e.detailToggleColumn!==r.detailToggleColumn&&(r.detailToggleColumn=e.detailToggleColumn,t.needsColumnRebuild=!0),e.treeData!=null&&e.treeData!==r.treeData&&(r.treeData=e.treeData,t.needsRowRebuild=!0,t.needsColumnRebuild=!0,this.core.refreshAriaState()),e.childrenKey!=null&&e.childrenKey!==r.childrenKey&&(r.childrenKey=e.childrenKey,t.needsRowRebuild=!0),C(e,"isTreeRowExpandable")&&(r.isTreeRowExpandable=e.isTreeRowExpandable,t.needsCellRefresh=!0),C(e,"loadTreeChildren")&&(r.loadTreeChildren=e.loadTreeChildren,t.needsCellRefresh=!0)}updateExtensionOptions(e,t){let r=this.core.options;C(e,"aggFuncs")&&(r.aggFuncs=e.aggFuncs,t.needsRowRebuild=!0),C(e,"components")&&(r.components=e.components,t.needsCellRefresh=!0),C(e,"actionPolicy")&&(r.actionPolicy=e.actionPolicy,t.needsCellRefresh=!0),C(e,"features")&&(r.features=Array.isArray(e.features)?e.features:[],this.core.setFeatures(r.features)),this.updateProcessorOptions(e,t),this.updatePersistenceOptions(e,t)}updateProcessorOptions(e,t){let r=this.core.options;C(e,"dataProcessor")&&e.dataProcessor!==r.dataProcessor&&(r.dataProcessor?.destroy?.(),r.dataProcessor=e.dataProcessor,t.needsRowRebuild=!0);let o=M(e.dataProcessorMinRows,1,!0);o!==void 0&&o!==r.dataProcessorMinRows&&(r.dataProcessorMinRows=o,t.needsRowRebuild=!0)}updatePersistenceOptions(e,t){let r=this.core.options,o=!1;C(e,"columnStateStore")&&(r.columnStateStore=e.columnStateStore,t.needsStateLoad=!0),C(e,"columnStateKey")&&(r.columnStateKey=e.columnStateKey??null,t.needsStateLoad=!0),C(e,"stateStore")&&(r.stateStore=e.stateStore,o=!0),C(e,"stateKey")&&(r.stateKey=e.stateKey??null,o=!0);let i=M(e.stateSaveDebounceMs,0,!0);i!==void 0&&(r.stateSaveDebounceMs=i),o&&this.core.loadPersistedGridState()}updateDatasourceOptions(e,t){this.updateDatasourceTuning(e,t),this.updateDatasourceMode(e,t),this.updateDatasourceReference(e,t),this.updatePinnedRows(e)}updateDatasourceTuning(e,t){let r=this.core.options,o=M(e.blockSize,1,!0),i=M(e.infiniteBufferRows,0,!0),s=M(e.maxBlocksInCache,1,!0),a=M(e.blockPrefetch,0,!0),l=M(e.datasourceRetryCount,0,!0),d=M(e.datasourceRetryDelay,0,!0);o!==void 0&&o!==r.blockSize&&(r.blockSize=o,t.datasourceChanged=t.datasourceChanged||r.datasourceMode==="block"),i!==void 0&&(r.infiniteBufferRows=i),s!==void 0&&s!==r.maxBlocksInCache&&(r.maxBlocksInCache=s,t.datasourceChanged=t.datasourceChanged||r.datasourceMode==="block"),a!==void 0&&(r.blockPrefetch=a),l!==void 0&&(r.datasourceRetryCount=l),d!==void 0&&(r.datasourceRetryDelay=d)}updateDatasourceMode(e,t){let r=this.core.options;if(C(e,"datasourceMode")){let o=e.datasourceMode==="block"?"block":"sequential";o!==r.datasourceMode&&(r.datasourceMode=o,t.datasourceChanged=!0)}if(C(e,"datasourceRowCount")){let o=e.datasourceRowCount==null?null:M(e.datasourceRowCount,0,!0)??null;o!==r.datasourceRowCount&&(r.datasourceRowCount=o,t.datasourceChanged=!0)}}updateDatasourceReference(e,t){let r=this.core.options;C(e,"datasource")&&e.datasource!==r.datasource&&(r.datasource=e.datasource,r.paginationEnabled=e.datasource==null&&r.paginationEnabled,t.datasourceChanged=!0,this.core.paginationBar.rebuild()),C(e,"detailRowRenderer")&&(r.detailRowRenderer=e.detailRowRenderer,t.needsCellRefresh=!0),C(e,"isRowExpandable")&&(r.isRowExpandable=e.isRowExpandable,t.needsCellRefresh=!0)}updatePinnedRows(e){let t=this.core.options;e.pinnedTopRowData!==void 0&&(t.pinnedTopRowData=e.pinnedTopRowData??[],this.core.pinnedRowsRenderer.setTopData(t.pinnedTopRowData)),e.pinnedBottomRowData!==void 0&&(t.pinnedBottomRowData=e.pinnedBottomRowData??[],this.core.pinnedRowsRenderer.setBottomData(t.pinnedBottomRowData))}applyOptionUpdateEffects(e,t,r){let o=this.core.options;t.needsColumnRebuild&&(this.core.columnModel.setColumnDefs(o.columnDefs),this.core.onColumnsStructureChanged(),t.needsHeaderRebuild=!1,t.needsPoolRebuild=!1),t.needsStateLoad&&(this.core.loadPersistedColumnState(),this.core.onColumnsStructureChanged()),this.applyRowUpdateEffect(t),t.filterChanged&&(this.emitFilterChanged(),!t.datasourceChanged&&!t.needsRowRebuild&&(this.core.rowModel.isInfinite?this.core.rowModel.onServerParamsChanged():(this.core.rowModel.refreshPipeline(),this.core.requestUpdate({data:!0})))),t.needsRelayout&&this.core.skeleton.updateHeights(o.rowHeight,o.headerHeight),e.columnMenu!=null&&e.columnMenu!==r&&(t.needsHeaderRebuild=!0),t.stateToApply&&this.applyState(t.stateToApply),this.core.requestUpdate({layout:t.needsRelayout,header:t.needsHeaderRebuild,pool:t.needsPoolRebuild,cells:t.needsCellRefresh&&!t.needsPoolRebuild?!0:void 0,summary:t.needsSummaryRefresh,overlays:!0})}applyRowUpdateEffect(e){if(e.datasourceChanged){this.core.rowModel.onDatasourceChanged();return}if(e.needsRowRebuild){if(this.core.rowModel.isInfinite){this.core.rowModel.onServerParamsChanged();return}this.core.rowModel.setRowData(this.core.options.rowData),this.core.requestUpdate({data:!0})}}getDataAsCsv(e={}){let t=this.core.columnModel.getOrderedVisible().filter(o=>!o.hasCheckbox&&!o.isDetailToggle);if(e.headersOnly)return jt({getHeaderLabels:()=>t.map(o=>o.colDef.headerName??o.colDef.field??o.id),getRowValues:()=>[]},e);let r=e.onlySelected?this.core.selectionService.getSelectedNodes().slice().sort((o,i)=>o.rowIndex-i.rowIndex):e.onlyAllDisplayed?this.core.rowModel.getDisplayedRows().filter(o=>!o.isDetail&&!o.isGroup):this.core.rowModel.getPipelineRows().filter(o=>!o.isDetail&&!o.isGroup);return jt({getHeaderLabels:()=>t.map(o=>o.colDef.headerName??o.colDef.field??o.id),getRowValues:()=>r.map(o=>t.map(i=>{let s=this.core.getCellValue(o,i);return typeof s=="number"?s:N(this.core,o,i)}))},e)}getState(){return{version:2,columns:this.getColumnState(),sortModel:this.getSortModel(),filterModel:this.getFilterModel(),advancedFilterModel:this.getAdvancedFilterModel(),quickFilterText:this.getQuickFilter(),pagination:{enabled:this.paginationEnabled(),page:this.getPage(),pageSize:this.getPageSize()},selectedRowIds:this.getSelectedIds(),expandedRowIds:this.core.rowModel.getExpandedRowIds(),expandedGroupIds:this.core.rowModel.getExpandedGroupIds()}}applyState(e,t={}){if(this.core.isDestroyed())return;let r=O(e);if(!r)return;let o=["columns","sort","filter","pagination","selection","expansion"],i=new Set(t.sections??o);this.core.editingService.stop(!0),this.restoreStateSections(r,i),this.refreshAfterStateRestore(r,i),t.emitEvents!==!1&&this.emitStateEvents(i)}restoreStateSections(e,t){t.has("columns")&&this.core.columnModel.applyColumnState(e.columns??[]),t.has("sort")&&this.core.columnModel.applySortModel(e.sortModel??[]),t.has("filter")&&(this.core.rowModel.setFilterModel(e.filterModel??{}),this.core.rowModel.setAdvancedFilterModel(e.advancedFilterModel),this.core.rowModel.setQuickFilter(e.quickFilterText)),t.has("expansion")&&this.core.rowModel.restoreExpansion(e.expandedRowIds??[],e.expandedGroupIds??[]),t.has("pagination")&&e.pagination&&(this.core.options.paginationEnabled=e.pagination.enabled&&!this.core.rowModel.isInfinite,this.core.rowModel.restorePagination(e.pagination.page,e.pagination.pageSize),this.core.paginationBar.rebuild())}refreshAfterStateRestore(e,t){t.has("columns")&&this.core.onColumnsStructureChanged(),this.core.rowModel.isInfinite?this.core.rowModel.onServerParamsChanged():(this.core.rowModel.refreshPipeline(),this.core.requestUpdate({data:!0})),this.core.headerRenderer.refreshSortIndicators(),this.core.headerRenderer.refreshFilterIcons(),t.has("selection")&&this.core.selectionService.restoreSelection(e.selectedRowIds??[]),this.core.persistColumnState()}emitStateEvents(e){e.has("sort")&&this.core.emit("sortChanged",{sortModel:this.getSortModel()}),e.has("filter")&&this.emitFilterChanged(),e.has("pagination")&&this.core.emit("paginationChanged",{page:this.getPage(),pageSize:this.getPageSize(),pageCount:this.getPageCount(),total:this.getTotalRowCount()})}getDiagnostics(){return this.core.getDiagnostics()}getPerformanceSnapshot(){return this.core.performanceMonitor.snapshot()}resetPerformanceMetrics(){this.core.performanceMonitor.reset()}setOverlay(e){if(e==="loading")this.core.skeleton.showOverlay("loading",this.core.options.overlayLoadingTemplate,this.core.options.allowUnsafeOverlayHtml);else if(e==="noRows"){let t=this.core.options.overlayNoRowsTemplate||this.core.buildDefaultEmptyState();this.core.skeleton.showOverlay("noRows",t,this.core.options.allowUnsafeOverlayHtml)}else if(e==="error"){let t=this.core.options.overlayErrorTemplate||this.core.buildDefaultErrorState();this.core.skeleton.showOverlay("error",t,this.core.options.allowUnsafeOverlayHtml)}else this.core.skeleton.hideOverlay()}hideOverlays(){this.core.skeleton.hideOverlay()}addEventListener(e,t){return this.core.eventBus.on(e,t)}removeEventListener(e,t){this.core.eventBus.off(e,t)}destroy(){this.asyncTransactionTimer!=null&&clearTimeout(this.asyncTransactionTimer),this.asyncTransactionTimer=null;let e=this.asyncTransactions;this.asyncTransactions=[];for(let t of e)t.signal&&t.onAbort&&t.signal.removeEventListener("abort",t.onAbort),t.aborted||t.resolve();this.core.destroy()}isDestroyed(){return this.core.isDestroyed()}};var ci=["compact","normal","large"],mt=class{constructor(e){this.core=e;this.headerRows={left:[],center:[],right:[]};this.headerRowContainers={};this.currentOverlay=null;this.currentOverlayContent=null;this.currentOverlayAllowsHtml=!1;this.overlayCleanup=null;this.customClassTokens=[];this.resizeObserver=null;this.headerDepth=1;this.themeUnsub=null}init(e,t){let r=["mach-root",`mach-size--${t.size}`];t.stripedRows&&r.push("mach-striped"),t.showCellBorders&&r.push("mach-cell-borders"),t.domLayout==="autoHeight"&&r.push("mach-dom-layout--auto-height"),this.root=g("div",r.join(" ")),this.setCustomClass(t.className),this.root.style.setProperty("--mach-row-h",`${t.rowHeight}px`),this.root.style.setProperty("--mach-header-h",`${t.headerHeight}px`),this.root.setAttribute("role","grid"),this.root.tabIndex=0,this.applyAriaLabels(t),this.headerEl=g("div","mach-header"),this.headerEl.setAttribute("role","rowgroup"),this.headerRows={left:[],center:[],right:[]},this.headerPanes={},this.headerRowContainers={};for(let o of["left","center","right"]){let i=g("div",`mach-pane mach-pane--${o} mach-header-pane`),s=g("div","mach-header-rows");if(o==="center"){let a=g("div","mach-header-viewport");a.appendChild(s),i.appendChild(a)}else i.appendChild(s);this.headerEl.appendChild(i),this.headerPanes[o]=i,this.headerRowContainers[o]=s}this.setHeaderRowCount(1),this.bodyEl=g("div","mach-body"),this.pinnedTopEl=g("div","mach-pinned-rows mach-pinned-rows--top"),this.pinnedTopEl.style.display="none",this.pinnedBottomEl=g("div","mach-pinned-rows mach-pinned-rows--bottom"),this.pinnedBottomEl.style.display="none",this.bodyViewports={},this.rowContainers={},this.bodyPanes={};for(let o of["left","center","right"]){let i=g("div",`mach-pane mach-pane--${o} mach-body-pane`),s=g("div",`mach-body-viewport${o==="center"?" mach-body-viewport--scroll":""}`),a=g("div","mach-row-container");s.appendChild(a),i.appendChild(s),this.bodyEl.appendChild(i),this.bodyPanes[o]=i,this.bodyViewports[o]=s,this.rowContainers[o]=a}this.overlayWrapper=g("div","mach-overlay"),this.overlayWrapper.style.display="none",this.overlayWrapper.setAttribute("role","status"),this.overlayWrapper.setAttribute("aria-live","polite"),this.overlayContent=g("div","mach-overlay-content"),this.overlayWrapper.appendChild(this.overlayContent),this.infiniteLoadingEl=g("div","mach-infinite-loading"),this.infiniteLoadingEl.style.display="none",this.infiniteLoadingEl.appendChild(g("div","mach-spinner")),this.infiniteLoadingText=g("span"),this.infiniteLoadingEl.appendChild(this.infiniteLoadingText),this.root.append(this.headerEl,this.pinnedTopEl,this.bodyEl,this.pinnedBottomEl,this.overlayWrapper,this.infiniteLoadingEl),e.appendChild(this.root),typeof ResizeObserver<"u"&&(this.resizeObserver=new ResizeObserver(()=>this.core.relayout()),this.resizeObserver.observe(this.root)),this.applyTheme(t.theme)}applyAriaLabels(e){e.ariaLabelledBy?(this.root.setAttribute("aria-labelledby",e.ariaLabelledBy),this.root.removeAttribute("aria-label")):(this.root.removeAttribute("aria-labelledby"),this.root.setAttribute("aria-label",e.ariaLabel)),e.ariaDescribedBy?this.root.setAttribute("aria-describedby",e.ariaDescribedBy):this.root.removeAttribute("aria-describedby")}setHeaderRowCount(e){this.headerDepth=e;for(let t of["left","center","right"]){let r=this.headerRowContainers[t],o=this.headerRows[t];for(;o.length<e;){let i=g("div","mach-header-row");i.setAttribute("role","row"),i.setAttribute("aria-rowindex",String(o.length+1)),i.style.top=`${o.length*this.core.options.headerHeight}px`,i.style.height=`${this.core.options.headerHeight}px`,r.appendChild(i),o.push(i)}for(;o.length>e;)o.pop().remove()}this.applyHeaderHeight()}getHeaderRowCount(){return this.headerDepth}applyHeaderHeight(){this.headerEl.style.height=`${this.headerDepth*this.core.options.headerHeight}px`;for(let e of["left","center","right"])this.headerRows[e].forEach((r,o)=>{r.style.top=`${o*this.core.options.headerHeight}px`,r.style.height=`${this.core.options.headerHeight}px`})}setPaneWidths(e,t){this.applyPaneWidth("left",e),this.applyPaneWidth("right",t)}applyPaneWidth(e,t){let r=this.headerPanes[e],o=this.bodyPanes[e];r.style.width=`${t}px`,o.style.width=`${t}px`;let i=t<=0;r.classList.toggle("mach-pane--hidden",i),o.classList.toggle("mach-pane--hidden",i)}measureViewportWidth(){return this.bodyViewports.center.clientWidth}updateHeights(e,t){this.root.style.setProperty("--mach-row-h",`${e}px`),this.root.style.setProperty("--mach-header-h",`${t}px`),this.applyHeaderHeight()}applySize(e){for(let t of ci)this.root.classList.toggle(`mach-size--${t}`,t===e)}applyTheme(e){if(!this.root)return;this.themeUnsub?.(),this.themeUnsub=null;let t=e==="dark"||e==="auto"&&this.systemPrefersDark();if(this.root.classList.toggle("mach-theme-dark",t),e==="auto"&&typeof window<"u"&&typeof window.matchMedia=="function"){let r=window.matchMedia("(prefers-color-scheme: dark)"),o=()=>this.root.classList.toggle("mach-theme-dark",r.matches);typeof r.addEventListener=="function"?(r.addEventListener("change",o),this.themeUnsub=()=>r.removeEventListener("change",o)):typeof r.addListener=="function"&&(r.addListener(o),this.themeUnsub=()=>r.removeListener(o))}}systemPrefersDark(){return typeof window>"u"||typeof window.matchMedia!="function"?!1:window.matchMedia("(prefers-color-scheme: dark)").matches}setStriped(e){this.root.classList.toggle("mach-striped",e)}setCellBorders(e){this.root.classList.toggle("mach-cell-borders",e)}applyDomLayout(e){this.root.classList.toggle("mach-dom-layout--auto-height",e==="autoHeight")}setCustomClass(e){for(let t of this.customClassTokens)this.root.classList.remove(t);this.customClassTokens=[];for(let t of String(e??"").split(/\s+/).filter(Boolean))this.root.classList.contains(t)||(this.root.classList.add(t),this.customClassTokens.push(t))}showOverlay(e,t,r=!1){if(this.currentOverlay===e&&this.currentOverlayContent===t&&this.currentOverlayAllowsHtml===r)return;this.currentOverlay=e,this.currentOverlayContent=t,this.currentOverlayAllowsHtml=r,this.cleanupOverlayContent(),this.overlayContent.replaceChildren();let o;try{o=typeof t=="function"?t():t}catch(i){this.core.reportError(i,"overlayTemplate"),o=""}if(typeof o=="object"&&o!=null&&"el"in o)this.overlayContent.appendChild(o.el),this.overlayCleanup=o.destroy??null;else if(o instanceof HTMLElement)this.overlayContent.appendChild(o);else if(o&&r)this.overlayContent.innerHTML=o;else if(o)this.overlayContent.textContent=o;else if(e==="loading"){let i=g("div","mach-spinner");i.setAttribute("aria-label","loading"),this.overlayContent.appendChild(i)}this.overlayWrapper.style.display="",this.applyOverlayRole(e),this.root.setAttribute("aria-busy",e==="loading"?"true":"false")}hideOverlay(){this.currentOverlay&&(this.currentOverlay=null,this.currentOverlayContent=null,this.currentOverlayAllowsHtml=!1,this.overlayWrapper.style.display="none",this.cleanupOverlayContent(),this.overlayContent.replaceChildren(),this.root.setAttribute("aria-busy","false"))}applyOverlayRole(e){this.overlayWrapper.setAttribute("role",e==="error"?"alert":"status")}setInfiniteLoading(e,t){this.infiniteLoadingEl&&(e?(this.infiniteLoadingText.textContent!==t&&(this.infiniteLoadingText.textContent=t),this.infiniteLoadingEl.style.display="",this.root.setAttribute("aria-busy","true")):(this.infiniteLoadingEl.style.display="none",this.currentOverlay!=="loading"&&this.root.setAttribute("aria-busy","false")))}destroy(){this.themeUnsub?.(),this.themeUnsub=null,this.resizeObserver?.disconnect(),this.resizeObserver=null,this.cleanupOverlayContent(),this.root.remove()}cleanupOverlayContent(){if(!this.overlayCleanup)return;let e=this.overlayCleanup;this.overlayCleanup=null;try{e()}catch(t){this.core.reportError(t,"overlayTemplate.destroy")}}};var ui={contains:"\u5305\u542B",notContains:"\u4E0D\u5305\u542B",equals:"=",notEquals:"\u2260",startsWith:"\u5F00\u5934",endsWith:"\u7ED3\u5C3E",blank:"\u4E3A\u7A7A",notBlank:"\u975E\u7A7A",lessThan:"<",lessThanOrEqual:"\u2264",greaterThan:">",greaterThanOrEqual:"\u2265",inRange:"\u8303\u56F4"};function gt(n){if(!n)return"";if(n.type==="set")return`\u5DF2\u9009 ${n.values.length} \u9879`;let e=[];for(let r of n.conditions){let o=ui[r.match]??r.match,i=r.value,s="value2"in r?r.value2:void 0;r.match==="blank"||r.match==="notBlank"?e.push(o):r.match==="inRange"&&i!=null?e.push(`${o} ${i}~${s??i}`):i!=null&&String(i)!==""?e.push(`${o} ${i}`):e.push(o)}let t=n.operator==="or"?" \u6216 ":" \u4E14 ";return e.join(t)}var yt=class{constructor(e){this.core=e;this.leafCells=[];this.groupCells=[];this.paneTrees={left:[],center:[],right:[]}}build(){this.core.resizeService.cancelResize();for(let s of this.leafCells){let a=Zt(s.el);if(a)try{a()}catch(l){this.core.reportError(l,"headerComponent.destroy",{colId:s.column.id})}}this.leafCells=[],this.groupCells=[];let e=this.core.columnModel.getHeaderDepth();this.core.skeleton.setHeaderRowCount(e);let t=s=>s.pinned==="left"?"left":s.pinned==="right"?"right":"center",r=(s,a,l)=>{let d=[];for(let c of s)if(c instanceof j){let u=r(c.children,a+1,l);u.length>0&&d.push({group:c,level:a,children:u})}else!c.hide&&t(c)===l&&d.push({column:c,level:a,children:[]});return d},o=this.core.columnModel.getRootChildren();for(let s of["left","center","right"])this.paneTrees[s]=r(o,0,s);let i=this.core.options.headerHeight;for(let s of["left","center","right"]){let a=this.core.skeleton.headerRows[s];for(let d of a)d.textContent="";let l=d=>{let c=a[Math.min(d.level,a.length-1)];if(d.column){let u=this.createLeafCell(d.column,e-d.level,i);c.appendChild(u.el),this.leafCells.push(u)}else if(d.group){let u=this.createGroupCell(d.group);c.appendChild(u),this.groupCells.push({group:d.group,el:u})}for(let u of d.children)l(u)};for(let d of this.paneTrees[s])l(d)}this.core.options.suppressHeaderFocus||this.leafCells.forEach((s,a)=>{s.el.tabIndex=a===0?0:-1}),this.applyLayout(),this.refreshSortIndicators(),this.refreshFilterIcons(),this.refreshSelectAllCheckbox()}createLeafCell(e,t,r){let o=e.colDef,i=g("div","mach-header-cell mach-header-cell--leaf");i.dataset.colId=e.id,i.setAttribute("role","columnheader"),i.style.height=`${t*r}px`,typeof o.headerClass=="string"?i.classList.add(o.headerClass):Array.isArray(o.headerClass)&&i.classList.add(...o.headerClass),o.headerTooltip&&i.setAttribute("title",o.headerTooltip);let s=o.headerAlign??o.align;s==="center"?i.classList.add("mach-header-cell--center"):s==="right"&&i.classList.add("mach-header-cell--right"),this.core.options.suppressHeaderFocus||(i.tabIndex=-1,i.addEventListener("mousedown",()=>this.focusHeaderCell(e)),i.addEventListener("keydown",h=>this.onHeaderKeyDown(h,e)));let a;e.hasCheckbox&&this.core.options.rowSelection==="multiple"&&(a=document.createElement("input"),a.type="checkbox",a.className="mach-select-all",a.setAttribute("aria-label","select all rows"),a.addEventListener("click",h=>h.stopPropagation()),a.addEventListener("change",()=>{a.checked?this.core.selectionService.selectAll(!0):this.core.selectionService.deselectAll()}),i.appendChild(a));let l=o.headerComponent;if(l){let h;try{h=l({colDef:o,column:e,api:this.core.getApi()})}catch(p){this.core.reportError(p,"headerComponent",{colId:e.id}),h=null}if(typeof h=="string"){let p=g("span","mach-header-label");p.textContent=h,i.appendChild(p)}else if(h instanceof HTMLElement){let p=g("span","mach-header-label mach-header-label--custom");p.appendChild(h),i.appendChild(p)}else if(h&&typeof h=="object"&&h.el instanceof HTMLElement){let p=g("span","mach-header-label mach-header-label--custom");p.appendChild(h.el),i.appendChild(p),Wr(i,h.destroy)}else{let p=g("span","mach-header-label");p.textContent=o.headerName??o.field??e.id,i.appendChild(p)}}else{let h=g("span","mach-header-label");h.textContent=o.headerName??o.field??e.id,i.appendChild(h)}let d=g("span","mach-sort-indicator");i.appendChild(d);let c,u;if(e.filterable&&(c=document.createElement("button"),c.type="button",c.className="mach-filter-btn",c.setAttribute("aria-label",`filter ${e.id}`),c.innerHTML=Nr,c.addEventListener("click",h=>{h.stopPropagation(),this.core.filterPopup.toggle(e,c)}),i.appendChild(c),u=g("span","mach-filter-tag"),i.appendChild(u)),this.core.options.columnMenu){let h=document.createElement("button");h.type="button",h.className="mach-menu-btn",h.setAttribute("aria-label","column menu"),h.textContent="\u22EF",h.addEventListener("click",p=>{p.stopPropagation(),this.core.columnMenu.toggle(e,h)}),i.appendChild(h)}if(this.canResizeColumn(e)){let h=g("div","mach-header-resize");h.setAttribute("aria-hidden","true"),h.addEventListener("pointerdown",p=>{p.button===0&&(p.preventDefault(),p.stopPropagation(),this.core.resizeService.startResize(p,e))}),h.addEventListener("dblclick",p=>{p.stopPropagation(),this.core.getApi().autoSizeColumn(e.id)}),h.addEventListener("click",p=>p.stopPropagation()),i.appendChild(h)}return i.addEventListener("click",h=>{this.core.columnDragService.didDrag()||h.target.closest(".mach-header-resize, .mach-filter-btn, .mach-select-all")||e.sortable&&this.core.cycleSort(e,h.shiftKey)}),i.addEventListener("pointerdown",h=>{h.button!==0||h.target.closest(".mach-header-resize, .mach-filter-btn, .mach-select-all")||this.core.columnDragService.onPointerDown(h,e)}),{column:e,el:i,sortEl:d,filterBtn:c,filterTagEl:u,selectAllEl:a}}createGroupCell(e){let t=g("div","mach-header-cell mach-header-cell--group");e.groupId&&(t.dataset.groupId=e.groupId),t.setAttribute("role","columnheader");let r=e.def;typeof r.headerClass=="string"?t.classList.add(r.headerClass):Array.isArray(r.headerClass)&&t.classList.add(...r.headerClass);let o=g("span","mach-header-label mach-header-label--group");return o.textContent=e.headerName,t.appendChild(o),t}applyLayout(){let e=1,t={left:0,center:0,right:0};for(let r of["left","center","right"]){let o=this.core.skeleton.headerRows[r],i=0,s=new Map;for(let l of this.leafCells)this.core.columnModel.paneOf(l.column)===r&&(s.set(l.column.id,i),i+=l.column.currentWidth);let a=this.core.options.headerHeight;for(let l of this.leafCells){if(this.core.columnModel.paneOf(l.column)!==r)continue;let d=s.get(l.column.id)??0;l.el.style.width=`${l.column.currentWidth}px`,l.el.style.left=`${d}px`,l.el.setAttribute("aria-colindex",String(e++))}for(let l of this.groupCells){let d=this.visiblePaneLeaves(l.group,r);if(d.length===0)continue;let c=s.get(d[0].id)??0,u=0;for(let h of d)u+=h.currentWidth;l.el.style.left=`${c}px`,l.el.style.width=`${u}px`,l.el.style.height=`${a}px`,l.el.setAttribute("aria-colspan",String(d.length))}for(let l of o)l.style.width=`${i}px`;t[r]=i}this.core.skeleton.setPaneWidths(t.left,t.right)}visiblePaneLeaves(e,t){return e.getLeafColumns().filter(r=>!r.hide&&this.core.columnModel.paneOf(r)===t)}onHeaderKeyDown(e,t){if(this.core.isDestroyed())return;let r=o=>{let i=Math.max(t.colDef.minWidth??40,t.currentWidth+o);this.core.columnModel.setColumnWidth(t,i),this.core.relayoutColumns(),this.core.commitColumnWidths([t]),e.preventDefault()};switch(!0){case(e.key==="Enter"||e.key===" "):if(e.target.closest(".mach-header-resize, .mach-filter-btn, .mach-select-all"))return;e.preventDefault(),t.sortable&&this.core.cycleSort(t,e.shiftKey);return;case(e.altKey&&(e.key==="ArrowRight"||e.key==="ArrowLeft")):if(!this.canResizeColumn(t))return;r(e.key==="ArrowRight"?24:-24);return;case(e.ctrlKey&&(e.key==="ArrowLeft"||e.key==="ArrowRight")):if(!t.movable)return;e.preventDefault();{let o=this.core.columnModel.paneOf(t),i=this.core.columnModel.getPaneColumns(o),s=i.indexOf(t),a=e.key==="ArrowRight"?Math.min(i.length-1,s+1):Math.max(0,s-1);a!==s&&this.core.moveColumn(t.id,a)}return;case(!e.altKey&&!e.ctrlKey&&!e.metaKey&&(e.key==="ArrowLeft"||e.key==="ArrowRight")):e.preventDefault();{let o=this.leafCells.findIndex(s=>s.column.id===t.id),i=e.key==="ArrowRight"?Math.min(this.leafCells.length-1,o+1):Math.max(0,o-1);o>=0&&this.focusHeaderCell(this.leafCells[i].column)}return;case(e.key==="Home"||e.key==="End"):e.preventDefault(),this.leafCells.length>0&&this.focusHeaderCell(e.key==="Home"?this.leafCells[0].column:this.leafCells[this.leafCells.length-1].column);return}}focusHeaderCell(e){let t=this.leafCells.find(r=>r.column.id===e.id);if(t){for(let r of this.leafCells)r.el.tabIndex=r===t?0:-1;t.el.focus({preventScroll:!0})}}canResizeColumn(e){return this.core.options.enableColumnResize&&e.resizable}refreshSortIndicators(){let e=this.core.columnModel.getSortModel(),t=e.length>1;for(let r of this.leafCells){let o=e.findIndex(i=>i.colId===r.column.id);if(o>=0){let i=e[o].direction,s=t?`<span class="mach-sort-badge">${o+1}</span>`:"";r.sortEl.innerHTML=(i==="asc"?Or:Hr)+s,r.el.setAttribute("aria-sort",i==="asc"?"ascending":"descending"),r.el.classList.add("mach-header-cell--sorted")}else r.sortEl.innerHTML="",r.el.removeAttribute("aria-sort"),r.el.classList.remove("mach-header-cell--sorted")}}refreshFilterIcons(){let e=this.core.rowModel.getFilterModel();for(let t of this.leafCells){if(!t.filterBtn)continue;let r=e[t.column.id],o=r!=null;if(t.filterBtn.classList.toggle("mach-filter-btn--active",o),t.filterTagEl){let i=o?gt(r):"";t.filterTagEl.style.display=i?"":"none",i&&(t.filterTagEl.textContent=i)}}}refreshSelectAllCheckbox(){for(let e of this.leafCells)e.selectAllEl&&(e.selectAllEl.checked=this.core.selectionService.isSelectAllActive(),e.selectAllEl.indeterminate=this.core.selectionService.isSelectAllIndeterminate())}destroy(){for(let e of this.leafCells){let t=Zt(e.el);if(t)try{t()}catch(r){console.error("[mach-table] headerComponent destroy error",r)}}this.leafCells=[],this.groupCells=[]}};var vt=class{constructor(){this.anchor=null;this.end=null;this.cache=!1;this.cacheRowCount=-1;this.cacheColCount=-1}getAnchor(){return this.anchor}getEnd(){return this.end}hasAnchor(){return this.anchor!=null}start(e,t){(!t||!this.anchor)&&(this.anchor={...e}),this.end={...e},this.invalidate()}ensureAnchor(e){return this.anchor?!0:e.colIdx<0?!1:(this.anchor={...e},this.invalidate(),!0)}setEnd(e){this.end={...e},this.invalidate()}clear(){this.anchor=null,this.end=null,this.invalidate()}invalidate(){this.cache=!1,this.cacheRowCount=-1,this.cacheColCount=-1}normalize(e,t){return this.cache!==!1&&this.cacheRowCount===e&&this.cacheColCount===t?this.cache:(this.cacheRowCount=e,this.cacheColCount=t,!this.anchor||!this.end||e<=0||t<=0?(this.cache=null,null):(this.cache={r1:Math.max(0,Math.min(this.anchor.row,this.end.row,e-1)),r2:Math.max(0,Math.min(Math.max(this.anchor.row,this.end.row),e-1)),c1:Math.max(0,Math.min(this.anchor.colIdx,this.end.colIdx,t-1)),c2:Math.max(0,Math.min(Math.max(this.anchor.colIdx,this.end.colIdx),t-1))},this.cache))}};var wt=class{constructor(e,t,r){this.core=e;this.getRowTop=t;this.findRowAt=r;this.state=null;this.onMove=e=>{let t=this.state;if(!t)return;if(!t.active){if(Math.abs(e.clientY-t.startY)<5)return;t.active=!0,this.core.skeleton.root.classList.add("mach-root--row-dragging")}let r=this.core.skeleton.rowContainers.center,o=e.clientY-r.getBoundingClientRect().top,i=this.core.rowModel.getDisplayedRowCount(),s=Math.max(0,Math.min(this.findRowAt(o),i));for(;s<i;){let c=this.core.rowModel.getDisplayedRow(s);if(c&&!c.isDetail&&!c.isGroup)break;s++}let a=this.getRowTop(s),l=this.getRowTop(Math.min(i,s+1));s<i&&o>=a+(l-a)/2&&s++;let d=this.getRowTop(s);t.targetIndex=s,t.indicator.style.top=`${d}px`};this.onUp=()=>{let e=this.takeState();if(!e||!e.active||e.targetIndex<0)return;let t=e.node.rowIndex,r=Math.max(0,Math.min(e.targetIndex,this.core.rowModel.getDisplayedRowCount()));t===r||t===r-1||(this.core.emit("rowDragEnd",{rowNode:e.node,fromIndex:t,toIndex:r}),this.core.options.applyRowDrag&&!this.core.rowModel.isTree&&this.core.rowModel.reorderRowsByDisplayed(t,r>t?r-1:r))}}start(e,t){this.destroy();let r=g("div","mach-row-drop-indicator");this.core.skeleton.rowContainers.center.appendChild(r),this.state={node:t,startY:e.clientY,indicator:r,targetIndex:-1,active:!1},window.addEventListener("pointermove",this.onMove),window.addEventListener("pointerup",this.onUp),window.addEventListener("pointercancel",this.onUp)}takeState(){let e=this.state;return this.state=null,this.detachListeners(),e?.indicator.remove(),e}detachListeners(){window.removeEventListener("pointermove",this.onMove),window.removeEventListener("pointerup",this.onUp),window.removeEventListener("pointercancel",this.onUp),this.core.skeleton.root.classList.remove("mach-root--row-dragging")}destroy(){this.takeState()}};function ro(n,e){let t=0,r=n.length;for(;t<r;){let o=t+r>>1;n[o]<=e?t=o+1:r=o}return t}function hi(n,e){let t=0,r=n.length;for(;t<r;){let o=t+r>>1;n[o]<e?t=o+1:r=o}return t}var Ct=class{constructor(){this.offsets=new Float64Array(1);this.signature=""}update(e){let t=e.map(r=>`${r.id}:${r.currentWidth}`).join("|");if(t===this.signature)return!1;this.signature=t,this.offsets=new Float64Array(e.length+1);for(let r=0;r<e.length;r++)this.offsets[r+1]=this.offsets[r]+e[r].currentWidth;return!0}totalWidth(){return this.offsets[this.offsets.length-1]??0}offsetAt(e){let t=Math.max(0,Math.min(Math.trunc(e),this.offsets.length-1));return this.offsets[t]??0}indexAt(e){let t=Math.max(0,this.offsets.length-1);return t===0?-1:Math.min(t-1,Math.max(0,ro(this.offsets,Math.max(0,e))-1))}visibleRange(e,t,r=2){let o=Math.max(0,this.offsets.length-1);if(o===0||t<=0||this.totalWidth()<=t)return{first:0,lastExcl:o};let i=Math.max(0,e),s=i+t,a=Math.max(0,ro(this.offsets,i)-1),l=Math.min(o,hi(this.offsets,s));return{first:Math.max(0,a-r),lastExcl:Math.min(o,l+r)}}};var bt=class{constructor(){this.sizes=new Float64Array(0);this.tree=new Float64Array(1);this.indexes=new WeakMap;this.sizeCounts=new Map;this.minimum=0}reset(e,t){this.sizes=new Float64Array(e.length),this.tree=new Float64Array(e.length+1),this.indexes=new WeakMap,this.sizeCounts=new Map,this.minimum=0;for(let r=0;r<e.length;r++){this.indexes.set(e[r],r);let o=Math.max(1,t(e[r],r));this.sizes[r]=o,this.changeSizeCount(o,1),this.add(r,o)}}get length(){return this.sizes.length}indexOf(e){return this.indexes.get(e)??-1}sizeAt(e){return this.sizes[e]??0}update(e,t){if(e<0||e>=this.sizes.length)return!1;let r=Math.max(1,t),o=r-this.sizes[e];return Math.abs(o)<.01?!1:(this.changeSizeCount(this.sizes[e],-1),this.sizes[e]=r,this.changeSizeCount(r,1),this.add(e,o),!0)}offsetAt(e){let t=Math.max(0,Math.min(Math.trunc(e),this.sizes.length)),r=0;for(;t>0;)r+=this.tree[t],t-=t&-t;return r}totalSize(){return this.offsetAt(this.sizes.length)}minimumSize(){return this.minimum}findIndex(e){if(this.sizes.length===0)return 0;let t=Math.max(0,e),r=0,o=0,i=1;for(;i<<1<=this.sizes.length;)i<<=1;for(;i>0;){let s=r+i;s<=this.sizes.length&&o+this.tree[s]<=t&&(r=s,o+=this.tree[s]),i>>=1}return Math.min(r,this.sizes.length-1)}add(e,t){for(let r=e+1;r<this.tree.length;r+=r&-r)this.tree[r]+=t}changeSizeCount(e,t){let r=(this.sizeCounts.get(e)??0)+t;if(r<=0?this.sizeCounts.delete(e):this.sizeCounts.set(e,r),this.sizeCounts.size===0)this.minimum=0;else if(t>0&&(this.minimum===0||e<this.minimum))this.minimum=e;else if(t<0&&e===this.minimum&&!this.sizeCounts.has(e)){let o=Number.POSITIVE_INFINITY;for(let i of this.sizeCounts.keys())o=Math.min(o,i);this.minimum=Number.isFinite(o)?o:0}}};var k=["left","center","right"],Rt=class{constructor(e){this.core=e;this.pool=[];this.poolSize=0;this.first=0;this.lastExcl=-1;this.rafId=0;this.hoverIndex=-1;this.rowSizes=new bt;this.columnViewport=new Ct;this.rangeSelection=new vt;this.rangeDragging=!1;this.colFirst=0;this.colLastExcl=Number.MAX_SAFE_INTEGER;this.focusedCell=null;this.onScroll=()=>{this.rafId||(this.rafId=requestAnimationFrame(()=>{this.rafId=0,this.syncScroll()}))};this.lastMinRowHeight=0;this.rowHeightCache=new WeakMap;this.dirtyHeightNodes=new Set;this.rowLayoutSignature="";this.pendingFlash=[];this.measureCanvas=null;this.fillHandleEl=null;this.fillDrag=null;this.fillFromPointer=!1;this.fillDragIndicator=null;this.onFillMove=e=>{let t=this.fillDrag;if(!t)return;let r=e;if(typeof r.clientX!="number")return;if(!t.active){let s=Math.abs(r.clientX-t.startX),a=Math.abs(r.clientY-t.startY);if(s<4&&a<4)return;t.active=!0,t.axis=s>=a?"h":"v",this.core.skeleton.root.classList.add("mach-root--filling")}if(t.axis==="v"){let s=this.fillTargetRow(r),a=this.rangeSelection.getEnd();if(a&&a.row!==s){let l=this.normalizedRange();this.rangeSelection.setEnd({row:s,colIdx:a.colIdx}),this.refreshRowRange(l,this.normalizedRange()),this.core.emit("rangeSelectionChanged",{range:this.getRangeSelection()})}return}let o=Math.max(t.c2+1,this.fillTargetCol(r)),i=this.rangeSelection.getEnd();if(i&&i.colIdx!==o){let s=this.normalizedRange();this.rangeSelection.setEnd({row:i.row,colIdx:o}),this.refreshRowRange(s,this.normalizedRange()),this.updateFillHandle(),this.core.emit("rangeSelectionChanged",{range:this.getRangeSelection()})}};this.onFillUp=e=>{let t=this.fillDrag;if(!t)return;let r=e,o=()=>{this.cancelFillDrag()};if(!t.active){o();return}if(t.axis==="h"){let s=typeof r.clientX=="number"?Math.max(t.c2+1,this.fillTargetCol(r)):t.c2+1;if(o(),s>t.c2)this.fillHorizontal(t.r1,t.r2,t.c1,t.c2,s),this.updateFillHandle();else{let a=this.rangeSelection.getEnd();if(!a||a.colIdx===t.c2)return;let l=this.normalizedRange();this.rangeSelection.setEnd({row:a.row,colIdx:t.c2}),this.refreshRowRange(l,this.normalizedRange())}return}let i=typeof r.clientY=="number"?this.fillTargetRow(r):t.r2;if(o(),i>t.r2)this.fillValues(t.r1,t.r2,t.c1,t.c2,i),this.updateFillHandle();else{let s=this.rangeSelection.getEnd();if(!s||s.row===t.r2)return;let a=this.normalizedRange();this.rangeSelection.setEnd({row:t.r2,colIdx:s.colIdx}),this.refreshRowRange(a,this.normalizedRange())}};this.onBodyClick=e=>{if(this.core.isDestroyed())return;let t=this.resolveEventTarget(e);if(!t)return;let{node:r,index:o,cellEl:i}=t;if(r.isGroup){if(this.focusGridRoot(),e.target.closest?.(".mach-row-checkbox")){this.core.selectionService.setGroupSelected(r,!this.core.selectionService.getGroupSelectionState(r).all);return}let p=this.core.columnModel.getGroupLabelColumn();(!p||!i||i.dataset.colId===p.id)&&this.core.rowModel.toggleGroup(r.id);return}let s=e.target;if(this.handleTreeToggleClick(s,r,i))return;let a=i?.dataset.colId??"",l=a?this.core.columnModel.getColumn(a):void 0;if(l?.isDetailToggle&&!r.isDetail){this.focusGridRoot(),this.core.toggleDetail(r.id);return}if(r.isDetail)return;if(s.closest?.(".mach-row-checkbox")){this.focusGridRoot(),this.core.options.suppressCellFocus||this.setFocusedCell(o,this.firstCheckboxColId()),this.core.selectionService.onRowClick(r,e,!0);return}if(!i||!l)return;this.focusGridRoot(),this.core.options.suppressCellFocus||this.setFocusedCell(o,a),this.core.selectionService.onRowClick(r,e,!1);let d=this.core.getCellValue(r,l),c=this.core.emit("cellClicked",{event:e,rowNode:r,rowIndex:o,column:l,colDef:l.colDef,value:d});l.colDef.onCellClick?.(c),this.core.emit("rowClicked",{event:e,rowNode:r,rowIndex:o}),(this.core.options.singleClickEdit||l.colDef.singleClickEdit===!0)&&!r.isGroup&&this.core.editingService.isEditable(r,l)&&this.core.editingService.start(o,l)};this.onBodyDblClick=e=>{if(this.core.isDestroyed())return;let t=this.resolveEventTarget(e);if(!t)return;let{node:r,index:o,cellEl:i}=t;if(r.isDetail||r.isGroup||!i)return;let s=i.dataset.colId??"",a=this.core.columnModel.getColumn(s);if(!a)return;let l=this.core.getCellValue(r,a),d=this.core.emit("cellDoubleClicked",{event:e,rowNode:r,rowIndex:o,column:a,colDef:a.colDef,value:l});a.colDef.onCellDoubleClick?.(d),this.core.emit("rowDoubleClicked",{event:e,rowNode:r,rowIndex:o}),this.core.editingService.isEditable(r,a)&&this.core.editingService.start(o,a)};this.onContextMenu=e=>{if(this.core.isDestroyed())return;let t=this.resolveEventTarget(e);if(!t||t.node.isDetail||t.node.isGroup||!t.cellEl)return;let{node:r,index:o,cellEl:i}=t,s=i.dataset.colId??"",a=this.core.columnModel.getColumn(s);if(a&&(this.core.emit("cellContextMenu",{event:e,rowNode:r,rowIndex:o,column:a,colDef:a.colDef,value:this.core.getCellValue(r,a)}),this.core.options.contextMenu)){if(e.preventDefault(),this.core.options.enableRangeSelection&&!this.normalizedRange()){let l=this.core.columnModel.getFlatIndex(s);l>=0&&this.startRange(o,l,!1)}this.core.contextMenuService.open(e.clientX,e.clientY,{rowIndex:o,colId:s})}};this.onMouseDown=e=>{if(this.core.editingService.isCellEditing()&&this.core.editingService.stop(!1),this.core.options.enableRangeSelection&&e.button===0){let t=this.resolveEventTarget(e);if(t&&!t.node.isDetail&&!t.node.isGroup&&t.cellEl&&!e.target.closest?.(".mach-row-checkbox")){let r=this.core.columnModel.getFlatIndex(t.cellEl.dataset.colId??"");r>=0&&(this.startRange(t.index,r,e.shiftKey),this.rangeDragging=!0,!e.shiftKey&&!this.core.options.suppressCellFocus&&this.setFocusedCell(t.index,t.cellEl.dataset.colId??""))}}};this.onWindowMouseUp=()=>{this.rangeDragging=!1};this.onMouseOver=e=>{if(this.core.isDestroyed())return;let t=this.resolveEventTarget(e);if(this.rangeDragging&&t&&!t.node.isDetail&&!t.node.isGroup&&t.cellEl){let r=this.core.columnModel.getFlatIndex(t.cellEl.dataset.colId??""),o=this.rangeSelection.getEnd();r>=0&&o&&(o.row!==t.index||o.colIdx!==r)&&this.startRange(t.index,r,!0)}this.core.options.suppressRowHoverHighlight||!t||t.node.isDetail||this.setHoverIndex(t.index)};this.onMouseLeave=()=>{this.setHoverIndex(-1)};this.onDragHandlePointerDown=e=>{if(this.core.isDestroyed()||e.button!==0||!e.target.closest(".mach-row-drag-handle"))return;let r=this.resolveEventTarget(e);!r||r.node.isDetail||r.node.isGroup||(this.rowDragController.start(e,r.node),e.preventDefault())};this.rowDragController=new wt(e,t=>this.rowTop(t),t=>this.rowAtOffset(t,this.core.rowModel.getDisplayedRowCount()))}init(){this.core.skeleton.bodyViewports.center.addEventListener("scroll",this.onScroll,{passive:!0});let t=this.core.skeleton.bodyEl;t.addEventListener("click",this.onBodyClick),t.addEventListener("dblclick",this.onBodyDblClick),t.addEventListener("contextmenu",this.onContextMenu),t.addEventListener("mousedown",this.onMouseDown),t.addEventListener("mouseover",this.onMouseOver),t.addEventListener("mouseleave",this.onMouseLeave),t.addEventListener("pointerdown",this.onDragHandlePointerDown),window.addEventListener("mouseup",this.onWindowMouseUp)}destroy(){cancelAnimationFrame(this.rafId),this.core.skeleton.bodyViewports.center.removeEventListener("scroll",this.onScroll);let t=this.core.skeleton.bodyEl;t.removeEventListener("click",this.onBodyClick),t.removeEventListener("dblclick",this.onBodyDblClick),t.removeEventListener("contextmenu",this.onContextMenu),t.removeEventListener("mousedown",this.onMouseDown),t.removeEventListener("mouseover",this.onMouseOver),t.removeEventListener("mouseleave",this.onMouseLeave),t.removeEventListener("pointerdown",this.onDragHandlePointerDown),window.removeEventListener("mouseup",this.onWindowMouseUp),this.cancelFillDrag(),this.rowDragController.destroy();for(let r of this.pool){r.detailRow&&this.cleanupDetail(r.detailRow);for(let o of k)for(let i of r.cells[o]??[])r.index>=0&&this.core.editingService.releaseCell(r.index,i.dataset.colId??"",i),E(this.core,i)}this.fillHandleEl?.remove(),this.fillDragIndicator?.remove(),this.pool=[],this.poolSize=0,this.pendingFlash=[],this.dirtyHeightNodes.clear(),this.rowSizes.reset([],()=>this.core.options.rowHeight),this.columnViewport.update([]),this.measureCanvas=null}paneForColumn(e){return e.pinned==="left"?"left":e.pinned==="right"?"right":"center"}syncScroll(){if(this.core.isDestroyed())return;let e=this.core.skeleton,t=e.bodyViewports.center;e.headerRowContainers.center.style.transform=`translateX(${-t.scrollLeft}px)`,e.rowContainers.left.style.transform=`translateY(${-t.scrollTop}px)`,e.rowContainers.right.style.transform=`translateY(${-t.scrollTop}px)`,this.core.pinnedRowsRenderer.onScrollLeft(t.scrollLeft),this.core.tooltipService.hide(),this.updateRange(),this.core.rowModel.checkInfiniteScroll(this.lastExcl-1)}paneWidths(){let e={left:0,center:0,right:0};for(let t of k)e[t]=this.core.columnModel.getPaneColumns(t).reduce((r,o)=>r+o.currentWidth,0);return e}applyContainerSizes(){let e=this.core.skeleton,t=this.paneWidths();this.columnViewport.update(this.core.columnModel.getPaneColumns("center")),t.center=this.columnViewport.totalWidth();let r=e.bodyViewports.center,o=this.core.rowModel.getDisplayedRows(),i=this.core.rowModel.getDisplayTotalCount(),s=Math.min(i,o.length),a=this.core.options.rowHeight,l=this.core.options.masterDetail?[]:this.collectAutoHeightColumns(),d=this.core.options.datasourceMode!=="block"&&(this.core.options.masterDetail||this.core.options.getRowHeight!=null||l.length>0),c=d?`${this.core.rowModel.getDisplayRevision()}|${a}|${this.core.options.detailRowHeight}|${l.map(f=>`${f.id}:${f.currentWidth}`).join(",")}`:`fixed|${a}`;if(!d)this.rowSizes.length>0&&this.rowSizes.reset([],()=>a),this.rowLayoutSignature=c,this.dirtyHeightNodes.clear(),this.lastMinRowHeight=a;else if(c!==this.rowLayoutSignature||this.rowSizes.length!==s){let f=o.slice(0,s);this.rowSizes.reset(f,y=>this.resolveRowHeight(y,l)),this.rowLayoutSignature=c,this.dirtyHeightNodes.clear(),this.lastMinRowHeight=this.rowSizes.minimumSize()||a}else if(this.dirtyHeightNodes.size>0){for(let f of this.dirtyHeightNodes){let y=this.rowSizes.indexOf(f);y>=0&&this.rowSizes.update(y,this.resolveRowHeight(f,l))}this.dirtyHeightNodes.clear(),this.lastMinRowHeight=this.rowSizes.minimumSize()||a}let h=(d?this.rowSizes.totalSize():s*a)+Math.max(0,i-s)*a,p=Math.max(0,r.clientWidth-t.left-t.right),m=Math.max(t.center,p);for(let f of k){let y=e.rowContainers[f];y.style.height=`${h}px`,f==="center"&&(y.style.width=`${m}px`)}this.applyDomLayoutHeight(h),e.root.setAttribute("aria-rowcount",String(i+e.getHeaderRowCount()))}invalidateRowHeight(e){this.rowHeightCache.delete(e),this.dirtyHeightNodes.add(e)}applyDomLayoutHeight(e){this.core.skeleton.bodyEl.style.height=this.core.options.domLayout==="autoHeight"?`${e}px`:""}invalidateAllRowHeights(){this.rowHeightCache=new WeakMap,this.dirtyHeightNodes.clear(),this.rowLayoutSignature=""}resolveRowHeight(e,t){if(e.isDetail)return this.core.options.detailRowHeight;let r=this.rowHeightCache.get(e);if(r!==void 0)return r;let o=this.core.options.rowHeight,i=this.core.options.getRowHeight;if(i)try{let s=i({data:e.data,node:e,api:this.core.getApi()});o=Number.isFinite(s)?Math.max(1,s||o):o}catch(s){this.core.reportError(s,"getRowHeight",{rowId:e.id})}return t.length>0&&(o=Math.max(o,this.measureAutoHeight(e,t))),this.rowHeightCache.set(e,o),o}rowTop(e){let t=this.rowSizes.length;return t===0?Math.max(0,e)*this.core.options.rowHeight:e<=t?this.rowSizes.offsetAt(e):this.rowSizes.totalSize()+(e-t)*this.core.options.rowHeight}rowAtOffset(e,t){if(t<=0)return 0;let r=this.rowSizes.length,o=this.rowSizes.totalSize();if(r>0&&e<o)return this.rowSizes.findIndex(e);let i=r+Math.floor(Math.max(0,e-o)/this.core.options.rowHeight);return Math.max(0,Math.min(i,t-1))}collectAutoHeightColumns(){return this.core.columnModel.getOrderedVisible().filter(e=>e.colDef.autoHeight===!0)}get hasAnyAutoHeight(){return this.core.columnModel.getOrderedVisible().some(e=>e.colDef.autoHeight===!0)}measureAutoHeight(e,t){this.measureCanvas??(this.measureCanvas=document.createElement("canvas"));let r=this.measureCanvas.getContext("2d");if(!r)return 0;let o=window.getComputedStyle(this.core.skeleton.root),i=parseFloat(o.fontSize)||13;r.font=`${o.fontStyle} ${o.fontWeight} ${i}px ${o.fontFamily}`;let s=parseFloat(o.getPropertyValue("--mach-cell-padding"))||9,a=Math.round(i*1.45),l=1;for(let d of t){let c=N(this.core,e,d);if(!c)continue;let u=Math.max(10,d.currentWidth-s*2-2),h=1,p=0;for(let m of c){let f=r.measureText(m).width;if(p>0&&p+f>u?(h++,p=f):p+=f,h>=12)break}h>l&&(l=h)}return l*a+Math.round(s*.9)}queueFlash(e,t){if(this.core.options.flashCells)for(let r of e)for(let o of t)this.pendingFlash.push([r,o])}flushFlash(){if(this.pendingFlash.length===0)return;let e=this.pendingFlash;this.pendingFlash=[];for(let[t,r]of e){let o=this.getCellElement(t,r);if(!o)continue;o.classList.remove("mach-cell--flash"),o.offsetWidth,o.classList.add("mach-cell--flash");let i=ge(o),s=i.flashTimer;s&&clearTimeout(s),i.flashTimer=setTimeout(()=>{o.classList.remove("mach-cell--flash"),i.flashTimer=void 0},800)}}relayout(){this.applyContainerSizes();let e=this.core.skeleton.bodyViewports.center,r=this.core.options.rowHeight;this.core.options.masterDetail&&(r=Math.min(r,this.core.options.detailRowHeight)),this.lastMinRowHeight>0&&(r=Math.min(r,this.lastMinRowHeight));let o=Math.ceil(e.clientHeight/Math.max(1,r)),i=this.core.options.domLayout==="autoHeight"?this.core.rowModel.getDisplayedRowCount():o+this.core.options.rowBuffer*2+1;if(this.computeColWindow())for(let a of this.pool)this.reconcilePaneCells(a,"center");i>this.poolSize&&this.growPool(i),this.applyCellLayout(),this.updateRange(!0),this.refreshOverlays()}growPool(e){for(;this.poolSize<e;){let t={index:-1,nodeId:"",kind:"master",rows:{},cells:{},cellColIds:{}},r=this.core.skeleton;for(let o of k){if(this.core.columnModel.getPaneColumns(o).length===0)continue;let s=g("div","mach-row");s.style.height=`${this.core.options.rowHeight}px`,s.setAttribute("role","row"),s.style.display="none",r.rowContainers[o].appendChild(s),t.rows[o]=s,t.cells[o]=[],t.cellColIds[o]=[],this.reconcilePaneCells(t,o)}if(this.core.options.masterDetail){let o=g("div","mach-row mach-detail-row");o.style.height=`${this.core.options.detailRowHeight}px`,o.setAttribute("role","row"),o.style.display="none",r.rowContainers.center.appendChild(o),t.detailRow=o}this.pool.push(t),this.poolSize++}}activePaneColumns(e){let t=this.core.columnModel.getPaneColumns(e);return e!=="center"||t.length<=20||this.core.columnModel.hasColSpan()?t:t.slice(this.colFirst,this.colLastExcl)}createCell(e){let t=g("div","mach-cell");if(t.dataset.colId=e.id,t.setAttribute("role","gridcell"),e.hasCheckbox){let r=document.createElement("input");r.type=this.core.options.rowSelection==="single"?"radio":"checkbox",r.className="mach-row-checkbox",r.type==="radio"&&(r.name=`mach-radio-${this.core.gridId}`),r.setAttribute("aria-label","select row"),t.appendChild(r),t.classList.add("mach-cell--selection")}return t}reconcilePaneCells(e,t){let r=e.rows[t];if(!r)return;let o=this.activePaneColumns(t),i=e.cells[t]??[],s=e.cellColIds[t]??[];if(s.length===o.length&&s.every((c,u)=>c===o[u].id))return;let a=new Map;s.forEach((c,u)=>a.set(c,i[u]));let l=[],d=[];for(let c of o){let u=a.get(c.id)??this.createCell(c);a.delete(c.id),r.appendChild(u),l.push(u),d.push(c.id)}for(let c of a.values())e.index>=0&&this.core.editingService.releaseCell(e.index,c.dataset.colId??"",c),E(this.core,c),c.remove();e.cells[t]=l,e.cellColIds[t]=d}rebuildPool(){this.treeColumnCache=void 0,this.invalidateRangeCache();for(let e of this.pool){e.detailRow&&this.cleanupDetail(e.detailRow);for(let t of k){for(let r of e.cells[t]??[])E(this.core,r);e.rows[t]?.remove()}e.detailRow?.remove()}this.pool=[],this.poolSize=0,this.first=0,this.lastExcl=-1,this.relayout()}applyCellLayout(){let e=this.core.options.masterDetail||this.core.options.getRowHeight!=null||this.hasAnyAutoHeight;for(let t of k){let r=this.core.columnModel.getPaneColumns(t),o=this.activePaneColumns(t),i=0,s=[];if(t==="center"&&o.length>0){let a=r.indexOf(o[0]);this.columnViewport.update(r),i=this.columnViewport.offsetAt(a)}for(let a of o)s.push(i),i+=a.currentWidth;for(let a of this.pool){let l=a.cells[t],d=a.rows[t];if(!(!l||!d)){e||(d.style.height=`${this.core.options.rowHeight}px`);for(let c=0;c<o.length&&c<l.length;c++)l[c].style.width=`${o[c].currentWidth}px`,l[c].style.left=`${s[c]}px`,l[c].setAttribute("aria-colindex",String(this.core.columnModel.getFlatIndex(o[c].id)+1))}}if(this.core.options.masterDetail)for(let a of this.pool)a.detailRow?.style.setProperty("--mach-detail-h",`${this.core.options.detailRowHeight}px`)}}computeColWindow(){let e=this.core.skeleton.bodyViewports.center,t=this.core.columnModel.getPaneColumns("center"),r=this.colFirst,o=this.colLastExcl;this.columnViewport.update(t);let i=t.length>20?this.columnViewport.visibleRange(e.scrollLeft,e.clientWidth,2):{first:0,lastExcl:t.length};return this.colFirst=i.first,this.colLastExcl=i.lastExcl,i.first!==r||i.lastExcl!==o}updateRange(e=!1){let t=this.core.performanceMonitor.start();if(!this.updateRangeInner(e))return;let r=Math.max(0,this.lastExcl-this.first),o=this.core.columnModel.getPaneColumns("left").length+this.activePaneColumns("center").length+this.core.columnModel.getPaneColumns("right").length;this.core.performanceMonitor.recordRender(t,r,o)}updateRangeInner(e){let t=this.core.skeleton.bodyViewports.center,r=this.core.rowModel.getDisplayedRowCount(),o=this.core.options.rowBuffer,i=this.computeColWindow();if(this.reconcileColumnWindow(i),r===0){for(let l of this.pool)this.hideSlot(l);return this.first=0,this.lastExcl=0,!0}if(this.renderAutoHeightRange(r,e))return!0;let{first:s,lastExcl:a}=this.calculateVisibleRange(t,r,o);return!e&&s===this.first&&a===this.lastExcl?i:(this.first=s,this.lastExcl=a,this.hideOutsideRange(s,a),this.renderVirtualRange(s,a,e,i),!0)}calculateVisibleRange(e,t,r){let o=this.rowAtOffset(e.scrollTop,t),i=e.scrollTop+e.clientHeight,s=Math.min(t,this.rowAtOffset(i,t)+1);return{first:x(o-r,0,t-1),lastExcl:x(s+r,1,t)}}hideOutsideRange(e,t){for(let r of this.pool)r.index!==-1&&(r.index<e||r.index>=t)&&this.hideSlot(r)}renderVirtualRange(e,t,r,o){for(let i=e;i<t;i++){let s=this.core.rowModel.getDisplayedRow(i),a=this.pool[i%this.poolSize];if(!(!a||!s)){if(!r&&a.index===i&&a.nodeId===s.id){o&&a.kind==="master"&&this.renderPaneCells(a,s,"center");continue}this.assignSlot(a,i)}}}reconcileColumnWindow(e){if(e){for(let t of this.pool)this.reconcilePaneCells(t,"center");this.applyCellLayout()}}renderAutoHeightRange(e,t){if(this.core.options.domLayout!=="autoHeight")return!1;if(!t&&this.first===0&&this.lastExcl===e)return!0;this.first=0,this.lastExcl=e;for(let r=0;r<e;r++){let o=this.core.rowModel.getDisplayedRow(r),i=this.pool[r];!i||!o||(t||i.index!==r||i.nodeId!==o.id)&&this.assignSlot(i,r)}return!0}hideSlot(e){this.releaseSlotEditors(e),this.focusedCell?.rowIndex===e.index&&this.core.skeleton.root.removeAttribute("aria-activedescendant"),e.index=-1,e.nodeId="",e.kind="master";for(let t of k){let r=e.rows[t];r&&(r.style.display="none")}e.detailRow&&(this.cleanupDetail(e.detailRow),e.detailRow.style.display="none")}assignSlot(e,t){e.index>=0&&e.index!==t&&this.releaseSlotEditors(e);let r=this.core.rowModel.getDisplayedRow(t);if(!r){this.hideSlot(e);return}e.index=t,e.nodeId=r.id;let o=this.rowTop(t),i=this.rowTop(t+1)-o;if(r.isDetail){e.kind="detail";for(let p of k){let m=e.rows[p];m&&(m.style.display="none")}let h=e.detailRow;h&&(h.style.display="",h.style.transform=`translateY(${o}px)`,h.style.height=`${i}px`,h.dataset.index=String(t),h.setAttribute("aria-rowindex",String(t+this.core.skeleton.getHeaderRowCount()+1)),this.renderDetailContent(h,r));return}e.kind="master",e.detailRow&&(e.detailRow.style.display="none");let s=this.core.rowModel.isTree,a=r.isGroup===!0,l=s&&this.core.rowModel.hasChildren(r.id),d=a||l||this.core.options.masterDetail&&this.core.rowModel.isRowExpandable(r),c=a?this.core.rowModel.isGroupExpanded(r.id):this.core.rowModel.isRowExpanded(r.id),u=a?(r.groupLevel??0)+1:s?this.core.rowModel.getTreeDepth(r)+1:null;for(let h of k){let p=e.rows[h];p&&(p.style.display="",p.style.transform=`translateY(${o}px)`,p.style.height=`${i}px`,p.dataset.index=String(t),p.dataset.id=r.id,p.setAttribute("aria-rowindex",String(t+this.core.skeleton.getHeaderRowCount()+1)),p.classList.toggle("mach-row--selected",r.selected),p.classList.toggle("mach-row--hover",this.hoverIndex===t&&!this.core.options.suppressRowHoverHighlight),p.classList.toggle("mach-row--odd",t%2===1),p.setAttribute("aria-selected",r.selected?"true":"false"),d?p.setAttribute("aria-expanded",c?"true":"false"):p.removeAttribute("aria-expanded"),u!=null?p.setAttribute("aria-level",String(u)):p.removeAttribute("aria-level"),this.renderPaneCells(e,r,h))}this.focusedCell&&this.focusedCell.rowIndex===t&&this.applyFocusClass()}renderPaneCells(e,t,r){let o=this.activePaneColumns(r),i=e.cells[r];if(!i)return;let s=e.index,a=r==="center"&&this.core.columnModel.hasColSpan(),l=0;e.rows[r]?.classList.toggle("mach-row--editing",this.core.editingService.isRowEditing(s));for(let d=0;d<o.length;d++){let c=o[d],u=i[d];if(a&&l>0){l--,E(this.core,u),u.setAttribute("aria-hidden","true"),u.style.display!=="none"&&(u.style.display="none");continue}if(u.style.display==="none"&&(u.style.display=""),u.removeAttribute("aria-hidden"),a){let h=this.resolveColSpan(t,c,s,o.length-d);h>1?(l=h-1,this.applySpanWidth(u,o,d,h)):(u.removeAttribute("aria-colspan"),u.style.width!==`${c.currentWidth}px`&&(u.style.width=`${c.currentWidth}px`))}else u.removeAttribute("aria-colspan");this.core.editingService.renderEditor(s,t,c,u)||(this.renderCell(u,t,c),this.applyRangeClass(u,s,c))}}resolveColSpan(e,t,r,o){let i=t.colDef.colSpan;if(!i)return 1;try{let s=i({api:this.core.getApi(),colDef:t.colDef,column:t,node:e,data:e.data,value:this.core.getCellValue(e,t),rowIndex:r});return Math.max(1,Math.min(Math.round(s)||1,o))}catch(s){return this.core.reportError(s,"colSpan",{colId:t.id,rowId:e.id}),1}}applySpanWidth(e,t,r,o){let i=0;for(let s=r;s<r+o&&s<t.length;s++)i+=t[s].currentWidth;e.style.width=`${i}px`,e.setAttribute("aria-colspan",String(o))}renderDetailContent(e,t){this.cleanupDetail(e);let r=t.masterId!=null?this.core.rowModel.getNodeById(t.masterId):t,o=g("div","mach-detail");e.appendChild(o);let i=this.core.options.detailRowRenderer;if(i){let s={data:t.data,node:r??t,api:this.core.getApi()},a;try{a=i(s)}catch(l){this.core.reportError(l,"detailRowRenderer",{rowId:t.id}),a=null}typeof a=="string"?o.textContent=a:a instanceof HTMLElement?o.appendChild(a):a&&typeof a=="object"&&a.el instanceof HTMLElement&&(o.appendChild(a.el),zr(e,a.destroy))}}cleanupDetail(e){let t=_r(e);if(t)try{t()}catch(r){this.core.reportError(r,"detailRowRenderer.destroy")}e.textContent=""}renderCell(e,t,r){if(t.loading){E(this.core,e),e.className="mach-cell mach-cell--loading",e.setAttribute("aria-readonly","true"),e.setAttribute("aria-busy","true");let i=document.createElement("span");i.className="mach-cell-loading-bar",i.style.width=`${34+(r.id.length*13+t.rowIndex*7)%44}%`,e.replaceChildren(i),this.resetSpanStyle(e);return}e.removeAttribute("aria-busy"),e.setAttribute("aria-readonly",this.core.editingService.isEditable(t,r)?"false":"true"),e.removeAttribute("aria-expanded"),e.removeAttribute("aria-level");let o=this.cellRenderKind(t,r);if(o!=="standard"){E(this.core,e),this.renderStructuralCell(o,e,t,r);return}Je(this.core,e,t,r),ve(this.core,e,t,r),Xe(this.core,e,t,r),this.applyCellSpanStyle(e,t,r),this.appendEditableIndicator(e,t,r)}cellRenderKind(e,t){return e.isGroup?"group":t.isDetailToggle?"detail":t.hasCheckbox?"checkbox":t.colDef.rowDrag?"drag":oe(t.colDef,"index")?"index":this.core.rowModel.isTree&&this.getTreeColumn()?.id===t.id?"tree":"standard"}renderStructuralCell(e,t,r,o){if(e==="group")this.renderGroupCell(t,r,o);else if(e==="detail"){let i=this.core.rowModel.isRowExpanded(r.id),s=g("span",`mach-detail-toggle${i?" mach-detail-toggle--open":""}`);s.textContent="\u25B6",t.replaceChildren(s),t.classList.add("mach-cell--detail-toggle"),this.resetSpanStyle(t)}else if(e==="checkbox"){let i=t.querySelector(".mach-row-checkbox");i&&(i.checked=r.selected,i.indeterminate=this.core.selectionService.isIndeterminate(r.id),i.disabled=!this.core.selectionService.isSelectable(r)),t.className!=="mach-cell mach-cell--selection"&&(t.className="mach-cell mach-cell--selection"),this.resetSpanStyle(t)}else if(e==="drag"){let i=g("span","mach-row-drag-handle");i.textContent="\u283F",t.replaceChildren(i),t.className!=="mach-cell mach-cell--drag"&&(t.className="mach-cell mach-cell--drag"),this.resetSpanStyle(t)}else e==="index"?(t.textContent=String(this.core.rowModel.getRowSeq(r)+this.core.options.indexOffset),t.className!=="mach-cell mach-cell--index"&&(t.className="mach-cell mach-cell--index"),this.applyCellSpanStyle(t,r,o)):this.renderTreeCell(t,r,o)}appendEditableIndicator(e,t,r){if(this.core.options.editType!=="cell"||this.core.options.editableIndicator==="none"||!this.core.editingService.isEditable(t,r))return;let o=document.createElement("button");o.type="button",o.className=`mach-cell-edit-trigger mach-cell-edit-trigger--${this.core.options.editableIndicator}`,o.tabIndex=-1,o.title="Edit cell",o.setAttribute("aria-label","Edit cell"),o.innerHTML='<svg viewBox="0 0 16 16" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="m10.8 2.7 2.5 2.5L5.5 13H3v-2.5z"/><path d="m9.5 4 2.5 2.5"/></svg>',o.addEventListener("mousedown",i=>{i.preventDefault(),i.stopPropagation()}),o.addEventListener("click",i=>{i.preventDefault(),i.stopPropagation(),this.setFocusedCell(t.rowIndex,r.id),this.core.editingService.start(t.rowIndex,r)}),e.appendChild(o)}releaseSlotEditors(e){if(!(e.index<0))for(let t of k)for(let r of e.cells[t]??[])this.core.editingService.releaseCell(e.index,r.dataset.colId??"",r)}getTreeColumn(){return this.treeColumnCache!==void 0?this.treeColumnCache:(this.treeColumnCache=this.core.columnModel.getOrderedVisible().find(e=>!e.hasCheckbox&&!e.isDetailToggle&&!e.colDef.rowDrag&&!oe(e.colDef,"index"))??null,this.treeColumnCache)}renderTreeCell(e,t,r){let o=this.core.rowModel.isRowExpandable(t),i=this.getNodeDepth(t),s=g("span","mach-tree-indent");s.style.width=`${i*16}px`;let a=g("span","mach-tree-cell");if(a.appendChild(s),o){let d=this.core.rowModel.isRowExpanded(t.id);e.setAttribute("aria-expanded",d?"true":"false"),e.setAttribute("aria-level",String(i+1));let c=t.treeLoading?" mach-detail-toggle--loading":t.treeLoadError?" mach-detail-toggle--error":"",u=g("span",`mach-detail-toggle${d?" mach-detail-toggle--open":""}${c}`);t.treeLoadError&&(u.title="Retry loading children"),u.textContent="\u25B6",a.appendChild(u)}else{let d=g("span","mach-tree-toggle-spacer");a.appendChild(d)}let l=g("span","mach-tree-text");l.textContent=ye(this.core,t,r,this.core.getCellValue(t,r)),a.appendChild(l),e.replaceChildren(a),ve(this.core,e,t,r)}getNodeDepth(e){return this.core.rowModel.getTreeDepth(e)}resetSpanStyle(e){e.style.height!==""&&(e.style.height=""),e.style.zIndex!==""&&(e.style.zIndex=""),e.style.display==="none"&&(e.style.display=""),e.removeAttribute("aria-rowspan")}applyCellSpanStyle(e,t,r){let o=this.core.rowModel.getSpanInfo(r.id);if(!o||t.isDetail){this.resetSpanStyle(e);return}let i=this.core.rowModel.getRowSeq(t)-1;if(i<0||i>=o.length){this.resetSpanStyle(e);return}let s=o[i];if(s===-1){e.style.display="none",e.setAttribute("aria-hidden","true");return}if(e.style.display==="none"&&(e.style.display=""),e.removeAttribute("aria-hidden"),s>1){let a=Math.min(i+s,this.core.rowModel.getDisplayedRowCount()),l=this.rowTop(a)-this.rowTop(i);e.style.height=`${l>0?l:s*this.core.options.rowHeight}px`,e.style.zIndex="1",e.setAttribute("aria-rowspan",String(s))}else this.resetSpanStyle(e)}renderGroupCell(e,t,r){let o="mach-cell";if(r.hasCheckbox){let s=e.querySelector(".mach-row-checkbox");if(s){let a=this.core.selectionService.getGroupSelectionState(t);s.checked=a.all,s.indeterminate=a.some&&!a.all}e.className!==`${o} mach-cell--selection`&&(e.className=`${o} mach-cell--selection`);return}if(r.isDetailToggle){e.textContent="",e.className!==o&&(e.className=o);return}let i=this.core.columnModel.getGroupLabelColumn();if(i&&r.id===i.id){e.setAttribute("aria-expanded",this.core.rowModel.isGroupExpanded(t.id)?"true":"false"),e.setAttribute("aria-level",String((t.groupLevel??0)+1));let s=g("span","mach-group-label");s.style.paddingLeft=`${(t.groupLevel??0)*16}px`;let a=g("span",`mach-detail-toggle${this.core.rowModel.isGroupExpanded(t.id)?" mach-detail-toggle--open":""}`);a.textContent="\u25B6";let l=g("span","mach-group-text"),d=this.core.columnModel.getRowGroupColumns()[t.groupLevel??0],c=d?.colDef.headerName?`${d.colDef.headerName}: `:"";l.textContent=`${c}${t.groupKey??""}`;let u=g("span","mach-group-count");u.textContent=`(${t.leafNodes?.length??0})`,s.append(a,l,u),e.replaceChildren(s),e.className!==`${o} mach-cell--group`&&(e.className=`${o} mach-cell--group`);return}if(r.colDef.aggFunc&&t.aggValues&&Object.prototype.hasOwnProperty.call(t.aggValues,r.id)){let s=t.aggValues[r.id],a=r.colDef.valueFormatter!=null?ye(this.core,t,r,s):Ye(s);e.textContent=a,e.className!==`${o} mach-cell--num`&&(e.className=`${o} mach-cell--num`);return}e.textContent="",e.className!==o&&(e.className=o)}refreshRows(e){if(this.core.isDestroyed())return;let t=new Set;for(let r of e){if(r<0||t.has(r))continue;t.add(r);let o=this.pool[r%this.poolSize];if(!o||o.index!==r)continue;let i=this.core.rowModel.getDisplayedRow(r);if(i){if(o.kind==="detail"){o.detailRow&&this.renderDetailContent(o.detailRow,i);continue}for(let s of k)o.cells[s]&&this.renderPaneCells(o,i,s)}}this.applyFocusClass(),this.flushFlash()}refreshAllCells(){this.refreshCells()}refreshCells(e={}){if(this.core.isDestroyed())return;let t=e.rowIds==null?null:new Set(e.rowIds),r=e.rowIndexes==null?null:new Set(e.rowIndexes),o=e.columns==null?null:new Set(e.columns);for(let i of this.pool){let s=this.core.rowModel.getDisplayedRow(i.index);!s||!this.matchesRefreshRow(i,s,t,r)||this.refreshSlotCells(i,s,o,e.force===!0)}this.applyFocusClass(),this.flushFlash()}matchesRefreshRow(e,t,r,o){return e.index<0?!1:r==null&&o==null?!0:r?.has(t.id)===!0||o?.has(e.index)===!0}refreshSlotCells(e,t,r,o){if(e.kind==="detail"){r==null&&e.detailRow&&this.renderDetailContent(e.detailRow,t);return}let i=r==null||this.core.columnModel.hasColSpan();for(let s of k)i?this.renderPaneCells(e,t,s):this.refreshPaneCells(e,t,s,r,o)}refreshPaneCells(e,t,r,o,i){let s=this.activePaneColumns(r),a=e.cells[r];if(a)for(let l=0;l<s.length;l++){let d=s[l];if(!o.has(d.id))continue;let c=a[l];c&&(this.core.editingService.renderEditor(e.index,t,d,c)||(i&&E(this.core,c),this.renderCell(c,t,d),this.applyRangeClass(c,e.index,d)))}}onDataChanged(){this.core.isDestroyed()||(this.focusedCell&&this.focusedCell.rowIndex>=this.core.rowModel.getDisplayedRowCount()&&this.setFocusedCell(null,null),this.invalidateRangeCache(),this.applyContainerSizes(),this.updateRange(!0),this.updateFillHandle(),this.refreshOverlays(),this.core.summaryRenderer.refresh())}refreshOverlays(){let e=this.core.options;if(e.loading){this.core.skeleton.showOverlay("loading",e.overlayLoadingTemplate,e.allowUnsafeOverlayHtml);return}if(e.error!=null){let t=e.overlayErrorTemplate||this.core.buildDefaultErrorState();this.core.skeleton.showOverlay("error",t,e.allowUnsafeOverlayHtml);return}if(this.core.rowModel.getDisplayedRowCount()===0&&!e.suppressNoRowsOverlay){let t=e.overlayNoRowsTemplate||this.core.buildDefaultEmptyState();this.core.skeleton.showOverlay("noRows",t,e.allowUnsafeOverlayHtml);return}this.core.skeleton.hideOverlay()}getCellElement(e,t){let r=this.core.columnModel.getColumn(t);if(!r)return null;let o=this.paneForColumn(r),i=this.pool[e%Math.max(1,this.poolSize)]?.cellColIds[o]?.indexOf(r.id)??-1;if(i<0)return null;let s=this.pool[e%this.poolSize];return!s||s.index!==e||s.kind!=="master"?null:s.cells[o]?.[i]??null}invalidateRangeCache(){this.rangeSelection.invalidate()}normalizedRange(){let e=this.core.rowModel.getDisplayedRowCount(),t=this.core.columnModel.getOrderedVisible().length;return this.rangeSelection.normalize(e,t)}getNormalizedRangeOrFocus(){let e=this.normalizedRange();if(e)return e;let t=this.focusedCell;if(t){let r=this.core.columnModel.getFlatIndex(t.colId);if(r>=0)return{r1:t.rowIndex,c1:r,r2:t.rowIndex,c2:r}}return null}getRangeSelection(){let e=this.normalizedRange();if(!e)return null;let t=this.core.columnModel.getOrderedVisible();return{row1:e.r1,row2:e.r2,colId1:t[e.c1]?.id??"",colId2:t[e.c2]?.id??""}}getPasteStart(){let e=this.rangeSelection.getAnchor();if(e)return{row:e.row,colIdx:e.colIdx};let t=this.getNormalizedRangeOrFocus();return t?{row:t.r1,colIdx:t.c1}:null}clearRangeSelection(){let e=this.normalizedRange();this.rangeSelection.clear(),e&&(this.refreshRowRange(e,null),this.updateFillHandle(),this.core.emit("rangeSelectionChanged",{range:null}))}refreshRowRange(e,t){let r=[],o=i=>{if(i)for(let s=i.r1;s<=i.r2;s++)r.push(s)};o(e),o(t),r.length>0&&this.refreshRows(r)}startRange(e,t,r){let o=this.normalizedRange();this.rangeSelection.start({row:e,colIdx:t},r);let i=this.normalizedRange();this.refreshRowRange(o,i),this.updateFillHandle(),this.core.emit("rangeSelectionChanged",{range:this.getRangeSelection()})}moveRangeEnd(e,t){if(!this.rangeSelection.hasAnchor()){let d=this.focusedCell;if(!d)return;let c=this.core.columnModel.getFlatIndex(d.colId);if(!this.rangeSelection.ensureAnchor({row:d.rowIndex,colIdx:c}))return}let r=this.core.rowModel.getDisplayedRowCount(),o=this.core.columnModel.getOrderedVisible().length,i=this.normalizedRange();this.rangeSelection.setEnd({row:Math.max(0,Math.min(e,r-1)),colIdx:Math.max(0,Math.min(t,o-1))});let s=this.normalizedRange();this.refreshRowRange(i,s),this.updateFillHandle();let a=this.core.columnModel.getOrderedVisible(),l=this.rangeSelection.getEnd();l&&l.colIdx<a.length&&this.setFocusedCell(l.row,a[l.colIdx].id),this.core.emit("rangeSelectionChanged",{range:this.getRangeSelection()})}applyRangeClass(e,t,r){let o=this.normalizedRange();if(!o){e.classList.contains("mach-cell--range")&&e.classList.remove("mach-cell--range","mach-cell--range-top","mach-cell--range-bottom","mach-cell--range-left","mach-cell--range-right");return}let i=this.core.columnModel.getFlatIndex(r.id);if(i<0)return;let s=t>=o.r1&&t<=o.r2&&i>=o.c1&&i<=o.c2;e.classList.toggle("mach-cell--range",s),s?(e.classList.toggle("mach-cell--range-top",t===o.r1),e.classList.toggle("mach-cell--range-bottom",t===o.r2),e.classList.toggle("mach-cell--range-left",i===o.c1),e.classList.toggle("mach-cell--range-right",i===o.c2)):e.classList.remove("mach-cell--range-top","mach-cell--range-bottom","mach-cell--range-left","mach-cell--range-right")}ensureFillHandle(){if(this.fillHandleEl)return this.fillHandleEl;let e=g("div","mach-fill-handle");return e.style.display="none",e.addEventListener("pointerdown",t=>{this.fillFromPointer=!0,this.onFillHandleDown(t)}),e.addEventListener("mousedown",t=>{this.fillFromPointer||this.onFillHandleDown(t)}),this.core.skeleton.rowContainers.center.appendChild(e),this.fillHandleEl=e,e}updateFillHandle(){let e=this.ensureFillHandle(),t=this.normalizedRange();if(!this.core.options.enableRangeSelection||!this.core.options.fillHandle||!t){e.style.display="none";return}let r=this.core.columnModel,o=r.getPaneColumns("left").length,i=r.getPaneColumns("center");if(t.c2<o||t.c2>=o+i.length){e.style.display="none";return}let s=t.c2-o;this.columnViewport.update(i);let a=this.columnViewport.offsetAt(s+1),l=this.rowTop(Math.min(t.r2+1,this.core.rowModel.getDisplayedRowCount()));e.style.display="",e.style.left=`${a-4}px`,e.style.top=`${l-4}px`}onFillHandleDown(e){if(this.core.isDestroyed()||e.button!==0)return;let t=this.normalizedRange();t&&(e.preventDefault(),e.stopPropagation(),this.fillDrag={r1:t.r1,r2:t.r2,c1:t.c1,c2:t.c2,startX:e.clientX,startY:e.clientY,axis:null,active:!1},window.addEventListener("pointermove",this.onFillMove),window.addEventListener("mousemove",this.onFillMove),window.addEventListener("pointerup",this.onFillUp),window.addEventListener("mouseup",this.onFillUp),window.addEventListener("pointercancel",this.onFillUp))}fillTargetRow(e){let r=this.core.skeleton.rowContainers.center.getBoundingClientRect(),o=e.clientY-r.top,i=this.core.rowModel.getDisplayedRowCount(),s=this.rowAtOffset(o,i);return Math.max(this.fillDrag.r2,Math.min(s,i-1))}fillTargetCol(e){let r=this.core.skeleton.rowContainers.center.getBoundingClientRect(),o=e.clientX-r.left,i=this.core.columnModel,s=i.getPaneColumns("left").length,a=i.getPaneColumns("center");this.columnViewport.update(a);let l=this.columnViewport.indexAt(o);if(l<0)return s;let d=this.columnViewport.offsetAt(l)+a[l].currentWidth/2;return o<d?s+l:l+1<a.length?s+l+1:s+a.length-1}cancelFillDrag(){this.fillDrag=null,this.fillFromPointer=!1,window.removeEventListener("pointermove",this.onFillMove),window.removeEventListener("mousemove",this.onFillMove),window.removeEventListener("pointerup",this.onFillUp),window.removeEventListener("mouseup",this.onFillUp),window.removeEventListener("pointercancel",this.onFillUp),this.core.skeleton.root.classList.remove("mach-root--filling")}fillHorizontal(e,t,r,o,i){let s=this.core.columnModel.getOrderedVisible(),a=new Set;this.core.undoService.beginBatch();try{for(let l=e;l<=t;l++){let d=this.core.rowModel.getDisplayedRow(l);if(!d||d.isDetail||d.isGroup)continue;let c=[];for(let f=r;f<=o;f++){let y=s[f];c.push(y?this.core.getCellValue(d,y):void 0)}let u=o-r+1,h=u>1&&c.every(f=>typeof f=="number"&&!isNaN(f)),p=h?(c[u-1]-c[0])/(u-1):0,m=!h||c.every(f=>Number.isInteger(f));for(let f=o+1;f<=i;f++){let y=s[f];if(!y||y.hasCheckbox||y.isDetailToggle||y.colDef.rowDrag||!this.core.editingService.isEditable(d,y))continue;let v=f-r,w;if(u===1)w=c[0];else if(h){let S=v-(u-1);w=c[u-1]+p*S,w=m?Math.round(w):Math.round(w*1e6)/1e6}else w=c[v%u];let b=this.core.getCellValue(d,y);this.core.setCellValue(d,y,w,b)&&a.add(l)}}}finally{this.core.undoService.endBatch()}a.size>0&&(this.refreshRows([...a]),this.core.summaryRenderer.refresh(),this.core.emit("rangeSelectionChanged",{range:this.getRangeSelection()}))}fillValues(e,t,r,o,i){let s=this.core.columnModel.getOrderedVisible(),a=new Set;this.core.undoService.beginBatch();try{this.fillValuesInner(e,t,r,o,i,s,a)}finally{this.core.undoService.endBatch()}a.size>0&&(this.refreshRows([...a]),this.core.summaryRenderer.refresh(),this.core.emit("rangeSelectionChanged",{range:this.getRangeSelection()}))}fillValuesInner(e,t,r,o,i,s,a){for(let l=r;l<=o;l++){let d=s[l];if(!d||d.hasCheckbox||d.isDetailToggle||d.colDef.rowDrag)continue;let c=[],u=e<t;for(let f=e;f<=t;f++){let y=this.core.rowModel.getDisplayedRow(f);if(!y){u=!1,c.push(void 0);continue}let v=this.core.getCellValue(y,d);c.push(v),(typeof v!="number"||isNaN(v))&&(u=!1)}if(c[0]===void 0&&c.length===1)continue;let h=t-e+1,p=0,m=!0;if(u){p=(c[h-1]-c[0])/(h-1);for(let f of c)Number.isInteger(f)||(m=!1)}for(let f=t+1;f<=i;f++){let y=this.core.rowModel.getDisplayedRow(f);if(!y||y.isDetail||y.isGroup||!this.core.editingService.isEditable(y,d))continue;let v;if(h===1)v=c[0];else if(u){let b=f-t;v=c[h-1]+p*b,v=m?Math.round(v):Math.round(v*1e6)/1e6}else v=c[(f-e)%h];let w=this.core.getCellValue(y,d);this.core.setCellValue(y,d,v,w)&&a.add(f)}}}setFocusedCell(e,t){if(this.clearFocusClass(),e==null||t==null){this.focusedCell=null;return}this.focusedCell={rowIndex:e,colId:t},this.applyFocusClass(),this.ensureFocusedCellVisible()}applyFocusClass(){if(!this.focusedCell)return;let e=this.getCellElement(this.focusedCell.rowIndex,this.focusedCell.colId);if(e){let t=Math.max(0,this.core.columnModel.getFlatIndex(this.focusedCell.colId));e.id=`mach-grid-${this.core.gridId}-r${this.focusedCell.rowIndex}-c${t}`,e.classList.add("mach-cell--focus"),this.core.skeleton.root.setAttribute("aria-activedescendant",e.id)}}clearFocusClass(){if(this.focusedCell){let e=this.getCellElement(this.focusedCell.rowIndex,this.focusedCell.colId);e&&(e.classList.remove("mach-cell--focus"),e.removeAttribute("id"))}this.core.skeleton.root.removeAttribute("aria-activedescendant")}ensureFocusedCellVisible(){if(!this.focusedCell)return;this.scrollToIndex(this.focusedCell.rowIndex,"nearest");let e=this.core.columnModel.getColumn(this.focusedCell.colId);if(!e||e.pinned)return;let t=this.core.skeleton.bodyViewports.center,r=this.core.columnModel.getPaneColumns("center");this.columnViewport.update(r);let o=this.columnViewport.offsetAt(r.indexOf(e)),i=t.scrollLeft,s=t.clientWidth;o<i?t.scrollLeft=o:o+e.currentWidth>i+s&&(t.scrollLeft=o+e.currentWidth-s)}scrollToIndex(e,t="top"){let r=this.core.skeleton.bodyViewports.center,o=this.core.rowModel.getDisplayedRowCount();if(o===0)return;let i=x(e,0,o-1),s=r.clientHeight,a=r.scrollTop,l=this.rowTop(i),d=this.rowTop(i+1),c=a;t==="top"?c=l:t==="bottom"?c=d-s:t==="middle"?c=l-(s-(d-l))/2:l<a?c=l:d>a+s&&(c=d-s);let u=Math.max(0,this.rowTop(o)-s);r.scrollTop=x(c,0,u)}setHoverIndex(e){if(this.hoverIndex===e)return;let t=this.hoverIndex;this.hoverIndex=e,this.toggleHover(t,!1),this.toggleHover(e,!0)}toggleHover(e,t){if(e<0)return;let r=this.pool[e%this.poolSize];if(!(!r||r.index!==e||r.kind!=="master"))for(let o of k)r.rows[o]?.classList.toggle("mach-row--hover",t)}focusGridRoot(){this.core.skeleton.root.focus({preventScroll:!0})}resolveEventTarget(e){let t=e.target,r=t.closest(".mach-row");if(!r)return null;let o=Number(r.dataset.index);if(Number.isNaN(o))return null;let i=this.core.rowModel.getDisplayedRow(o);if(!i)return null;let s=t.closest(".mach-cell");return{node:i,index:o,cellEl:s}}handleTreeToggleClick(e,t,r){if(!this.core.rowModel.isTree||!e.closest(".mach-detail-toggle"))return!1;let o=this.getTreeColumn();return!o||r?.dataset.colId!==o.id||!this.core.rowModel.isRowExpandable(t)?!1:(this.focusGridRoot(),t.treeLoadError?this.core.rowModel.loadTreeChildren(t.id,!0).catch(()=>{}):this.core.rowModel.toggleDetail(t.id),!0)}firstCheckboxColId(){for(let e of this.core.columnModel.getOrderedVisible())if(e.hasCheckbox)return e.id;return this.core.columnModel.getOrderedVisible()[0]?.id??""}};var Tt=class{constructor(e){this.core=e;this.footerEl=null;this.rows={left:void 0,center:void 0,right:void 0};this.cellsByPane={left:[],center:[],right:[]}}init(){this.footerEl=g("div","mach-footer"),this.footerEl.style.display="none",this.footerEl.setAttribute("role","row"),this.core.skeleton.root.appendChild(this.footerEl);for(let e of["left","center","right"]){let t=g("div",`mach-footer-row mach-footer-row--${e}`);t.style.height=`${this.core.options.rowHeight}px`,this.footerEl.appendChild(t),this.rows[e]=t}}setVisible(e){this.footerEl&&(this.footerEl.style.display=e?"":"none")}refresh(){if(!this.footerEl||this.core.isDestroyed())return;let e=this.core.options.showSummary;if(this.setVisible(e),!e)return;let t=this.core.options.summaryMethod,r=this.core.rowModel.getDisplayedRows().filter(i=>!i.isDetail&&!i.isGroup),o={...T,...this.core.options.locale};for(let i of["left","center","right"]){let s=this.core.columnModel.getPaneColumns(i),a=this.rows[i];this.cellsByPane[i].length!==s.length&&(a.textContent="",this.cellsByPane[i]=s.map(()=>{let d=g("div","mach-footer-cell");return d.setAttribute("role","cell"),a.appendChild(d),d}));let l=0;s.forEach((d,c)=>{let u=this.cellsByPane[i][c];if(u.style.left=`${l}px`,u.style.width=`${d.currentWidth}px`,l+=d.currentWidth,d.hasCheckbox||d.isDetailToggle||d.colDef.rowDrag){u.textContent="";return}if(t)try{u.textContent=t({colId:d.id,column:d,values:r.map(h=>this.core.getCellValue(h,d))})}catch(h){this.core.reportError(h,"summaryMethod",{colId:d.id}),u.textContent=""}else c===0&&i==="left"?u.textContent=I(o.totalRowsLabel,r.length):u.textContent=""})}}destroy(){this.footerEl?.remove(),this.footerEl=null}};var St=class{constructor(e){this.core=e;this.barEl=null;this.totalEl=null;this.pageEl=null;this.sizeSelect=null;this.firstBtn=null;this.prevBtn=null;this.nextBtn=null;this.lastBtn=null;this.offs=[]}init(){this.barEl=g("div","mach-pagination"),this.barEl.style.display="none",this.barEl.setAttribute("role","navigation");let e=(t,r,o)=>{let i=g("button",`mach-pagination-btn ${t}`);return i.type="button",i.title=r,i.setAttribute("aria-label",r),i.textContent=o,i};this.totalEl=g("span","mach-pagination-total"),this.firstBtn=e("mach-pagination-first",this.t("pageFirst"),"\xAB"),this.prevBtn=e("mach-pagination-prev",this.t("pagePrev"),"\u2039"),this.pageEl=g("span","mach-pagination-page"),this.nextBtn=e("mach-pagination-next",this.t("pageNext"),"\u203A"),this.lastBtn=e("mach-pagination-last",this.t("pageLast"),"\xBB"),this.firstBtn.addEventListener("click",()=>this.core.rowModel.setPage(1)),this.prevBtn.addEventListener("click",()=>this.core.rowModel.setPage(this.core.rowModel.getCurrentPage()-1)),this.nextBtn.addEventListener("click",()=>this.core.rowModel.setPage(this.core.rowModel.getCurrentPage()+1)),this.lastBtn.addEventListener("click",()=>this.core.rowModel.setPage(this.core.rowModel.getPageCount())),this.barEl.append(this.totalEl,this.firstBtn,this.prevBtn,this.pageEl,this.nextBtn,this.lastBtn),this.core.options.paginationShowSizeSelector&&(this.sizeSelect=document.createElement("select"),this.sizeSelect.className="mach-pagination-size",this.sizeSelect.setAttribute("aria-label","page size"),this.buildSizeOptions(),this.sizeSelect.addEventListener("change",()=>{let t=Number(this.sizeSelect.value);Number.isNaN(t)||this.core.rowModel.setPageSize(t)}),this.barEl.appendChild(this.sizeSelect)),this.core.skeleton.root.appendChild(this.barEl),this.offs.push(this.core.eventBus.on("modelUpdated",()=>this.refresh()),this.core.eventBus.on("paginationChanged",()=>this.refresh())),this.refresh()}buildSizeOptions(){if(!this.sizeSelect)return;let e=this.core.options.paginationPageSizeOptions,t=this.core.options.paginationPageSize;e.includes(t)||(e.push(t),e.sort((r,o)=>r-o)),this.sizeSelect.textContent="";for(let r of e){let o=document.createElement("option");o.value=String(r),o.textContent=I(this.t("perPage"),r),r===t&&(o.selected=!0),this.sizeSelect.appendChild(o)}}t(e){return this.core.options.locale?.[e]??T[e]}rebuild(){this.barEl&&(this.sizeSelect&&this.core.options.paginationShowSizeSelector&&this.buildSizeOptions(),this.refresh())}refresh(){if(!this.barEl||this.core.isDestroyed())return;let e=this.core.rowModel,t=e.paginationActive,r=e.getTotalRowCount(),o=t&&r>0;if(this.barEl.style.display=o?"":"none",!o)return;let i=e.getCurrentPage(),s=e.getPageCount();if(this.totalEl&&this.core.options.paginationShowTotal){let a=I(this.t("paginationTotal"),r);this.totalEl.textContent!==a&&(this.totalEl.textContent=a)}if(this.pageEl){let a=et(this.t("paginationPage"),i,s);this.pageEl.textContent!==a&&(this.pageEl.textContent=a)}this.firstBtn&&(this.firstBtn.disabled=i<=1),this.prevBtn&&(this.prevBtn.disabled=i<=1),this.nextBtn&&(this.nextBtn.disabled=i>=s),this.lastBtn&&(this.lastBtn.disabled=i>=s),this.sizeSelect&&Number(this.sizeSelect.value)!==this.core.options.paginationPageSize&&(this.sizeSelect.value=String(this.core.options.paginationPageSize))}destroy(){for(let e of this.offs)e();this.offs=[],this.barEl?.remove(),this.barEl=null}};var X=["left","center","right"],Dt=class{constructor(e){this.core=e;this.top=null;this.bottom=null}init(){this.top=this.createSide(this.core.skeleton.pinnedTopEl),this.bottom=this.createSide(this.core.skeleton.pinnedBottomEl)}createSide(e){let t={root:e,segments:{left:g("div"),center:g("div"),right:g("div")},centerViewport:g("div","mach-pinned-viewport"),rowWrappers:{left:[],center:[],right:[]},cells:[],data:[]};for(let r of X)t.segments[r].className=`mach-pinned-seg mach-pinned-seg--${r}`,r!=="center"&&t.segments[r].classList.add("mach-pane--hidden"),r==="center"&&t.centerViewport.appendChild(t.segments[r]);return e.append(t.segments.left,t.centerViewport,t.segments.right),t}setData(e,t){this.core.isDestroyed()||!this.top||!this.bottom||(this.top.data=e??[],this.bottom.data=t??[],this.rebuild(),this.applyLayout(),this.core.relayout())}setTopData(e){this.core.isDestroyed()||!this.top||(this.top.data=e??[],this.rebuildSide(this.top,"top"),this.applyLayout(),this.core.relayout())}setBottomData(e){this.core.isDestroyed()||!this.bottom||(this.bottom.data=e??[],this.rebuildSide(this.bottom,"bottom"),this.applyLayout(),this.core.relayout())}getTopData(){return this.top?this.top.data.slice():[]}getBottomData(){return this.bottom?this.bottom.data.slice():[]}rebuild(){!this.top||!this.bottom||(this.rebuildSide(this.top,"top"),this.rebuildSide(this.bottom,"bottom"))}rebuildSide(e,t){for(let i of e.cells)for(let s of X)for(let a of i[s])E(this.core,a);for(let i of X){for(let s of e.rowWrappers[i])s.remove();e.rowWrappers[i]=[]}if(e.cells=[],e.root.style.display=e.data.length>0?"":"none",e.data.length===0)return;let r=this.core.options.rowHeight,o=this.core.columnModel;e.data.forEach((i,s)=>{let a={id:`__pinned_${t}_${s}`,data:i,rowIndex:-1,selected:!1},l={};for(let d of X){let c=g("div","mach-pinned-row");c.style.height=`${r}px`,c.setAttribute("role","row"),l[d]=[];for(let u of o.getPaneColumns(d)){let h=g("div","mach-cell");if(h.dataset.colId=u.id,h.setAttribute("role","gridcell"),u.hasCheckbox&&h.classList.add("mach-cell--selection"),!u.hasCheckbox&&!u.isDetailToggle&&!u.colDef.rowDrag&&u.colDef.type!=="index")try{Je(this.core,h,a,u),ve(this.core,h,a,u),Xe(this.core,h,a,u)}catch(p){this.core.reportError(p,"pinnedRow.render",{colId:u.id,side:t,rowIndex:s})}c.appendChild(h),l[d].push(h)}e.segments[d].appendChild(c),e.rowWrappers[d].push(c)}e.cells.push(l)})}applyLayout(){if(!this.top||!this.bottom)return;let e=this.core.columnModel,t={left:0,center:0,right:0},r={left:[],center:[],right:[]};for(let o of X){let i=0;for(let s of e.getPaneColumns(o))r[o].push(i),i+=s.currentWidth;t[o]=i}for(let o of[this.top,this.bottom]){let i=o.data.length===0;o.segments.left.classList.toggle("mach-pane--hidden",i||t.left<=0),o.segments.right.classList.toggle("mach-pane--hidden",i||t.right<=0),o.segments.left.style.width=`${t.left}px`,o.segments.right.style.width=`${t.right}px`,o.segments.center.style.width=`${t.center}px`,o.cells.forEach(s=>{let a=0;for(let l of X){let d=e.getPaneColumns(l);s[l].forEach((c,u)=>{c.style.width=`${d[u].currentWidth}px`,c.style.left=`${r[l][u]}px`,c.setAttribute("aria-colindex",String(a+u+1))}),a+=d.length}})}}onScrollLeft(e){this.top&&(this.top.segments.center.style.transform=`translateX(${-e}px)`),this.bottom&&(this.bottom.segments.center.style.transform=`translateX(${-e}px)`)}refresh(){this.rebuild(),this.applyLayout()}destroy(){for(let e of[this.top,this.bottom])if(e)for(let t of e.cells)for(let r of X)for(let o of t[r])E(this.core,o);this.top=null,this.bottom=null}};var Et=class{constructor(e){this.core=e;this.barEl=null;this.items={};this.offs=[]}init(){this.barEl=g("div","mach-statusbar"),this.barEl.style.display="none",this.barEl.setAttribute("role","status"),this.core.skeleton.root.appendChild(this.barEl),this.rebuild(),this.offs.push(this.core.eventBus.on("modelUpdated",()=>this.refresh()),this.core.eventBus.on("selectionChanged",()=>this.refresh()),this.core.eventBus.on("rangeSelectionChanged",()=>this.refresh()),this.core.eventBus.on("cellValueChanged",()=>this.refresh()))}rebuild(){if(!this.barEl)return;this.barEl.textContent="",this.items={};let e=this.core.options;if(!e.statusBarEnabled){this.barEl.style.display="none";return}for(let t of e.statusBarPanels){let r=g("span",`mach-statusbar-item mach-statusbar-item--${t}`);this.barEl.appendChild(r),this.items[t]=r}this.refresh()}refresh(){if(!this.barEl||this.core.isDestroyed())return;let e=this.core.options;if(this.barEl.style.display=e.statusBarEnabled?"":"none",!e.statusBarEnabled)return;let t={...T,...e.locale},r=(o,i)=>{let s=t[o]??T[o];return i===void 0?s:I(s,typeof i=="number"?i:parseFloat(String(i))||0)};if(this.items.rowCount){let o=this.core.rowModel,i=o.getDisplayTotalCount(),s=o.paginationActive?o.getTotalRowCount():o.getDisplayedRowCount(),a=o.isInfinite&&i>s?`${I(r("totalRowsLabel"),s)} / ${i}`:I(r("totalRowsLabel"),s);this.items.rowCount.textContent!==a&&(this.items.rowCount.textContent=a)}if(this.items.selectedRowCount){let o=this.core.selectionService.getSelectedNodes().length,i=I(r("statusSelected"),o);this.items.selectedRowCount.textContent!==i&&(this.items.selectedRowCount.textContent=i)}if(this.items.rangeAggregate){let o=this.core.bodyRenderer.normalizedRange(),i="";if(o){let s=this.core.columnModel.getOrderedVisible(),a=0,l=0;for(let d=o.r1;d<=o.r2;d++){let c=this.core.rowModel.getDisplayedRow(d);if(!(!c||c.isDetail||c.isGroup))for(let u=o.c1;u<=o.c2;u++){let h=s[u];if(!h)continue;let p=this.core.getCellValue(c,h);typeof p=="number"&&!isNaN(p)&&(a+=p,l++)}}if(l>0){let d=Math.round(a/l*100)/100,c=Number.isInteger(a)?String(a):String(Math.round(a*100)/100);i=`${r("statusSum",c)} \xB7 ${r("statusAvg",String(d))} \xB7 ${r("statusCount",String(l))}`}}this.items.rangeAggregate.textContent!==i&&(this.items.rangeAggregate.textContent=i)}}destroy(){for(let e of this.offs)e();this.offs=[],this.barEl?.remove(),this.barEl=null}};function or(){try{return typeof localStorage>"u"?null:localStorage}catch{return null}}function pi(n){return encodeURIComponent(String(n).trim()).replace(/%/g,"~")}function fi(n,e){typeof n.width=="number"&&Number.isFinite(n.width)&&n.width>0&&(e.width=n.width),n.flex===null?e.flex=null:typeof n.flex=="number"&&Number.isFinite(n.flex)&&n.flex>0&&(e.flex=n.flex),(n.widthMode==="auto"||n.widthMode==="manual")&&(e.widthMode=n.widthMode)}function mi(n,e){(n.sort==="asc"||n.sort==="desc"||n.sort===null)&&(e.sort=n.sort),n.sortIndex===null?e.sortIndex=null:typeof n.sortIndex=="number"&&Number.isInteger(n.sortIndex)&&n.sortIndex>=0&&(e.sortIndex=n.sortIndex)}function oo(n){return[["app",n.app],["tenant",n.tenant],["user",n.user],["route",n.route],["table",n.table],["schema",n.schema]].filter(t=>t[1]!==void 0&&String(t[1]).trim()!=="").map(([t,r])=>`${t}=${pi(r)}`).join(";")}function Re(n,e){if(!Array.isArray(n)||n.length>e)return null;let t=[],r=new Set;for(let o of n){if(o==null||typeof o!="object")continue;let i=o;if(typeof i.colId!="string"||i.colId.length===0||i.colId.length>256||r.has(i.colId))continue;r.add(i.colId);let s={colId:i.colId};typeof i.hide=="boolean"&&(s.hide=i.hide),fi(i,s),(i.pinned==="left"||i.pinned==="right"||i.pinned===null)&&(s.pinned=i.pinned),mi(i,s),t.push(s)}return t}function nr(n={}){let e=(n.namespace??"mach-table:col-state").replace(/:+$/,""),t=Math.max(1,Math.floor(n.version??1)),r=Math.max(1,Math.floor(n.maxColumns??1e3)),o=s=>`${e}:${s}`,i=(s,a,l)=>{try{n.onError?.(s,a,l)}catch{}};return{storageKey:o,load(s){try{let a=(n.storage??or())?.getItem(o(s));if(!a)return null;let l=JSON.parse(a);if(Array.isArray(l)){let u=Re(l,r);return!u||!n.migrate?u:Re(n.migrate(u,0,t),r)}if(l==null||typeof l!="object")return null;let d=l;if(!Number.isInteger(d.version)||typeof d.version!="number")return null;let c=Re(d.columns,r);return c?d.version===t?c:n.migrate?Re(n.migrate(c,d.version,t),r):null:null}catch(a){return i(a,"load",s),null}},save(s,a){try{let l=Re(a,r);if(!l)throw new TypeError(`[MachTable] Invalid column state for "${s}".`);let d={version:t,savedAt:Date.now(),columns:l};(n.storage??or())?.setItem(o(s),JSON.stringify(d))}catch(l){i(l,"save",s)}},clear(s){try{(n.storage??or())?.removeItem(o(s))}catch(a){i(a,"clear",s)}}}}var ir=nr();function xt(n,e){ir.save(n,e)}function Mt(n){return ir.load(n)}function no(n){ir.clear(n)}function sr(){try{return typeof localStorage>"u"?null:localStorage}catch{return null}}function io(n){return typeof TextEncoder>"u"?n.length*2:new TextEncoder().encode(n).byteLength}function ar(n={}){let e=(n.namespace??"mach-table:grid-state").replace(/:+$/,""),t=Math.max(1024,Math.floor(n.maxBytes??512*1024)),r=i=>`${e}:${i}`,o=(i,s,a)=>{try{n.onError?.(i,s,a)}catch{}};return{storageKey:r,load(i){try{let s=(n.storage??sr())?.getItem(r(i));if(!s||io(s)>t)return null;let a=JSON.parse(s);return a?.schemaVersion!==1&&a?.schemaVersion!==2?null:O(a.state)}catch(s){return o(s,"load",i),null}},save(i,s){try{let a=O(s);if(!a)throw new TypeError(`[MachTable] Invalid grid state for "${i}".`);let l=JSON.stringify({schemaVersion:2,savedAt:Date.now(),state:a});if(io(l)>t)throw new RangeError(`[MachTable] Grid state for "${i}" exceeds ${t} bytes.`);(n.storage??sr())?.setItem(r(i),l)}catch(a){o(a,"save",i)}},clear(i){try{(n.storage??sr())?.removeItem(r(i))}catch(s){o(s,"clear",i)}}}}var lr=ar();function kt(n,e){lr.save(n,e)}function It(n){return lr.load(n)}function so(n){lr.clear(n)}var gi=[[/^(success|ok|done|complete|completed|normal|active|enabled|启用|正常|完成|已完成|运行|运行中|在线|生效)$/i,"success"],[/^(warning|warn|hold|pending|standby|待机|待审核|暂停|预警|部分完成)$/i,"warning"],[/^(error|fail|failed|danger|fault|offline|disabled|故障|失败|错误|异常|停用|离线|断开)$/i,"danger"],[/^(info|processing|new|draft|进行中|新建|草稿|审批中|同步中)$/i,"info"]];function dr(n,e){let t=String(n??"");if(e){let r=e[t];if(r)return r;let o=e[t.toLowerCase()];if(o)return o}for(let[r,o]of gi)if(r.test(t))return o;return"neutral"}function cr(n={}){return e=>{if(e.value==null||e.value==="")return"";let t=dr(e.value,n.variantMap),r=n.labelMap?.[String(e.value)]??(e.formatted||String(e.value)),o=document.createElement("span");return o.className=`mach-tag mach-tag--${t}`,o.textContent=r,o}}function ur(n={}){return e=>{let t=Number(e.value);if(isNaN(t))return e.formatted;let r=Math.max(0,Math.min(100,t)),o=document.createElement("div");o.className="mach-progress";let i=document.createElement("div");i.className="mach-progress__track";let s=document.createElement("div");if(s.className="mach-progress__bar",s.style.width=`${r}%`,n.color&&(s.style.background=n.color),i.appendChild(s),o.appendChild(i),n.showValue!==!1){let a=document.createElement("span");a.className="mach-progress__label",a.textContent=`${Math.round(r)}${n.unit??"%"}`,o.appendChild(a)}return o}}function hr(n){if(n.value==null||n.value==="")return"";let e=document.createElement("span");return e.className="mach-link",e.textContent=n.formatted||String(n.value),e}var pr={edit:'<path d="M11.5 2.5l2 2L5 13H3v-2l8.5-8.5z"/>',delete:'<path d="M3 5h10M6 5V3h4v2M5 5l.7 8h4.6L11 5"/>',view:'<path d="M1.5 8s2.4-4.2 6.5-4.2S14.5 8 14.5 8s-2.4 4.2-6.5 4.2S1.5 8 1.5 8z"/><circle cx="8" cy="8" r="1.8"/>',copy:'<rect x="5" y="5" width="8" height="8" rx="1"/><path d="M3 11V3h8"/>',download:'<path d="M8 2v8m0 0l-3-3m3 3l3-3M2.5 13.5h11"/>',refresh:'<path d="M13 3v4h-4M3 13V9h4"/><path d="M13 7a5.5 5.5 0 00-9.7-2.6M3 9a5.5 5.5 0 009.7 2.6"/>',close:'<path d="M3.5 3.5l9 9m0-9l-9 9"/>',check:'<path d="M2.5 8.5l3.5 3.5 7.5-8"/>',plus:'<path d="M8 2.5v11M2.5 8h11"/>',search:'<circle cx="7" cy="7" r="4.5"/><path d="M10.5 10.5L14 14"/>',more:'<circle cx="3" cy="8" r=".9" fill="currentColor" stroke="none"/><circle cx="8" cy="8" r=".9" fill="currentColor" stroke="none"/><circle cx="13" cy="8" r=".9" fill="currentColor" stroke="none"/>'};function Pt(n,e=14){let t=pr[n]??"";return`<svg viewBox="0 0 16 16" width="${e}" height="${e}" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">${t}</svg>`}var $=null,F=null;function K(n=!1){$?.remove(),$=null,F&&(F.setAttribute("aria-expanded","false"),n&&F.isConnected&&F.focus({preventScroll:!0})),F=null,document.removeEventListener("mousedown",lo,!0),document.removeEventListener("keydown",fr,!0)}function lo(n){$&&!$.contains(n.target)&&!F?.contains(n.target)&&K()}function fr(n){if(!$)return;if(n.key==="Escape"){n.preventDefault(),K(!0);return}let e=[...$.querySelectorAll("button:not(:disabled)")];if(e.length===0)return;if(n.key==="Tab"){let o=e.indexOf(document.activeElement);(!n.shiftKey&&o===e.length-1||n.shiftKey&&o<=0)&&(n.preventDefault(),e[n.shiftKey?e.length-1:0].focus());return}if(n.key!=="ArrowDown"&&n.key!=="ArrowUp")return;n.preventDefault();let t=e.indexOf(document.activeElement),r=n.key==="ArrowDown"?1:-1;e[(t+r+e.length)%e.length].focus()}function co(n,e){let t=document.createElement("button");return t.type="button",t.className=e,n.variant&&n.variant!=="default"&&t.classList.add(`${e}--${n.variant}`),t.disabled=n.disabled===!0,n.icon&&pr[n.icon]?t.innerHTML=`${Pt(n.icon,16)}<span>${n.label}</span>`:t.textContent=n.label,t.addEventListener("click",()=>n.pick(t)),t}function yi(n,e){K();let t=document.createElement("div");t.className="mach-context-menu mach-action-menu",t.setAttribute("role","menu");for(let i of e){let s=co(i,"mach-context-menu-item");s.setAttribute("role","menuitem"),t.appendChild(s)}document.body.appendChild(t);let r=n.getBoundingClientRect(),o=t.getBoundingClientRect();t.style.left=`${Math.min(Math.max(8,r.left),window.innerWidth-o.width-8)}px`,t.style.top=`${Math.min(r.bottom+4,window.innerHeight-o.height-8)}px`,$=t,F=n,n.setAttribute("aria-expanded","true"),document.addEventListener("mousedown",lo,!0),document.addEventListener("keydown",fr,!0),t.querySelector("button:not(:disabled)")?.focus({preventScroll:!0})}function vi(n,e,t){K();let r=document.createElement("div");r.className="mach-action-drawer-backdrop";let o=document.createElement("section");o.className="mach-action-drawer",o.setAttribute("role","dialog"),o.setAttribute("aria-modal","true"),o.setAttribute("aria-label",e);let i=document.createElement("header");i.className="mach-action-drawer__header";let s=document.createElement("strong");s.textContent=e;let a=document.createElement("button");a.type="button",a.className="mach-action-drawer__close",a.setAttribute("aria-label","Close"),a.title="Close",a.innerHTML=Pt("close",16),a.addEventListener("click",()=>K(!0)),i.append(s,a);let l=document.createElement("div");l.className="mach-action-drawer__body";for(let d of t)l.appendChild(co(d,"mach-action-drawer__item"));o.append(i,l),r.appendChild(o),r.addEventListener("mousedown",d=>{d.target===r&&K(!0)}),document.body.appendChild(r),$=r,F=n,n.setAttribute("aria-expanded","true"),document.addEventListener("keydown",fr,!0),o.querySelector("button:not(:disabled)")?.focus({preventScroll:!0})}function W(n,e){if(typeof n=="function")try{return n(e)}catch{return!1}return n===!0}function ao(n){return n.danger?"danger":n.variant??"default"}function uo(n){return n.permission?typeof n.permission=="string"?[n.permission]:n.permission:[]}function mr(n,e,t){return{...n.id?{actionId:n.id}:{},permissions:uo(n),...t?{message:t}:{},params:e}}function ho(n,e,t){let r=t.api.getGridOption("actionPolicy");try{r?.onError?r.onError(n,mr(e,t)):console.error("[mach-table] action handler failed",n)}catch(o){console.error("[mach-table] action error policy failed",o,n)}}function wi(n,e){if(uo(n).length===0)return!0;let r=e.api.getGridOption("actionPolicy");if(!r?.canAccess)return!0;try{return r.canAccess(mr(n,e))}catch(o){return ho(o,n,e),!1}}function Ci(n,e){return n.filter(t=>{if(!wi(t,e))return!1;if(!t.show)return!0;try{return t.show(e)}catch{return!1}})}function de(n){let e=Math.max(0,n.max??3),t=n.overflow??"menu";return r=>{let o=Ci(n.actions,r);if(o.length===0)return"";let i=document.createElement("div");i.className="mach-actions";let s=t==="inline"?o:o.slice(0,e),a=t==="inline"?[]:o.slice(e),l=(d,c)=>{if(W(d.disabled,r))return;c.disabled=!0,c.classList.add("mach-action-btn--loading"),(async()=>{if(d.confirm!=null&&d.confirm!==!1){let h=typeof d.confirm=="function"?await d.confirm(r):d.confirm;if(h===!1)return;let p=typeof h=="string"?h:d.label??d.title??"Confirm action",m=r.api.getGridOption("actionPolicy");if(!(m?.confirm?await m.confirm(mr(d,r,p)):typeof window<"u"&&typeof window.confirm=="function"?window.confirm(p):!1))return}await d.onClick(r)})().catch(h=>ho(h,d,r)).finally(()=>{c.isConnected&&(c.disabled=W(d.disabled,r)||W(d.loading,r),c.classList.toggle("mach-action-btn--loading",W(d.loading,r)))})};for(let d of s){let c=document.createElement("button");c.type="button",c.className="mach-action-btn";let u=ao(d);u!=="default"&&c.classList.add(`mach-action-btn--${u}`);let h=d.title??d.label??"Action";c.title=h,c.setAttribute("aria-label",h),c.disabled=W(d.disabled,r),W(d.loading,r)&&(c.disabled=!0,c.classList.add("mach-action-btn--loading")),d.icon&&pr[d.icon]?(c.innerHTML=Pt(d.icon),c.classList.add("mach-action-btn--icon")):c.textContent=d.label??h,c.addEventListener("mousedown",p=>p.stopPropagation()),c.addEventListener("click",p=>{p.stopPropagation(),l(d,c)}),i.appendChild(c)}if(a.length>0){let d=document.createElement("button");d.type="button",d.className="mach-action-btn mach-action-btn--icon";let c=r.api.getGridOption("locale")??{},u=n.moreLabel??c.actionMore??T.actionMore;d.title=u,d.setAttribute("aria-label",u),d.setAttribute("aria-haspopup",t==="drawer"?"dialog":"menu"),d.setAttribute("aria-expanded","false"),d.innerHTML=`${Pt("more",16)}<span class="mach-sr-only">\u22EF</span>`,d.addEventListener("mousedown",h=>h.stopPropagation()),d.addEventListener("click",h=>{h.stopPropagation();let p=a.map(m=>({label:m.label??m.title??"Action",icon:m.icon,variant:ao(m),disabled:W(m.disabled,r)||W(m.loading,r),pick:f=>{K(),l(m,f)}}));t==="drawer"?vi(d,n.drawerTitle??u,p):yi(d,p)}),i.appendChild(d)}return{el:i,destroy:()=>{F&&i.contains(F)&&K()}}}}function le(n,e,t){return n??e??t}function bi(n,e){let t=e.api.getGridOption("locale")??{};return{view:le(n.labels?.view,t.actionView,T.actionView),edit:le(n.labels?.edit,t.actionEdit,T.actionEdit),delete:le(n.labels?.delete,t.actionDelete,T.actionDelete),confirm:le(n.labels?.confirm,t.actionConfirm,T.actionConfirm),save:le(n.labels?.save,t.actionSave,T.actionSave),cancel:le(n.labels?.cancel,t.actionCancel,T.actionCancel)}}function Ri(n,e,t){let r=async()=>{if(!await e.api.stopEditingRow(!1)||!n.onSave)return;let s=e.api.getChanges().filter(a=>a.rowId===e.node.id);try{await n.onSave(e,s),e.api.markChangesSaved([e.node.id])}catch(a){throw e.api.startEditingRow(e.rowIndex),a}},o=n.onSave?t.save:n.labels?.confirm??n.labels?.save??t.confirm;return de({actions:[{icon:"check",title:o,variant:"primary",onClick:r},{icon:"close",title:t.cancel,onClick:()=>e.api.stopEditingRow(!0).then(()=>{})}],overflow:"inline"})(e)}function Ti(n,e,t){let r=[];return n.onView&&r.push({id:"view",icon:"view",title:t.view,variant:"primary",...n.permissions?.view?{permission:n.permissions.view}:{},onClick:n.onView}),n.edit!==!1&&r.push({id:"edit",icon:"edit",title:t.edit,variant:"warning",...n.permissions?.edit?{permission:n.permissions.edit}:{},onClick:()=>{e.api.startEditingRow(e.rowIndex)}}),n.onDelete&&r.push({id:"delete",icon:"delete",title:t.delete,variant:"danger",...n.permissions?.delete?{permission:n.permissions.delete}:{},...n.confirmDelete?{confirm:n.confirmDelete===!0?t.delete:n.confirmDelete}:{},onClick:n.onDelete}),r.push(...n.extraActions??[]),r}function Lt(n={}){return e=>{let t=bi(n,e);if(e.api.isRowEditing(e.rowIndex))return Ri(n,e,t);let r=Ti(n,e,t);return de({actions:r,max:n.max,overflow:n.overflow??"drawer",moreLabel:n.moreLabel,drawerTitle:n.drawerTitle})(e)}}var Si=cr(),Di=ur();function At(n){n("statusTag",Si),n("progressBar",Di),n("link",hr)}var H=new Map,J=new Map;function po(n,e){let t=H.get(n);return H.set(n,e),()=>{H.get(n)===e&&(t?H.set(n,t):H.delete(n))}}function Te(n){return H.get(n)}function fo(n,e){let t=J.get(n);return J.set(n,e),()=>{J.get(n)===e&&(t?J.set(n,t):J.delete(n))}}function Gt(n){return J.get(n)}function mo(n,e){H.has(n)||H.set(n,e)}function go(){H.clear(),J.clear()}function yo(n){if(!n||n.length===0)return[];let e=[],t=new Map,r=0,o=(i,s)=>{for(let a of i){if(ne(a)){if(!Array.isArray(a.children)||a.children.length===0){e.push(`\u5217\u5206\u7EC4 "${a.headerName??a.groupId??"?"}" \u7684 children \u4E3A\u7A7A`);continue}o(a.children,s+1);continue}r++;let l=a.colId??a.field??`col_${r}`;t.set(l,(t.get(l)??0)+1),a.field&&!ee(a.field)&&e.push(`\u5217 "${l}" \u7684 field \u8DEF\u5F84\u4E0D\u5B89\u5168\u6216\u65E0\u6548\uFF0C\u5DF2\u7981\u6B62\u8BFB\u53D6\u548C\u5199\u5165`),!a.field&&!a.valueGetter&&!a.checkboxSelection&&!a.autoRowSpan&&!a.rowSpan&&e.push(`\u5217 "${l}" \u65E2\u65E0 field \u4E5F\u65E0 valueGetter\uFF0C\u5C06\u59CB\u7EC8\u663E\u793A\u7A7A\u503C\uFF08\u7EAF\u5DE5\u5177\u5217\u8BF7\u5FFD\u7565\u6B64\u63D0\u793A\uFF09`),a.width!=null&&a.minWidth!=null&&a.width<a.minWidth&&e.push(`\u5217 "${l}" \u7684 width(${a.width}) \u5C0F\u4E8E minWidth(${a.minWidth})\uFF0C\u5C06\u6309 minWidth \u6E32\u67D3`),a.width!=null&&a.maxWidth!=null&&a.width>a.maxWidth&&e.push(`\u5217 "${l}" \u7684 width(${a.width}) \u5927\u4E8E maxWidth(${a.maxWidth})\uFF0C\u5C06\u6309 maxWidth \u6E32\u67D3`)}};o(n,0);for(let[i,s]of t)s>1&&e.push(`\u5B58\u5728 ${s} \u4E2A\u91CD\u590D\u7684 colId/field "${i}"\uFF0C\u5DF2\u81EA\u52A8\u52A0\u540E\u7F00\u533A\u5206\uFF0C\u5EFA\u8BAE\u663E\u5F0F\u547D\u540D colId`);return e}var Ei=z.map(n=>`on${n.charAt(0).toUpperCase()}${n.slice(1)}`),vo=new Set([...ae,...Ei]);function xi(n,e){if(n===e)return 0;if(n.length===0)return e.length;if(e.length===0)return n.length;let t=Array.from({length:e.length+1},(r,o)=>o);for(let r=1;r<=n.length;r++){let o=[r];for(let i=1;i<=e.length;i++)o[i]=Math.min(o[i-1]+1,t[i]+1,t[i-1]+(n[r-1]===e[i-1]?0:1));t=o}return t[e.length]}function Mi(n){let e,t=Number.POSITIVE_INFINITY;for(let o of vo){let i=xi(n.toLowerCase(),o.toLowerCase());i<t&&(t=i,e=o)}let r=Math.max(2,Math.floor(n.length*.3));return t<=r?e:void 0}function ki(n){let e=[];return n.rowKey!=null&&typeof n.rowKey!="string"&&typeof n.rowKey!="function"&&e.push({code:"INVALID_OPTION_VALUE",option:"rowKey",message:"rowKey \u5FC5\u987B\u662F\u5B57\u6BB5\u8DEF\u5F84\u6216\u8FD4\u56DE\u7A33\u5B9A\u4E1A\u52A1\u4E3B\u952E\u7684\u51FD\u6570"}),n.domLayout==="autoHeight"&&n.datasource!=null&&e.push({code:"OPTION_CONFLICT",option:"domLayout",message:"autoHeight \u4F1A\u6E32\u67D3\u5168\u90E8\u5DF2\u52A0\u8F7D\u884C\uFF0C\u4E0D\u9002\u7528\u4E8E datasource \u65E0\u9650\u6EDA\u52A8\u6A21\u5F0F"}),e.push(...Ii(n)),n.enableColumnResize!=null&&typeof n.enableColumnResize!="boolean"&&e.push({code:"INVALID_OPTION_VALUE",option:"enableColumnResize",message:"enableColumnResize \u5FC5\u987B\u662F boolean\uFF1B\u672A\u914D\u7F6E\u65F6\u9ED8\u8BA4\u5173\u95ED"}),e}function Ii(n){if(n.datasourceMode!=="block")return[];let e=[];return n.datasource==null&&e.push({code:"OPTION_CONFLICT",option:"datasourceMode",message:"datasourceMode='block' requires a datasource"}),typeof n.getRowHeight=="function"&&e.push({code:"OPTION_CONFLICT",option:"getRowHeight",message:"Random-access block rows require fixed rowHeight so unloaded offsets remain deterministic"}),n.masterDetail===!0&&e.push({code:"OPTION_CONFLICT",option:"masterDetail",message:"masterDetail is not supported by the sparse random-access block row model"}),n.treeData===!0&&e.push({code:"OPTION_CONFLICT",option:"treeData",message:"treeData requires the local/tree row model and cannot use random-access blocks"}),wo(n)||e.push({code:"MISSING_STABLE_ROW_ID",option:"getRowId",message:"Random-access blocks require rowKey/getRowId to preserve selection and identity after eviction"}),e}function wo(n){return typeof n.getRowId=="function"||n.rowKey!=null}function Pi(n){let e=new Set(["enableColumnResize","pagination","rowKey"]),t=[];for(let r of ae){if(e.has(r)||!Object.prototype.hasOwnProperty.call(n,r))continue;let o=n[r],i=_[r].kind;we(o,i)||t.push({code:"INVALID_OPTION_VALUE",option:r,message:`${r} \u503C\u7C7B\u578B\u65E0\u6548\uFF0C\u671F\u671B ${i}`})}return t}function Ft(n){let e=n,t=[];for(let o of Object.keys(e)){if(vo.has(o))continue;let i=Mi(o);t.push({code:"UNKNOWN_OPTION",option:o,...i?{suggestion:i}:{},message:i?`\u672A\u77E5 GridOption "${o}"\uFF0C\u662F\u5426\u60F3\u4F7F\u7528 "${i}"\uFF1F`:`\u672A\u77E5 GridOption "${o}"\uFF0C\u8BE5\u503C\u4E0D\u4F1A\u751F\u6548`})}let r=e.pagination;if(r!=null&&typeof r!="boolean"&&typeof r!="object"&&t.push({code:"INVALID_OPTION_VALUE",option:"pagination",message:"pagination \u5FC5\u987B\u662F boolean \u6216\u914D\u7F6E\u5BF9\u8C61"}),e.datasource!=null&&r!==void 0&&r!==!1&&t.push({code:"OPTION_CONFLICT",option:"pagination",message:"datasource \u987A\u5E8F\u65E0\u9650\u6A21\u5F0F\u4E0E pagination \u4E0D\u80FD\u540C\u65F6\u542F\u7528\uFF1B\u666E\u901A\u670D\u52A1\u7AEF\u5206\u9875\u8BF7\u4F7F\u7528 pagination.mode='server'"}),r&&typeof r=="object"){let o=r;o.mode==="server"&&!wo(e)&&t.push({code:"MISSING_STABLE_ROW_ID",option:"getRowId",message:"\u670D\u52A1\u7AEF\u5206\u9875\u5EFA\u8BAE\u63D0\u4F9B\u7A33\u5B9A getRowId\uFF0C\u5426\u5219\u8DE8\u9875\u9009\u62E9\u4E0E\u589E\u91CF\u66F4\u65B0\u65E0\u6CD5\u53EF\u9760\u4FDD\u6301"}),o.mode==="server"&&o.total!==void 0&&(typeof o.total!="number"||!Number.isFinite(o.total)||o.total<0)&&t.push({code:"INVALID_OPTION_VALUE",option:"pagination.total",message:"\u670D\u52A1\u7AEF\u5206\u9875 total \u5FC5\u987B\u662F\u975E\u8D1F\u6709\u9650\u6570"})}return e.treeData===!0&&e.masterDetail===!0&&t.push({code:"OPTION_CONFLICT",option:"masterDetail",message:"treeData \u4E0E masterDetail \u4E0D\u80FD\u540C\u65F6\u542F\u7528\uFF0C\u4E3B\u4ECE\u660E\u7EC6\u5C06\u88AB\u5FFD\u7565"}),t.push(...Pi(e)),t.push(...ki(e)),t}function Co(n){let e=/^v?(\d+)(?:\.(\d+))?(?:\.(\d+))?(?:[-+].*)?$/.exec(n.trim());return e?[Number(e[1]),Number(e[2]??0),Number(e[3]??0)]:null}function gr(n,e){for(let t=0;t<3;t++)if(n[t]!==e[t])return n[t]<e[t]?-1:1;return 0}function Li(n){return n[0]>0?[n[0]+1,0,0]:n[1]>0?[0,n[1]+1,0]:[0,0,n[2]+1]}function Ai(n,e){if(e==="*"||e.toLowerCase()==="latest")return!0;let t=/^(\^|~|>=|<=|>|<|=)?\s*(.+)$/.exec(e);if(!t)return!1;let r=Co(t[2]);if(!r)return!1;let o=gr(n,r);switch(t[1]??"="){case">=":return o>=0;case"<=":return o<=0;case">":return o>0;case"<":return o<0;case"^":return o>=0&&gr(n,Li(r))<0;case"~":return o>=0&&gr(n,[r[0],r[1]+1,0])<0;default:return o===0}}function bo(n,e){if(!e?.trim())return!0;let t=n?Co(n):null;return t?e.split("||").some(r=>{let o=r.trim().split(/\s+/).filter(Boolean);return o.length>0&&o.every(i=>Ai(t,i))}):!1}function Gi(n){return[...new Set((n??[]).map(e=>e.trim()).filter(Boolean))]}function Nt(n){let e=new Map;for(let t of n??[]){let r=(typeof t=="string"?t:t?.key??"").trim();if(!r||e.has(r))continue;let o=typeof t=="object"?t.version?.trim():void 0;e.set(r,{key:r,...o?{version:o}:{}})}return[...e.values()]}function Ot(n){let e=[],t=new Map;for(let l of n){let d=typeof l?.key=="string"?l.key.trim():"";if(!d){e.push({code:"INVALID_FEATURE_KEY",message:"GridFeature.key must be a non-empty string"});continue}if(t.has(d)){e.push({code:"DUPLICATE_FEATURE",feature:d,message:`Duplicate GridFeature key: ${d}`});continue}t.set(d,l)}let r=new Set;for(let[l,d]of t){for(let c of Nt(d.requires)){let u=t.get(c.key);u?bo(u.version,c.version)||(r.add(l),e.push({code:"UNSUPPORTED_FEATURE_VERSION",feature:l,dependency:c.key,message:`GridFeature "${l}" requires "${c.key}" ${c.version}, received ${u.version??"unversioned"}`})):(r.add(l),e.push({code:"MISSING_FEATURE_DEPENDENCY",feature:l,dependency:c.key,message:`GridFeature "${l}" requires missing feature "${c.key}"`}))}for(let c of Gi(d.conflicts))if(t.has(c)){r.add(l),e.push({code:"FEATURE_CONFLICT",feature:l,dependency:c,message:`GridFeature "${l}" conflicts with "${c}"`});break}}let o=[],i=new Set,s=new Set,a=l=>{if(s.has(l))return!r.has(l);if(i.has(l))return r.add(l),e.push({code:"FEATURE_CYCLE",feature:l,message:`GridFeature dependency cycle includes "${l}"`}),!1;let d=t.get(l);if(!d||r.has(l))return!1;i.add(l);let c=!0;for(let u of Nt(d.requires))a(u.key)||(c=!1);return i.delete(l),s.add(l),c?(o.push(d),!0):(r.add(l),!1)};for(let l of t.keys())a(l);return{features:o.filter(l=>!r.has(l.key.trim())),issues:e}}var Fi=["datasource","treeData"],Ni=["columnState.","gridState."],Oi=new Set(["selectionChanged","sortChanged","filterChanged","columnMoved","columnVisibilityChanged","displayedColumnsChanged","paginationChanged","detailToggled"]),Hi=0;function Ro(){At(mo)}var ce=class{constructor(e,t){this.destroyed=!1;this.autoIdCounter=0;this.readyRafId=0;this.readySettled=!1;this.lastColumnLayoutSignature="";this.activeFeatures=new Map;this.recentErrors=[];this.stateSaveTimer=null;this.gridStateLoadToken=0;this.columnStateLoadToken=0;this.lastValidatedDefs=null;this.issuedWarningSignatures=new Set;let r;this.readyPromise=new Promise(o=>{r=o}),this.resolveReady=r,this.gridId=++Hi,Ro(),this.options=xr(t),this.eventBus=new Z((o,i)=>{i==="gridError"?console.error("[mach-table] error in gridError listener",o):this.reportError(o,"eventBus.listener",{eventType:i})}),this.columnModel=new Ae(this),this.rowModel=new Be(this),this.selectionService=new Ve(this),this.skeleton=new mt(this),this.headerRenderer=new yt(this),this.bodyRenderer=new Rt(this),this.resizeService=new ze(this),this.columnDragService=new _e(this),this.keyboardService=new Ue(this),this.editingService=new Qe(this),this.undoService=new st(this),this.performanceMonitor=new lt,this.updateScheduler=new dt(o=>this.applyScheduledUpdate(o)),this.filterPopup=new tt(this),this.columnMenu=new rt(this),this.contextMenuService=new ot(this),this.tooltipService=new nt(this),this.watermarkService=new it(this),this.paginationBar=new St(this),this.pinnedRowsRenderer=new Dt(this),this.summaryRenderer=new Tt(this),this.statusBarService=new Et(this),this.api=new ft(this),this.changeTracker=new at(this);try{this.changeTracker.init(),this.skeleton.init(e,this.options),this.watermarkService.init(),this.bodyRenderer.init(),this.keyboardService.init(),this.tooltipService.init(),this.paginationBar.init(),this.summaryRenderer.init(),this.statusBarService.init(),this.pinnedRowsRenderer.init(),this.rowModel.restorePagination(this.options.paginationPage,this.options.paginationPageSize),this.columnModel.setColumnDefs(this.options.columnDefs),this.rowModel.setAdvancedFilterModel(this.options.advancedFilterModel),this.rowModel.setQuickFilter(this.options.quickFilterText),this.refreshAriaState(),this.validateDefs(this.options.columnDefs),this.checkWarnings(t),this.loadPersistedColumnState(),this.headerRenderer.build(),this.options.datasource?this.rowModel.startInfinite().catch(()=>{}):this.rowModel.setRowData(this.options.rowData),this.options.initialState&&this.api.applyState(this.options.initialState,{emitEvents:!1}),this.loadPersistedGridState(),this.relayout(),this.pinnedRowsRenderer.setData(this.options.pinnedTopRowData,this.options.pinnedBottomRowData),this.setFeatures(this.options.features),this.readyRafId=requestAnimationFrame(()=>{this.readyRafId=0,this.destroyed||this.emit("gridReady",{}),this.settleReady()})}catch(o){throw this.reportError(o,"grid.constructor"),this.destroy(),o}}getApi(){return this.api}whenReady(){return this.readyPromise}settleReady(){this.readySettled||(this.readySettled=!0,this.resolveReady(this.api))}resolveCellRenderer(e){let t=this.options.components?.cellRenderers?.[e];if(t)return t;let r=Te(e);return r||(Ro(),r=Te(e)),r}resolveCellEditor(e){return this.options.components?.cellEditors?.[e]??Gt(e)}inactiveFeatureDependency(e){return Nt(e.requires).map(t=>t.key).find(t=>!this.activeFeatures.has(t))}setFeatures(e){if(this.destroyFeatures(),this.destroyed)return;let t=Ot(e??[]);for(let r of t.issues)this.reportError(new Error(r.message),"feature.manifest",{code:r.code,...r.feature?{key:r.feature}:{},...r.dependency?{dependency:r.dependency}:{}});for(let r of t.features){let o=r.key.trim(),i=this.inactiveFeatureDependency(r);if(i){this.reportError(new Error(`GridFeature "${o}" dependency "${i}" did not initialise`),"feature.manifest",{code:"FEATURE_DEPENDENCY_SETUP_FAILED",key:o,dependency:i});continue}let s=[],a=d=>{let c=!0,u=()=>{c&&(c=!1,d())};return s.push(u),u},l={api:this.api,root:this.skeleton.root,getOptions:()=>this.options,addEventListener:(d,c)=>a(this.eventBus.on(d,c)),onCleanup:d=>{a(d)},addManagedDomListener:(d,c,u,h)=>(d.addEventListener(c,u,h),a(()=>d.removeEventListener(c,u,h))),setManagedTimeout:(d,c)=>{let u=setTimeout(d,Math.max(0,c));return a(()=>clearTimeout(u)),u},createAbortController:()=>{let d=new AbortController;return a(()=>d.abort()),d},reportError:(d,c,u)=>this.reportError(d,`feature.${c}`,u)};try{let d=r.setup(l);typeof d=="function"&&a(d),this.activeFeatures.set(o,{feature:r,cleanups:s})}catch(d){for(let c of s.reverse())try{c()}catch(u){this.reportError(u,"feature.cleanup",{key:o})}this.reportError(d,"feature.setup",{key:o})}}}destroyFeatures(){let e=[...this.activeFeatures.entries()].reverse();this.activeFeatures.clear();for(let[t,r]of e){for(let o of r.cleanups.reverse())try{o()}catch(i){this.reportError(i,"feature.cleanup",{key:t})}try{r.feature.destroy?.()}catch(o){this.reportError(o,"feature.destroy",{key:t})}}}isDestroyed(){return this.destroyed}nextId(){return++this.autoIdCounter}getCellValue(e,t){let r=t.colDef;if(r.valueGetter)try{return r.valueGetter({api:this.api,colDef:r,column:t,node:e,data:e.data})}catch(o){this.reportError(o,"valueGetter",{colId:t.id,rowId:e.id});return}if(r.field)return te(e.data,r.field)}getLocaleText(e){return this.options.locale[e]??T[e]}writeValue(e,t,r,o){let i=t.colDef;if(i.valueSetter)try{return i.valueSetter({oldValue:o,newValue:r,data:e.data,node:e,colDef:i,column:t,api:this.api})}catch(s){return this.reportError(s,"valueSetter",{colId:t.id,rowId:e.id}),!1}return i.field?U(e.data,i.field,r):!1}setCellValue(e,t,r,o){if(r===void 0||r===o)return!1;let i=t.colDef,s;if(i.valueSetter)try{s=i.valueSetter({oldValue:o,newValue:r,data:e.data,node:e,colDef:i,column:t,api:this.api})}catch(a){return this.reportError(a,"valueSetter",{colId:t.id,rowId:e.id}),!1}else if(i.field)s=U(e.data,i.field,r);else return!1;return s&&this.notifyCellValueChanged(e,t,o,r),s}notifyCellValueChanged(e,t,r,o){this.bodyRenderer.invalidateRowHeight(e),this.bodyRenderer.queueFlash([e.rowIndex],[t.id]),this.emit("cellValueChanged",{oldValue:r,newValue:o,rowNode:e,rowIndex:e.rowIndex,column:t,colDef:t.colDef,data:e.data}),this.undoService.record({nodeId:e.id,columnId:t.id,oldValue:r,newValue:o})}buildRangeTsv(e){let r=this.columnModel.getOrderedVisible().slice(e.c1,e.c2+1),o=[];for(let i=e.r1;i<=e.r2;i++){let s=this.rowModel.getDisplayedRow(i);o.push(r.map(a=>!s||s.isDetail||s.isGroup?"":ye(this,s,a,this.getCellValue(s,a))))}return se(o)}copyActiveRange(){let e=this.bodyRenderer.getNormalizedRangeOrFocus();return e?me(this.buildRangeTsv(e)):Promise.resolve(!1)}clearRangeValues(e){if(this.destroyed)return;let t=this.columnModel.getOrderedVisible(),r=new Set;this.undoService.beginBatch();try{for(let o=e.r1;o<=e.r2;o++){let i=this.rowModel.getDisplayedRow(o);if(!(!i||i.isDetail||i.isGroup))for(let s=e.c1;s<=e.c2;s++){let a=t[s];if(!a||a.hasCheckbox||a.isDetailToggle||a.colDef.rowDrag||!this.editingService.isEditable(i,a))continue;let l=this.getCellValue(i,a);this.setCellValue(i,a,null,l)&&r.add(o)}}}finally{this.undoService.endBatch()}r.size>0&&(this.bodyRenderer.refreshRows([...r]),this.summaryRenderer.refresh())}pasteText(e,t,r){if(this.destroyed)return;let o=We(e);if(o.length===0)return;let i=this.columnModel.getOrderedVisible(),s=this.rowModel.getDisplayedRowCount(),a=new Set,l=t;this.undoService.beginBatch();try{for(let d of o){for(;l<s;){let h=this.rowModel.getDisplayedRow(l);if(h&&!h.isDetail&&!h.isGroup)break;l++}if(l>=s)break;let c=this.rowModel.getDisplayedRow(l),u=r;for(let h of d){for(;u<i.length&&(i[u]&&(i[u].hasCheckbox||i[u].isDetailToggle||i[u].colDef.rowDrag));)u++;if(u>=i.length)break;let p=i[u];if(this.editingService.isEditable(c,p)){let m=this.getCellValue(c,p),f=h;h===""?f=null:typeof m=="number"&&!isNaN(Number(h))&&(f=Number(h)),this.setCellValue(c,p,f,m)&&a.add(l)}u++}l++}}finally{this.undoService.endBatch()}a.size>0&&(this.bodyRenderer.refreshRows([...a]),this.summaryRenderer.refresh())}pasteFromSystemClipboard(){let e=this.bodyRenderer.getPasteStart();if(!e)return Promise.resolve();try{if(typeof navigator<"u"&&navigator.clipboard?.readText)return navigator.clipboard.readText().then(t=>{t&&this.pasteText(t,e.row,e.colIdx)}).catch(()=>{})}catch{}return Promise.resolve()}refreshSummary(){this.summaryRenderer.refresh()}emit(e,t){let r={type:e,api:this.api,...t};this.eventBus.emit(e,r);let o="on"+e.charAt(0).toUpperCase()+e.slice(1),i=this.options[o];if(typeof i=="function")try{i(r)}catch(a){e==="gridError"?console.error("[mach-table] error in onGridError",a):this.reportError(a,`eventHandler.${String(o)}`,{eventType:e})}return(e==="columnResized"&&r.finished||Oi.has(e))&&this.scheduleGridStateSave(),r}reportError(e,t,r){let o=this.errorCodeFor(t,e),i=e instanceof Error?e.message:String(e);this.recentErrors.push({code:o,source:t,message:i,timestamp:Date.now(),...r?{context:r}:{}}),this.recentErrors.length>50&&this.recentErrors.splice(0,this.recentErrors.length-50),console.error(`[mach-table] ${o} (${t})`,e),!this.destroyed&&this.emit("gridError",{code:o,error:e,source:t,context:r})}errorCodeFor(e,t){if(Fi.some(o=>e.startsWith(o)))return"DATA_SOURCE_ERROR";let r=t instanceof Error?t.message:String(t);return e==="getRowId"||r.includes("Duplicate row id")?"DATA_INTEGRITY_ERROR":e==="validate"?"VALIDATION_ERROR":e.toLowerCase().includes("renderer")||e==="valueFormatter"||e==="cellStyle"||e==="cellClass"?"RENDERER_ERROR":e.toLowerCase().includes("editor")||e==="editable"?"EDITOR_ERROR":e.startsWith("feature.")?"FEATURE_ERROR":Ni.some(o=>e.startsWith(o))?"STATE_ERROR":e.startsWith("eventBus.")||e.startsWith("eventHandler.")?"EVENT_HANDLER_ERROR":"GRID_ERROR"}getDiagnostics(){return{gridId:this.gridId,version:xe.version,destroyed:this.destroyed,infinite:this.rowModel.isInfinite,loading:this.rowModel.isLoadingInfinite()||this.options.loading,rowCount:this.rowModel.getDisplayTotalCount(),renderedRowCount:this.skeleton.bodyEl.querySelectorAll(".mach-row[data-index]").length,columnCount:this.columnModel.getColumns().length,selectedRowCount:this.selectionService.getSelectedNodes().length,dirtyRowCount:this.changeTracker.getDirtyRowIds().length,activeFeatures:[...this.activeFeatures].map(([e,t])=>({key:e,...t.feature.version?{version:t.feature.version}:{}})),performance:this.performanceMonitor.snapshot(),updates:this.updateScheduler.snapshot(),recentErrors:this.recentErrors.map(e=>({...e,...e.context?{context:{...e.context}}:{}}))}}cycleSort(e,t){this.columnModel.cycleSort(e,t),this.applySortModel()}applySortModel(){if(this.headerRenderer.refreshSortIndicators(),this.emit("sortChanged",{sortModel:this.columnModel.getSortModel()}),this.persistColumnState(),this.rowModel.isInfinite){this.rowModel.onServerParamsChanged();return}this.rowModel.refreshPipeline(),this.requestUpdate({data:!0})}applyColumnFilter(e,t){let r=this.rowModel.getFilterModel();if(t?r[e.id]=t:delete r[e.id],this.rowModel.setFilterModel(r),this.headerRenderer.refreshFilterIcons(),this.emit("filterChanged",{filterModel:this.rowModel.getFilterModel(),advancedFilterModel:this.rowModel.getAdvancedFilterModel()}),this.rowModel.isInfinite){this.rowModel.onServerParamsChanged();return}this.rowModel.refreshPipeline(),this.requestUpdate({data:!0})}applyQuickFilter(){if(this.emit("filterChanged",{filterModel:this.rowModel.getFilterModel(),advancedFilterModel:this.rowModel.getAdvancedFilterModel()}),this.rowModel.isInfinite){this.rowModel.onServerParamsChanged();return}this.rowModel.refreshPipeline(),this.requestUpdate({data:!0})}moveColumn(e,t){this.columnModel.moveColumn(e,t)&&(this.onColumnsStructureChanged(),this.emit("columnMoved",{colId:e,toIndex:t}),this.persistColumnState())}toggleDetail(e){return this.rowModel.toggleDetail(e)}emitColumnResize(e,t){this.emit("columnResized",{colId:e.id,width:e.currentWidth,finished:t})}commitColumnWidths(e){if(!(this.destroyed||e.length===0)){for(let t of e){if(this.destroyed)break;this.emitColumnResize(t,!0)}this.persistColumnState()}}loadPersistedColumnState(){let e=++this.columnStateLoadToken;if(!this.options.columnStateKey)return;let t;try{t=this.options.columnStateStore?this.options.columnStateStore.load(this.options.columnStateKey):Mt(this.options.columnStateKey)}catch(r){this.reportError(r,"columnState.load");return}if(t!=null){if(!Array.isArray(t)){Promise.resolve(t).then(r=>{this.destroyed||e!==this.columnStateLoadToken||!r||r.length===0||(this.columnModel.applyColumnState(r),this.rowModel.isInfinite?this.rowModel.onServerParamsChanged():this.rowModel.refreshPipeline(),this.onColumnsStructureChanged())}).catch(r=>this.reportError(r,"columnState.load"));return}t.length>0&&this.columnModel.applyColumnState(t)}}persistColumnState(){if(!this.options.columnStateKey||this.destroyed)return;let e=this.columnModel.getColumnState();try{let t=this.options.columnStateStore?this.options.columnStateStore.save(this.options.columnStateKey,e):xt(this.options.columnStateKey,e);t&&typeof t.catch=="function"&&t.catch(r=>this.reportError(r,"columnState.save"))}catch(t){this.reportError(t,"columnState.save")}}loadPersistedGridState(){let e=++this.gridStateLoadToken,t=this.options.stateKey;if(!t)return;let r;try{r=this.options.stateStore?this.options.stateStore.load(t):It(t)}catch(i){this.reportError(i,"gridState.load");return}let o=i=>{this.destroyed||e!==this.gridStateLoadToken||!i||this.api.applyState(i,{emitEvents:!1})};r&&typeof r.then=="function"?Promise.resolve(r).then(o).catch(i=>this.reportError(i,"gridState.load")):o(r)}scheduleGridStateSave(){!this.options.stateKey||this.destroyed||(this.stateSaveTimer&&clearTimeout(this.stateSaveTimer),this.stateSaveTimer=setTimeout(()=>{this.stateSaveTimer=null,this.persistGridState()},this.options.stateSaveDebounceMs))}persistGridState(){let e=this.options.stateKey;if(!(!e||this.destroyed))try{let t=this.options.stateStore?this.options.stateStore.save(e,this.api.getState()):kt(e,this.api.getState());t&&typeof t.catch=="function"&&t.catch(r=>this.reportError(r,"gridState.save"))}catch(t){this.reportError(t,"gridState.save")}}buildDefaultErrorState(){let e=document.createElement("div");e.className="mach-empty mach-empty--error";let t=document.createElement("div");t.className="mach-empty__title",t.textContent=this.getLocaleText("requestFailed");let r=document.createElement("div");return r.className="mach-empty__hint",r.textContent=this.getLocaleText("requestFailedHint"),e.append(t,r),e}buildDefaultEmptyState(){let e=this.options.locale??{},t=e.emptyRows??T.emptyRows,r=e.emptyRowsHint??T.emptyRowsHint,o=document.createElement("div");o.className="mach-empty";let i=document.createElementNS("http://www.w3.org/2000/svg","svg");i.setAttribute("class","mach-empty__icon"),i.setAttribute("viewBox","0 0 96 84"),i.setAttribute("width","96"),i.setAttribute("height","84"),i.setAttribute("fill","none"),i.setAttribute("aria-hidden","true"),i.innerHTML='<rect x="8" y="10" width="68" height="56" rx="6" fill="#eaf3fe"/><rect x="8" y="10" width="68" height="12" rx="6" fill="#d5e8fd"/><rect x="8" y="19" width="68" height="3" fill="#d5e8fd"/><g stroke="#bcd7f8" stroke-width="2.4" stroke-linecap="round"><line x1="16" y1="32" x2="68" y2="32"/><line x1="16" y1="42" x2="60" y2="42"/><line x1="16" y1="52" x2="64" y2="52"/></g><circle cx="66" cy="52" r="15" fill="#ffffff" stroke="#8fbdf5" stroke-width="3"/><line x1="77" y1="63" x2="86" y2="72" stroke="#8fbdf5" stroke-width="4" stroke-linecap="round"/><line x1="60" y1="52" x2="72" y2="52" stroke="#bcd7f8" stroke-width="2.6" stroke-linecap="round"/>';let s=document.createElement("div");s.className="mach-empty__title",s.textContent=t;let a=document.createElement("div");return a.className="mach-empty__hint",a.textContent=r,o.append(i,s,a),o}checkWarnings(e){if(!(this.options.suppressWarnings||this.destroyed)){if(e)for(let t of Ft(e)){let r=`${t.code}:${t.option??""}:${t.message}`;this.issuedWarningSignatures.has(r)||(this.issuedWarningSignatures.add(r),console.warn(`[mach-table:${t.code}] ${t.message}`))}this.options.treeData&&this.columnModel.getRowGroupColumns().length>0&&console.warn("[mach-table] treeData \u4E0E rowGroup \u4E0D\u652F\u6301\u540C\u65F6\u542F\u7528\uFF0C\u884C\u5206\u7EC4\u5DF2\u88AB\u5FFD\u7565")}}validateDefs(e){if(!(this.options.suppressWarnings||this.destroyed)&&this.lastValidatedDefs!==e){this.lastValidatedDefs=e;for(let t of yo(e))this.issuedWarningSignatures.has(t)||(this.issuedWarningSignatures.add(t),console.warn(`[mach-table] ${t}`))}}onColumnsStructureChanged(){this.updateScheduler.schedule({columns:!0})}requestUpdate(e){this.updateScheduler.schedule(e)}batchUpdates(e){return this.updateScheduler.batch(e)}applyScheduledUpdate(e){this.destroyed||(e.columns?this.applyColumnsStructureChanged():(e.header&&this.headerRenderer.build(),e.pool?this.bodyRenderer.rebuildPool():e.layout&&this.relayout()),e.data&&!e.pool&&!e.columns?this.bodyRenderer.onDataChanged():e.cells&&this.bodyRenderer.refreshCells(e.cells===!0?void 0:e.cells),e.pinned&&this.pinnedRowsRenderer.refresh(),e.summary&&this.summaryRenderer.refresh(),e.overlays&&this.bodyRenderer.refreshOverlays())}applyColumnsStructureChanged(){this.checkWarnings(),this.validateDefs(this.columnModel.getColumnDefs()),this.bodyRenderer.invalidateAllRowHeights(),this.headerRenderer.build(),this.bodyRenderer.rebuildPool(),this.relayout(),this.pinnedRowsRenderer.rebuild(),this.summaryRenderer.refresh(),this.emit("displayedColumnsChanged",{})}relayout(){if(this.destroyed)return;let e=this.performanceMonitor.start();this.refreshAriaState(),this.columnModel.computeLayout(this.skeleton.measureViewportWidth());let t=this.columnModel.getOrderedVisible().map(r=>`${r.id}:${r.currentWidth}`).join("|");this.lastColumnLayoutSignature&&t!==this.lastColumnLayoutSignature&&this.bodyRenderer.invalidateAllRowHeights(),this.lastColumnLayoutSignature=t,this.skeleton.root.setAttribute("aria-colcount",String(this.columnModel.getOrderedVisible().length)),this.headerRenderer.applyLayout(),this.bodyRenderer.relayout(),this.pinnedRowsRenderer.applyLayout(),this.summaryRenderer.refresh(),this.performanceMonitor.recordLayout(e)}refreshAriaState(){if(!this.skeleton.root)return;let e=this.options.treeData||this.columnModel.getRowGroupColumns().length>0;this.skeleton.root.setAttribute("role",e?"treegrid":"grid"),this.options.rowSelection==="multiple"?this.skeleton.root.setAttribute("aria-multiselectable","true"):this.skeleton.root.removeAttribute("aria-multiselectable"),this.columnModel.getOrderedVisible().some(r=>!!r.colDef.editable)?this.skeleton.root.removeAttribute("aria-readonly"):this.skeleton.root.setAttribute("aria-readonly","true")}relayoutColumns(e=!0){this.destroyed||(this.columnModel.computeLayout(this.skeleton.measureViewportWidth()),e&&this.bodyRenderer.invalidateAllRowHeights(),this.headerRenderer.applyLayout(),this.bodyRenderer.applyContainerSizes(),this.bodyRenderer.applyCellLayout(),this.bodyRenderer.updateRange(!0),this.pinnedRowsRenderer.applyLayout(),this.summaryRenderer.refresh())}destroy(){if(this.destroyed)return;this.stateSaveTimer&&(clearTimeout(this.stateSaveTimer),this.stateSaveTimer=null,this.persistGridState()),this.destroyed=!0,this.readyRafId&&cancelAnimationFrame(this.readyRafId),this.readyRafId=0,this.settleReady();let e=(t,r)=>{try{r()}catch(o){console.error(`[mach-table] ${t} destroy error`,o)}};e("grid event",()=>this.emit("gridDestroyed",{})),e("updateScheduler",()=>this.updateScheduler.destroy()),e("performanceMonitor",()=>this.performanceMonitor.destroy()),e("features",()=>this.destroyFeatures()),e("changeTracker",()=>this.changeTracker.destroy()),e("rowModel",()=>this.rowModel.destroy()),e("editingService",()=>this.editingService.destroy()),e("keyboardService",()=>this.keyboardService.destroy()),e("filterPopup",()=>this.filterPopup.destroy()),e("columnMenu",()=>this.columnMenu.destroy()),e("contextMenu",()=>this.contextMenuService.destroy()),e("tooltip",()=>this.tooltipService.destroy()),e("watermark",()=>this.watermarkService.destroy()),e("pagination",()=>this.paginationBar.destroy()),e("columnDrag",()=>this.columnDragService.destroy()),e("resize",()=>this.resizeService.destroy()),e("bodyRenderer",()=>this.bodyRenderer.destroy()),e("headerRenderer",()=>this.headerRenderer.destroy()),e("pinnedRowsRenderer",()=>this.pinnedRowsRenderer.destroy()),e("summaryRenderer",()=>this.summaryRenderer.destroy()),e("statusBar",()=>this.statusBarService.destroy()),e("skeleton",()=>this.skeleton.destroy()),this.eventBus.clear()}};function To(n,e={}){if(!n)throw new Error("[mach-table] createGrid requires a container element");if(typeof document>"u")throw new Error("[mach-table] createGrid can only be used in a browser environment");return new ce(n,e).getApi()}function Bi(n){return n.value===!0?"\u662F":n.value===!1?"\u5426":""}function Vi(n){return e=>{if(e.value==null||e.value==="")return"";let t=e.value instanceof Date?e.value.toISOString():String(e.value);return n==="datetime"?t.slice(0,16).replace("T"," "):t.slice(0,10)}}function zi(n){return e=>{if(e.value==null)return"";let t=n.find(r=>r.value===e.value);return t?t.label:String(e.value)}}function So(n){let e=n.type??"string",t={colId:n.field,field:n.field,headerName:n.title??n.field,width:n.width,minWidth:n.minWidth,maxWidth:n.maxWidth,flex:n.flex,pinned:n.pinned??void 0,hide:n.hidden??!1,editable:n.editable??!1,sortable:n.sortable??!0,resizable:n.resizable??!0,filter:n.filterable===!1?!1:e==="number"?"number":e==="date"?"date":e==="select"?"set":"text",cellClass:n.cellClass};if(e==="number")t.type="rightAligned";else if(e==="date")t.valueFormatter=Vi(n.format);else if(e==="boolean")t.valueFormatter=Bi,t.filter=n.filterable===!1?!1:"set";else if(e==="select"){let r=n.options??[];t.valueFormatter=zi(r),n.editable&&(t.cellEditor="select",t.cellEditorParams={values:r.map(o=>o.value)})}return t}function Do(n){let e=new Map(n.fields.map(o=>[o.field,o])),t=new Set,r=[];for(let o of n.fields){if(t.has(o.field))continue;(n.groups??[]).some(s=>s.fields.includes(o.field))||(r.push(So(o)),t.add(o.field))}for(let o of n.groups??[]){let i=[];for(let s of o.fields){let a=e.get(s);!a||t.has(s)||(i.push(So(a)),t.add(s))}i.length>0&&r.push({headerName:o.title,children:i})}return r}function A(n){let e=n();return e&&!e.isDestroyed()?e:null}function Eo(n){let e=()=>n.getApi();return{search(t){A(e)?.setQuickFilter(t)},async refresh(){if(n.reload){await n.reload();return}let t=A(e);t&&(t.isInfinite()?await t.reload():t.refreshCells())},openColumns(t){A(e)?.openColumnWorkbench(t)},setDensity(t){A(e)?.setGridOption("size",t)},resetColumns(){A(e)?.resetColumnState()},undo(){return A(e)?.undo()??!1},redo(){return A(e)?.redo()??!1},canUndo(){return A(e)?.canUndo()??!1},canRedo(){return A(e)?.canRedo()??!1},exportCsv(t="mach-table.csv"){let r=A(e);return r?ct(t,r.getDataAsCsv({prependBOM:!0}),"text/csv;charset=utf-8"):!1},async toggleFullscreen(){if(typeof document>"u")return!1;if(document.fullscreenElement)return await document.exitFullscreen?.(),!1;let r=A(e)?.getRootElement(),o=n.getFullscreenElement?.()??r?.parentElement??r;return o?.requestFullscreen?(await o.requestFullscreen(),!0):!1}}}var Se={sortable:!1,resizable:!1,movable:!1,filter:!1,suppressSizeToFit:!0};function xo(n={}){return{colId:"sel",headerName:"",width:46,pinned:"left",checkboxSelection:!0,...Se,...n}}function Mo(n={}){return{colId:"idx",headerName:"#",type:"index",width:60,pinned:"left",...Se,...n}}function ko(n={}){return{colId:"drag",headerName:"",rowDrag:!0,width:40,...Se,...n}}function Io(n={actions:[]}){let{width:e,pinned:t,...r}=n,o=r.actions?.length??0,i=r.overflow==="inline"?o:Math.min(o,r.max??3),s=r.overflow!=="inline"&&o>i,a=Math.max(1,i)*26+(s?26:0)+10;return{colId:"op",headerName:"\u64CD\u4F5C",width:e??Math.max(64,a),pinned:t??"right",cellRenderer:de(r),...Se,cellRendererParams:void 0}}function Po(n={}){let{width:e,pinned:t,...r}=n,o=(r.onView?1:0)+(r.edit===!1?0:1)+(r.onDelete?1:0)+(r.extraActions?.length??0),i=r.overflow==="inline"?o:Math.min(o,r.max??3),s=r.overflow!=="inline"&&o>i,a=Math.max(2,i)*26+(s?26:0)+10;return{colId:"op",headerName:"\u64CD\u4F5C",width:e??Math.max(72,a),pinned:t??"right",cellRenderer:Lt(r),...Se,cellRendererParams:void 0}}function Lo(){return{accessor:(n,e={})=>({...e,field:n}),display:n=>({...n}),group:n=>({...n,children:[...n.children]})}}function Ao(n){return[...n]}function yr(n,e){return e===void 0?n:typeof e!="object"||e===null||typeof n!="object"||n===null?e:{...n,...e}}function _i(n,e){return typeof n!="function"?e:typeof e!="function"?n:(...t)=>{let r;try{n(...t)}catch(o){r=o}try{e(...t)}catch(o){r??(r=o)}if(r!==void 0)throw r}}function Wi(n,e){let t={...n,...e,features:e.features??n.features};if((n.defaultColDef||e.defaultColDef)&&(t.defaultColDef={...n.defaultColDef,...e.defaultColDef}),(n.locale||e.locale)&&(t.locale={...n.locale,...e.locale}),(n.components||e.components)&&(t.components={cellRenderers:{...n.components?.cellRenderers,...e.components?.cellRenderers},cellEditors:{...n.components?.cellEditors,...e.components?.cellEditors}}),n.columnTypes||e.columnTypes){let r={};for(let o of new Set([...Object.keys(n.columnTypes??{}),...Object.keys(e.columnTypes??{})]))r[o]={...n.columnTypes?.[o],...e.columnTypes?.[o]};t.columnTypes=r}(n.aggFuncs||e.aggFuncs)&&(t.aggFuncs={...n.aggFuncs,...e.aggFuncs}),t.pagination=yr(n.pagination,e.pagination),t.statusBar=yr(n.statusBar,e.statusBar),t.watermark=yr(n.watermark,e.watermark);for(let r of new Set([...Object.keys(n),...Object.keys(e)])){if(!/^on[A-Z]/.test(r))continue;let o=n[r],i=e[r];typeof o=="function"&&typeof i=="function"&&(t[r]=_i(o,i))}return t}function B(...n){return n.reduce(Wi,{})}function Go(n={}){return B({defaultColDef:{sortable:!0,resizable:!0,movable:!0,filter:!0},enableColumnResize:!0,rowSelection:"multiple",columnMenu:!0,contextMenu:!0,enableRangeSelection:!0,fillHandle:!0,statusBar:!0,stripedRows:!0},n)}function Fo(n){return n}function No(n){return n}function Oo(n){return n}function Ki(n){return n?(Array.isArray(n)?n:[n]).filter(e=>typeof e=="string"&&e.trim().length>0):[]}function vr(n={}){return{defaults:B({columnTypes:n.columnTypes,components:n.components},n.defaults??{}),presets:Object.fromEntries(Object.entries(n.presets??{}).map(([e,t])=>[e,B(t)])),defaultPreset:n.defaultPreset??!1,...n.onConfigWarning?{onConfigWarning:n.onConfigWarning}:{}}}function Ho(n,e){let t=vr(e),r={...n.presets};for(let[o,i]of Object.entries(e.presets??{}))r[o]=B(n.presets[o]??{},i);return{defaults:B(n.defaults,t.defaults),presets:r,defaultPreset:e.defaultPreset===void 0?n.defaultPreset:e.defaultPreset,...e.onConfigWarning??n.onConfigWarning?{onConfigWarning:e.onConfigWarning??n.onConfigWarning}:{}}}function Bo(n,e,t,r){let o=e===void 0?n.defaultPreset:e,i=[{name:"application defaults",options:n.defaults}];for(let a of Ki(o)){let l=n.presets[a];if(!l){let d={code:"UNKNOWN_PRESET",preset:a,message:`[MachTable] Unknown preset "${a}". Register it in mach-table.config.ts or remove the preset.`};r?r(d):n.onConfigWarning?n.onConfigWarning(d):console.warn(d.message);continue}i.push({name:`preset:${a}`,options:l})}i.push({name:"table props",options:t});let s=B(...i.map(a=>a.options));return{options:s,explain(a){let l=i.filter(c=>Object.prototype.hasOwnProperty.call(c.options,a)).map(c=>({name:c.name,value:c.options[a]})),d=l[l.length-1];return{key:a,value:s[a],source:d?.name??"MachTable built-in",layers:l}}}}function De(n){return n!=null&&n!==""}function $i(n){if(!De(n))return null;let e=typeof n=="number"?n:Number(n);return Number.isFinite(e)?e:null}function Ht(n,e){try{return new Intl.NumberFormat(n,e)}catch{return new Intl.NumberFormat(void 0,e)}}function Vo(n,e){try{return new Intl.DateTimeFormat(n,e)}catch{let t={...e};return delete t.timeZone,new Intl.DateTimeFormat(void 0,t)}}function Ui(n){if(!De(n))return null;let e=n instanceof Date?n:new Date(n);return Number.isFinite(e.getTime())?e:null}function zo(n={}){let e=n.emptyText??"",t=n.invalidText??"\u2014",r=Ht(n.locale,{maximumFractionDigits:n.maximumFractionDigits??2}),o=Ht(n.locale,{maximumFractionDigits:0}),i=Ht(n.locale,{style:"currency",currency:n.currency??"CNY",currencyDisplay:n.currencyDisplay??"symbol",maximumFractionDigits:n.maximumFractionDigits??2}),s=Ht(n.locale,{style:"percent",maximumFractionDigits:n.maximumFractionDigits??2}),a=Vo(n.locale,{year:"numeric",month:"2-digit",day:"2-digit",...n.timeZone?{timeZone:n.timeZone}:{}}),l=Vo(n.locale,{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1,...n.timeZone?{timeZone:n.timeZone}:{}}),d=(u,h=1)=>({value:p})=>{if(!De(p))return e;let m=$i(p);return m==null?t:u.format(m*h)},c=u=>({value:h})=>{if(!De(h))return e;let p=Ui(h);return p==null?t:u.format(p)};return Object.freeze({text:{align:"left",filter:"text"},number:{align:"right",filter:"number",cellEditor:"number",valueFormatter:d(r)},integer:{align:"right",filter:"number",cellEditor:"number",valueFormatter:d(o)},money:{align:"right",filter:"number",cellEditor:"number",valueFormatter:d(i)},percent:{align:"right",filter:"number",cellEditor:"number",valueFormatter:d(s)},percentage:{align:"right",filter:"number",cellEditor:"number",valueFormatter:d(s,.01)},date:{align:"center",filter:"date",cellEditor:"date",valueFormatter:c(a)},datetime:{align:"center",filter:"date",valueFormatter:c(l)},boolean:{align:"center",filter:"set",valueFormatter:({value:u})=>u===!0?n.trueText??"\u662F":u===!1?n.falseText??"\u5426":e},status:{filter:"set",cellRenderer:"statusTag"},link:{filter:"text",cellRenderer:"link"}})}function Bt(n){return`${typeof n}:${String(n)}`}function _o(n){let e=Math.max(0,n.ttlMs??3e5),t=Math.max(1,Math.floor(n.maxSize??2e3)),r=Math.max(0,n.batchDelayMs??0),o=new Map,i=new Map,s=new Map,a=null,l=null,d=!1,c=m=>{let f=Bt(m),y=o.get(f);if(y){if(y.expiresAt<Date.now()){o.delete(f);return}return o.delete(f),o.set(f,y),y.label}},u=m=>{let f=e===0?Number.POSITIVE_INFINITY:Date.now()+e;for(let y of m){let v=Bt(y.value);o.delete(v),o.set(v,{key:y.value,label:String(y.label),expiresAt:f})}for(;o.size>t;)o.delete(o.keys().next().value)},h=async()=>{if(a=null,d||i.size===0)return;let m=[...i.entries()];i.clear();let f=m.map(([,v])=>v),y=new AbortController;l=y;try{let v=await n.load(f,y.signal);if(d||y.signal.aborted)return;u(v);for(let[w,b]of m){let S=c(b);for(let R of s.get(w)??[])R.resolve(S);s.delete(w)}}catch(v){y.signal.aborted||n.onError?.(v,f);for(let[w]of m){for(let b of s.get(w)??[])b.reject(v);s.delete(w)}}finally{l===y&&(l=null),!d&&i.size>0&&a==null&&(a=setTimeout(()=>{h()},r))}},p=m=>{let f=c(m);if(f!==void 0)return Promise.resolve(f);if(d)return Promise.reject(new Error("[MachTable] Dictionary resolver has been destroyed."));let y=Bt(m);i.set(y,m);let v=new Promise((w,b)=>{let S=s.get(y)??[];S.push({resolve:w,reject:b}),s.set(y,S)});return a==null&&l==null&&(a=setTimeout(()=>{h()},r)),v};return{get:c,resolve:p,async resolveMany(m){let f=await Promise.all(m.map(async y=>[y,await p(y)]));return new Map(f.filter(y=>y[1]!==void 0))},prime:u,invalidate(m){if(!m)o.clear();else for(let f of m)o.delete(Bt(f))},destroy(){d=!0,a!=null&&clearTimeout(a),a=null,l?.abort(),l=null;let m=new Error("[MachTable] Dictionary resolver has been destroyed.");for(let f of s.values())for(let y of f)y.reject(m);s.clear(),i.clear(),o.clear()},get size(){return o.size}}}function Wo(n,e={}){return t=>{if(!De(t.value))return e.emptyText??"";let r=t.value,o=e.fallback?.(r)??String(r),i=n.get(r);if(i!==void 0)return i;let s=document.createElement("span");s.className="mach-dictionary-value mach-dictionary-value--loading",s.textContent=e.loadingText??o;let a=!0;return n.resolve(r).then(l=>{!a||!s.isConnected||(s.textContent=l??o,s.classList.remove("mach-dictionary-value--loading"))}).catch(()=>{!a||!s.isConnected||(s.textContent=o,s.classList.remove("mach-dictionary-value--loading"),s.classList.add("mach-dictionary-value--error"))}),{el:s,destroy:()=>{a=!1}}}}function Ko(){try{return typeof localStorage>"u"?null:localStorage}catch{return null}}function $o(n){return typeof TextEncoder>"u"?n.length*2:new TextEncoder().encode(n).byteLength}function Uo(n){if(typeof n!="string")return null;let e=n.trim();return e&&e.length<=256?e:null}function Vt(n){if(n==null||typeof n!="object")return null;let e=n;if(e.version!==1)return null;let t=O({version:2,columns:e.columns,sortModel:e.sortModel,filterModel:e.filterModel,advancedFilterModel:e.advancedFilterModel,quickFilterText:e.quickFilterText,pagination:{enabled:!0,page:1,pageSize:e.pageSize},selectedRowIds:[],expandedRowIds:[],expandedGroupIds:[]});return t?{version:1,columns:t.columns,sortModel:t.sortModel,filterModel:t.filterModel,advancedFilterModel:t.advancedFilterModel,quickFilterText:t.quickFilterText,pageSize:t.pagination.pageSize}:null}function ue(n){if(n==null||typeof n!="object")return null;let e=n,t=Uo(e.id),r=typeof e.name=="string"?e.name.trim().slice(0,120):"",o=Vt(e.state);if(e.schemaVersion!==1||!t||!r||!o)return null;let i=typeof e.createdAt=="number"&&Number.isFinite(e.createdAt)?e.createdAt:Date.now(),s=typeof e.updatedAt=="number"&&Number.isFinite(e.updatedAt)?e.updatedAt:i;return{schemaVersion:1,id:t,name:r,createdAt:i,updatedAt:s,state:o}}function wr(n){let e=n.getState();return{version:1,columns:e.columns,sortModel:e.sortModel,filterModel:e.filterModel,advancedFilterModel:e.advancedFilterModel,quickFilterText:e.quickFilterText,pageSize:e.pagination.pageSize}}function Cr(n,e,t={}){let r=Vt(e);if(!r||n.isDestroyed())return!1;let o=n.getState();return n.applyState({...o,columns:r.columns,sortModel:r.sortModel,filterModel:r.filterModel,advancedFilterModel:r.advancedFilterModel,quickFilterText:r.quickFilterText,pagination:{...o.pagination,page:1,pageSize:r.pageSize}},{sections:["columns","sort","filter","pagination"],emitEvents:t.emitEvents}),!0}function br(n={}){let e=(n.namespace??"mach-table:views").replace(/:+$/,""),t=Math.max(1,Math.floor(n.maxViews??50)),r=Math.max(4096,Math.floor(n.maxBytes??512*1024)),o=l=>`${e}:${encodeURIComponent(l)}`,i=(l,d,c)=>{try{n.onError?.(l,d,c)}catch{}},s=l=>{let d=(n.storage??Ko())?.getItem(o(l));if(!d||$o(d)>r)return[];let c=JSON.parse(d);return c.schemaVersion!==1||!Array.isArray(c.views)?[]:c.views.flatMap(u=>{let h=ue(u);return h?[h]:[]}).slice(0,t)},a=(l,d)=>{let c=JSON.stringify({schemaVersion:1,savedAt:Date.now(),views:d});if($o(c)>r)throw new RangeError(`[MachTable] Saved views for "${l}" exceed ${r} bytes.`);let u=n.storage??Ko();if(!u)throw new Error("[MachTable] Saved view storage is unavailable.");u.setItem(o(l),c)};return{list(l){try{return s(l)}catch(d){return i(d,"list",l),[]}},save(l,d){try{let c=ue(d);if(!c)throw new TypeError(`[MachTable] Invalid saved view for "${l}".`);let u=s(l).filter(h=>h.id!==c.id);u.unshift(c),a(l,u.slice(0,t))}catch(c){throw i(c,"save",l),c}},remove(l,d){try{a(l,s(l).filter(c=>c.id!==d))}catch(c){throw i(c,"remove",l),c}}}}function qi(){try{if(typeof crypto<"u"&&crypto.randomUUID)return crypto.randomUUID()}catch{}return`view-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`}function qo(n,e){let t=e.scope.trim();if(!t||t.length>512)throw new TypeError("[MachTable] Grid view scope must contain between 1 and 512 characters.");let r=e.store??br(),o=async()=>(await r.list(t)).flatMap(s=>{let a=ue(s);return a?[a]:[]}).sort((s,a)=>a.updatedAt-s.updatedAt);return{list:o,async save(i,s){let a=i.trim().slice(0,120);if(!a)throw new TypeError("[MachTable] Grid view name must be a non-empty string.");let l=Uo(s)??qi(),d=(await o()).find(h=>h.id===l),c=Date.now(),u={schemaVersion:1,id:l,name:a,createdAt:d?.createdAt??c,updatedAt:c,state:wr(n)};return await r.save(t,u),u},async apply(i,s){let a=typeof i=="string"?(await o()).find(d=>d.id===i):ue(i),l=typeof i=="string"?i:"provided view";if(!a)throw new Error(`[MachTable] Grid view "${l}" was not found.`);if(!Cr(n,a.state,s))throw new Error(`[MachTable] Grid view "${a.id}" could not be applied.`);return a},async remove(i){await r.remove(t,i)}}}var ji=xe.version;0&&(module.exports={BUILTIN_AGG_FUNCS,Column,DEFAULT_LOCALE,DIRECT_GRID_OPTION_KEYS,EVENT_TYPES,EventBus,GRID_OPTION_KEYS,GRID_OPTION_META,GRID_SIZE_PRESETS,GridCore,LOCALE_EN,actionsColumn,advancedFilterCondition,advancedFilterGroup,applyGridViewState,buildColDefsFromSchema,captureGridViewState,clearColumnState,clearComponentRegistries,clearGridState,computeColumnWidths,createActionButtonsRenderer,createAggResolver,createBusinessColumnTypes,createCachedDictionary,createColumnHelper,createColumnStateKey,createDictionaryRenderer,createEnterprisePreset,createGrid,createGridViewManager,createLocalColumnStateStore,createLocalGridStateStore,createLocalGridViewStore,createMachTableCommands,createMachTablePreset,createProgressBarRenderer,createRowActionsRenderer,createSaveSnapshot,createStatusTagRenderer,defaultComparator,defineColumns,defineGridOptions,defineMachTableConfig,defineMachTablePreset,describeFilter,downloadFile,dragColumn,escapeHtml,evaluateColumnFilter,fitColumnWidths,formatText,formatTwo,getByPath,getCellEditor,getCellRenderer,indexColumn,isColDefGroup,isSafePath,linkRenderer,loadColumnState,loadGridState,matchLocaleKey,matchesGridOptionKind,mergeMachTableConfig,migrateGridState,normalizeAdvancedFilterModel,normalizeBatchSaveResult,normalizeColumnFilter,normalizeFilterModel,normalizeGridViewState,normalizeMachTableConfig,normalizeSavedGridView,parseCsv,parseDelimited,parseTsv,registerBuiltinRenderers,registerCellEditor,registerCellRenderer,resolveGridFeatures,resolveMachTableGridOptions,resolveSaveConflict,resolveTagVariant,rowActionsColumn,sanitizeFormulaCell,sanitizeGridOptionPatch,saveColumnState,saveGridState,selectionColumn,setByPath,sortNodes,toTsv,validateGridOptions,version});
7
- //# sourceMappingURL=index.cjs.map
6
+ `?s+=2:s++;continue}o+=a,s++}return(o!==""||r.length>0)&&(r.push(o),t.push(r)),t}function Un(n){let e=null;try{return e=document.createElement("textarea"),e.value=n,e.style.position="fixed",e.style.opacity="0",document.body.appendChild(e),e.focus(),e.select(),document.execCommand("copy")}catch{return!1}finally{e?.remove()}}async function ye(n){try{if(typeof navigator<"u"&&navigator.clipboard?.writeText)return await navigator.clipboard.writeText(n),!0}catch{}return Un(n)}var jn=new Set(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Enter","F2","Home","End","PageUp","PageDown","Tab"," ","Escape","Delete","Backspace"]),Yn=new Set(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Home","End","PageUp","PageDown"]),Ye=class{constructor(e){this.core=e;this.onCopy=e=>{if(this.core.options.suppressClipboard||this.core.editingService.isEditing())return;let t=this.core.bodyRenderer.getNormalizedRangeOrFocus();if(!t)return;let r=this.core.buildRangeTsv(t),o=e.clipboardData;o&&typeof o.setData=="function"?o.setData("text/plain",r):ye(r),e.preventDefault()};this.onCut=e=>{if(this.core.options.suppressClipboard||this.core.editingService.isEditing())return;let t=this.core.bodyRenderer.getNormalizedRangeOrFocus();if(!t)return;let r=this.core.buildRangeTsv(t),o=e.clipboardData;o&&typeof o.setData=="function"?o.setData("text/plain",r):ye(r),this.core.clearRangeValues(t),e.preventDefault()};this.onPaste=e=>{if(this.core.options.suppressClipboard||this.core.editingService.isEditing())return;let t=this.core.bodyRenderer.getPasteStart();if(!t)return;let r=e.clipboardData,o=r&&typeof r.getData=="function"?r.getData("text/plain"):null;typeof o!="string"||o===""||(e.preventDefault(),this.core.pasteText(o,t.row,t.colIdx))};this.onKeyDown=e=>{this.core.isDestroyed()||this.core.editingService.isEditing()||this.handleSelectAll(e)||this.handleHistoryShortcut(e)||jn.has(e.key)&&(this.handleRangeCommand(e)||this.focusFirstCell(e)||this.handleFocusedKey(e))}}init(){this.core.skeleton.root.addEventListener("keydown",this.onKeyDown),this.core.skeleton.root.addEventListener("copy",this.onCopy),this.core.skeleton.root.addEventListener("cut",this.onCut),this.core.skeleton.root.addEventListener("paste",this.onPaste)}destroy(){this.core.skeleton.root.removeEventListener("keydown",this.onKeyDown),this.core.skeleton.root.removeEventListener("copy",this.onCopy),this.core.skeleton.root.removeEventListener("cut",this.onCut),this.core.skeleton.root.removeEventListener("paste",this.onPaste)}nextEditable(e,t,r){let o=this.core.columnModel.getOrderedVisible(),i=o.findIndex(d=>d.id===t);if(i<0)return null;let s=this.core.rowModel.getDisplayedRowCount(),a=i,l=e;for(let d=0;d<(o.length+1)*(s+1);d++){if(a+=r,a>=o.length){if(l>=s-1)return null;a=0,l=this.skipDetailRows(l+1,1)}else if(a<0){if(l<=0)return null;a=o.length-1,l=this.skipDetailRows(l-1,-1)}if(l<0||l>=s)return null;let c=this.core.rowModel.getDisplayedRow(l);if(c&&!c.isDetail&&this.core.editingService.isEditable(c,o[a]))return{rowIndex:l,column:o[a]}}return null}skipDetailRows(e,t){let r=this.core.rowModel.getDisplayedRowCount(),o=0;for(;e>=0&&e<r;){let i=this.core.rowModel.getDisplayedRow(e);if(!i||!i.isDetail)return e;if(e+=t,o++,o>r+2)break}return-1}handleSelectAll(e){return!(e.ctrlKey||e.metaKey)||e.key.toLowerCase()!=="a"?!1:(this.core.options.rowSelection==="multiple"&&(e.preventDefault(),this.core.selectionService.selectAll(!0)),!0)}handleHistoryShortcut(e){if(!e.ctrlKey&&!e.metaKey||e.altKey)return!1;let t=e.key.toLowerCase();return t==="z"?(e.preventDefault(),e.shiftKey?this.core.undoService.redo():this.core.undoService.undo(),!0):t!=="y"?!1:(e.preventDefault(),this.core.undoService.redo(),!0)}handleRangeCommand(e){let t=this.core.bodyRenderer;if(e.key==="Escape")return this.core.options.enableRangeSelection&&t.normalizedRange()&&(e.preventDefault(),t.clearRangeSelection()),!0;if(e.key!=="Delete"&&e.key!=="Backspace")return!1;if(!this.core.options.enableRangeSelection)return!0;let r=t.normalizedRange();return r&&!(r.r1===r.r2&&r.c1===r.c2)&&(e.preventDefault(),this.core.clearRangeValues(r)),!0}focusFirstCell(e){if(this.core.bodyRenderer.focusedCell)return!1;let t=this.core.columnModel.getOrderedVisible();return this.core.rowModel.getDisplayedRowCount()>0&&t.length>0&&(e.preventDefault(),this.core.bodyRenderer.setFocusedCell(0,t[0].id)),!0}handleFocusedKey(e){let t=this.core.bodyRenderer,r=t.focusedCell;if(!r)return;let o=this.core.columnModel.getOrderedVisible(),i=o.findIndex(c=>c.id===r.colId),s=this.core.rowModel.getDisplayedRowCount();if(i<0||s===0)return;let a={row:r.rowIndex,colIdx:i},l=this.resolveKeyPosition(e,a,o,s);if(!l)return;e.preventDefault();let d=l.row!==a.row||l.colIdx!==a.colIdx;if(e.shiftKey&&this.core.options.enableRangeSelection&&d){t.moveRangeEnd(l.row,l.colIdx);return}d&&t.setFocusedCell(l.row,o[l.colIdx].id)}resolveKeyPosition(e,t,r,o){return Yn.has(e.key)?this.movePosition(e,t,r.length,o):e.key==="Enter"||e.key==="F2"?this.activateEditor(e,t,r,o):e.key===" "?(this.toggleFocusedRow(t.row),t):e.key==="Tab"?this.moveToEditable(e,t,r):null}movePosition(e,t,r,o){let{row:i,colIdx:s}=t;switch(e.key){case"ArrowUp":i=this.validSkippedRow(i,this.skipDetailRows(i-1,-1),o);break;case"ArrowDown":i=this.validSkippedRow(i,this.skipDetailRows(i+1,1),o);break;case"ArrowLeft":s=Math.max(0,s-1);break;case"ArrowRight":s=Math.min(r-1,s+1);break;case"Home":s=0,e.ctrlKey&&(i=0);break;case"End":s=r-1,e.ctrlKey&&(i=Math.max(0,this.skipDetailRows(o-1,-1)));break;case"PageUp":case"PageDown":i=this.movePage(e.key,i,o);break}return{row:i,colIdx:s}}validSkippedRow(e,t,r){return t>=0&&t<r?t:e}movePage(e,t,r){let o=this.core.skeleton.bodyViewports.center,i=Math.max(1,Math.floor(o.clientHeight/this.core.options.rowHeight)),s=e==="PageUp"?-1:1,a=Math.max(0,Math.min(r-1,t+i*s));return this.validSkippedRow(t,this.skipDetailRows(a,s),r)}activateEditor(e,t,r,o){let i=this.core.rowModel.getDisplayedRow(t.row),s=r[t.colIdx];if(i&&!i.isDetail&&s&&this.core.editingService.isEditable(i,s))return this.core.editingService.start(t.row,s,e.key==="F2"?e.key:null),t;let a=this.skipDetailRows(t.row+1,1);return{...t,row:this.validSkippedRow(t.row,a,o)}}toggleFocusedRow(e){let t=this.core.rowModel.getDisplayedRow(e);if(!(!t||t.isDetail)){if(t.isGroup){this.core.rowModel.toggleGroup(t.id);return}this.core.options.rowSelection!=="none"&&this.core.selectionService.setNodeSelected(t,!t.selected,this.core.options.rowSelection==="single")}}moveToEditable(e,t,r){let o=this.nextEditable(t.row,r[t.colIdx].id,e.shiftKey?-1:1);return o?(this.core.bodyRenderer.setFocusedCell(o.rowIndex,o.column.id),this.core.editingService.start(o.rowIndex,o.column),t):null}};function Qt(n,e){let t=document.createElement("input");return t.type=n,t.className="mach-editor-input",e!=null&&e!==""&&(t.value=n==="date"?String(e).slice(0,10):String(e)),t}function Xn(n,e){return e&&e.length>0?"select":typeof n=="number"?"number":n instanceof Date||typeof n=="string"&&/^\d{4}-\d{2}-\d{2}/.test(n)?"date":"text"}function Zt(n,e,t){let r=n.colDef,o=typeof r.cellEditor=="string"?r.cellEditor:Xn(e,r.cellEditorParams?.values);if(o==="number"){let s=Qt("number",e);return{el:s,getValue:()=>s.value===""?null:Number(s.value),focus:()=>{s.focus(),s.select()}}}if(o==="date"){let s=Qt("date",e),l=(e==null?"":String(e)).match(/T(\d{2}:\d{2})/);return{el:s,getValue:()=>s.value===""?null:l?`${s.value}T${l[1]}`:s.value,focus:()=>s.focus()}}if(o==="select"){let s=r.cellEditorParams?.values??[],a=document.createElement("select");a.className="mach-editor-select";for(let l of s){let d=document.createElement("option");d.value=String(l),d.textContent=String(l),String(e)===String(l)&&(d.selected=!0),a.appendChild(d)}return{el:a,getValue:()=>{let l=s.find(d=>String(d)===a.value);return l!==void 0?l:a.value},focus:()=>a.focus()}}let i=Qt("text",e);return t&&t.length===1&&(i.value=t),{el:i,getValue:()=>i.value,focus:()=>{i.focus(),i.select()}}}var er=new WeakMap,Xe=new WeakMap,Je=new WeakMap;function ve(n){let e=er.get(n);return e||(e={},er.set(n,e)),e}function tr(n){return er.get(n)}function Wr(n,e){e?Xe.set(n,e):Xe.delete(n)}function Kr(n){let e=Xe.get(n);return Xe.delete(n),e}function qr(n,e){e?Je.set(n,e):Je.delete(n)}function rr(n){let e=Je.get(n);return Je.delete(n),e}function Qe(n){if(n==null)return"";if(n instanceof Date)return n.toLocaleDateString();if(typeof n=="object")try{return JSON.stringify(n)}catch{return String(n)}return String(n)}function E(n,e){let t=tr(e);if(!t)return;t.flashTimer&&clearTimeout(t.flashTimer),t.flashTimer=void 0;let r=t.destroy;if(t.destroy=void 0,t.refresh=void 0,t.rendererDefinition=void 0,t.rendererRowId=void 0,t.rendererColumnId=void 0,!!r)try{r()}catch(o){n.reportError(o,"cellRenderer.destroy",{colId:e.dataset.colId})}}function $r(n,e,t,r,o,i){let s=n.options.tooltipComponent?"":i,a=r.colDef.tooltipValueGetter;if(a)try{s=a({api:n.getApi(),colDef:r.colDef,column:r,node:t,data:t.data,value:o})??i}catch(l){n.reportError(l,"tooltipValueGetter",{colId:r.id,rowId:t.id})}s?e.setAttribute("title",s):e.removeAttribute("title")}function Jn(n,e,t,r,o,i){let s=tr(e);if(!s?.refresh||s.rendererDefinition!==o||s.rendererRowId!==t.id||s.rendererColumnId!==r.id)return!1;try{return e.querySelector(":scope > .mach-cell-edit-trigger")?.remove(),s.refresh(i)!==!1}catch(a){return n.reportError(a,"cellRenderer.refresh",{colId:r.id,rowId:t.id}),!1}}function N(n,e,t){let r=n.getCellValue(e,t),o=t.colDef.valueFormatter;if(o)try{let i=o({api:n.getApi(),colDef:t.colDef,column:t,node:e,data:e.data,value:r});return i==null?"":String(i)}catch(i){n.reportError(i,"valueFormatter",{colId:t.id,rowId:e.id})}return Qe(r)}function we(n,e,t,r){let o=t.colDef.valueFormatter;if(o)try{let i=o({api:n.getApi(),colDef:t.colDef,column:t,node:e,data:e.data,value:r});return i==null?"":String(i)}catch(i){n.reportError(i,"valueFormatter",{colId:t.id,rowId:e.id})}return Qe(r)}function Ze(n,e,t,r){let o=r.colDef.cellStyle,i=ve(e),s=i.styleKeys;if(s)for(let d of s)Reflect.set(e.style,d,"");if(!o){i.styleKeys=void 0;return}let a;if(typeof o=="function"){let d=n.getCellValue(t,r);try{a=o({api:n.getApi(),colDef:r.colDef,column:r,node:t,data:t.data,value:d,rowIndex:t.rowIndex})}catch(c){n.reportError(c,"cellStyle",{colId:r.id,rowId:t.id}),a=null}}else a=o;if(!a){i.styleKeys=void 0;return}let l=Object.keys(a);for(let d of l)Reflect.set(e.style,d,Reflect.get(a,d));i.styleKeys=l}function et(n,e,t,r){let o=n.getCellValue(t,r),i=N(n,t,r),s=r.colDef.cellRenderer,a=typeof s=="string"?n.resolveCellRenderer(s):s;if(a){let l={api:n.getApi(),colDef:r.colDef,column:r,node:t,data:t.data,value:o,formatted:i,rowIndex:t.rowIndex,rendererParams:r.colDef.cellRendererParams};if(Jn(n,e,t,r,a,l)){$r(n,e,t,r,o,i);return}E(n,e);let d;try{d=a(l)}catch(c){n.reportError(c,"cellRenderer",{colId:r.id,rowId:t.id}),e.textContent=i;return}if(typeof d=="string")e.textContent=d;else if(d instanceof HTMLElement)e.replaceChildren(d);else if(d&&typeof d=="object"&&d.el instanceof HTMLElement){let c=d;e.replaceChildren(c.el);let u=ve(e);u.destroy=c.destroy,c.refresh&&(u.refresh=h=>c.refresh(h),u.rendererDefinition=a,u.rendererRowId=t.id,u.rendererColumnId=r.id)}else e.textContent=""}else E(n,e),e.textContent=i;$r(n,e,t,r,o,i)}function Ce(n,e,t,r){let o=n.getCellValue(t,r),i=["mach-cell"],s=r.colDef.align;s==="center"?i.push("mach-cell--center"):s==="right"?i.push("mach-cell--right"):(oe(r.colDef,"rightAligned")||oe(r.colDef,"numericColumn")||typeof o=="number"&&o!=null)&&i.push("mach-cell--num");let a=r.colDef.cellClass;if(a)if(typeof a=="function"){let u={api:n.getApi(),colDef:r.colDef,column:r,node:t,data:t.data,value:o,rowIndex:t.rowIndex};try{let h=a(u);typeof h=="string"?i.push(h):Array.isArray(h)&&i.push(...h)}catch(h){n.reportError(h,"cellClass",{colId:r.id,rowId:t.id})}}else typeof a=="string"?i.push(a):Array.isArray(a)&&i.push(...a);let l=e.classList.contains("mach-cell--focus"),d=e.classList.contains("mach-cell--editing");l&&i.push("mach-cell--focus"),d&&i.push("mach-cell--editing"),r.colDef.wrapText&&i.push("mach-cell--wrap");let c=i.join(" ");e.className!==c&&(e.className=c)}var Qn='<path d="M3 8.5 6.4 12 13.5 4"/>',Zn='<path d="m4 4 8 8m0-8-8 8"/>';function Ur(n,e){let t=document.createElement("button");return t.type="button",t.className=`mach-edit-control mach-edit-control--${n}`,t.setAttribute("aria-label",e),t.title=e,t.innerHTML=`<svg viewBox="0 0 16 16" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round">${n==="confirm"?Qn:Zn}</svg>`,t.addEventListener("mousedown",r=>{r.preventDefault(),r.stopPropagation()}),t}var tt=class{constructor(e){this.core=e;this.cellEditing=null;this.rowEditing=null;this.stopPromise=null;this.stopToken=0;this.onCellEditorKeyDown=e=>{if(this.cellEditing){if(e.key==="Enter")e.preventDefault(),e.stopPropagation(),this.stopAsync(!1);else if(e.key==="Escape")e.preventDefault(),e.stopPropagation(),this.stopAsync(!0);else if(e.key==="Tab"){e.preventDefault(),e.stopPropagation();let t=this.cellEditing,r=this.core.keyboardService.nextEditable(t.rowIndex,t.column.id,e.shiftKey?-1:1);this.stopAsync(!1).then(o=>{o&&r&&(this.core.bodyRenderer.scrollToIndex(r.rowIndex,"nearest"),this.core.bodyRenderer.setFocusedCell(r.rowIndex,r.column.id),this.start(r.rowIndex,r.column))})}}};this.onCellEditorBlur=()=>{window.setTimeout(()=>{this.cellEditing&&this.stopAsync(!1)},0)}}isEditing(e,t){return this.cellEditing?e==null&&t==null?!0:this.cellEditing.rowIndex===e&&this.cellEditing.column.id===t:this.rowEditing?e==null&&t==null?!0:this.currentRowIndex(this.rowEditing)!==e?!1:t==null||this.rowEditing.drafts.has(t):!1}isCellEditing(){return this.cellEditing!=null}isRowEditing(e){return this.rowEditing?e==null||this.currentRowIndex(this.rowEditing)===e:!1}isEditable(e,t){if(e.isDetail||e.isGroup||e.data==null)return!1;let r=t.colDef.editable;if(!r)return!1;if(typeof r=="function")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,"editable",{colId:t.id,rowId:e.id}),!1}return!0}start(e,t,r){if(this.core.options.editType==="fullRow")return this.startRow(e,t.id);if(this.cellEditing||this.rowEditing)return!1;let o=this.core.rowModel.getDisplayedRow(e);if(!o||o.data==null||!this.isEditable(o,t))return!1;let i=this.core.bodyRenderer.getCellElement(e,t.id);if(!i)return!1;let s=this.core.getCellValue(o,t),a=this.createCellEditor(o,t,e,s,r);if(!a)return!1;E(this.core,i);let l=document.createElement("div");l.className="mach-cell-editor-shell";let d=document.createElement("div");d.className="mach-cell-editor-controls";let c=Ur("confirm","Confirm edit"),u=Ur("cancel","Cancel edit");d.append(c,u),l.append(a.el,d),i.replaceChildren(l),i.classList.add("mach-cell--editing"),i.removeAttribute("title");let h=this.onCellEditorKeyDown;return a.el.addEventListener("keydown",h),a.el.addEventListener("focusout",this.onCellEditorBlur),c.addEventListener("click",p=>{p.stopPropagation(),this.stopAsync(!1)}),u.addEventListener("click",p=>{p.stopPropagation(),this.stopAsync(!0)}),this.cellEditing={node:o,column:t,editor:a,rowIndex:e,oldValue:s,cell:i,shell:l,keydown:h,confirmButton:c,cancelButton:u},this.focusEditor(a,t,o),this.core.emit("cellEditingStarted",{rowIndex:e,colId:t.id,rowNode:o}),!0}startRow(e,t){if(this.cellEditing||this.rowEditing)return!1;let r=this.core.rowModel.getDisplayedRow(e);if(!r||r.data==null||r.isDetail||r.isGroup)return!1;let o=new Map;for(let l of this.core.columnModel.getOrderedVisible()){if(!this.isEditable(r,l))continue;let d=this.core.getCellValue(r,l);o.set(l.id,{column:l,oldValue:d,value:d,mounted:null})}if(o.size===0)return!1;let i={node:r,rowIndex:e,drafts:o,validating:!1};if(this.rowEditing=i,this.core.bodyRenderer.refreshRows([e]),o.size===0)return this.rowEditing=null,this.core.bodyRenderer.refreshRows([e]),!1;let s=o.values().next().value,a=(t?o.get(t):void 0)??s;return a?.mounted&&this.focusEditor(a.mounted.editor,a.column,r),this.core.emit("rowEditingStarted",{rowIndex:e,rowNode:r,data:r.data}),!0}renderEditor(e,t,r,o){if(this.cellEditing)return this.cellEditing.node===t&&this.cellEditing.column.id===r.id;let i=this.rowEditing;if(!i||i.node!==t)return!1;let s=i.drafts.get(r.id);return s?s.mounted?.cell!==o&&(s.mounted&&this.unmountRowDraft(s),!this.mountRowDraft(e,i,s,o))?(i.drafts.delete(r.id),!1):!0:!1}releaseCell(e,t,r){let o=this.rowEditing;if(o&&this.currentRowIndex(o)===e){let i=o.drafts.get(t);i?.mounted?.cell===r&&this.unmountRowDraft(i);return}if(this.cellEditing?.cell===r){let i=this.cellEditing;this.stopAsync(!1),this.cellEditing===i&&this.stopAsync(!0)}}stop(e=!1){this.stopAsync(e)}stopAsync(e=!1){if(this.rowEditing)return this.stopRowAsync(e);let t=this.cellEditing;if(!t)return Promise.resolve(!1);if(e)return this.stopToken++,this.stopPromise=null,Promise.resolve(this.finishCellStop(t,!0,t.oldValue));if(this.stopPromise)return this.stopPromise;let r;try{r=t.editor.getValue()}catch(i){return this.core.reportError(i,"cellEditor.getValue",{colId:t.column.id,rowId:t.node.id}),Promise.resolve(this.finishCellStop(t,!0,t.oldValue))}try{if(t.editor.isCancelAfterEnd?.(r))return Promise.resolve(this.finishCellStop(t,!0,t.oldValue))}catch(i){return this.core.reportError(i,"cellEditor.isCancelAfterEnd",{colId:t.column.id,rowId:t.node.id}),Promise.resolve(this.finishCellStop(t,!0,t.oldValue))}let o=this.validateValue(t.node,t.column,t.oldValue,r);if(o&&typeof o.then=="function"){let i=++this.stopToken;this.setCellBusy(t,!0);let s=Promise.resolve(o).then(a=>i!==this.stopToken||this.cellEditing!==t?!1:typeof a=="string"?(this.showError(t.editor,a),!1):this.finishCellStop(t,!1,r)).catch(a=>(i!==this.stopToken||this.cellEditing!==t||(this.core.reportError(a,"validate",{colId:t.column.id,rowId:t.node.id}),this.showError(t.editor,"Validation failed")),!1)).finally(()=>{this.stopPromise===s&&(this.stopPromise=null)});return this.stopPromise=s,s}return typeof o=="string"?(this.showError(t.editor,o),Promise.resolve(!1)):Promise.resolve(this.finishCellStop(t,!1,r))}stopRowAsync(e=!1){let t=this.rowEditing;if(!t)return Promise.resolve(!1);if(e)return this.stopToken++,this.stopPromise=null,Promise.resolve(this.finishRowStop(t,!0));if(this.stopPromise)return this.stopPromise;for(let s of t.drafts.values())this.captureRowDraft(s);let r=[...t.drafts.values()].filter(s=>!Object.is(s.oldValue,s.value));if(r.length===0)return Promise.resolve(this.finishRowStop(t,!1));let o=++this.stopToken;for(let s of r)s.error=void 0;t.validating=!0,this.setRowBusy(t,!0);let i=Promise.all(r.map(async s=>{try{let a=await this.validateValue(t.node,s.column,s.oldValue,s.value);return{draft:s,message:typeof a=="string"?a:null}}catch(a){return this.core.reportError(a,"validate",{colId:s.column.id,rowId:t.node.id}),{draft:s,message:"Validation failed"}}})).then(async s=>{if(o!==this.stopToken||this.rowEditing!==t)return!1;let a=s.filter(d=>d.message!=null);if(a.length>0)return this.showRowErrors(t,a.map(d=>({draft:d.draft,message:d.message}))),!1;let l=await this.validateRowDraft(t,r);return o!==this.stopToken||this.rowEditing!==t?!1:l.length>0?(this.showRowErrors(t,l),!1):this.finishRowStop(t,!1)}).finally(()=>{this.stopPromise===i&&(this.stopPromise=null)});return this.stopPromise=i,i}finishCellStop(e,t,r){if(this.cellEditing!==e)return!1;this.cellEditing=null;let o=!t&&this.applyValue(e.node,e.column,e.oldValue,r);return this.destroyMountedEditor(e,!0),this.core.emit("cellEditingStopped",{rowIndex:e.rowIndex,colId:e.column.id,rowNode:e.node,oldValue:e.oldValue,newValue:o?r:e.oldValue}),e.node.rowIndex>=0&&this.core.bodyRenderer.refreshRows([e.node.rowIndex]),this.core.summaryRenderer.refresh(),this.core.statusBarService.refresh(),!0}finishRowStop(e,t){if(this.rowEditing!==e)return!1;let r=t?[]:this.commitRowDrafts(e);if(r==null)return!1;for(let i of e.drafts.values())t||this.captureRowDraft(i),i.mounted&&this.destroyMountedEditor(i.mounted,!0),i.mounted=null;this.rowEditing=null;let o=this.currentRowIndex(e);return this.core.emit("rowEditingStopped",{rowIndex:o,rowNode:e.node,data:e.node.data,cancelled:t,changes:r}),o>=0&&this.core.bodyRenderer.refreshRows([o]),this.core.summaryRenderer.refresh(),this.core.statusBarService.refresh(),!0}commitRowDrafts(e){let t=[...e.drafts.values()].filter(o=>!Object.is(o.oldValue,o.value));if(t.length===0)return[];let r=[];this.core.undoService.beginBatch();for(let o of t){if(!this.core.writeValue(e.node,o.column,o.value,o.oldValue)){let i=!1;for(let s of[...r].reverse())this.core.writeValue(e.node,s.column,s.oldValue,s.value)||(i=!0);return this.core.undoService.cancelBatch(),i&&this.core.reportError(new Error("A valueSetter rejected full-row rollback"),"rowEditRollback",{rowId:e.node.id,colId:o.column.id}),this.showRowErrors(e,[{draft:o,message:"Value was rejected by the column setter"}]),null}r.push(o)}for(let o of r)this.core.notifyCellValueChanged(e.node,o.column,o.oldValue,o.value);return this.core.undoService.endBatch(),r.map(o=>({colId:o.column.id,oldValue:o.oldValue,newValue:o.value}))}mountRowDraft(e,t,r,o){let i=this.createCellEditor(t.node,r.column,e,r.value,null);if(!i)return!1;E(this.core,o);let s=document.createElement("div");s.className="mach-row-editor-shell",s.appendChild(i.el),o.replaceChildren(s),o.classList.add("mach-cell--editing","mach-cell--row-editing"),o.removeAttribute("title");let a=d=>this.onRowEditorKeyDown(d,t,r),l=()=>{try{r.value=i.getValue(),r.error=void 0}catch{}};return i.el.addEventListener("keydown",a),i.el.addEventListener("input",l),r.mounted={editor:i,cell:o,shell:s,keydown:a,input:l},r.error&&this.showError(i,r.error),t.validating&&(i.el.classList.add("mach-editor-validating"),i.el.setAttribute("aria-busy","true"),i.el.inert=!0),!0}unmountRowDraft(e){e.mounted&&(this.captureRowDraft(e),this.destroyMountedEditor(e.mounted,!0),e.mounted=null)}captureRowDraft(e){if(e.mounted)try{let t=e.mounted.editor.getValue();t!==void 0&&(e.value=t)}catch(t){this.core.reportError(t,"cellEditor.getValue",{colId:e.column.id,rowId:this.rowEditing?.node.id})}}createCellEditor(e,t,r,o,i){let s=t.colDef,a;try{let l={api:this.core.getApi(),colDef:s,column:t,node:e,data:e.data,value:o,rowIndex:r,keyPress:i};typeof s.cellEditor=="function"?a=s.cellEditor(l):typeof s.cellEditor=="string"&&!["text","number","date","select"].includes(s.cellEditor)?a=this.core.resolveCellEditor(s.cellEditor)?.(l)??Zt(t,o,i):a=Zt(t,o,i)}catch(l){return this.core.reportError(l,"cellEditor",{colId:t.id,rowId:e.id}),null}if(!a||!(a.el instanceof HTMLElement))return this.core.reportError(new Error("cellEditor must return an editor with an HTMLElement el"),"cellEditor",{colId:t.id,rowId:e.id}),null;try{if(a.isCancelBeforeStart?.())return a.destroy?.(),null}catch(l){this.core.reportError(l,"cellEditor.isCancelBeforeStart",{colId:t.id,rowId:e.id});try{a.destroy?.()}catch{}return null}return a}validateValue(e,t,r,o){let i=t.colDef.validate;if(!i)return!0;try{return i(o,{oldValue:r,newValue:o,data:e.data,node:e,colDef:t.colDef,column:t,api:this.core.getApi()})}catch(s){return this.core.reportError(s,"validate",{colId:t.id,rowId:e.id}),"Validation failed"}}async validateRowDraft(e,t){let r=this.core.options.rowEditValidator;if(!r)return[];let o=Object.create(null);for(let[l,d]of e.drafts)o[l]=d.value;let i=t.map(l=>({colId:l.column.id,oldValue:l.oldValue,newValue:l.value})),s;try{s=await r({data:e.node.data,node:e.node,values:o,changes:i,api:this.core.getApi()})}catch(l){return this.core.reportError(l,"rowEditValidator",{rowId:e.node.id}),[{draft:t[0],message:"Row validation failed"}]}if(typeof s=="string")return[{draft:t[0],message:s}];if(!s||s===!0||typeof s!="object")return[];let a=[];for(let[l,d]of Object.entries(s)){let c=e.drafts.get(l);c&&typeof d=="string"&&d&&a.push({draft:c,message:d})}if(a.length===0){let l=Object.values(s).find(d=>typeof d=="string"&&d);typeof l=="string"&&a.push({draft:t[0],message:l})}return a}showRowErrors(e,t){e.validating=!1,this.setRowBusy(e,!1);for(let{draft:r,message:o}of t)r.error=o,r.mounted&&this.showError(r.mounted.editor,o);t[0].draft.mounted?.editor.focus?.()}showError(e,t){let r=e.el;r.classList.add("mach-editor-invalid"),r.setAttribute("title",t),r.setAttribute("aria-invalid","true"),r.classList.remove("mach-editor-validating"),r.removeAttribute("aria-busy"),r.inert=!1,(r.querySelector("input, select, textarea")??r).focus?.();let i=()=>{r.classList.remove("mach-editor-invalid"),r.removeAttribute("title"),r.removeAttribute("aria-invalid")};r.addEventListener("input",i,{once:!0})}setCellBusy(e,t){e.editor.el.classList.toggle("mach-editor-validating",t),t?e.editor.el.setAttribute("aria-busy","true"):e.editor.el.removeAttribute("aria-busy"),e.editor.el.inert=t,e.confirmButton.disabled=t,e.cancelButton.disabled=!1,e.shell.classList.toggle("mach-editor-shell--busy",t)}setRowBusy(e,t){for(let r of e.drafts.values()){let o=r.mounted?.editor.el;o&&(o.classList.toggle("mach-editor-validating",t),t?o.setAttribute("aria-busy","true"):o.removeAttribute("aria-busy"),o.inert=t)}}applyValue(e,t,r,o){return o===void 0?!1:this.core.setCellValue(e,t,o,r)}focusEditor(e,t,r){try{e.focus?.()}catch(o){this.core.reportError(o,"cellEditor.focus",{colId:t.id,rowId:r.id})}}destroyMountedEditor(e,t){e.editor.el.removeEventListener("keydown",e.keydown),e.input&&e.editor.el.removeEventListener("input",e.input),e.editor.el.removeEventListener("focusout",this.onCellEditorBlur),e.editor.el.classList.remove("mach-editor-validating"),e.editor.el.removeAttribute("aria-busy"),e.editor.el.inert=!1;try{e.editor.destroy?.()}catch(r){this.core.reportError(r,"cellEditor.destroy",{colId:e.cell.dataset.colId})}t&&e.cell.classList.remove("mach-cell--editing","mach-cell--row-editing","mach-cell--error")}currentRowIndex(e){return e.node.rowIndex>=0?e.node.rowIndex:e.rowIndex}onRowEditorKeyDown(e,t,r){if(this.rowEditing!==t)return;if(e.key==="Escape"){e.preventDefault(),e.stopPropagation(),this.stopRowAsync(!0);return}if(e.key==="Enter"&&!e.shiftKey){e.preventDefault(),e.stopPropagation(),this.stopRowAsync(!1);return}if(e.key!=="Tab")return;e.preventDefault(),e.stopPropagation(),this.captureRowDraft(r);let o=[...t.drafts.values()],i=o.indexOf(r),s=e.shiftKey?-1:1;for(let a=1;a<=o.length;a++){let l=o[(i+s*a+o.length)%o.length];if(l.mounted){this.focusEditor(l.mounted.editor,l.column,t.node);break}}}destroy(){(this.cellEditing||this.rowEditing)&&this.stopAsync(!0)}};var S={matchContains:"\u5305\u542B",matchNotContains:"\u4E0D\u5305\u542B",matchEquals:"\u7B49\u4E8E",matchNotEquals:"\u4E0D\u7B49\u4E8E",matchStartsWith:"\u5F00\u5934\u662F",matchEndsWith:"\u7ED3\u5C3E\u662F",matchBlank:"\u4E3A\u7A7A",matchNotBlank:"\u4E0D\u4E3A\u7A7A",matchLessThan:"\u5C0F\u4E8E",matchLessThanOrEqual:"\u5C0F\u4E8E\u7B49\u4E8E",matchGreaterThan:"\u5927\u4E8E",matchGreaterThanOrEqual:"\u5927\u4E8E\u7B49\u4E8E",matchInRange:"\u5728\u8303\u56F4\u5185",apply:"\u5E94\u7528",reset:"\u91CD\u7F6E",search:"\u641C\u7D22...",emptySetLabel:"(\u7A7A)",selectedCount:"\u5DF2\u9009 {n} \u9879",sortAsc:"\u5347\u5E8F",sortDesc:"\u964D\u5E8F",clearSort:"\u53D6\u6D88\u6392\u5E8F",pinLeft:"\u56FA\u5B9A\u5DE6\u4FA7",pinRight:"\u56FA\u5B9A\u53F3\u4FA7",clearPin:"\u53D6\u6D88\u56FA\u5B9A",autoSize:"\u81EA\u9002\u5E94\u5217\u5BBD",hideColumn:"\u9690\u85CF\u6B64\u5217",columnVisibility:"\u5217\u663E\u793A",resetAll:"\u91CD\u7F6E\u5168\u90E8",autoSizeAll:"\u5168\u90E8\u81EA\u9002\u5E94",columnSettings:"\u5217\u8BBE\u7F6E",totalLabel:"\u5408\u8BA1",totalRowsLabel:"\u5171 {n} \u884C",menuCopy:"\u590D\u5236",menuPaste:"\u7C98\u8D34",menuClearContents:"\u6E05\u9664\u5185\u5BB9",loading:"\u52A0\u8F7D\u4E2D...",statusSelected:"\u5DF2\u9009 {n} \u884C",statusSum:"\u548C {n}",statusAvg:"\u5747 {n}",statusCount:"\u8BA1 {n}",emptyRows:"\u6682\u65E0\u6570\u636E",emptyRowsHint:"\u6CA1\u6709\u53EF\u663E\u793A\u7684\u884C",paginationTotal:"\u5171 {n} \u6761",paginationPage:"\u7B2C {a} / {b} \u9875",perPage:"{n} \u6761/\u9875",pageFirst:"\u9996\u9875",pagePrev:"\u4E0A\u4E00\u9875",pageNext:"\u4E0B\u4E00\u9875",pageLast:"\u672B\u9875",requestFailed:"\u6570\u636E\u52A0\u8F7D\u5931\u8D25",requestFailedHint:"\u8BF7\u68C0\u67E5\u7F51\u7EDC\u540E\u91CD\u8BD5",actionView:"\u67E5\u770B",actionEdit:"\u7F16\u8F91",actionDelete:"\u5220\u9664",actionConfirm:"\u786E\u8BA4",actionSave:"\u4FDD\u5B58",actionCancel:"\u53D6\u6D88",actionMore:"\u66F4\u591A\u64CD\u4F5C"},jr={matchContains:"Contains",matchNotContains:"Not Contains",matchEquals:"Equals",matchNotEquals:"Not Equals",matchStartsWith:"Starts With",matchEndsWith:"Ends With",matchBlank:"Blank",matchNotBlank:"Not Blank",matchLessThan:"Less Than",matchLessThanOrEqual:"\u2264",matchGreaterThan:"Greater Than",matchGreaterThanOrEqual:"\u2265",matchInRange:"In Range",apply:"Apply",reset:"Reset",search:"Search...",emptySetLabel:"(blank)",selectedCount:"{n} selected",sortAsc:"Ascending",sortDesc:"Descending",clearSort:"Clear Sort",pinLeft:"Pin Left",pinRight:"Pin Right",clearPin:"Unpin",autoSize:"Auto Fit",hideColumn:"Hide Column",columnVisibility:"Columns",resetAll:"Reset All",autoSizeAll:"Fit All",columnSettings:"Column Settings",totalLabel:"Total",totalRowsLabel:"{n} rows",menuCopy:"Copy",menuPaste:"Paste",menuClearContents:"Clear Contents",loading:"Loading...",statusSelected:"{n} selected",statusSum:"Sum {n}",statusAvg:"Avg {n}",statusCount:"Cnt {n}",emptyRows:"No Data",emptyRowsHint:"No rows to display",paginationTotal:"{n} items",paginationPage:"Page {a} / {b}",perPage:"{n} / page",pageFirst:"First",pagePrev:"Previous",pageNext:"Next",pageLast:"Last",requestFailed:"Unable to load data",requestFailedHint:"Check your connection and try again",actionView:"View",actionEdit:"Edit",actionDelete:"Delete",actionConfirm:"Confirm",actionSave:"Save",actionCancel:"Cancel",actionMore:"More actions"},ei={contains:"matchContains",notContains:"matchNotContains",equals:"matchEquals",notEquals:"matchNotEquals",startsWith:"matchStartsWith",endsWith:"matchEndsWith",blank:"matchBlank",notBlank:"matchNotBlank",lessThan:"matchLessThan",lessThanOrEqual:"matchLessThanOrEqual",greaterThan:"matchGreaterThan",greaterThanOrEqual:"matchGreaterThanOrEqual",inRange:"matchInRange"};function rt(n){return ei[n]??"matchEquals"}function I(n,e){return n.replace("{n}",String(e))}function ot(n,e,t){return n.replace("{a}",String(e)).replace("{b}",String(t))}var ti=["contains","notContains","equals","notEquals","startsWith","endsWith","blank","notBlank"],ri=["equals","notEquals","lessThan","lessThanOrEqual","greaterThan","greaterThanOrEqual","inRange","blank","notBlank"],oi=["equals","notEquals","lessThan","greaterThan","inRange","blank","notBlank"],nt=class{constructor(e){this.core=e;this.panel=null;this.openColId=null;this.docMouseDown=e=>{this.panel&&!this.panel.contains(e.target)&&this.close()};this.docKeyDown=e=>{e.key==="Escape"&&this.close()}}toggle(e,t){if(this.openColId===e.id){this.close();return}this.close(),this.open(e,t)}open(e,t){let r=this.core.rowModel.getFilterModel()[e.id]??null,o=r?.type??e.filterType,i=g("div","mach-filter-panel");i.setAttribute("role","dialog"),i.setAttribute("aria-label",`${e.id} filter`),o==="set"?this.buildSetBody(i,e,r):this.buildConditionBody(i,e,o,r);let s=g("div","mach-filter-footer"),a=g("button","mach-filter-btn-reset");a.type="button",a.textContent=this.core.getLocaleText("reset"),a.addEventListener("click",()=>{this.core.applyColumnFilter(e,null),this.close()});let l=g("button","mach-filter-btn-apply");l.type="button",l.textContent=this.core.getLocaleText("apply"),l.addEventListener("click",()=>{let m=this.readFilter(i);this.core.applyColumnFilter(e,m),this.close()}),s.append(a,l),i.appendChild(s),document.body.appendChild(i),this.panel=i,this.openColId=e.id;let d=t.getBoundingClientRect(),c=i.getBoundingClientRect(),u=M(d.left,8,window.innerWidth-c.width-8),h=d.bottom+4;h+c.height>window.innerHeight-8&&(h=Math.max(8,d.top-c.height-4)),i.style.left=`${u}px`,i.style.top=`${h}px`,document.addEventListener("mousedown",this.docMouseDown,!0),document.addEventListener("keydown",this.docKeyDown,!0),i.querySelector("input, select")?.focus()}close(){this.panel&&(this.panel.remove(),this.panel=null,this.openColId=null,document.removeEventListener("mousedown",this.docMouseDown,!0),document.removeEventListener("keydown",this.docKeyDown,!0))}destroy(){this.close()}buildConditionBody(e,t,r,o){let i=r==="text"?ti:r==="number"?ri:oi,s=o&&o.type!=="set"&&o.conditions.length>0?o.conditions[0]:null,a=s?.match??(r==="text"?"contains":"equals"),l=a==="blank"||a==="notBlank",d=g("select","mach-filter-select");for(let m of i){let f=document.createElement("option");f.value=m,f.textContent=this.core.getLocaleText(rt(m)),d.appendChild(f)}d.value=a;let c=g("input","mach-filter-input");r==="number"&&(c.type="number"),r==="date"&&(c.type="date"),s&&s.value!=null&&!l&&(c.value=r==="date"?String(s.value).slice(0,10):String(s.value));let u=g("input","mach-filter-input mach-filter-input--second");r==="number"&&(u.type="number"),r==="date"&&(u.type="date"),s&&"value2"in s&&s.value2!=null&&(u.value=String(s.value2).slice(0,10)),u.style.display=a==="inRange"?"":"none",d.addEventListener("change",()=>{let m=d.value==="blank"||d.value==="notBlank";c.style.display=m?"none":"",u.style.display=d.value==="inRange"?"":"none"});let h=m=>{if(m.key==="Enter"){let f=this.readFilter(e);this.core.applyColumnFilter(t,f),this.close()}};c.addEventListener("keydown",h),u.addEventListener("keydown",h);let p=g("div","mach-filter-body");p.append(d,c,u),e.appendChild(p),e.dataset.filterType=r}buildSetBody(e,t,r){let i=t.colDef.filterParams,s;if(i?.values)s=i.values;else{let f=new Set;s=[];let y=this.core.rowModel.getAllNodes(),v=Math.min(y.length,i?.maxValues??500);for(let w=0;w<v;w++){let b=this.core.getCellValue(y[w],t),D=b==null?"__null__":String(b);f.has(D)||(f.add(D),s.push(b))}}let a=new Set(r?.type==="set"?r.values.map(f=>f==null?"__null__":String(f)):s.map(f=>f==null?"__null__":String(f))),l=g("input","mach-filter-input mach-filter-input--search");l.type="text",l.placeholder=this.core.getLocaleText("search");let d=g("div","mach-filter-set-list"),c=[],u=new Map,h=f=>{d.textContent="",c.length=0;let y=f.trim().toLowerCase();for(let v of s){let w=v==null?this.core.getLocaleText("emptySetLabel"):String(v);if(y&&!w.toLowerCase().includes(y))continue;let b=v==null?"__null__":String(v);u.set(b,v);let D=g("label","mach-filter-set-item"),R=document.createElement("input");R.type="checkbox",R.checked=a.has(b),R.addEventListener("change",()=>{R.checked?a.add(b):a.delete(b)});let V=g("span");V.textContent=w,D.append(R,V),d.appendChild(D),c.push(R)}};l.addEventListener("input",()=>h(l.value)),h(""),e.dataset.filterType="set",e.dataset.setValues=JSON.stringify([...u.entries()]),(()=>{let f=[...u.entries()];e.dataset.setValues=JSON.stringify(f)})();let m=g("div","mach-filter-body mach-filter-body--set");m.append(l,d),e.appendChild(m)}readFilter(e){let t=e.dataset.filterType;if(t==="set"){let d=[];try{d=JSON.parse(e.dataset.setValues??"[]")}catch{d=[]}let c=new Set;e.querySelectorAll(".mach-filter-set-item input:checked").forEach(h=>{let m=h.closest(".mach-filter-set-item").querySelector("span"),f=this.core.getLocaleText("emptySetLabel"),y=m.textContent===f?"__null__":m.textContent??"";c.add(y)});let u=d.filter(([h])=>c.has(h)).map(([,h])=>h);return u.length===d.length||u.length===0?null:{type:"set",values:u}}let r=e.querySelector(".mach-filter-select"),o=e.querySelectorAll(".mach-filter-input"),i=o[0],s=o[1];if(!r||!i)return null;let a=r.value;if(a==="blank"||a==="notBlank")return{type:t,conditions:[{match:a}]};let l=i.value;if(l===""&&a!=="inRange")return null;if(t==="number"){let d=Number(l);if(isNaN(d))return null;if(a==="inRange"){let c=s&&s.value!==""?Number(s.value):d;return isNaN(c)?null:{type:"number",conditions:[{match:"inRange",value:d,value2:c}]}}return{type:"number",conditions:[{match:a,value:d}]}}if(t==="date"){let d=l;if(a==="inRange"){let c=s&&s.value!==""?s.value:d;return{type:"date",conditions:[{match:"inRange",value:d,value2:c}]}}return{type:"date",conditions:[{match:a,value:d}]}}return{type:"text",conditions:[{match:a,value:l}]}}};var it=class{constructor(e){this.core=e;this.panel=null;this.openColId=null;this.standaloneAnchor=null;this.searchText="";this.docMouseDown=e=>{this.panel&&!this.panel.contains(e.target)&&this.close()};this.docKeyDown=e=>{e.key==="Escape"&&this.close()}}toggle(e,t){if(this.openColId===e.id){this.close();return}this.close(),this.open(e,t)}openStandalone(e){this.close();let t=e??(()=>{let o=this.core.skeleton.root.getBoundingClientRect(),i=document.createElement("div");return i.style.position="fixed",i.style.left=`${o.right-16}px`,i.style.top=`${o.top+this.core.options.headerHeight}px`,i.style.width="1px",i.style.height="1px",document.body.appendChild(i),this.standaloneAnchor=i,i})();this.open(null,t)}close(){this.standaloneAnchor&&(this.standaloneAnchor.remove(),this.standaloneAnchor=null),this.panel?.remove(),this.panel=null,this.openColId=null,document.removeEventListener("mousedown",this.docMouseDown,!0),document.removeEventListener("keydown",this.docKeyDown,!0)}destroy(){this.close()}open(e,t){let r=this.core.getApi(),o=g("div","mach-filter-panel mach-column-panel");o.setAttribute("role",e?"menu":"dialog"),e||(o.setAttribute("aria-modal","false"),o.setAttribute("aria-label",this.core.getLocaleText("columnSettings")));let i=g("div","mach-column-panel-title");if(i.textContent=e?e.colDef.headerName??e.colDef.field??e.id:this.core.getLocaleText("columnSettings"),o.appendChild(i),e&&e.sortable){let R=g("div","mach-column-panel-actions"),V=(Q,Er)=>{let Me=g("button","mach-column-panel-btn");return Me.type="button",Me.textContent=this.core.getLocaleText(Q),Me.addEventListener("click",()=>{r.setSortModel(Er?[{colId:e.id,direction:Er}]:[]),this.close()}),Me};R.append(V("sortAsc","asc"),V("sortDesc","desc"),V("clearSort",null)),o.appendChild(R)}let s=g("div","mach-column-panel-actions"),a=(R,V)=>{let Q=g("button","mach-column-panel-btn");return Q.type="button",Q.textContent=this.core.getLocaleText(R),Q.addEventListener("click",()=>{e&&r.setColumnPinned(e.id,V),this.close()}),Q};e&&(s.append(a("pinLeft","left"),a("pinRight","right"),a("clearPin",null)),o.appendChild(s));let l=g("div","mach-column-panel-actions"),d=g("button","mach-column-panel-btn");d.type="button",d.textContent=this.core.getLocaleText("autoSize"),d.addEventListener("click",()=>{e?r.autoSizeColumn(e.id):r.autoSizeAllColumns(),this.close()});let c=g("button","mach-column-panel-btn");c.type="button",c.textContent=this.core.getLocaleText("hideColumn"),c.addEventListener("click",()=>{e&&r.setColumnVisibility(e.id,!1),this.close()}),e&&(l.append(d,c),o.appendChild(l));let u=g("div","mach-column-panel-divider");o.appendChild(u);let h=g("div","mach-column-panel-subtitle");if(h.textContent=this.core.getLocaleText("columnVisibility"),o.appendChild(h),!e){let R=document.createElement("input");R.type="search",R.className="mach-column-workbench-search",R.placeholder=this.core.getLocaleText("search"),R.setAttribute("aria-label",this.core.getLocaleText("search")),R.value=this.searchText,R.addEventListener("input",()=>{this.searchText=R.value.trim().toLocaleLowerCase(),this.renderColumnList(p,!0)}),o.appendChild(R)}let p=g("div","mach-column-panel-list");this.renderColumnList(p,!e),o.appendChild(p);let m=g("div","mach-filter-footer"),f=g("button","mach-filter-btn-reset");f.type="button",f.textContent=this.core.getLocaleText("resetAll"),f.addEventListener("click",()=>{r.resetColumnState(),this.close()});let y=g("button","mach-filter-btn-apply");y.type="button",y.textContent=this.core.getLocaleText("autoSizeAll"),y.addEventListener("click",()=>{r.autoSizeAllColumns(),this.close()}),m.append(f,y),o.appendChild(m),document.body.appendChild(o),this.panel=o,this.openColId=e?e.id:"__standalone__";let v=t.getBoundingClientRect(),w=o.getBoundingClientRect(),b=M(v.left,8,window.innerWidth-w.width-8),D=v.bottom+4;D+w.height>window.innerHeight-8&&(D=Math.max(8,v.top-w.height-4)),o.style.left=`${b}px`,o.style.top=`${D}px`,document.addEventListener("mousedown",this.docMouseDown,!0),document.addEventListener("keydown",this.docKeyDown,!0)}rebuildListStates(){if(!this.panel)return;let e=this.panel.querySelector(".mach-column-panel-list");e&&this.renderColumnList(e,this.openColId==="__standalone__")}renderColumnList(e,t){let r=this.core.getApi();e.replaceChildren();let o=this.core.columnModel.getColumns().filter(i=>i.isDetailToggle?!1:!t||!this.searchText?!0:`${i.colDef.headerName??i.colDef.field??i.id} ${i.id}`.toLocaleLowerCase().includes(this.searchText));for(let i of o){let s=g("div",t?"mach-column-workbench-item":"mach-filter-set-item"),a=g("label","mach-column-workbench-label"),l=document.createElement("input");l.type="checkbox",l.checked=!i.hide,l.disabled=i.hasCheckbox,l.addEventListener("change",()=>{r.setColumnVisibility(i.id,l.checked),this.rebuildListStates()});let d=g("span","mach-column-workbench-name");if(d.textContent=i.colDef.headerName??i.colDef.field??i.id,d.title=`${d.textContent} (${i.id})`,a.append(l,d),s.appendChild(a),t){let c=document.createElement("select");c.className="mach-column-workbench-pin",c.setAttribute("aria-label",`${d.textContent} ${this.core.getLocaleText("clearPin")}`);for(let[m,f]of[["",this.core.getLocaleText("clearPin")],["left",this.core.getLocaleText("pinLeft")],["right",this.core.getLocaleText("pinRight")]]){let y=document.createElement("option");y.value=m,y.textContent=f,c.appendChild(y)}c.value=i.pinned??"",c.addEventListener("change",()=>{r.setColumnPinned(i.id,c.value==="left"||c.value==="right"?c.value:null),this.rebuildListStates()}),s.appendChild(c);let u=this.core.columnModel.getColumns().filter(m=>!m.hide&&m.parentGroup===i.parentGroup&&(i.parentGroup!=null||m.pinned===i.pinned)),h=u.indexOf(i),p=(m,f,y)=>{let v=g("button","mach-column-workbench-move");return v.type="button",v.textContent=m,v.disabled=y||i.hide||!i.movable,v.addEventListener("click",()=>{r.moveColumn(i.id,f),this.rebuildListStates()}),v};s.append(p("\u2191",h-1,h<=0),p("\u2193",h+1,h<0||h>=u.length-1))}e.appendChild(s)}}};var st=class{constructor(e){this.core=e;this.panel=null;this.docMouseDown=e=>{this.panel&&!this.panel.contains(e.target)&&this.close()};this.docKeyDown=e=>{e.key==="Escape"&&this.close()}}open(e,t,r){this.close();let o=this.core,i,s;if(r)i=o.rowModel.getDisplayedRow(r.rowIndex),s=o.columnModel.getColumn(r.colId);else{let u=o.bodyRenderer.getNormalizedRangeOrFocus();if(!u)return;let h=o.columnModel.getOrderedVisible();i=o.rowModel.getDisplayedRow(u.r1),s=h[u.c1]}if(!i||!s)return;let a=i.rowIndex,l=g("div","mach-context-menu");l.setAttribute("role","menu");let d=o.options.getContextMenuItems;if(d){let u;try{u=d({data:i.data,node:i,api:o.getApi(),colId:s.id,value:o.getCellValue(i,s),rowIndex:a})}catch(p){o.reportError(p,"getContextMenuItems",{colId:s.id,rowId:i.id});return}if(u==null)return;let h=!1;for(let p of u){if(p.separator){let f=g("div","mach-context-menu-separator");l.appendChild(f);continue}let m=g("button","mach-context-menu-item");m.type="button",m.textContent=p.label??"",p.danger&&m.classList.add("mach-context-menu-item--danger"),p.disabled?m.disabled=!0:(h=!0,m.addEventListener("click",()=>{this.close();try{p.action?.()}catch(f){o.reportError(f,"contextMenu.action",{colId:s.id,rowId:i.id})}})),l.appendChild(m)}if(!h){l.remove();return}this.attach(l,e,t);return}let c=g("button","mach-context-menu-item");if(c.type="button",c.textContent=o.getLocaleText("menuCopy"),c.addEventListener("click",()=>{o.copyActiveRange(),this.close()}),l.appendChild(c),!o.options.suppressClipboard){let u=g("button","mach-context-menu-item");u.type="button",u.textContent=o.getLocaleText("menuPaste"),u.addEventListener("click",()=>{o.pasteFromSystemClipboard(),this.close()}),l.appendChild(u);let h=g("button","mach-context-menu-item");h.type="button",h.textContent=o.getLocaleText("menuClearContents"),h.addEventListener("click",()=>{let p=o.bodyRenderer.getNormalizedRangeOrFocus();p&&o.clearRangeValues(p),this.close()}),l.appendChild(h)}this.attach(l,e,t)}attach(e,t,r){document.body.appendChild(e),this.panel=e;let o=e.getBoundingClientRect(),i=M(t,8,Math.max(8,window.innerWidth-o.width-8)),s=M(r,8,Math.max(8,window.innerHeight-o.height-8));e.style.left=`${i}px`,e.style.top=`${s}px`,document.addEventListener("mousedown",this.docMouseDown,!0),document.addEventListener("keydown",this.docKeyDown,!0)}close(){this.panel&&(this.panel.remove(),this.panel=null,document.removeEventListener("mousedown",this.docMouseDown,!0),document.removeEventListener("keydown",this.docKeyDown,!0))}destroy(){this.close()}};var at=class{constructor(e){this.core=e;this.panel=null;this.showTimer=0;this.hideTimer=0;this.currentCell=null;this.onMouseOver=e=>{if(this.core.isDestroyed()||!this.core.options.tooltipComponent)return;let r=e.target.closest(".mach-cell");if(!r||r===this.currentCell)return;this.clearTimers(),this.removePanel(),this.currentCell=r;let o=r.dataset.colId??"",i=r.closest(".mach-row"),s=Number(i?.dataset.index),a=Number.isNaN(s)?void 0:this.core.rowModel.getDisplayedRow(s),l=o?this.core.columnModel.getColumn(o):void 0;if(!a||!l||a.isDetail||a.isGroup||r.classList.contains("mach-cell--editing"))return;let d=this.core.getCellValue(a,l),c={data:a.data,node:a,api:this.core.getApi(),colId:l.id,value:d,formatted:N(this.core,a,l),rowIndex:s},u=l.colDef.tooltipValueGetter,h=c.formatted;if(u)try{h=u({...c,colDef:l.colDef,column:l})??c.formatted}catch(p){this.core.reportError(p,"tooltipValueGetter",{colId:l.id,rowId:a.id})}!h&&!l.colDef.tooltipValueGetter||(this.showTimer=setTimeout(()=>{this.core.isDestroyed()||this.currentCell!==r||this.showPanel(r,c)},Math.max(0,this.core.options.tooltipShowDelay)))};this.onBodyLeave=()=>{this.hide()}}init(){let e=this.core.skeleton.bodyEl;e.addEventListener("mouseover",this.onMouseOver),e.addEventListener("mouseleave",this.onBodyLeave)}destroy(){this.clearTimers(),this.removePanel();let e=this.core.skeleton.bodyEl;e.removeEventListener("mouseover",this.onMouseOver),e.removeEventListener("mouseleave",this.onBodyLeave),this.currentCell=null}hide(){this.clearTimers(),this.removePanel(),this.currentCell=null}clearTimers(){this.showTimer&&(clearTimeout(this.showTimer),this.showTimer=0),this.hideTimer&&(clearTimeout(this.hideTimer),this.hideTimer=0)}removePanel(){this.panel&&(this.panel.remove(),this.panel=null)}showPanel(e,t){this.removePanel();let r=this.core.options.tooltipComponent;if(!r)return;let o=g("div","mach-tooltip");o.setAttribute("role","tooltip");let i;try{i=r(t)}catch(c){this.core.reportError(c,"tooltipComponent",{colId:t.colId,rowIndex:t.rowIndex});return}typeof i=="string"?o.textContent=i:o.appendChild(i),document.body.appendChild(o),this.panel=o;let s=e.getBoundingClientRect(),a=o.getBoundingClientRect(),l=M(s.left,8,Math.max(8,window.innerWidth-a.width-8)),d=s.bottom+6;d+a.height>window.innerHeight-8&&(d=Math.max(8,s.top-a.height-6)),o.style.left=`${l}px`,o.style.top=`${d}px`}};var lt=class{constructor(e){this.core=e;this.overlay=null}init(){this.overlay=document.createElement("div"),this.overlay.className="mach-watermark",this.overlay.setAttribute("aria-hidden","true"),this.overlay.style.pointerEvents="none",this.core.skeleton.root.appendChild(this.overlay),this.apply()}apply(){if(!this.overlay||this.core.isDestroyed())return;let e=this.core.options.watermarkEnabled?this.core.options.watermarkConfig:null;if(!e||!e.text){this.overlay.style.display="none",this.overlay.style.backgroundImage="";return}let t=this.buildTile(e);this.overlay.style.display="",t?(this.overlay.style.backgroundImage=`url(${t})`,this.overlay.style.backgroundColor=""):this.overlay.style.backgroundImage=""}buildTile(e){try{let t=document.createElement("canvas"),r=t.getContext("2d");if(!r)return null;let o=e.fontSize??14,i=e.gap??160,s=e.angle??-22,a=e.color??(this.isDark()?"rgba(255,255,255,0.9)":"rgba(31,55,88,0.9)"),l=e.opacity??.06;r.font=`500 ${o}px sans-serif`;let d=r.measureText(e.text),c=Math.ceil(d.width),u=Math.max(i,c+40);t.width=u,t.height=u;let h=t.getContext("2d");return h.clearRect(0,0,u,u),h.globalAlpha=l,h.fillStyle=a,h.font=`500 ${o}px sans-serif`,h.translate(u/2,u/2),h.rotate(s*Math.PI/180),h.textAlign="center",h.textBaseline="middle",h.fillText(e.text,0,0),t.toDataURL("image/png")}catch{return null}}isDark(){return this.core.skeleton.root.classList.contains("mach-theme-dark")}refresh(){this.apply()}destroy(){this.overlay?.remove(),this.overlay=null}};var dt=class{constructor(e){this.core=e;this.stack=[];this.pointer=-1;this.pending=null}beginBatch(){this.pending||(this.pending=[])}endBatch(){if(!this.pending)return;let e=this.pending;this.pending=null,e.length>0&&this.push(e)}cancelBatch(){this.pending=null}record(e){if(this.pending){this.pending.push(e);return}this.push([e])}push(e){let t=Math.max(0,this.core.options.undoStackSize);if(t!==0){for(this.stack.length=this.pointer+1,this.stack.push(e);this.stack.length>t;)this.stack.shift();this.pointer=this.stack.length-1}}trimToSize(){let e=Math.max(0,this.core.options.undoStackSize);if(e===0){this.clear();return}for(;this.stack.length>e;)this.stack.shift(),this.pointer--;this.pointer<-1&&(this.pointer=-1)}canUndo(){return this.pointer>=0}canRedo(){return this.pointer<this.stack.length-1}undo(){return this.canUndo()?(this.apply(this.stack[this.pointer],!1),this.pointer--,!0):!1}redo(){return this.canRedo()?(this.pointer++,this.apply(this.stack[this.pointer],!0),!0):!1}apply(e,t){let r=this.core,o=[];for(let i of e){let s=r.rowModel.getNodeById(i.nodeId),a=r.columnModel.getColumn(i.columnId);if(!s||!a||s.data==null)continue;let l=t?i.newValue:i.oldValue,d=t?i.oldValue:i.newValue;r.writeValue(s,a,l,d)&&(r.bodyRenderer.invalidateRowHeight(s),r.bodyRenderer.queueFlash([s.rowIndex],[a.id]),s.rowIndex>=0&&o.push(s.rowIndex),r.emit("cellValueChanged",{oldValue:d,newValue:l,rowNode:s,rowIndex:s.rowIndex,column:a,colDef:a.colDef,data:s.data}))}o.length>0&&r.bodyRenderer.refreshRows(o),r.summaryRenderer.refresh(),r.statusBarService.refresh()}clear(){this.stack=[],this.pointer=-1,this.pending=null}};var ct=class{constructor(e){this.core=e;this.changes=new Map;this.rollingBack=!1;this.unsubscribe=null}init(){this.unsubscribe=this.core.eventBus.on("cellValueChanged",e=>{this.rollingBack||this.record(e)})}record(e){let t=`${e.rowNode.id}\0${e.column.id}`,o=this.changes.get(t)?.originalValue??e.oldValue;Object.is(e.newValue,o)?this.changes.delete(t):this.changes.set(t,{rowId:e.rowNode.id,colId:e.column.id,originalValue:o,value:e.newValue}),this.emitChanged()}getDirtyRowIds(){return[...new Set([...this.changes.values()].map(e=>e.rowId))]}getChanges(){let e=new Map;for(let t of this.changes.values()){let r=this.core.rowModel.getNodeById(t.rowId);if(!r?.data)continue;let o=e.get(t.rowId);o||(o={rowId:t.rowId,data:r.data,cells:[]},e.set(t.rowId,o)),o.cells.push({colId:t.colId,originalValue:t.originalValue,value:t.value})}return[...e.values()]}markSaved(e){if(!e)this.changes.clear();else{let t=new Set(e);for(let[r,o]of this.changes)t.has(o.rowId)&&this.changes.delete(r)}this.emitChanged()}acknowledge(e){for(let t of e)for(let r of t.cells){let o=`${t.rowId}\0${r.colId}`,i=this.changes.get(o);if(i){Object.is(i.value,r.value)?this.changes.delete(o):i.originalValue=r.value;continue}let s=this.core.rowModel.getNodeById(t.rowId),a=this.core.columnModel.getColumn(r.colId);if(!s||!a||s.data==null)continue;let l=this.core.getCellValue(s,a);Object.is(l,r.value)||this.changes.set(o,{rowId:t.rowId,colId:r.colId,originalValue:r.value,value:l})}this.emitChanged()}rollback(e){let t=e?new Set(e):null,r=[...this.changes.entries()].filter(([,s])=>!t||t.has(s.rowId));if(r.length===0)return!1;let o=new Set,i=new Set;this.rollingBack=!0;try{for(let[s,a]of r){let l=this.core.rowModel.getNodeById(a.rowId),d=this.core.columnModel.getColumn(a.colId);if(!l||!d||l.data==null)continue;let c=this.core.getCellValue(l,d);if(Object.is(c,a.originalValue)){i.add(s);continue}this.core.writeValue(l,d,a.originalValue,c)&&(i.add(s),this.core.bodyRenderer.invalidateRowHeight(l),l.rowIndex>=0&&o.add(l.rowIndex),this.core.emit("cellValueChanged",{oldValue:c,newValue:a.originalValue,rowNode:l,rowIndex:l.rowIndex,column:d,colDef:d.colDef,data:l.data}))}}finally{this.rollingBack=!1}for(let s of i)this.changes.delete(s);return o.size>0&&this.core.bodyRenderer.refreshRows([...o]),this.core.summaryRenderer.refresh(),this.core.statusBarService.refresh(),this.emitChanged(),i.size>0}clearRows(e){if(e.length===0)return;let t=new Set(e);for(let[r,o]of this.changes)t.has(o.rowId)&&this.changes.delete(r);this.emitChanged()}clear(){this.changes.size!==0&&(this.changes.clear(),this.emitChanged())}destroy(){this.unsubscribe?.(),this.unsubscribe=null,this.changes.clear()}emitChanged(){this.core.emit("dirtyStateChanged",{dirtyRowIds:this.getDirtyRowIds()})}};var nr=class{constructor(){this.observer=null;this.subscribers=0;this.count=0;this.totalMs=0}acquire(){this.subscribers++,this.ensureObserver();let e=!1;return()=>{e||(e=!0,this.subscribers=Math.max(0,this.subscribers-1),this.subscribers===0&&(this.observer?.disconnect(),this.observer=null))}}snapshot(){return{count:this.count,totalMs:this.totalMs}}ensureObserver(){if(!(this.observer||typeof PerformanceObserver>"u"))try{this.observer=new PerformanceObserver(e=>{for(let t of e.getEntries())this.count++,this.totalMs+=t.duration}),this.observer.observe({entryTypes:["longtask"]})}catch{this.observer=null}}},ut=new nr;function or(){return typeof performance<"u"&&typeof performance.now=="function"?performance.now():Date.now()}var ht=class{constructor(){this.samples=[];this.layoutSamples=[];this.modelSamples=[];this.releaseLongTaskHub=ut.acquire(),this.longTaskBaseline=ut.snapshot()}start(){return or()}recordRender(e,t,r){this.samples.push({duration:Math.max(0,or()-e),rows:t,columns:r}),this.samples.length>120&&this.samples.shift()}recordLayout(e){this.pushDuration(this.layoutSamples,e)}recordModel(e){this.pushDuration(this.modelSamples,e)}snapshot(){let e=this.samples.map(i=>i.duration),t=this.samples[this.samples.length-1],r=[...e].sort((i,s)=>i-s),o=ut.snapshot();return{sampleCount:e.length,lastRenderMs:t?.duration??0,averageRenderMs:this.average(e),maxRenderMs:r[r.length-1]??0,p95RenderMs:this.percentile(r,!0),longRenderCount:e.filter(i=>i>16.7).length,renderedRows:t?.rows??0,renderedColumns:t?.columns??0,renderedCells:(t?.rows??0)*(t?.columns??0),layoutSampleCount:this.layoutSamples.length,p95LayoutMs:this.percentile(this.layoutSamples),modelSampleCount:this.modelSamples.length,p95ModelMs:this.percentile(this.modelSamples),longTaskCount:Math.max(0,o.count-this.longTaskBaseline.count),longTaskTotalMs:Math.max(0,o.totalMs-this.longTaskBaseline.totalMs),usedHeapBytes:this.usedHeapBytes()}}reset(){this.samples=[],this.layoutSamples=[],this.modelSamples=[],this.longTaskBaseline=ut.snapshot()}destroy(){this.releaseLongTaskHub?.(),this.releaseLongTaskHub=null}pushDuration(e,t){e.push(Math.max(0,or()-t)),e.length>120&&e.shift()}average(e){return e.length===0?0:e.reduce((t,r)=>t+r,0)/e.length}usedHeapBytes(){let e=typeof performance>"u"?void 0:performance.memory?.usedJSHeapSize;return typeof e=="number"&&Number.isFinite(e)?e:null}percentile(e,t=!1){if(e.length===0)return 0;let r=t?e:[...e].sort((o,i)=>o-i);return r[Math.max(0,Math.ceil(r.length*.95)-1)]??0}};function Yr(n,e){if(!(n==null||e==null))return[...new Set([...n,...e])]}function ni(n,e){return n===!0||e===!0?!0:n?e?{rowIds:Yr(n.rowIds,e.rowIds),rowIndexes:n.rowIndexes==null||e.rowIndexes==null?void 0:[...new Set([...n.rowIndexes,...e.rowIndexes])],columns:Yr(n.columns,e.columns),force:n.force===!0||e.force===!0,includePinned:n.includePinned===!0||e.includePinned===!0}:n:e}function ii(n,e){return{columns:n.columns===!0||e.columns===!0,header:n.header===!0||e.header===!0,pool:n.pool===!0||e.pool===!0,data:n.data===!0||e.data===!0,layout:n.layout===!0||e.layout===!0,cells:ni(n.cells,e.cells),pinned:n.pinned===!0||e.pinned===!0,summary:n.summary===!0||e.summary===!0,overlays:n.overlays===!0||e.overlays===!0}}var pt=class{constructor(e){this.apply=e;this.depth=0;this.pending=null;this.flushCount=0;this.requestCount=0;this.coalescedRequestCount=0;this.destroyed=!1}batch(e){if(this.destroyed)return e();this.depth++;try{return e()}finally{this.depth--,this.depth===0&&this.flush()}}schedule(e){this.destroyed||(this.requestCount++,this.pending&&this.coalescedRequestCount++,this.pending=ii(this.pending??{},e),this.depth===0&&this.flush())}flush(){if(this.destroyed||this.depth>0||!this.pending)return;let e=this.pending;this.pending=null,this.flushCount++,this.apply(e)}snapshot(){return{batchDepth:this.depth,flushCount:this.flushCount,requestCount:this.requestCount,coalescedRequestCount:this.coalescedRequestCount,pending:this.pending!=null}}destroy(){this.destroyed=!0,this.pending=null,this.depth=0}};var z=["gridReady","gridDestroyed","modelUpdated","cellClicked","cellDoubleClicked","cellContextMenu","rowClicked","rowDoubleClicked","selectionChanged","sortChanged","filterChanged","columnResized","columnMoved","columnVisibilityChanged","cellValueChanged","cellEditingStarted","cellEditingStopped","rowEditingStarted","rowEditingStopped","detailToggled","treeChildrenLoaded","treeChildrenLoadFailed","rowDragEnd","rangeSelectionChanged","paginationChanged","displayedColumnsChanged","gridError","dirtyStateChanged"];function Y(n){return(n==null?"":String(n)).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function ft(n,e,t="text/plain;charset=utf-8"){try{if(typeof document>"u"||typeof Blob>"u")return!1;let r=document.createElement("a");if(typeof URL<"u"&&typeof URL.createObjectURL=="function"){let o=new Blob([e],{type:t}),i=URL.createObjectURL(o);r.href=i,r.download=n,r.click();let s=typeof URL.revokeObjectURL=="function"?URL.revokeObjectURL.bind(URL):null;s&&setTimeout(()=>{try{s(i)}catch{}},0)}else r.href=`data:${t},${encodeURIComponent(e)}`,r.download=n,r.click();return!0}catch{return!1}}var _={columnDefs:{kind:"array",update:"columnDefs"},rowData:{kind:"array",update:"rowData"},defaultColDef:{kind:"object",update:"options"},columnTypes:{kind:"object",update:"options"},getRowId:{kind:"function",update:"options"},rowKey:{kind:"unknown",update:"options"},rowHeight:{kind:"number",update:"options"},headerHeight:{kind:"number",update:"options"},rowBuffer:{kind:"number",update:"options"},columnLayout:{kind:"string",update:"options"},enableColumnResize:{kind:"boolean",update:"options"},domLayout:{kind:"string",update:"options"},rowSelection:{kind:"string",update:"options"},multiSort:{kind:"boolean",update:"options"},size:{kind:"string",update:"options"},stripedRows:{kind:"boolean",update:"options"},showCellBorders:{kind:"boolean",update:"options"},theme:{kind:"string",update:"options"},quickFilterText:{kind:"string",update:"quickFilter"},advancedFilterModel:{kind:"object",update:"options"},masterDetail:{kind:"boolean",update:"options"},detailRowHeight:{kind:"number",update:"options"},detailRowRenderer:{kind:"function",update:"options"},isRowExpandable:{kind:"function",update:"options"},detailToggleColumn:{kind:"boolean",update:"options"},columnMenu:{kind:"boolean",update:"options"},columnStateKey:{kind:"string",update:"options"},columnStateStore:{kind:"object",update:"options"},aggFuncs:{kind:"object",update:"options"},components:{kind:"object",update:"options"},actionPolicy:{kind:"object",update:"options"},features:{kind:"array",update:"options"},initialState:{kind:"object",update:"options"},stateKey:{kind:"string",update:"options"},stateStore:{kind:"object",update:"options"},stateSaveDebounceMs:{kind:"number",update:"options"},locale:{kind:"object",update:"options"},editType:{kind:"string",update:"options"},editableIndicator:{kind:"string",update:"options"},rowEditValidator:{kind:"function",update:"options"},singleClickEdit:{kind:"boolean",update:"options"},manualSorting:{kind:"boolean",update:"options"},manualFiltering:{kind:"boolean",update:"options"},showSummary:{kind:"boolean",update:"options"},summaryMethod:{kind:"function",update:"options"},treeData:{kind:"boolean",update:"options"},childrenKey:{kind:"string",update:"options"},isTreeRowExpandable:{kind:"function",update:"options"},loadTreeChildren:{kind:"function",update:"options"},autoCheckedChildren:{kind:"boolean",update:"options"},defaultExpandAll:{kind:"boolean",update:"options"},indexOffset:{kind:"number",update:"options"},applyRowDrag:{kind:"boolean",update:"options"},undoStackSize:{kind:"number",update:"options"},asyncTransactionWaitMillis:{kind:"number",update:"options"},getRowHeight:{kind:"function",update:"options"},pinnedTopRowData:{kind:"array",update:"options"},pinnedBottomRowData:{kind:"array",update:"options"},pagination:{kind:"boolean-object",update:"options"},watermark:{kind:"boolean-object",update:"options"},suppressWarnings:{kind:"boolean",update:"options"},enableRangeSelection:{kind:"boolean",update:"options"},suppressClipboard:{kind:"boolean",update:"options"},contextMenu:{kind:"boolean",update:"options"},getContextMenuItems:{kind:"function",update:"options"},tooltipComponent:{kind:"function",update:"options"},tooltipShowDelay:{kind:"number",update:"options"},flashCells:{kind:"boolean",update:"options"},fillHandle:{kind:"boolean",update:"options"},statusBar:{kind:"boolean-object",update:"options"},datasource:{kind:"object",update:"options"},datasourceMode:{kind:"string",update:"options"},blockSize:{kind:"number",update:"options"},infiniteBufferRows:{kind:"number",update:"options"},maxBlocksInCache:{kind:"number",update:"options"},datasourceMaxConcurrentRequests:{kind:"number",update:"options"},blockPrefetch:{kind:"number",update:"options"},datasourceRowCount:{kind:"number",update:"options"},dataProcessor:{kind:"object",update:"options"},dataProcessorMinRows:{kind:"number",update:"options"},datasourceRetryCount:{kind:"number",update:"options"},datasourceRetryDelay:{kind:"number",update:"options"},datasourceRetryJitter:{kind:"number",update:"options"},suppressCellFocus:{kind:"boolean",update:"options"},suppressRowHoverHighlight:{kind:"boolean",update:"options"},suppressNoRowsOverlay:{kind:"boolean",update:"options"},suppressHeaderFocus:{kind:"boolean",update:"options"},ariaLabel:{kind:"string",update:"options"},ariaLabelledBy:{kind:"string",update:"options"},ariaDescribedBy:{kind:"string",update:"options"},loading:{kind:"boolean",update:"options"},error:{kind:"unknown",update:"options"},overlayNoRowsTemplate:{kind:"unknown",update:"options"},overlayLoadingTemplate:{kind:"unknown",update:"options"},overlayErrorTemplate:{kind:"unknown",update:"options"},allowUnsafeOverlayHtml:{kind:"boolean",update:"options"},className:{kind:"string",update:"options"}},le=Object.freeze(Object.keys(_)),Xr=Object.freeze(le.filter(n=>_[n].update==="options"));var si=new Set(z.map(n=>`on${n.charAt(0).toUpperCase()}${n.slice(1)}`));function be(n,e){return n==null||e==="unknown"?!0:e==="array"?Array.isArray(n):e==="boolean-object"?typeof n=="boolean"||typeof n=="object"&&!Array.isArray(n):e==="object"?typeof n=="object"&&!Array.isArray(n):e==="number"?typeof n=="number"&&Number.isFinite(n):typeof n===e}function mt(n){let e={};for(let[t,r]of Object.entries(n)){if(si.has(t)){(r==null||typeof r=="function")&&(e[t]=r);continue}let o=_[t];!o||!be(r,o.kind)||(e[t]=r)}return e}var Zr=2e3,ai=1e5,sr=512,li=1e4;function ir(n){return Array.isArray(n)?[...new Set(n.slice(0,ai).filter(e=>typeof e=="string"&&e.length>0&&e.length<=sr))]:[]}function Jr(n,e){return typeof n=="number"&&Number.isFinite(n)&&n>=1?Math.floor(n):e}function Qr(n){return typeof n=="number"&&Number.isFinite(n)&&n>0?n:void 0}function di(n,e){let t=Qr(e.width),r=Qr(e.flex);t!==void 0&&(n.width=t),e.flex===null?n.flex=null:r!==void 0&&(n.flex=r),(e.widthMode==="auto"||e.widthMode==="manual")&&(n.widthMode=e.widthMode)}function ci(n,e){typeof e.hide=="boolean"&&(n.hide=e.hide),(e.pinned===null||e.pinned==="left"||e.pinned==="right")&&(n.pinned=e.pinned)}function ui(n,e){(e.sort===null||e.sort==="asc"||e.sort==="desc")&&(n.sort=e.sort),e.sortIndex===null?n.sortIndex=null:typeof e.sortIndex=="number"&&Number.isInteger(e.sortIndex)&&e.sortIndex>=0&&(n.sortIndex=e.sortIndex)}function hi(n,e){if(n==null||typeof n!="object")return null;let t=n,r=typeof t.colId=="string"?t.colId.trim():"";if(!r||r.length>sr||e.has(r))return null;e.add(r);let o={colId:r};return ci(o,t),di(o,t),ui(o,t),o}function pi(n){if(!Array.isArray(n))return[];let e=[],t=new Set;for(let r of n.slice(0,Zr)){let o=hi(r,t);o&&e.push(o)}return e}function fi(n){if(!Array.isArray(n))return[];let e=[],t=new Set;for(let r of n.slice(0,Zr)){if(r==null||typeof r!="object")continue;let o=r,i=typeof o.colId=="string"?o.colId.trim():"";!i||i.length>sr||t.has(i)||o.direction!=="asc"&&o.direction!=="desc"||(t.add(i),e.push({colId:i,direction:o.direction}))}return e}function O(n){if(n==null||typeof n!="object")return null;let e=n;if(e.version!==1&&e.version!==2||!Array.isArray(e.columns)||!Array.isArray(e.sortModel))return null;let t=e.pagination!=null&&typeof e.pagination=="object"?e.pagination:{};return{version:2,columns:pi(e.columns),sortModel:fi(e.sortModel),filterModel:re(e.filterModel),advancedFilterModel:e.version===2?G(e.advancedFilterModel):null,quickFilterText:typeof e.quickFilterText=="string"&&e.quickFilterText.trim()?e.quickFilterText.slice(0,li):null,pagination:{enabled:t.enabled===!0,page:Jr(t.page,1),pageSize:Jr(t.pageSize,20)},selectedRowIds:ir(e.selectedRowIds),expandedRowIds:ir(e.expandedRowIds),expandedGroupIds:ir(e.expandedGroupIds)}}function mi(n){try{if(typeof structuredClone=="function")return structuredClone(n)}catch{}return Array.isArray(n)?[...n]:n!=null&&typeof n=="object"?{...n}:n}function gt(n,e){let t=e?new Set(e.map(String)):null;return n.filter(r=>!t||t.has(r.rowId)).map(r=>({...r,data:mi(r.data),cells:r.cells.map(o=>({...o}))}))}function gi(n,e){let t=typeof n?.rowId=="string"?n.rowId:"";return!e.has(t)||typeof n.message!="string"||!n.message.trim()?null:{...n,rowId:t,message:n.message.trim(),...typeof n.code=="string"&&n.code.trim()?{code:n.code.trim()}:{},...Array.isArray(n.colIds)?{colIds:[...new Set(n.colIds.filter(r=>typeof r=="string"&&r.length>0))]}:{}}}function eo(n,e){let t=new Map;for(let r of n??[]){let o=gi(r,e);o&&!t.has(o.rowId)&&t.set(o.rowId,o)}return[...t.values()]}function yt(n,e){let t=new Set(n.map(d=>d.rowId)),r=eo(e?.conflicts,t),o=new Set(r.map(d=>d.rowId)),i=eo(e?.failures,t).filter(d=>!o.has(d.rowId)),s=new Set([...i,...r].map(d=>d.rowId)),a=e?.savedRowIds==null?null:new Set(e.savedRowIds.map(String).filter(d=>t.has(d))),l=n.filter(d=>!s.has(d.rowId)&&(a==null||a.has(d.rowId)));return{submitted:n,saved:l,failures:i,conflicts:r}}function yi(n,e){if(e.serverData===void 0)return null;let t=n.getNodeById(e.rowId);if(!t||t.data==null)return null;let r=n.getGridOption("getRowId");if(r)try{return r({data:e.serverData,index:t.rowIndex,api:n})===e.rowId?{data:e.serverData,mergeIntoCurrent:!1}:null}catch{return null}let o=t.data;return o!=null&&e.serverData!=null&&typeof o=="object"&&typeof e.serverData=="object"?{data:o,mergeIntoCurrent:!0}:null}function to(n,e,t){if(n.isDestroyed())return!1;if(t==="keepLocal")return!0;let r=yi(n,e);return r?(n.rollbackChanges([e.rowId]),r.mergeIntoCurrent&&Object.assign(r.data,e.serverData),n.applyTransaction({update:[r.data]}),n.markChangesSaved([e.rowId]),!0):!1}function ro(n){return{setData:e=>n.setRowData(e),apply:e=>n.applyTransaction(e),applyAsync:(e,t)=>n.applyTransactionAsync(e,t),getDisplayedCount:()=>n.getDisplayedRowCount(),getById:e=>n.getNodeById(e),scrollTo:(e,t)=>n.scrollToIndex(e,t),ensureLoaded:(e,t,r)=>n.ensureRowsLoaded(e,t,r),purgeCache:()=>n.purgeDatasourceCache(),getCacheSnapshot:()=>n.getDatasourceCacheSnapshot()}}function oo(n){return{getState:()=>n.getColumnState(),setState:e=>n.setColumnState(e),resetState:()=>n.resetColumnState(),setVisible:(e,t)=>n.setColumnVisibility(e,t),setWidth:(e,t)=>n.setColumnWidth(e,t)}}function no(n){return{getRows:()=>n.getSelectedRows(),getIds:()=>n.getSelectedIds(),selectAll:e=>n.selectAll(e),clear:()=>n.deselectAll()}}function io(n){return{getChanges:()=>n.getChanges(),rollback:e=>n.rollbackChanges(e),save:(e,t)=>n.saveChangesDetailed(e,t),stop:e=>n.stopEditingAsync(e)}}function so(n){return{get:()=>n.getState(),apply:(e,t)=>n.applyState(e,t)}}function ao(n){return{get:()=>n.getDiagnostics(),getPerformance:()=>n.getPerformanceSnapshot(),resetPerformance:()=>n.resetPerformanceMetrics()}}function lo(n){return{getModel:()=>n.getFilterModel(),setModel:e=>n.setFilterModel(e),getAdvancedModel:()=>n.getAdvancedFilterModel(),setAdvancedModel:e=>n.setAdvancedFilterModel(e),getQuickText:()=>n.getQuickFilter(),setQuickText:e=>n.setQuickFilter(e),isPresent:e=>e==null?Object.keys(n.getFilterModel()).length>0||n.getAdvancedFilterModel()!=null||n.getQuickFilter()!=null:n.isColumnFilterPresent(e)}}function co(n){return{isEnabled:()=>n.paginationEnabled(),setEnabled:e=>n.setPaginationEnabled(e),getPage:()=>n.getPage(),setPage:e=>n.setPage(e),getPageSize:()=>n.getPageSize(),setPageSize:e=>n.setPageSize(e),getPageCount:()=>n.getPageCount(),getTotalRowCount:()=>n.getTotalRowCount()}}function Te(n){if(n?.reason instanceof Error)return n.reason;let e=new Error(typeof n?.reason=="string"?n.reason:"The operation was aborted");return e.name="AbortError",e}function uo(n,e){return e?e.aborted?Promise.reject(Te(e)):new Promise((t,r)=>{let o=()=>r(Te(e));e.addEventListener("abort",o,{once:!0}),n.then(t,r).finally(()=>e.removeEventListener("abort",o))}):n}function vi(){return{datasourceChanged:!1,filterChanged:!1,needsCellRefresh:!1,needsColumnRebuild:!1,needsHeaderRebuild:!1,needsPoolRebuild:!1,needsRelayout:!1,needsRowRebuild:!1,needsStateLoad:!1,needsSummaryRefresh:!1,needsFeatureReload:!1}}function C(n,e){return Object.prototype.hasOwnProperty.call(n,e)}function x(n,e,t=!1){if(!(typeof n!="number"||!Number.isFinite(n)||n<e))return t?Math.floor(n):n}function Re(n,e,t,r=!1){let o=x(n,t,r);return o===void 0||o===e?void 0:o}var vt=class{constructor(e){this.core=e;this.measureCanvas=null;this.asyncTransactions=[];this.asyncTransactionTimer=null}get rows(){return this.rowsFacade??(this.rowsFacade=ro(this))}get columns(){return this.columnsFacade??(this.columnsFacade=oo(this))}get selection(){return this.selectionFacade??(this.selectionFacade=no(this))}get editing(){return this.editingFacade??(this.editingFacade=io(this))}get state(){return this.stateFacade??(this.stateFacade=so(this))}get diagnostics(){return this.diagnosticsFacade??(this.diagnosticsFacade=ao(this))}get filtering(){return this.filteringFacade??(this.filteringFacade=lo(this))}get pagination(){return this.paginationFacade??(this.paginationFacade=co(this))}batch(e){return this.core.batchUpdates(()=>e(this))}flushUpdates(){this.core.updateScheduler.flush()}whenReady(){return this.core.whenReady()}getRootElement(){return this.core.isDestroyed()?null:this.core.skeleton.root}setRowData(e){this.core.isDestroyed()||(this.core.options.rowData=e??[],!this.core.rowModel.isInfinite&&(this.core.rowModel.setRowData(e),this.core.requestUpdate({data:!0})))}applyTransaction(e){if(this.core.isDestroyed()||this.core.rowModel.isInfinite)return;let t=this.core.rowModel.applyTransaction(e);this.requestTransactionRefresh(t)}applyTransactionAsync(e,t={}){if(this.core.isDestroyed()||this.core.rowModel.isInfinite)return Promise.resolve();if(t.signal?.aborted)return Promise.reject(Te(t.signal));let r=new Promise((o,i)=>{let s={transaction:e,resolve:o,reject:i,signal:t.signal,aborted:!1};t.signal&&(s.onAbort=()=>{s.aborted||(s.aborted=!0,i(Te(t.signal)))},t.signal.addEventListener("abort",s.onAbort,{once:!0})),this.asyncTransactions.push(s)});return this.asyncTransactionTimer==null&&(this.asyncTransactionTimer=setTimeout(()=>this.flushAsyncTransactions(),this.core.options.asyncTransactionWaitMillis)),r}flushAsyncTransactions(){this.asyncTransactionTimer!=null&&clearTimeout(this.asyncTransactionTimer),this.asyncTransactionTimer=null;let e=this.asyncTransactions;this.asyncTransactions=[];let t=e.filter(r=>!r.aborted).map(r=>r.transaction);if(t.length>0&&!this.core.isDestroyed()&&!this.core.rowModel.isInfinite){let r=this.core.rowModel.applyTransactions(t);this.requestTransactionRefresh(r)}for(let r of e)r.signal&&r.onAbort&&r.signal.removeEventListener("abort",r.onAbort),r.aborted||r.resolve()}requestTransactionRefresh(e){if(e.pipelineChanged){this.core.requestUpdate({data:!0});return}e.updatedRowIds.length!==0&&this.core.requestUpdate({cells:{rowIds:e.updatedRowIds},summary:!0,overlays:!0})}getColumnDefs(){return this.core.columnModel.getColumnDefs()}setColumnDefs(e){this.core.isDestroyed()||(this.core.options.columnDefs=e??[],this.core.columnModel.setColumnDefs(e),this.core.loadPersistedColumnState(),this.core.onColumnsStructureChanged(),this.core.rowModel.isInfinite?this.core.rowModel.onServerParamsChanged():(this.core.rowModel.refreshPipeline(),this.core.requestUpdate({data:!0})))}getColumnState(){return this.core.columnModel.getColumnState()}setColumnState(e){this.core.isDestroyed()||(this.core.columnModel.applyColumnState(e),this.core.onColumnsStructureChanged(),this.core.applySortModel(),this.core.persistColumnState())}resetColumnState(){this.core.isDestroyed()||(this.core.columnModel.resetColumnState(),this.core.onColumnsStructureChanged(),this.core.applySortModel(),this.core.persistColumnState())}setColumnVisibility(e,t){this.core.isDestroyed()||(this.core.columnModel.setColumnVisibility(e,t),this.core.onColumnsStructureChanged(),this.core.emit("columnVisibilityChanged",{colId:e,visible:t}),this.core.persistColumnState())}moveColumn(e,t){this.core.isDestroyed()||this.core.moveColumn(e,t)}setColumnPinned(e,t){this.core.isDestroyed()||(this.core.columnModel.setColumnPinned(e,t),this.core.onColumnsStructureChanged(),this.core.persistColumnState())}setColumnWidth(e,t){if(this.core.isDestroyed())return!1;let r=this.core.columnModel.getColumn(e);return!r||!this.core.columnModel.setColumnWidth(r,t)?!1:(this.core.relayoutColumns(),this.core.commitColumnWidths([r]),!0)}sizeColumnsToFit(e){if(this.core.isDestroyed())return;let t=this.core.columnModel.getOrderedVisible();if(t.length===0)return;let r=e??this.core.skeleton.measureViewportWidth();if(r<=0)return;let o=t.reduce((s,a)=>s+a.currentWidth,0);if(o<=0)return;let i=t.filter(s=>this.core.columnModel.setColumnWidth(s,Math.max(30,Math.floor(s.currentWidth*r/o))));this.core.relayoutColumns(),this.core.commitColumnWidths(i)}autoSizeColumn(e,t=!1){if(this.core.isDestroyed())return;let r=this.core.columnModel.getColumn(e);r&&this.autoSizeColumnInternal(r,t)&&(this.core.relayoutColumns(),this.core.commitColumnWidths([r]))}autoSizeColumnInternal(e,t){if(e.hasCheckbox||e.isDetailToggle)return this.core.columnModel.setColumnWidth(e,e.isDetailToggle?38:46);this.measureCanvas??(this.measureCanvas=document.createElement("canvas"));let r=this.measureCanvas.getContext("2d");if(!r)return!1;let o=window.getComputedStyle(this.core.skeleton.root);r.font=`${o.fontStyle} ${o.fontWeight} ${o.fontSize} ${o.fontFamily}`;let i=0,s=c=>{if(!c)return;let u=r.measureText(c).width;u>i&&(i=u)};t||s(e.colDef.headerName??e.colDef.field??e.id);let a=this.core.rowModel.getAllNodes(),l=Math.min(a.length,2e3);for(let c=0;c<l;c++)s(N(this.core,a[c],e));let d=(e.sortable?20:0)+(e.filterable?28:0)+(this.core.options.columnMenu?22:0)+28;return this.core.columnModel.setColumnWidth(e,Math.ceil(i)+d)}autoSizeAllColumns(e){if(this.core.isDestroyed())return;let t=[];for(let r of this.core.columnModel.getOrderedVisible())this.autoSizeColumnInternal(r,e??!1)&&t.push(r);t.length>0&&(this.core.relayoutColumns(),this.core.commitColumnWidths(t))}getSortModel(){return this.core.columnModel.getSortModel()}setSortModel(e){this.core.isDestroyed()||(this.core.columnModel.applySortModel(e),this.core.applySortModel())}getFilterModel(){return this.core.rowModel.getFilterModel()}setFilterModel(e){if(!this.core.isDestroyed()){if(this.core.rowModel.setFilterModel(e),this.core.headerRenderer.refreshFilterIcons(),this.emitFilterChanged(),this.core.rowModel.isInfinite){this.core.rowModel.onServerParamsChanged();return}this.core.rowModel.refreshPipeline(),this.core.requestUpdate({data:!0})}}getAdvancedFilterModel(){return this.core.rowModel.getAdvancedFilterModel()}setAdvancedFilterModel(e){if(!(this.core.isDestroyed()||!this.core.rowModel.setAdvancedFilterModel(e))){if(this.emitFilterChanged(),this.core.rowModel.isInfinite){this.core.rowModel.onServerParamsChanged();return}this.core.rowModel.refreshPipeline(),this.core.requestUpdate({data:!0})}}emitFilterChanged(){this.core.emit("filterChanged",{filterModel:this.core.rowModel.getFilterModel(),advancedFilterModel:this.core.rowModel.getAdvancedFilterModel()})}isColumnFilterPresent(e){return Object.prototype.hasOwnProperty.call(this.core.rowModel.getFilterModel(),e)}setQuickFilter(e){this.core.isDestroyed()||(this.core.options.quickFilterText=e!=null&&e.trim()!==""?e:null,this.core.rowModel.setQuickFilter(e)&&this.core.applyQuickFilter())}getQuickFilter(){return this.core.rowModel.getQuickFilter()}getRowSelection(){return this.core.options.rowSelection}setRowSelection(e){this.core.isDestroyed()||this.core.options.rowSelection!==e&&(this.core.options.rowSelection=e,e==="none"&&this.deselectAll(),this.core.headerRenderer.build(),this.core.bodyRenderer.rebuildPool())}getSelectedNodes(){return this.core.selectionService.getSelectedNodes()}getSelectedRows(){return this.core.selectionService.getSelectedRows()}selectNodeById(e,t=!0,r=!0){this.core.selectionService.selectNodeById(e,t,r)}selectAll(e=!0){this.core.selectionService.selectAll(e)}deselectAll(){this.core.selectionService.deselectAll()}getDisplayedRowCount(){return this.core.rowModel.getDisplayedRowCount()}getRowNode(e){return this.core.rowModel.getDisplayedRow(e)}getNodeById(e){return this.core.rowModel.getNodeById(e)}forEachNode(e){this.core.rowModel.forEachNode(e)}forEachNodeAfterFilterAndSort(e){this.core.rowModel.forEachNodeAfterFilterAndSort(e)}scrollToIndex(e,t="top"){this.core.bodyRenderer.scrollToIndex(e,t)}expandRow(e){return this.core.isDestroyed()?!1:this.core.rowModel.expandRow(e)}collapseRow(e){return this.core.isDestroyed()?!1:this.core.rowModel.collapseRow(e)}toggleDetailRow(e){return this.core.isDestroyed()?!1:this.core.rowModel.toggleDetail(e)}isRowExpanded(e){return this.core.rowModel.isRowExpanded(e)}expandAllDetails(){this.core.isDestroyed()||this.core.rowModel.expandAllDetails()}collapseAllDetails(){this.core.isDestroyed()||this.core.rowModel.collapseAllDetails()}loadTreeChildren(e,t={}){return this.core.isDestroyed()?Promise.resolve([]):this.core.rowModel.loadTreeChildren(e,t.force===!0)}retryTreeChildren(e){return this.loadTreeChildren(e,{force:!0})}isTreeRowLoading(e){return!this.core.isDestroyed()&&this.core.rowModel.isTreeRowLoading(e)}toggleRowGroup(e){return this.core.isDestroyed()?!1:this.core.rowModel.toggleGroup(e)}reorderRows(e,t){return this.core.isDestroyed()?!1:this.core.rowModel.reorderRowsByDisplayed(e,t)}isGroupExpanded(e){return this.core.rowModel.isGroupExpanded(e)}expandAllGroups(){this.core.isDestroyed()||this.core.rowModel.expandAllGroups()}collapseAllGroups(){this.core.isDestroyed()||this.core.rowModel.collapseAllGroups()}setSelection(e,t=!0){if(this.core.isDestroyed())return;let r=this.core.options.getRowId,o=[];for(let i of e){let s=r?this.core.rowModel.getNodeById(this.core.rowModel.resolveRowId(i,-1,`__missing_selection_${this.core.nextId()}`)):this.core.rowModel.getAllNodes().find(a=>a.data===i);s&&o.push({node:s,selected:!0})}o.length>0?this.core.selectionService.applySelectionPublic(o,t):t&&this.deselectAll()}getVisibleSelection(){let e=new Set(this.core.selectionService.getSelectedNodes().map(t=>t.id));return this.core.rowModel.getDisplayedRows().filter(t=>!t.isDetail&&!t.isGroup&&e.has(t.id)).map(t=>t.data).filter(Boolean)}getSelectedIds(){return this.core.selectionService.getSelectedIds()}undo(){return this.core.isDestroyed()?!1:this.core.undoService.undo()}redo(){return this.core.isDestroyed()?!1:this.core.undoService.redo()}canUndo(){return this.core.undoService.canUndo()}canRedo(){return this.core.undoService.canRedo()}getDirtyRowIds(){return this.core.changeTracker.getDirtyRowIds()}getChanges(){return this.core.changeTracker.getChanges()}markChangesSaved(e){this.core.changeTracker.markSaved(e)}async saveChanges(e,t){return(await this.saveChangesDetailed(e,t)).saved}async saveChangesDetailed(e,t){let r=gt(this.core.changeTracker.getChanges(),t);if(r.length===0)return{submitted:[],saved:[],failures:[],conflicts:[]};let o=yt(r,await e(r));return this.core.isDestroyed()||this.core.changeTracker.acknowledge(o.saved),o}rollbackChanges(e){return this.core.changeTracker.rollback(e)}setPinnedTopRowData(e){this.core.isDestroyed()||(this.core.options.pinnedTopRowData=e??[],this.core.pinnedRowsRenderer.setTopData(this.core.options.pinnedTopRowData))}getPinnedTopRowData(){return this.core.pinnedRowsRenderer.getTopData()}setPinnedBottomRowData(e){this.core.isDestroyed()||(this.core.options.pinnedBottomRowData=e??[],this.core.pinnedRowsRenderer.setBottomData(this.core.options.pinnedBottomRowData))}getPinnedBottomRowData(){return this.core.pinnedRowsRenderer.getBottomData()}getRangeSelection(){return this.core.bodyRenderer.getRangeSelection()}clearRangeSelection(){this.core.isDestroyed()||this.core.bodyRenderer.clearRangeSelection()}copyRangeToClipboard(){return this.core.isDestroyed()?Promise.resolve(!1):this.core.copyActiveRange()}openColumnPanel(e){this.openColumnWorkbench(e)}openColumnWorkbench(e){this.core.isDestroyed()||this.core.columnMenu.openStandalone(e)}closeColumnWorkbench(){this.core.columnMenu.close()}getColumnWorkbenchItems(){return this.core.columnModel.getColumns().filter(e=>!e.isDetailToggle).map(e=>({colId:e.id,label:e.colDef.headerName??e.colDef.field??e.id,visible:!e.hide,pinned:e.pinned,width:e.currentWidth||e.manualWidth||e.colDef.width||0,movable:e.movable,hideable:!e.hasCheckbox}))}refreshLayout(){this.core.isDestroyed()||(this.core.relayout(),this.core.bodyRenderer.syncScroll())}isInfinite(){return this.core.rowModel.isInfinite}reload(e={}){return this.core.isDestroyed()?Promise.resolve():e.signal?.aborted?Promise.reject(Te(e.signal)):this.core.rowModel.isInfinite?uo(this.core.rowModel.reloadInfinite(e.signal),e.signal):(this.core.rowModel.setRowData(this.core.options.rowData),this.core.requestUpdate({data:!0}),Promise.resolve())}ensureRowsLoaded(e,t,r={}){return this.core.isDestroyed()?Promise.resolve():uo(this.core.rowModel.ensureRowsLoaded(e,t,r.signal),r.signal)}purgeDatasourceCache(){this.core.isDestroyed()||this.core.rowModel.purgeDatasourceCache()}getDatasourceCacheSnapshot(){return this.core.rowModel.getDatasourceCacheSnapshot()}paginationEnabled(){return this.core.rowModel.paginationActive}setPaginationEnabled(e){this.core.isDestroyed()||this.core.rowModel.setPaginationEnabled(e)}getPage(){return this.core.rowModel.getCurrentPage()}setPage(e){this.core.isDestroyed()||this.core.rowModel.setPage(e)}getPageSize(){return this.core.options.paginationPageSize}setPageSize(e){this.core.isDestroyed()||this.core.rowModel.setPageSize(e)}getPageCount(){return this.core.rowModel.getPageCount()}getTotalRowCount(){return this.core.rowModel.getTotalRowCount()}importCsv(e,t={}){if(this.core.isDestroyed()||!e)return!1;let r=Ue(e,t.separator??",");if(r.length===0)return!1;let o=r[t.headerRowIndex??0]??[],i=r.slice((t.headerRowIndex??0)+1).filter(c=>c.some(u=>u!=="")),s=t.mode??"replace";if(s==="paste")return this.core.pasteText(ae(i,!1),0,0),!0;let a=this.core.columnModel.getOrderedVisible().filter(c=>c.colDef.field),l=this.resolveCsvFieldOrder(o,a),d=this.buildCsvRecords(i,l,t);return s==="append"?this.core.rowModel.applyTransaction({add:d}):this.core.rowModel.setRowData(d),this.core.requestUpdate({data:!0}),!0}resolveCsvFieldOrder(e,t){let r=new Map;for(let i of t){let s=i.colDef.field;s&&(r.set(String(i.colDef.headerName??s),s),r.set(s,s))}e.length>0&&(e[0]=e[0].replace(/^\uFEFF/,""));let o=e.map((i,s)=>({field:r.get(String(i).trim())??null,index:s})).filter(i=>i.field!=null);return o.length>0?o:t.map((i,s)=>({field:i.colDef.field,index:s}))}buildCsvRecords(e,t,r){return e.map((o,i)=>{let s={};return t.forEach(({field:a,index:l})=>{let d=o[l];if(d===void 0)return;let c=this.parseCsvValue(d,a,i,l,r);$(s,a,c)||this.core.reportError(new Error(`Unsafe CSV field: ${a}`),"csv.import",{field:a})}),s})}parseCsvValue(e,t,r,o,i){if(i.parseValue)try{return i.parseValue({value:e,field:t,rowIndex:r,columnIndex:o})}catch(l){return this.core.reportError(l,"csv.parseValue",{field:t,rowIndex:r,columnIndex:o}),e}if(e==="")return null;let s=/^[+-]?(?:\d+(?:\.\d+)?|\.\d+)(?:[eE][+-]?\d+)?$/.test(e),a=/^[+-]?0\d/.test(e);return i.coerceNumbers!==!1&&s&&!a?Number(e):e}print(e={}){if(this.core.isDestroyed())return!1;try{let t=window.open("","_blank","width=980,height=720");if(!t)return!1;let r=this.core.columnModel.getOrderedVisible().filter(d=>!d.hasCheckbox&&!d.isDetailToggle&&!d.colDef.rowDrag),o=this.core.rowModel.getPipelineRows().filter(d=>!d.isDetail&&!d.isGroup),s=e.includeHeader!==!1?`<tr>${r.map(d=>`<th>${Y(d.colDef.headerName??d.colDef.field??d.id)}</th>`).join("")}</tr>`:"",a=o.map(d=>`<tr>${r.map(c=>{let u=N(this.core,d,c);return`<td>${Y(u)}</td>`}).join("")}</tr>`).join(""),l=`<!doctype html><html><head><meta charset="utf-8"><title>${Y(e.title??"MachTable")}</title><style>body{font-family:system-ui,"PingFang SC","Microsoft YaHei",sans-serif;padding:20px}h3{margin:0 0 12px;font-size:16px}table{border-collapse:collapse;width:100%;font-size:12px}th,td{border:1px solid #bbb;padding:5px 8px;text-align:left;word-break:break-all}th{background:#f2f5f9;font-weight:600}@page{margin:12mm}</style></head><body><h3>${Y(e.title??"")}</h3><table>${s}${a}</table></body></html>`;return t.document.write(l),t.document.close(),t.focus(),t.print(),!0}catch{return!1}}startEditingCell(e){let t=this.core.columnModel.getColumn(e.colId);return t?this.core.editingService.start(e.rowIndex,t,e.keyPress??null):!1}startEditingRow(e){return this.core.editingService.startRow(e)}isRowEditing(e){return this.core.editingService.isRowEditing(e)}stopEditing(e){this.core.editingService.stop(e??!1)}stopEditingAsync(e){return this.core.editingService.stopAsync(e??!1)}stopEditingRow(e){return this.core.editingService.stopRowAsync(e??!1)}refreshCells(e){let t=e==null||e.rowIds==null&&e.rowIndexes==null&&e.columns==null;this.core.requestUpdate({cells:e??!0,pinned:e?.includePinned??t,summary:t})}getGridOption(e){return this.core.options[e]}setGridOption(e,t){this.updateOptions({[e]:t})}updateOptions(e){this.core.isDestroyed()||(this.core.checkWarnings(e),e=mt(e),Object.keys(e).length!==0&&this.core.batchUpdates(()=>{let t=vi(),r=this.core.options.columnMenu;this.updateSourceOptions(e,t),this.updateDimensionOptions(e,t),this.updateEditingOptions(e,t),this.updateInteractionOptions(e,t),this.updatePaginationOptions(e),this.updatePresentationOptions(e,t),this.updateAccessibilityOptions(e,t),this.updateRowModelOptions(e,t),this.updateExtensionOptions(e,t),this.updateDatasourceOptions(e,t),this.applyOptionUpdateEffects(e,t,r)}))}updateSourceOptions(e,t){let r=this.core.options;C(e,"columnDefs")&&e.columnDefs!==r.columnDefs&&(r.columnDefs=Array.isArray(e.columnDefs)?e.columnDefs:[],t.needsColumnRebuild=!0,t.needsRowRebuild=!0),C(e,"rowData")&&(r.rowData=Array.isArray(e.rowData)?e.rowData:[],t.needsRowRebuild=!0),C(e,"initialState")&&e.initialState&&(r.initialState=e.initialState,t.stateToApply=e.initialState),this.updateEventHandlers(e)}updateEventHandlers(e){for(let t of z){let r=`on${t.charAt(0).toUpperCase()}${t.slice(1)}`;C(e,r)&&Object.assign(this.core.options,{[r]:e[r]})}}updateDimensionOptions(e,t){let r=this.core.options,o=Re(e.rowHeight,r.rowHeight,1),i=Re(e.headerHeight,r.headerHeight,1),s=Re(e.rowBuffer,r.rowBuffer,0,!0),a=Re(e.detailRowHeight,r.detailRowHeight,1);o!==void 0&&(r.rowHeight=o,t.needsRelayout=!0),i!==void 0&&(r.headerHeight=i,t.needsRelayout=!0,t.needsHeaderRebuild=!0),s!==void 0&&(r.rowBuffer=s,t.needsRelayout=!0),e.columnLayout!=null&&e.columnLayout!==r.columnLayout&&(r.columnLayout=e.columnLayout==="fit"?"fit":"normal",t.needsRelayout=!0),e.domLayout!=null&&e.domLayout!==r.domLayout&&(r.domLayout=e.domLayout==="autoHeight"?"autoHeight":"normal",this.core.skeleton.applyDomLayout(r.domLayout),t.needsPoolRebuild=!0),e.multiSort!=null&&(r.multiSort=e.multiSort),a!==void 0&&(r.detailRowHeight=a,this.core.bodyRenderer.applyContainerSizes(),this.core.bodyRenderer.updateRange(!0))}updateEditingOptions(e,t){let r=this.core.options;e.editType!=null&&e.editType!==r.editType&&(this.core.editingService.stop(!0),r.editType=e.editType==="fullRow"?"fullRow":"cell",t.needsCellRefresh=!0),e.editableIndicator!=null&&e.editableIndicator!==r.editableIndicator&&(r.editableIndicator=e.editableIndicator==="always"||e.editableIndicator==="none"?e.editableIndicator:"hover",t.needsCellRefresh=!0),C(e,"rowEditValidator")&&(r.rowEditValidator=e.rowEditValidator),e.singleClickEdit!=null&&(r.singleClickEdit=e.singleClickEdit),e.manualSorting!=null&&(r.manualSorting=e.manualSorting),e.manualFiltering!=null&&(r.manualFiltering=e.manualFiltering)}updateInteractionOptions(e,t){let r=this.core.options;typeof e.enableColumnResize=="boolean"&&e.enableColumnResize!==r.enableColumnResize&&(this.core.resizeService.cancelResize(),r.enableColumnResize=e.enableColumnResize,t.needsHeaderRebuild=!0),e.locale!=null&&e.locale!==r.locale&&(r.locale=e.locale,t.needsHeaderRebuild=!0,t.needsCellRefresh=!0,this.core.paginationBar.rebuild(),this.core.statusBarService.rebuild()),e.indexOffset!=null&&e.indexOffset!==r.indexOffset&&(r.indexOffset=e.indexOffset,t.needsCellRefresh=!0),e.showSummary!=null&&e.showSummary!==r.showSummary&&(r.showSummary=e.showSummary,t.needsSummaryRefresh=!0,t.needsRelayout=!0);let o=Re(e.undoStackSize,r.undoStackSize,0,!0);o!==void 0&&(r.undoStackSize=o,this.core.undoService.trimToSize());let i=x(e.asyncTransactionWaitMillis,0,!0);i!==void 0&&(r.asyncTransactionWaitMillis=i),this.updateDynamicRowHeight(e,t),this.updateRangeAndFeedbackOptions(e)}updateDynamicRowHeight(e,t){if(!C(e,"getRowHeight"))return;let r=this.core.options.getRowHeight!==e.getRowHeight;this.core.options.getRowHeight=e.getRowHeight,r&&this.core.bodyRenderer.invalidateAllRowHeights(),t.needsRelayout=!0}updateRangeAndFeedbackOptions(e){let t=this.core.options;e.enableRangeSelection!=null&&(t.enableRangeSelection=e.enableRangeSelection,e.enableRangeSelection||this.clearRangeSelection()),C(e,"tooltipComponent")&&(t.tooltipComponent=e.tooltipComponent);let r=x(e.tooltipShowDelay,0);r!==void 0&&(t.tooltipShowDelay=r),e.flashCells!=null&&(t.flashCells=e.flashCells),C(e,"getContextMenuItems")&&(t.getContextMenuItems=e.getContextMenuItems),e.theme!=null&&e.theme!==t.theme&&(t.theme=e.theme,this.core.skeleton.applyTheme(e.theme),this.core.watermarkService.refresh())}updatePaginationOptions(e){if(e.pagination===void 0)return;let t=this.core.options,r=e.pagination,o=r!==!1&&t.datasource==null;o!==t.paginationEnabled&&this.core.rowModel.setPaginationEnabled(o),typeof r=="object"&&r&&this.updatePaginationConfig(r),t.paginationEnabled&&this.core.rowModel.onPaginationOptionsChanged(),this.core.paginationBar.rebuild()}updatePaginationConfig(e){let t=this.core.options;t.paginationMode=e.mode==="server"?"server":"client";let r=x(e.page,1,!0),o=x(e.total,0,!0);r!==void 0&&(t.paginationPage=r),o!==void 0&&(t.paginationTotal=o),e.pageSize!=null&&(t.paginationPageSize=e.pageSize),e.pageSizeOptions!=null&&(t.paginationPageSizeOptions=e.pageSizeOptions),e.showTotal!=null&&(t.paginationShowTotal=e.showTotal),e.showPageSizeSelector!=null&&(t.paginationShowSizeSelector=e.showPageSizeSelector)}updatePresentationOptions(e,t){this.updateWatermarkAndStatus(e,t),this.updateSizePreset(e,t);let r=this.core.options;e.stripedRows!=null&&e.stripedRows!==r.stripedRows&&(r.stripedRows=e.stripedRows,this.core.skeleton.setStriped(e.stripedRows)),e.showCellBorders!=null&&e.showCellBorders!==r.showCellBorders&&(r.showCellBorders=e.showCellBorders,this.core.skeleton.setCellBorders(e.showCellBorders))}updateWatermarkAndStatus(e,t){let r=this.core.options;e.watermark!==void 0&&(r.watermarkEnabled=e.watermark!=null&&e.watermark!==!1,r.watermarkConfig=e.watermark==null||e.watermark===!1?null:e.watermark===!0?{text:"MachTable"}:e.watermark,this.core.watermarkService.refresh()),this.updateStatusOptions(e),C(e,"summaryMethod")&&(r.summaryMethod=e.summaryMethod,t.needsSummaryRefresh=!0)}updateStatusOptions(e){let t=this.core.options;e.suppressClipboard!=null&&(t.suppressClipboard=e.suppressClipboard),e.contextMenu!=null&&(t.contextMenu=e.contextMenu),e.columnMenu!=null&&(t.columnMenu=e.columnMenu),e.fillHandle!=null&&(t.fillHandle=e.fillHandle),e.statusBar!==void 0&&(t.statusBarEnabled=e.statusBar===!0||typeof e.statusBar=="object"&&e.statusBar!=null,typeof e.statusBar=="object"&&e.statusBar?.panels&&(t.statusBarPanels=e.statusBar.panels),this.core.statusBarService.rebuild())}updateSizePreset(e,t){let{size:r}=e;if(r==null||!C(U,r)||r===this.core.options.size)return;let o=U[r];this.core.options.size=r,this.core.options.rowHeight=e.rowHeight??o.rowHeight,this.core.options.headerHeight=e.headerHeight??o.headerHeight,this.core.skeleton.applySize(r),t.needsRelayout=!0,t.needsHeaderRebuild=!0}updateAccessibilityOptions(e,t){let r=this.core.options;e.suppressCellFocus!=null&&(r.suppressCellFocus=e.suppressCellFocus),e.suppressRowHoverHighlight!=null&&(r.suppressRowHoverHighlight=e.suppressRowHoverHighlight),e.suppressNoRowsOverlay!=null&&(r.suppressNoRowsOverlay=e.suppressNoRowsOverlay),e.suppressHeaderFocus!=null&&e.suppressHeaderFocus!==r.suppressHeaderFocus&&(r.suppressHeaderFocus=e.suppressHeaderFocus,t.needsHeaderRebuild=!0),this.updateAriaLabels(e),this.updateOverlayOptions(e)}updateAriaLabels(e){let t=this.core.options,r=!1;C(e,"ariaLabel")&&(t.ariaLabel=e.ariaLabel??"MachTable data grid",r=!0),C(e,"ariaLabelledBy")&&(t.ariaLabelledBy=e.ariaLabelledBy??"",r=!0),C(e,"ariaDescribedBy")&&(t.ariaDescribedBy=e.ariaDescribedBy??"",r=!0),r&&this.core.skeleton.applyAriaLabels(t)}updateOverlayOptions(e){let t=this.core.options;C(e,"overlayNoRowsTemplate")&&(t.overlayNoRowsTemplate=e.overlayNoRowsTemplate??""),C(e,"overlayLoadingTemplate")&&(t.overlayLoadingTemplate=e.overlayLoadingTemplate??""),C(e,"overlayErrorTemplate")&&(t.overlayErrorTemplate=e.overlayErrorTemplate??""),e.allowUnsafeOverlayHtml!=null&&(t.allowUnsafeOverlayHtml=e.allowUnsafeOverlayHtml),C(e,"className")&&(t.className=e.className??"",this.core.skeleton.setCustomClass(t.className)),e.loading!=null&&(t.loading=e.loading),C(e,"error")&&(t.error=e.error??null)}updateRowModelOptions(e,t){this.updateSelectionAndColumns(e,t),this.updateHierarchyOptions(e,t);let r=this.core.options;e.autoCheckedChildren!=null&&(r.autoCheckedChildren=e.autoCheckedChildren),e.defaultExpandAll!=null&&e.defaultExpandAll!==r.defaultExpandAll&&(r.defaultExpandAll=e.defaultExpandAll,t.needsRowRebuild=!0),C(e,"advancedFilterModel")&&(t.filterChanged=this.core.rowModel.setAdvancedFilterModel(e.advancedFilterModel)||t.filterChanged),e.applyRowDrag!=null&&(r.applyRowDrag=e.applyRowDrag),e.suppressWarnings!=null&&(r.suppressWarnings=e.suppressWarnings)}updateSelectionAndColumns(e,t){let r=this.core.options;if(e.rowSelection!=null&&e.rowSelection!==r.rowSelection&&(r.rowSelection=e.rowSelection,e.rowSelection==="none"&&this.deselectAll(),t.needsHeaderRebuild=!0,t.needsPoolRebuild=!0,this.core.refreshAriaState()),e.quickFilterText!==void 0&&this.setQuickFilter(e.quickFilterText),e.defaultColDef!==void 0&&e.defaultColDef!==r.defaultColDef&&(r.defaultColDef={...qt,...e.defaultColDef},t.needsColumnRebuild=!0),C(e,"columnTypes")&&e.columnTypes!==r.columnTypes&&(r.columnTypes=e.columnTypes??{},t.needsColumnRebuild=!0),C(e,"getRowId")&&e.getRowId!==r.getRowId&&(r.getRowId=e.getRowId,t.needsRowRebuild=!0),C(e,"rowKey")){if(r.rowKey=e.rowKey,!C(e,"getRowId")){let o=e.rowKey;r.getRowId=o?({data:i})=>$t(o,i):void 0}t.needsRowRebuild=!0}}updateHierarchyOptions(e,t){let r=this.core.options;e.masterDetail!=null&&e.masterDetail!==r.masterDetail&&(r.masterDetail=e.masterDetail,t.needsColumnRebuild=!0,t.needsRowRebuild=!0),e.detailToggleColumn!=null&&e.detailToggleColumn!==r.detailToggleColumn&&(r.detailToggleColumn=e.detailToggleColumn,t.needsColumnRebuild=!0),e.treeData!=null&&e.treeData!==r.treeData&&(r.treeData=e.treeData,t.needsRowRebuild=!0,t.needsColumnRebuild=!0,this.core.refreshAriaState()),e.childrenKey!=null&&e.childrenKey!==r.childrenKey&&(r.childrenKey=e.childrenKey,t.needsRowRebuild=!0),C(e,"isTreeRowExpandable")&&(r.isTreeRowExpandable=e.isTreeRowExpandable,t.needsCellRefresh=!0),C(e,"loadTreeChildren")&&(r.loadTreeChildren=e.loadTreeChildren,t.needsCellRefresh=!0)}updateExtensionOptions(e,t){let r=this.core.options;C(e,"aggFuncs")&&(r.aggFuncs=e.aggFuncs,t.needsRowRebuild=!0),C(e,"components")&&(r.components=e.components,t.needsCellRefresh=!0),C(e,"actionPolicy")&&(r.actionPolicy=e.actionPolicy,t.needsCellRefresh=!0),C(e,"features")&&(r.features=Array.isArray(e.features)?e.features:[],t.needsFeatureReload=!0),this.updateProcessorOptions(e,t),this.updatePersistenceOptions(e,t)}updateProcessorOptions(e,t){let r=this.core.options;C(e,"dataProcessor")&&e.dataProcessor!==r.dataProcessor&&(r.dataProcessor?.destroy?.(),r.dataProcessor=e.dataProcessor,t.needsRowRebuild=!0);let o=x(e.dataProcessorMinRows,1,!0);o!==void 0&&o!==r.dataProcessorMinRows&&(r.dataProcessorMinRows=o,t.needsRowRebuild=!0)}updatePersistenceOptions(e,t){let r=this.core.options,o=!1;C(e,"columnStateStore")&&(r.columnStateStore=e.columnStateStore,t.needsStateLoad=!0),C(e,"columnStateKey")&&(r.columnStateKey=e.columnStateKey??null,t.needsStateLoad=!0),C(e,"stateStore")&&(r.stateStore=e.stateStore,o=!0),C(e,"stateKey")&&(r.stateKey=e.stateKey??null,o=!0);let i=x(e.stateSaveDebounceMs,0,!0);i!==void 0&&(r.stateSaveDebounceMs=i),o&&this.core.loadPersistedGridState()}updateDatasourceOptions(e,t){this.updateDatasourceTuning(e,t),this.updateDatasourceMode(e,t),this.updateDatasourceReference(e,t),this.updatePinnedRows(e)}updateDatasourceTuning(e,t){let r=this.core.options,o=x(e.blockSize,1,!0),i=x(e.infiniteBufferRows,0,!0),s=x(e.maxBlocksInCache,1,!0),a=x(e.datasourceMaxConcurrentRequests,1,!0),l=x(e.blockPrefetch,0,!0),d=x(e.datasourceRetryCount,0,!0),c=x(e.datasourceRetryDelay,0,!0),u=x(e.datasourceRetryJitter,0);o!==void 0&&o!==r.blockSize&&(r.blockSize=o,t.datasourceChanged=t.datasourceChanged||r.datasourceMode==="block"),i!==void 0&&(r.infiniteBufferRows=i),s!==void 0&&s!==r.maxBlocksInCache&&(r.maxBlocksInCache=s,t.datasourceChanged=t.datasourceChanged||r.datasourceMode==="block"),a!==void 0&&a!==r.datasourceMaxConcurrentRequests&&(r.datasourceMaxConcurrentRequests=a,t.datasourceChanged=t.datasourceChanged||r.datasourceMode==="block"),l!==void 0&&(r.blockPrefetch=l),d!==void 0&&(r.datasourceRetryCount=d),c!==void 0&&(r.datasourceRetryDelay=c),u!==void 0&&(r.datasourceRetryJitter=Math.min(1,u))}updateDatasourceMode(e,t){let r=this.core.options;if(C(e,"datasourceMode")){let o=e.datasourceMode==="block"?"block":"sequential";o!==r.datasourceMode&&(r.datasourceMode=o,t.datasourceChanged=!0)}if(C(e,"datasourceRowCount")){let o=e.datasourceRowCount==null?null:x(e.datasourceRowCount,0,!0)??null;o!==r.datasourceRowCount&&(r.datasourceRowCount=o,t.datasourceChanged=!0)}}updateDatasourceReference(e,t){let r=this.core.options;C(e,"datasource")&&e.datasource!==r.datasource&&(r.datasource=e.datasource,r.paginationEnabled=e.datasource==null&&r.paginationEnabled,t.datasourceChanged=!0,this.core.paginationBar.rebuild()),C(e,"detailRowRenderer")&&(r.detailRowRenderer=e.detailRowRenderer,t.needsCellRefresh=!0),C(e,"isRowExpandable")&&(r.isRowExpandable=e.isRowExpandable,t.needsCellRefresh=!0)}updatePinnedRows(e){let t=this.core.options;e.pinnedTopRowData!==void 0&&(t.pinnedTopRowData=e.pinnedTopRowData??[],this.core.pinnedRowsRenderer.setTopData(t.pinnedTopRowData)),e.pinnedBottomRowData!==void 0&&(t.pinnedBottomRowData=e.pinnedBottomRowData??[],this.core.pinnedRowsRenderer.setBottomData(t.pinnedBottomRowData))}applyOptionUpdateEffects(e,t,r){let o=this.core.options;t.needsColumnRebuild&&(this.core.columnModel.setColumnDefs(o.columnDefs),this.core.onColumnsStructureChanged(),t.needsHeaderRebuild=!1,t.needsPoolRebuild=!1),t.needsStateLoad&&(this.core.loadPersistedColumnState(),this.core.onColumnsStructureChanged()),t.needsFeatureReload&&this.core.setFeatures(o.features),this.applyRowUpdateEffect(t),t.filterChanged&&(this.emitFilterChanged(),!t.datasourceChanged&&!t.needsRowRebuild&&(this.core.rowModel.isInfinite?this.core.rowModel.onServerParamsChanged():(this.core.rowModel.refreshPipeline(),this.core.requestUpdate({data:!0})))),t.needsRelayout&&this.core.skeleton.updateHeights(o.rowHeight,o.headerHeight),e.columnMenu!=null&&e.columnMenu!==r&&(t.needsHeaderRebuild=!0),t.stateToApply&&this.applyState(t.stateToApply),this.core.requestUpdate({layout:t.needsRelayout,header:t.needsHeaderRebuild,pool:t.needsPoolRebuild,cells:t.needsCellRefresh&&!t.needsPoolRebuild?!0:void 0,summary:t.needsSummaryRefresh,overlays:!0})}applyRowUpdateEffect(e){if(e.datasourceChanged){this.core.rowModel.onDatasourceChanged();return}if(e.needsRowRebuild){if(this.core.rowModel.isInfinite){this.core.rowModel.onServerParamsChanged();return}this.core.rowModel.setRowData(this.core.options.rowData),this.core.requestUpdate({data:!0})}}getDataAsCsv(e={}){let t=this.core.columnModel.getOrderedVisible().filter(o=>!o.hasCheckbox&&!o.isDetailToggle);if(e.headersOnly)return Jt({getHeaderLabels:()=>t.map(o=>o.colDef.headerName??o.colDef.field??o.id),getRowValues:()=>[]},e);let r=e.onlySelected?this.core.selectionService.getSelectedNodes().slice().sort((o,i)=>o.rowIndex-i.rowIndex):e.onlyAllDisplayed?this.core.rowModel.getDisplayedRows().filter(o=>!o.isDetail&&!o.isGroup):this.core.rowModel.getPipelineRows().filter(o=>!o.isDetail&&!o.isGroup);return Jt({getHeaderLabels:()=>t.map(o=>o.colDef.headerName??o.colDef.field??o.id),getRowValues:()=>r.map(o=>t.map(i=>{let s=this.core.getCellValue(o,i);return typeof s=="number"?s:N(this.core,o,i)}))},e)}getState(){return{version:2,columns:this.getColumnState(),sortModel:this.getSortModel(),filterModel:this.getFilterModel(),advancedFilterModel:this.getAdvancedFilterModel(),quickFilterText:this.getQuickFilter(),pagination:{enabled:this.paginationEnabled(),page:this.getPage(),pageSize:this.getPageSize()},selectedRowIds:this.getSelectedIds(),expandedRowIds:this.core.rowModel.getExpandedRowIds(),expandedGroupIds:this.core.rowModel.getExpandedGroupIds()}}applyState(e,t={}){if(this.core.isDestroyed())return;let r=O(e);if(!r)return;let o=["columns","sort","filter","pagination","selection","expansion"],i=new Set(t.sections??o);this.core.editingService.stop(!0),this.restoreStateSections(r,i),this.refreshAfterStateRestore(r,i),t.emitEvents!==!1&&this.emitStateEvents(i)}restoreStateSections(e,t){t.has("columns")&&this.core.columnModel.applyColumnState(e.columns??[]),t.has("sort")&&this.core.columnModel.applySortModel(e.sortModel??[]),t.has("filter")&&(this.core.rowModel.setFilterModel(e.filterModel??{}),this.core.rowModel.setAdvancedFilterModel(e.advancedFilterModel),this.core.rowModel.setQuickFilter(e.quickFilterText)),t.has("expansion")&&this.core.rowModel.restoreExpansion(e.expandedRowIds??[],e.expandedGroupIds??[]),t.has("pagination")&&e.pagination&&(this.core.options.paginationEnabled=e.pagination.enabled&&!this.core.rowModel.isInfinite,this.core.rowModel.restorePagination(e.pagination.page,e.pagination.pageSize),this.core.paginationBar.rebuild())}refreshAfterStateRestore(e,t){t.has("columns")&&this.core.onColumnsStructureChanged(),this.core.rowModel.isInfinite?this.core.rowModel.onServerParamsChanged():(this.core.rowModel.refreshPipeline(),this.core.requestUpdate({data:!0})),this.core.headerRenderer.refreshSortIndicators(),this.core.headerRenderer.refreshFilterIcons(),t.has("selection")&&this.core.selectionService.restoreSelection(e.selectedRowIds??[]),this.core.persistColumnState()}emitStateEvents(e){e.has("sort")&&this.core.emit("sortChanged",{sortModel:this.getSortModel()}),e.has("filter")&&this.emitFilterChanged(),e.has("pagination")&&this.core.emit("paginationChanged",{page:this.getPage(),pageSize:this.getPageSize(),pageCount:this.getPageCount(),total:this.getTotalRowCount()})}getDiagnostics(){return this.core.getDiagnostics()}getPerformanceSnapshot(){return this.core.performanceMonitor.snapshot()}resetPerformanceMetrics(){this.core.performanceMonitor.reset()}setOverlay(e){if(e==="loading")this.core.skeleton.showOverlay("loading",this.core.options.overlayLoadingTemplate,this.core.options.allowUnsafeOverlayHtml);else if(e==="noRows"){let t=this.core.options.overlayNoRowsTemplate||this.core.buildDefaultEmptyState();this.core.skeleton.showOverlay("noRows",t,this.core.options.allowUnsafeOverlayHtml)}else if(e==="error"){let t=this.core.options.overlayErrorTemplate||this.core.buildDefaultErrorState();this.core.skeleton.showOverlay("error",t,this.core.options.allowUnsafeOverlayHtml)}else this.core.skeleton.hideOverlay()}hideOverlays(){this.core.skeleton.hideOverlay()}addEventListener(e,t){return this.core.eventBus.on(e,t)}removeEventListener(e,t){this.core.eventBus.off(e,t)}destroy(){this.asyncTransactionTimer!=null&&clearTimeout(this.asyncTransactionTimer),this.asyncTransactionTimer=null;let e=this.asyncTransactions;this.asyncTransactions=[];for(let t of e)t.signal&&t.onAbort&&t.signal.removeEventListener("abort",t.onAbort),t.aborted||t.resolve();this.core.destroy()}isDestroyed(){return this.core.isDestroyed()}};var wi=["compact","normal","large"],wt=class{constructor(e){this.core=e;this.headerRows={left:[],center:[],right:[]};this.headerRowContainers={};this.currentOverlay=null;this.currentOverlayContent=null;this.currentOverlayAllowsHtml=!1;this.overlayCleanup=null;this.customClassTokens=[];this.resizeObserver=null;this.headerDepth=1;this.themeUnsub=null}init(e,t){let r=["mach-root",`mach-size--${t.size}`];t.stripedRows&&r.push("mach-striped"),t.showCellBorders&&r.push("mach-cell-borders"),t.domLayout==="autoHeight"&&r.push("mach-dom-layout--auto-height"),this.root=g("div",r.join(" ")),this.setCustomClass(t.className),this.root.style.setProperty("--mach-row-h",`${t.rowHeight}px`),this.root.style.setProperty("--mach-header-h",`${t.headerHeight}px`),this.root.setAttribute("role","grid"),this.root.tabIndex=0,this.applyAriaLabels(t),this.headerEl=g("div","mach-header"),this.headerEl.setAttribute("role","rowgroup"),this.headerRows={left:[],center:[],right:[]},this.headerPanes={},this.headerRowContainers={};for(let o of["left","center","right"]){let i=g("div",`mach-pane mach-pane--${o} mach-header-pane`),s=g("div","mach-header-rows");if(o==="center"){let a=g("div","mach-header-viewport");a.appendChild(s),i.appendChild(a)}else i.appendChild(s);this.headerEl.appendChild(i),this.headerPanes[o]=i,this.headerRowContainers[o]=s}this.setHeaderRowCount(1),this.bodyEl=g("div","mach-body"),this.pinnedTopEl=g("div","mach-pinned-rows mach-pinned-rows--top"),this.pinnedTopEl.style.display="none",this.pinnedBottomEl=g("div","mach-pinned-rows mach-pinned-rows--bottom"),this.pinnedBottomEl.style.display="none",this.bodyViewports={},this.rowContainers={},this.bodyPanes={};for(let o of["left","center","right"]){let i=g("div",`mach-pane mach-pane--${o} mach-body-pane`),s=g("div",`mach-body-viewport${o==="center"?" mach-body-viewport--scroll":""}`),a=g("div","mach-row-container");s.appendChild(a),i.appendChild(s),this.bodyEl.appendChild(i),this.bodyPanes[o]=i,this.bodyViewports[o]=s,this.rowContainers[o]=a}this.overlayWrapper=g("div","mach-overlay"),this.overlayWrapper.style.display="none",this.overlayWrapper.setAttribute("role","status"),this.overlayWrapper.setAttribute("aria-live","polite"),this.overlayContent=g("div","mach-overlay-content"),this.overlayWrapper.appendChild(this.overlayContent),this.infiniteLoadingEl=g("div","mach-infinite-loading"),this.infiniteLoadingEl.style.display="none",this.infiniteLoadingEl.appendChild(g("div","mach-spinner")),this.infiniteLoadingText=g("span"),this.infiniteLoadingEl.appendChild(this.infiniteLoadingText),this.root.append(this.headerEl,this.pinnedTopEl,this.bodyEl,this.pinnedBottomEl,this.overlayWrapper,this.infiniteLoadingEl),e.appendChild(this.root),typeof ResizeObserver<"u"&&(this.resizeObserver=new ResizeObserver(()=>this.core.relayout()),this.resizeObserver.observe(this.root)),this.applyTheme(t.theme)}applyAriaLabels(e){e.ariaLabelledBy?(this.root.setAttribute("aria-labelledby",e.ariaLabelledBy),this.root.removeAttribute("aria-label")):(this.root.removeAttribute("aria-labelledby"),this.root.setAttribute("aria-label",e.ariaLabel)),e.ariaDescribedBy?this.root.setAttribute("aria-describedby",e.ariaDescribedBy):this.root.removeAttribute("aria-describedby")}setHeaderRowCount(e){this.headerDepth=e;for(let t of["left","center","right"]){let r=this.headerRowContainers[t],o=this.headerRows[t];for(;o.length<e;){let i=g("div","mach-header-row");i.setAttribute("role","row"),i.setAttribute("aria-rowindex",String(o.length+1)),i.style.top=`${o.length*this.core.options.headerHeight}px`,i.style.height=`${this.core.options.headerHeight}px`,r.appendChild(i),o.push(i)}for(;o.length>e;)o.pop().remove()}this.applyHeaderHeight()}getHeaderRowCount(){return this.headerDepth}applyHeaderHeight(){this.headerEl.style.height=`${this.headerDepth*this.core.options.headerHeight}px`;for(let e of["left","center","right"])this.headerRows[e].forEach((r,o)=>{r.style.top=`${o*this.core.options.headerHeight}px`,r.style.height=`${this.core.options.headerHeight}px`})}setPaneWidths(e,t){this.applyPaneWidth("left",e),this.applyPaneWidth("right",t)}applyPaneWidth(e,t){let r=this.headerPanes[e],o=this.bodyPanes[e];r.style.width=`${t}px`,o.style.width=`${t}px`;let i=t<=0;r.classList.toggle("mach-pane--hidden",i),o.classList.toggle("mach-pane--hidden",i)}measureViewportWidth(){return this.bodyViewports.center.clientWidth}updateHeights(e,t){this.root.style.setProperty("--mach-row-h",`${e}px`),this.root.style.setProperty("--mach-header-h",`${t}px`),this.applyHeaderHeight()}applySize(e){for(let t of wi)this.root.classList.toggle(`mach-size--${t}`,t===e)}applyTheme(e){if(!this.root)return;this.themeUnsub?.(),this.themeUnsub=null;let t=e==="dark"||e==="auto"&&this.systemPrefersDark();if(this.root.classList.toggle("mach-theme-dark",t),e==="auto"&&typeof window<"u"&&typeof window.matchMedia=="function"){let r=window.matchMedia("(prefers-color-scheme: dark)"),o=()=>this.root.classList.toggle("mach-theme-dark",r.matches);typeof r.addEventListener=="function"?(r.addEventListener("change",o),this.themeUnsub=()=>r.removeEventListener("change",o)):typeof r.addListener=="function"&&(r.addListener(o),this.themeUnsub=()=>r.removeListener(o))}}systemPrefersDark(){return typeof window>"u"||typeof window.matchMedia!="function"?!1:window.matchMedia("(prefers-color-scheme: dark)").matches}setStriped(e){this.root.classList.toggle("mach-striped",e)}setCellBorders(e){this.root.classList.toggle("mach-cell-borders",e)}applyDomLayout(e){this.root.classList.toggle("mach-dom-layout--auto-height",e==="autoHeight")}setCustomClass(e){for(let t of this.customClassTokens)this.root.classList.remove(t);this.customClassTokens=[];for(let t of String(e??"").split(/\s+/).filter(Boolean))this.root.classList.contains(t)||(this.root.classList.add(t),this.customClassTokens.push(t))}showOverlay(e,t,r=!1){if(this.currentOverlay===e&&this.currentOverlayContent===t&&this.currentOverlayAllowsHtml===r)return;this.currentOverlay=e,this.currentOverlayContent=t,this.currentOverlayAllowsHtml=r,this.cleanupOverlayContent(),this.overlayContent.replaceChildren();let o;try{o=typeof t=="function"?t():t}catch(i){this.core.reportError(i,"overlayTemplate"),o=""}if(typeof o=="object"&&o!=null&&"el"in o)this.overlayContent.appendChild(o.el),this.overlayCleanup=o.destroy??null;else if(o instanceof HTMLElement)this.overlayContent.appendChild(o);else if(o&&r)this.overlayContent.innerHTML=o;else if(o)this.overlayContent.textContent=o;else if(e==="loading"){let i=g("div","mach-spinner");i.setAttribute("aria-label","loading"),this.overlayContent.appendChild(i)}this.overlayWrapper.style.display="",this.applyOverlayRole(e),this.root.setAttribute("aria-busy",e==="loading"?"true":"false")}hideOverlay(){this.currentOverlay&&(this.currentOverlay=null,this.currentOverlayContent=null,this.currentOverlayAllowsHtml=!1,this.overlayWrapper.style.display="none",this.cleanupOverlayContent(),this.overlayContent.replaceChildren(),this.root.setAttribute("aria-busy","false"))}applyOverlayRole(e){this.overlayWrapper.setAttribute("role",e==="error"?"alert":"status")}setInfiniteLoading(e,t){this.infiniteLoadingEl&&(e?(this.infiniteLoadingText.textContent!==t&&(this.infiniteLoadingText.textContent=t),this.infiniteLoadingEl.style.display="",this.root.setAttribute("aria-busy","true")):(this.infiniteLoadingEl.style.display="none",this.currentOverlay!=="loading"&&this.root.setAttribute("aria-busy","false")))}destroy(){this.themeUnsub?.(),this.themeUnsub=null,this.resizeObserver?.disconnect(),this.resizeObserver=null,this.cleanupOverlayContent(),this.root.remove()}cleanupOverlayContent(){if(!this.overlayCleanup)return;let e=this.overlayCleanup;this.overlayCleanup=null;try{e()}catch(t){this.core.reportError(t,"overlayTemplate.destroy")}}};var Ci={contains:"\u5305\u542B",notContains:"\u4E0D\u5305\u542B",equals:"=",notEquals:"\u2260",startsWith:"\u5F00\u5934",endsWith:"\u7ED3\u5C3E",blank:"\u4E3A\u7A7A",notBlank:"\u975E\u7A7A",lessThan:"<",lessThanOrEqual:"\u2264",greaterThan:">",greaterThanOrEqual:"\u2265",inRange:"\u8303\u56F4"};function Ct(n){if(!n)return"";if(n.type==="set")return`\u5DF2\u9009 ${n.values.length} \u9879`;let e=[];for(let r of n.conditions){let o=Ci[r.match]??r.match,i=r.value,s="value2"in r?r.value2:void 0;r.match==="blank"||r.match==="notBlank"?e.push(o):r.match==="inRange"&&i!=null?e.push(`${o} ${i}~${s??i}`):i!=null&&String(i)!==""?e.push(`${o} ${i}`):e.push(o)}let t=n.operator==="or"?" \u6216 ":" \u4E14 ";return e.join(t)}function ho(n,e){let t=0,r=n.length;for(;t<r;){let o=t+r>>1;n[o]<=e?t=o+1:r=o}return t}function bi(n,e){let t=0,r=n.length;for(;t<r;){let o=t+r>>1;n[o]<e?t=o+1:r=o}return t}var de=class{constructor(){this.offsets=new Float64Array(1);this.signature=""}update(e){let t=e.map(r=>`${r.id}:${r.currentWidth}`).join("|");if(t===this.signature)return!1;this.signature=t,this.offsets=new Float64Array(e.length+1);for(let r=0;r<e.length;r++)this.offsets[r+1]=this.offsets[r]+e[r].currentWidth;return!0}totalWidth(){return this.offsets[this.offsets.length-1]??0}offsetAt(e){let t=Math.max(0,Math.min(Math.trunc(e),this.offsets.length-1));return this.offsets[t]??0}indexAt(e){let t=Math.max(0,this.offsets.length-1);return t===0?-1:Math.min(t-1,Math.max(0,ho(this.offsets,Math.max(0,e))-1))}visibleRange(e,t,r=2){let o=Math.max(0,this.offsets.length-1);if(o===0||t<=0||this.totalWidth()<=t)return{first:0,lastExcl:o};let i=Math.max(0,e),s=i+t,a=Math.max(0,ho(this.offsets,i)-1),l=Math.min(o,bi(this.offsets,s));return{first:Math.max(0,a-r),lastExcl:Math.min(o,l+r)}}};var bt=class{constructor(e){this.core=e;this.leafCells=[];this.groupCells=[];this.paneTrees={left:[],center:[],right:[]};this.columnViewport=new de;this.centerFirst=0;this.centerLastExcl=Number.MAX_SAFE_INTEGER}build(){this.updateColumnWindowState(),this.core.resizeService.cancelResize();for(let l of this.leafCells){let d=rr(l.el);if(d)try{d()}catch(c){this.core.reportError(c,"headerComponent.destroy",{colId:l.column.id})}}this.leafCells=[],this.groupCells=[];let e=this.core.columnModel.getHeaderDepth();this.core.skeleton.setHeaderRowCount(e);let t=l=>l.pinned==="left"?"left":l.pinned==="right"?"right":"center",r=(l,d,c)=>{let u=[];for(let h of l)if(h instanceof j){let p=r(h.children,d+1,c);p.length>0&&u.push({group:h,level:d,children:p})}else!h.hide&&t(h)===c&&u.push({column:h,level:d,children:[]});return u},o=this.core.columnModel.getRootChildren(),i=this.core.columnModel.getPaneColumns("center"),s=new Set(i.slice(this.centerFirst,this.centerLastExcl));for(let l of["left","center","right"]){let d=r(o,0,l);this.paneTrees[l]=l==="center"?this.filterTreeColumns(d,s):d}let a=this.core.options.headerHeight;for(let l of["left","center","right"]){let d=this.core.skeleton.headerRows[l];for(let u of d)u.textContent="";let c=u=>{let h=d[Math.min(u.level,d.length-1)];if(u.column){let p=this.createLeafCell(u.column,e-u.level,a);h.appendChild(p.el),this.leafCells.push(p)}else if(u.group){let p=this.createGroupCell(u.group);h.appendChild(p),this.groupCells.push({group:u.group,el:p})}for(let p of u.children)c(p)};for(let u of this.paneTrees[l])c(u)}this.core.options.suppressHeaderFocus||this.leafCells.forEach((l,d)=>{l.el.tabIndex=d===0?0:-1}),this.applyLayout(),this.refreshSortIndicators(),this.refreshFilterIcons(),this.refreshSelectAllCheckbox()}updateColumnWindow(){let e=this.centerFirst,t=this.centerLastExcl;this.updateColumnWindowState(),(e!==this.centerFirst||t!==this.centerLastExcl)&&this.build()}updateColumnWindowState(){let e=this.core.columnModel.getPaneColumns("center"),t=this.core.skeleton.bodyViewports.center;this.columnViewport.update(e);let r=e.length>20?this.columnViewport.visibleRange(t.scrollLeft,t.clientWidth,2):{first:0,lastExcl:e.length};this.centerFirst=r.first,this.centerLastExcl=r.lastExcl}filterTreeColumns(e,t){let r=[];for(let o of e){if(o.column){t.has(o.column)&&r.push(o);continue}let i=this.filterTreeColumns(o.children,t);i.length>0&&r.push({...o,children:i})}return r}createLeafCell(e,t,r){let o=e.colDef,i=g("div","mach-header-cell mach-header-cell--leaf");i.dataset.colId=e.id,i.setAttribute("role","columnheader"),i.style.height=`${t*r}px`,typeof o.headerClass=="string"?i.classList.add(o.headerClass):Array.isArray(o.headerClass)&&i.classList.add(...o.headerClass),o.headerTooltip&&i.setAttribute("title",o.headerTooltip);let s=o.headerAlign??o.align;s==="center"?i.classList.add("mach-header-cell--center"):s==="right"&&i.classList.add("mach-header-cell--right"),this.core.options.suppressHeaderFocus||(i.tabIndex=-1,i.addEventListener("mousedown",()=>this.focusHeaderCell(e)),i.addEventListener("keydown",h=>this.onHeaderKeyDown(h,e)));let a;e.hasCheckbox&&this.core.options.rowSelection==="multiple"&&(a=document.createElement("input"),a.type="checkbox",a.className="mach-select-all",a.setAttribute("aria-label","select all rows"),a.addEventListener("click",h=>h.stopPropagation()),a.addEventListener("change",()=>{a.checked?this.core.selectionService.selectAll(!0):this.core.selectionService.deselectAll()}),i.appendChild(a));let l=o.headerComponent;if(l){let h;try{h=l({colDef:o,column:e,api:this.core.getApi()})}catch(p){this.core.reportError(p,"headerComponent",{colId:e.id}),h=null}if(typeof h=="string"){let p=g("span","mach-header-label");p.textContent=h,i.appendChild(p)}else if(h instanceof HTMLElement){let p=g("span","mach-header-label mach-header-label--custom");p.appendChild(h),i.appendChild(p)}else if(h&&typeof h=="object"&&h.el instanceof HTMLElement){let p=g("span","mach-header-label mach-header-label--custom");p.appendChild(h.el),i.appendChild(p),qr(i,h.destroy)}else{let p=g("span","mach-header-label");p.textContent=o.headerName??o.field??e.id,i.appendChild(p)}}else{let h=g("span","mach-header-label");h.textContent=o.headerName??o.field??e.id,i.appendChild(h)}let d=g("span","mach-sort-indicator");i.appendChild(d);let c,u;if(e.filterable&&(c=document.createElement("button"),c.type="button",c.className="mach-filter-btn",c.setAttribute("aria-label",`filter ${e.id}`),c.innerHTML=Hr,c.addEventListener("click",h=>{h.stopPropagation(),this.core.filterPopup.toggle(e,c)}),i.appendChild(c),u=g("span","mach-filter-tag"),i.appendChild(u)),this.core.options.columnMenu){let h=document.createElement("button");h.type="button",h.className="mach-menu-btn",h.setAttribute("aria-label","column menu"),h.textContent="\u22EF",h.addEventListener("click",p=>{p.stopPropagation(),this.core.columnMenu.toggle(e,h)}),i.appendChild(h)}if(this.canResizeColumn(e)){let h=g("div","mach-header-resize");h.setAttribute("aria-hidden","true"),h.addEventListener("pointerdown",p=>{p.button===0&&(p.preventDefault(),p.stopPropagation(),this.core.resizeService.startResize(p,e))}),h.addEventListener("dblclick",p=>{p.stopPropagation(),this.core.getApi().autoSizeColumn(e.id)}),h.addEventListener("click",p=>p.stopPropagation()),i.appendChild(h)}return i.addEventListener("click",h=>{this.core.columnDragService.didDrag()||h.target.closest(".mach-header-resize, .mach-filter-btn, .mach-select-all")||e.sortable&&this.core.cycleSort(e,h.shiftKey)}),i.addEventListener("pointerdown",h=>{h.button!==0||h.target.closest(".mach-header-resize, .mach-filter-btn, .mach-select-all")||this.core.columnDragService.onPointerDown(h,e)}),{column:e,el:i,sortEl:d,filterBtn:c,filterTagEl:u,selectAllEl:a}}createGroupCell(e){let t=g("div","mach-header-cell mach-header-cell--group");e.groupId&&(t.dataset.groupId=e.groupId),t.setAttribute("role","columnheader");let r=e.def;typeof r.headerClass=="string"?t.classList.add(r.headerClass):Array.isArray(r.headerClass)&&t.classList.add(...r.headerClass);let o=g("span","mach-header-label mach-header-label--group");return o.textContent=e.headerName,t.appendChild(o),t}applyLayout(){let e={left:0,center:0,right:0};for(let t of["left","center","right"]){let r=this.core.skeleton.headerRows[t],o=0,i=new Map;for(let a of this.core.columnModel.getPaneColumns(t))i.set(a.id,o),o+=a.currentWidth;let s=this.core.options.headerHeight;for(let a of this.leafCells){if(this.core.columnModel.paneOf(a.column)!==t)continue;let l=i.get(a.column.id)??0;a.el.style.width=`${a.column.currentWidth}px`,a.el.style.left=`${l}px`,a.el.setAttribute("aria-colindex",String(this.core.columnModel.getFlatIndex(a.column.id)+1))}for(let a of this.groupCells){let l=this.visiblePaneLeaves(a.group,t);if(l.length===0)continue;let d=i.get(l[0].id)??0,c=0;for(let u of l)c+=u.currentWidth;a.el.style.left=`${d}px`,a.el.style.width=`${c}px`,a.el.style.height=`${s}px`,a.el.setAttribute("aria-colspan",String(l.length))}for(let a of r)a.style.width=`${o}px`;e[t]=o}this.core.skeleton.setPaneWidths(e.left,e.right)}visiblePaneLeaves(e,t){return e.getLeafColumns().filter(r=>!r.hide&&this.core.columnModel.paneOf(r)===t)}onHeaderKeyDown(e,t){if(this.core.isDestroyed())return;let r=o=>{let i=Math.max(t.colDef.minWidth??40,t.currentWidth+o);this.core.columnModel.setColumnWidth(t,i),this.core.relayoutColumns(),this.core.commitColumnWidths([t]),e.preventDefault()};switch(!0){case(e.key==="Enter"||e.key===" "):if(e.target.closest(".mach-header-resize, .mach-filter-btn, .mach-select-all"))return;e.preventDefault(),t.sortable&&this.core.cycleSort(t,e.shiftKey);return;case(e.altKey&&(e.key==="ArrowRight"||e.key==="ArrowLeft")):if(!this.canResizeColumn(t))return;r(e.key==="ArrowRight"?24:-24);return;case(e.ctrlKey&&(e.key==="ArrowLeft"||e.key==="ArrowRight")):if(!t.movable)return;e.preventDefault();{let i=this.core.columnModel.paneOf(t),s=this.core.columnModel.getPaneColumns(i),a=s.indexOf(t),l=e.key==="ArrowRight"?Math.min(s.length-1,a+1):Math.max(0,a-1);l!==a&&this.core.moveColumn(t.id,l)}return;case(!e.altKey&&!e.ctrlKey&&!e.metaKey&&(e.key==="ArrowLeft"||e.key==="ArrowRight")):e.preventDefault();{let i=this.core.columnModel.getOrderedVisible(),s=i.indexOf(t),a=e.key==="ArrowRight"?Math.min(i.length-1,s+1):Math.max(0,s-1);s>=0&&this.focusHeaderCell(i[a])}return;case(e.key==="Home"||e.key==="End"):e.preventDefault();let o=this.core.columnModel.getOrderedVisible();o.length>0&&this.focusHeaderCell(e.key==="Home"?o[0]:o[o.length-1]);return}}focusHeaderCell(e){let t=this.leafCells.find(r=>r.column.id===e.id);if(!t&&!e.pinned&&(this.scrollColumnIntoView(e),this.updateColumnWindow(),t=this.leafCells.find(r=>r.column.id===e.id)),!!t){for(let r of this.leafCells)r.el.tabIndex=r===t?0:-1;t.el.focus({preventScroll:!0})}}scrollColumnIntoView(e){let t=this.core.columnModel.getPaneColumns("center"),r=t.indexOf(e);if(r<0)return;let o=this.core.skeleton.bodyViewports.center;this.columnViewport.update(t);let i=this.columnViewport.offsetAt(r),s=i+e.currentWidth;i<o.scrollLeft?o.scrollLeft=i:s>o.scrollLeft+o.clientWidth&&(o.scrollLeft=s-o.clientWidth)}canResizeColumn(e){return this.core.options.enableColumnResize&&e.resizable}refreshSortIndicators(){let e=this.core.columnModel.getSortModel(),t=e.length>1;for(let r of this.leafCells){let o=e.findIndex(i=>i.colId===r.column.id);if(o>=0){let i=e[o].direction,s=t?`<span class="mach-sort-badge">${o+1}</span>`:"";r.sortEl.innerHTML=(i==="asc"?Br:Vr)+s,r.el.setAttribute("aria-sort",i==="asc"?"ascending":"descending"),r.el.classList.add("mach-header-cell--sorted")}else r.sortEl.innerHTML="",r.el.removeAttribute("aria-sort"),r.el.classList.remove("mach-header-cell--sorted")}}refreshFilterIcons(){let e=this.core.rowModel.getFilterModel();for(let t of this.leafCells){if(!t.filterBtn)continue;let r=e[t.column.id],o=r!=null;if(t.filterBtn.classList.toggle("mach-filter-btn--active",o),t.filterTagEl){let i=o?Ct(r):"";t.filterTagEl.style.display=i?"":"none",i&&(t.filterTagEl.textContent=i)}}}refreshSelectAllCheckbox(){for(let e of this.leafCells)e.selectAllEl&&(e.selectAllEl.checked=this.core.selectionService.isSelectAllActive(),e.selectAllEl.indeterminate=this.core.selectionService.isSelectAllIndeterminate())}destroy(){for(let e of this.leafCells){let t=rr(e.el);if(t)try{t()}catch(r){console.error("[mach-table] headerComponent destroy error",r)}}this.leafCells=[],this.groupCells=[]}};var Rt=class{constructor(){this.anchor=null;this.end=null;this.cache=!1;this.cacheRowCount=-1;this.cacheColCount=-1}getAnchor(){return this.anchor}getEnd(){return this.end}hasAnchor(){return this.anchor!=null}start(e,t){(!t||!this.anchor)&&(this.anchor={...e}),this.end={...e},this.invalidate()}ensureAnchor(e){return this.anchor?!0:e.colIdx<0?!1:(this.anchor={...e},this.invalidate(),!0)}setEnd(e){this.end={...e},this.invalidate()}clear(){this.anchor=null,this.end=null,this.invalidate()}invalidate(){this.cache=!1,this.cacheRowCount=-1,this.cacheColCount=-1}normalize(e,t){return this.cache!==!1&&this.cacheRowCount===e&&this.cacheColCount===t?this.cache:(this.cacheRowCount=e,this.cacheColCount=t,!this.anchor||!this.end||e<=0||t<=0?(this.cache=null,null):(this.cache={r1:Math.max(0,Math.min(this.anchor.row,this.end.row,e-1)),r2:Math.max(0,Math.min(Math.max(this.anchor.row,this.end.row),e-1)),c1:Math.max(0,Math.min(this.anchor.colIdx,this.end.colIdx,t-1)),c2:Math.max(0,Math.min(Math.max(this.anchor.colIdx,this.end.colIdx),t-1))},this.cache))}};var Tt=class{constructor(e,t,r){this.core=e;this.getRowTop=t;this.findRowAt=r;this.state=null;this.onMove=e=>{let t=this.state;if(!t)return;if(!t.active){if(Math.abs(e.clientY-t.startY)<5)return;t.active=!0,this.core.skeleton.root.classList.add("mach-root--row-dragging")}let r=this.core.skeleton.rowContainers.center,o=e.clientY-r.getBoundingClientRect().top,i=this.core.rowModel.getDisplayedRowCount(),s=Math.max(0,Math.min(this.findRowAt(o),i));for(;s<i;){let c=this.core.rowModel.getDisplayedRow(s);if(c&&!c.isDetail&&!c.isGroup)break;s++}let a=this.getRowTop(s),l=this.getRowTop(Math.min(i,s+1));s<i&&o>=a+(l-a)/2&&s++;let d=this.getRowTop(s);t.targetIndex=s,t.indicator.style.top=`${d}px`};this.onUp=()=>{let e=this.takeState();if(!e||!e.active||e.targetIndex<0)return;let t=e.node.rowIndex,r=Math.max(0,Math.min(e.targetIndex,this.core.rowModel.getDisplayedRowCount()));t===r||t===r-1||(this.core.emit("rowDragEnd",{rowNode:e.node,fromIndex:t,toIndex:r}),this.core.options.applyRowDrag&&!this.core.rowModel.isTree&&this.core.rowModel.reorderRowsByDisplayed(t,r>t?r-1:r))}}start(e,t){this.destroy();let r=g("div","mach-row-drop-indicator");this.core.skeleton.rowContainers.center.appendChild(r),this.state={node:t,startY:e.clientY,indicator:r,targetIndex:-1,active:!1},window.addEventListener("pointermove",this.onMove),window.addEventListener("pointerup",this.onUp),window.addEventListener("pointercancel",this.onUp)}takeState(){let e=this.state;return this.state=null,this.detachListeners(),e?.indicator.remove(),e}detachListeners(){window.removeEventListener("pointermove",this.onMove),window.removeEventListener("pointerup",this.onUp),window.removeEventListener("pointercancel",this.onUp),this.core.skeleton.root.classList.remove("mach-root--row-dragging")}destroy(){this.takeState()}};var St=class{constructor(){this.sizes=new Float64Array(0);this.tree=new Float64Array(1);this.indexes=new WeakMap;this.sizeCounts=new Map;this.minimum=0}reset(e,t){this.sizes=new Float64Array(e.length),this.tree=new Float64Array(e.length+1),this.indexes=new WeakMap,this.sizeCounts=new Map,this.minimum=0;for(let r=0;r<e.length;r++){this.indexes.set(e[r],r);let o=Math.max(1,t(e[r],r));this.sizes[r]=o,this.changeSizeCount(o,1),this.add(r,o)}}get length(){return this.sizes.length}indexOf(e){return this.indexes.get(e)??-1}sizeAt(e){return this.sizes[e]??0}update(e,t){if(e<0||e>=this.sizes.length)return!1;let r=Math.max(1,t),o=r-this.sizes[e];return Math.abs(o)<.01?!1:(this.changeSizeCount(this.sizes[e],-1),this.sizes[e]=r,this.changeSizeCount(r,1),this.add(e,o),!0)}offsetAt(e){let t=Math.max(0,Math.min(Math.trunc(e),this.sizes.length)),r=0;for(;t>0;)r+=this.tree[t],t-=t&-t;return r}totalSize(){return this.offsetAt(this.sizes.length)}minimumSize(){return this.minimum}findIndex(e){if(this.sizes.length===0)return 0;let t=Math.max(0,e),r=0,o=0,i=1;for(;i<<1<=this.sizes.length;)i<<=1;for(;i>0;){let s=r+i;s<=this.sizes.length&&o+this.tree[s]<=t&&(r=s,o+=this.tree[s]),i>>=1}return Math.min(r,this.sizes.length-1)}add(e,t){for(let r=e+1;r<this.tree.length;r+=r&-r)this.tree[r]+=t}changeSizeCount(e,t){let r=(this.sizeCounts.get(e)??0)+t;if(r<=0?this.sizeCounts.delete(e):this.sizeCounts.set(e,r),this.sizeCounts.size===0)this.minimum=0;else if(t>0&&(this.minimum===0||e<this.minimum))this.minimum=e;else if(t<0&&e===this.minimum&&!this.sizeCounts.has(e)){let o=Number.POSITIVE_INFINITY;for(let i of this.sizeCounts.keys())o=Math.min(o,i);this.minimum=Number.isFinite(o)?o:0}}};var k=["left","center","right"],Dt=class{constructor(e){this.core=e;this.pool=[];this.poolSize=0;this.first=0;this.lastExcl=-1;this.rafId=0;this.hoverIndex=-1;this.rowSizes=new St;this.columnViewport=new de;this.rangeSelection=new Rt;this.rangeDragging=!1;this.colFirst=0;this.colLastExcl=Number.MAX_SAFE_INTEGER;this.focusedCell=null;this.onScroll=()=>{this.rafId||(this.rafId=requestAnimationFrame(()=>{this.rafId=0,this.syncScroll()}))};this.lastMinRowHeight=0;this.rowHeightCache=new WeakMap;this.dirtyHeightNodes=new Set;this.rowLayoutSignature="";this.pendingFlash=[];this.measureCanvas=null;this.fillHandleEl=null;this.fillDrag=null;this.fillFromPointer=!1;this.fillDragIndicator=null;this.onFillMove=e=>{let t=this.fillDrag;if(!t)return;let r=e;if(typeof r.clientX!="number")return;if(!t.active){let s=Math.abs(r.clientX-t.startX),a=Math.abs(r.clientY-t.startY);if(s<4&&a<4)return;t.active=!0,t.axis=s>=a?"h":"v",this.core.skeleton.root.classList.add("mach-root--filling")}if(t.axis==="v"){let s=this.fillTargetRow(r),a=this.rangeSelection.getEnd();if(a&&a.row!==s){let l=this.normalizedRange();this.rangeSelection.setEnd({row:s,colIdx:a.colIdx}),this.refreshRowRange(l,this.normalizedRange()),this.core.emit("rangeSelectionChanged",{range:this.getRangeSelection()})}return}let o=Math.max(t.c2+1,this.fillTargetCol(r)),i=this.rangeSelection.getEnd();if(i&&i.colIdx!==o){let s=this.normalizedRange();this.rangeSelection.setEnd({row:i.row,colIdx:o}),this.refreshRowRange(s,this.normalizedRange()),this.updateFillHandle(),this.core.emit("rangeSelectionChanged",{range:this.getRangeSelection()})}};this.onFillUp=e=>{let t=this.fillDrag;if(!t)return;let r=e,o=()=>{this.cancelFillDrag()};if(!t.active){o();return}if(t.axis==="h"){let s=typeof r.clientX=="number"?Math.max(t.c2+1,this.fillTargetCol(r)):t.c2+1;if(o(),s>t.c2)this.fillHorizontal(t.r1,t.r2,t.c1,t.c2,s),this.updateFillHandle();else{let a=this.rangeSelection.getEnd();if(!a||a.colIdx===t.c2)return;let l=this.normalizedRange();this.rangeSelection.setEnd({row:a.row,colIdx:t.c2}),this.refreshRowRange(l,this.normalizedRange())}return}let i=typeof r.clientY=="number"?this.fillTargetRow(r):t.r2;if(o(),i>t.r2)this.fillValues(t.r1,t.r2,t.c1,t.c2,i),this.updateFillHandle();else{let s=this.rangeSelection.getEnd();if(!s||s.row===t.r2)return;let a=this.normalizedRange();this.rangeSelection.setEnd({row:t.r2,colIdx:s.colIdx}),this.refreshRowRange(a,this.normalizedRange())}};this.onBodyClick=e=>{if(this.core.isDestroyed())return;let t=this.resolveEventTarget(e);if(!t)return;let{node:r,index:o,cellEl:i}=t;if(r.isGroup){if(this.focusGridRoot(),e.target.closest?.(".mach-row-checkbox")){this.core.selectionService.setGroupSelected(r,!this.core.selectionService.getGroupSelectionState(r).all);return}let p=this.core.columnModel.getGroupLabelColumn();(!p||!i||i.dataset.colId===p.id)&&this.core.rowModel.toggleGroup(r.id);return}let s=e.target;if(this.handleTreeToggleClick(s,r,i))return;let a=i?.dataset.colId??"",l=a?this.core.columnModel.getColumn(a):void 0;if(l?.isDetailToggle&&!r.isDetail){this.focusGridRoot(),this.core.toggleDetail(r.id);return}if(r.isDetail)return;if(s.closest?.(".mach-row-checkbox")){this.focusGridRoot(),this.core.options.suppressCellFocus||this.setFocusedCell(o,this.firstCheckboxColId()),this.core.selectionService.onRowClick(r,e,!0);return}if(!i||!l)return;this.focusGridRoot(),this.core.options.suppressCellFocus||this.setFocusedCell(o,a),this.core.selectionService.onRowClick(r,e,!1);let d=this.core.getCellValue(r,l),c=this.core.emit("cellClicked",{event:e,rowNode:r,rowIndex:o,column:l,colDef:l.colDef,value:d});l.colDef.onCellClick?.(c),this.core.emit("rowClicked",{event:e,rowNode:r,rowIndex:o}),(this.core.options.singleClickEdit||l.colDef.singleClickEdit===!0)&&!r.isGroup&&this.core.editingService.isEditable(r,l)&&this.core.editingService.start(o,l)};this.onBodyDblClick=e=>{if(this.core.isDestroyed())return;let t=this.resolveEventTarget(e);if(!t)return;let{node:r,index:o,cellEl:i}=t;if(r.isDetail||r.isGroup||!i)return;let s=i.dataset.colId??"",a=this.core.columnModel.getColumn(s);if(!a)return;let l=this.core.getCellValue(r,a),d=this.core.emit("cellDoubleClicked",{event:e,rowNode:r,rowIndex:o,column:a,colDef:a.colDef,value:l});a.colDef.onCellDoubleClick?.(d),this.core.emit("rowDoubleClicked",{event:e,rowNode:r,rowIndex:o}),this.core.editingService.isEditable(r,a)&&this.core.editingService.start(o,a)};this.onContextMenu=e=>{if(this.core.isDestroyed())return;let t=this.resolveEventTarget(e);if(!t||t.node.isDetail||t.node.isGroup||!t.cellEl)return;let{node:r,index:o,cellEl:i}=t,s=i.dataset.colId??"",a=this.core.columnModel.getColumn(s);if(a&&(this.core.emit("cellContextMenu",{event:e,rowNode:r,rowIndex:o,column:a,colDef:a.colDef,value:this.core.getCellValue(r,a)}),this.core.options.contextMenu)){if(e.preventDefault(),this.core.options.enableRangeSelection&&!this.normalizedRange()){let l=this.core.columnModel.getFlatIndex(s);l>=0&&this.startRange(o,l,!1)}this.core.contextMenuService.open(e.clientX,e.clientY,{rowIndex:o,colId:s})}};this.onMouseDown=e=>{if(this.core.editingService.isCellEditing()&&this.core.editingService.stop(!1),this.core.options.enableRangeSelection&&e.button===0){let t=this.resolveEventTarget(e);if(t&&!t.node.isDetail&&!t.node.isGroup&&t.cellEl&&!e.target.closest?.(".mach-row-checkbox")){let r=this.core.columnModel.getFlatIndex(t.cellEl.dataset.colId??"");r>=0&&(this.startRange(t.index,r,e.shiftKey),this.rangeDragging=!0,!e.shiftKey&&!this.core.options.suppressCellFocus&&this.setFocusedCell(t.index,t.cellEl.dataset.colId??""))}}};this.onWindowMouseUp=()=>{this.rangeDragging=!1};this.onMouseOver=e=>{if(this.core.isDestroyed())return;let t=this.resolveEventTarget(e);if(this.rangeDragging&&t&&!t.node.isDetail&&!t.node.isGroup&&t.cellEl){let r=this.core.columnModel.getFlatIndex(t.cellEl.dataset.colId??""),o=this.rangeSelection.getEnd();r>=0&&o&&(o.row!==t.index||o.colIdx!==r)&&this.startRange(t.index,r,!0)}this.core.options.suppressRowHoverHighlight||!t||t.node.isDetail||this.setHoverIndex(t.index)};this.onMouseLeave=()=>{this.setHoverIndex(-1)};this.onDragHandlePointerDown=e=>{if(this.core.isDestroyed()||e.button!==0||!e.target.closest(".mach-row-drag-handle"))return;let r=this.resolveEventTarget(e);!r||r.node.isDetail||r.node.isGroup||(this.rowDragController.start(e,r.node),e.preventDefault())};this.rowDragController=new Tt(e,t=>this.rowTop(t),t=>this.rowAtOffset(t,this.core.rowModel.getDisplayedRowCount()))}init(){this.core.skeleton.bodyViewports.center.addEventListener("scroll",this.onScroll,{passive:!0});let t=this.core.skeleton.bodyEl;t.addEventListener("click",this.onBodyClick),t.addEventListener("dblclick",this.onBodyDblClick),t.addEventListener("contextmenu",this.onContextMenu),t.addEventListener("mousedown",this.onMouseDown),t.addEventListener("mouseover",this.onMouseOver),t.addEventListener("mouseleave",this.onMouseLeave),t.addEventListener("pointerdown",this.onDragHandlePointerDown),window.addEventListener("mouseup",this.onWindowMouseUp)}destroy(){cancelAnimationFrame(this.rafId),this.core.skeleton.bodyViewports.center.removeEventListener("scroll",this.onScroll);let t=this.core.skeleton.bodyEl;t.removeEventListener("click",this.onBodyClick),t.removeEventListener("dblclick",this.onBodyDblClick),t.removeEventListener("contextmenu",this.onContextMenu),t.removeEventListener("mousedown",this.onMouseDown),t.removeEventListener("mouseover",this.onMouseOver),t.removeEventListener("mouseleave",this.onMouseLeave),t.removeEventListener("pointerdown",this.onDragHandlePointerDown),window.removeEventListener("mouseup",this.onWindowMouseUp),this.cancelFillDrag(),this.rowDragController.destroy();for(let r of this.pool){r.detailRow&&this.cleanupDetail(r.detailRow);for(let o of k)for(let i of r.cells[o]??[])r.index>=0&&this.core.editingService.releaseCell(r.index,i.dataset.colId??"",i),E(this.core,i)}this.fillHandleEl?.remove(),this.fillDragIndicator?.remove(),this.pool=[],this.poolSize=0,this.pendingFlash=[],this.dirtyHeightNodes.clear(),this.rowSizes.reset([],()=>this.core.options.rowHeight),this.columnViewport.update([]),this.measureCanvas=null}paneForColumn(e){return e.pinned==="left"?"left":e.pinned==="right"?"right":"center"}syncScroll(){if(this.core.isDestroyed())return;let e=this.core.skeleton,t=e.bodyViewports.center;e.headerRowContainers.center.style.transform=`translateX(${-t.scrollLeft}px)`,this.core.headerRenderer.updateColumnWindow(),e.rowContainers.left.style.transform=`translateY(${-t.scrollTop}px)`,e.rowContainers.right.style.transform=`translateY(${-t.scrollTop}px)`,this.core.pinnedRowsRenderer.onScrollLeft(t.scrollLeft),this.core.tooltipService.hide(),this.updateRange(),this.core.rowModel.checkInfiniteScroll(this.lastExcl-1)}paneWidths(){let e={left:0,center:0,right:0};for(let t of k)e[t]=this.core.columnModel.getPaneColumns(t).reduce((r,o)=>r+o.currentWidth,0);return e}applyContainerSizes(){let e=this.core.skeleton,t=this.paneWidths();this.columnViewport.update(this.core.columnModel.getPaneColumns("center")),t.center=this.columnViewport.totalWidth();let r=e.bodyViewports.center,o=this.core.rowModel.getDisplayedRows(),i=this.core.rowModel.getDisplayTotalCount(),s=Math.min(i,o.length),a=this.core.options.rowHeight,l=this.core.options.masterDetail?[]:this.collectAutoHeightColumns(),d=this.core.options.datasourceMode!=="block"&&(this.core.options.masterDetail||this.core.options.getRowHeight!=null||l.length>0),c=d?`${this.core.rowModel.getDisplayRevision()}|${a}|${this.core.options.detailRowHeight}|${l.map(f=>`${f.id}:${f.currentWidth}`).join(",")}`:`fixed|${a}`;if(!d)this.rowSizes.length>0&&this.rowSizes.reset([],()=>a),this.rowLayoutSignature=c,this.dirtyHeightNodes.clear(),this.lastMinRowHeight=a;else if(c!==this.rowLayoutSignature||this.rowSizes.length!==s){let f=o.slice(0,s);this.rowSizes.reset(f,y=>this.resolveRowHeight(y,l)),this.rowLayoutSignature=c,this.dirtyHeightNodes.clear(),this.lastMinRowHeight=this.rowSizes.minimumSize()||a}else if(this.dirtyHeightNodes.size>0){for(let f of this.dirtyHeightNodes){let y=this.rowSizes.indexOf(f);y>=0&&this.rowSizes.update(y,this.resolveRowHeight(f,l))}this.dirtyHeightNodes.clear(),this.lastMinRowHeight=this.rowSizes.minimumSize()||a}let h=(d?this.rowSizes.totalSize():s*a)+Math.max(0,i-s)*a,p=Math.max(0,r.clientWidth-t.left-t.right),m=Math.max(t.center,p);for(let f of k){let y=e.rowContainers[f];y.style.height=`${h}px`,f==="center"&&(y.style.width=`${m}px`)}this.applyDomLayoutHeight(h),e.root.setAttribute("aria-rowcount",String(i+e.getHeaderRowCount()))}invalidateRowHeight(e){this.rowHeightCache.delete(e),this.dirtyHeightNodes.add(e)}applyDomLayoutHeight(e){this.core.skeleton.bodyEl.style.height=this.core.options.domLayout==="autoHeight"?`${e}px`:""}invalidateAllRowHeights(){this.rowHeightCache=new WeakMap,this.dirtyHeightNodes.clear(),this.rowLayoutSignature=""}resolveRowHeight(e,t){if(e.isDetail)return this.core.options.detailRowHeight;let r=this.rowHeightCache.get(e);if(r!==void 0)return r;let o=this.core.options.rowHeight,i=this.core.options.getRowHeight;if(i)try{let s=i({data:e.data,node:e,api:this.core.getApi()});o=Number.isFinite(s)?Math.max(1,s||o):o}catch(s){this.core.reportError(s,"getRowHeight",{rowId:e.id})}return t.length>0&&(o=Math.max(o,this.measureAutoHeight(e,t))),this.rowHeightCache.set(e,o),o}rowTop(e){let t=this.rowSizes.length;return t===0?Math.max(0,e)*this.core.options.rowHeight:e<=t?this.rowSizes.offsetAt(e):this.rowSizes.totalSize()+(e-t)*this.core.options.rowHeight}rowAtOffset(e,t){if(t<=0)return 0;let r=this.rowSizes.length,o=this.rowSizes.totalSize();if(r>0&&e<o)return this.rowSizes.findIndex(e);let i=r+Math.floor(Math.max(0,e-o)/this.core.options.rowHeight);return Math.max(0,Math.min(i,t-1))}collectAutoHeightColumns(){return this.core.columnModel.getOrderedVisible().filter(e=>e.colDef.autoHeight===!0)}get hasAnyAutoHeight(){return this.core.columnModel.getOrderedVisible().some(e=>e.colDef.autoHeight===!0)}measureAutoHeight(e,t){this.measureCanvas??(this.measureCanvas=document.createElement("canvas"));let r=this.measureCanvas.getContext("2d");if(!r)return 0;let o=window.getComputedStyle(this.core.skeleton.root),i=parseFloat(o.fontSize)||13;r.font=`${o.fontStyle} ${o.fontWeight} ${i}px ${o.fontFamily}`;let s=parseFloat(o.getPropertyValue("--mach-cell-padding"))||9,a=Math.round(i*1.45),l=1;for(let d of t){let c=N(this.core,e,d);if(!c)continue;let u=Math.max(10,d.currentWidth-s*2-2),h=1,p=0;for(let m of c){let f=r.measureText(m).width;if(p>0&&p+f>u?(h++,p=f):p+=f,h>=12)break}h>l&&(l=h)}return l*a+Math.round(s*.9)}queueFlash(e,t){if(this.core.options.flashCells)for(let r of e)for(let o of t)this.pendingFlash.push([r,o])}flushFlash(){if(this.pendingFlash.length===0)return;let e=this.pendingFlash;this.pendingFlash=[];for(let[t,r]of e){let o=this.getCellElement(t,r);if(!o)continue;o.classList.remove("mach-cell--flash"),o.offsetWidth,o.classList.add("mach-cell--flash");let i=ve(o),s=i.flashTimer;s&&clearTimeout(s),i.flashTimer=setTimeout(()=>{o.classList.remove("mach-cell--flash"),i.flashTimer=void 0},800)}}relayout(){this.applyContainerSizes();let e=this.core.skeleton.bodyViewports.center,r=this.core.options.rowHeight;this.core.options.masterDetail&&(r=Math.min(r,this.core.options.detailRowHeight)),this.lastMinRowHeight>0&&(r=Math.min(r,this.lastMinRowHeight));let o=Math.ceil(e.clientHeight/Math.max(1,r)),i=this.core.options.domLayout==="autoHeight"?this.core.rowModel.getDisplayedRowCount():o+this.core.options.rowBuffer*2+1;if(this.computeColWindow())for(let a of this.pool)this.reconcilePaneCells(a,"center");i>this.poolSize&&this.growPool(i),this.applyCellLayout(),this.updateRange(!0),this.refreshOverlays()}growPool(e){for(;this.poolSize<e;){let t={index:-1,nodeId:"",kind:"master",rows:{},cells:{},cellColIds:{}},r=this.core.skeleton;for(let o of k){if(this.core.columnModel.getPaneColumns(o).length===0)continue;let s=g("div","mach-row");s.style.height=`${this.core.options.rowHeight}px`,s.setAttribute("role","row"),s.style.display="none",r.rowContainers[o].appendChild(s),t.rows[o]=s,t.cells[o]=[],t.cellColIds[o]=[],this.reconcilePaneCells(t,o)}if(this.core.options.masterDetail){let o=g("div","mach-row mach-detail-row");o.style.height=`${this.core.options.detailRowHeight}px`,o.setAttribute("role","row"),o.style.display="none",r.rowContainers.center.appendChild(o),t.detailRow=o}this.pool.push(t),this.poolSize++}}activePaneColumns(e){let t=this.core.columnModel.getPaneColumns(e);return e!=="center"||t.length<=20||this.core.columnModel.hasColSpan()?t:t.slice(this.colFirst,this.colLastExcl)}createCell(e){let t=g("div","mach-cell");if(t.dataset.colId=e.id,t.setAttribute("role","gridcell"),e.hasCheckbox){let r=document.createElement("input");r.type=this.core.options.rowSelection==="single"?"radio":"checkbox",r.className="mach-row-checkbox",r.type==="radio"&&(r.name=`mach-radio-${this.core.gridId}`),r.setAttribute("aria-label","select row"),t.appendChild(r),t.classList.add("mach-cell--selection")}return t}reconcilePaneCells(e,t){let r=e.rows[t];if(!r)return;let o=this.activePaneColumns(t),i=e.cells[t]??[],s=e.cellColIds[t]??[];if(s.length===o.length&&s.every((c,u)=>c===o[u].id))return;let a=new Map;s.forEach((c,u)=>a.set(c,i[u]));let l=[],d=[];for(let c of o){let u=a.get(c.id)??this.createCell(c);a.delete(c.id),r.appendChild(u),l.push(u),d.push(c.id)}for(let c of a.values())e.index>=0&&this.core.editingService.releaseCell(e.index,c.dataset.colId??"",c),E(this.core,c),c.remove();e.cells[t]=l,e.cellColIds[t]=d}rebuildPool(){this.treeColumnCache=void 0,this.invalidateRangeCache();for(let e of this.pool){e.detailRow&&this.cleanupDetail(e.detailRow);for(let t of k){for(let r of e.cells[t]??[])E(this.core,r);e.rows[t]?.remove()}e.detailRow?.remove()}this.pool=[],this.poolSize=0,this.first=0,this.lastExcl=-1,this.relayout()}applyCellLayout(){let e=this.core.options.masterDetail||this.core.options.getRowHeight!=null||this.hasAnyAutoHeight;for(let t of k){let r=this.core.columnModel.getPaneColumns(t),o=this.activePaneColumns(t),i=0,s=[];if(t==="center"&&o.length>0){let a=r.indexOf(o[0]);this.columnViewport.update(r),i=this.columnViewport.offsetAt(a)}for(let a of o)s.push(i),i+=a.currentWidth;for(let a of this.pool){let l=a.cells[t],d=a.rows[t];if(!(!l||!d)){e||(d.style.height=`${this.core.options.rowHeight}px`);for(let c=0;c<o.length&&c<l.length;c++)l[c].style.width=`${o[c].currentWidth}px`,l[c].style.left=`${s[c]}px`,l[c].setAttribute("aria-colindex",String(this.core.columnModel.getFlatIndex(o[c].id)+1))}}if(this.core.options.masterDetail)for(let a of this.pool)a.detailRow?.style.setProperty("--mach-detail-h",`${this.core.options.detailRowHeight}px`)}}computeColWindow(){let e=this.core.skeleton.bodyViewports.center,t=this.core.columnModel.getPaneColumns("center"),r=this.colFirst,o=this.colLastExcl;this.columnViewport.update(t);let i=t.length>20?this.columnViewport.visibleRange(e.scrollLeft,e.clientWidth,2):{first:0,lastExcl:t.length};return this.colFirst=i.first,this.colLastExcl=i.lastExcl,i.first!==r||i.lastExcl!==o}updateRange(e=!1){let t=this.core.performanceMonitor.start();if(!this.updateRangeInner(e))return;let r=Math.max(0,this.lastExcl-this.first),o=this.core.columnModel.getPaneColumns("left").length+this.activePaneColumns("center").length+this.core.columnModel.getPaneColumns("right").length;this.core.performanceMonitor.recordRender(t,r,o)}updateRangeInner(e){let t=this.core.skeleton.bodyViewports.center,r=this.core.rowModel.getDisplayedRowCount(),o=this.core.options.rowBuffer,i=this.computeColWindow();if(this.reconcileColumnWindow(i),r===0){for(let l of this.pool)this.hideSlot(l);return this.first=0,this.lastExcl=0,!0}if(this.renderAutoHeightRange(r,e))return!0;let{first:s,lastExcl:a}=this.calculateVisibleRange(t,r,o);return!e&&s===this.first&&a===this.lastExcl?i:(this.first=s,this.lastExcl=a,this.hideOutsideRange(s,a),this.renderVirtualRange(s,a,e,i),!0)}calculateVisibleRange(e,t,r){let o=this.rowAtOffset(e.scrollTop,t),i=e.scrollTop+e.clientHeight,s=Math.min(t,this.rowAtOffset(i,t)+1);return{first:M(o-r,0,t-1),lastExcl:M(s+r,1,t)}}hideOutsideRange(e,t){for(let r of this.pool)r.index!==-1&&(r.index<e||r.index>=t)&&this.hideSlot(r)}renderVirtualRange(e,t,r,o){for(let i=e;i<t;i++){let s=this.core.rowModel.getDisplayedRow(i),a=this.pool[i%this.poolSize];if(!(!a||!s)){if(!r&&a.index===i&&a.nodeId===s.id){o&&a.kind==="master"&&this.renderPaneCells(a,s,"center");continue}this.assignSlot(a,i)}}}reconcileColumnWindow(e){if(e){for(let t of this.pool)this.reconcilePaneCells(t,"center");this.applyCellLayout()}}renderAutoHeightRange(e,t){if(this.core.options.domLayout!=="autoHeight")return!1;if(!t&&this.first===0&&this.lastExcl===e)return!0;this.first=0,this.lastExcl=e;for(let r=0;r<e;r++){let o=this.core.rowModel.getDisplayedRow(r),i=this.pool[r];!i||!o||(t||i.index!==r||i.nodeId!==o.id)&&this.assignSlot(i,r)}return!0}hideSlot(e){this.releaseSlotEditors(e),this.focusedCell?.rowIndex===e.index&&this.core.skeleton.root.removeAttribute("aria-activedescendant"),e.index=-1,e.nodeId="",e.kind="master";for(let t of k){let r=e.rows[t];r&&(r.style.display="none")}e.detailRow&&(this.cleanupDetail(e.detailRow),e.detailRow.style.display="none")}assignSlot(e,t){e.index>=0&&e.index!==t&&this.releaseSlotEditors(e);let r=this.core.rowModel.getDisplayedRow(t);if(!r){this.hideSlot(e);return}e.index=t,e.nodeId=r.id;let o=this.rowTop(t),i=this.rowTop(t+1)-o;if(r.isDetail){e.kind="detail";for(let p of k){let m=e.rows[p];m&&(m.style.display="none")}let h=e.detailRow;h&&(h.style.display="",h.style.transform=`translateY(${o}px)`,h.style.height=`${i}px`,h.dataset.index=String(t),h.setAttribute("aria-rowindex",String(t+this.core.skeleton.getHeaderRowCount()+1)),this.renderDetailContent(h,r));return}e.kind="master",e.detailRow&&(e.detailRow.style.display="none");let s=this.core.rowModel.isTree,a=r.isGroup===!0,l=s&&this.core.rowModel.hasChildren(r.id),d=a||l||this.core.options.masterDetail&&this.core.rowModel.isRowExpandable(r),c=a?this.core.rowModel.isGroupExpanded(r.id):this.core.rowModel.isRowExpanded(r.id),u=a?(r.groupLevel??0)+1:s?this.core.rowModel.getTreeDepth(r)+1:null;for(let h of k){let p=e.rows[h];p&&(p.style.display="",p.style.transform=`translateY(${o}px)`,p.style.height=`${i}px`,p.dataset.index=String(t),p.dataset.id=r.id,p.setAttribute("aria-rowindex",String(t+this.core.skeleton.getHeaderRowCount()+1)),p.classList.toggle("mach-row--selected",r.selected),p.classList.toggle("mach-row--hover",this.hoverIndex===t&&!this.core.options.suppressRowHoverHighlight),p.classList.toggle("mach-row--odd",t%2===1),p.setAttribute("aria-selected",r.selected?"true":"false"),d?p.setAttribute("aria-expanded",c?"true":"false"):p.removeAttribute("aria-expanded"),u!=null?p.setAttribute("aria-level",String(u)):p.removeAttribute("aria-level"),this.renderPaneCells(e,r,h))}this.focusedCell&&this.focusedCell.rowIndex===t&&this.applyFocusClass()}renderPaneCells(e,t,r){let o=this.activePaneColumns(r),i=e.cells[r];if(!i)return;let s=e.index,a=r==="center"&&this.core.columnModel.hasColSpan(),l=0;e.rows[r]?.classList.toggle("mach-row--editing",this.core.editingService.isRowEditing(s));for(let d=0;d<o.length;d++){let c=o[d],u=i[d];if(a&&l>0){l--,E(this.core,u),u.setAttribute("aria-hidden","true"),u.style.display!=="none"&&(u.style.display="none");continue}if(u.style.display==="none"&&(u.style.display=""),u.removeAttribute("aria-hidden"),a){let h=this.resolveColSpan(t,c,s,o.length-d);h>1?(l=h-1,this.applySpanWidth(u,o,d,h)):(u.removeAttribute("aria-colspan"),u.style.width!==`${c.currentWidth}px`&&(u.style.width=`${c.currentWidth}px`))}else u.removeAttribute("aria-colspan");this.core.editingService.renderEditor(s,t,c,u)||(this.renderCell(u,t,c),this.applyRangeClass(u,s,c))}}resolveColSpan(e,t,r,o){let i=t.colDef.colSpan;if(!i)return 1;try{let s=i({api:this.core.getApi(),colDef:t.colDef,column:t,node:e,data:e.data,value:this.core.getCellValue(e,t),rowIndex:r});return Math.max(1,Math.min(Math.round(s)||1,o))}catch(s){return this.core.reportError(s,"colSpan",{colId:t.id,rowId:e.id}),1}}applySpanWidth(e,t,r,o){let i=0;for(let s=r;s<r+o&&s<t.length;s++)i+=t[s].currentWidth;e.style.width=`${i}px`,e.setAttribute("aria-colspan",String(o))}renderDetailContent(e,t){this.cleanupDetail(e);let r=t.masterId!=null?this.core.rowModel.getNodeById(t.masterId):t,o=g("div","mach-detail");e.appendChild(o);let i=this.core.options.detailRowRenderer;if(i){let s={data:t.data,node:r??t,api:this.core.getApi()},a;try{a=i(s)}catch(l){this.core.reportError(l,"detailRowRenderer",{rowId:t.id}),a=null}typeof a=="string"?o.textContent=a:a instanceof HTMLElement?o.appendChild(a):a&&typeof a=="object"&&a.el instanceof HTMLElement&&(o.appendChild(a.el),Wr(e,a.destroy))}}cleanupDetail(e){let t=Kr(e);if(t)try{t()}catch(r){this.core.reportError(r,"detailRowRenderer.destroy")}e.textContent=""}renderCell(e,t,r){if(t.loading){E(this.core,e),e.className="mach-cell mach-cell--loading",e.setAttribute("aria-readonly","true"),e.setAttribute("aria-busy","true");let i=document.createElement("span");i.className="mach-cell-loading-bar",i.style.width=`${34+(r.id.length*13+t.rowIndex*7)%44}%`,e.replaceChildren(i),this.resetSpanStyle(e);return}e.removeAttribute("aria-busy"),e.setAttribute("aria-readonly",this.core.editingService.isEditable(t,r)?"false":"true"),e.removeAttribute("aria-expanded"),e.removeAttribute("aria-level");let o=this.cellRenderKind(t,r);if(o!=="standard"){E(this.core,e),this.renderStructuralCell(o,e,t,r);return}et(this.core,e,t,r),Ce(this.core,e,t,r),Ze(this.core,e,t,r),this.applyCellSpanStyle(e,t,r),this.appendEditableIndicator(e,t,r)}cellRenderKind(e,t){return e.isGroup?"group":t.isDetailToggle?"detail":t.hasCheckbox?"checkbox":t.colDef.rowDrag?"drag":oe(t.colDef,"index")?"index":this.core.rowModel.isTree&&this.getTreeColumn()?.id===t.id?"tree":"standard"}renderStructuralCell(e,t,r,o){if(e==="group")this.renderGroupCell(t,r,o);else if(e==="detail"){let i=this.core.rowModel.isRowExpanded(r.id),s=g("span",`mach-detail-toggle${i?" mach-detail-toggle--open":""}`);s.textContent="\u25B6",t.replaceChildren(s),t.classList.add("mach-cell--detail-toggle"),this.resetSpanStyle(t)}else if(e==="checkbox"){let i=t.querySelector(".mach-row-checkbox");i&&(i.checked=r.selected,i.indeterminate=this.core.selectionService.isIndeterminate(r.id),i.disabled=!this.core.selectionService.isSelectable(r)),t.className!=="mach-cell mach-cell--selection"&&(t.className="mach-cell mach-cell--selection"),this.resetSpanStyle(t)}else if(e==="drag"){let i=g("span","mach-row-drag-handle");i.textContent="\u283F",t.replaceChildren(i),t.className!=="mach-cell mach-cell--drag"&&(t.className="mach-cell mach-cell--drag"),this.resetSpanStyle(t)}else e==="index"?(t.textContent=String(this.core.rowModel.getRowSeq(r)+this.core.options.indexOffset),t.className!=="mach-cell mach-cell--index"&&(t.className="mach-cell mach-cell--index"),this.applyCellSpanStyle(t,r,o)):this.renderTreeCell(t,r,o)}appendEditableIndicator(e,t,r){if(this.core.options.editType!=="cell"||this.core.options.editableIndicator==="none"||!this.core.editingService.isEditable(t,r))return;let o=document.createElement("button");o.type="button",o.className=`mach-cell-edit-trigger mach-cell-edit-trigger--${this.core.options.editableIndicator}`,o.tabIndex=-1,o.title="Edit cell",o.setAttribute("aria-label","Edit cell"),o.innerHTML='<svg viewBox="0 0 16 16" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="m10.8 2.7 2.5 2.5L5.5 13H3v-2.5z"/><path d="m9.5 4 2.5 2.5"/></svg>',o.addEventListener("mousedown",i=>{i.preventDefault(),i.stopPropagation()}),o.addEventListener("click",i=>{i.preventDefault(),i.stopPropagation(),this.setFocusedCell(t.rowIndex,r.id),this.core.editingService.start(t.rowIndex,r)}),e.appendChild(o)}releaseSlotEditors(e){if(!(e.index<0))for(let t of k)for(let r of e.cells[t]??[])this.core.editingService.releaseCell(e.index,r.dataset.colId??"",r)}getTreeColumn(){return this.treeColumnCache!==void 0?this.treeColumnCache:(this.treeColumnCache=this.core.columnModel.getOrderedVisible().find(e=>!e.hasCheckbox&&!e.isDetailToggle&&!e.colDef.rowDrag&&!oe(e.colDef,"index"))??null,this.treeColumnCache)}renderTreeCell(e,t,r){let o=this.core.rowModel.isRowExpandable(t),i=this.getNodeDepth(t),s=g("span","mach-tree-indent");s.style.width=`${i*16}px`;let a=g("span","mach-tree-cell");if(a.appendChild(s),o){let d=this.core.rowModel.isRowExpanded(t.id);e.setAttribute("aria-expanded",d?"true":"false"),e.setAttribute("aria-level",String(i+1));let c=t.treeLoading?" mach-detail-toggle--loading":t.treeLoadError?" mach-detail-toggle--error":"",u=g("span",`mach-detail-toggle${d?" mach-detail-toggle--open":""}${c}`);t.treeLoadError&&(u.title="Retry loading children"),u.textContent="\u25B6",a.appendChild(u)}else{let d=g("span","mach-tree-toggle-spacer");a.appendChild(d)}let l=g("span","mach-tree-text");l.textContent=we(this.core,t,r,this.core.getCellValue(t,r)),a.appendChild(l),e.replaceChildren(a),Ce(this.core,e,t,r)}getNodeDepth(e){return this.core.rowModel.getTreeDepth(e)}resetSpanStyle(e){e.style.height!==""&&(e.style.height=""),e.style.zIndex!==""&&(e.style.zIndex=""),e.style.display==="none"&&(e.style.display=""),e.removeAttribute("aria-rowspan")}applyCellSpanStyle(e,t,r){let o=this.core.rowModel.getSpanInfo(r.id);if(!o||t.isDetail){this.resetSpanStyle(e);return}let i=this.core.rowModel.getRowSeq(t)-1;if(i<0||i>=o.length){this.resetSpanStyle(e);return}let s=o[i];if(s===-1){e.style.display="none",e.setAttribute("aria-hidden","true");return}if(e.style.display==="none"&&(e.style.display=""),e.removeAttribute("aria-hidden"),s>1){let a=Math.min(i+s,this.core.rowModel.getDisplayedRowCount()),l=this.rowTop(a)-this.rowTop(i);e.style.height=`${l>0?l:s*this.core.options.rowHeight}px`,e.style.zIndex="1",e.setAttribute("aria-rowspan",String(s))}else this.resetSpanStyle(e)}renderGroupCell(e,t,r){let o="mach-cell";if(r.hasCheckbox){let s=e.querySelector(".mach-row-checkbox");if(s){let a=this.core.selectionService.getGroupSelectionState(t);s.checked=a.all,s.indeterminate=a.some&&!a.all}e.className!==`${o} mach-cell--selection`&&(e.className=`${o} mach-cell--selection`);return}if(r.isDetailToggle){e.textContent="",e.className!==o&&(e.className=o);return}let i=this.core.columnModel.getGroupLabelColumn();if(i&&r.id===i.id){e.setAttribute("aria-expanded",this.core.rowModel.isGroupExpanded(t.id)?"true":"false"),e.setAttribute("aria-level",String((t.groupLevel??0)+1));let s=g("span","mach-group-label");s.style.paddingLeft=`${(t.groupLevel??0)*16}px`;let a=g("span",`mach-detail-toggle${this.core.rowModel.isGroupExpanded(t.id)?" mach-detail-toggle--open":""}`);a.textContent="\u25B6";let l=g("span","mach-group-text"),d=this.core.columnModel.getRowGroupColumns()[t.groupLevel??0],c=d?.colDef.headerName?`${d.colDef.headerName}: `:"";l.textContent=`${c}${t.groupKey??""}`;let u=g("span","mach-group-count");u.textContent=`(${t.leafNodes?.length??0})`,s.append(a,l,u),e.replaceChildren(s),e.className!==`${o} mach-cell--group`&&(e.className=`${o} mach-cell--group`);return}if(r.colDef.aggFunc&&t.aggValues&&Object.prototype.hasOwnProperty.call(t.aggValues,r.id)){let s=t.aggValues[r.id],a=r.colDef.valueFormatter!=null?we(this.core,t,r,s):Qe(s);e.textContent=a,e.className!==`${o} mach-cell--num`&&(e.className=`${o} mach-cell--num`);return}e.textContent="",e.className!==o&&(e.className=o)}refreshRows(e){if(this.core.isDestroyed())return;let t=new Set;for(let r of e){if(r<0||t.has(r))continue;t.add(r);let o=this.pool[r%this.poolSize];if(!o||o.index!==r)continue;let i=this.core.rowModel.getDisplayedRow(r);if(i){if(o.kind==="detail"){o.detailRow&&this.renderDetailContent(o.detailRow,i);continue}for(let s of k)o.cells[s]&&this.renderPaneCells(o,i,s)}}this.applyFocusClass(),this.flushFlash()}refreshAllCells(){this.refreshCells()}refreshCells(e={}){if(this.core.isDestroyed())return;let t=e.rowIds==null?null:new Set(e.rowIds),r=e.rowIndexes==null?null:new Set(e.rowIndexes),o=e.columns==null?null:new Set(e.columns);for(let i of this.pool){let s=this.core.rowModel.getDisplayedRow(i.index);!s||!this.matchesRefreshRow(i,s,t,r)||this.refreshSlotCells(i,s,o,e.force===!0)}this.applyFocusClass(),this.flushFlash()}matchesRefreshRow(e,t,r,o){return e.index<0?!1:r==null&&o==null?!0:r?.has(t.id)===!0||o?.has(e.index)===!0}refreshSlotCells(e,t,r,o){if(e.kind==="detail"){r==null&&e.detailRow&&this.renderDetailContent(e.detailRow,t);return}let i=r==null||this.core.columnModel.hasColSpan();for(let s of k)i?this.renderPaneCells(e,t,s):this.refreshPaneCells(e,t,s,r,o)}refreshPaneCells(e,t,r,o,i){let s=this.activePaneColumns(r),a=e.cells[r];if(a)for(let l=0;l<s.length;l++){let d=s[l];if(!o.has(d.id))continue;let c=a[l];c&&(this.core.editingService.renderEditor(e.index,t,d,c)||(i&&E(this.core,c),this.renderCell(c,t,d),this.applyRangeClass(c,e.index,d)))}}onDataChanged(){this.core.isDestroyed()||(this.focusedCell&&this.focusedCell.rowIndex>=this.core.rowModel.getDisplayedRowCount()&&this.setFocusedCell(null,null),this.invalidateRangeCache(),this.applyContainerSizes(),this.updateRange(!0),this.updateFillHandle(),this.refreshOverlays(),this.core.summaryRenderer.refresh())}refreshOverlays(){let e=this.core.options;if(e.loading){this.core.skeleton.showOverlay("loading",e.overlayLoadingTemplate,e.allowUnsafeOverlayHtml);return}if(e.error!=null){let t=e.overlayErrorTemplate||this.core.buildDefaultErrorState();this.core.skeleton.showOverlay("error",t,e.allowUnsafeOverlayHtml);return}if(this.core.rowModel.getDisplayedRowCount()===0&&!e.suppressNoRowsOverlay){let t=e.overlayNoRowsTemplate||this.core.buildDefaultEmptyState();this.core.skeleton.showOverlay("noRows",t,e.allowUnsafeOverlayHtml);return}this.core.skeleton.hideOverlay()}getCellElement(e,t){let r=this.core.columnModel.getColumn(t);if(!r)return null;let o=this.paneForColumn(r),i=this.pool[e%Math.max(1,this.poolSize)]?.cellColIds[o]?.indexOf(r.id)??-1;if(i<0)return null;let s=this.pool[e%this.poolSize];return!s||s.index!==e||s.kind!=="master"?null:s.cells[o]?.[i]??null}invalidateRangeCache(){this.rangeSelection.invalidate()}normalizedRange(){let e=this.core.rowModel.getDisplayedRowCount(),t=this.core.columnModel.getOrderedVisible().length;return this.rangeSelection.normalize(e,t)}getNormalizedRangeOrFocus(){let e=this.normalizedRange();if(e)return e;let t=this.focusedCell;if(t){let r=this.core.columnModel.getFlatIndex(t.colId);if(r>=0)return{r1:t.rowIndex,c1:r,r2:t.rowIndex,c2:r}}return null}getRangeSelection(){let e=this.normalizedRange();if(!e)return null;let t=this.core.columnModel.getOrderedVisible();return{row1:e.r1,row2:e.r2,colId1:t[e.c1]?.id??"",colId2:t[e.c2]?.id??""}}getPasteStart(){let e=this.rangeSelection.getAnchor();if(e)return{row:e.row,colIdx:e.colIdx};let t=this.getNormalizedRangeOrFocus();return t?{row:t.r1,colIdx:t.c1}:null}clearRangeSelection(){let e=this.normalizedRange();this.rangeSelection.clear(),e&&(this.refreshRowRange(e,null),this.updateFillHandle(),this.core.emit("rangeSelectionChanged",{range:null}))}refreshRowRange(e,t){let r=[],o=i=>{if(i)for(let s=i.r1;s<=i.r2;s++)r.push(s)};o(e),o(t),r.length>0&&this.refreshRows(r)}startRange(e,t,r){let o=this.normalizedRange();this.rangeSelection.start({row:e,colIdx:t},r);let i=this.normalizedRange();this.refreshRowRange(o,i),this.updateFillHandle(),this.core.emit("rangeSelectionChanged",{range:this.getRangeSelection()})}moveRangeEnd(e,t){if(!this.rangeSelection.hasAnchor()){let d=this.focusedCell;if(!d)return;let c=this.core.columnModel.getFlatIndex(d.colId);if(!this.rangeSelection.ensureAnchor({row:d.rowIndex,colIdx:c}))return}let r=this.core.rowModel.getDisplayedRowCount(),o=this.core.columnModel.getOrderedVisible().length,i=this.normalizedRange();this.rangeSelection.setEnd({row:Math.max(0,Math.min(e,r-1)),colIdx:Math.max(0,Math.min(t,o-1))});let s=this.normalizedRange();this.refreshRowRange(i,s),this.updateFillHandle();let a=this.core.columnModel.getOrderedVisible(),l=this.rangeSelection.getEnd();l&&l.colIdx<a.length&&this.setFocusedCell(l.row,a[l.colIdx].id),this.core.emit("rangeSelectionChanged",{range:this.getRangeSelection()})}applyRangeClass(e,t,r){let o=this.normalizedRange();if(!o){e.classList.contains("mach-cell--range")&&e.classList.remove("mach-cell--range","mach-cell--range-top","mach-cell--range-bottom","mach-cell--range-left","mach-cell--range-right");return}let i=this.core.columnModel.getFlatIndex(r.id);if(i<0)return;let s=t>=o.r1&&t<=o.r2&&i>=o.c1&&i<=o.c2;e.classList.toggle("mach-cell--range",s),s?(e.classList.toggle("mach-cell--range-top",t===o.r1),e.classList.toggle("mach-cell--range-bottom",t===o.r2),e.classList.toggle("mach-cell--range-left",i===o.c1),e.classList.toggle("mach-cell--range-right",i===o.c2)):e.classList.remove("mach-cell--range-top","mach-cell--range-bottom","mach-cell--range-left","mach-cell--range-right")}ensureFillHandle(){if(this.fillHandleEl)return this.fillHandleEl;let e=g("div","mach-fill-handle");return e.style.display="none",e.addEventListener("pointerdown",t=>{this.fillFromPointer=!0,this.onFillHandleDown(t)}),e.addEventListener("mousedown",t=>{this.fillFromPointer||this.onFillHandleDown(t)}),this.core.skeleton.rowContainers.center.appendChild(e),this.fillHandleEl=e,e}updateFillHandle(){let e=this.ensureFillHandle(),t=this.normalizedRange();if(!this.core.options.enableRangeSelection||!this.core.options.fillHandle||!t){e.style.display="none";return}let r=this.core.columnModel,o=r.getPaneColumns("left").length,i=r.getPaneColumns("center");if(t.c2<o||t.c2>=o+i.length){e.style.display="none";return}let s=t.c2-o;this.columnViewport.update(i);let a=this.columnViewport.offsetAt(s+1),l=this.rowTop(Math.min(t.r2+1,this.core.rowModel.getDisplayedRowCount()));e.style.display="",e.style.left=`${a-4}px`,e.style.top=`${l-4}px`}onFillHandleDown(e){if(this.core.isDestroyed()||e.button!==0)return;let t=this.normalizedRange();t&&(e.preventDefault(),e.stopPropagation(),this.fillDrag={r1:t.r1,r2:t.r2,c1:t.c1,c2:t.c2,startX:e.clientX,startY:e.clientY,axis:null,active:!1},window.addEventListener("pointermove",this.onFillMove),window.addEventListener("mousemove",this.onFillMove),window.addEventListener("pointerup",this.onFillUp),window.addEventListener("mouseup",this.onFillUp),window.addEventListener("pointercancel",this.onFillUp))}fillTargetRow(e){let r=this.core.skeleton.rowContainers.center.getBoundingClientRect(),o=e.clientY-r.top,i=this.core.rowModel.getDisplayedRowCount(),s=this.rowAtOffset(o,i);return Math.max(this.fillDrag.r2,Math.min(s,i-1))}fillTargetCol(e){let r=this.core.skeleton.rowContainers.center.getBoundingClientRect(),o=e.clientX-r.left,i=this.core.columnModel,s=i.getPaneColumns("left").length,a=i.getPaneColumns("center");this.columnViewport.update(a);let l=this.columnViewport.indexAt(o);if(l<0)return s;let d=this.columnViewport.offsetAt(l)+a[l].currentWidth/2;return o<d?s+l:l+1<a.length?s+l+1:s+a.length-1}cancelFillDrag(){this.fillDrag=null,this.fillFromPointer=!1,window.removeEventListener("pointermove",this.onFillMove),window.removeEventListener("mousemove",this.onFillMove),window.removeEventListener("pointerup",this.onFillUp),window.removeEventListener("mouseup",this.onFillUp),window.removeEventListener("pointercancel",this.onFillUp),this.core.skeleton.root.classList.remove("mach-root--filling")}fillHorizontal(e,t,r,o,i){let s=this.core.columnModel.getOrderedVisible(),a=new Set;this.core.undoService.beginBatch();try{for(let l=e;l<=t;l++){let d=this.core.rowModel.getDisplayedRow(l);if(!d||d.isDetail||d.isGroup)continue;let c=[];for(let f=r;f<=o;f++){let y=s[f];c.push(y?this.core.getCellValue(d,y):void 0)}let u=o-r+1,h=u>1&&c.every(f=>typeof f=="number"&&!isNaN(f)),p=h?(c[u-1]-c[0])/(u-1):0,m=!h||c.every(f=>Number.isInteger(f));for(let f=o+1;f<=i;f++){let y=s[f];if(!y||y.hasCheckbox||y.isDetailToggle||y.colDef.rowDrag||!this.core.editingService.isEditable(d,y))continue;let v=f-r,w;if(u===1)w=c[0];else if(h){let D=v-(u-1);w=c[u-1]+p*D,w=m?Math.round(w):Math.round(w*1e6)/1e6}else w=c[v%u];let b=this.core.getCellValue(d,y);this.core.setCellValue(d,y,w,b)&&a.add(l)}}}finally{this.core.undoService.endBatch()}a.size>0&&(this.refreshRows([...a]),this.core.summaryRenderer.refresh(),this.core.emit("rangeSelectionChanged",{range:this.getRangeSelection()}))}fillValues(e,t,r,o,i){let s=this.core.columnModel.getOrderedVisible(),a=new Set;this.core.undoService.beginBatch();try{this.fillValuesInner(e,t,r,o,i,s,a)}finally{this.core.undoService.endBatch()}a.size>0&&(this.refreshRows([...a]),this.core.summaryRenderer.refresh(),this.core.emit("rangeSelectionChanged",{range:this.getRangeSelection()}))}fillValuesInner(e,t,r,o,i,s,a){for(let l=r;l<=o;l++){let d=s[l];if(!d||d.hasCheckbox||d.isDetailToggle||d.colDef.rowDrag)continue;let c=[],u=e<t;for(let f=e;f<=t;f++){let y=this.core.rowModel.getDisplayedRow(f);if(!y){u=!1,c.push(void 0);continue}let v=this.core.getCellValue(y,d);c.push(v),(typeof v!="number"||isNaN(v))&&(u=!1)}if(c[0]===void 0&&c.length===1)continue;let h=t-e+1,p=0,m=!0;if(u){p=(c[h-1]-c[0])/(h-1);for(let f of c)Number.isInteger(f)||(m=!1)}for(let f=t+1;f<=i;f++){let y=this.core.rowModel.getDisplayedRow(f);if(!y||y.isDetail||y.isGroup||!this.core.editingService.isEditable(y,d))continue;let v;if(h===1)v=c[0];else if(u){let b=f-t;v=c[h-1]+p*b,v=m?Math.round(v):Math.round(v*1e6)/1e6}else v=c[(f-e)%h];let w=this.core.getCellValue(y,d);this.core.setCellValue(y,d,v,w)&&a.add(f)}}}setFocusedCell(e,t){if(this.clearFocusClass(),e==null||t==null){this.focusedCell=null;return}this.focusedCell={rowIndex:e,colId:t},this.applyFocusClass(),this.ensureFocusedCellVisible()}applyFocusClass(){if(!this.focusedCell)return;let e=this.getCellElement(this.focusedCell.rowIndex,this.focusedCell.colId);if(e){let t=Math.max(0,this.core.columnModel.getFlatIndex(this.focusedCell.colId));e.id=`mach-grid-${this.core.gridId}-r${this.focusedCell.rowIndex}-c${t}`,e.classList.add("mach-cell--focus"),this.core.skeleton.root.setAttribute("aria-activedescendant",e.id)}}clearFocusClass(){if(this.focusedCell){let e=this.getCellElement(this.focusedCell.rowIndex,this.focusedCell.colId);e&&(e.classList.remove("mach-cell--focus"),e.removeAttribute("id"))}this.core.skeleton.root.removeAttribute("aria-activedescendant")}ensureFocusedCellVisible(){if(!this.focusedCell)return;this.scrollToIndex(this.focusedCell.rowIndex,"nearest");let e=this.core.columnModel.getColumn(this.focusedCell.colId);if(!e||e.pinned)return;let t=this.core.skeleton.bodyViewports.center,r=this.core.columnModel.getPaneColumns("center");this.columnViewport.update(r);let o=this.columnViewport.offsetAt(r.indexOf(e)),i=t.scrollLeft,s=t.clientWidth;o<i?t.scrollLeft=o:o+e.currentWidth>i+s&&(t.scrollLeft=o+e.currentWidth-s)}scrollToIndex(e,t="top"){let r=this.core.skeleton.bodyViewports.center,o=this.core.rowModel.getDisplayedRowCount();if(o===0)return;let i=M(e,0,o-1),s=r.clientHeight,a=r.scrollTop,l=this.rowTop(i),d=this.rowTop(i+1),c=a;t==="top"?c=l:t==="bottom"?c=d-s:t==="middle"?c=l-(s-(d-l))/2:l<a?c=l:d>a+s&&(c=d-s);let u=Math.max(0,this.rowTop(o)-s);r.scrollTop=M(c,0,u)}setHoverIndex(e){if(this.hoverIndex===e)return;let t=this.hoverIndex;this.hoverIndex=e,this.toggleHover(t,!1),this.toggleHover(e,!0)}toggleHover(e,t){if(e<0)return;let r=this.pool[e%this.poolSize];if(!(!r||r.index!==e||r.kind!=="master"))for(let o of k)r.rows[o]?.classList.toggle("mach-row--hover",t)}focusGridRoot(){this.core.skeleton.root.focus({preventScroll:!0})}resolveEventTarget(e){let t=e.target,r=t.closest(".mach-row");if(!r)return null;let o=Number(r.dataset.index);if(Number.isNaN(o))return null;let i=this.core.rowModel.getDisplayedRow(o);if(!i)return null;let s=t.closest(".mach-cell");return{node:i,index:o,cellEl:s}}handleTreeToggleClick(e,t,r){if(!this.core.rowModel.isTree||!e.closest(".mach-detail-toggle"))return!1;let o=this.getTreeColumn();return!o||r?.dataset.colId!==o.id||!this.core.rowModel.isRowExpandable(t)?!1:(this.focusGridRoot(),t.treeLoadError?this.core.rowModel.loadTreeChildren(t.id,!0).catch(()=>{}):this.core.rowModel.toggleDetail(t.id),!0)}firstCheckboxColId(){for(let e of this.core.columnModel.getOrderedVisible())if(e.hasCheckbox)return e.id;return this.core.columnModel.getOrderedVisible()[0]?.id??""}};var Et=class{constructor(e){this.core=e;this.footerEl=null;this.rows={left:void 0,center:void 0,right:void 0};this.cellsByPane={left:[],center:[],right:[]}}init(){this.footerEl=g("div","mach-footer"),this.footerEl.style.display="none",this.footerEl.setAttribute("role","row"),this.core.skeleton.root.appendChild(this.footerEl);for(let e of["left","center","right"]){let t=g("div",`mach-footer-row mach-footer-row--${e}`);t.style.height=`${this.core.options.rowHeight}px`,this.footerEl.appendChild(t),this.rows[e]=t}}setVisible(e){this.footerEl&&(this.footerEl.style.display=e?"":"none")}refresh(){if(!this.footerEl||this.core.isDestroyed())return;let e=this.core.options.showSummary;if(this.setVisible(e),!e)return;let t=this.core.options.summaryMethod,r=this.core.rowModel.getDisplayedRows().filter(i=>!i.isDetail&&!i.isGroup),o={...S,...this.core.options.locale};for(let i of["left","center","right"]){let s=this.core.columnModel.getPaneColumns(i),a=this.rows[i];this.cellsByPane[i].length!==s.length&&(a.textContent="",this.cellsByPane[i]=s.map(()=>{let d=g("div","mach-footer-cell");return d.setAttribute("role","cell"),a.appendChild(d),d}));let l=0;s.forEach((d,c)=>{let u=this.cellsByPane[i][c];if(u.style.left=`${l}px`,u.style.width=`${d.currentWidth}px`,l+=d.currentWidth,d.hasCheckbox||d.isDetailToggle||d.colDef.rowDrag){u.textContent="";return}if(t)try{u.textContent=t({colId:d.id,column:d,values:r.map(h=>this.core.getCellValue(h,d))})}catch(h){this.core.reportError(h,"summaryMethod",{colId:d.id}),u.textContent=""}else c===0&&i==="left"?u.textContent=I(o.totalRowsLabel,r.length):u.textContent=""})}}destroy(){this.footerEl?.remove(),this.footerEl=null}};var xt=class{constructor(e){this.core=e;this.barEl=null;this.totalEl=null;this.pageEl=null;this.sizeSelect=null;this.firstBtn=null;this.prevBtn=null;this.nextBtn=null;this.lastBtn=null;this.offs=[]}init(){this.barEl=g("div","mach-pagination"),this.barEl.style.display="none",this.barEl.setAttribute("role","navigation");let e=(t,r,o)=>{let i=g("button",`mach-pagination-btn ${t}`);return i.type="button",i.title=r,i.setAttribute("aria-label",r),i.textContent=o,i};this.totalEl=g("span","mach-pagination-total"),this.firstBtn=e("mach-pagination-first",this.t("pageFirst"),"\xAB"),this.prevBtn=e("mach-pagination-prev",this.t("pagePrev"),"\u2039"),this.pageEl=g("span","mach-pagination-page"),this.nextBtn=e("mach-pagination-next",this.t("pageNext"),"\u203A"),this.lastBtn=e("mach-pagination-last",this.t("pageLast"),"\xBB"),this.firstBtn.addEventListener("click",()=>this.core.rowModel.setPage(1)),this.prevBtn.addEventListener("click",()=>this.core.rowModel.setPage(this.core.rowModel.getCurrentPage()-1)),this.nextBtn.addEventListener("click",()=>this.core.rowModel.setPage(this.core.rowModel.getCurrentPage()+1)),this.lastBtn.addEventListener("click",()=>this.core.rowModel.setPage(this.core.rowModel.getPageCount())),this.barEl.append(this.totalEl,this.firstBtn,this.prevBtn,this.pageEl,this.nextBtn,this.lastBtn),this.core.options.paginationShowSizeSelector&&(this.sizeSelect=document.createElement("select"),this.sizeSelect.className="mach-pagination-size",this.sizeSelect.setAttribute("aria-label","page size"),this.buildSizeOptions(),this.sizeSelect.addEventListener("change",()=>{let t=Number(this.sizeSelect.value);Number.isNaN(t)||this.core.rowModel.setPageSize(t)}),this.barEl.appendChild(this.sizeSelect)),this.core.skeleton.root.appendChild(this.barEl),this.offs.push(this.core.eventBus.on("modelUpdated",()=>this.refresh()),this.core.eventBus.on("paginationChanged",()=>this.refresh())),this.refresh()}buildSizeOptions(){if(!this.sizeSelect)return;let e=this.core.options.paginationPageSizeOptions,t=this.core.options.paginationPageSize;e.includes(t)||(e.push(t),e.sort((r,o)=>r-o)),this.sizeSelect.textContent="";for(let r of e){let o=document.createElement("option");o.value=String(r),o.textContent=I(this.t("perPage"),r),r===t&&(o.selected=!0),this.sizeSelect.appendChild(o)}}t(e){return this.core.options.locale?.[e]??S[e]}rebuild(){this.barEl&&(this.sizeSelect&&this.core.options.paginationShowSizeSelector&&this.buildSizeOptions(),this.refresh())}refresh(){if(!this.barEl||this.core.isDestroyed())return;let e=this.core.rowModel,t=e.paginationActive,r=e.getTotalRowCount(),o=t&&r>0;if(this.barEl.style.display=o?"":"none",!o)return;let i=e.getCurrentPage(),s=e.getPageCount();if(this.totalEl&&this.core.options.paginationShowTotal){let a=I(this.t("paginationTotal"),r);this.totalEl.textContent!==a&&(this.totalEl.textContent=a)}if(this.pageEl){let a=ot(this.t("paginationPage"),i,s);this.pageEl.textContent!==a&&(this.pageEl.textContent=a)}this.firstBtn&&(this.firstBtn.disabled=i<=1),this.prevBtn&&(this.prevBtn.disabled=i<=1),this.nextBtn&&(this.nextBtn.disabled=i>=s),this.lastBtn&&(this.lastBtn.disabled=i>=s),this.sizeSelect&&Number(this.sizeSelect.value)!==this.core.options.paginationPageSize&&(this.sizeSelect.value=String(this.core.options.paginationPageSize))}destroy(){for(let e of this.offs)e();this.offs=[],this.barEl?.remove(),this.barEl=null}};var X=["left","center","right"],Mt=class{constructor(e){this.core=e;this.top=null;this.bottom=null}init(){this.top=this.createSide(this.core.skeleton.pinnedTopEl),this.bottom=this.createSide(this.core.skeleton.pinnedBottomEl)}createSide(e){let t={root:e,segments:{left:g("div"),center:g("div"),right:g("div")},centerViewport:g("div","mach-pinned-viewport"),rowWrappers:{left:[],center:[],right:[]},cells:[],data:[]};for(let r of X)t.segments[r].className=`mach-pinned-seg mach-pinned-seg--${r}`,r!=="center"&&t.segments[r].classList.add("mach-pane--hidden"),r==="center"&&t.centerViewport.appendChild(t.segments[r]);return e.append(t.segments.left,t.centerViewport,t.segments.right),t}setData(e,t){this.core.isDestroyed()||!this.top||!this.bottom||(this.top.data=e??[],this.bottom.data=t??[],this.rebuild(),this.applyLayout(),this.core.relayout())}setTopData(e){this.core.isDestroyed()||!this.top||(this.top.data=e??[],this.rebuildSide(this.top,"top"),this.applyLayout(),this.core.relayout())}setBottomData(e){this.core.isDestroyed()||!this.bottom||(this.bottom.data=e??[],this.rebuildSide(this.bottom,"bottom"),this.applyLayout(),this.core.relayout())}getTopData(){return this.top?this.top.data.slice():[]}getBottomData(){return this.bottom?this.bottom.data.slice():[]}rebuild(){!this.top||!this.bottom||(this.rebuildSide(this.top,"top"),this.rebuildSide(this.bottom,"bottom"))}rebuildSide(e,t){for(let i of e.cells)for(let s of X)for(let a of i[s])E(this.core,a);for(let i of X){for(let s of e.rowWrappers[i])s.remove();e.rowWrappers[i]=[]}if(e.cells=[],e.root.style.display=e.data.length>0?"":"none",e.data.length===0)return;let r=this.core.options.rowHeight,o=this.core.columnModel;e.data.forEach((i,s)=>{let a={id:`__pinned_${t}_${s}`,data:i,rowIndex:-1,selected:!1},l={};for(let d of X){let c=g("div","mach-pinned-row");c.style.height=`${r}px`,c.setAttribute("role","row"),l[d]=[];for(let u of o.getPaneColumns(d)){let h=g("div","mach-cell");if(h.dataset.colId=u.id,h.setAttribute("role","gridcell"),u.hasCheckbox&&h.classList.add("mach-cell--selection"),!u.hasCheckbox&&!u.isDetailToggle&&!u.colDef.rowDrag&&u.colDef.type!=="index")try{et(this.core,h,a,u),Ce(this.core,h,a,u),Ze(this.core,h,a,u)}catch(p){this.core.reportError(p,"pinnedRow.render",{colId:u.id,side:t,rowIndex:s})}c.appendChild(h),l[d].push(h)}e.segments[d].appendChild(c),e.rowWrappers[d].push(c)}e.cells.push(l)})}applyLayout(){if(!this.top||!this.bottom)return;let e=this.core.columnModel,t={left:0,center:0,right:0},r={left:[],center:[],right:[]};for(let o of X){let i=0;for(let s of e.getPaneColumns(o))r[o].push(i),i+=s.currentWidth;t[o]=i}for(let o of[this.top,this.bottom]){let i=o.data.length===0;o.segments.left.classList.toggle("mach-pane--hidden",i||t.left<=0),o.segments.right.classList.toggle("mach-pane--hidden",i||t.right<=0),o.segments.left.style.width=`${t.left}px`,o.segments.right.style.width=`${t.right}px`,o.segments.center.style.width=`${t.center}px`,o.cells.forEach(s=>{let a=0;for(let l of X){let d=e.getPaneColumns(l);s[l].forEach((c,u)=>{c.style.width=`${d[u].currentWidth}px`,c.style.left=`${r[l][u]}px`,c.setAttribute("aria-colindex",String(a+u+1))}),a+=d.length}})}}onScrollLeft(e){this.top&&(this.top.segments.center.style.transform=`translateX(${-e}px)`),this.bottom&&(this.bottom.segments.center.style.transform=`translateX(${-e}px)`)}refresh(){this.rebuild(),this.applyLayout()}destroy(){for(let e of[this.top,this.bottom])if(e)for(let t of e.cells)for(let r of X)for(let o of t[r])E(this.core,o);this.top=null,this.bottom=null}};var kt=class{constructor(e){this.core=e;this.barEl=null;this.items={};this.offs=[]}init(){this.barEl=g("div","mach-statusbar"),this.barEl.style.display="none",this.barEl.setAttribute("role","status"),this.core.skeleton.root.appendChild(this.barEl),this.rebuild(),this.offs.push(this.core.eventBus.on("modelUpdated",()=>this.refresh()),this.core.eventBus.on("selectionChanged",()=>this.refresh()),this.core.eventBus.on("rangeSelectionChanged",()=>this.refresh()),this.core.eventBus.on("cellValueChanged",()=>this.refresh()))}rebuild(){if(!this.barEl)return;this.barEl.textContent="",this.items={};let e=this.core.options;if(!e.statusBarEnabled){this.barEl.style.display="none";return}for(let t of e.statusBarPanels){let r=g("span",`mach-statusbar-item mach-statusbar-item--${t}`);this.barEl.appendChild(r),this.items[t]=r}this.refresh()}refresh(){if(!this.barEl||this.core.isDestroyed())return;let e=this.core.options;if(this.barEl.style.display=e.statusBarEnabled?"":"none",!e.statusBarEnabled)return;let t={...S,...e.locale},r=(o,i)=>{let s=t[o]??S[o];return i===void 0?s:I(s,typeof i=="number"?i:parseFloat(String(i))||0)};if(this.items.rowCount){let o=this.core.rowModel,i=o.getDisplayTotalCount(),s=o.paginationActive?o.getTotalRowCount():o.getDisplayedRowCount(),a=o.isInfinite&&i>s?`${I(r("totalRowsLabel"),s)} / ${i}`:I(r("totalRowsLabel"),s);this.items.rowCount.textContent!==a&&(this.items.rowCount.textContent=a)}if(this.items.selectedRowCount){let o=this.core.selectionService.getSelectedNodes().length,i=I(r("statusSelected"),o);this.items.selectedRowCount.textContent!==i&&(this.items.selectedRowCount.textContent=i)}if(this.items.rangeAggregate){let o=this.core.bodyRenderer.normalizedRange(),i="";if(o){let s=this.core.columnModel.getOrderedVisible(),a=0,l=0;for(let d=o.r1;d<=o.r2;d++){let c=this.core.rowModel.getDisplayedRow(d);if(!(!c||c.isDetail||c.isGroup))for(let u=o.c1;u<=o.c2;u++){let h=s[u];if(!h)continue;let p=this.core.getCellValue(c,h);typeof p=="number"&&!isNaN(p)&&(a+=p,l++)}}if(l>0){let d=Math.round(a/l*100)/100,c=Number.isInteger(a)?String(a):String(Math.round(a*100)/100);i=`${r("statusSum",c)} \xB7 ${r("statusAvg",String(d))} \xB7 ${r("statusCount",String(l))}`}}this.items.rangeAggregate.textContent!==i&&(this.items.rangeAggregate.textContent=i)}}destroy(){for(let e of this.offs)e();this.offs=[],this.barEl?.remove(),this.barEl=null}};function ar(){try{return typeof localStorage>"u"?null:localStorage}catch{return null}}function Ri(n){return encodeURIComponent(String(n).trim()).replace(/%/g,"~")}function Ti(n,e){typeof n.width=="number"&&Number.isFinite(n.width)&&n.width>0&&(e.width=n.width),n.flex===null?e.flex=null:typeof n.flex=="number"&&Number.isFinite(n.flex)&&n.flex>0&&(e.flex=n.flex),(n.widthMode==="auto"||n.widthMode==="manual")&&(e.widthMode=n.widthMode)}function Si(n,e){(n.sort==="asc"||n.sort==="desc"||n.sort===null)&&(e.sort=n.sort),n.sortIndex===null?e.sortIndex=null:typeof n.sortIndex=="number"&&Number.isInteger(n.sortIndex)&&n.sortIndex>=0&&(e.sortIndex=n.sortIndex)}function po(n){return[["app",n.app],["tenant",n.tenant],["user",n.user],["route",n.route],["table",n.table],["schema",n.schema]].filter(t=>t[1]!==void 0&&String(t[1]).trim()!=="").map(([t,r])=>`${t}=${Ri(r)}`).join(";")}function Se(n,e){if(!Array.isArray(n)||n.length>e)return null;let t=[],r=new Set;for(let o of n){if(o==null||typeof o!="object")continue;let i=o;if(typeof i.colId!="string"||i.colId.length===0||i.colId.length>256||r.has(i.colId))continue;r.add(i.colId);let s={colId:i.colId};typeof i.hide=="boolean"&&(s.hide=i.hide),Ti(i,s),(i.pinned==="left"||i.pinned==="right"||i.pinned===null)&&(s.pinned=i.pinned),Si(i,s),t.push(s)}return t}function lr(n={}){let e=(n.namespace??"mach-table:col-state").replace(/:+$/,""),t=Math.max(1,Math.floor(n.version??1)),r=Math.max(1,Math.floor(n.maxColumns??1e3)),o=s=>`${e}:${s}`,i=(s,a,l)=>{try{n.onError?.(s,a,l)}catch{}};return{storageKey:o,load(s){try{let a=(n.storage??ar())?.getItem(o(s));if(!a)return null;let l=JSON.parse(a);if(Array.isArray(l)){let u=Se(l,r);return!u||!n.migrate?u:Se(n.migrate(u,0,t),r)}if(l==null||typeof l!="object")return null;let d=l;if(!Number.isInteger(d.version)||typeof d.version!="number")return null;let c=Se(d.columns,r);return c?d.version===t?c:n.migrate?Se(n.migrate(c,d.version,t),r):null:null}catch(a){return i(a,"load",s),null}},save(s,a){try{let l=Se(a,r);if(!l)throw new TypeError(`[MachTable] Invalid column state for "${s}".`);let d={version:t,savedAt:Date.now(),columns:l};(n.storage??ar())?.setItem(o(s),JSON.stringify(d))}catch(l){i(l,"save",s)}},clear(s){try{(n.storage??ar())?.removeItem(o(s))}catch(a){i(a,"clear",s)}}}}var dr=lr();function It(n,e){dr.save(n,e)}function Pt(n){return dr.load(n)}function fo(n){dr.clear(n)}function cr(){try{return typeof localStorage>"u"?null:localStorage}catch{return null}}function mo(n){return typeof TextEncoder>"u"?n.length*2:new TextEncoder().encode(n).byteLength}function ur(n={}){let e=(n.namespace??"mach-table:grid-state").replace(/:+$/,""),t=Math.max(1024,Math.floor(n.maxBytes??512*1024)),r=i=>`${e}:${i}`,o=(i,s,a)=>{try{n.onError?.(i,s,a)}catch{}};return{storageKey:r,load(i){try{let s=(n.storage??cr())?.getItem(r(i));if(!s||mo(s)>t)return null;let a=JSON.parse(s);return a?.schemaVersion!==1&&a?.schemaVersion!==2?null:O(a.state)}catch(s){return o(s,"load",i),null}},save(i,s){try{let a=O(s);if(!a)throw new TypeError(`[MachTable] Invalid grid state for "${i}".`);let l=JSON.stringify({schemaVersion:2,savedAt:Date.now(),state:a});if(mo(l)>t)throw new RangeError(`[MachTable] Grid state for "${i}" exceeds ${t} bytes.`);(n.storage??cr())?.setItem(r(i),l)}catch(a){o(a,"save",i)}},clear(i){try{(n.storage??cr())?.removeItem(r(i))}catch(s){o(s,"clear",i)}}}}var hr=ur();function At(n,e){hr.save(n,e)}function Lt(n){return hr.load(n)}function go(n){hr.clear(n)}var Di=[[/^(success|ok|done|complete|completed|normal|active|enabled|启用|正常|完成|已完成|运行|运行中|在线|生效)$/i,"success"],[/^(warning|warn|hold|pending|standby|待机|待审核|暂停|预警|部分完成)$/i,"warning"],[/^(error|fail|failed|danger|fault|offline|disabled|故障|失败|错误|异常|停用|离线|断开)$/i,"danger"],[/^(info|processing|new|draft|进行中|新建|草稿|审批中|同步中)$/i,"info"]];function pr(n,e){let t=String(n??"");if(e){let r=e[t];if(r)return r;let o=e[t.toLowerCase()];if(o)return o}for(let[r,o]of Di)if(r.test(t))return o;return"neutral"}function fr(n={}){return e=>{if(e.value==null||e.value==="")return"";let t=pr(e.value,n.variantMap),r=n.labelMap?.[String(e.value)]??(e.formatted||String(e.value)),o=document.createElement("span");return o.className=`mach-tag mach-tag--${t}`,o.textContent=r,o}}function mr(n={}){return e=>{let t=Number(e.value);if(isNaN(t))return e.formatted;let r=Math.max(0,Math.min(100,t)),o=document.createElement("div");o.className="mach-progress";let i=document.createElement("div");i.className="mach-progress__track";let s=document.createElement("div");if(s.className="mach-progress__bar",s.style.width=`${r}%`,n.color&&(s.style.background=n.color),i.appendChild(s),o.appendChild(i),n.showValue!==!1){let a=document.createElement("span");a.className="mach-progress__label",a.textContent=`${Math.round(r)}${n.unit??"%"}`,o.appendChild(a)}return o}}function gr(n){if(n.value==null||n.value==="")return"";let e=document.createElement("span");return e.className="mach-link",e.textContent=n.formatted||String(n.value),e}var yr={edit:'<path d="M11.5 2.5l2 2L5 13H3v-2l8.5-8.5z"/>',delete:'<path d="M3 5h10M6 5V3h4v2M5 5l.7 8h4.6L11 5"/>',view:'<path d="M1.5 8s2.4-4.2 6.5-4.2S14.5 8 14.5 8s-2.4 4.2-6.5 4.2S1.5 8 1.5 8z"/><circle cx="8" cy="8" r="1.8"/>',copy:'<rect x="5" y="5" width="8" height="8" rx="1"/><path d="M3 11V3h8"/>',download:'<path d="M8 2v8m0 0l-3-3m3 3l3-3M2.5 13.5h11"/>',refresh:'<path d="M13 3v4h-4M3 13V9h4"/><path d="M13 7a5.5 5.5 0 00-9.7-2.6M3 9a5.5 5.5 0 009.7 2.6"/>',close:'<path d="M3.5 3.5l9 9m0-9l-9 9"/>',check:'<path d="M2.5 8.5l3.5 3.5 7.5-8"/>',plus:'<path d="M8 2.5v11M2.5 8h11"/>',search:'<circle cx="7" cy="7" r="4.5"/><path d="M10.5 10.5L14 14"/>',more:'<circle cx="3" cy="8" r=".9" fill="currentColor" stroke="none"/><circle cx="8" cy="8" r=".9" fill="currentColor" stroke="none"/><circle cx="13" cy="8" r=".9" fill="currentColor" stroke="none"/>'};function Gt(n,e=14){let t=yr[n]??"";return`<svg viewBox="0 0 16 16" width="${e}" height="${e}" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">${t}</svg>`}var q=null,F=null;function K(n=!1){q?.remove(),q=null,F&&(F.setAttribute("aria-expanded","false"),n&&F.isConnected&&F.focus({preventScroll:!0})),F=null,document.removeEventListener("mousedown",vo,!0),document.removeEventListener("keydown",vr,!0)}function vo(n){q&&!q.contains(n.target)&&!F?.contains(n.target)&&K()}function vr(n){if(!q)return;if(n.key==="Escape"){n.preventDefault(),K(!0);return}let e=[...q.querySelectorAll("button:not(:disabled)")];if(e.length===0)return;if(n.key==="Tab"){let o=e.indexOf(document.activeElement);(!n.shiftKey&&o===e.length-1||n.shiftKey&&o<=0)&&(n.preventDefault(),e[n.shiftKey?e.length-1:0].focus());return}if(n.key!=="ArrowDown"&&n.key!=="ArrowUp")return;n.preventDefault();let t=e.indexOf(document.activeElement),r=n.key==="ArrowDown"?1:-1;e[(t+r+e.length)%e.length].focus()}function wo(n,e){let t=document.createElement("button");return t.type="button",t.className=e,n.variant&&n.variant!=="default"&&t.classList.add(`${e}--${n.variant}`),t.disabled=n.disabled===!0,n.icon&&yr[n.icon]?t.innerHTML=`${Gt(n.icon,16)}<span>${n.label}</span>`:t.textContent=n.label,t.addEventListener("click",()=>n.pick(t)),t}function Ei(n,e){K();let t=document.createElement("div");t.className="mach-context-menu mach-action-menu",t.setAttribute("role","menu");for(let i of e){let s=wo(i,"mach-context-menu-item");s.setAttribute("role","menuitem"),t.appendChild(s)}document.body.appendChild(t);let r=n.getBoundingClientRect(),o=t.getBoundingClientRect();t.style.left=`${Math.min(Math.max(8,r.left),window.innerWidth-o.width-8)}px`,t.style.top=`${Math.min(r.bottom+4,window.innerHeight-o.height-8)}px`,q=t,F=n,n.setAttribute("aria-expanded","true"),document.addEventListener("mousedown",vo,!0),document.addEventListener("keydown",vr,!0),t.querySelector("button:not(:disabled)")?.focus({preventScroll:!0})}function xi(n,e,t){K();let r=document.createElement("div");r.className="mach-action-drawer-backdrop";let o=document.createElement("section");o.className="mach-action-drawer",o.setAttribute("role","dialog"),o.setAttribute("aria-modal","true"),o.setAttribute("aria-label",e);let i=document.createElement("header");i.className="mach-action-drawer__header";let s=document.createElement("strong");s.textContent=e;let a=document.createElement("button");a.type="button",a.className="mach-action-drawer__close",a.setAttribute("aria-label","Close"),a.title="Close",a.innerHTML=Gt("close",16),a.addEventListener("click",()=>K(!0)),i.append(s,a);let l=document.createElement("div");l.className="mach-action-drawer__body";for(let d of t)l.appendChild(wo(d,"mach-action-drawer__item"));o.append(i,l),r.appendChild(o),r.addEventListener("mousedown",d=>{d.target===r&&K(!0)}),document.body.appendChild(r),q=r,F=n,n.setAttribute("aria-expanded","true"),document.addEventListener("keydown",vr,!0),o.querySelector("button:not(:disabled)")?.focus({preventScroll:!0})}function W(n,e){if(typeof n=="function")try{return n(e)}catch{return!1}return n===!0}function yo(n){return n.danger?"danger":n.variant??"default"}function Co(n){return n.permission?typeof n.permission=="string"?[n.permission]:n.permission:[]}function wr(n,e,t){return{...n.id?{actionId:n.id}:{},permissions:Co(n),...t?{message:t}:{},params:e}}function bo(n,e,t){let r=t.api.getGridOption("actionPolicy");try{r?.onError?r.onError(n,wr(e,t)):console.error("[mach-table] action handler failed",n)}catch(o){console.error("[mach-table] action error policy failed",o,n)}}function Mi(n,e){if(Co(n).length===0)return!0;let r=e.api.getGridOption("actionPolicy");if(!r?.canAccess)return!0;try{return r.canAccess(wr(n,e))}catch(o){return bo(o,n,e),!1}}function ki(n,e){return n.filter(t=>{if(!Mi(t,e))return!1;if(!t.show)return!0;try{return t.show(e)}catch{return!1}})}function ue(n){let e=Math.max(0,n.max??3),t=n.overflow??"menu";return r=>{let o=ki(n.actions,r);if(o.length===0)return"";let i=document.createElement("div");i.className="mach-actions";let s=t==="inline"?o:o.slice(0,e),a=t==="inline"?[]:o.slice(e),l=(d,c)=>{if(W(d.disabled,r))return;c.disabled=!0,c.classList.add("mach-action-btn--loading"),(async()=>{if(d.confirm!=null&&d.confirm!==!1){let h=typeof d.confirm=="function"?await d.confirm(r):d.confirm;if(h===!1)return;let p=typeof h=="string"?h:d.label??d.title??"Confirm action",m=r.api.getGridOption("actionPolicy");if(!(m?.confirm?await m.confirm(wr(d,r,p)):typeof window<"u"&&typeof window.confirm=="function"?window.confirm(p):!1))return}await d.onClick(r)})().catch(h=>bo(h,d,r)).finally(()=>{c.isConnected&&(c.disabled=W(d.disabled,r)||W(d.loading,r),c.classList.toggle("mach-action-btn--loading",W(d.loading,r)))})};for(let d of s){let c=document.createElement("button");c.type="button",c.className="mach-action-btn";let u=yo(d);u!=="default"&&c.classList.add(`mach-action-btn--${u}`);let h=d.title??d.label??"Action";c.title=h,c.setAttribute("aria-label",h),c.disabled=W(d.disabled,r),W(d.loading,r)&&(c.disabled=!0,c.classList.add("mach-action-btn--loading")),d.icon&&yr[d.icon]?(c.innerHTML=Gt(d.icon),c.classList.add("mach-action-btn--icon")):c.textContent=d.label??h,c.addEventListener("mousedown",p=>p.stopPropagation()),c.addEventListener("click",p=>{p.stopPropagation(),l(d,c)}),i.appendChild(c)}if(a.length>0){let d=document.createElement("button");d.type="button",d.className="mach-action-btn mach-action-btn--icon";let c=r.api.getGridOption("locale")??{},u=n.moreLabel??c.actionMore??S.actionMore;d.title=u,d.setAttribute("aria-label",u),d.setAttribute("aria-haspopup",t==="drawer"?"dialog":"menu"),d.setAttribute("aria-expanded","false"),d.innerHTML=`${Gt("more",16)}<span class="mach-sr-only">\u22EF</span>`,d.addEventListener("mousedown",h=>h.stopPropagation()),d.addEventListener("click",h=>{h.stopPropagation();let p=a.map(m=>({label:m.label??m.title??"Action",icon:m.icon,variant:yo(m),disabled:W(m.disabled,r)||W(m.loading,r),pick:f=>{K(),l(m,f)}}));t==="drawer"?xi(d,n.drawerTitle??u,p):Ei(d,p)}),i.appendChild(d)}return{el:i,destroy:()=>{F&&i.contains(F)&&K()}}}}function ce(n,e,t){return n??e??t}function Ii(n,e){let t=e.api.getGridOption("locale")??{};return{view:ce(n.labels?.view,t.actionView,S.actionView),edit:ce(n.labels?.edit,t.actionEdit,S.actionEdit),delete:ce(n.labels?.delete,t.actionDelete,S.actionDelete),confirm:ce(n.labels?.confirm,t.actionConfirm,S.actionConfirm),save:ce(n.labels?.save,t.actionSave,S.actionSave),cancel:ce(n.labels?.cancel,t.actionCancel,S.actionCancel)}}function Pi(n,e,t){let r=async()=>{if(!await e.api.stopEditingRow(!1)||!n.onSave)return;let s=e.api.getChanges().filter(a=>a.rowId===e.node.id);try{await n.onSave(e,s),e.api.markChangesSaved([e.node.id])}catch(a){throw e.api.startEditingRow(e.rowIndex),a}},o=n.onSave?t.save:n.labels?.confirm??n.labels?.save??t.confirm;return ue({actions:[{icon:"check",title:o,variant:"primary",onClick:r},{icon:"close",title:t.cancel,onClick:()=>e.api.stopEditingRow(!0).then(()=>{})}],overflow:"inline"})(e)}function Ai(n,e,t){let r=[];return n.onView&&r.push({id:"view",icon:"view",title:t.view,variant:"primary",...n.permissions?.view?{permission:n.permissions.view}:{},onClick:n.onView}),n.edit!==!1&&r.push({id:"edit",icon:"edit",title:t.edit,variant:"warning",...n.permissions?.edit?{permission:n.permissions.edit}:{},onClick:()=>{e.api.startEditingRow(e.rowIndex)}}),n.onDelete&&r.push({id:"delete",icon:"delete",title:t.delete,variant:"danger",...n.permissions?.delete?{permission:n.permissions.delete}:{},...n.confirmDelete?{confirm:n.confirmDelete===!0?t.delete:n.confirmDelete}:{},onClick:n.onDelete}),r.push(...n.extraActions??[]),r}function Ft(n={}){return e=>{let t=Ii(n,e);if(e.api.isRowEditing(e.rowIndex))return Pi(n,e,t);let r=Ai(n,e,t);return ue({actions:r,max:n.max,overflow:n.overflow??"drawer",moreLabel:n.moreLabel,drawerTitle:n.drawerTitle})(e)}}var Li=fr(),Gi=mr();function Nt(n){n("statusTag",Li),n("progressBar",Gi),n("link",gr)}var H=new Map,J=new Map;function Ro(n,e){let t=H.get(n);return H.set(n,e),()=>{H.get(n)===e&&(t?H.set(n,t):H.delete(n))}}function De(n){return H.get(n)}function To(n,e){let t=J.get(n);return J.set(n,e),()=>{J.get(n)===e&&(t?J.set(n,t):J.delete(n))}}function Ot(n){return J.get(n)}function So(n,e){H.has(n)||H.set(n,e)}function Do(){H.clear(),J.clear()}function Eo(n){if(!n||n.length===0)return[];let e=[],t=new Map,r=0,o=(i,s)=>{for(let a of i){if(ne(a)){if(!Array.isArray(a.children)||a.children.length===0){e.push(`\u5217\u5206\u7EC4 "${a.headerName??a.groupId??"?"}" \u7684 children \u4E3A\u7A7A`);continue}o(a.children,s+1);continue}r++;let l=a.colId??a.field??`col_${r}`;t.set(l,(t.get(l)??0)+1),a.field&&!ee(a.field)&&e.push(`\u5217 "${l}" \u7684 field \u8DEF\u5F84\u4E0D\u5B89\u5168\u6216\u65E0\u6548\uFF0C\u5DF2\u7981\u6B62\u8BFB\u53D6\u548C\u5199\u5165`),!a.field&&!a.valueGetter&&!a.checkboxSelection&&!a.autoRowSpan&&!a.rowSpan&&e.push(`\u5217 "${l}" \u65E2\u65E0 field \u4E5F\u65E0 valueGetter\uFF0C\u5C06\u59CB\u7EC8\u663E\u793A\u7A7A\u503C\uFF08\u7EAF\u5DE5\u5177\u5217\u8BF7\u5FFD\u7565\u6B64\u63D0\u793A\uFF09`),a.width!=null&&a.minWidth!=null&&a.width<a.minWidth&&e.push(`\u5217 "${l}" \u7684 width(${a.width}) \u5C0F\u4E8E minWidth(${a.minWidth})\uFF0C\u5C06\u6309 minWidth \u6E32\u67D3`),a.width!=null&&a.maxWidth!=null&&a.width>a.maxWidth&&e.push(`\u5217 "${l}" \u7684 width(${a.width}) \u5927\u4E8E maxWidth(${a.maxWidth})\uFF0C\u5C06\u6309 maxWidth \u6E32\u67D3`)}};o(n,0);for(let[i,s]of t)s>1&&e.push(`\u5B58\u5728 ${s} \u4E2A\u91CD\u590D\u7684 colId/field "${i}"\uFF0C\u5DF2\u81EA\u52A8\u52A0\u540E\u7F00\u533A\u5206\uFF0C\u5EFA\u8BAE\u663E\u5F0F\u547D\u540D colId`);return e}var Fi=z.map(n=>`on${n.charAt(0).toUpperCase()}${n.slice(1)}`),xo=new Set([...le,...Fi]);function Ni(n,e){if(n===e)return 0;if(n.length===0)return e.length;if(e.length===0)return n.length;let t=Array.from({length:e.length+1},(r,o)=>o);for(let r=1;r<=n.length;r++){let o=[r];for(let i=1;i<=e.length;i++)o[i]=Math.min(o[i-1]+1,t[i]+1,t[i-1]+(n[r-1]===e[i-1]?0:1));t=o}return t[e.length]}function Oi(n){let e,t=Number.POSITIVE_INFINITY;for(let o of xo){let i=Ni(n.toLowerCase(),o.toLowerCase());i<t&&(t=i,e=o)}let r=Math.max(2,Math.floor(n.length*.3));return t<=r?e:void 0}function Hi(n){let e=[];return n.rowKey!=null&&typeof n.rowKey!="string"&&typeof n.rowKey!="function"&&e.push({code:"INVALID_OPTION_VALUE",option:"rowKey",message:"rowKey \u5FC5\u987B\u662F\u5B57\u6BB5\u8DEF\u5F84\u6216\u8FD4\u56DE\u7A33\u5B9A\u4E1A\u52A1\u4E3B\u952E\u7684\u51FD\u6570"}),n.domLayout==="autoHeight"&&n.datasource!=null&&e.push({code:"OPTION_CONFLICT",option:"domLayout",message:"autoHeight \u4F1A\u6E32\u67D3\u5168\u90E8\u5DF2\u52A0\u8F7D\u884C\uFF0C\u4E0D\u9002\u7528\u4E8E datasource \u65E0\u9650\u6EDA\u52A8\u6A21\u5F0F"}),e.push(...Bi(n)),n.enableColumnResize!=null&&typeof n.enableColumnResize!="boolean"&&e.push({code:"INVALID_OPTION_VALUE",option:"enableColumnResize",message:"enableColumnResize \u5FC5\u987B\u662F boolean\uFF1B\u672A\u914D\u7F6E\u65F6\u9ED8\u8BA4\u5173\u95ED"}),e}function Bi(n){if(n.datasourceMode!=="block")return[];let e=[];return n.datasource==null&&e.push({code:"OPTION_CONFLICT",option:"datasourceMode",message:"datasourceMode='block' requires a datasource"}),typeof n.getRowHeight=="function"&&e.push({code:"OPTION_CONFLICT",option:"getRowHeight",message:"Random-access block rows require fixed rowHeight so unloaded offsets remain deterministic"}),n.masterDetail===!0&&e.push({code:"OPTION_CONFLICT",option:"masterDetail",message:"masterDetail is not supported by the sparse random-access block row model"}),n.treeData===!0&&e.push({code:"OPTION_CONFLICT",option:"treeData",message:"treeData requires the local/tree row model and cannot use random-access blocks"}),Mo(n)||e.push({code:"MISSING_STABLE_ROW_ID",option:"getRowId",message:"Random-access blocks require rowKey/getRowId to preserve selection and identity after eviction"}),e}function Mo(n){return typeof n.getRowId=="function"||n.rowKey!=null}function Vi(n){let e=new Set(["enableColumnResize","pagination","rowKey"]),t=[];for(let r of le){if(e.has(r)||!Object.prototype.hasOwnProperty.call(n,r))continue;let o=n[r],i=_[r].kind;be(o,i)||t.push({code:"INVALID_OPTION_VALUE",option:r,message:`${r} \u503C\u7C7B\u578B\u65E0\u6548\uFF0C\u671F\u671B ${i}`})}return t}function Ht(n){let e=n,t=[];for(let o of Object.keys(e)){if(xo.has(o))continue;let i=Oi(o);t.push({code:"UNKNOWN_OPTION",option:o,...i?{suggestion:i}:{},message:i?`\u672A\u77E5 GridOption "${o}"\uFF0C\u662F\u5426\u60F3\u4F7F\u7528 "${i}"\uFF1F`:`\u672A\u77E5 GridOption "${o}"\uFF0C\u8BE5\u503C\u4E0D\u4F1A\u751F\u6548`})}let r=e.pagination;if(r!=null&&typeof r!="boolean"&&typeof r!="object"&&t.push({code:"INVALID_OPTION_VALUE",option:"pagination",message:"pagination \u5FC5\u987B\u662F boolean \u6216\u914D\u7F6E\u5BF9\u8C61"}),e.datasource!=null&&r!==void 0&&r!==!1&&t.push({code:"OPTION_CONFLICT",option:"pagination",message:"datasource \u987A\u5E8F\u65E0\u9650\u6A21\u5F0F\u4E0E pagination \u4E0D\u80FD\u540C\u65F6\u542F\u7528\uFF1B\u666E\u901A\u670D\u52A1\u7AEF\u5206\u9875\u8BF7\u4F7F\u7528 pagination.mode='server'"}),r&&typeof r=="object"){let o=r;o.mode==="server"&&!Mo(e)&&t.push({code:"MISSING_STABLE_ROW_ID",option:"getRowId",message:"\u670D\u52A1\u7AEF\u5206\u9875\u5EFA\u8BAE\u63D0\u4F9B\u7A33\u5B9A getRowId\uFF0C\u5426\u5219\u8DE8\u9875\u9009\u62E9\u4E0E\u589E\u91CF\u66F4\u65B0\u65E0\u6CD5\u53EF\u9760\u4FDD\u6301"}),o.mode==="server"&&o.total!==void 0&&(typeof o.total!="number"||!Number.isFinite(o.total)||o.total<0)&&t.push({code:"INVALID_OPTION_VALUE",option:"pagination.total",message:"\u670D\u52A1\u7AEF\u5206\u9875 total \u5FC5\u987B\u662F\u975E\u8D1F\u6709\u9650\u6570"})}return e.treeData===!0&&e.masterDetail===!0&&t.push({code:"OPTION_CONFLICT",option:"masterDetail",message:"treeData \u4E0E masterDetail \u4E0D\u80FD\u540C\u65F6\u542F\u7528\uFF0C\u4E3B\u4ECE\u660E\u7EC6\u5C06\u88AB\u5FFD\u7565"}),t.push(...Vi(e)),t.push(...Hi(e)),t}function ko(n){let e=/^v?(\d+)(?:\.(\d+))?(?:\.(\d+))?(?:[-+].*)?$/.exec(n.trim());return e?[Number(e[1]),Number(e[2]??0),Number(e[3]??0)]:null}function Cr(n,e){for(let t=0;t<3;t++)if(n[t]!==e[t])return n[t]<e[t]?-1:1;return 0}function zi(n){return n[0]>0?[n[0]+1,0,0]:n[1]>0?[0,n[1]+1,0]:[0,0,n[2]+1]}function _i(n,e){if(e==="*"||e.toLowerCase()==="latest")return!0;let t=/^(\^|~|>=|<=|>|<|=)?\s*(.+)$/.exec(e);if(!t)return!1;let r=ko(t[2]);if(!r)return!1;let o=Cr(n,r);switch(t[1]??"="){case">=":return o>=0;case"<=":return o<=0;case">":return o>0;case"<":return o<0;case"^":return o>=0&&Cr(n,zi(r))<0;case"~":return o>=0&&Cr(n,[r[0],r[1]+1,0])<0;default:return o===0}}function Io(n,e){if(!e?.trim())return!0;let t=n?ko(n):null;return t?e.split("||").some(r=>{let o=r.trim().split(/\s+/).filter(Boolean);return o.length>0&&o.every(i=>_i(t,i))}):!1}function Wi(n){return[...new Set((n??[]).map(e=>e.trim()).filter(Boolean))]}function Bt(n){let e=new Map;for(let t of n??[]){let r=(typeof t=="string"?t:t?.key??"").trim();if(!r||e.has(r))continue;let o=typeof t=="object"?t.version?.trim():void 0;e.set(r,{key:r,...o?{version:o}:{}})}return[...e.values()]}function Vt(n){let e=[],t=new Map;for(let l of n){let d=typeof l?.key=="string"?l.key.trim():"";if(!d){e.push({code:"INVALID_FEATURE_KEY",message:"GridFeature.key must be a non-empty string"});continue}if(t.has(d)){e.push({code:"DUPLICATE_FEATURE",feature:d,message:`Duplicate GridFeature key: ${d}`});continue}t.set(d,l)}let r=new Set;for(let[l,d]of t){for(let c of Bt(d.requires)){let u=t.get(c.key);u?Io(u.version,c.version)||(r.add(l),e.push({code:"UNSUPPORTED_FEATURE_VERSION",feature:l,dependency:c.key,message:`GridFeature "${l}" requires "${c.key}" ${c.version}, received ${u.version??"unversioned"}`})):(r.add(l),e.push({code:"MISSING_FEATURE_DEPENDENCY",feature:l,dependency:c.key,message:`GridFeature "${l}" requires missing feature "${c.key}"`}))}for(let c of Wi(d.conflicts))if(t.has(c)){r.add(l),e.push({code:"FEATURE_CONFLICT",feature:l,dependency:c,message:`GridFeature "${l}" conflicts with "${c}"`});break}}let o=[],i=new Set,s=new Set,a=l=>{if(s.has(l))return!r.has(l);if(i.has(l))return r.add(l),e.push({code:"FEATURE_CYCLE",feature:l,message:`GridFeature dependency cycle includes "${l}"`}),!1;let d=t.get(l);if(!d||r.has(l))return!1;i.add(l);let c=!0;for(let u of Bt(d.requires))a(u.key)||(c=!1);return i.delete(l),s.add(l),c?(o.push(d),!0):(r.add(l),!1)};for(let l of t.keys())a(l);return{features:o.filter(l=>!r.has(l.key.trim())),issues:e}}var Ki=["datasource","treeData"],qi=["columnState.","gridState."],$i=new Set(["selectionChanged","sortChanged","filterChanged","columnMoved","columnVisibilityChanged","displayedColumnsChanged","paginationChanged","detailToggled"]),Ui=0;function Po(){Nt(So)}var he=class{constructor(e,t){this.destroyed=!1;this.autoIdCounter=0;this.readyRafId=0;this.readySettled=!1;this.lastColumnLayoutSignature="";this.activeFeatures=new Map;this.recentErrors=[];this.stateSaveTimer=null;this.gridStateLoadToken=0;this.columnStateLoadToken=0;this.lastValidatedDefs=null;this.issuedWarningSignatures=new Set;let r;this.readyPromise=new Promise(o=>{r=o}),this.resolveReady=r,this.gridId=++Ui,Po(),this.options=Pr(t),this.eventBus=new Z((o,i)=>{i==="gridError"?console.error("[mach-table] error in gridError listener",o):this.reportError(o,"eventBus.listener",{eventType:i})}),this.columnModel=new Fe(this),this.rowModel=new _e(this),this.selectionService=new We(this),this.skeleton=new wt(this),this.headerRenderer=new bt(this),this.bodyRenderer=new Dt(this),this.resizeService=new Ke(this),this.columnDragService=new qe(this),this.keyboardService=new Ye(this),this.editingService=new tt(this),this.undoService=new dt(this),this.performanceMonitor=new ht,this.updateScheduler=new pt(o=>this.applyScheduledUpdate(o)),this.filterPopup=new nt(this),this.columnMenu=new it(this),this.contextMenuService=new st(this),this.tooltipService=new at(this),this.watermarkService=new lt(this),this.paginationBar=new xt(this),this.pinnedRowsRenderer=new Mt(this),this.summaryRenderer=new Et(this),this.statusBarService=new kt(this),this.api=new vt(this),this.changeTracker=new ct(this);try{this.changeTracker.init(),this.skeleton.init(e,this.options),this.watermarkService.init(),this.bodyRenderer.init(),this.keyboardService.init(),this.tooltipService.init(),this.paginationBar.init(),this.summaryRenderer.init(),this.statusBarService.init(),this.pinnedRowsRenderer.init(),this.rowModel.restorePagination(this.options.paginationPage,this.options.paginationPageSize),this.columnModel.setColumnDefs(this.options.columnDefs),this.rowModel.setAdvancedFilterModel(this.options.advancedFilterModel),this.rowModel.setQuickFilter(this.options.quickFilterText),this.refreshAriaState(),this.validateDefs(this.options.columnDefs),this.checkWarnings(t),this.loadPersistedColumnState(),this.headerRenderer.build(),this.options.datasource?this.rowModel.startInfinite().catch(()=>{}):this.rowModel.setRowData(this.options.rowData),this.options.initialState&&this.api.applyState(this.options.initialState,{emitEvents:!1}),this.loadPersistedGridState(),this.relayout(),this.pinnedRowsRenderer.setData(this.options.pinnedTopRowData,this.options.pinnedBottomRowData),this.setFeatures(this.options.features),this.readyRafId=requestAnimationFrame(()=>{this.readyRafId=0,this.destroyed||this.emit("gridReady",{}),this.settleReady()})}catch(o){throw this.reportError(o,"grid.constructor"),this.destroy(),o}}getApi(){return this.api}whenReady(){return this.readyPromise}settleReady(){this.readySettled||(this.readySettled=!0,this.resolveReady(this.api))}resolveCellRenderer(e){let t=this.options.components?.cellRenderers?.[e];if(t)return t;let r=De(e);return r||(Po(),r=De(e)),r}resolveCellEditor(e){return this.options.components?.cellEditors?.[e]??Ot(e)}inactiveFeatureDependency(e){return Bt(e.requires).map(t=>t.key).find(t=>!this.activeFeatures.has(t))}setFeatures(e){if(this.destroyFeatures(),this.destroyed)return;let t=Vt(e??[]);for(let r of t.issues)this.reportError(new Error(r.message),"feature.manifest",{code:r.code,...r.feature?{key:r.feature}:{},...r.dependency?{dependency:r.dependency}:{}});for(let r of t.features){let o=r.key.trim(),i=this.inactiveFeatureDependency(r);if(i){this.reportError(new Error(`GridFeature "${o}" dependency "${i}" did not initialise`),"feature.manifest",{code:"FEATURE_DEPENDENCY_SETUP_FAILED",key:o,dependency:i});continue}let s=[],a=d=>{let c=!0,u=()=>{c&&(c=!1,d())};return s.push(u),u},l={api:this.api,root:this.skeleton.root,getOptions:()=>this.options,addEventListener:(d,c)=>a(this.eventBus.on(d,c)),onCleanup:d=>{a(d)},addManagedDomListener:(d,c,u,h)=>(d.addEventListener(c,u,h),a(()=>d.removeEventListener(c,u,h))),setManagedTimeout:(d,c)=>{let u=setTimeout(d,Math.max(0,c));return a(()=>clearTimeout(u)),u},createAbortController:()=>{let d=new AbortController;return a(()=>d.abort()),d},reportError:(d,c,u)=>this.reportError(d,`feature.${c}`,u)};try{let d=r.setup(l);typeof d=="function"&&a(d),this.activeFeatures.set(o,{feature:r,cleanups:s})}catch(d){for(let c of s.reverse())try{c()}catch(u){this.reportError(u,"feature.cleanup",{key:o})}this.reportError(d,"feature.setup",{key:o})}}}destroyFeatures(){let e=[...this.activeFeatures.entries()].reverse();this.activeFeatures.clear();for(let[t,r]of e){for(let o of r.cleanups.reverse())try{o()}catch(i){this.reportError(i,"feature.cleanup",{key:t})}try{r.feature.destroy?.()}catch(o){this.reportError(o,"feature.destroy",{key:t})}}}isDestroyed(){return this.destroyed}nextId(){return++this.autoIdCounter}getCellValue(e,t){let r=t.colDef;if(r.valueGetter)try{return r.valueGetter({api:this.api,colDef:r,column:t,node:e,data:e.data})}catch(o){this.reportError(o,"valueGetter",{colId:t.id,rowId:e.id});return}if(r.field)return te(e.data,r.field)}getLocaleText(e){return this.options.locale[e]??S[e]}writeValue(e,t,r,o){let i=t.colDef;if(i.valueSetter)try{return i.valueSetter({oldValue:o,newValue:r,data:e.data,node:e,colDef:i,column:t,api:this.api})}catch(s){return this.reportError(s,"valueSetter",{colId:t.id,rowId:e.id}),!1}return i.field?$(e.data,i.field,r):!1}setCellValue(e,t,r,o){if(r===void 0||r===o)return!1;let i=t.colDef,s;if(i.valueSetter)try{s=i.valueSetter({oldValue:o,newValue:r,data:e.data,node:e,colDef:i,column:t,api:this.api})}catch(a){return this.reportError(a,"valueSetter",{colId:t.id,rowId:e.id}),!1}else if(i.field)s=$(e.data,i.field,r);else return!1;return s&&this.notifyCellValueChanged(e,t,o,r),s}notifyCellValueChanged(e,t,r,o){this.bodyRenderer.invalidateRowHeight(e),this.bodyRenderer.queueFlash([e.rowIndex],[t.id]),this.emit("cellValueChanged",{oldValue:r,newValue:o,rowNode:e,rowIndex:e.rowIndex,column:t,colDef:t.colDef,data:e.data}),this.undoService.record({nodeId:e.id,columnId:t.id,oldValue:r,newValue:o})}buildRangeTsv(e){let r=this.columnModel.getOrderedVisible().slice(e.c1,e.c2+1),o=[];for(let i=e.r1;i<=e.r2;i++){let s=this.rowModel.getDisplayedRow(i);o.push(r.map(a=>!s||s.isDetail||s.isGroup?"":we(this,s,a,this.getCellValue(s,a))))}return ae(o)}copyActiveRange(){let e=this.bodyRenderer.getNormalizedRangeOrFocus();return e?ye(this.buildRangeTsv(e)):Promise.resolve(!1)}clearRangeValues(e){if(this.destroyed)return;let t=this.columnModel.getOrderedVisible(),r=new Set;this.undoService.beginBatch();try{for(let o=e.r1;o<=e.r2;o++){let i=this.rowModel.getDisplayedRow(o);if(!(!i||i.isDetail||i.isGroup))for(let s=e.c1;s<=e.c2;s++){let a=t[s];if(!a||a.hasCheckbox||a.isDetailToggle||a.colDef.rowDrag||!this.editingService.isEditable(i,a))continue;let l=this.getCellValue(i,a);this.setCellValue(i,a,null,l)&&r.add(o)}}}finally{this.undoService.endBatch()}r.size>0&&(this.bodyRenderer.refreshRows([...r]),this.summaryRenderer.refresh())}pasteText(e,t,r){if(this.destroyed)return;let o=$e(e);if(o.length===0)return;let i=this.columnModel.getOrderedVisible(),s=this.rowModel.getDisplayedRowCount(),a=new Set,l=t;this.undoService.beginBatch();try{for(let d of o){for(;l<s;){let h=this.rowModel.getDisplayedRow(l);if(h&&!h.isDetail&&!h.isGroup)break;l++}if(l>=s)break;let c=this.rowModel.getDisplayedRow(l),u=r;for(let h of d){for(;u<i.length&&(i[u]&&(i[u].hasCheckbox||i[u].isDetailToggle||i[u].colDef.rowDrag));)u++;if(u>=i.length)break;let p=i[u];if(this.editingService.isEditable(c,p)){let m=this.getCellValue(c,p),f=h;h===""?f=null:typeof m=="number"&&!isNaN(Number(h))&&(f=Number(h)),this.setCellValue(c,p,f,m)&&a.add(l)}u++}l++}}finally{this.undoService.endBatch()}a.size>0&&(this.bodyRenderer.refreshRows([...a]),this.summaryRenderer.refresh())}pasteFromSystemClipboard(){let e=this.bodyRenderer.getPasteStart();if(!e)return Promise.resolve();try{if(typeof navigator<"u"&&navigator.clipboard?.readText)return navigator.clipboard.readText().then(t=>{t&&this.pasteText(t,e.row,e.colIdx)}).catch(()=>{})}catch{}return Promise.resolve()}refreshSummary(){this.summaryRenderer.refresh()}emit(e,t){let r={type:e,api:this.api,...t};this.eventBus.emit(e,r);let o="on"+e.charAt(0).toUpperCase()+e.slice(1),i=this.options[o];if(typeof i=="function")try{i(r)}catch(a){e==="gridError"?console.error("[mach-table] error in onGridError",a):this.reportError(a,`eventHandler.${String(o)}`,{eventType:e})}return(e==="columnResized"&&r.finished||$i.has(e))&&this.scheduleGridStateSave(),r}reportError(e,t,r){let o=this.errorCodeFor(t,e),i=e instanceof Error?e.message:String(e);this.recentErrors.push({code:o,source:t,message:i,timestamp:Date.now(),...r?{context:r}:{}}),this.recentErrors.length>50&&this.recentErrors.splice(0,this.recentErrors.length-50),console.error(`[mach-table] ${o} (${t})`,e),!this.destroyed&&this.emit("gridError",{code:o,error:e,source:t,context:r})}errorCodeFor(e,t){if(Ki.some(o=>e.startsWith(o)))return"DATA_SOURCE_ERROR";let r=t instanceof Error?t.message:String(t);return e==="getRowId"||r.includes("Duplicate row id")?"DATA_INTEGRITY_ERROR":e==="validate"?"VALIDATION_ERROR":e.toLowerCase().includes("renderer")||e==="valueFormatter"||e==="cellStyle"||e==="cellClass"?"RENDERER_ERROR":e.toLowerCase().includes("editor")||e==="editable"?"EDITOR_ERROR":e.startsWith("feature.")?"FEATURE_ERROR":qi.some(o=>e.startsWith(o))?"STATE_ERROR":e.startsWith("eventBus.")||e.startsWith("eventHandler.")?"EVENT_HANDLER_ERROR":"GRID_ERROR"}getDiagnostics(){return{gridId:this.gridId,version:ke.version,destroyed:this.destroyed,infinite:this.rowModel.isInfinite,loading:this.rowModel.isLoadingInfinite()||this.options.loading,rowCount:this.rowModel.getDisplayTotalCount(),renderedRowCount:this.skeleton.bodyEl.querySelectorAll(".mach-row[data-index]").length,columnCount:this.columnModel.getColumns().length,selectedRowCount:this.selectionService.getSelectedNodes().length,dirtyRowCount:this.changeTracker.getDirtyRowIds().length,activeFeatures:[...this.activeFeatures].map(([e,t])=>({key:e,...t.feature.version?{version:t.feature.version}:{}})),performance:this.performanceMonitor.snapshot(),updates:this.updateScheduler.snapshot(),recentErrors:this.recentErrors.map(e=>({...e,...e.context?{context:{...e.context}}:{}}))}}cycleSort(e,t){this.columnModel.cycleSort(e,t),this.applySortModel()}applySortModel(){if(this.headerRenderer.refreshSortIndicators(),this.emit("sortChanged",{sortModel:this.columnModel.getSortModel()}),this.persistColumnState(),this.rowModel.isInfinite){this.rowModel.onServerParamsChanged();return}this.rowModel.refreshPipeline(),this.requestUpdate({data:!0})}applyColumnFilter(e,t){let r=this.rowModel.getFilterModel();if(t?r[e.id]=t:delete r[e.id],this.rowModel.setFilterModel(r),this.headerRenderer.refreshFilterIcons(),this.emit("filterChanged",{filterModel:this.rowModel.getFilterModel(),advancedFilterModel:this.rowModel.getAdvancedFilterModel()}),this.rowModel.isInfinite){this.rowModel.onServerParamsChanged();return}this.rowModel.refreshPipeline(),this.requestUpdate({data:!0})}applyQuickFilter(){if(this.emit("filterChanged",{filterModel:this.rowModel.getFilterModel(),advancedFilterModel:this.rowModel.getAdvancedFilterModel()}),this.rowModel.isInfinite){this.rowModel.onServerParamsChanged();return}this.rowModel.refreshPipeline(),this.requestUpdate({data:!0})}moveColumn(e,t){this.columnModel.moveColumn(e,t)&&(this.onColumnsStructureChanged(),this.emit("columnMoved",{colId:e,toIndex:t}),this.persistColumnState())}toggleDetail(e){return this.rowModel.toggleDetail(e)}emitColumnResize(e,t){this.emit("columnResized",{colId:e.id,width:e.currentWidth,finished:t})}commitColumnWidths(e){if(!(this.destroyed||e.length===0)){for(let t of e){if(this.destroyed)break;this.emitColumnResize(t,!0)}this.persistColumnState()}}loadPersistedColumnState(){let e=++this.columnStateLoadToken;if(!this.options.columnStateKey)return;let t;try{t=this.options.columnStateStore?this.options.columnStateStore.load(this.options.columnStateKey):Pt(this.options.columnStateKey)}catch(r){this.reportError(r,"columnState.load");return}if(t!=null){if(!Array.isArray(t)){Promise.resolve(t).then(r=>{this.destroyed||e!==this.columnStateLoadToken||!r||r.length===0||(this.columnModel.applyColumnState(r),this.rowModel.isInfinite?this.rowModel.onServerParamsChanged():this.rowModel.refreshPipeline(),this.onColumnsStructureChanged())}).catch(r=>this.reportError(r,"columnState.load"));return}t.length>0&&this.columnModel.applyColumnState(t)}}persistColumnState(){if(!this.options.columnStateKey||this.destroyed)return;let e=this.columnModel.getColumnState();try{let t=this.options.columnStateStore?this.options.columnStateStore.save(this.options.columnStateKey,e):It(this.options.columnStateKey,e);t&&typeof t.catch=="function"&&t.catch(r=>this.reportError(r,"columnState.save"))}catch(t){this.reportError(t,"columnState.save")}}loadPersistedGridState(){let e=++this.gridStateLoadToken,t=this.options.stateKey;if(!t)return;let r;try{r=this.options.stateStore?this.options.stateStore.load(t):Lt(t)}catch(i){this.reportError(i,"gridState.load");return}let o=i=>{this.destroyed||e!==this.gridStateLoadToken||!i||this.api.applyState(i,{emitEvents:!1})};r&&typeof r.then=="function"?Promise.resolve(r).then(o).catch(i=>this.reportError(i,"gridState.load")):o(r)}scheduleGridStateSave(){!this.options.stateKey||this.destroyed||(this.stateSaveTimer&&clearTimeout(this.stateSaveTimer),this.stateSaveTimer=setTimeout(()=>{this.stateSaveTimer=null,this.persistGridState()},this.options.stateSaveDebounceMs))}persistGridState(){let e=this.options.stateKey;if(!(!e||this.destroyed))try{let t=this.options.stateStore?this.options.stateStore.save(e,this.api.getState()):At(e,this.api.getState());t&&typeof t.catch=="function"&&t.catch(r=>this.reportError(r,"gridState.save"))}catch(t){this.reportError(t,"gridState.save")}}buildDefaultErrorState(){let e=document.createElement("div");e.className="mach-empty mach-empty--error";let t=document.createElement("div");t.className="mach-empty__title",t.textContent=this.getLocaleText("requestFailed");let r=document.createElement("div");return r.className="mach-empty__hint",r.textContent=this.getLocaleText("requestFailedHint"),e.append(t,r),e}buildDefaultEmptyState(){let e=this.options.locale??{},t=e.emptyRows??S.emptyRows,r=e.emptyRowsHint??S.emptyRowsHint,o=document.createElement("div");o.className="mach-empty";let i=document.createElementNS("http://www.w3.org/2000/svg","svg");i.setAttribute("class","mach-empty__icon"),i.setAttribute("viewBox","0 0 96 84"),i.setAttribute("width","96"),i.setAttribute("height","84"),i.setAttribute("fill","none"),i.setAttribute("aria-hidden","true"),i.innerHTML='<rect x="8" y="10" width="68" height="56" rx="6" fill="#eaf3fe"/><rect x="8" y="10" width="68" height="12" rx="6" fill="#d5e8fd"/><rect x="8" y="19" width="68" height="3" fill="#d5e8fd"/><g stroke="#bcd7f8" stroke-width="2.4" stroke-linecap="round"><line x1="16" y1="32" x2="68" y2="32"/><line x1="16" y1="42" x2="60" y2="42"/><line x1="16" y1="52" x2="64" y2="52"/></g><circle cx="66" cy="52" r="15" fill="#ffffff" stroke="#8fbdf5" stroke-width="3"/><line x1="77" y1="63" x2="86" y2="72" stroke="#8fbdf5" stroke-width="4" stroke-linecap="round"/><line x1="60" y1="52" x2="72" y2="52" stroke="#bcd7f8" stroke-width="2.6" stroke-linecap="round"/>';let s=document.createElement("div");s.className="mach-empty__title",s.textContent=t;let a=document.createElement("div");return a.className="mach-empty__hint",a.textContent=r,o.append(i,s,a),o}checkWarnings(e){if(!(this.options.suppressWarnings||this.destroyed)){if(e)for(let t of Ht(e)){let r=`${t.code}:${t.option??""}:${t.message}`;this.issuedWarningSignatures.has(r)||(this.issuedWarningSignatures.add(r),console.warn(`[mach-table:${t.code}] ${t.message}`))}this.options.treeData&&this.columnModel.getRowGroupColumns().length>0&&console.warn("[mach-table] treeData \u4E0E rowGroup \u4E0D\u652F\u6301\u540C\u65F6\u542F\u7528\uFF0C\u884C\u5206\u7EC4\u5DF2\u88AB\u5FFD\u7565")}}validateDefs(e){if(!(this.options.suppressWarnings||this.destroyed)&&this.lastValidatedDefs!==e){this.lastValidatedDefs=e;for(let t of Eo(e))this.issuedWarningSignatures.has(t)||(this.issuedWarningSignatures.add(t),console.warn(`[mach-table] ${t}`))}}onColumnsStructureChanged(){this.updateScheduler.schedule({columns:!0})}requestUpdate(e){this.updateScheduler.schedule(e)}batchUpdates(e){return this.updateScheduler.batch(e)}applyScheduledUpdate(e){this.destroyed||(e.columns?this.applyColumnsStructureChanged():(e.header&&this.headerRenderer.build(),e.pool?this.bodyRenderer.rebuildPool():e.layout&&this.relayout()),e.data&&!e.pool&&!e.columns?this.bodyRenderer.onDataChanged():e.cells&&this.bodyRenderer.refreshCells(e.cells===!0?void 0:e.cells),e.pinned&&this.pinnedRowsRenderer.refresh(),e.summary&&this.summaryRenderer.refresh(),e.overlays&&this.bodyRenderer.refreshOverlays())}applyColumnsStructureChanged(){this.checkWarnings(),this.validateDefs(this.columnModel.getColumnDefs()),this.bodyRenderer.invalidateAllRowHeights(),this.headerRenderer.build(),this.bodyRenderer.rebuildPool(),this.relayout(),this.pinnedRowsRenderer.rebuild(),this.summaryRenderer.refresh(),this.emit("displayedColumnsChanged",{})}relayout(){if(this.destroyed)return;let e=this.performanceMonitor.start();this.refreshAriaState(),this.columnModel.computeLayout(this.skeleton.measureViewportWidth());let t=this.columnModel.getOrderedVisible().map(r=>`${r.id}:${r.currentWidth}`).join("|");this.lastColumnLayoutSignature&&t!==this.lastColumnLayoutSignature&&this.bodyRenderer.invalidateAllRowHeights(),this.lastColumnLayoutSignature=t,this.skeleton.root.setAttribute("aria-colcount",String(this.columnModel.getOrderedVisible().length)),this.headerRenderer.applyLayout(),this.bodyRenderer.relayout(),this.pinnedRowsRenderer.applyLayout(),this.summaryRenderer.refresh(),this.performanceMonitor.recordLayout(e)}refreshAriaState(){if(!this.skeleton.root)return;let e=this.options.treeData||this.columnModel.getRowGroupColumns().length>0;this.skeleton.root.setAttribute("role",e?"treegrid":"grid"),this.options.rowSelection==="multiple"?this.skeleton.root.setAttribute("aria-multiselectable","true"):this.skeleton.root.removeAttribute("aria-multiselectable"),this.columnModel.getOrderedVisible().some(r=>!!r.colDef.editable)?this.skeleton.root.removeAttribute("aria-readonly"):this.skeleton.root.setAttribute("aria-readonly","true")}relayoutColumns(e=!0){this.destroyed||(this.columnModel.computeLayout(this.skeleton.measureViewportWidth()),e&&this.bodyRenderer.invalidateAllRowHeights(),this.headerRenderer.applyLayout(),this.bodyRenderer.applyContainerSizes(),this.bodyRenderer.applyCellLayout(),this.bodyRenderer.updateRange(!0),this.pinnedRowsRenderer.applyLayout(),this.summaryRenderer.refresh())}destroy(){if(this.destroyed)return;this.stateSaveTimer&&(clearTimeout(this.stateSaveTimer),this.stateSaveTimer=null,this.persistGridState()),this.destroyed=!0,this.readyRafId&&cancelAnimationFrame(this.readyRafId),this.readyRafId=0,this.settleReady();let e=(t,r)=>{try{r()}catch(o){console.error(`[mach-table] ${t} destroy error`,o)}};e("grid event",()=>this.emit("gridDestroyed",{})),e("updateScheduler",()=>this.updateScheduler.destroy()),e("performanceMonitor",()=>this.performanceMonitor.destroy()),e("features",()=>this.destroyFeatures()),e("changeTracker",()=>this.changeTracker.destroy()),e("rowModel",()=>this.rowModel.destroy()),e("editingService",()=>this.editingService.destroy()),e("keyboardService",()=>this.keyboardService.destroy()),e("filterPopup",()=>this.filterPopup.destroy()),e("columnMenu",()=>this.columnMenu.destroy()),e("contextMenu",()=>this.contextMenuService.destroy()),e("tooltip",()=>this.tooltipService.destroy()),e("watermark",()=>this.watermarkService.destroy()),e("pagination",()=>this.paginationBar.destroy()),e("columnDrag",()=>this.columnDragService.destroy()),e("resize",()=>this.resizeService.destroy()),e("bodyRenderer",()=>this.bodyRenderer.destroy()),e("headerRenderer",()=>this.headerRenderer.destroy()),e("pinnedRowsRenderer",()=>this.pinnedRowsRenderer.destroy()),e("summaryRenderer",()=>this.summaryRenderer.destroy()),e("statusBar",()=>this.statusBarService.destroy()),e("skeleton",()=>this.skeleton.destroy()),this.eventBus.clear()}};function Ao(n,e={}){if(!n)throw new Error("[mach-table] createGrid requires a container element");if(typeof document>"u")throw new Error("[mach-table] createGrid can only be used in a browser environment");return new he(n,e).getApi()}function ji(n){return n.value===!0?"\u662F":n.value===!1?"\u5426":""}function Yi(n){return e=>{if(e.value==null||e.value==="")return"";let t=e.value instanceof Date?e.value.toISOString():String(e.value);return n==="datetime"?t.slice(0,16).replace("T"," "):t.slice(0,10)}}function Xi(n){return e=>{if(e.value==null)return"";let t=n.find(r=>r.value===e.value);return t?t.label:String(e.value)}}function Lo(n){let e=n.type??"string",t={colId:n.field,field:n.field,headerName:n.title??n.field,width:n.width,minWidth:n.minWidth,maxWidth:n.maxWidth,flex:n.flex,pinned:n.pinned??void 0,hide:n.hidden??!1,editable:n.editable??!1,sortable:n.sortable??!0,resizable:n.resizable??!0,filter:n.filterable===!1?!1:e==="number"?"number":e==="date"?"date":e==="select"?"set":"text",cellClass:n.cellClass};if(e==="number")t.type="rightAligned";else if(e==="date")t.valueFormatter=Yi(n.format);else if(e==="boolean")t.valueFormatter=ji,t.filter=n.filterable===!1?!1:"set";else if(e==="select"){let r=n.options??[];t.valueFormatter=Xi(r),n.editable&&(t.cellEditor="select",t.cellEditorParams={values:r.map(o=>o.value)})}return t}function Go(n){let e=new Map(n.fields.map(o=>[o.field,o])),t=new Set,r=[];for(let o of n.fields){if(t.has(o.field))continue;(n.groups??[]).some(s=>s.fields.includes(o.field))||(r.push(Lo(o)),t.add(o.field))}for(let o of n.groups??[]){let i=[];for(let s of o.fields){let a=e.get(s);!a||t.has(s)||(i.push(Lo(a)),t.add(s))}i.length>0&&r.push({headerName:o.title,children:i})}return r}function L(n){let e=n();return e&&!e.isDestroyed()?e:null}function Fo(n){let e=()=>n.getApi();return{search(t){L(e)?.setQuickFilter(t)},async refresh(){if(n.reload){await n.reload();return}let t=L(e);t&&(t.isInfinite()?await t.reload():t.refreshCells())},openColumns(t){L(e)?.openColumnWorkbench(t)},setDensity(t){L(e)?.setGridOption("size",t)},resetColumns(){L(e)?.resetColumnState()},undo(){return L(e)?.undo()??!1},redo(){return L(e)?.redo()??!1},canUndo(){return L(e)?.canUndo()??!1},canRedo(){return L(e)?.canRedo()??!1},exportCsv(t="mach-table.csv"){let r=L(e);return r?ft(t,r.getDataAsCsv({prependBOM:!0}),"text/csv;charset=utf-8"):!1},async toggleFullscreen(){if(typeof document>"u")return!1;if(document.fullscreenElement)return await document.exitFullscreen?.(),!1;let r=L(e)?.getRootElement(),o=n.getFullscreenElement?.()??r?.parentElement??r;return o?.requestFullscreen?(await o.requestFullscreen(),!0):!1}}}var Ee={sortable:!1,resizable:!1,movable:!1,filter:!1,suppressSizeToFit:!0};function No(n={}){return{colId:"sel",headerName:"",width:46,pinned:"left",checkboxSelection:!0,...Ee,...n}}function Oo(n={}){return{colId:"idx",headerName:"#",type:"index",width:60,pinned:"left",...Ee,...n}}function Ho(n={}){return{colId:"drag",headerName:"",rowDrag:!0,width:40,...Ee,...n}}function Bo(n={actions:[]}){let{width:e,pinned:t,...r}=n,o=r.actions?.length??0,i=r.overflow==="inline"?o:Math.min(o,r.max??3),s=r.overflow!=="inline"&&o>i,a=Math.max(1,i)*26+(s?26:0)+10;return{colId:"op",headerName:"\u64CD\u4F5C",width:e??Math.max(64,a),pinned:t??"right",cellRenderer:ue(r),...Ee,cellRendererParams:void 0}}function Vo(n={}){let{width:e,pinned:t,...r}=n,o=(r.onView?1:0)+(r.edit===!1?0:1)+(r.onDelete?1:0)+(r.extraActions?.length??0),i=r.overflow==="inline"?o:Math.min(o,r.max??3),s=r.overflow!=="inline"&&o>i,a=Math.max(2,i)*26+(s?26:0)+10;return{colId:"op",headerName:"\u64CD\u4F5C",width:e??Math.max(72,a),pinned:t??"right",cellRenderer:Ft(r),...Ee,cellRendererParams:void 0}}function zo(){return{accessor:(n,e={})=>({...e,field:n}),display:n=>({...n}),group:n=>({...n,children:[...n.children]})}}function _o(n){return[...n]}function br(n,e){return e===void 0?n:typeof e!="object"||e===null||typeof n!="object"||n===null?e:{...n,...e}}function Ji(n,e){return typeof n!="function"?e:typeof e!="function"?n:(...t)=>{let r;try{n(...t)}catch(o){r=o}try{e(...t)}catch(o){r??(r=o)}if(r!==void 0)throw r}}function Qi(n,e){let t={...n,...e,features:e.features??n.features};if((n.defaultColDef||e.defaultColDef)&&(t.defaultColDef={...n.defaultColDef,...e.defaultColDef}),(n.locale||e.locale)&&(t.locale={...n.locale,...e.locale}),(n.components||e.components)&&(t.components={cellRenderers:{...n.components?.cellRenderers,...e.components?.cellRenderers},cellEditors:{...n.components?.cellEditors,...e.components?.cellEditors}}),n.columnTypes||e.columnTypes){let r={};for(let o of new Set([...Object.keys(n.columnTypes??{}),...Object.keys(e.columnTypes??{})]))r[o]={...n.columnTypes?.[o],...e.columnTypes?.[o]};t.columnTypes=r}(n.aggFuncs||e.aggFuncs)&&(t.aggFuncs={...n.aggFuncs,...e.aggFuncs}),t.pagination=br(n.pagination,e.pagination),t.statusBar=br(n.statusBar,e.statusBar),t.watermark=br(n.watermark,e.watermark);for(let r of new Set([...Object.keys(n),...Object.keys(e)])){if(!/^on[A-Z]/.test(r))continue;let o=n[r],i=e[r];typeof o=="function"&&typeof i=="function"&&(t[r]=Ji(o,i))}return t}function B(...n){return n.reduce(Qi,{})}function Wo(n={}){return B({defaultColDef:{sortable:!0,resizable:!0,movable:!0,filter:!0},enableColumnResize:!0,rowSelection:"multiple",columnMenu:!0,contextMenu:!0,enableRangeSelection:!0,fillHandle:!0,statusBar:!0,stripedRows:!0},n)}function Ko(n){return n}function qo(n){return n}function $o(n){return n}function Zi(n){return n?(Array.isArray(n)?n:[n]).filter(e=>typeof e=="string"&&e.trim().length>0):[]}function Rr(n={}){return{defaults:B({columnTypes:n.columnTypes,components:n.components},n.defaults??{}),presets:Object.fromEntries(Object.entries(n.presets??{}).map(([e,t])=>[e,B(t)])),defaultPreset:n.defaultPreset??!1,...n.onConfigWarning?{onConfigWarning:n.onConfigWarning}:{}}}function Uo(n,e){let t=Rr(e),r={...n.presets};for(let[o,i]of Object.entries(e.presets??{}))r[o]=B(n.presets[o]??{},i);return{defaults:B(n.defaults,t.defaults),presets:r,defaultPreset:e.defaultPreset===void 0?n.defaultPreset:e.defaultPreset,...e.onConfigWarning??n.onConfigWarning?{onConfigWarning:e.onConfigWarning??n.onConfigWarning}:{}}}function jo(n,e,t,r){let o=e===void 0?n.defaultPreset:e,i=[{name:"application defaults",options:n.defaults}];for(let a of Zi(o)){let l=n.presets[a];if(!l){let d={code:"UNKNOWN_PRESET",preset:a,message:`[MachTable] Unknown preset "${a}". Register it in mach-table.config.ts or remove the preset.`};r?r(d):n.onConfigWarning?n.onConfigWarning(d):console.warn(d.message);continue}i.push({name:`preset:${a}`,options:l})}i.push({name:"table props",options:t});let s=B(...i.map(a=>a.options));return{options:s,explain(a){let l=i.filter(c=>Object.prototype.hasOwnProperty.call(c.options,a)).map(c=>({name:c.name,value:c.options[a]})),d=l[l.length-1];return{key:a,value:s[a],source:d?.name??"MachTable built-in",layers:l}}}}function xe(n){return n!=null&&n!==""}function es(n){if(!xe(n))return null;let e=typeof n=="number"?n:Number(n);return Number.isFinite(e)?e:null}function zt(n,e){try{return new Intl.NumberFormat(n,e)}catch{return new Intl.NumberFormat(void 0,e)}}function Yo(n,e){try{return new Intl.DateTimeFormat(n,e)}catch{let t={...e};return delete t.timeZone,new Intl.DateTimeFormat(void 0,t)}}function ts(n){if(!xe(n))return null;let e=n instanceof Date?n:new Date(n);return Number.isFinite(e.getTime())?e:null}function Xo(n={}){let e=n.emptyText??"",t=n.invalidText??"\u2014",r=zt(n.locale,{maximumFractionDigits:n.maximumFractionDigits??2}),o=zt(n.locale,{maximumFractionDigits:0}),i=zt(n.locale,{style:"currency",currency:n.currency??"CNY",currencyDisplay:n.currencyDisplay??"symbol",maximumFractionDigits:n.maximumFractionDigits??2}),s=zt(n.locale,{style:"percent",maximumFractionDigits:n.maximumFractionDigits??2}),a=Yo(n.locale,{year:"numeric",month:"2-digit",day:"2-digit",...n.timeZone?{timeZone:n.timeZone}:{}}),l=Yo(n.locale,{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1,...n.timeZone?{timeZone:n.timeZone}:{}}),d=(u,h=1)=>({value:p})=>{if(!xe(p))return e;let m=es(p);return m==null?t:u.format(m*h)},c=u=>({value:h})=>{if(!xe(h))return e;let p=ts(h);return p==null?t:u.format(p)};return Object.freeze({text:{align:"left",filter:"text"},number:{align:"right",filter:"number",cellEditor:"number",valueFormatter:d(r)},integer:{align:"right",filter:"number",cellEditor:"number",valueFormatter:d(o)},money:{align:"right",filter:"number",cellEditor:"number",valueFormatter:d(i)},percent:{align:"right",filter:"number",cellEditor:"number",valueFormatter:d(s)},percentage:{align:"right",filter:"number",cellEditor:"number",valueFormatter:d(s,.01)},date:{align:"center",filter:"date",cellEditor:"date",valueFormatter:c(a)},datetime:{align:"center",filter:"date",valueFormatter:c(l)},boolean:{align:"center",filter:"set",valueFormatter:({value:u})=>u===!0?n.trueText??"\u662F":u===!1?n.falseText??"\u5426":e},status:{filter:"set",cellRenderer:"statusTag"},link:{filter:"text",cellRenderer:"link"}})}function _t(n){return`${typeof n}:${String(n)}`}function Jo(n){let e=Math.max(0,n.ttlMs??3e5),t=Math.max(1,Math.floor(n.maxSize??2e3)),r=Math.max(0,n.batchDelayMs??0),o=new Map,i=new Map,s=new Map,a=null,l=null,d=!1,c=m=>{let f=_t(m),y=o.get(f);if(y){if(y.expiresAt<Date.now()){o.delete(f);return}return o.delete(f),o.set(f,y),y.label}},u=m=>{let f=e===0?Number.POSITIVE_INFINITY:Date.now()+e;for(let y of m){let v=_t(y.value);o.delete(v),o.set(v,{key:y.value,label:String(y.label),expiresAt:f})}for(;o.size>t;)o.delete(o.keys().next().value)},h=async()=>{if(a=null,d||i.size===0)return;let m=[...i.entries()];i.clear();let f=m.map(([,v])=>v),y=new AbortController;l=y;try{let v=await n.load(f,y.signal);if(d||y.signal.aborted)return;u(v);for(let[w,b]of m){let D=c(b);for(let R of s.get(w)??[])R.resolve(D);s.delete(w)}}catch(v){y.signal.aborted||n.onError?.(v,f);for(let[w]of m){for(let b of s.get(w)??[])b.reject(v);s.delete(w)}}finally{l===y&&(l=null),!d&&i.size>0&&a==null&&(a=setTimeout(()=>{h()},r))}},p=m=>{let f=c(m);if(f!==void 0)return Promise.resolve(f);if(d)return Promise.reject(new Error("[MachTable] Dictionary resolver has been destroyed."));let y=_t(m);i.set(y,m);let v=new Promise((w,b)=>{let D=s.get(y)??[];D.push({resolve:w,reject:b}),s.set(y,D)});return a==null&&l==null&&(a=setTimeout(()=>{h()},r)),v};return{get:c,resolve:p,async resolveMany(m){let f=await Promise.all(m.map(async y=>[y,await p(y)]));return new Map(f.filter(y=>y[1]!==void 0))},prime:u,invalidate(m){if(!m)o.clear();else for(let f of m)o.delete(_t(f))},destroy(){d=!0,a!=null&&clearTimeout(a),a=null,l?.abort(),l=null;let m=new Error("[MachTable] Dictionary resolver has been destroyed.");for(let f of s.values())for(let y of f)y.reject(m);s.clear(),i.clear(),o.clear()},get size(){return o.size}}}function Qo(n,e={}){return t=>{if(!xe(t.value))return e.emptyText??"";let r=t.value,o=e.fallback?.(r)??String(r),i=n.get(r);if(i!==void 0)return i;let s=document.createElement("span");s.className="mach-dictionary-value mach-dictionary-value--loading",s.textContent=e.loadingText??o;let a=!0;return n.resolve(r).then(l=>{!a||!s.isConnected||(s.textContent=l??o,s.classList.remove("mach-dictionary-value--loading"))}).catch(()=>{!a||!s.isConnected||(s.textContent=o,s.classList.remove("mach-dictionary-value--loading"),s.classList.add("mach-dictionary-value--error"))}),{el:s,destroy:()=>{a=!1}}}}function Zo(){try{return typeof localStorage>"u"?null:localStorage}catch{return null}}function en(n){return typeof TextEncoder>"u"?n.length*2:new TextEncoder().encode(n).byteLength}function tn(n){if(typeof n!="string")return null;let e=n.trim();return e&&e.length<=256?e:null}function Wt(n){if(n==null||typeof n!="object")return null;let e=n;if(e.version!==1)return null;let t=O({version:2,columns:e.columns,sortModel:e.sortModel,filterModel:e.filterModel,advancedFilterModel:e.advancedFilterModel,quickFilterText:e.quickFilterText,pagination:{enabled:!0,page:1,pageSize:e.pageSize},selectedRowIds:[],expandedRowIds:[],expandedGroupIds:[]});return t?{version:1,columns:t.columns,sortModel:t.sortModel,filterModel:t.filterModel,advancedFilterModel:t.advancedFilterModel,quickFilterText:t.quickFilterText,pageSize:t.pagination.pageSize}:null}function pe(n){if(n==null||typeof n!="object")return null;let e=n,t=tn(e.id),r=typeof e.name=="string"?e.name.trim().slice(0,120):"",o=Wt(e.state);if(e.schemaVersion!==1||!t||!r||!o)return null;let i=typeof e.createdAt=="number"&&Number.isFinite(e.createdAt)?e.createdAt:Date.now(),s=typeof e.updatedAt=="number"&&Number.isFinite(e.updatedAt)?e.updatedAt:i;return{schemaVersion:1,id:t,name:r,createdAt:i,updatedAt:s,state:o}}function Tr(n){let e=n.getState();return{version:1,columns:e.columns,sortModel:e.sortModel,filterModel:e.filterModel,advancedFilterModel:e.advancedFilterModel,quickFilterText:e.quickFilterText,pageSize:e.pagination.pageSize}}function Sr(n,e,t={}){let r=Wt(e);if(!r||n.isDestroyed())return!1;let o=n.getState();return n.applyState({...o,columns:r.columns,sortModel:r.sortModel,filterModel:r.filterModel,advancedFilterModel:r.advancedFilterModel,quickFilterText:r.quickFilterText,pagination:{...o.pagination,page:1,pageSize:r.pageSize}},{sections:["columns","sort","filter","pagination"],emitEvents:t.emitEvents}),!0}function Dr(n={}){let e=(n.namespace??"mach-table:views").replace(/:+$/,""),t=Math.max(1,Math.floor(n.maxViews??50)),r=Math.max(4096,Math.floor(n.maxBytes??512*1024)),o=l=>`${e}:${encodeURIComponent(l)}`,i=(l,d,c)=>{try{n.onError?.(l,d,c)}catch{}},s=l=>{let d=(n.storage??Zo())?.getItem(o(l));if(!d||en(d)>r)return[];let c=JSON.parse(d);return c.schemaVersion!==1||!Array.isArray(c.views)?[]:c.views.flatMap(u=>{let h=pe(u);return h?[h]:[]}).slice(0,t)},a=(l,d)=>{let c=JSON.stringify({schemaVersion:1,savedAt:Date.now(),views:d});if(en(c)>r)throw new RangeError(`[MachTable] Saved views for "${l}" exceed ${r} bytes.`);let u=n.storage??Zo();if(!u)throw new Error("[MachTable] Saved view storage is unavailable.");u.setItem(o(l),c)};return{list(l){try{return s(l)}catch(d){return i(d,"list",l),[]}},save(l,d){try{let c=pe(d);if(!c)throw new TypeError(`[MachTable] Invalid saved view for "${l}".`);let u=s(l).filter(h=>h.id!==c.id);u.unshift(c),a(l,u.slice(0,t))}catch(c){throw i(c,"save",l),c}},remove(l,d){try{a(l,s(l).filter(c=>c.id!==d))}catch(c){throw i(c,"remove",l),c}}}}function rs(){try{if(typeof crypto<"u"&&crypto.randomUUID)return crypto.randomUUID()}catch{}return`view-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`}function rn(n,e){let t=e.scope.trim();if(!t||t.length>512)throw new TypeError("[MachTable] Grid view scope must contain between 1 and 512 characters.");let r=e.store??Dr(),o=async()=>(await r.list(t)).flatMap(s=>{let a=pe(s);return a?[a]:[]}).sort((s,a)=>a.updatedAt-s.updatedAt);return{list:o,async save(i,s){let a=i.trim().slice(0,120);if(!a)throw new TypeError("[MachTable] Grid view name must be a non-empty string.");let l=tn(s)??rs(),d=(await o()).find(h=>h.id===l),c=Date.now(),u={schemaVersion:1,id:l,name:a,createdAt:d?.createdAt??c,updatedAt:c,state:Tr(n)};return await r.save(t,u),u},async apply(i,s){let a=typeof i=="string"?(await o()).find(d=>d.id===i):pe(i),l=typeof i=="string"?i:"provided view";if(!a)throw new Error(`[MachTable] Grid view "${l}" was not found.`);if(!Sr(n,a.state,s))throw new Error(`[MachTable] Grid view "${a.id}" could not be applied.`);return a},async remove(i){await r.remove(t,i)}}}var os=ke.version;0&&(module.exports={BUILTIN_AGG_FUNCS,Column,DEFAULT_LOCALE,DIRECT_GRID_OPTION_KEYS,EVENT_TYPES,EventBus,GRID_OPTION_KEYS,GRID_OPTION_META,GRID_SIZE_PRESETS,GridCore,LOCALE_EN,actionsColumn,advancedFilterCondition,advancedFilterGroup,applyGridViewState,buildColDefsFromSchema,captureGridViewState,clearColumnState,clearComponentRegistries,clearGridState,computeColumnWidths,createActionButtonsRenderer,createAggResolver,createBusinessColumnTypes,createCachedDictionary,createColumnHelper,createColumnStateKey,createDictionaryRenderer,createEnterprisePreset,createGrid,createGridViewManager,createLocalColumnStateStore,createLocalGridStateStore,createLocalGridViewStore,createMachTableCommands,createMachTablePreset,createProgressBarRenderer,createRowActionsRenderer,createSaveSnapshot,createStatusTagRenderer,defaultComparator,defineColumns,defineGridOptions,defineMachTableConfig,defineMachTablePreset,describeFilter,downloadFile,dragColumn,escapeHtml,evaluateColumnFilter,fitColumnWidths,formatText,formatTwo,getByPath,getCellEditor,getCellRenderer,indexColumn,isColDefGroup,isSafePath,linkRenderer,loadColumnState,loadGridState,matchLocaleKey,matchesGridOptionKind,mergeMachTableConfig,migrateGridState,normalizeAdvancedFilterModel,normalizeBatchSaveResult,normalizeColumnFilter,normalizeFilterModel,normalizeGridViewState,normalizeMachTableConfig,normalizeSavedGridView,parseCsv,parseDelimited,parseTsv,registerBuiltinRenderers,registerCellEditor,registerCellRenderer,resolveGridFeatures,resolveMachTableGridOptions,resolveSaveConflict,resolveTagVariant,rowActionsColumn,sanitizeFormulaCell,sanitizeGridOptionPatch,saveColumnState,saveGridState,selectionColumn,setByPath,sortNodes,toTsv,validateGridOptions,version});