@agile-team/mach-table 0.29.2 → 0.30.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1,6 +1,6 @@
1
- "use strict";var Ht=Object.defineProperty;var mn=Object.getOwnPropertyDescriptor;var gn=Object.getOwnPropertyNames;var yn=Object.prototype.hasOwnProperty;var vn=(n,e)=>{for(var t in e)Ht(n,t,{get:e[t],enumerable:!0})},wn=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of gn(e))!yn.call(n,o)&&o!==t&&Ht(n,o,{get:()=>e[o],enumerable:!(r=mn(e,o))||r.enumerable});return n};var bn=n=>wn(Ht({},"__esModule",{value:!0}),n);var $s={};vn($s,{BUILTIN_AGG_FUNCS:()=>$t,DEFAULT_LOCALE:()=>D,EVENT_TYPES:()=>q,LOCALE_EN:()=>to,actionsColumn:()=>Qo,advancedFilterCondition:()=>xr,advancedFilterGroup:()=>Mr,applyGridViewState:()=>Rr,buildColDefsFromSchema:()=>Uo,captureGridViewState:()=>Tr,clearGridState:()=>Ao,createActionButtonsRenderer:()=>he,createAggResolver:()=>Ge,createBusinessColumnTypes:()=>an,createCachedDictionary:()=>ln,createColumnHelper:()=>Zo,createDictionaryRenderer:()=>dn,createEnterprisePreset:()=>tn,createGrid:()=>Ko,createGridViewManager:()=>pn,createLocalGridStateStore:()=>lr,createLocalGridViewStore:()=>Sr,createMachTableCommands:()=>qo,createMachTablePreset:()=>Cr,createProgressBarRenderer:()=>pr,createRowActionsRenderer:()=>It,createStatusTagRenderer:()=>hr,defineColumns:()=>en,defineGridOptions:()=>on,defineMachTableConfig:()=>nn,defineMachTablePreset:()=>rn,describeFilter:()=>gt,downloadFile:()=>pt,dragColumn:()=>Xo,escapeHtml:()=>te,formatText:()=>H,formatTwo:()=>tt,getByPath:()=>$,indexColumn:()=>Yo,isColDefGroup:()=>se,isSafePath:()=>oe,linkRenderer:()=>fr,loadGridState:()=>xt,matchLocaleKey:()=>et,normalizeAdvancedFilterModel:()=>V,normalizeColumnFilter:()=>xe,normalizeFilterModel:()=>ne,normalizeGridState:()=>z,normalizeGridViewState:()=>Ot,normalizeSavedGridView:()=>pe,parseCsv:()=>We,parseDelimited:()=>_e,parseTsv:()=>ze,resolveGridFeatures:()=>Pt,resolveSaveConflict:()=>ho,resolveTagVariant:()=>ur,rowActionsColumn:()=>Jo,sanitizeFormulaCell:()=>ge,saveGridState:()=>Et,selectionColumn:()=>jo,setByPath:()=>J,toTsv:()=>le,validateGridOptions:()=>Lt,version:()=>Ks});module.exports=bn($s);var De="0.29.2";var Ee=class{constructor(e){this.onListenerError=e;this.listeners=new Map}on(e,t){let r=this.listeners.get(e);return r||(r=new Set,this.listeners.set(e,r)),r.add(t),()=>{r.delete(t)}}once(e,t){let r=this.on(e,o=>{r(),t(o)});return r}off(e,t){let r=this.listeners.get(e);r&&(r.delete(t),r.size===0&&this.listeners.delete(e))}emit(e,t){let r=this.listeners.get(e);if(r)for(let o of[...r])try{o(t)}catch(i){console.error(`[mach-table] error in "${e}" listener`,i),this.onListenerError?.(i,e)}}clear(){this.listeners.clear()}};var Tn=new Set(["__proto__","prototype","constructor"]);function oe(n){return typeof n!="string"||n.length===0?!1:n.split(".").every(t=>t.length>0&&!Tn.has(t))}function $(n,e){if(n==null||!oe(e))return;if(e.indexOf(".")<0)return n[e];let r=n,o=0;for(;o<e.length;){if(r==null)return;let i=e.indexOf(".",o);if(i<0){r=r[e.slice(o)];break}r=r[e.slice(o,i)],o=i+1}return r}function J(n,e,t){if(n==null||!oe(e))return!1;let r=e.split("."),o=n;for(let i=0;i<r.length-1;i++){if(typeof o!="object"&&typeof o!="function"||o===null)return!1;o[r[i]]==null&&(o[r[i]]={}),o=o[r[i]]}return typeof o!="object"&&typeof o!="function"||o===null?!1:(o[r[r.length-1]]=t,!0)}var Rn=new Set(["contains","notContains","equals","notEquals","startsWith","endsWith","blank","notBlank"]),Sn=new Set(["equals","notEquals","lessThan","lessThanOrEqual","greaterThan","greaterThanOrEqual","inRange","blank","notBlank"]),Dn=new Set(["equals","notEquals","lessThan","greaterThan","inRange","blank","notBlank"]);function En(n){return n==null||typeof n=="string"||typeof n=="number"&&Number.isFinite(n)}function xn(n){return n==="text"?Rn:n==="number"?Sn:Dn}function Mn(n,e,t){if(n==null||typeof n!="object")return null;let r=n;return typeof r.match!="string"||!t.has(r.match)?null:{match:r.match,...kn(r,e)}}function kn(n,e){let t=e==="number"?Dr(n.value):typeof n.value=="string"?n.value:void 0,r=e==="number"?Dr(n.value2):typeof n.value2=="string"?n.value2:void 0;return{...t!==void 0?{value:t}:{},...r!==void 0?{value2:r}:{}}}function Dr(n){return typeof n=="number"&&Number.isFinite(n)?n:void 0}function In(n,e){let t=[],r=xn(e);for(let o of n.slice(0,20)){let i=Mn(o,e,r);i&&t.push(i)}return t}function xe(n){if(n==null||typeof n!="object")return null;let e=n;return e.type==="set"?Array.isArray(e.values)?{type:"set",values:e.values.filter(En).slice(0,2e3)}:null:e.type!=="text"&&e.type!=="number"&&e.type!=="date"||!Array.isArray(e.conditions)?null:{type:e.type,...e.operator==="or"||e.operator==="and"?{operator:e.operator}:{},conditions:In(e.conditions,e.type)}}function Ln(n,e){if(typeof n.colId!="string"||!n.colId.trim())return null;let t=n.colId.trim();if(e.validColumnIds?.has(t)===!1)return null;let r=xe(n.filter);return r?{kind:"condition",colId:t,filter:r}:null}function An(n,e,t){if(!Array.isArray(n.children))return null;let r=[];for(let o of n.children){let i=Er(o,e+1,t);i&&r.push(i)}return r.length===0?null:{kind:"group",operator:n.operator==="or"?"or":"and",children:r,...n.not===!0?{not:!0}:{}}}function Pn(n,e,t){return e<=16&&t.nodes<512&&n!=null&&typeof n=="object"}function Er(n,e,t){if(!Pn(n,e,t)||t.ancestors.has(n))return null;t.ancestors.add(n),t.nodes++;let r=n,o=r.kind==="condition"?Ln(r,t):r.kind==="group"?An(r,e,t):null;return t.ancestors.delete(n),o}function V(n,e){if(n==null||typeof n!="object")return null;let t=n;if(t.version!==1||t.root==null)return null;let r=Er(t.root,0,{ancestors:new WeakSet,nodes:0,validColumnIds:e});return r?{version:1,root:r}:null}function xr(n,e){return{kind:"condition",colId:n,filter:e}}function ne(n,e){if(n==null||typeof n!="object"||Array.isArray(n))return{};let t={};for(let[r,o]of Object.entries(n).slice(0,2e3)){let i=r.trim();if(!i||e?.has(i)===!1)continue;let s=xe(o);s&&(t[i]=s)}return t}function Mr(n,e,t={}){return{kind:"group",operator:n,children:e,...t.not?{not:!0}:{}}}var Bt={align:"center",sortable:!0,resizable:!0,movable:!0,filter:!1,minWidth:80},fe={compact:{rowHeight:30,headerHeight:34,fontSize:12,cellPadding:6},normal:{rowHeight:36,headerHeight:40,fontSize:13,cellPadding:9},large:{rowHeight:44,headerHeight:48,fontSize:14,cellPadding:12}};function S(n,e,t,r=!1){return typeof n!="number"||!Number.isFinite(n)||n<t?e:r?Math.floor(n):n}function Gn(n){return n&&Object.prototype.hasOwnProperty.call(fe,n)?n:"normal"}function Fn(n){return n.theme==="light"||n.theme==="dark"||n.theme==="auto"?n.theme:"light"}function Nn(n,e){let t=typeof n.pagination=="object"&&Array.isArray(n.pagination.pageSizeOptions)?n.pagination.pageSizeOptions:void 0,r=t?[...new Set(t.map(o=>S(o,0,1,!0)).filter(Boolean))]:[10,20,50,100];return r.includes(e)||r.push(e),r.sort((o,i)=>o-i)}function Vt(n,e){let t=typeof n=="function"?n(e):$(e,n);return t==null?"":String(t)}function On(n){let e=n.rowKey,t=e?({data:r})=>Vt(e,r):void 0;return{...t?{resolveRowId:t}:{},...e?{rowKey:e}:{}}}function Hn(n,e){let t=fe[e];return{columnDefs:Array.isArray(n.columnDefs)?n.columnDefs:[],rowData:Array.isArray(n.rowData)?n.rowData:[],defaultColDef:{...Bt,...n.defaultColDef??{}},columnTypes:n.columnTypes??{},...On(n),rowHeight:S(n.rowHeight,t.rowHeight,1),headerHeight:S(n.headerHeight,t.headerHeight,1),rowBuffer:S(n.rowBuffer,8,0,!0),columnLayout:n.columnLayout==="fit"?"fit":"normal",enableColumnResize:n.enableColumnResize===!0,domLayout:n.domLayout==="autoHeight"?"autoHeight":"normal",rowSelection:n.rowSelection==="single"||n.rowSelection==="multiple"?n.rowSelection:"none",multiSort:n.multiSort??!0,size:e,pinnedTopRowData:Array.isArray(n.pinnedTopRowData)?n.pinnedTopRowData:[],pinnedBottomRowData:Array.isArray(n.pinnedBottomRowData)?n.pinnedBottomRowData:[]}}function Bn(n){return{stripedRows:n.stripedRows??!1,showCellBorders:n.showCellBorders??!1,theme:Fn(n),quickFilterText:n.quickFilterText??null,suppressCellFocus:n.suppressCellFocus??!1,suppressRowHoverHighlight:n.suppressRowHoverHighlight??!1,suppressNoRowsOverlay:n.suppressNoRowsOverlay??!1,suppressHeaderFocus:n.suppressHeaderFocus??!1,loading:n.loading??!1,error:n.error??null,className:n.className??""}}function Vn(n){return{editType:n.editType==="fullRow"?"fullRow":"cell",editableIndicator:n.editableIndicator==="always"||n.editableIndicator==="none"?n.editableIndicator:"hover",singleClickEdit:n.singleClickEdit??!1,manualSorting:n.manualSorting??!1,manualFiltering:n.manualFiltering??!1,showSummary:n.showSummary??!1,indexOffset:n.indexOffset??0,applyRowDrag:n.applyRowDrag??!0,undoStackSize:S(n.undoStackSize,100,0,!0),asyncTransactionWaitMillis:S(n.asyncTransactionWaitMillis,16,0,!0)}}function zn(n){return{masterDetail:n.masterDetail??!1,detailRowHeight:S(n.detailRowHeight,240,1),detailToggleColumn:n.detailToggleColumn??!0,treeData:n.treeData??!1,childrenKey:n.childrenKey??"children",autoCheckedChildren:n.autoCheckedChildren??!0,defaultExpandAll:n.defaultExpandAll??!1}}function Wn(n){let e=typeof n.pagination=="object"?n.pagination:void 0,t=S(e?.pageSize,20,1,!0);return{paginationEnabled:n.pagination!==!1&&n.datasource==null,paginationMode:e?.mode==="server"?"server":"client",paginationPage:S(e?.page,1,1,!0),paginationTotal:S(e?.total,0,0,!0),paginationPageSize:t,paginationPageSizeOptions:Nn(n,t),paginationShowTotal:e?e.showTotal!==!1:!0,paginationShowSizeSelector:e?e.showPageSizeSelector!==!1:!0}}function _n(n){return{watermarkEnabled:n.watermark!=null&&n.watermark!==!1,watermarkConfig:n.watermark==null||n.watermark===!1?null:n.watermark===!0?{text:"MachTable"}:n.watermark}}function Kn(n){return{columnMenu:n.columnMenu??!1,advancedFilterModel:V(n.advancedFilterModel),...$n(n),locale:n.locale??{},suppressWarnings:n.suppressWarnings??!1,enableRangeSelection:n.enableRangeSelection??!1,suppressClipboard:n.suppressClipboard??!1,contextMenu:n.contextMenu??!1,tooltipShowDelay:S(n.tooltipShowDelay,600,0),flashCells:n.flashCells??!0,fillHandle:n.fillHandle??!0,statusBarEnabled:n.statusBar===!0||typeof n.statusBar=="object"&&n.statusBar!=null,statusBarPanels:typeof n.statusBar=="object"&&n.statusBar?.panels?n.statusBar.panels:["rowCount","selectedRowCount","rangeAggregate"]}}function $n(n){let e=n.persistence;return!e||typeof e.key!="string"||!e.key.trim()?{persistence:null}:{persistence:{key:e.key.trim(),debounceMs:S(e.debounceMs,160,0,!0),...e.sections?{sections:[...new Set(e.sections)]}:{},...e.store?{store:e.store}:{}}}}function Un(n){return{datasourceMode:n.datasourceMode==="block"?"block":"sequential",blockSize:S(n.blockSize,100,1,!0),infiniteBufferRows:S(n.infiniteBufferRows,40,0,!0),maxBlocksInCache:S(n.maxBlocksInCache,12,1,!0),datasourceMaxConcurrentRequests:S(n.datasourceMaxConcurrentRequests,4,1,!0),blockPrefetch:S(n.blockPrefetch,1,0,!0),datasourceRowCount:n.datasourceRowCount==null?null:S(n.datasourceRowCount,0,0,!0),dataProcessorMinRows:S(n.dataProcessorMinRows,5e3,1,!0),datasourceRetryCount:S(n.datasourceRetryCount,2,0,!0),datasourceRetryDelay:S(n.datasourceRetryDelay,300,0,!0),datasourceRetryJitter:Math.min(1,S(n.datasourceRetryJitter,.15,0))}}function qn(n){return{ariaLabel:n.ariaLabel??"MachTable data grid",ariaLabelledBy:n.ariaLabelledBy??"",ariaDescribedBy:n.ariaDescribedBy??"",overlayNoRowsTemplate:n.overlayNoRowsTemplate??"",overlayLoadingTemplate:n.overlayLoadingTemplate??"",overlayErrorTemplate:n.overlayErrorTemplate??"",allowUnsafeOverlayHtml:n.allowUnsafeOverlayHtml??!1}}var jn=["detailRowRenderer","isRowExpandable","aggFuncs","components","actionPolicy","summaryMethod","datasource","getRowHeight","tooltipComponent","getContextMenuItems","initialState","rowEditValidator","isTreeRowExpandable","loadTreeChildren","dataProcessor"];function Yn(n,e){for(let t of jn)n[t]&&Object.assign(e,{[t]:n[t]})}function Xn(n,e){for(let t of Object.keys(n))t.startsWith("on")&&typeof n[t]=="function"&&Object.assign(e,{[t]:n[t]})}function kr(n){let e=Gn(n.size),t={...Hn(n,e),...Bn(n),...Vn(n),...zn(n),...Wn(n),..._n(n),...Kn(n),...Un(n),...qn(n),features:Array.isArray(n.features)?n.features:[]};return Yn(n,t),Xn(n,t),t}function Ir(n){return Array.isArray(n)?n.filter(e=>typeof e=="string"&&e.length>0):typeof n=="string"&&n.length>0?[n]:[]}function ie(n,e){return Ir(n.type).includes(e)}function Lr(n,e,t={}){let r={};for(let o of Ir(n.type)){let i=t[o];i&&Object.assign(r,i)}return{...e,...r,...n}}var _=class{constructor(e,t){this.manualWidth=null;this.flex=null;this.currentWidth=0;this.parentGroup=null;this.level=0;this.isDetailToggle=!1;this.id=e,this.colDef=t,this.hide=t.hide??!1;let r=t.pinned;this.pinned=r===!0?"left":r===!1||r==null?null:r,this.resetWidth()}get sortable(){return this.colDef.sortable!==!1}get resizable(){return this.colDef.resizable!==!1}get movable(){return this.colDef.movable!==!1}get filterable(){return this.colDef.filter!=null&&this.colDef.filter!==!1}get filterType(){let e=this.colDef.filter;return e===!0?"text":e??"text"}get hasCheckbox(){return this.colDef.checkboxSelection===!0}resetWidth(){this.manualWidth=null,this.flex=typeof this.colDef.flex=="number"&&Number.isFinite(this.colDef.flex)&&this.colDef.flex>0?this.colDef.flex:null}};var Z=class n{constructor(e,t){this.parent=null;this.children=[];this.groupId=e,this.def=t}get headerName(){return this.def.headerName??this.def.groupId??""}getLeafColumns(e=[]){for(let t of this.children)t instanceof n?t.getLeafColumns(e):e.push(t);return e}};function se(n){return Array.isArray(n.children)}function Me(n,e){return typeof n=="number"&&Number.isFinite(n)&&n>0?n:e}function Ar(n){let e=Me(n.minWidth,80);return{min:e,max:Math.max(e,Me(n.maxWidth,Number.MAX_SAFE_INTEGER))}}function N(n,e){let{min:t,max:r}=Ar(e),o=Me(n,Me(e.width,150));return Math.max(t,Math.min(r,o))}function Pr(n,e){let t=n.map(s=>N(s.width??150,s)),r=[],o=0;n.forEach((s,a)=>{let l=s.flex??0;l>0&&(r.push(a),o+=l)});let i=0;for(let s of t)i+=s;if(o>0&&e>i){let s=e-i;for(let a=0;a<4&&s>.5&&r.length>0;a++){let l=[],d=0;for(let p of r){let m=n[p].flex??0;l.push(p),d+=m}let c=[];for(let p=0;p<l.length;p++){let m=l[p],y=n[m].flex??0,v=s*y/d,g=t[m];t[m]=N(g+v,n[m]),c.push(t[m]-g)}let u=0;for(let p of c)u+=p;s-=u;let h=l.filter((p,m)=>c[m]>.001);if(h.length===l.length)break;r.length=0;for(let p of h)r.push(p)}}return t}function Qn(n,e,t){let r=new Set(n.map((i,s)=>s)),o=t;for(let i=0;i<n.length+1&&r.size>0;i++){let s=0;for(let l of r)s+=Math.max(1,e[l]);if(s<=0)break;let a=!1;for(let l of[...r]){let d=o*(Math.max(1,e[l])/s),c=N(d,n[l]),{min:u,max:h}=Ar(n[l]);(d<u||d>h)&&(e[l]=c,o-=c,r.delete(l),a=!0)}if(!a){for(let l of r)e[l]=N(o*(Math.max(1,e[l])/s),n[l]);break}o=Math.max(0,o)}}function Jn(n,e,t){let r=t-e.reduce((o,i)=>o+i,0);if(!(Math.abs(r)<=.01))for(let o=e.length-1;o>=0;o--){let i=N(e[o]+r,n[o]);if(Math.abs(i-e[o])>.01){e[o]=i;return}}}function Gr(n,e){let t=n.map(r=>N(r.width??150,r));return!Number.isFinite(e)||e<=0||n.length===0||(Qn(n,t,e),Jn(n,t,e)),t}var zt="__rg_detail_toggle__";function ke(n){return typeof n=="number"&&Number.isFinite(n)&&n>0}var Ie=class{constructor(e){this.core=e;this.columns=[];this.rootChildren=[];this.left=[];this.center=[];this.right=[];this.sortModel=[];this.defs=[];this.headerDepth=1;this.flatIndexById=new Map;this.viewportWidth=0}setColumnDefs(e){this.defs=e?[...e]:[];let t=new Map(this.columns.map(s=>[s.id,s])),r=this.core.options.defaultColDef,o=new Set(this.core.options.masterDetail&&this.core.options.detailToggleColumn?[zt]:[]),i=(s,a,l)=>s.map((d,c)=>{if(se(d)){let g=d.groupId??d.headerName??`group_${c}_${l}`,b=new Z(g,d);return b.parent=a,b.children=i(d.children,b,l+1),b}let u=d,h=u.colId??u.field??`col_${c}`,p=h,m=2;for(;o.has(p);)p=`${h}_${m++}`;o.add(p);let y=new _(p,Lr(u,r,this.core.options.columnTypes));y.parentGroup=a,y.level=l;let v=t.get(p);return v&&(y.manualWidth=v.manualWidth,y.flex=v.flex,y.hide=v.hide,y.pinned=v.pinned),y});if(this.rootChildren=i(this.defs,null,0),this.core.options.masterDetail&&this.core.options.detailToggleColumn){let s=new _(zt,{colId:zt,headerName:"",width:38,pinned:"left",sortable:!1,resizable:!1,movable:!1,filter:!1});s.isDetailToggle=!0,this.rootChildren.unshift(s)}if(this.columns=this.collectLeaves(this.rootChildren),this.headerDepth=this.columns.reduce((s,a)=>Math.max(s,a.level+1),1),this.sortModel=this.sortModel.filter(s=>this.columns.some(a=>a.id===s.colId)),this.sortModel.length===0){let s=[];for(let a of this.columns)a.colDef.initialSort&&s.push({colId:a.id,direction:a.colDef.initialSort});this.sortModel=s}this.regroup()}collectLeaves(e,t=[]){for(let r of e)r instanceof Z?this.collectLeaves(r.children,t):t.push(r);return t}regroup(){let e=this.columns.filter(t=>!t.hide);this.left=e.filter(t=>t.pinned==="left"),this.right=e.filter(t=>t.pinned==="right"),this.center=e.filter(t=>t.pinned===null),this.flatIndexById.clear(),this.getOrderedVisible().forEach((t,r)=>this.flatIndexById.set(t.id,r))}getFlatIndex(e){return this.flatIndexById.get(e)??-1}getColumns(){return this.columns}getColumnDefs(){return this.defs}getRootChildren(){return this.rootChildren}getHeaderDepth(){return this.headerDepth}getColumn(e){return this.columns.find(t=>t.id===e)}getPaneColumns(e){return e==="left"?this.left:e==="right"?this.right:this.center}getOrderedVisible(){return[...this.left,...this.center,...this.right]}getRowGroupColumns(){return this.getOrderedVisible().filter(e=>e.colDef.rowGroup===!0)}getAggColumns(){return this.getOrderedVisible().filter(e=>e.colDef.aggFunc!=null&&e.colDef.rowGroup!==!0)}hasColSpan(){return this.center.some(e=>e.colDef.colSpan!=null)}getGroupLabelColumn(){let e=this.getOrderedVisible();return this.center.find(t=>!t.hasCheckbox&&!t.isDetailToggle)??e.find(t=>!t.hasCheckbox&&!t.isDetailToggle)??e[0]}paneOf(e){return e.pinned==="left"?"left":e.pinned==="right"?"right":"center"}computeLayout(e){this.viewportWidth=e;let t=0;for(let c of[...this.left,...this.right])c.currentWidth=N(c.manualWidth??c.colDef.width??150,this.widthInputOf(c)),t+=c.currentWidth;let r=Math.max(0,e-t),o=[],i=[];for(let c of this.center)(c.colDef.suppressSizeToFit||c.manualWidth!=null?i:o).push(c);let s=0;for(let c of i)c.currentWidth=N(c.manualWidth??c.colDef.width??150,this.widthInputOf(c)),s+=c.currentWidth;let a=o.map(c=>this.widthInputOf(c)),l=Math.max(0,r-s),d=this.core.options.columnLayout==="fit"?Gr(a,l):Pr(a,l);o.forEach((c,u)=>{c.currentWidth=d[u]})}widthInputOf(e){let t=e.colDef;return e.manualWidth!=null?{width:e.manualWidth,minWidth:t.minWidth,maxWidth:t.maxWidth}:{width:t.width,minWidth:t.minWidth,maxWidth:t.maxWidth,...e.flex!=null?{flex:e.flex}:{}}}setColumnWidth(e,t){return ke(t)?(e.manualWidth=N(t,this.widthInputOf(e)),e.flex=null,!0):!1}setColumnVisibility(e,t){let r=this.getColumn(e);!r||r.hide===!t||(r.hide=!t,this.regroup())}moveColumn(e,t){let r=this.getColumn(e);if(!r)return!1;let o=this.paneOf(r),i=u=>r.parentGroup?!0:this.paneOf(u)===o,s=r.parentGroup?r.parentGroup.children:this.rootChildren,a=s.filter(u=>u instanceof _&&!u.hide&&i(u)),l=a.indexOf(r);if(l<0)return!1;a.splice(l,1);let d=Math.max(0,Math.min(t,a.length));a.splice(d,0,r);let c=[];return s.forEach((u,h)=>{u instanceof _&&!u.hide&&i(u)&&c.push(h)}),c.length!==a.length?!1:(c.forEach((u,h)=>{s[u]=a[h]}),this.columns=this.collectLeaves(this.rootChildren),this.regroup(),!0)}setColumnPinned(e,t){let r=this.getColumn(e);!r||!r.movable||(r.pinned=t,this.regroup())}getColumnState(){return this.columns.map(e=>({colId:e.id,hide:e.hide,width:e.manualWidth??e.currentWidth,flex:e.flex,widthMode:e.manualWidth==null?"auto":"manual",pinned:e.pinned}))}applyColumnState(e){let t=new Map(e.map(r=>[r.colId,r]));for(let r of this.columns){let o=t.get(r.id);o&&this.applyColumnViewState(r,o)}this.applyStateOrder(e),this.regroup()}applyColumnViewState(e,t){typeof t.hide=="boolean"&&(e.hide=t.hide),t.widthMode==="auto"?(e.resetWidth(),ke(t.flex)&&(e.flex=t.flex)):ke(t.flex)?(e.flex=t.flex,e.manualWidth=null):ke(t.width)&&(e.manualWidth=N(t.width,this.widthInputOf(e)),e.flex=null),e.movable&&(t.pinned==="left"||t.pinned==="right"||t.pinned===null)&&(e.pinned=t.pinned)}applyStateOrder(e){let t=new Map;e.forEach((o,i)=>t.set(o.colId,i));let r=o=>o.pinned==="left"?"left":o.pinned==="right"?"right":"center";for(let o of["left","center","right"]){let i=this.rootChildren.filter(d=>d instanceof _&&!d.hide&&d.parentGroup===null&&r(d)===o);if(i.length<2)continue;let s=i.filter(d=>d.movable),a=s.slice().sort((d,c)=>(t.get(d.id)??Number.MAX_SAFE_INTEGER)-(t.get(c.id)??Number.MAX_SAFE_INTEGER));if(a.every((d,c)=>d===s[c]))continue;let l=[];this.rootChildren.forEach((d,c)=>{d instanceof _&&!d.hide&&d.parentGroup===null&&r(d)===o&&d.movable&&l.push(c)}),l.forEach((d,c)=>{this.rootChildren[d]=a[c]})}this.columns=this.collectLeaves(this.rootChildren)}resetColumnState(){for(let e of this.columns){e.resetWidth(),e.hide=e.colDef.hide??!1;let t=e.colDef.pinned;e.pinned=t===!0?"left":t===!1||t==null?null:t}this.regroup()}getSortModel(){return this.sortModel.map(e=>({...e}))}applySortModel(e){if(!e||e.length===0){this.sortModel=[];return}this.sortModel=e.filter(t=>this.columns.some(r=>r.id===t.colId)&&(t.direction==="asc"||t.direction==="desc")).map(t=>({colId:t.colId,direction:t.direction}))}cycleSort(e,t){let r=[...this.sortModel],o=r.findIndex(l=>l.colId===e.id),i=o>=0?r[o].direction:null,s=i===null?"asc":i==="asc"?"desc":null;t&&this.core.options.multiSort?s===null?o>=0&&r.splice(o,1):o>=0?r[o]={colId:e.id,direction:s}:r.push({colId:e.id,direction:s}):(r.length=0,s&&r.push({colId:e.id,direction:s})),this.sortModel=r}};function Nr(n){return n==null?"":String(n).toLowerCase()}function Zn(n,e,t){let r=Nr(n),o=e.map(i=>{let s=(i.value??"").toLowerCase();switch(i.match){case"contains":return r.includes(s);case"notContains":return!r.includes(s);case"equals":return r===s;case"notEquals":return r!==s;case"startsWith":return r.startsWith(s);case"endsWith":return r.endsWith(s);case"blank":return r==="";case"notBlank":return r!=="";default:return!0}});return o.length===0?!0:t==="or"?o.some(Boolean):o.every(Boolean)}function ei(n,e,t){switch(t.match){case"equals":return n===e;case"notEquals":return n!==e;case"lessThan":return n<e;case"lessThanOrEqual":return n<=e;case"greaterThan":return n>e;case"greaterThanOrEqual":return n>=e;case"inRange":return n>=e&&n<=(t.value2??e);default:return!0}}function ti(n,e){let t=n==null||n==="";if(e.match==="blank")return t;if(e.match==="notBlank")return!t;if(t)return!1;let r=typeof n=="number"?n:Number(n);if(Number.isNaN(r))return!1;let o=e.value;return o==null||Number.isNaN(o)?!1:ei(r,o,e)}function ri(n,e,t){let r=e.map(o=>ti(n,o));return r.length===0?!0:t==="or"?r.some(Boolean):r.every(Boolean)}function Le(n){if(n==null||n==="")return null;if(n instanceof Date)return isNaN(n.getTime())?null:n.getTime();if(typeof n=="number")return n;let e=Date.parse(String(n));return isNaN(e)?null:e}function oi(n,e,t){let r=e.map(o=>{let i=Le(n)==null;if(o.match==="blank")return i;if(o.match==="notBlank")return!i;if(i)return!1;let s=Le(n),a=o.value!=null?Le(o.value):null;if(a==null)return!1;switch(o.match){case"equals":return s===a;case"notEquals":return s!==a;case"lessThan":return s<a;case"greaterThan":return s>a;case"inRange":{let l=o.value2!=null?Le(o.value2):null;return l!=null?s>=a&&s<=l:s>=a}default:return!0}});return r.length===0?!0:t==="or"?r.some(Boolean):r.every(Boolean)}function ni(n,e){return e.length===0?!0:e.some(t=>t==null&&n==null||t===n)}function Or(n,e){let t=e.type!=="set"&&e.operator==="or"?"or":"and";switch(e.type){case"text":return Zn(n,e.conditions,t);case"number":return ri(n,e.conditions,t);case"date":return oi(n,e.conditions,t);case"set":return ni(n,e.values);default:return!0}}function Wt(n,e,t,r){if(n.kind==="condition"){let i=e.get(n.colId);return!i||Or(r(t,i),n.filter)}let o=n.operator==="or"?n.children.some(i=>Wt(i,e,t,r)):n.children.every(i=>Wt(i,e,t,r));return n.not?!o:o}function ii(n,e,t,r){return t?Wt(t.root,new Map(e.map(o=>[o.id,o])),n,r):!0}function _t(n,e,t,r,o,i){for(let s of Object.keys(t)){let a=t[s],l=e.find(c=>c.id===s);if(!l)continue;let d=i(n,l);if(!Or(d,a))return!1}if(!ii(n,e,r,i))return!1;if(o&&o.trim()!==""){let s=o.trim().toLowerCase().split(/\s+/);for(let a of s)if(!e.some(d=>Nr(i(n,d)).includes(a)))return!1}return!0}var Hr=typeof Intl<"u"?new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"}):null;function si(n,e){let t=n==null||n==="",r=e==null||e==="";return!t&&!r?null:t&&r?0:t?1:-1}function ai(n,e){let t=Number.isNaN(n),r=Number.isNaN(e);return t||r?t===r?0:t?1:-1:n-e}function li(n,e){return n===e?0:n?1:-1}function Ae(n,e){let t=si(n,e);if(t!==null)return t;if(typeof n=="number"&&typeof e=="number")return ai(n,e);if(n instanceof Date&&e instanceof Date)return n.getTime()-e.getTime();if(typeof n=="boolean"&&typeof e=="boolean")return li(n,e);let r=String(n),o=String(e);return Hr?Hr.compare(r,o):r.localeCompare(o)}function Kt(n,e,t,r){let o=new Map;for(let l of t)o.set(l.id,l);let i=[],s=[];for(let l of e){let d=o.get(l.colId);d&&(i.push(d.colDef.comparator??Ae),s.push(l.direction))}let a=n.map(l=>({node:l,values:e.map(d=>r(l,o.get(d.colId)))}));return a.sort((l,d)=>{for(let c=0;c<i.length;c++){let u=i[c](l.values[c],d.values[c],l.node,d.node);if(u!==0)return s[c]==="asc"?u:-u}return 0}),a.map(l=>l.node)}function Pe(n){return n.filter(e=>typeof e=="number"&&!isNaN(e))}var $t={sum:n=>Pe(n).reduce((e,t)=>e+t,0),avg:n=>{let e=Pe(n);return e.length===0?null:e.reduce((t,r)=>t+r,0)/e.length},count:n=>n.length,min:n=>{let e=Pe(n);return e.length===0?null:Math.min(...e)},max:n=>{let e=Pe(n);return e.length===0?null:Math.max(...e)},first:n=>n.length>0?n[0]:null,last:n=>n.length>0?n[n.length-1]:null};function Ge(n){let e={...$t,...n??{}};return t=>e[t]}function ae(n){if(n.reason instanceof Error)return n.reason;let e=new Error(typeof n.reason=="string"?n.reason:"Block request aborted");return e.name="AbortError",e}function Fe(n){return Number.isFinite(n)?Math.max(1,Math.trunc(n)):1}var Ne=class{constructor(e,t,r=4){this.maxBlocks=e;this.onEvict=t;this.maxConcurrentRequests=r;this.blocks=new Map;this.inflight=new Map;this.clock=0;this.generation=0;this.hitCount=0;this.missCount=0;this.evictionCount=0;this.activeRequests=0;this.maxBlocks=Fe(e),this.maxConcurrentRequests=Fe(r)}configure(e,t=this.maxConcurrentRequests){this.maxBlocks=Fe(e),this.maxConcurrentRequests=Fe(t),this.evictOverflow(),this.drainQueue()}peek(e){let t=this.blocks.get(e);if(t)return t.touchedAt=++this.clock,t}has(e){return this.blocks.has(e)}load(e,t,r,o=0){if(r?.aborted)return Promise.reject(ae(r));let i=this.peek(e);if(i)return this.hitCount++,Promise.resolve(i);let s=this.inflight.get(e);if(s)return this.hitCount++,s.priority=Math.max(s.priority,o),this.drainQueue(),this.attachConsumer(e,s,r);this.missCount++;let a=new AbortController,l,d,c=new Promise((p,m)=>{l=p,d=m}),u={controller:a,promise:c,consumers:0,loader:t,priority:o,state:"queued",resolve:l,reject:d};this.inflight.set(e,u);let h=this.attachConsumer(e,u,r);return this.drainQueue(),h}purge(){this.generation++;for(let e of this.inflight.values())e.controller.abort(),e.state==="queued"&&e.reject(ae(e.controller.signal));this.inflight.clear();for(let[e,t]of this.blocks)this.onEvict?.(e,t);this.blocks.clear()}snapshot(){let e=0,t=0;for(let r of this.blocks.values())e+=r.rows.length;for(let r of this.inflight.values())r.state==="active"&&t++;return{cachedBlockCount:this.blocks.size,loadingBlockCount:this.inflight.size,activeRequestCount:t,queuedRequestCount:Math.max(0,this.inflight.size-t),cachedRowCount:e,hitCount:this.hitCount,missCount:this.missCount,evictionCount:this.evictionCount}}drainQueue(){for(;this.activeRequests<this.maxConcurrentRequests;){let e,t;for(let[r,o]of this.inflight)o.state!=="queued"||o.controller.signal.aborted||(!t||o.priority>t.priority)&&(e=r,t=o);if(e==null||!t)return;this.startEntry(e,t)}}startEntry(e,t){t.state="active",this.activeRequests++;let r=this.generation;this.runLoader(t).then(o=>{r===this.generation&&!t.controller.signal.aborted&&(this.blocks.set(e,{rows:o.rows,...o.lastRow==null?{}:{lastRow:o.lastRow},touchedAt:++this.clock}),this.evictOverflow()),t.resolve(o)},t.reject).finally(()=>{this.activeRequests=Math.max(0,this.activeRequests-1),this.inflight.get(e)===t&&this.inflight.delete(e),this.drainQueue()})}runLoader(e){let{signal:t}=e.controller;return t.aborted?Promise.reject(ae(t)):new Promise((r,o)=>{let i=()=>o(ae(t));t.addEventListener("abort",i,{once:!0}),Promise.resolve().then(()=>e.loader(t)).then(r,o).finally(()=>{t.removeEventListener("abort",i)})})}attachConsumer(e,t,r){return t.consumers++,new Promise((o,i)=>{let s=!1,a=d=>{s||(s=!0,r?.removeEventListener("abort",l),t.consumers=Math.max(0,t.consumers-1),d())},l=()=>a(()=>{t.consumers===0&&this.inflight.get(e)===t&&(this.inflight.delete(e),t.controller.abort(r?.reason),t.state==="queued"&&t.reject(ae(t.controller.signal))),i(ae(r))});r?.addEventListener("abort",l,{once:!0}),t.promise.then(d=>a(()=>o(d)),d=>a(()=>i(d instanceof Error?d:new Error(String(d??"Block request failed")))))})}evictOverflow(){for(;this.blocks.size>this.maxBlocks;){let e=-1,t=Number.POSITIVE_INFINITY;for(let[o,i]of this.blocks)i.touchedAt<t&&(e=o,t=i.touchedAt);if(e<0)return;let r=this.blocks.get(e);this.blocks.delete(e),this.evictionCount++,r&&this.onEvict?.(e,r)}}};function me(n,e){if(n==null||typeof n!="object")return;let t=n[e];return Array.isArray(t)?t:void 0}var Oe=class{constructor(e){this.core=e;this.all=[];this.roots=[];this.childIds=new Map;this.displayed=[];this.nodesById=new Map;this.filterModel={};this.advancedFilterModel=null;this.quickFilter=null;this.expandedIds=new Set;this.groupExpandedIds=new Set;this.knownGroupIds=[];this.spanInfo=new Map;this.mastersBuf=[];this.infiniteLastRow=null;this.infiniteRequested=!1;this.infiniteLoading=!1;this.infiniteSeq=0;this.infiniteAbort=null;this.infiniteRetryTimer=null;this.infinitePendingResolve=null;this.treeDepth=new WeakMap;this.rowSequence=new WeakMap;this.treeLoadControllers=new Map;this.treeLoadPromises=new Map;this.displayRevision=0;this.blockNodes=new Map;this.blockPlaceholders=new Map;this.installedBlocks=new Set;this.blockCache=new Ne(12,e=>this.evictBlock(e));this.dataProcessorSeq=0;this.dataProcessorAbort=null;this.skipDataProcessorOnce=!1;this.lastRequestedBlock=0;this.pipelineRows=[];this.page=1;this.pageSize=20;this.advancedFilterModel=V(e.options.advancedFilterModel)}resolveRowId(e,t,r){let o=this.core.options.resolveRowId;if(!o)return r;try{let i=o({data:e,index:t,api:this.core.getApi()});if(typeof i=="string"&&i.length>0)return i;this.core.reportError(new Error("rowKey must resolve to a non-empty identifier"),"rowKey",{index:t})}catch(i){this.core.reportError(i,"rowKey",{index:t})}return r}get isTree(){return this.core.options.treeData}get isInfinite(){return this.core.options.datasource!=null}get isBlockDatasource(){return this.isInfinite&&this.core.options.datasourceMode==="block"}getDisplayTotalCount(){if(this.isInfinite){if(this.isBlockDatasource)return this.resolveBlockRowCount();let e=Math.max(0,this.displayed.length-this.all.length);return(this.infiniteLastRow??this.all.length)+e}return this.displayed.length}getDisplayRevision(){return this.displayRevision}isLoadingInfinite(){return this.infiniteLoading}startInfinite(e){return!this.isInfinite||e?.aborted?Promise.resolve():(this.cancelInfiniteRequest(),this.infiniteLastRow=null,this.infiniteRequested=!1,this.all=[],this.roots=[],this.nodesById.clear(),this.expandedIds.clear(),this.core.undoService.clear(),this.refreshPipeline(),this.core.requestUpdate({data:!0}),this.isBlockDatasource?(this.blockCache.configure(this.core.options.maxBlocksInCache,this.core.options.datasourceMaxConcurrentRequests),this.loadRandomBlock(0,e)):this.loadBlock(0,void 0,e))}reloadInfinite(e){return this.isInfinite?this.startInfinite(e):Promise.resolve()}setInfiniteLoading(e){this.infiniteLoading=e,this.core.skeleton.setInfiniteLoading(e,this.core.getLocaleText("loading"))}loadBlock(e,t,r){if(!this.isInfinite||this.infiniteRequested||this.infiniteLastRow!=null&&e>=this.infiniteLastRow)return Promise.resolve();let o=this.core.options.datasource,i=this.core.options.blockSize,s=t??e+i;if(s<=e)return Promise.resolve();let a=++this.infiniteSeq,l=new AbortController,d=()=>l.abort(r?.reason);return r?.addEventListener("abort",d,{once:!0}),this.infiniteAbort=l,this.infiniteRequested=!0,this.setInfiniteLoading(!0),new Promise(c=>{let u=!1,h=0;this.infinitePendingResolve=c;let p=y=>{u||(u=!0,r?.removeEventListener("abort",d),a===this.infiniteSeq&&(this.infiniteRequested=!1,this.infiniteAbort=null,this.infinitePendingResolve=null,this.setInfiniteLoading(!1),y!=null&&y?.name!=="AbortError"&&this.core.reportError(y,"datasource.getRows",{startRow:e,endRow:s})),c())},m=()=>{if(u||a!==this.infiniteSeq||l.signal.aborted||this.core.isDestroyed()){p();return}h++;let y=!1,v=g=>{if(!(y||u)){if(y=!0,a!==this.infiniteSeq||l.signal.aborted||this.core.isDestroyed()){p();return}if(h<=this.core.options.datasourceRetryCount){let b=this.retryDelay(h);this.infiniteRetryTimer=setTimeout(()=>{this.infiniteRetryTimer=null,m()},b);return}p(g??new Error("Datasource request failed"))}};try{let g=o.getRows({startRow:e,endRow:s,sortModel:this.core.columnModel.getSortModel(),filterModel:this.getFilterModel(),advancedFilterModel:this.getAdvancedFilterModel(),quickFilterText:this.quickFilter,signal:l.signal,onSuccess:(b,T)=>{if(y||u)return;if(y=!0,a!==this.infiniteSeq||this.core.isDestroyed()||l.signal.aborted){p();return}let E=b??[];typeof T=="number"&&T>=0?this.infiniteLastRow=T:E.length<s-e&&(this.infiniteLastRow=e+E.length);let w=this.all.length===0;this.appendInfiniteRows(E),p(),this.refreshPipeline(),this.core.requestUpdate({data:!0}),w&&this.core.relayout(),this.core.headerRenderer.refreshSelectAllCheckbox()},fail:v});g&&typeof g.catch=="function"&&g.catch(v)}catch(g){v(g)}};m()})}cancelInfiniteRequest(){this.infiniteSeq++,this.infiniteRetryTimer!=null&&clearTimeout(this.infiniteRetryTimer),this.infiniteRetryTimer=null,this.infiniteAbort?.abort(),this.infiniteAbort=null,this.infiniteRequested=!1,this.setInfiniteLoading(!1),this.infinitePendingResolve?.(),this.infinitePendingResolve=null,this.blockCache.purge(),this.blockNodes.clear(),this.blockPlaceholders.clear(),this.installedBlocks.clear()}appendInfiniteRows(e){for(let t of e){if(t==null)continue;let r=this.all.length,o=this.resolveRowId(t,r,`inf-${this.core.nextId()}`);if(this.nodesById.has(o)){this.core.reportError(new Error(`Duplicate row id: ${o}`),"datasource.getRows",{rowId:o});continue}let i={id:o,data:t,rowIndex:-1,selected:this.core.selectionService.isSelected(o)};this.all.push(i),this.nodesById.set(o,i),this.roots.push(i)}}loadRandomBlock(e,t,r=0){if(!this.isBlockDatasource||e<0)return Promise.resolve();if(t?.aborted)return Promise.reject(this.abortError(t.reason));let o=this.core.options.blockSize,i=e*o;if(i>=this.resolveBlockRowCount())return Promise.resolve();let s=this.infiniteLastRow==null?i+o:Math.min(this.infiniteLastRow,i+o),a=this.blockCache.load(e,l=>this.requestDatasourceRange(i,s,l),t,r);return this.setInfiniteLoading(this.all.length===0&&this.blockCache.snapshot().loadingBlockCount>0),a.then(l=>{t?.aborted||this.core.isDestroyed()||!this.isBlockDatasource||this.installedBlocks.has(e)||(this.installBlock(e,l),this.refreshPipeline(),this.core.requestUpdate({data:!0}),this.core.headerRenderer.refreshSelectAllCheckbox())}).catch(l=>{throw l?.name!=="AbortError"&&this.core.reportError(l,"datasource.getRows",{startRow:i,endRow:s}),l}).finally(()=>{this.setInfiniteLoading(this.all.length===0&&this.blockCache.snapshot().loadingBlockCount>0)})}requestDatasourceRange(e,t,r){let o=this.core.options.datasource;return new Promise((i,s)=>{let a=0,l=null,d=!1,c=p=>{d||(d=!0,l!=null&&clearTimeout(l),r.removeEventListener("abort",u),s(p instanceof Error?p:new Error(typeof p=="string"?p:"Datasource request failed")))},u=()=>c(this.abortError(r.reason));r.addEventListener("abort",u,{once:!0});let h=()=>{if(d)return;if(r.aborted||this.core.isDestroyed()){u();return}a++;let p=!1,m=y=>{if(!(p||d)){if(p=!0,r.aborted||this.core.isDestroyed()){u();return}if(a<=this.core.options.datasourceRetryCount){let v=this.retryDelay(a);l=setTimeout(()=>{l=null,h()},v)}else c(y)}};try{let y=o.getRows({startRow:e,endRow:t,sortModel:this.core.columnModel.getSortModel(),filterModel:this.getFilterModel(),advancedFilterModel:this.getAdvancedFilterModel(),quickFilterText:this.quickFilter,signal:r,onSuccess:(v,g)=>{p||d||(p=!0,d=!0,r.removeEventListener("abort",u),i({rows:v??[],...typeof g=="number"&&g>=0?{lastRow:g}:{}}))},fail:m});y&&typeof y.catch=="function"&&y.catch(m)}catch(y){m(y)}};h()})}installBlock(e,t){let r=this.core.options.blockSize,o=e*r;this.evictBlock(e),typeof t.lastRow=="number"&&t.lastRow>=0?this.infiniteLastRow=t.lastRow:t.rows.length<r&&(this.infiniteLastRow=o+t.rows.length),t.rows.forEach((i,s)=>{if(i==null)return;let a=o+s;if(this.infiniteLastRow!=null&&a>=this.infiniteLastRow)return;let l=this.resolveRowId(i,a,`block-${a}`),d=this.nodesById.get(l);if(d&&d.rowIndex!==a){this.core.reportError(new Error(`Duplicate row id: ${l}`),"datasource.getRows",{rowId:l});return}let c={id:l,data:i,rowIndex:a,selected:this.core.selectionService.isSelected(l)};this.blockNodes.set(a,c),this.blockPlaceholders.delete(a),this.nodesById.set(l,c),this.rowSequence.set(c,a+1)}),this.rebuildLoadedBlockRows(),this.installedBlocks.add(e)}evictBlock(e){this.installedBlocks.delete(e);let t=this.core.options.blockSize,r=e*t;for(let o=r;o<r+t;o++){let i=this.blockNodes.get(o);i&&(this.blockNodes.delete(o),this.nodesById.get(i.id)===i&&this.nodesById.delete(i.id))}this.rebuildLoadedBlockRows()}rebuildLoadedBlockRows(){this.all=[...this.blockNodes.entries()].sort(([e],[t])=>e-t).map(([,e])=>e),this.roots=this.all}resolveBlockRowCount(){if(this.infiniteLastRow!=null)return this.infiniteLastRow;if(this.core.options.datasourceRowCount!=null)return this.core.options.datasourceRowCount;if(this.blockNodes.size===0)return this.core.options.blockSize;let e=0;for(let t of this.blockNodes.keys())e=Math.max(e,t+1);return e+this.core.options.blockSize}blockPlaceholder(e){let t=this.blockPlaceholders.get(e);if(!t&&(t={id:`__mach_loading_${e}`,data:null,rowIndex:e,selected:!1,loading:!0},this.blockPlaceholders.set(e,t),this.blockPlaceholders.size>2e3)){let r=this.blockPlaceholders.keys().next().value;r!=null&&this.blockPlaceholders.delete(r)}return t}abortError(e){if(e instanceof Error)return e;let t=new Error(typeof e=="string"?e:"Operation aborted");return t.name="AbortError",t}retryDelay(e){let t=Math.min(this.core.options.datasourceRetryDelay*2**Math.max(0,e-1),3e4),r=this.core.options.datasourceRetryJitter;return Math.max(0,Math.round(t*(1+(Math.random()*2-1)*r)))}checkInfiniteScroll(e){if(this.isBlockDatasource){this.prefetchVisibleBlocks(e);return}if(!this.isInfinite||this.infiniteRequested)return;let t=this.all.length;if(this.infiniteLastRow!=null&&t>=this.infiniteLastRow)return;let r=this.core.options.infiniteBufferRows;if(e+r<t&&e<t)return;let o=this.core.options.blockSize,i=this.infiniteLastRow==null?t+o:Math.min(this.infiniteLastRow,t+o);this.loadBlock(t,i)}prefetchVisibleBlocks(e){if(e<0)return;let t=this.core.options.blockSize,r=Math.floor(e/t),o=this.core.options.blockPrefetch,i=r<this.lastRequestedBlock?-1:1;this.lastRequestedBlock=r;for(let s=0;s<=o;s++){let a=s===0?[r]:[r+i*s,r-i*s];for(let l of a)l<0||l*t>=this.resolveBlockRowCount()||this.loadRandomBlock(l,void 0,o-s+1).catch(()=>{})}}onServerParamsChanged(){return this.reloadInfinite().catch(()=>{})}onDatasourceChanged(){return this.cancelInfiniteRequest(),this.isInfinite?this.startInfinite().catch(()=>{}):(this.infiniteLastRow=null,this.setRowData(this.core.options.rowData),this.core.requestUpdate({data:!0}),Promise.resolve())}destroy(){this.cancelInfiniteRequest(),this.cancelTreeLoads(),this.cancelDataProcessor(),this.core.options.dataProcessor?.destroy?.()}ensureRowsLoaded(e,t,r){if(!this.isBlockDatasource)return Promise.resolve();let o=this.core.options.blockSize,i=Math.max(0,Math.trunc(e)),s=Math.min(this.resolveBlockRowCount(),Math.max(i,Math.trunc(t))),a=Math.floor(i/o),l=Math.max(a,Math.floor(Math.max(i,s-1)/o)),d=[];for(let c=a;c<=l;c++)d.push(this.loadRandomBlock(c,r,100));return Promise.all(d).then(()=>{})}purgeDatasourceCache(){this.isBlockDatasource&&(this.blockCache.purge(),this.blockNodes.clear(),this.blockPlaceholders.clear(),this.installedBlocks.clear(),this.all=[],this.roots=[],this.nodesById.clear(),this.refreshPipeline(),this.core.requestUpdate({data:!0}))}getDatasourceCacheSnapshot(){return this.blockCache.snapshot()}setRowData(e){this.cancelTreeLoads(),this.core.changeTracker.clear();let t=this.core.options.resolveRowId,r=this.core.options.childrenKey,o=[],i=[],s=new Map,a=new Map,l=0,d=(c,u,h)=>{let p=l++,m=this.resolveRowId(c,p,`auto-${p}`);if(s.has(m))return this.core.reportError(new Error(`Duplicate row id: ${m}`),"rowData",{rowId:m,index:p}),null;let y=this.isTree?me(c,r):void 0,v={id:m,data:c,rowIndex:-1,selected:!1,treeChildrenLoaded:Array.isArray(y)};if(this.treeDepth.set(v,u),o.push(v),s.set(m,v),h!=null){let g=a.get(h)??[];g.push(m),a.set(h,g)}else i.push(v);if(this.isTree&&Array.isArray(y))for(let g of y)g!=null&&d(g,u+1,m);return v};(e??[]).forEach(c=>{c!=null&&d(c,0,null)}),this.all=o,this.roots=i,this.childIds=a,this.nodesById=s,this.core.undoService.clear();for(let c of[...this.expandedIds])s.has(c)||this.expandedIds.delete(c);if(this.core.options.defaultExpandAll)for(let c of o)this.getChildrenCount(c.id)>0&&this.expandedIds.add(c.id);this.core.selectionService.onRowsRebuilt(t!=null),this.refreshPipeline()}getChildrenIds(e){return this.childIds.get(e)??[]}getChildrenCount(e){return this.childIds.get(e)?.length??0}hasChildren(e){return this.getChildrenCount(e)>0}isTreeRowLoading(e){return this.nodesById.get(e)?.treeLoading===!0}cancelTreeLoads(){for(let e of this.treeLoadControllers.values())e.abort();this.treeLoadControllers.clear(),this.treeLoadPromises.clear()}loadTreeChildren(e,t=!1){let r=this.nodesById.get(e),o=this.core.options.loadTreeChildren;if(!this.isTree||!r?.data||!o)return Promise.resolve([]);if(!t&&r.treeChildrenLoaded)return Promise.resolve(this.getChildrenIds(e).flatMap(l=>{let d=this.nodesById.get(l)?.data;return d==null?[]:[d]}));let i=this.treeLoadPromises.get(e);if(i&&!t)return i;this.treeLoadControllers.get(e)?.abort();let s=new AbortController;this.treeLoadControllers.set(e,s),r.treeLoading=!0,r.treeLoadError=void 0,this.core.requestUpdate({data:!0});let a=Promise.resolve().then(()=>o({data:r.data,node:r,api:this.core.getApi(),signal:s.signal})).then(l=>{if(s.signal.aborted||this.core.isDestroyed())return[];if(!Array.isArray(l))throw new TypeError("[MachTable] loadTreeChildren must resolve to an array.");return this.replaceTreeChildren(r,l),r.treeChildrenLoaded=!0,r.treeLoadError=void 0,this.core.emit("treeChildrenLoaded",{rowId:e,rowNode:r,children:l}),l}).catch(l=>{if(s.signal.aborted||l?.name==="AbortError")return[];throw r.treeLoadError=l,r.treeChildrenLoaded=!1,this.core.reportError(l,"treeData.loadChildren",{rowId:e}),this.core.emit("treeChildrenLoadFailed",{rowId:e,rowNode:r,error:l}),l}).finally(()=>{this.treeLoadControllers.get(e)===s&&(this.treeLoadControllers.delete(e),this.treeLoadPromises.delete(e),r.treeLoading=!1,this.core.requestUpdate({data:!0}))});return this.treeLoadPromises.set(e,a),a}replaceTreeChildren(e,t){let r=new Set,o=[...this.getChildrenIds(e.id)];for(;o.length>0;){let s=o.pop();r.has(s)||(r.add(s),o.push(...this.getChildrenIds(s)))}this.validateTreeChildren(t,r);for(let s of r)this.treeLoadControllers.get(s)?.abort(),this.treeLoadControllers.delete(s),this.treeLoadPromises.delete(s),this.childIds.delete(s),this.nodesById.delete(s),this.expandedIds.delete(s);this.childIds.delete(e.id);let i=this.getTreeDepth(e)+1;for(let s of t)s!=null&&this.buildChildNodes(e,s,i);this.reindexAll(),this.core.selectionService.onRowsRebuilt(this.core.options.resolveRowId!=null),this.refreshPipeline(),this.core.requestUpdate({data:!0})}validateTreeChildren(e,t){let r=this.core.options.resolveRowId,o=r?new Set([...this.nodesById.keys()].filter(l=>!t.has(l))):null,i=new WeakSet,s=[...e],a=0;for(;s.length>0;){let l=s.pop();if(l==null)continue;if(typeof l=="object"){if(i.has(l))throw new TypeError("[MachTable] Lazy tree children contain a cyclic object graph.");i.add(l)}if(r&&o){let c=r({data:l,index:a++,api:this.core.getApi()});if(typeof c!="string"||c.length===0)throw new TypeError("[MachTable] rowKey must resolve to a non-empty identifier for lazy tree children.");if(o.has(c))throw new Error(`Duplicate row id: ${c}`);o.add(c)}let d=me(l,this.core.options.childrenKey);d&&s.push(...d)}}applyTransaction(e,t=!0){let r=this.core.options.resolveRowId,o=[],i=[];if(e.remove?.length){let a=new Set,l=new Set,d=u=>{if(r){let p=[this.resolveRowId(u,-1,`__missing_remove_${this.core.nextId()}`)];for(;p.length>0;){let m=p.pop();if(!a.has(m)){a.add(m);for(let y of this.childIds.get(m)??[])p.push(y)}}}else{let h=[u];for(;h.length>0;){let p=h.pop();l.add(p);let m=this.isTree?me(p,this.core.options.childrenKey):void 0;if(m)for(let y of m)h.push(y)}}};e.remove.forEach(d),this.all=this.all.filter(u=>{let h=a.has(u.id)||u.data!=null&&l.has(u.data);return h&&(i.push(u.id),this.nodesById.delete(u.id),this.childIds.delete(u.id)),!h});let c=new Set(this.all);this.roots=this.roots.filter(u=>c.has(u))}if(e.update?.length)for(let a of e.update){let l;r?l=this.nodesById.get(this.resolveRowId(a,-1,`__missing_update_${this.core.nextId()}`)):l=this.all.find(d=>d.data===a),l&&(l.data=a,i.push(l.id),this.core.bodyRenderer.invalidateRowHeight(l),o.push(l))}if(e.add?.length){let a=e.addIndex!=null?Math.max(0,Math.min(e.addIndex,this.roots.length)):this.roots.length,l=[];e.add.forEach((d,c)=>{let u=this.resolveRowId(d,a+c,`add-${this.core.nextId()}`);if(this.nodesById.has(u)){this.core.reportError(new Error(`Duplicate row id: ${u}`),"transaction.add",{rowId:u});return}let h={id:u,data:d,rowIndex:-1,selected:!1};this.nodesById.set(u,h),this.treeDepth.set(h,0);let p=this.isTree?me(d,this.core.options.childrenKey):void 0;if(p)for(let m of p)m!=null&&this.buildChildNodes(h,m,1);l.push(h)}),this.roots.splice(a,0,...l),this.reindexAll()}let s=this.transactionNeedsPipeline(e);return t&&(s?this.refreshPipeline():o.length>0&&this.emitIncrementalModelUpdate()),this.core.changeTracker.clearRows(i),{pipelineChanged:s,updatedRowIds:o.map(a=>a.id)}}applyTransactions(e){if(e.length===0)return{pipelineChanged:!1,updatedRowIds:[]};let t=!1,r=new Set;for(let o of e){let i=this.applyTransaction(o,!1);t||(t=i.pipelineChanged);for(let s of i.updatedRowIds)r.add(s)}return t?this.refreshPipeline():r.size>0&&this.emitIncrementalModelUpdate(),{pipelineChanged:t,updatedRowIds:[...r]}}transactionNeedsPipeline(e){return e.add?.length||e.remove?.length?!0:e.update?.length?this.isTree||this.core.options.masterDetail||this.core.columnModel.getRowGroupColumns().length>0||!this.core.options.manualFiltering&&this.isFilterPresent()||!this.core.options.manualSorting&&this.core.columnModel.getSortModel().length>0||this.core.options.getRowHeight?!0:this.core.columnModel.getOrderedVisible().some(t=>t.colDef.autoHeight===!0||t.colDef.autoRowSpan===!0||t.colDef.rowSpan!=null):!1}emitIncrementalModelUpdate(){this.core.emit("modelUpdated",{rowCount:this.pipelineRows.length})}buildChildNodes(e,t,r){let o=this.resolveRowId(t,-1,`add-${this.core.nextId()}`);if(this.nodesById.has(o)){this.core.reportError(new Error(`Duplicate row id: ${o}`),"transaction.add",{rowId:o});return}let i=me(t,this.core.options.childrenKey),s={id:o,data:t,rowIndex:-1,selected:!1,treeChildrenLoaded:Array.isArray(i)};this.nodesById.set(o,s),this.treeDepth.set(s,r);let a=this.childIds.get(e.id)??[];if(a.push(s.id),this.childIds.set(e.id,a),!!i)for(let l of i)l!=null&&this.buildChildNodes(s,l,r+1)}reindexAll(){this.all=[];let e=t=>{this.all.push(t),this.nodesById.has(t.id)||this.nodesById.set(t.id,t);for(let r of this.childIds.get(t.id)??[]){let o=this.nodesById.get(r);o&&e(o)}};for(let t of this.roots)e(t)}setFilterModel(e){let t=JSON.stringify(this.filterModel),r=new Set(this.core.columnModel.getColumns().map(o=>o.id));return this.filterModel=ne(e,r),JSON.stringify(this.filterModel)!==t}getFilterModel(){return{...this.filterModel}}setAdvancedFilterModel(e){let t=new Set(this.core.columnModel.getColumns().map(i=>i.id)),r=V(e,t),o=JSON.stringify(this.advancedFilterModel);return this.advancedFilterModel=r,this.core.options.advancedFilterModel=r,JSON.stringify(r)!==o}getAdvancedFilterModel(){return V(this.advancedFilterModel)}setQuickFilter(e){let t=e!=null&&e.trim()!==""?e:null;return t===this.quickFilter?!1:(this.quickFilter=t,!0)}getQuickFilter(){return this.quickFilter}isFilterPresent(){return Object.keys(this.filterModel).length>0||this.advancedFilterModel!=null||this.quickFilter!=null}refreshPipeline(){let e=this.core.performanceMonitor.start(),t=this.core.columnModel.getOrderedVisible(),r=(s,a)=>this.core.getCellValue(s,a);if(this.isInfinite){this.refreshInfinitePipeline(e);return}if(this.startDataProcessorIfNeeded(e))return;let o;if(this.isTree)o=this.buildTreeDisplay(t,r);else{o=this.all,this.isFilterPresent()&&!this.core.options.manualFiltering&&(o=o.filter(d=>_t(d,t,this.filterModel,this.advancedFilterModel,this.quickFilter,r)));let a=this.core.columnModel.getSortModel();if(a.length>0&&!this.core.options.manualSorting)try{o=Kt(o,a,t,r)}catch(d){this.core.reportError(d,"comparator",{sortModel:a})}let l=this.core.columnModel.getRowGroupColumns();if(l.length>0)o=this.buildGrouped(o,l);else if(this.core.options.masterDetail){let d=[];for(let c of o)d.push(c),this.expandedIds.has(c.id)&&this.isRowExpandable(c)&&d.push({id:`__detail__${c.id}`,data:c.data,rowIndex:-1,selected:!1,isDetail:!0,masterId:c.id});o=d}}for(let s of this.all)s.rowIndex=-1;let i=0;o.forEach((s,a)=>{s.rowIndex=a,!s.isDetail&&!s.isGroup&&(i++,this.rowSequence.set(s,i))}),this.pipelineRows=o,this.applyPagination(),this.computeSpans(r),this.core.emit("modelUpdated",{rowCount:o.length}),this.core.performanceMonitor.recordModel(e)}refreshInfinitePipeline(e){this.all.forEach((t,r)=>{this.isBlockDatasource||(t.rowIndex=r),this.rowSequence.set(t,this.isBlockDatasource?t.rowIndex+1:r+1)}),this.displayed=this.all,this.pipelineRows=this.all,this.spanInfo.clear(),this.displayRevision++,this.core.emit("modelUpdated",{rowCount:this.all.length}),this.core.performanceMonitor.recordModel(e)}startDataProcessorIfNeeded(e){let t=this.skipDataProcessorOnce;return this.skipDataProcessorOnce=!1,!t&&this.shouldUseDataProcessor()?(this.refreshWithDataProcessor(e),!0):(this.cancelDataProcessor(),!1)}shouldUseDataProcessor(){if(!this.core.options.dataProcessor||this.all.length<this.core.options.dataProcessorMinRows||this.isTree||this.core.options.masterDetail||this.core.columnModel.getRowGroupColumns().length>0)return!1;let e=!this.core.options.manualFiltering&&this.isFilterPresent(),t=!this.core.options.manualSorting&&this.core.columnModel.getSortModel().length>0;return e||t}refreshWithDataProcessor(e){this.cancelDataProcessor();let t=this.core.options.dataProcessor;if(!t)return;let r=++this.dataProcessorSeq,o=new AbortController;this.dataProcessorAbort=o;let i=this.core.columnModel.getOrderedVisible(),s=this.all.flatMap(d=>d.data==null?[]:[{id:d.id,data:d.data}]),a=!this.core.options.manualFiltering,l=!this.core.options.manualSorting;Promise.resolve().then(()=>t.process({rows:s,columns:i.map(d=>({colId:d.id,...d.colDef.field?{field:d.colDef.field}:{}})),sortModel:l?this.core.columnModel.getSortModel():[],filterModel:a?this.getFilterModel():{},advancedFilterModel:a?this.getAdvancedFilterModel():null,quickFilterText:a?this.quickFilter:null,signal:o.signal})).then(d=>{if(r!==this.dataProcessorSeq||o.signal.aborted||this.core.isDestroyed())return;let c=new Set,u=[];for(let p of d.rowIds){if(c.has(p))continue;c.add(p);let m=this.nodesById.get(p);m&&!m.isDetail&&!m.isGroup&&u.push(m)}for(let p of this.all)p.rowIndex=-1;u.forEach((p,m)=>{p.rowIndex=m,this.rowSequence.set(p,m+1)}),this.pipelineRows=u,this.applyPagination();let h=(p,m)=>this.core.getCellValue(p,m);this.computeSpans(h),this.core.emit("modelUpdated",{rowCount:u.length}),this.core.performanceMonitor.recordModel(e),this.core.requestUpdate({data:!0})}).catch(d=>{r!==this.dataProcessorSeq||o.signal.aborted||this.core.isDestroyed()||(this.core.reportError(d,"dataProcessor.process"),this.skipDataProcessorOnce=!0,this.refreshPipeline(),this.core.requestUpdate({data:!0}))}).finally(()=>{r===this.dataProcessorSeq&&(this.dataProcessorAbort=null)})}cancelDataProcessor(){this.dataProcessorSeq++,this.dataProcessorAbort?.abort(),this.dataProcessorAbort=null}get paginationActive(){return this.core.options.paginationEnabled&&!this.isInfinite}applyPagination(){if(!this.paginationActive){this.displayed=this.pipelineRows,this.displayRevision++;return}let e=this.effectivePageSize(),t=this.getPageCount();if(this.page>t&&(this.page=t),this.page<1&&(this.page=1),this.core.options.paginationPage=this.page,this.core.options.paginationMode==="server"){this.pipelineRows.forEach((i,s)=>{i.rowIndex=s}),this.displayed=this.pipelineRows,this.displayRevision++;return}let r=(this.page-1)*e,o=this.pipelineRows.slice(r,r+e);o.forEach((i,s)=>{i.rowIndex=s}),this.displayed=o,this.displayRevision++}effectivePageSize(){return this.pageSize=this.core.options.paginationPageSize,Math.max(1,this.pageSize)}getCurrentPage(){return this.paginationActive?this.page:1}getTotalRowCount(){return this.isInfinite?this.getDisplayTotalCount():this.paginationActive&&this.core.options.paginationMode==="server"?this.core.options.paginationTotal:this.pipelineRows.length}getPageCount(){return this.paginationActive?Math.max(1,Math.ceil(this.getTotalRowCount()/this.effectivePageSize())):1}getPipelineRows(){return this.pipelineRows}setPage(e,t=!1){if(!this.paginationActive)return;let r=this.getPageCount(),o=Math.max(1,Math.min(Math.round(e)||1,r));o!==this.page&&(this.page=o,this.core.options.paginationPage=o,this.applyPagination(),this.core.requestUpdate({data:!0}),this.core.bodyRenderer.scrollToIndex(0,"top"),t||this.emitPaginationChanged())}setPageSize(e){if(!this.paginationActive)return;let t=Math.max(1,Math.round(e)||this.effectivePageSize()),r=(this.page-1)*this.effectivePageSize();this.core.options.paginationPageSize=t,this.pageSize=t,this.page=Math.floor(r/t)+1,this.core.options.paginationPage=this.page,this.applyPagination(),this.core.requestUpdate({data:!0}),this.emitPaginationChanged()}restorePagination(e,t){this.pageSize=Math.max(1,Math.round(t)||1),this.core.options.paginationPageSize=this.pageSize,this.page=Math.max(1,Math.round(e)||1),this.core.options.paginationPage=this.page}setPaginationEnabled(e){this.core.options.paginationEnabled!==e&&(this.core.options.paginationEnabled=e&&!this.isInfinite,this.core.options.paginationEnabled&&(this.page=1),this.applyPagination(),this.core.requestUpdate({data:!0}),this.emitPaginationChanged())}onPaginationOptionsChanged(){this.paginationActive&&(this.page=this.core.options.paginationMode==="server"?this.core.options.paginationPage:1,this.applyPagination(),this.core.requestUpdate({data:!0}),this.emitPaginationChanged())}emitPaginationChanged(){this.core.emit("paginationChanged",{page:this.getCurrentPage(),pageSize:this.effectivePageSize(),pageCount:this.getPageCount(),total:this.getTotalRowCount()})}buildTreeDisplay(e,t){let r=this.core.options.manualSorting?[]:this.core.columnModel.getSortModel(),o=new Map,i=this.isFilterPresent()&&!this.core.options.manualFiltering,s=d=>{let c=o.get(d.id);if(c!==void 0)return c;let u=!0;if(i){u=_t(d,e,this.filterModel,this.advancedFilterModel,this.quickFilter,t);for(let h of this.childIds.get(d.id)??[]){let p=this.nodesById.get(h);p&&s(p)&&(u=!0)}}return o.set(d.id,u),u},a=[],l=d=>{let c=d;r.length>0&&(c=Kt(d,r,e,t));for(let u of c)if(s(u)&&(a.push(u),this.expandedIds.has(u.id))){let h=(this.childIds.get(u.id)??[]).map(p=>this.nodesById.get(p)).filter(p=>p!=null);l(h)}};return l(this.roots),a}collectSpanMasters(){let e=this.mastersBuf,t=0;for(let r of this.displayed)!r.isDetail&&!r.isGroup&&(e[t++]=r);return e.length=t,e}explicitRowSpan(e,t,r,o){let i=t.colDef.rowSpan;if(!i)return 1;try{let s=i({api:this.core.getApi(),colDef:t.colDef,column:t,node:e,data:e.data,value:r,rowIndex:e.rowIndex});return Math.max(1,Math.min(Math.round(s)||1,o))}catch(s){return this.core.reportError(s,"rowSpan",{colId:t.id,rowId:e.id}),1}}automaticRowSpan(e,t,r,o,i){if(!r.colDef.autoRowSpan||o==null||o==="")return 1;let s=1;for(;t+s<e.length&&Ae(o,i(e[t+s],r))===0;)s++;return s}computeColumnSpans(e,t,r){let o=new Int32Array(e.length),i=0;for(;i<e.length;){let s=e[i],a=r(s,t),l=t.colDef.rowSpan?this.explicitRowSpan(s,t,a,e.length-i):this.automaticRowSpan(e,i,t,a,r);o[i]=l;for(let d=1;d<l;d++)o[i+d]=-1;i+=l}return o}computeSpans(e){if(this.spanInfo.clear(),this.isTree||this.core.options.masterDetail||this.core.columnModel.getRowGroupColumns().length>0)return;let t=this.core.columnModel.getOrderedVisible().filter(o=>o.colDef.rowSpan!=null||o.colDef.autoRowSpan===!0);if(t.length===0)return;let r=this.collectSpanMasters();if(r.length!==0)for(let o of t)this.spanInfo.set(o.id,this.computeColumnSpans(r,o,e))}getSpanInfo(e){return this.spanInfo.get(e)}getRowSeq(e){return this.rowSequence.get(e)??0}getTreeDepth(e){return this.treeDepth.get(e)??0}buildGrouped(e,t){let r=Ge(this.core.options.aggFuncs),o=this.core.columnModel.getAggColumns();this.knownGroupIds=[];let i=a=>{let l={};for(let d of o){let c=r(d.colDef.aggFunc);if(c)try{l[d.id]=c(a.map(u=>this.core.getCellValue(u,d)))}catch(u){this.core.reportError(u,"aggFunc",{colId:d.id,aggFunc:d.colDef.aggFunc}),l[d.id]=null}}return l},s=(a,l,d)=>{if(l>=t.length)return{display:a,leaves:a};let c=t[l],u=new Map,h=[];for(let y of a){let v=this.core.getCellValue(y,c),g=v==null?"(\u7A7A)":String(v),b=u.get(g);b||(b=[],u.set(g,b),h.push(g)),b.push(y)}h.sort((y,v)=>y.localeCompare(v,void 0,{numeric:!0,sensitivity:"base"}));let p=[],m=[];for(let y of h){let v=u.get(y),g=`${d}/g${l}:${y}`;this.knownGroupIds.push(g);let b=s(v,l+1,g),T={id:g,data:null,rowIndex:-1,selected:!1,isGroup:!0,groupLevel:l,groupKey:y,leafNodes:b.leaves,aggValues:i(b.leaves)};p.push(T),this.groupExpandedIds.has(g)&&p.push(...b.display),m.push(...b.leaves)}return{display:p,leaves:m}};return s(e,0,"").display}isRowExpandable(e){if(this.isTree){if(this.hasChildren(e.id)||e.treeLoading)return!0;if(e.treeChildrenLoaded||!e.data||!this.core.options.loadTreeChildren)return!1;let r=this.core.options.isTreeRowExpandable;if(!r)return!1;try{return r({data:e.data,node:e,api:this.core.getApi()})}catch(o){return this.core.reportError(o,"isTreeRowExpandable",{rowId:e.id}),!1}}if(!this.core.options.masterDetail)return!1;let t=this.core.options.isRowExpandable;if(t)try{return t({data:e.data,node:e,api:this.core.getApi()})}catch(r){return this.core.reportError(r,"isRowExpandable",{rowId:e.id}),!1}return!0}isRowExpanded(e){return this.expandedIds.has(e)}getExpandedRowIds(){return[...this.expandedIds]}getExpandedGroupIds(){return[...this.groupExpandedIds]}restoreExpansion(e,t){this.expandedIds=new Set(e.filter(r=>this.nodesById.has(r))),this.groupExpandedIds=new Set(t)}expandRow(e){return this.setDetailExpanded(e,!0)}collapseRow(e){return this.setDetailExpanded(e,!1)}toggleDetail(e){return this.setDetailExpanded(e,!this.expandedIds.has(e))}setDetailExpanded(e,t){let r=this.nodesById.get(e);return!r||t&&!this.isRowExpandable(r)?!1:(t===this.expandedIds.has(e)||(t?this.expandedIds.add(e):this.expandedIds.delete(e),this.refreshPipeline(),this.core.requestUpdate({data:!0}),this.core.emit("detailToggled",{rowId:e,rowNode:r,expanded:t}),t&&this.isTree&&!this.hasChildren(e)&&!r.treeLoading&&this.loadTreeChildren(e).catch(()=>{})),t)}expandAllDetails(){let e=!1;for(let t of this.all)!this.expandedIds.has(t.id)&&this.isRowExpandable(t)&&(this.expandedIds.add(t.id),e=!0);e&&(this.refreshPipeline(),this.core.requestUpdate({data:!0}))}collapseAllDetails(){this.expandedIds.size!==0&&(this.expandedIds.clear(),this.refreshPipeline(),this.core.requestUpdate({data:!0}))}toggleGroup(e){return this.setGroupExpanded(e,!this.groupExpandedIds.has(e))}isGroupExpanded(e){return this.groupExpandedIds.has(e)}getGroupNode(e){return this.displayed.find(t=>t.isGroup&&t.id===e)}expandAllGroups(){if(this.knownGroupIds.length===0)return;let e=!1;for(let t of this.knownGroupIds)this.groupExpandedIds.has(t)||(this.groupExpandedIds.add(t),e=!0);e&&(this.refreshPipeline(),this.core.requestUpdate({data:!0}))}collapseAllGroups(){this.groupExpandedIds.size!==0&&(this.groupExpandedIds.clear(),this.refreshPipeline(),this.core.requestUpdate({data:!0}))}setGroupExpanded(e,t){return!this.knownGroupIds.includes(e)||t===this.groupExpandedIds.has(e)||(t?this.groupExpandedIds.add(e):this.groupExpandedIds.delete(e),this.refreshPipeline(),this.core.requestUpdate({data:!0})),t}reorderRowsByDisplayed(e,t){if(this.isTree)return!1;let r=this.getDisplayedRow(e),o=this.getDisplayedRow(t);if(!r||!o||r.isDetail||o.isDetail||r.isGroup||o.isGroup)return!1;let i=this.all.indexOf(r),s=this.all.indexOf(o);if(i<0||s<0)return!1;if(s>i){let l=s;for(;l+1<this.all.length&&this.all[l+1].isDetail;)l++;s=l}if(i===s)return!1;this.all.splice(i,1);let a=this.all.indexOf(o);return this.all.splice(s>i?a+1:a,0,r),this.refreshPipeline(),this.core.requestUpdate({data:!0}),!0}getAllNodes(){return this.all}getRootNodes(){return this.roots}getDisplayedRows(){return this.displayed}getDisplayedRowCount(){return this.isBlockDatasource?this.resolveBlockRowCount():this.displayed.length}getDisplayedRow(e){return this.isBlockDatasource?e<0||e>=this.resolveBlockRowCount()?void 0:this.blockNodes.get(e)??this.blockPlaceholder(e):this.displayed[e]}getNodeById(e){return this.nodesById.get(e)}forEachNode(e){this.all.forEach(e)}forEachNodeAfterFilterAndSort(e){let t=0;for(let r of this.pipelineRows)r.isDetail||r.isGroup||e(r,t++)}};var He=class{constructor(e){this.core=e;this.selectedIds=new Set;this.anchorId=null;this.indeterminateIds=new Set}isSelected(e){return this.selectedIds.has(e)}isIndeterminate(e){return this.indeterminateIds.has(e)}isSelectable(e){if(e.loading)return!1;let t=this.findSelectableColumn(e),r=t?.colDef.selectable;if(!t||!r)return!0;try{return r({api:this.core.getApi(),colDef:t.colDef,column:t,node:e,data:e.data,value:this.core.getCellValue(e,t),rowIndex:e.rowIndex})}catch(o){return this.core.reportError(o,"selectable",{rowId:e.id,colId:t?.id}),!1}}findSelectableColumn(e){if(!(e.isGroup||e.isDetail))return this.core.columnModel.getOrderedVisible().find(t=>t.hasCheckbox&&t.colDef.selectable!=null)}getSelectedNodes(){return this.core.rowModel.getAllNodes().filter(e=>this.selectedIds.has(e.id))}getSelectedRows(){return this.getSelectedNodes().filter(e=>e.data!=null).map(e=>e.data)}getSelectedIds(){return[...this.selectedIds]}restoreSelection(e){let t=new Set(e),r=this.core.rowModel.getAllNodes().filter(o=>t.has(o.id)&&!o.isDetail&&!o.isGroup).map(o=>({node:o,selected:!0}));this.applySelection(r,!0)}onRowsRebuilt(e){if(!e)this.selectedIds.clear(),this.anchorId=null;else{let t=new Set(this.core.rowModel.getAllNodes().map(r=>r.id));for(let r of[...this.selectedIds])t.has(r)||this.selectedIds.delete(r);this.anchorId!=null&&!t.has(this.anchorId)&&(this.anchorId=null)}for(let t of this.core.rowModel.getAllNodes())t.selected=this.selectedIds.has(t.id);this.recomputeTriState()}getGroupSelectionState(e){let t=e.leafNodes??[];if(t.length===0)return{all:!1,some:!1};let r=0,o=0;for(let i of t)this.isSelectable(i)&&(r++,this.selectedIds.has(i.id)&&o++);return r===0?{all:!1,some:!1}:{all:o===r,some:o>0}}setGroupSelected(e,t){let r=(e.leafNodes??[]).filter(o=>this.isSelectable(o));r.length!==0&&this.applySelection(r.map(o=>({node:o,selected:t})))}setNodeSelected(e,t,r=!1){this.applySelection([{node:e,selected:t,clearOthers:r}])}selectNodeById(e,t=!0,r=!0){let o=this.core.rowModel.getNodeById(e);o&&this.setNodeSelected(o,t,r)}selectFromCheckbox(e,t){let r=t==="single";this.applySelection([{node:e,selected:r?!0:!e.selected,clearOthers:r}]),this.anchorId=e.id}toggleFromModifier(e,t,r){return!r||!t.ctrlKey&&!t.metaKey?!1:(this.applySelection([{node:e,selected:!e.selected}]),this.anchorId=e.id,!0)}selectAnchorRange(e,t,r){if(!r||!t.shiftKey||this.anchorId==null)return!1;let o=this.core.rowModel.getNodeById(this.anchorId);if(!o||o.rowIndex<0||e.rowIndex<0)return!1;let i=Math.min(o.rowIndex,e.rowIndex),s=Math.max(o.rowIndex,e.rowIndex),a=[];for(let l=i;l<=s;l++){let d=this.core.rowModel.getDisplayedRow(l);d&&!d.isDetail&&!d.isGroup&&this.isSelectable(d)&&a.push({node:d,selected:!0})}return this.applySelection(a),!0}onRowClick(e,t,r){let o=this.core.options.rowSelection;if(o==="none"||!this.isSelectable(e))return;if(r){this.selectFromCheckbox(e,o);return}let i=o==="multiple";this.toggleFromModifier(e,t,i)||this.selectAnchorRange(e,t,i)||(this.applySelection([{node:e,selected:!0,clearOthers:!0}]),this.anchorId=e.id)}selectAll(e=!0){let t=this.core.options.rowSelection;if(t==="none")return;let o=(e?this.core.rowModel.getDisplayedRows():this.core.rowModel.getAllNodes()).filter(i=>!i.isDetail&&!i.isGroup&&this.isSelectable(i));if(o.length!==0){if(t==="single"){this.applySelection([{node:o[0],selected:!0,clearOthers:!0}]);return}this.applySelection(o.map(i=>({node:i,selected:!0})))}}deselectAll(){this.applySelection([],!0)}isSelectAllActive(){let t=this.core.rowModel.getDisplayedRows().filter(r=>!r.isDetail&&!r.isGroup).filter(r=>this.isSelectable(r));if(t.length===0)return!1;if(this.core.rowModel.isInfinite){let r=this.core.rowModel.getDisplayTotalCount();if(t.length<r)return!1}return t.every(r=>this.selectedIds.has(r.id))}isSelectAllIndeterminate(){let t=this.core.rowModel.getDisplayedRows().filter(o=>!o.isDetail&&!o.isGroup).filter(o=>this.isSelectable(o)),r=t.reduce((o,i)=>o+(this.selectedIds.has(i.id)?1:0),0);if(r===0)return!1;if(this.core.rowModel.isInfinite){let o=this.core.rowModel.getDisplayTotalCount();if(t.length<o)return!0}return r>0&&r<t.length}applySelectionPublic(e,t=!1){this.applySelection(e,t)}replaceSelection(e,t,r){!t&&!e.some(o=>o.clearOthers)||(this.selectedIds=t?new Set:new Set(e.filter(o=>o.selected).flatMap(o=>r?this.subtreeIds(o.node):[o.node.id])))}applySelectionChanges(e,t){for(let r of e){if(!this.isSelectable(r.node))continue;let o=t?this.subtreeIds(r.node):[r.node.id];for(let i of o)r.selected?this.selectedIds.add(i):this.selectedIds.delete(i)}}changedSelectionIds(e){let t=new Set;for(let r of new Set([...e,...this.selectedIds]))e.has(r)!==this.selectedIds.has(r)&&t.add(r);return t}synchronizeNodeSelection(e,t,r){let o=[],i=new Set([...e,...r,...this.indeterminateIds]);for(let s of this.core.rowModel.getAllNodes()){let a=this.selectedIds.has(s.id);s.selected=a,(i.has(s.id)||t.get(s.id)!==a)&&s.rowIndex>=0&&o.push(s.rowIndex)}return o}applySelection(e,t=!1){let r=new Set(this.selectedIds),o=this.core.rowModel.isTree&&this.core.options.autoCheckedChildren;this.replaceSelection(e,t,o),this.applySelectionChanges(e,o);let i=this.changedSelectionIds(r),s=new Map;for(let d of this.core.rowModel.getAllNodes())s.set(d.id,d.selected);let a=new Set(this.indeterminateIds);this.recomputeTriState();let l=this.synchronizeNodeSelection(i,s,a);i.size>0&&(this.core.bodyRenderer.refreshRows(l),this.core.headerRenderer.refreshSelectAllCheckbox(),this.core.emit("selectionChanged",{selectedNodes:this.getSelectedNodes(),selectedRows:this.getSelectedRows()}))}subtreeIds(e){let t=[e.id],r=o=>{for(let i of this.core.rowModel.getChildrenIds(o))t.push(i),r(i)};return r(e.id),t}recomputeTriState(){if(this.indeterminateIds.clear(),!this.core.rowModel.isTree)return;let e=t=>{let r=this.core.rowModel.getChildrenIds(t);if(r.length===0)return{all:this.selectedIds.has(t),some:this.selectedIds.has(t)};let o=!0,i=!1;for(let s of r){let a=e(s);a.all?i=!0:(a.some&&(i=!0),o=!1)}return i&&!o&&this.indeterminateIds.add(t),o?this.selectedIds.add(t):this.selectedIds.delete(t),{all:o,some:i}};for(let t of this.core.rowModel.getRootNodes())e(t.id);for(let t of this.core.rowModel.getAllNodes())t.selected=this.selectedIds.has(t.id)}};var Be=class{constructor(e){this.core=e;this.active=null;this.rafId=0;this.pendingWidth=0;this.onMove=e=>{let t=this.matchActivePointer(e);t&&(this.pendingWidth=this.widthFromPointer(t,e.clientX),t.didResize||(t.didResize=Math.abs(this.pendingWidth-t.startWidth)>=.5),!this.rafId&&(this.rafId=requestAnimationFrame(()=>{this.rafId=0,this.applyPendingWidth()})))};this.onUp=e=>{let t=this.matchActivePointer(e);t&&(this.pendingWidth=this.widthFromPointer(t,e.clientX),t.didResize||(t.didResize=Math.abs(this.pendingWidth-t.startWidth)>=.5),this.finishResize(t))};this.onCancel=e=>{this.matchActivePointer(e)&&this.cancelResize()};this.onLostPointerCapture=()=>{this.cancelResize()}}startResize(e,t){if(!this.core.options.enableColumnResize||!t.resizable||e.isPrimary===!1)return;this.cancelResize();let r=e.currentTarget,o=t.currentWidth;this.pendingWidth=o,this.active={column:t,didResize:!1,handle:r,pointerId:e.pointerId,startFlex:t.flex,startManualWidth:t.manualWidth,startWidth:o,startX:e.clientX},window.addEventListener("pointermove",this.onMove),window.addEventListener("pointerup",this.onUp,!0),window.addEventListener("pointercancel",this.onCancel,!0),r.addEventListener("lostpointercapture",this.onLostPointerCapture);try{r.setPointerCapture?.(e.pointerId)}catch{}this.core.skeleton.root.classList.add("mach-root--resizing")}cancelResize(e=!0){let t=this.active;t&&(this.active=null,this.clearFrame(),this.removeListeners(t),e&&(t.column.manualWidth=t.startManualWidth,t.column.flex=t.startFlex,this.core.relayoutColumns()),this.core.skeleton.root.classList.remove("mach-root--resizing"))}finishResize(e){this.active=null,this.clearFrame(),e.didResize&&(Math.abs(this.pendingWidth-e.startWidth)<.5?(e.column.manualWidth=e.startManualWidth,e.column.flex=e.startFlex):this.core.columnModel.setColumnWidth(e.column,this.pendingWidth),this.core.relayoutColumns()),this.removeListeners(e);try{e.handle.releasePointerCapture?.(e.pointerId)}catch{}this.core.skeleton.root.classList.remove("mach-root--resizing"),e.didResize&&this.core.commitColumnWidths([e.column])}applyPendingWidth(){let e=this.active;!e||!this.core.columnModel.setColumnWidth(e.column,this.pendingWidth)||(this.core.relayoutColumns(),this.core.emitColumnResize(e.column,!1))}widthFromPointer(e,t){let r=Number.isFinite(t)?t:e.startX;return e.startWidth+r-e.startX}matchActivePointer(e){let t=this.active;return t&&e.pointerId===t.pointerId?t:null}clearFrame(){this.rafId&&cancelAnimationFrame(this.rafId),this.rafId=0}removeListeners(e){window.removeEventListener("pointermove",this.onMove),window.removeEventListener("pointerup",this.onUp,!0),window.removeEventListener("pointercancel",this.onCancel,!0),e.handle.removeEventListener("lostpointercapture",this.onLostPointerCapture)}destroy(){this.cancelResize(!1),this.clearFrame(),this.core.skeleton.root?.classList.remove("mach-root--resizing")}};function f(n,e,t){let r=document.createElement(n);if(e&&(r.className=e),t)for(let o of Object.keys(t))r.setAttribute(o,t[o]);return r}var di=["--mach-font-family","--mach-font-size","--mach-font-size-sm","--mach-header-font-weight","--mach-cell-padding","--mach-header-h","--mach-primary","--mach-primary-weak","--mach-success","--mach-warning","--mach-danger","--mach-info","--mach-border-color","--mach-border-width","--mach-header-bg","--mach-header-fg","--mach-body-bg","--mach-body-fg","--mach-row-hover-bg","--mach-radius-sm","--mach-radius","--mach-radius-lg","--mach-shadow-sm","--mach-shadow","--mach-transition","--mach-z-popup","--mach-z-menu"];function A(n,e){if(n.classList.add("mach-portal"),!e)return;let t=window.getComputedStyle(e);for(let r of di){let o=t.getPropertyValue(r).trim();o&&n.style.setProperty(r,o)}n.style.colorScheme=t.colorScheme}function x(n,e,t){return n<e?e:n>t?t:n}var Br=0;function Vr(n="rg"){return Br++,`${n}-${Br}`}var zr='<svg viewBox="0 0 16 16" width="12" height="12" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M2 3.5h12L9.5 8v4.5L6.5 14V8L2 3.5z"/></svg>',Wr='<svg viewBox="0 0 16 16" width="10" height="10" fill="currentColor"><path d="M8 3l4 5H4l4-5z"/></svg>',_r='<svg viewBox="0 0 16 16" width="10" height="10" fill="currentColor"><path d="M8 13l4-5H4l4 5z"/></svg>',Kr='<svg viewBox="0 0 16 16" width="12" height="12" fill="none" stroke="currentColor" stroke-width="1.35" stroke-linecap="round"><path d="M2 4h3m3 0h6M2 8h7m3 0h2M2 12h1m3 0h8"/><circle cx="6.5" cy="4" r="1.35"/><circle cx="10.5" cy="8" r="1.35"/><circle cx="4.5" cy="12" r="1.35"/></svg>';var $r=6,Ve=class{constructor(e){this.core=e;this.pending=null;this.dragging=null;this.suppressClick=!1;this.moveRaf=0;this.pendingPoint=null;this.onMove=e=>{if(this.dragging){this.scheduleIndicator(e);return}let t=this.pending;t&&(Math.abs(e.clientX-t.startX)<$r&&Math.abs(e.clientY-t.startY)<$r||this.startDrag(e))};this.onUp=e=>{this.pending=null,e.type!=="pointercancel"&&this.dragging&&this.applyIndicator(e.clientX,e.clientY),this.cleanup();let t=this.clearDrag();t&&e.type!=="pointercancel"&&t.targetIndex>=0&&this.core.moveColumn(t.column.id,t.targetIndex)}}onPointerDown(e,t){e.button===0&&t.movable&&(this.pending={column:t,startX:e.clientX,startY:e.clientY},window.addEventListener("pointermove",this.onMove),window.addEventListener("pointerup",this.onUp),window.addEventListener("pointercancel",this.onUp))}didDrag(){let e=this.suppressClick;return this.suppressClick=!1,e}startDrag(e){let t=this.pending;if(!t)return;let r=this.findHeaderCell(t.column);if(!r||!r.parentElement){this.cleanup();return}this.suppressClick=!0;let o=f("div","mach-drop-indicator"),i=f("div","mach-column-drag-ghost");i.textContent=t.column.colDef.headerName??t.column.colDef.field??t.column.id,i.ariaHidden="true",A(i,this.core.skeleton.root),document.body.appendChild(i),r.parentElement.appendChild(o),r.classList.add("mach-header-cell--dragging"),this.core.skeleton.root.classList.add("mach-root--dragging");let s=this.core.bodyRenderer.paneForColumn(t.column),a=this.core.skeleton.headerRowContainers[s],l=this.core.columnModel.getPaneColumns(s),d=new Float64Array(l.length+1),c=new Float64Array(l.length);for(let h=0;h<l.length;h++){let p=l[h].currentWidth;c[h]=d[h]+p/2,d[h+1]=d[h]+p}let u=i.getBoundingClientRect();this.dragging={column:t.column,cellEl:r,ghost:i,indicator:o,targetIndex:-1,pane:s,containerLeft:a.getBoundingClientRect().left,startScrollLeft:this.core.skeleton.bodyViewports.center.scrollLeft,fromIndex:l.indexOf(t.column),midpoints:c,offsets:d,ghostWidth:u.width,ghostHeight:u.height},this.applyIndicator(e.clientX,e.clientY)}findHeaderCell(e){let t=this.core.bodyRenderer.paneForColumn(e);return this.core.skeleton.headerRowContainers[t].querySelector(`.mach-header-cell[data-col-id="${ci(e.id)}"]`)}scheduleIndicator(e){this.pendingPoint={clientX:e.clientX,clientY:e.clientY},!this.moveRaf&&(this.moveRaf=requestAnimationFrame(()=>{this.moveRaf=0;let t=this.pendingPoint;this.pendingPoint=null,t&&this.applyIndicator(t.clientX,t.clientY)}))}applyIndicator(e,t){let r=this.dragging;if(!r)return;let o=x(e+12,8,window.innerWidth-r.ghostWidth-8),i=x(t+12,8,window.innerHeight-r.ghostHeight-8);r.ghost.style.transform=`translate3d(${o}px, ${i}px, 0)`;let s=r.pane==="center"?this.core.skeleton.bodyViewports.center.scrollLeft-r.startScrollLeft:0,a=e-(r.containerLeft-s),l=r.midpoints.length;for(let d=0;d<r.midpoints.length;d++)if(a<r.midpoints[d]){l=d;break}r.targetIndex=l>r.fromIndex?l-1:l,r.indicator.style.transform=`translate3d(${r.offsets[l]}px, 0, 0)`}clearDrag(){let e=this.dragging;return e?(this.dragging=null,e.cellEl.classList.remove("mach-header-cell--dragging"),e.ghost.remove(),e.indicator.remove(),this.core.skeleton.root.classList.remove("mach-root--dragging"),e):null}cleanup(){window.removeEventListener("pointermove",this.onMove),window.removeEventListener("pointerup",this.onUp),window.removeEventListener("pointercancel",this.onUp),this.moveRaf&&cancelAnimationFrame(this.moveRaf),this.moveRaf=0,this.pendingPoint=null}destroy(){this.cleanup(),this.clearDrag(),this.pending=null}};function ci(n){return typeof CSS<"u"&&typeof CSS.escape=="function"?CSS.escape(n):n.replace(/[^a-zA-Z0-9_-]/g,"\\$&")}function Ur(n,e){let t=n==null?"":String(n);return t.includes(e)||t.includes('"')||t.includes(`
2
- `)||t.includes("\r")?'"'+t.replace(/"/g,'""')+'"':t}function ge(n){return typeof n!="string"||n===""||/^[+-]?(?:\d+(?:\.\d+)?|\.\d+)(?:[eE][+-]?\d+)?$/.test(n)?n:/^[\s\u0000-\u001f]*[=+\-@]/.test(n)?"'"+n:n}function Ut(n,e={}){let t=e.columnSeparator??",",r=e.includeHeader??!0,o=e.protectFormulas??!0,i=[];r&&i.push(n.getHeaderLabels().map(a=>Ur(a,t)).join(t));for(let a of n.getRowValues())i.push(a.map(l=>Ur(o?ge(l):l,t)).join(t));let s=i.join(`\r
3
- `);return e.prependBOM?"\uFEFF"+s:s}function ui(n,e){let t=e?ge(n):n,r=t==null?"":String(t);return/["\t\n\r]/.test(r)?'"'+r.replace(/"/g,'""')+'"':r}function le(n,e=!0){return n.map(t=>t.map(r=>ui(r,e)).join(" ")).join(`
4
- `)}function ze(n){return _e(n," ")}function We(n,e=","){return _e(n,e)}function _e(n,e){let t=[],r=[],o="",i=!1,s=0;for(;s<n.length;){let a=n[s];if(i){if(a==='"'){if(n[s+1]==='"'){o+='"',s+=2;continue}i=!1,s++;continue}o+=a,s++;continue}if(a==='"'&&o===""){i=!0,s++;continue}if(a===e){r.push(o),o="",s++;continue}if(a===`
1
+ "use strict";var Bt=Object.defineProperty;var gn=Object.getOwnPropertyDescriptor;var yn=Object.getOwnPropertyNames;var vn=Object.prototype.hasOwnProperty;var wn=(n,e)=>{for(var t in e)Bt(n,t,{get:e[t],enumerable:!0})},bn=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of yn(e))!vn.call(n,o)&&o!==t&&Bt(n,o,{get:()=>e[o],enumerable:!(r=gn(e,o))||r.enumerable});return n};var Cn=n=>bn(Bt({},"__esModule",{value:!0}),n);var Us={};wn(Us,{BUILTIN_AGG_FUNCS:()=>$t,DEFAULT_LOCALE:()=>D,EVENT_TYPES:()=>j,LOCALE_EN:()=>to,actionsColumn:()=>Jo,advancedFilterCondition:()=>Mr,advancedFilterGroup:()=>kr,applyGridViewState:()=>Sr,buildColDefsFromSchema:()=>Uo,captureGridViewState:()=>Tr,clearGridState:()=>Ao,createActionButtonsRenderer:()=>pe,createAggResolver:()=>Fe,createBusinessColumnTypes:()=>ln,createCachedDictionary:()=>dn,createColumnHelper:()=>en,createDictionaryRenderer:()=>cn,createEnterprisePreset:()=>rn,createGrid:()=>Ko,createGridViewManager:()=>fn,createLocalGridStateStore:()=>dr,createLocalGridViewStore:()=>Dr,createMachTableCommands:()=>jo,createMachTablePreset:()=>Rr,createProgressBarRenderer:()=>fr,createRemoteExportRequest:()=>qo,createRowActionsRenderer:()=>Lt,createStatusTagRenderer:()=>pr,defineColumns:()=>tn,defineGridOptions:()=>nn,defineMachTableConfig:()=>sn,defineMachTablePreset:()=>on,describeFilter:()=>yt,downloadFile:()=>ft,dragColumn:()=>Qo,escapeHtml:()=>re,formatText:()=>B,formatTwo:()=>rt,getByPath:()=>q,indexColumn:()=>Xo,isColDefGroup:()=>se,isSafePath:()=>ne,linkRenderer:()=>mr,loadGridState:()=>Mt,matchLocaleKey:()=>tt,normalizeAdvancedFilterModel:()=>O,normalizeColumnFilter:()=>Me,normalizeFilterModel:()=>$,normalizeGridState:()=>z,normalizeGridViewState:()=>Ht,normalizeSavedGridView:()=>fe,parseCsv:()=>_e,parseDelimited:()=>Ke,parseTsv:()=>We,resolveGridFeatures:()=>Gt,resolveSaveConflict:()=>ho,resolveTagVariant:()=>hr,rowActionsColumn:()=>Zo,sanitizeFormulaCell:()=>ye,saveGridState:()=>xt,selectionColumn:()=>Yo,setByPath:()=>Z,toTsv:()=>de,validateGridOptions:()=>At,version:()=>$s});module.exports=Cn(Us);var Ee="0.30.1";var xe=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 ne(n){return typeof n!="string"||n.length===0?!1:n.split(".").every(t=>t.length>0&&!Tn.has(t))}function q(n,e){if(n==null||!ne(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 Z(n,e,t){if(n==null||!ne(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 Sn=new Set(["contains","notContains","equals","notEquals","startsWith","endsWith","blank","notBlank"]),Dn=new Set(["equals","notEquals","lessThan","lessThanOrEqual","greaterThan","greaterThanOrEqual","inRange","blank","notBlank"]),En=new Set(["equals","notEquals","lessThan","greaterThan","inRange","blank","notBlank"]);function xn(n){return n==null||typeof n=="string"||typeof n=="number"&&Number.isFinite(n)}function Mn(n){return n==="text"?Sn:n==="number"?Dn:En}function kn(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,...In(r,e)}}function In(n,e){let t=e==="number"?Er(n.value):typeof n.value=="string"?n.value:void 0,r=e==="number"?Er(n.value2):typeof n.value2=="string"?n.value2:void 0;return{...t!==void 0?{value:t}:{},...r!==void 0?{value2:r}:{}}}function Er(n){return typeof n=="number"&&Number.isFinite(n)?n:void 0}function Ln(n,e){let t=[],r=Mn(e);for(let o of n.slice(0,20)){let i=kn(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(xn).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:Ln(e.conditions,e.type)}}function An(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 Pn(n,e,t){if(!Array.isArray(n.children))return null;let r=[];for(let o of n.children){let i=xr(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 Gn(n,e,t){return e<=16&&t.nodes<512&&n!=null&&typeof n=="object"}function xr(n,e,t){if(!Gn(n,e,t)||t.ancestors.has(n))return null;t.ancestors.add(n),t.nodes++;let r=n,o=r.kind==="condition"?An(r,t):r.kind==="group"?Pn(r,e,t):null;return t.ancestors.delete(n),o}function O(n,e){if(n==null||typeof n!="object")return null;let t=n;if(t.version!==1||t.root==null)return null;let r=xr(t.root,0,{ancestors:new WeakSet,nodes:0,validColumnIds:e});return r?{version:1,root:r}:null}function Mr(n,e){return{kind:"condition",colId:n,filter:e}}function $(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 kr(n,e,t={}){return{kind:"group",operator:n,children:e,...t.not?{not:!0}:{}}}var Vt={align:"center",sortable:!0,resizable:!0,movable:!0,filter:!1,minWidth:80},me={compact:{rowHeight:30,headerHeight:34,fontSize:12,cellPadding:6},normal:{rowHeight:36,headerHeight:40,fontSize:13,cellPadding:9},large:{rowHeight:44,headerHeight:48,fontSize:14,cellPadding:12}};function S(n,e,t,r=!1){return typeof n!="number"||!Number.isFinite(n)||n<t?e:r?Math.floor(n):n}function Fn(n){return n&&Object.prototype.hasOwnProperty.call(me,n)?n:"normal"}function Nn(n){return n.theme==="light"||n.theme==="dark"||n.theme==="auto"?n.theme:"light"}function On(n,e){let t=typeof n.pagination=="object"&&Array.isArray(n.pagination.pageSizeOptions)?n.pagination.pageSizeOptions:void 0,r=t?[...new Set(t.map(o=>S(o,0,1,!0)).filter(Boolean))]:[10,20,50,100];return r.includes(e)||r.push(e),r.sort((o,i)=>o-i)}function zt(n,e){let t=typeof n=="function"?n(e):q(e,n);return t==null?"":String(t)}function Hn(n){let e=n.rowKey,t=e?({data:r})=>zt(e,r):void 0;return{...t?{resolveRowId:t}:{},...e?{rowKey:e}:{}}}function Bn(n,e){let t=me[e];return{columnDefs:Array.isArray(n.columnDefs)?n.columnDefs:[],rowData:Array.isArray(n.rowData)?n.rowData:[],defaultColDef:{...Vt,...n.defaultColDef??{}},columnTypes:n.columnTypes??{},...Hn(n),rowHeight:S(n.rowHeight,t.rowHeight,1),headerHeight:S(n.headerHeight,t.headerHeight,1),rowBuffer:S(n.rowBuffer,8,0,!0),columnLayout:n.columnLayout==="fit"?"fit":"normal",enableColumnResize:n.enableColumnResize===!0,domLayout:n.domLayout==="autoHeight"?"autoHeight":"normal",rowSelection:n.rowSelection==="single"||n.rowSelection==="multiple"?n.rowSelection:"none",multiSort:n.multiSort??!0,size:e,pinnedTopRowData:Array.isArray(n.pinnedTopRowData)?n.pinnedTopRowData:[],pinnedBottomRowData:Array.isArray(n.pinnedBottomRowData)?n.pinnedBottomRowData:[]}}function Vn(n){return{stripedRows:n.stripedRows??!1,showCellBorders:n.showCellBorders??!1,theme:Nn(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 zn(n){return{editType:n.editType==="fullRow"?"fullRow":"cell",editableIndicator:n.editableIndicator==="always"||n.editableIndicator==="none"?n.editableIndicator:"hover",singleClickEdit:n.singleClickEdit??!1,manualSorting:n.manualSorting??!1,manualFiltering:n.manualFiltering??!1,showSummary:n.showSummary??!1,indexOffset:n.indexOffset??0,applyRowDrag:n.applyRowDrag??!0,undoStackSize:S(n.undoStackSize,100,0,!0),asyncTransactionWaitMillis:S(n.asyncTransactionWaitMillis,16,0,!0)}}function Wn(n){return{masterDetail:n.masterDetail??!1,detailRowHeight:S(n.detailRowHeight,240,1),detailToggleColumn:n.detailToggleColumn??!0,treeData:n.treeData??!1,childrenKey:n.childrenKey??"children",autoCheckedChildren:n.autoCheckedChildren??!0,defaultExpandAll:n.defaultExpandAll??!1}}function _n(n){let e=typeof n.pagination=="object"?n.pagination:void 0,t=S(e?.pageSize,20,1,!0);return{paginationEnabled:n.pagination!==!1&&n.datasource==null,paginationMode:e?.mode==="server"?"server":"client",paginationPage:S(e?.page,1,1,!0),paginationTotal:S(e?.total,0,0,!0),paginationPageSize:t,paginationPageSizeOptions:On(n,t),paginationShowTotal:e?e.showTotal!==!1:!0,paginationShowSizeSelector:e?e.showPageSizeSelector!==!1:!0}}function Kn(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 qn(n){return{columnMenu:n.columnMenu??!1,advancedFilterModel:O(n.advancedFilterModel),...$n(n),locale:n.locale??{},suppressWarnings:n.suppressWarnings??!1,enableRangeSelection:n.enableRangeSelection??!1,suppressClipboard:n.suppressClipboard??!1,contextMenu:n.contextMenu??!1,tooltipShowDelay:S(n.tooltipShowDelay,600,0),flashCells:n.flashCells??!0,fillHandle:n.fillHandle??!0,statusBarEnabled:n.statusBar===!0||typeof n.statusBar=="object"&&n.statusBar!=null,statusBarPanels:typeof n.statusBar=="object"&&n.statusBar?.panels?n.statusBar.panels:["rowCount","selectedRowCount","rangeAggregate"]}}function $n(n){let e=n.persistence;return!e||typeof e.key!="string"||!e.key.trim()?{persistence:null}:{persistence:{key:e.key.trim(),debounceMs:S(e.debounceMs,160,0,!0),...e.sections?{sections:[...new Set(e.sections)]}:{},...e.store?{store:e.store}:{}}}}function Un(n){return{datasourceMode:n.datasourceMode==="block"?"block":"sequential",blockSize:S(n.blockSize,100,1,!0),infiniteBufferRows:S(n.infiniteBufferRows,40,0,!0),maxBlocksInCache:S(n.maxBlocksInCache,12,1,!0),datasourceMaxConcurrentRequests:S(n.datasourceMaxConcurrentRequests,4,1,!0),blockPrefetch:S(n.blockPrefetch,1,0,!0),datasourceRowCount:n.datasourceRowCount==null?null:S(n.datasourceRowCount,0,0,!0),dataProcessorMinRows:S(n.dataProcessorMinRows,5e3,1,!0),datasourceRetryCount:S(n.datasourceRetryCount,2,0,!0),datasourceRetryDelay:S(n.datasourceRetryDelay,300,0,!0),datasourceRetryJitter:Math.min(1,S(n.datasourceRetryJitter,.15,0))}}function jn(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 Yn=["detailRowRenderer","isRowExpandable","aggFuncs","components","actionPolicy","summaryMethod","datasource","getRowHeight","tooltipComponent","getContextMenuItems","initialState","rowEditValidator","isTreeRowExpandable","loadTreeChildren","dataProcessor"];function Xn(n,e){for(let t of Yn)n[t]&&Object.assign(e,{[t]:n[t]})}function Qn(n,e){for(let t of Object.keys(n))t.startsWith("on")&&typeof n[t]=="function"&&Object.assign(e,{[t]:n[t]})}function Ir(n){let e=Fn(n.size),t={...Bn(n,e),...Vn(n),...zn(n),...Wn(n),..._n(n),...Kn(n),...qn(n),...Un(n),...jn(n),features:Array.isArray(n.features)?n.features:[]};return Xn(n,t),Qn(n,t),t}function Lr(n){return Array.isArray(n)?n.filter(e=>typeof e=="string"&&e.length>0):typeof n=="string"&&n.length>0?[n]:[]}function ie(n,e){return Lr(n.type).includes(e)}function Ar(n,e,t={}){let r={};for(let o of Lr(n.type)){let i=t[o];i&&Object.assign(r,i)}return{...e,...r,...n}}var _=class{constructor(e,t){this.manualWidth=null;this.contentWidth=null;this.flex=null;this.currentWidth=0;this.parentGroup=null;this.level=0;this.isDetailToggle=!1;this.id=e,this.colDef=t,this.hide=t.hide??!1;let r=t.pinned;this.pinned=r===!0?"left":r===!1||r==null?null:r,this.resetWidth()}get sortable(){return this.colDef.sortable!==!1}get resizable(){return this.colDef.resizable!==!1}get movable(){return this.colDef.movable!==!1}get filterable(){return this.colDef.filter!=null&&this.colDef.filter!==!1}get filterType(){let e=this.colDef.filter;return e===!0?"text":e??"text"}get hasCheckbox(){return this.colDef.checkboxSelection===!0}resetWidth(){this.manualWidth=null,this.contentWidth=null,this.flex=typeof this.colDef.flex=="number"&&Number.isFinite(this.colDef.flex)&&this.colDef.flex>0?this.colDef.flex:null}};var ee=class n{constructor(e,t){this.parent=null;this.children=[];this.groupId=e,this.def=t}get headerName(){return this.def.headerName??this.def.groupId??""}getLeafColumns(e=[]){for(let t of this.children)t instanceof n?t.getLeafColumns(e):e.push(t);return e}};function se(n){return Array.isArray(n.children)}function ke(n,e){return typeof n=="number"&&Number.isFinite(n)&&n>0?n:e}function Pr(n){let e=ke(n.minWidth,80);return{min:e,max:Math.max(e,ke(n.maxWidth,Number.MAX_SAFE_INTEGER))}}function F(n,e){let{min:t,max:r}=Pr(e),o=ke(n,ke(e.width,150));return Math.max(t,Math.min(r,o))}function Gr(n,e){let t=n.map(s=>F(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],g=n[m].flex??0,v=s*g/d,y=t[m];t[m]=F(y+v,n[m]),c.push(t[m]-y)}let u=0;for(let p of c)u+=p;s-=u;let h=l.filter((p,m)=>c[m]>.001);if(h.length===l.length)break;r.length=0;for(let p of h)r.push(p)}}return t}function Jn(n,e,t){let r=new Set(n.map((i,s)=>s)),o=t;for(let i=0;i<n.length+1&&r.size>0;i++){let s=0;for(let l of r)s+=Math.max(1,e[l]);if(s<=0)break;let a=!1;for(let l of[...r]){let d=o*(Math.max(1,e[l])/s),c=F(d,n[l]),{min:u,max:h}=Pr(n[l]);(d<u||d>h)&&(e[l]=c,o-=c,r.delete(l),a=!0)}if(!a){for(let l of r)e[l]=F(o*(Math.max(1,e[l])/s),n[l]);break}o=Math.max(0,o)}}function Zn(n,e,t){let r=t-e.reduce((o,i)=>o+i,0);if(!(Math.abs(r)<=.01))for(let o=e.length-1;o>=0;o--){let i=F(e[o]+r,n[o]);if(Math.abs(i-e[o])>.01){e[o]=i;return}}}function Ie(n,e){let t=n.map(r=>F(r.width??150,r));return!Number.isFinite(e)||e<=0||n.length===0||(Jn(n,t,e),Zn(n,t,e)),t}var Wt="__rg_detail_toggle__";function ae(n){return typeof n=="number"&&Number.isFinite(n)&&n>0}var Le=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?[Wt]:[]),i=(s,a,l)=>s.map((d,c)=>{if(se(d)){let y=d.groupId??d.headerName??`group_${c}_${l}`,b=new ee(y,d);return b.parent=a,b.children=i(d.children,b,l+1),b}let u=d,h=u.colId??u.field??`col_${c}`,p=h,m=2;for(;o.has(p);)p=`${h}_${m++}`;o.add(p);let g=new _(p,Ar(u,r,this.core.options.columnTypes));g.parentGroup=a,g.level=l;let v=t.get(p);return v&&(g.manualWidth=v.manualWidth,g.contentWidth=v.contentWidth,g.flex=v.flex,g.hide=v.hide,g.pinned=v.pinned),g});if(this.rootChildren=i(this.defs,null,0),this.core.options.masterDetail&&this.core.options.detailToggleColumn){let s=new _(Wt,{colId:Wt,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 ee?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=F(c.manualWidth??c.contentWidth??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=F(c.manualWidth??c.contentWidth??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"?Ie(a,l):Gr(a,l);o.forEach((c,u)=>{c.currentWidth=d[u]})}widthInputOf(e){let t=e.colDef;return{width:e.manualWidth??e.contentWidth??t.width,minWidth:t.minWidth,maxWidth:t.maxWidth,flex:e.manualWidth==null?e.flex??void 0:void 0}}setColumnWidth(e,t){return ae(t)?(e.manualWidth=F(t,this.widthInputOf(e)),e.flex=null,!0):!1}setContentWidth(e,t){return ae(t)?(e.resetWidth(),e.contentWidth=F(t,this.widthInputOf(e)),!0):!1}setColumnVisibility(e,t){let r=this.getColumn(e);!r||r.hide===!t||(r.hide=!t,this.regroup())}moveColumn(e,t){let r=this.getColumn(e);if(!r)return!1;let o=this.paneOf(r),i=u=>r.parentGroup?!0:this.paneOf(u)===o,s=r.parentGroup?r.parentGroup.children:this.rootChildren,a=s.filter(u=>u instanceof _&&!u.hide&&i(u)),l=a.indexOf(r);if(l<0)return!1;a.splice(l,1);let d=Math.max(0,Math.min(t,a.length));a.splice(d,0,r);let c=[];return s.forEach((u,h)=>{u instanceof _&&!u.hide&&i(u)&&c.push(h)}),c.length!==a.length?!1:(c.forEach((u,h)=>{s[u]=a[h]}),this.columns=this.collectLeaves(this.rootChildren),this.regroup(),!0)}setColumnPinned(e,t){let r=this.getColumn(e);!r||!r.movable||(r.pinned=t,this.regroup())}getColumnState(){return this.columns.map(e=>({colId:e.id,hide:e.hide,width:e.manualWidth??e.currentWidth,flex:e.flex,widthMode:e.manualWidth==null?"auto":"manual",contentWidth:e.contentWidth??void 0,pinned:e.pinned}))}applyColumnState(e){let t=new Map(e.map(r=>[r.colId,r]));for(let r of this.columns){let o=t.get(r.id);o&&this.applyColumnViewState(r,o)}this.applyStateOrder(e),this.regroup()}applyColumnViewState(e,t){typeof t.hide=="boolean"&&(e.hide=t.hide),t.widthMode==="auto"?(e.resetWidth(),ae(t.flex)&&(e.flex=t.flex)):ae(t.flex)?(e.flex=t.flex,e.manualWidth=null):ae(t.width)&&(e.manualWidth=F(t.width,this.widthInputOf(e)),e.flex=null),ae(t.contentWidth)&&(e.contentWidth=F(t.contentWidth,this.widthInputOf(e))),e.movable&&(t.pinned==="left"||t.pinned==="right"||t.pinned===null)&&(e.pinned=t.pinned)}applyStateOrder(e){let t=new Map;e.forEach((o,i)=>t.set(o.colId,i));let r=o=>o.pinned==="left"?"left":o.pinned==="right"?"right":"center";for(let o of["left","center","right"]){let i=this.rootChildren.filter(d=>d instanceof _&&!d.hide&&d.parentGroup===null&&r(d)===o);if(i.length<2)continue;let s=i.filter(d=>d.movable),a=s.slice().sort((d,c)=>(t.get(d.id)??Number.MAX_SAFE_INTEGER)-(t.get(c.id)??Number.MAX_SAFE_INTEGER));if(a.every((d,c)=>d===s[c]))continue;let l=[];this.rootChildren.forEach((d,c)=>{d instanceof _&&!d.hide&&d.parentGroup===null&&r(d)===o&&d.movable&&l.push(c)}),l.forEach((d,c)=>{this.rootChildren[d]=a[c]})}this.columns=this.collectLeaves(this.rootChildren)}resetColumnState(){for(let e of this.columns){e.resetWidth(),e.hide=e.colDef.hide??!1;let t=e.colDef.pinned;e.pinned=t===!0?"left":t===!1||t==null?null:t}this.regroup()}getSortModel(){return this.sortModel.map(e=>({...e}))}applySortModel(e){if(!e||e.length===0){this.sortModel=[];return}this.sortModel=e.filter(t=>this.columns.some(r=>r.id===t.colId)&&(t.direction==="asc"||t.direction==="desc")).map(t=>({colId:t.colId,direction:t.direction}))}cycleSort(e,t){let r=[...this.sortModel],o=r.findIndex(l=>l.colId===e.id),i=o>=0?r[o].direction:null,s=i===null?"asc":i==="asc"?"desc":null;t&&this.core.options.multiSort?s===null?o>=0&&r.splice(o,1):o>=0?r[o]={colId:e.id,direction:s}:r.push({colId:e.id,direction:s}):(r.length=0,s&&r.push({colId:e.id,direction:s})),this.sortModel=r}};function Nr(n){return n==null?"":String(n).toLowerCase()}function ei(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 ti(n,e,t){switch(t.match){case"equals":return n===e;case"notEquals":return n!==e;case"lessThan":return n<e;case"lessThanOrEqual":return n<=e;case"greaterThan":return n>e;case"greaterThanOrEqual":return n>=e;case"inRange":return n>=e&&n<=(t.value2??e);default:return!0}}function ri(n,e){let t=n==null||n==="";if(e.match==="blank")return t;if(e.match==="notBlank")return!t;if(t)return!1;let r=typeof n=="number"?n:Number(n);if(Number.isNaN(r))return!1;let o=e.value;return o==null||Number.isNaN(o)?!1:ti(r,o,e)}function oi(n,e,t){let r=e.map(o=>ri(n,o));return r.length===0?!0:t==="or"?r.some(Boolean):r.every(Boolean)}function Ae(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 ni(n,e,t){let r=e.map(o=>{let i=Ae(n)==null;if(o.match==="blank")return i;if(o.match==="notBlank")return!i;if(i)return!1;let s=Ae(n),a=o.value!=null?Ae(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?Ae(o.value2):null;return l!=null?s>=a&&s<=l:s>=a}default:return!0}});return r.length===0?!0:t==="or"?r.some(Boolean):r.every(Boolean)}function ii(n,e){return e.length===0?!0:e.some(t=>t==null&&n==null||t===n)}function Or(n,e){let t=e.type!=="set"&&e.operator==="or"?"or":"and";switch(e.type){case"text":return ei(n,e.conditions,t);case"number":return oi(n,e.conditions,t);case"date":return ni(n,e.conditions,t);case"set":return ii(n,e.values);default:return!0}}function _t(n,e,t,r){if(n.kind==="condition"){let i=e.get(n.colId);return!i||Or(r(t,i),n.filter)}let o=n.operator==="or"?n.children.some(i=>_t(i,e,t,r)):n.children.every(i=>_t(i,e,t,r));return n.not?!o:o}function si(n,e,t,r){return t?_t(t.root,new Map(e.map(o=>[o.id,o])),n,r):!0}function Kt(n,e,t,r,o,i){for(let s of Object.keys(t)){let a=t[s],l=e.find(c=>c.id===s);if(!l)continue;let d=i(n,l);if(!Or(d,a))return!1}if(!si(n,e,r,i))return!1;if(o&&o.trim()!==""){let s=o.trim().toLowerCase().split(/\s+/);for(let a of s)if(!e.some(d=>Nr(i(n,d)).includes(a)))return!1}return!0}var Hr=typeof Intl<"u"?new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"}):null;function ai(n,e){let t=n==null||n==="",r=e==null||e==="";return!t&&!r?null:t&&r?0:t?1:-1}function li(n,e){let t=Number.isNaN(n),r=Number.isNaN(e);return t||r?t===r?0:t?1:-1:n-e}function di(n,e){return n===e?0:n?1:-1}function Pe(n,e){let t=ai(n,e);if(t!==null)return t;if(typeof n=="number"&&typeof e=="number")return li(n,e);if(n instanceof Date&&e instanceof Date)return n.getTime()-e.getTime();if(typeof n=="boolean"&&typeof e=="boolean")return di(n,e);let r=String(n),o=String(e);return Hr?Hr.compare(r,o):r.localeCompare(o)}function qt(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??Pe),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 Ge(n){return n.filter(e=>typeof e=="number"&&!isNaN(e))}var $t={sum:n=>Ge(n).reduce((e,t)=>e+t,0),avg:n=>{let e=Ge(n);return e.length===0?null:e.reduce((t,r)=>t+r,0)/e.length},count:n=>n.length,min:n=>{let e=Ge(n);return e.length===0?null:Math.min(...e)},max:n=>{let e=Ge(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 Fe(n){let e={...$t,...n??{}};return t=>e[t]}function le(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 Ne(n){return Number.isFinite(n)?Math.max(1,Math.trunc(n)):1}var Oe=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=Ne(e),this.maxConcurrentRequests=Ne(r)}configure(e,t=this.maxConcurrentRequests){this.maxBlocks=Ne(e),this.maxConcurrentRequests=Ne(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(le(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(le(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(le(t)):new Promise((r,o)=>{let i=()=>o(le(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(le(t.controller.signal))),i(le(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 ge(n,e){if(n==null||typeof n!="object")return;let t=n[e];return Array.isArray(t)?t:void 0}var He=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 Oe(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=O(e.options.advancedFilterModel)}resolveRowId(e,t,r){let o=this.core.options.resolveRowId;if(!o)return r;try{let i=o({data:e,index:t,api:this.core.getApi()});if(typeof i=="string"&&i.length>0)return i;this.core.reportError(new Error("rowKey must resolve to a non-empty identifier"),"rowKey",{index:t})}catch(i){this.core.reportError(i,"rowKey",{index:t})}return r}get isTree(){return this.core.options.treeData}get isInfinite(){return this.core.options.datasource!=null}get isBlockDatasource(){return this.isInfinite&&this.core.options.datasourceMode==="block"}getDisplayTotalCount(){if(this.isInfinite){if(this.isBlockDatasource)return this.resolveBlockRowCount();let e=Math.max(0,this.displayed.length-this.all.length);return(this.infiniteLastRow??this.all.length)+e}return this.displayed.length}getDisplayRevision(){return this.displayRevision}isLoadingInfinite(){return this.infiniteLoading}startInfinite(e){return!this.isInfinite||e?.aborted?Promise.resolve():(this.cancelInfiniteRequest(),this.infiniteLastRow=null,this.infiniteRequested=!1,this.all=[],this.roots=[],this.nodesById.clear(),this.expandedIds.clear(),this.core.undoService.clear(),this.refreshPipeline(),this.core.requestUpdate({data:!0}),this.isBlockDatasource?(this.blockCache.configure(this.core.options.maxBlocksInCache,this.core.options.datasourceMaxConcurrentRequests),this.loadRandomBlock(0,e)):this.loadBlock(0,void 0,e))}reloadInfinite(e){return this.isInfinite?this.startInfinite(e):Promise.resolve()}setInfiniteLoading(e){this.infiniteLoading=e,this.core.skeleton.setInfiniteLoading(e,this.core.getLocaleText("loading"))}loadBlock(e,t,r){if(!this.isInfinite||this.infiniteRequested||this.infiniteLastRow!=null&&e>=this.infiniteLastRow)return Promise.resolve();let o=this.core.options.datasource,i=this.core.options.blockSize,s=t??e+i;if(s<=e)return Promise.resolve();let a=++this.infiniteSeq,l=new AbortController,d=()=>l.abort(r?.reason);return r?.addEventListener("abort",d,{once:!0}),this.infiniteAbort=l,this.infiniteRequested=!0,this.setInfiniteLoading(!0),new Promise(c=>{let u=!1,h=0;this.infinitePendingResolve=c;let p=g=>{u||(u=!0,r?.removeEventListener("abort",d),a===this.infiniteSeq&&(this.infiniteRequested=!1,this.infiniteAbort=null,this.infinitePendingResolve=null,this.setInfiniteLoading(!1),g!=null&&g?.name!=="AbortError"&&this.core.reportError(g,"datasource.getRows",{startRow:e,endRow:s})),c())},m=()=>{if(u||a!==this.infiniteSeq||l.signal.aborted||this.core.isDestroyed()){p();return}h++;let g=!1,v=y=>{if(!(g||u)){if(g=!0,a!==this.infiniteSeq||l.signal.aborted||this.core.isDestroyed()){p();return}if(h<=this.core.options.datasourceRetryCount){let b=this.retryDelay(h);this.infiniteRetryTimer=setTimeout(()=>{this.infiniteRetryTimer=null,m()},b);return}p(y??new Error("Datasource request failed"))}};try{let y=o.getRows({startRow:e,endRow:s,sortModel:this.core.columnModel.getSortModel(),filterModel:this.getFilterModel(),advancedFilterModel:this.getAdvancedFilterModel(),quickFilterText:this.quickFilter,signal:l.signal,onSuccess:(b,R)=>{if(g||u)return;if(g=!0,a!==this.infiniteSeq||this.core.isDestroyed()||l.signal.aborted){p();return}let E=b??[];typeof R=="number"&&R>=0?this.infiniteLastRow=R:E.length<s-e&&(this.infiniteLastRow=e+E.length);let w=this.all.length===0;this.appendInfiniteRows(E),p(),this.refreshPipeline(),this.core.requestUpdate({data:!0}),w&&this.core.relayout(),this.core.headerRenderer.refreshSelectAllCheckbox()},fail:v});y&&typeof y.catch=="function"&&y.catch(v)}catch(y){v(y)}};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=g=>{if(!(p||d)){if(p=!0,r.aborted||this.core.isDestroyed()){u();return}if(a<=this.core.options.datasourceRetryCount){let v=this.retryDelay(a);l=setTimeout(()=>{l=null,h()},v)}else c(g)}};try{let g=o.getRows({startRow:e,endRow:t,sortModel:this.core.columnModel.getSortModel(),filterModel:this.getFilterModel(),advancedFilterModel:this.getAdvancedFilterModel(),quickFilterText:this.quickFilter,signal:r,onSuccess:(v,y)=>{p||d||(p=!0,d=!0,r.removeEventListener("abort",u),i({rows:v??[],...typeof y=="number"&&y>=0?{lastRow:y}:{}}))},fail:m});g&&typeof g.catch=="function"&&g.catch(m)}catch(g){m(g)}};h()})}installBlock(e,t){let r=this.core.options.blockSize,o=e*r;this.evictBlock(e),typeof t.lastRow=="number"&&t.lastRow>=0?this.infiniteLastRow=t.lastRow:t.rows.length<r&&(this.infiniteLastRow=o+t.rows.length),t.rows.forEach((i,s)=>{if(i==null)return;let a=o+s;if(this.infiniteLastRow!=null&&a>=this.infiniteLastRow)return;let l=this.resolveRowId(i,a,`block-${a}`),d=this.nodesById.get(l);if(d&&d.rowIndex!==a){this.core.reportError(new Error(`Duplicate row id: ${l}`),"datasource.getRows",{rowId:l});return}let c={id:l,data:i,rowIndex:a,selected:this.core.selectionService.isSelected(l)};this.blockNodes.set(a,c),this.blockPlaceholders.delete(a),this.nodesById.set(l,c),this.rowSequence.set(c,a+1)}),this.rebuildLoadedBlockRows(),this.installedBlocks.add(e)}evictBlock(e){this.installedBlocks.delete(e);let t=this.core.options.blockSize,r=e*t;for(let o=r;o<r+t;o++){let i=this.blockNodes.get(o);i&&(this.blockNodes.delete(o),this.nodesById.get(i.id)===i&&this.nodesById.delete(i.id))}this.rebuildLoadedBlockRows()}rebuildLoadedBlockRows(){this.all=[...this.blockNodes.entries()].sort(([e],[t])=>e-t).map(([,e])=>e),this.roots=this.all}resolveBlockRowCount(){if(this.infiniteLastRow!=null)return this.infiniteLastRow;if(this.core.options.datasourceRowCount!=null)return this.core.options.datasourceRowCount;if(this.blockNodes.size===0)return this.core.options.blockSize;let e=0;for(let t of this.blockNodes.keys())e=Math.max(e,t+1);return e+this.core.options.blockSize}blockPlaceholder(e){let t=this.blockPlaceholders.get(e);if(!t&&(t={id:`__mach_loading_${e}`,data:null,rowIndex:e,selected:!1,loading:!0},this.blockPlaceholders.set(e,t),this.blockPlaceholders.size>2e3)){let r=this.blockPlaceholders.keys().next().value;r!=null&&this.blockPlaceholders.delete(r)}return t}abortError(e){if(e instanceof Error)return e;let t=new Error(typeof e=="string"?e:"Operation aborted");return t.name="AbortError",t}retryDelay(e){let t=Math.min(this.core.options.datasourceRetryDelay*2**Math.max(0,e-1),3e4),r=this.core.options.datasourceRetryJitter;return Math.max(0,Math.round(t*(1+(Math.random()*2-1)*r)))}checkInfiniteScroll(e){if(this.isBlockDatasource){this.prefetchVisibleBlocks(e);return}if(!this.isInfinite||this.infiniteRequested)return;let t=this.all.length;if(this.infiniteLastRow!=null&&t>=this.infiniteLastRow)return;let r=this.core.options.infiniteBufferRows;if(e+r<t&&e<t)return;let o=this.core.options.blockSize,i=this.infiniteLastRow==null?t+o:Math.min(this.infiniteLastRow,t+o);this.loadBlock(t,i)}prefetchVisibleBlocks(e){if(e<0)return;let t=this.core.options.blockSize,r=Math.floor(e/t),o=this.core.options.blockPrefetch,i=r<this.lastRequestedBlock?-1:1;this.lastRequestedBlock=r;for(let s=0;s<=o;s++){let a=s===0?[r]:[r+i*s,r-i*s];for(let l of a)l<0||l*t>=this.resolveBlockRowCount()||this.loadRandomBlock(l,void 0,o-s+1).catch(()=>{})}}onServerParamsChanged(){return this.reloadInfinite().catch(()=>{})}onDatasourceChanged(){return this.cancelInfiniteRequest(),this.isInfinite?this.startInfinite().catch(()=>{}):(this.infiniteLastRow=null,this.setRowData(this.core.options.rowData),this.core.requestUpdate({data:!0}),Promise.resolve())}destroy(){this.cancelInfiniteRequest(),this.cancelTreeLoads(),this.cancelDataProcessor(),this.core.options.dataProcessor?.destroy?.()}ensureRowsLoaded(e,t,r){if(!this.isBlockDatasource)return Promise.resolve();let o=this.core.options.blockSize,i=Math.max(0,Math.trunc(e)),s=Math.min(this.resolveBlockRowCount(),Math.max(i,Math.trunc(t))),a=Math.floor(i/o),l=Math.max(a,Math.floor(Math.max(i,s-1)/o)),d=[];for(let c=a;c<=l;c++)d.push(this.loadRandomBlock(c,r,100));return Promise.all(d).then(()=>{})}purgeDatasourceCache(){this.isBlockDatasource&&(this.blockCache.purge(),this.blockNodes.clear(),this.blockPlaceholders.clear(),this.installedBlocks.clear(),this.all=[],this.roots=[],this.nodesById.clear(),this.refreshPipeline(),this.core.requestUpdate({data:!0}))}getDatasourceCacheSnapshot(){return this.blockCache.snapshot()}setRowData(e){this.cancelTreeLoads(),this.core.changeTracker.clear();let t=this.core.options.resolveRowId,r=this.core.options.childrenKey,o=[],i=[],s=new Map,a=new Map,l=0,d=(c,u,h)=>{let p=l++,m=this.resolveRowId(c,p,`auto-${p}`);if(s.has(m))return this.core.reportError(new Error(`Duplicate row id: ${m}`),"rowData",{rowId:m,index:p}),null;let g=this.isTree?ge(c,r):void 0,v={id:m,data:c,rowIndex:-1,selected:!1,treeChildrenLoaded:Array.isArray(g)};if(this.treeDepth.set(v,u),o.push(v),s.set(m,v),h!=null){let y=a.get(h)??[];y.push(m),a.set(h,y)}else i.push(v);if(this.isTree&&Array.isArray(g))for(let y of g)y!=null&&d(y,u+1,m);return v};(e??[]).forEach(c=>{c!=null&&d(c,0,null)}),this.all=o,this.roots=i,this.childIds=a,this.nodesById=s,this.core.undoService.clear();for(let c of[...this.expandedIds])s.has(c)||this.expandedIds.delete(c);if(this.core.options.defaultExpandAll)for(let c of o)this.getChildrenCount(c.id)>0&&this.expandedIds.add(c.id);this.core.selectionService.onRowsRebuilt(t!=null),this.refreshPipeline()}getChildrenIds(e){return this.childIds.get(e)??[]}getChildrenCount(e){return this.childIds.get(e)?.length??0}hasChildren(e){return this.getChildrenCount(e)>0}isTreeRowLoading(e){return this.nodesById.get(e)?.treeLoading===!0}cancelTreeLoads(){for(let e of this.treeLoadControllers.values())e.abort();this.treeLoadControllers.clear(),this.treeLoadPromises.clear()}loadTreeChildren(e,t=!1){let r=this.nodesById.get(e),o=this.core.options.loadTreeChildren;if(!this.isTree||!r?.data||!o)return Promise.resolve([]);if(!t&&r.treeChildrenLoaded)return Promise.resolve(this.getChildrenIds(e).flatMap(l=>{let d=this.nodesById.get(l)?.data;return d==null?[]:[d]}));let i=this.treeLoadPromises.get(e);if(i&&!t)return i;this.treeLoadControllers.get(e)?.abort();let s=new AbortController;this.treeLoadControllers.set(e,s),r.treeLoading=!0,r.treeLoadError=void 0,this.core.requestUpdate({data:!0});let a=Promise.resolve().then(()=>o({data:r.data,node:r,api:this.core.getApi(),signal:s.signal})).then(l=>{if(s.signal.aborted||this.core.isDestroyed())return[];if(!Array.isArray(l))throw new TypeError("[MachTable] loadTreeChildren must resolve to an array.");return this.replaceTreeChildren(r,l),r.treeChildrenLoaded=!0,r.treeLoadError=void 0,this.core.emit("treeChildrenLoaded",{rowId:e,rowNode:r,children:l}),l}).catch(l=>{if(s.signal.aborted||l?.name==="AbortError")return[];throw r.treeLoadError=l,r.treeChildrenLoaded=!1,this.core.reportError(l,"treeData.loadChildren",{rowId:e}),this.core.emit("treeChildrenLoadFailed",{rowId:e,rowNode:r,error:l}),l}).finally(()=>{this.treeLoadControllers.get(e)===s&&(this.treeLoadControllers.delete(e),this.treeLoadPromises.delete(e),r.treeLoading=!1,this.core.requestUpdate({data:!0}))});return this.treeLoadPromises.set(e,a),a}replaceTreeChildren(e,t){let r=new Set,o=[...this.getChildrenIds(e.id)];for(;o.length>0;){let s=o.pop();r.has(s)||(r.add(s),o.push(...this.getChildrenIds(s)))}this.validateTreeChildren(t,r);for(let s of r)this.treeLoadControllers.get(s)?.abort(),this.treeLoadControllers.delete(s),this.treeLoadPromises.delete(s),this.childIds.delete(s),this.nodesById.delete(s),this.expandedIds.delete(s);this.childIds.delete(e.id);let i=this.getTreeDepth(e)+1;for(let s of t)s!=null&&this.buildChildNodes(e,s,i);this.reindexAll(),this.core.selectionService.onRowsRebuilt(this.core.options.resolveRowId!=null),this.refreshPipeline(),this.core.requestUpdate({data:!0})}validateTreeChildren(e,t){let r=this.core.options.resolveRowId,o=r?new Set([...this.nodesById.keys()].filter(l=>!t.has(l))):null,i=new WeakSet,s=[...e],a=0;for(;s.length>0;){let l=s.pop();if(l==null)continue;if(typeof l=="object"){if(i.has(l))throw new TypeError("[MachTable] Lazy tree children contain a cyclic object graph.");i.add(l)}if(r&&o){let c=r({data:l,index:a++,api:this.core.getApi()});if(typeof c!="string"||c.length===0)throw new TypeError("[MachTable] rowKey must resolve to a non-empty identifier for lazy tree children.");if(o.has(c))throw new Error(`Duplicate row id: ${c}`);o.add(c)}let d=ge(l,this.core.options.childrenKey);d&&s.push(...d)}}applyTransaction(e,t=!0){let r=this.core.options.resolveRowId,o=[],i=[];if(e.remove?.length){let a=new Set,l=new Set,d=u=>{if(r){let p=[this.resolveRowId(u,-1,`__missing_remove_${this.core.nextId()}`)];for(;p.length>0;){let m=p.pop();if(!a.has(m)){a.add(m);for(let g of this.childIds.get(m)??[])p.push(g)}}}else{let h=[u];for(;h.length>0;){let p=h.pop();l.add(p);let m=this.isTree?ge(p,this.core.options.childrenKey):void 0;if(m)for(let g of m)h.push(g)}}};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?ge(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=ge(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=$(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=O(e,t),o=JSON.stringify(this.advancedFilterModel);return this.advancedFilterModel=r,this.core.options.advancedFilterModel=r,JSON.stringify(r)!==o}getAdvancedFilterModel(){return O(this.advancedFilterModel)}setQuickFilter(e){let t=e!=null&&e.trim()!==""?e:null;return t===this.quickFilter?!1:(this.quickFilter=t,!0)}getQuickFilter(){return this.quickFilter}isFilterPresent(){return Object.keys(this.filterModel).length>0||this.advancedFilterModel!=null||this.quickFilter!=null}refreshPipeline(){let e=this.core.performanceMonitor.start(),t=this.core.columnModel.getOrderedVisible(),r=(s,a)=>this.core.getCellValue(s,a);if(this.isInfinite){this.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=>Kt(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=qt(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=Kt(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=qt(d,r,e,t));for(let u of c)if(s(u)&&(a.push(u),this.expandedIds.has(u.id))){let h=(this.childIds.get(u.id)??[]).map(p=>this.nodesById.get(p)).filter(p=>p!=null);l(h)}};return l(this.roots),a}collectSpanMasters(){let e=this.mastersBuf,t=0;for(let r of this.displayed)!r.isDetail&&!r.isGroup&&(e[t++]=r);return e.length=t,e}explicitRowSpan(e,t,r,o){let i=t.colDef.rowSpan;if(!i)return 1;try{let s=i({api:this.core.getApi(),colDef:t.colDef,column:t,node:e,data:e.data,value:r,rowIndex:e.rowIndex});return Math.max(1,Math.min(Math.round(s)||1,o))}catch(s){return this.core.reportError(s,"rowSpan",{colId:t.id,rowId:e.id}),1}}automaticRowSpan(e,t,r,o,i){if(!r.colDef.autoRowSpan||o==null||o==="")return 1;let s=1;for(;t+s<e.length&&Pe(o,i(e[t+s],r))===0;)s++;return s}computeColumnSpans(e,t,r){let o=new Int32Array(e.length),i=0;for(;i<e.length;){let s=e[i],a=r(s,t),l=t.colDef.rowSpan?this.explicitRowSpan(s,t,a,e.length-i):this.automaticRowSpan(e,i,t,a,r);o[i]=l;for(let d=1;d<l;d++)o[i+d]=-1;i+=l}return o}computeSpans(e){if(this.spanInfo.clear(),this.isTree||this.core.options.masterDetail||this.core.columnModel.getRowGroupColumns().length>0)return;let t=this.core.columnModel.getOrderedVisible().filter(o=>o.colDef.rowSpan!=null||o.colDef.autoRowSpan===!0);if(t.length===0)return;let r=this.collectSpanMasters();if(r.length!==0)for(let o of t)this.spanInfo.set(o.id,this.computeColumnSpans(r,o,e))}getSpanInfo(e){return this.spanInfo.get(e)}getRowSeq(e){return this.rowSequence.get(e)??0}getTreeDepth(e){return this.treeDepth.get(e)??0}buildGrouped(e,t){let r=Fe(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 g of a){let v=this.core.getCellValue(g,c),y=v==null?"(\u7A7A)":String(v),b=u.get(y);b||(b=[],u.set(y,b),h.push(y)),b.push(g)}h.sort((g,v)=>g.localeCompare(v,void 0,{numeric:!0,sensitivity:"base"}));let p=[],m=[];for(let g of h){let v=u.get(g),y=`${d}/g${l}:${g}`;this.knownGroupIds.push(y);let b=s(v,l+1,y),R={id:y,data:null,rowIndex:-1,selected:!1,isGroup:!0,groupLevel:l,groupKey:g,leafNodes:b.leaves,aggValues:i(b.leaves)};p.push(R),this.groupExpandedIds.has(y)&&p.push(...b.display),m.push(...b.leaves)}return{display:p,leaves:m}};return s(e,0,"").display}isRowExpandable(e){if(this.isTree){if(this.hasChildren(e.id)||e.treeLoading)return!0;if(e.treeChildrenLoaded||!e.data||!this.core.options.loadTreeChildren)return!1;let r=this.core.options.isTreeRowExpandable;if(!r)return!1;try{return r({data:e.data,node:e,api:this.core.getApi()})}catch(o){return this.core.reportError(o,"isTreeRowExpandable",{rowId:e.id}),!1}}if(!this.core.options.masterDetail)return!1;let t=this.core.options.isRowExpandable;if(t)try{return t({data:e.data,node:e,api:this.core.getApi()})}catch(r){return this.core.reportError(r,"isRowExpandable",{rowId:e.id}),!1}return!0}isRowExpanded(e){return this.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 Be=class{constructor(e){this.core=e;this.selectedIds=new Set;this.anchorId=null;this.indeterminateIds=new Set}isSelected(e){return this.selectedIds.has(e)}isIndeterminate(e){return this.indeterminateIds.has(e)}isSelectable(e){if(e.loading)return!1;let t=this.findSelectableColumn(e),r=t?.colDef.selectable;if(!t||!r)return!0;try{return r({api:this.core.getApi(),colDef:t.colDef,column:t,node:e,data:e.data,value:this.core.getCellValue(e,t),rowIndex:e.rowIndex})}catch(o){return this.core.reportError(o,"selectable",{rowId:e.id,colId:t?.id}),!1}}findSelectableColumn(e){if(!(e.isGroup||e.isDetail))return this.core.columnModel.getOrderedVisible().find(t=>t.hasCheckbox&&t.colDef.selectable!=null)}getSelectedNodes(){return this.core.rowModel.getAllNodes().filter(e=>this.selectedIds.has(e.id))}getSelectedRows(){return this.getSelectedNodes().filter(e=>e.data!=null).map(e=>e.data)}getSelectedIds(){return[...this.selectedIds]}restoreSelection(e){let t=new Set(e),r=this.core.rowModel.getAllNodes().filter(o=>t.has(o.id)&&!o.isDetail&&!o.isGroup).map(o=>({node:o,selected:!0}));this.applySelection(r,!0)}onRowsRebuilt(e){if(!e)this.selectedIds.clear(),this.anchorId=null;else{let t=new Set(this.core.rowModel.getAllNodes().map(r=>r.id));for(let r of[...this.selectedIds])t.has(r)||this.selectedIds.delete(r);this.anchorId!=null&&!t.has(this.anchorId)&&(this.anchorId=null)}for(let t of this.core.rowModel.getAllNodes())t.selected=this.selectedIds.has(t.id);this.recomputeTriState()}getGroupSelectionState(e){let t=e.leafNodes??[];if(t.length===0)return{all:!1,some:!1};let r=0,o=0;for(let i of t)this.isSelectable(i)&&(r++,this.selectedIds.has(i.id)&&o++);return r===0?{all:!1,some:!1}:{all:o===r,some:o>0}}setGroupSelected(e,t){let r=(e.leafNodes??[]).filter(o=>this.isSelectable(o));r.length!==0&&this.applySelection(r.map(o=>({node:o,selected:t})))}setNodeSelected(e,t,r=!1){this.applySelection([{node:e,selected:t,clearOthers:r}])}selectNodeById(e,t=!0,r=!0){let o=this.core.rowModel.getNodeById(e);o&&this.setNodeSelected(o,t,r)}selectFromCheckbox(e,t){let r=t==="single";this.applySelection([{node:e,selected:r?!0:!e.selected,clearOthers:r}]),this.anchorId=e.id}toggleFromModifier(e,t,r){return!r||!t.ctrlKey&&!t.metaKey?!1:(this.applySelection([{node:e,selected:!e.selected}]),this.anchorId=e.id,!0)}selectAnchorRange(e,t,r){if(!r||!t.shiftKey||this.anchorId==null)return!1;let o=this.core.rowModel.getNodeById(this.anchorId);if(!o||o.rowIndex<0||e.rowIndex<0)return!1;let i=Math.min(o.rowIndex,e.rowIndex),s=Math.max(o.rowIndex,e.rowIndex),a=[];for(let l=i;l<=s;l++){let d=this.core.rowModel.getDisplayedRow(l);d&&!d.isDetail&&!d.isGroup&&this.isSelectable(d)&&a.push({node:d,selected:!0})}return this.applySelection(a),!0}onRowClick(e,t,r){let o=this.core.options.rowSelection;if(o==="none"||!this.isSelectable(e))return;if(r){this.selectFromCheckbox(e,o);return}let i=o==="multiple";this.toggleFromModifier(e,t,i)||this.selectAnchorRange(e,t,i)||(this.applySelection([{node:e,selected:!0,clearOthers:!0}]),this.anchorId=e.id)}selectAll(e=!0){let t=this.core.options.rowSelection;if(t==="none")return;let o=(e?this.core.rowModel.getDisplayedRows():this.core.rowModel.getAllNodes()).filter(i=>!i.isDetail&&!i.isGroup&&this.isSelectable(i));if(o.length!==0){if(t==="single"){this.applySelection([{node:o[0],selected:!0,clearOthers:!0}]);return}this.applySelection(o.map(i=>({node:i,selected:!0})))}}deselectAll(){this.applySelection([],!0)}isSelectAllActive(){let t=this.core.rowModel.getDisplayedRows().filter(r=>!r.isDetail&&!r.isGroup).filter(r=>this.isSelectable(r));if(t.length===0)return!1;if(this.core.rowModel.isInfinite){let r=this.core.rowModel.getDisplayTotalCount();if(t.length<r)return!1}return t.every(r=>this.selectedIds.has(r.id))}isSelectAllIndeterminate(){let t=this.core.rowModel.getDisplayedRows().filter(o=>!o.isDetail&&!o.isGroup).filter(o=>this.isSelectable(o)),r=t.reduce((o,i)=>o+(this.selectedIds.has(i.id)?1:0),0);if(r===0)return!1;if(this.core.rowModel.isInfinite){let o=this.core.rowModel.getDisplayTotalCount();if(t.length<o)return!0}return r>0&&r<t.length}applySelectionPublic(e,t=!1){this.applySelection(e,t)}replaceSelection(e,t,r){!t&&!e.some(o=>o.clearOthers)||(this.selectedIds=t?new Set:new Set(e.filter(o=>o.selected).flatMap(o=>r?this.subtreeIds(o.node):[o.node.id])))}applySelectionChanges(e,t){for(let r of e){if(!this.isSelectable(r.node))continue;let o=t?this.subtreeIds(r.node):[r.node.id];for(let i of o)r.selected?this.selectedIds.add(i):this.selectedIds.delete(i)}}changedSelectionIds(e){let t=new Set;for(let r of new Set([...e,...this.selectedIds]))e.has(r)!==this.selectedIds.has(r)&&t.add(r);return t}synchronizeNodeSelection(e,t,r){let o=[],i=new Set([...e,...r,...this.indeterminateIds]);for(let s of this.core.rowModel.getAllNodes()){let a=this.selectedIds.has(s.id);s.selected=a,(i.has(s.id)||t.get(s.id)!==a)&&s.rowIndex>=0&&o.push(s.rowIndex)}return o}applySelection(e,t=!1){let r=new Set(this.selectedIds),o=this.core.rowModel.isTree&&this.core.options.autoCheckedChildren;this.replaceSelection(e,t,o),this.applySelectionChanges(e,o);let i=this.changedSelectionIds(r),s=new Map;for(let d of this.core.rowModel.getAllNodes())s.set(d.id,d.selected);let a=new Set(this.indeterminateIds);this.recomputeTriState();let l=this.synchronizeNodeSelection(i,s,a);i.size>0&&(this.core.bodyRenderer.refreshRows(l),this.core.headerRenderer.refreshSelectAllCheckbox(),this.core.emit("selectionChanged",{selectedNodes:this.getSelectedNodes(),selectedRows:this.getSelectedRows()}))}subtreeIds(e){let t=[e.id],r=o=>{for(let i of this.core.rowModel.getChildrenIds(o))t.push(i),r(i)};return r(e.id),t}recomputeTriState(){if(this.indeterminateIds.clear(),!this.core.rowModel.isTree)return;let e=t=>{let r=this.core.rowModel.getChildrenIds(t);if(r.length===0)return{all:this.selectedIds.has(t),some:this.selectedIds.has(t)};let o=!0,i=!1;for(let s of r){let a=e(s);a.all?i=!0:(a.some&&(i=!0),o=!1)}return i&&!o&&this.indeterminateIds.add(t),o?this.selectedIds.add(t):this.selectedIds.delete(t),{all:o,some:i}};for(let t of this.core.rowModel.getRootNodes())e(t.id);for(let t of this.core.rowModel.getAllNodes())t.selected=this.selectedIds.has(t.id)}};var Ve=class{constructor(e){this.core=e;this.active=null;this.rafId=0;this.pendingWidth=0;this.onMove=e=>{let t=this.matchActivePointer(e);t&&(this.pendingWidth=this.widthFromPointer(t,e.clientX),t.didResize||(t.didResize=Math.abs(this.pendingWidth-t.startWidth)>=.5),!this.rafId&&(this.rafId=requestAnimationFrame(()=>{this.rafId=0,this.applyPendingWidth()})))};this.onUp=e=>{let t=this.matchActivePointer(e);t&&(this.pendingWidth=this.widthFromPointer(t,e.clientX),t.didResize||(t.didResize=Math.abs(this.pendingWidth-t.startWidth)>=.5),this.finishResize(t))};this.onCancel=e=>{this.matchActivePointer(e)&&this.cancelResize()};this.onLostPointerCapture=()=>{this.cancelResize()}}startResize(e,t){if(!this.core.options.enableColumnResize||!t.resizable||e.isPrimary===!1)return;this.cancelResize();let r=e.currentTarget,o=t.currentWidth;this.pendingWidth=o,this.active={column:t,didResize:!1,handle:r,pointerId:e.pointerId,startFlex:t.flex,startManualWidth:t.manualWidth,startWidth:o,startX:e.clientX},window.addEventListener("pointermove",this.onMove),window.addEventListener("pointerup",this.onUp,!0),window.addEventListener("pointercancel",this.onCancel,!0),r.addEventListener("lostpointercapture",this.onLostPointerCapture);try{r.setPointerCapture?.(e.pointerId)}catch{}this.core.skeleton.root.classList.add("mach-root--resizing")}cancelResize(e=!0){let t=this.active;t&&(this.active=null,this.clearFrame(),this.removeListeners(t),e&&(t.column.manualWidth=t.startManualWidth,t.column.flex=t.startFlex,this.core.relayoutColumns()),this.core.skeleton.root.classList.remove("mach-root--resizing"))}finishResize(e){this.active=null,this.clearFrame(),e.didResize&&(Math.abs(this.pendingWidth-e.startWidth)<.5?(e.column.manualWidth=e.startManualWidth,e.column.flex=e.startFlex):this.core.columnModel.setColumnWidth(e.column,this.pendingWidth),this.core.relayoutColumns()),this.removeListeners(e);try{e.handle.releasePointerCapture?.(e.pointerId)}catch{}this.core.skeleton.root.classList.remove("mach-root--resizing"),e.didResize&&this.core.commitColumnWidths([e.column])}applyPendingWidth(){let e=this.active;!e||!this.core.columnModel.setColumnWidth(e.column,this.pendingWidth)||(this.core.relayoutColumns(),this.core.emitColumnResize(e.column,!1))}widthFromPointer(e,t){let r=Number.isFinite(t)?t:e.startX;return e.startWidth+r-e.startX}matchActivePointer(e){let t=this.active;return t&&e.pointerId===t.pointerId?t:null}clearFrame(){this.rafId&&cancelAnimationFrame(this.rafId),this.rafId=0}removeListeners(e){window.removeEventListener("pointermove",this.onMove),window.removeEventListener("pointerup",this.onUp,!0),window.removeEventListener("pointercancel",this.onCancel,!0),e.handle.removeEventListener("lostpointercapture",this.onLostPointerCapture)}destroy(){this.cancelResize(!1),this.clearFrame(),this.core.skeleton.root?.classList.remove("mach-root--resizing")}};function f(n,e,t){let r=document.createElement(n);if(e&&(r.className=e),t)for(let o of Object.keys(t))r.setAttribute(o,t[o]);return r}var ci=["--mach-font-family","--mach-font-size","--mach-font-size-sm","--mach-header-font-weight","--mach-cell-padding","--mach-header-h","--mach-primary","--mach-primary-weak","--mach-success","--mach-warning","--mach-danger","--mach-info","--mach-border-color","--mach-border-width","--mach-header-bg","--mach-header-fg","--mach-body-bg","--mach-body-fg","--mach-row-hover-bg","--mach-radius-sm","--mach-radius","--mach-radius-lg","--mach-shadow-sm","--mach-shadow","--mach-transition","--mach-z-popup","--mach-z-menu"];function A(n,e){if(n.classList.add("mach-portal"),!e)return;let t=window.getComputedStyle(e);for(let r of ci){let o=t.getPropertyValue(r).trim();o&&n.style.setProperty(r,o)}n.style.colorScheme=t.colorScheme}function x(n,e,t){return n<e?e:n>t?t:n}var Br=0;function Vr(n="rg"){return Br++,`${n}-${Br}`}var zr='<svg viewBox="0 0 16 16" width="12" height="12" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M2 3.5h12L9.5 8v4.5L6.5 14V8L2 3.5z"/></svg>',Wr='<svg viewBox="0 0 16 16" width="10" height="10" fill="currentColor"><path d="M8 3l4 5H4l4-5z"/></svg>',_r='<svg viewBox="0 0 16 16" width="10" height="10" fill="currentColor"><path d="M8 13l4-5H4l4 5z"/></svg>',Kr='<svg viewBox="0 0 16 16" width="12" height="12" fill="none" stroke="currentColor" stroke-width="1.35" stroke-linecap="round"><path d="M2 4h3m3 0h6M2 8h7m3 0h2M2 12h1m3 0h8"/><circle cx="6.5" cy="4" r="1.35"/><circle cx="10.5" cy="8" r="1.35"/><circle cx="4.5" cy="12" r="1.35"/></svg>';var qr=6,ze=class{constructor(e){this.core=e;this.pending=null;this.dragging=null;this.suppressClick=!1;this.moveRaf=0;this.pendingPoint=null;this.onMove=e=>{if(this.dragging){this.scheduleIndicator(e);return}let t=this.pending;t&&(Math.abs(e.clientX-t.startX)<qr&&Math.abs(e.clientY-t.startY)<qr||this.startDrag(e))};this.onUp=e=>{this.pending=null,e.type!=="pointercancel"&&this.dragging&&this.applyIndicator(e.clientX,e.clientY),this.cleanup();let t=this.clearDrag();t&&e.type!=="pointercancel"&&t.targetIndex>=0&&this.core.moveColumn(t.column.id,t.targetIndex)}}onPointerDown(e,t){e.button===0&&t.movable&&(this.pending={column:t,startX:e.clientX,startY:e.clientY},window.addEventListener("pointermove",this.onMove),window.addEventListener("pointerup",this.onUp),window.addEventListener("pointercancel",this.onUp))}didDrag(){let e=this.suppressClick;return this.suppressClick=!1,e}startDrag(e){let t=this.pending;if(!t)return;let r=this.findHeaderCell(t.column);if(!r||!r.parentElement){this.cleanup();return}this.suppressClick=!0;let o=f("div","mach-drop-indicator"),i=f("div","mach-column-drag-ghost");i.textContent=t.column.colDef.headerName??t.column.colDef.field??t.column.id,i.ariaHidden="true",A(i,this.core.skeleton.root),document.body.appendChild(i),r.parentElement.appendChild(o),r.classList.add("mach-header-cell--dragging"),this.core.skeleton.root.classList.add("mach-root--dragging");let s=this.core.bodyRenderer.paneForColumn(t.column),a=this.core.skeleton.headerRowContainers[s],l=this.core.columnModel.getPaneColumns(s),d=new Float64Array(l.length+1),c=new Float64Array(l.length);for(let h=0;h<l.length;h++){let p=l[h].currentWidth;c[h]=d[h]+p/2,d[h+1]=d[h]+p}let u=i.getBoundingClientRect();this.dragging={column:t.column,cellEl:r,ghost:i,indicator:o,targetIndex:-1,pane:s,containerLeft:a.getBoundingClientRect().left,startScrollLeft:this.core.skeleton.bodyViewports.center.scrollLeft,fromIndex:l.indexOf(t.column),midpoints:c,offsets:d,ghostWidth:u.width,ghostHeight:u.height},this.applyIndicator(e.clientX,e.clientY)}findHeaderCell(e){let t=this.core.bodyRenderer.paneForColumn(e);return this.core.skeleton.headerRowContainers[t].querySelector(`.mach-header-cell[data-col-id="${ui(e.id)}"]`)}scheduleIndicator(e){this.pendingPoint={clientX:e.clientX,clientY:e.clientY},!this.moveRaf&&(this.moveRaf=requestAnimationFrame(()=>{this.moveRaf=0;let t=this.pendingPoint;this.pendingPoint=null,t&&this.applyIndicator(t.clientX,t.clientY)}))}applyIndicator(e,t){let r=this.dragging;if(!r)return;let o=x(e+12,8,window.innerWidth-r.ghostWidth-8),i=x(t+12,8,window.innerHeight-r.ghostHeight-8);r.ghost.style.transform=`translate3d(${o}px, ${i}px, 0)`;let s=r.pane==="center"?this.core.skeleton.bodyViewports.center.scrollLeft-r.startScrollLeft:0,a=e-(r.containerLeft-s),l=r.midpoints.length;for(let d=0;d<r.midpoints.length;d++)if(a<r.midpoints[d]){l=d;break}r.targetIndex=l>r.fromIndex?l-1:l,r.indicator.style.transform=`translate3d(${r.offsets[l]}px, 0, 0)`}clearDrag(){let e=this.dragging;return e?(this.dragging=null,e.cellEl.classList.remove("mach-header-cell--dragging"),e.ghost.remove(),e.indicator.remove(),this.core.skeleton.root.classList.remove("mach-root--dragging"),e):null}cleanup(){window.removeEventListener("pointermove",this.onMove),window.removeEventListener("pointerup",this.onUp),window.removeEventListener("pointercancel",this.onUp),this.moveRaf&&cancelAnimationFrame(this.moveRaf),this.moveRaf=0,this.pendingPoint=null}destroy(){this.cleanup(),this.clearDrag(),this.pending=null}};function ui(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 ye(n){return typeof n!="string"||n===""||/^[+-]?(?:\d+(?:\.\d+)?|\.\d+)(?:[eE][+-]?\d+)?$/.test(n)?n:/^[\s\u0000-\u001f]*[=+\-@]/.test(n)?"'"+n:n}function Ut(n,e={}){let t=e.columnSeparator??",",r=e.includeHeader??!0,o=e.protectFormulas??!0,i=[];r&&i.push(n.getHeaderLabels().map(a=>$r(a,t)).join(t));for(let a of n.getRowValues())i.push(a.map(l=>$r(o?ye(l):l,t)).join(t));let s=i.join(`\r
3
+ `);return e.prependBOM?"\uFEFF"+s:s}function hi(n,e){let t=e?ye(n):n,r=t==null?"":String(t);return/["\t\n\r]/.test(r)?'"'+r.replace(/"/g,'""')+'"':r}function de(n,e=!0){return n.map(t=>t.map(r=>hi(r,e)).join(" ")).join(`
4
+ `)}function We(n){return Ke(n," ")}function _e(n,e=","){return Ke(n,e)}function Ke(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 hi(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 hi(n)}var pi=new Set(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Enter","F2","Home","End","PageUp","PageDown","Tab"," ","Escape","Delete","Backspace"]),fi=new Set(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Home","End","PageUp","PageDown"]),Ke=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)||pi.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 fi.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}};var O=null;function jr(n){let e=n.target;O?.contains(e)||O?.close()}function qe(){O?.reposition()}function Yr(n){n.key!=="Escape"||!O||(n.preventDefault(),n.stopImmediatePropagation(),O.close(!0))}function mi(n){O?.close!==n.close&&O?.close(),!O&&(O=n,document.addEventListener("mousedown",jr,!0),document.addEventListener("keydown",Yr,!0),window.addEventListener("resize",qe),window.addEventListener("scroll",qe,!0))}function gi(n){O?.close===n&&(O=null,document.removeEventListener("mousedown",jr,!0),document.removeEventListener("keydown",Yr,!0),window.removeEventListener("resize",qe),window.removeEventListener("scroll",qe,!0))}function ee(n,e){return e?`${n} ${e}`:n}function Ue(n){let e=[];return n.forEach((t,r)=>{t.disabled||e.push(r)}),e}function qr(n,e,t){let r=Ue(n);if(r.length===0)return-1;let o=r.indexOf(e);return o<0?t>0?r[0]:r[r.length-1]:r[Math.max(0,Math.min(r.length-1,o+t))]}function $e(n,e){return n.findIndex(t=>t.value===e&&!t.disabled)}function U(n){let e=f("div",ee("mach-select-control",n.classNames?.root)),t=f("select",ee("mach-select-native",n.classNames?.native));t.hidden=!0,t.tabIndex=-1,t.setAttribute("aria-hidden","true");let r=f("button",ee("mach-select-trigger",n.classNames?.trigger));r.type="button",r.setAttribute("role","combobox"),r.setAttribute("aria-haspopup","listbox"),r.setAttribute("aria-expanded","false"),r.setAttribute("aria-label",n.ariaLabel);let o=f("span",ee("mach-select-value",n.classNames?.value)),i=f("span",ee("mach-select-caret",n.classNames?.caret));i.setAttribute("aria-hidden","true"),r.append(o,i);let s=f("div",ee("mach-select-listbox",n.classNames?.listbox));s.id=Vr("mach-select-listbox"),s.setAttribute("role","listbox"),s.setAttribute("aria-hidden","true"),r.setAttribute("aria-controls",s.id),e.append(t,r);let a=[...n.options],l=[],d=-1,c=!1,u=()=>n.themeSource??e.closest(".mach-root")??e,h=()=>{let w=a.find(C=>C.value===t.value);o.textContent=w?.label??t.value,l.forEach((C,k)=>{let M=a[k]?.value===t.value;C.setAttribute("aria-selected",M?"true":"false"),C.classList.toggle("mach-select-option--selected",M),C.classList.toggle("mach-select-option--active",k===d)}),r.setAttribute("aria-activedescendant",d>=0?l[d]?.id??"":"")},p=()=>{let w=r.getBoundingClientRect(),C=s.getBoundingClientRect(),k=Math.max(w.width,C.width),M=x(w.left,8,Math.max(8,window.innerWidth-k-8)),B=window.innerHeight-w.bottom-8,Q=B<Math.min(C.height,240)&&w.top>B,G=Q?Math.max(8,w.top-C.height-5):Math.min(window.innerHeight-C.height-8,w.bottom+5);s.style.minWidth=`${w.width}px`,s.style.left=`${M}px`,s.style.top=`${Math.max(8,G)}px`,s.classList.toggle("mach-select-listbox--above",Q)},m=(w=!1)=>s.classList.contains("mach-select-listbox--open")?(s.classList.remove("mach-select-listbox--open","mach-select-listbox--above"),s.setAttribute("aria-hidden","true"),r.setAttribute("aria-expanded","false"),r.removeAttribute("aria-activedescendant"),s.remove(),gi(m),w&&!c&&r.focus({preventScroll:!0}),!0):!1,y=(w,C=!0)=>{!a[w]||a[w].disabled||(d=w,h(),C&&l[w]?.scrollIntoView?.({block:"nearest"}))},v=()=>{c||r.disabled||s.classList.contains("mach-select-listbox--open")||(mi({close:m,contains:w=>e.contains(w)||s.contains(w),reposition:p}),d=$e(a,t.value),d<0&&(d=Ue(a)[0]??-1),A(s,u()),document.body.appendChild(s),s.classList.add("mach-select-listbox--open"),s.setAttribute("aria-hidden","false"),r.setAttribute("aria-expanded","true"),p(),h(),l[d]?.scrollIntoView?.({block:"nearest"}))},g=w=>{let C=a[w];!C||C.disabled||(t.value=C.value,d=w,h(),m(!0),t.dispatchEvent(new Event("input",{bubbles:!0})),t.dispatchEvent(new Event("change",{bubbles:!0})))},b=(w,C)=>{a=[...w],t.replaceChildren(),s.replaceChildren(),l=a.map((M,B)=>{let Q=document.createElement("option");Q.value=M.value,Q.textContent=M.label,Q.disabled=M.disabled===!0,t.appendChild(Q);let G=f("button",ee("mach-select-option",n.classNames?.option));return G.id=`${s.id}-option-${B}`,G.type="button",G.tabIndex=-1,G.dataset.value=M.value,G.disabled=M.disabled===!0,G.setAttribute("role","option"),G.textContent=M.label,G.addEventListener("mousedown",fn=>fn.preventDefault()),G.addEventListener("click",()=>g(B)),s.appendChild(G),G});let k=a.find(M=>!M.disabled)?.value??"";t.value=C!=null&&a.some(M=>M.value===C)?C:k,d=$e(a,t.value),h()},T=w=>{if(w.key==="Tab"){m();return}if(w.key==="Escape"){if(!m(!0))return;w.preventDefault(),w.stopPropagation();return}if(w.key==="Enter"||w.key===" "){w.preventDefault(),w.stopPropagation(),s.classList.contains("mach-select-listbox--open")?g(d):v();return}let C=d;if(w.key==="ArrowDown")C=qr(a,d,1);else if(w.key==="ArrowUp")C=qr(a,d,-1);else if(w.key==="Home")C=Ue(a)[0]??-1;else if(w.key==="End"){let k=Ue(a);C=k[k.length-1]??-1}else return;w.preventDefault(),w.stopPropagation(),s.classList.contains("mach-select-listbox--open")||v(),y(C)},E=()=>{d=$e(a,t.value),h(),n.onChange?.(t.value)};return r.addEventListener("click",()=>{m()||v()}),r.addEventListener("keydown",T),t.addEventListener("change",E),b(a,n.value),{el:e,native:t,trigger:r,listbox:s,contains:w=>e.contains(w)||s.contains(w),isOpen:()=>s.classList.contains("mach-select-listbox--open"),open:v,close:m,focus:()=>r.focus({preventScroll:!0}),getValue:()=>t.value,setValue:w=>{t.value=w,d=$e(a,w),h()},setOptions:b,destroy:()=>{c||(c=!0,m(),r.removeEventListener("keydown",T),t.removeEventListener("change",E),e.remove())}}}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 yi(n){return n?.options?.length?n.options:(n?.values??[]).map(e=>({label:String(e),value:e}))}function vi(n,e){return e?.options?.length||e?.values?.length?"select":typeof n=="number"?"number":n instanceof Date||typeof n=="string"&&/^\d{4}-\d{2}-\d{2}/.test(n)?"date":"text"}function jt(n,e,t){let r=n.colDef,o=typeof r.cellEditor=="string"?r.cellEditor:vi(e,r.cellEditorParams);if(o==="number"){let s=qt("number",e);return{el:s,getValue:()=>s.value===""?null:Number(s.value),focus:()=>{s.focus({preventScroll:!0}),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({preventScroll:!0})}}if(o==="select"){let s=yi(r.cellEditorParams),a=U({ariaLabel:r.headerName??r.field??n.id,options:s.map(l=>({value:String(l.value),label:l.label,disabled:l.disabled})),value:String(e??""),classNames:{root:"mach-editor-select-control",native:"mach-editor-select"}});return{el:a.el,getValue:()=>{let l=a.getValue();return s.find(c=>String(c.value)===l)?.value??l},focus:()=>a.focus(),destroy:()=>a.destroy()}}let i=qt("text",e);return t&&t.length===1&&(i.value=t),{el:i,getValue:()=>i.value,focus:()=>{i.focus({preventScroll:!0}),i.select()}}}var Yt=new WeakMap,je=new WeakMap,Ye=new WeakMap;function ve(n){let e=Yt.get(n);return e||(e={},Yt.set(n,e)),e}function Xt(n){return Yt.get(n)}function Xr(n,e){e?je.set(n,e):je.delete(n)}function Qr(n){let e=je.get(n);return je.delete(n),e}function Jr(n,e){e?Ye.set(n,e):Ye.delete(n)}function Qt(n){let e=Ye.get(n);return Ye.delete(n),e}function Xe(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 I(n,e){let t=Xt(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 Zr(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 wi(n,e,t,r,o,i){let s=Xt(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 K(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 Xe(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 Xe(r)}function Qe(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 Je(n,e,t,r){let o=n.getCellValue(t,r),i=K(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(wi(n,e,t,r,a,l)){Zr(n,e,t,r,o,i);return}I(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 I(n,e),e.textContent=i;Zr(n,e,t,r,o,i)}function bi(n,e,t){let r=e.colDef.align;if(r==="center"){n.push("mach-cell--center");return}if(r==="right"){n.push("mach-cell--right");return}(ie(e.colDef,"rightAligned")||ie(e.colDef,"numericColumn")||typeof t=="number")&&n.push("mach-cell--num")}function Ci(n,e,t,r,o){let i=r.colDef.cellClass;if(!i)return;if(typeof i=="string"){e.push(i);return}if(Array.isArray(i)){e.push(...i);return}let s={api:n.getApi(),colDef:r.colDef,column:r,node:t,data:t.data,value:o,rowIndex:t.rowIndex};try{let a=i(s);typeof a=="string"?e.push(a):Array.isArray(a)&&e.push(...a)}catch(a){n.reportError(a,"cellClass",{colId:r.id,rowId:t.id})}}function Ti(n,e,t){e.classList.contains("mach-cell--focus")&&n.push("mach-cell--focus"),e.classList.contains("mach-cell--editing")&&n.push("mach-cell--editing"),t.colDef.wrapText&&n.push("mach-cell--wrap")}function be(n,e,t,r){let o=n.getCellValue(t,r),i=["mach-cell"];bi(i,r,o),Ci(n,i,t,r,o),Ti(i,e,r);let s=i.join(" ");e.className!==s&&(e.className=s)}var Ri='<path d="M3 8.5 6.4 12 13.5 4"/>',Si='<path d="m4 4 8 8m0-8-8 8"/>';function eo(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"?Ri:Si}</svg>`,t.addEventListener("mousedown",r=>{r.preventDefault(),r.stopPropagation()}),t}var Ze=class{constructor(e){this.core=e;this.cellEditing=null;this.rowEditing=null;this.stopPromise=null;this.stopToken=0;this.onCellEditorKeyDown=e=>{if(this.cellEditing&&!(e.isComposing||e.keyCode===229)){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))})}}}}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.rowEditing)return!1;if(this.cellEditing)return this.cellEditing.rowIndex===e&&this.cellEditing.column.id===t.id||this.stopAsync(!1).then(p=>{p&&!this.cellEditing&&!this.rowEditing&&this.start(e,t,r)}),!0;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;I(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=eo("confirm","Confirm edit"),u=eo("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),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;I(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)??jt(t,o,i):a=jt(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(".mach-select-trigger, input:not([type='hidden']), select:not([hidden]), 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.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 D={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"},to={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"},Di={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 et(n){return Di[n]??"matchEquals"}function H(n,e){return n.replace("{n}",String(e))}function tt(n,e,t){return n.replace("{a}",String(e)).replace("{b}",String(t))}var Ei=["contains","notContains","equals","notEquals","startsWith","endsWith","blank","notBlank"],xi=["equals","notEquals","lessThan","lessThanOrEqual","greaterThan","greaterThanOrEqual","inRange","blank","notBlank"],Mi=["equals","notEquals","lessThan","greaterThan","inRange","blank","notBlank"];function Jt(n){return n==="blank"||n==="notBlank"}function ki(n){return n==="number"?xi:n==="date"?Mi:Ei}function rt(n){return n===null?"null:":`${typeof n}:${String(n)}`}var ot=class{constructor(e){this.core=e;this.panel=null;this.openColId=null;this.conditionSelect=null;this.docMouseDown=e=>{if(!this.panel)return;let t=e.target;if(!this.panel.contains(t)&&!this.conditionSelect?.contains(t)){this.close();return}this.conditionSelect?.contains(t)||(!(t instanceof Element)||!t.closest(".mach-filter-select-control"))&&this.closeConditionListbox()};this.docKeyDown=e=>{if(e.key==="Escape"){if(this.closeConditionListbox(!0)){e.preventDefault(),e.stopPropagation();return}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=f("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=f("div","mach-filter-footer"),a=f("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=f("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),A(i,this.core.skeleton.root),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(".mach-filter-select-trigger, input")?.focus()}close(){this.panel&&(this.conditionSelect?.destroy(),this.conditionSelect=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()}buildConditionBody(e,t,r,o){let i=o&&o.type!=="set"&&o.conditions.length>0?o.conditions[0]:null,s=i?.match??(r==="text"?"contains":"equals"),{root:a,select:l}=this.createConditionSelect(r,s),d=this.createConditionInput(r),c=this.createConditionInput(r,!0);this.populateConditionInputs(r,s,i,d,c),this.updateConditionInputVisibility(s,d,c),l.addEventListener("change",()=>{this.updateConditionInputVisibility(l.value,d,c)}),this.attachEnterApply(t,e,d,c);let u=f("div","mach-filter-body");u.append(a,d,c),e.appendChild(u),e.dataset.filterType=r}createConditionSelect(e,t){let r=U({ariaLabel:"Filter condition",options:ki(e).map(o=>({value:o,label:this.core.getLocaleText(et(o))})),value:t,classNames:{root:"mach-filter-select-control",native:"mach-filter-select",trigger:"mach-filter-select-trigger",value:"mach-filter-select-value",caret:"mach-filter-select-caret",listbox:"mach-filter-listbox",option:"mach-filter-listbox-option"},themeSource:this.core.skeleton.root});return this.conditionSelect=r,{root:r.el,select:r.native}}closeConditionListbox(e=!1){return this.conditionSelect?.close(e)??!1}createConditionInput(e,t=!1){let o=f("input",`mach-filter-input${t?" mach-filter-input--second":""}`);return e==="number"&&(o.type="number"),e==="date"&&(o.type="date"),o}populateConditionInputs(e,t,r,o,i){r?.value!=null&&!Jt(t)&&(o.value=e==="date"?String(r.value).slice(0,10):String(r.value)),r&&"value2"in r&&r.value2!=null&&(i.value=e==="date"?String(r.value2).slice(0,10):String(r.value2))}updateConditionInputVisibility(e,t,r){t.style.display=Jt(e)?"none":"",r.style.display=e==="inRange"?"":"none"}attachEnterApply(e,t,r,o){let i=s=>{s.key==="Enter"&&(this.core.applyColumnFilter(e,this.readFilter(t)),this.close())};r.addEventListener("keydown",i),o.addEventListener("keydown",i)}buildSetBody(e,t,r){let i=t.colDef.filterParams,s;if(i?.values)s=i.values;else{let y=new Set;s=[];let v=this.core.rowModel.getAllNodes(),g=Math.min(v.length,i?.maxValues??500);for(let b=0;b<g;b++){let T=this.core.getCellValue(v[b],t),E=rt(T??null);y.has(E)||(y.add(E),s.push(T))}}let a=new Set(r?.type==="set"?r.values.map(rt):s.map(rt)),l=f("input","mach-filter-input mach-filter-input--search");l.type="text",l.placeholder=this.core.getLocaleText("search");let d=f("div","mach-filter-set-list"),c=[],u=new Map,h=y=>{d.textContent="",c.length=0;let v=y.trim().toLowerCase();for(let g of s){let b=g==null?this.core.getLocaleText("emptySetLabel"):String(g);if(v&&!b.toLowerCase().includes(v))continue;let T=rt(g);u.set(T,g);let E=f("label","mach-filter-set-item"),w=document.createElement("input");w.type="checkbox",w.checked=a.has(T),w.addEventListener("change",()=>{w.checked?a.add(T):a.delete(T),e.dataset.setSelected=JSON.stringify([...a])});let C=f("span");C.textContent=b,E.append(w,C),d.appendChild(E),c.push(w)}};l.addEventListener("input",()=>h(l.value)),h(""),e.dataset.filterType="set",e.dataset.setValues=JSON.stringify([...u.entries()]),e.dataset.setSelected=JSON.stringify([...a]),(()=>{let y=[...u.entries()];e.dataset.setValues=JSON.stringify(y)})();let m=f("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")return this.readSetFilter(e);if(t!=="text"&&t!=="number"&&t!=="date")return null;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(Jt(a))return{type:t,conditions:[{match:a}]};let l=i.value;return l===""&&a!=="inRange"?null:t==="number"?this.readNumberFilter(a,l,s):t==="date"?this.readDateFilter(a,l,s):{type:"text",conditions:[{match:a,value:l}]}}readSetFilter(e){let t=[],r=[];try{t=JSON.parse(e.dataset.setValues??"[]"),r=JSON.parse(e.dataset.setSelected??"[]")}catch{return null}let o=new Set(r),i=t.filter(([s])=>o.has(s)).map(([,s])=>s);return i.length===t.length||i.length===0?null:{type:"set",values:i}}readNumberFilter(e,t,r){let o=Number(t);if(Number.isNaN(o))return null;if(e!=="inRange")return{type:"number",conditions:[{match:e,value:o}]};let i=r?.value?Number(r.value):o;return Number.isNaN(i)?null:{type:"number",conditions:[{match:"inRange",value:o,value2:i}]}}readDateFilter(e,t,r){return e!=="inRange"?{type:"date",conditions:[{match:e,value:t}]}:{type:"date",conditions:[{match:"inRange",value:t,value2:r?.value||t}]}}};var nt=class{constructor(e){this.core=e;this.panel=null;this.openColId=null;this.standaloneAnchor=null;this.searchText="";this.selectControls=new Set;this.docMouseDown=e=>{let t=e.target;this.panel&&!this.panel.contains(t)&&!this.containsSelectTarget(t)&&this.close()};this.docKeyDown=e=>{if(e.key!=="Escape")return;if([...this.selectControls].find(r=>r.isOpen())?.close(!0)){e.preventDefault(),e.stopImmediatePropagation();return}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.destroySelectControls(),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=f("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=f("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 w=f("div","mach-column-panel-actions"),C=(k,M)=>{let B=f("button","mach-column-panel-btn");return B.type="button",B.textContent=this.core.getLocaleText(k),B.addEventListener("click",()=>{r.sorting.setModel(M?[{colId:e.id,direction:M}]:[]),this.close()}),B};w.append(C("sortAsc","asc"),C("sortDesc","desc"),C("clearSort",null)),o.appendChild(w)}let s=f("div","mach-column-panel-actions"),a=(w,C)=>{let k=f("button","mach-column-panel-btn");return k.type="button",k.textContent=this.core.getLocaleText(w),k.addEventListener("click",()=>{e&&r.columns.setPinned(e.id,C),this.close()}),k};e&&(s.append(a("pinLeft","left"),a("pinRight","right"),a("clearPin",null)),o.appendChild(s));let l=f("div","mach-column-panel-actions"),d=f("button","mach-column-panel-btn");d.type="button",d.textContent=this.core.getLocaleText("autoSize"),d.addEventListener("click",()=>{e?r.columns.autoSize(e.id):r.columns.autoSizeAll(),this.close()});let c=f("button","mach-column-panel-btn");c.type="button",c.textContent=this.core.getLocaleText("hideColumn"),c.addEventListener("click",()=>{e&&r.columns.setVisible(e.id,!1),this.close()}),e&&(l.append(d,c),o.appendChild(l));let u=f("div","mach-column-panel-divider");o.appendChild(u);let h=f("div","mach-column-panel-subtitle");if(h.textContent=this.core.getLocaleText("columnVisibility"),o.appendChild(h),!e){let w=document.createElement("input");w.type="search",w.className="mach-column-workbench-search",w.placeholder=this.core.getLocaleText("search"),w.setAttribute("aria-label",this.core.getLocaleText("search")),w.value=this.searchText,w.addEventListener("input",()=>{this.searchText=w.value.trim().toLocaleLowerCase(),this.renderColumnList(p,!0)}),o.appendChild(w)}let p=f("div","mach-column-panel-list");this.renderColumnList(p,!e),o.appendChild(p);let m=f("div","mach-filter-footer"),y=f("button","mach-filter-btn-reset");y.type="button",y.textContent=this.core.getLocaleText("resetAll"),y.addEventListener("click",()=>{r.columns.resetState(),this.close()});let v=f("button","mach-filter-btn-apply");v.type="button",v.textContent=this.core.getLocaleText("autoSizeAll"),v.addEventListener("click",()=>{r.columns.autoSizeAll(),this.close()}),m.append(y,v),o.appendChild(m),A(o,this.core.skeleton.root),document.body.appendChild(o),this.panel=o,this.openColId=e?e.id:"__standalone__";let g=t.getBoundingClientRect(),b=o.getBoundingClientRect(),T=x(g.left,8,window.innerWidth-b.width-8),E=g.bottom+4;E+b.height>window.innerHeight-8&&(E=Math.max(8,g.top-b.height-4)),o.style.left=`${T}px`,o.style.top=`${E}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();this.destroySelectControls(e),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=f("div",t?"mach-column-workbench-item":"mach-filter-set-item"),a=f("label","mach-column-workbench-label"),l=document.createElement("input");l.type="checkbox",l.checked=!i.hide,l.disabled=i.hasCheckbox,l.addEventListener("change",()=>{r.columns.setVisible(i.id,l.checked),this.rebuildListStates()});let d=f("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=U({ariaLabel:`${d.textContent} ${this.core.getLocaleText("clearPin")}`,options:[{value:"",label:this.core.getLocaleText("clearPin")},{value:"left",label:this.core.getLocaleText("pinLeft")},{value:"right",label:this.core.getLocaleText("pinRight")}],value:i.pinned??"",classNames:{root:"mach-column-workbench-pin-control",native:"mach-column-workbench-pin"},themeSource:this.core.skeleton.root,onChange:m=>{r.columns.setPinned(i.id,m==="left"||m==="right"?m:null),this.rebuildListStates()}});c.trigger.disabled=!i.movable,c.native.disabled=!i.movable,this.selectControls.add(c),s.appendChild(c.el);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,y,v)=>{let g=f("button","mach-column-workbench-move");return g.type="button",g.textContent=m,g.disabled=v||i.hide||!i.movable,g.addEventListener("click",()=>{r.columns.move(i.id,y),this.rebuildListStates()}),g};s.append(p("\u2191",h-1,h<=0),p("\u2193",h+1,h<0||h>=u.length-1))}e.appendChild(s)}}containsSelectTarget(e){return[...this.selectControls].some(t=>t.contains(e))}destroySelectControls(e){for(let t of[...this.selectControls])e&&!e.contains(t.el)||(t.destroy(),this.selectControls.delete(t))}};var it=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()}}resolveAnchor(e){if(e){let i=this.core.rowModel.getDisplayedRow(e.rowIndex),s=this.core.columnModel.getColumn(e.colId);return i&&s?{node:i,column:s}:null}let t=this.core.bodyRenderer.getNormalizedRangeOrFocus();if(!t)return null;let r=this.core.rowModel.getDisplayedRow(t.r1),o=this.core.columnModel.getOrderedVisible()[t.c1];return r&&o?{node:r,column:o}:null}readCustomItems(e,t){let r=this.core.options.getContextMenuItems;if(!r)return null;try{return r({data:e.data,node:e,api:this.core.getApi(),colId:t.id,value:this.core.getCellValue(e,t),rowIndex:e.rowIndex})??null}catch(o){return this.core.reportError(o,"getContextMenuItems",{colId:t.id,rowId:e.id}),null}}populateCustomPanel(e,t,r,o){let i=!1;for(let s of t){if(s.separator){e.appendChild(f("div","mach-context-menu-separator"));continue}let a=f("button","mach-context-menu-item");a.type="button",a.textContent=s.label??"",s.danger&&a.classList.add("mach-context-menu-item--danger"),a.disabled=s.disabled===!0,a.disabled||(i=!0,a.addEventListener("click",()=>this.runCustomItem(s,r,o))),e.appendChild(a)}return i}runCustomItem(e,t,r){this.close();try{e.action?.()}catch(o){this.core.reportError(o,"contextMenu.action",{colId:r.id,rowId:t.id})}}appendDefaultButton(e,t,r){let o=f("button","mach-context-menu-item");o.type="button",o.textContent=t,o.addEventListener("click",r),e.appendChild(o)}populateDefaultPanel(e){let t=this.core;this.appendDefaultButton(e,t.getLocaleText("menuCopy"),()=>{t.copyActiveRange(),this.close()}),!t.options.suppressClipboard&&(this.appendDefaultButton(e,t.getLocaleText("menuPaste"),()=>{t.pasteFromSystemClipboard(),this.close()}),this.appendDefaultButton(e,t.getLocaleText("menuClearContents"),()=>{let r=t.bodyRenderer.getNormalizedRangeOrFocus();r&&t.clearRangeValues(r),this.close()}))}open(e,t,r){this.close();let o=this.resolveAnchor(r);if(!o)return;let i=f("div","mach-context-menu");if(i.setAttribute("role","menu"),this.core.options.getContextMenuItems){let s=this.readCustomItems(o.node,o.column);if(!s||!this.populateCustomPanel(i,s,o.node,o.column))return;this.attach(i,e,t);return}this.populateDefaultPanel(i),this.attach(i,e,t)}attach(e,t,r){A(e,this.core.skeleton.root),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 st=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=this.resolveCell(r);if(!o||r.classList.contains("mach-cell--editing"))return;let i=this.createParams(o.node,o.column,o.index);this.hasTooltipValue(i,o.column)&&(this.showTimer=window.setTimeout(()=>{this.core.isDestroyed()||this.currentCell!==r||this.showPanel(r,i)},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)}resolveCell(e){let t=e.dataset.colId??"",r=Number(e.closest(".mach-row")?.dataset.index);if(Number.isNaN(r))return null;let o=this.core.rowModel.getDisplayedRow(r),i=t?this.core.columnModel.getColumn(t):void 0;return!o||!i||o.isDetail||o.isGroup?null:{node:o,column:i,index:r}}createParams(e,t,r){return{data:e.data,node:e,api:this.core.getApi(),colId:t.id,value:this.core.getCellValue(e,t),formatted:K(this.core,e,t),rowIndex:r}}hasTooltipValue(e,t){let r=t.colDef.tooltipValueGetter;if(!r)return!!e.formatted;try{r({...e,colDef:t.colDef,column:t})}catch(o){this.core.reportError(o,"tooltipValueGetter",{colId:t.id,rowId:e.node.id})}return!0}showPanel(e,t){this.removePanel();let r=this.core.options.tooltipComponent;if(!r)return;let o=f("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),A(o,this.core.skeleton.root),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 at=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 lt=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 dt=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 er=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}}},ct=new er;function Zt(){return typeof performance<"u"&&typeof performance.now=="function"?performance.now():Date.now()}var ut=class{constructor(){this.samples=[];this.layoutSamples=[];this.modelSamples=[];this.releaseLongTaskHub=ct.acquire(),this.longTaskBaseline=ct.snapshot()}start(){return Zt()}recordRender(e,t,r){this.samples.push({duration:Math.max(0,Zt()-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=ct.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=ct.snapshot()}destroy(){this.releaseLongTaskHub?.(),this.releaseLongTaskHub=null}pushDuration(e,t){e.push(Math.max(0,Zt()-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 ro(n,e){if(!(n==null||e==null))return[...new Set([...n,...e])]}function Ii(n,e){return n===!0||e===!0?!0:n?e?{rowIds:ro(n.rowIds,e.rowIds),rowIndexes:n.rowIndexes==null||e.rowIndexes==null?void 0:[...new Set([...n.rowIndexes,...e.rowIndexes])],columns:ro(n.columns,e.columns),force:n.force===!0||e.force===!0,includePinned:n.includePinned===!0||e.includePinned===!0}:n:e}function Li(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:Ii(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 ht=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=Li(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 q=["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 te(n){return(n==null?"":String(n)).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function pt(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 de={columnDefs:{kind:"array",update:"columnDefs"},rowData:{kind:"array",update:"rowData"},defaultColDef:{kind:"object",update:"options"},columnTypes:{kind:"object",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"},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"},persistence:{kind:"boolean-object",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"}},ft=Object.freeze(Object.keys(de)),cl=Object.freeze(ft.filter(n=>de[n].update==="options"));var Ai=new Set(q.map(n=>`on${n.charAt(0).toUpperCase()}${n.slice(1)}`));function tr(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 oo(n){let e={};for(let[t,r]of Object.entries(n)){if(Ai.has(t)){(r==null||typeof r=="function")&&(e[t]=r);continue}let o=de[t];!o||!tr(r,o.kind)||(e[t]=r)}return e}var so=2e3,Pi=1e5,or=512,Gi=1e4;function rr(n){return Array.isArray(n)?[...new Set(n.slice(0,Pi).filter(e=>typeof e=="string"&&e.length>0&&e.length<=or))]:[]}function no(n,e){return typeof n=="number"&&Number.isFinite(n)&&n>=1?Math.floor(n):e}function io(n){return typeof n=="number"&&Number.isFinite(n)&&n>0?n:void 0}function Fi(n,e){let t=io(e.width),r=io(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 Ni(n,e){typeof e.hide=="boolean"&&(n.hide=e.hide),(e.pinned===null||e.pinned==="left"||e.pinned==="right")&&(n.pinned=e.pinned)}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>or||e.has(r))return null;e.add(r);let o={colId:r};return Ni(o,t),Fi(o,t),o}function Hi(n){if(!Array.isArray(n))return[];let e=[],t=new Set;for(let r of n.slice(0,so)){let o=Oi(r,t);o&&e.push(o)}return e}function Bi(n){if(!Array.isArray(n))return[];let e=[],t=new Set;for(let r of n.slice(0,so)){if(r==null||typeof r!="object")continue;let o=r,i=typeof o.colId=="string"?o.colId.trim():"";!i||i.length>or||t.has(i)||o.direction!=="asc"&&o.direction!=="desc"||(t.add(i),e.push({colId:i,direction:o.direction}))}return e}function z(n){if(n==null||typeof n!="object")return null;let e=n;if(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:Hi(e.columns),sortModel:Bi(e.sortModel),filterModel:ne(e.filterModel),advancedFilterModel:V(e.advancedFilterModel),quickFilterText:typeof e.quickFilterText=="string"&&e.quickFilterText.trim()?e.quickFilterText.slice(0,Gi):null,pagination:{enabled:t.enabled===!0,page:no(t.page,1),pageSize:no(t.pageSize,20)},selectedRowIds:rr(e.selectedRowIds),expandedRowIds:rr(e.expandedRowIds),expandedGroupIds:rr(e.expandedGroupIds)}}function ao(n,e){let t=z(n);if(!t)throw new TypeError("[MachTable] Cannot persist an invalid GridState snapshot.");let r=new Set(e);return{version:2,columns:r.has("columns")?t.columns:[],sortModel:r.has("sort")?t.sortModel:[],filterModel:r.has("filter")?t.filterModel:{},advancedFilterModel:r.has("filter")?t.advancedFilterModel:null,quickFilterText:r.has("filter")?t.quickFilterText:null,pagination:r.has("pagination")?t.pagination:{enabled:!1,page:1,pageSize:20},selectedRowIds:r.has("selection")?t.selectedRowIds:[],expandedRowIds:r.has("expansion")?t.expandedRowIds:[],expandedGroupIds:r.has("expansion")?t.expandedGroupIds:[]}}function Vi(n){try{if(typeof structuredClone=="function")return structuredClone(n)}catch{}return Array.isArray(n)?[...n]:n!=null&&typeof n=="object"?{...n}:n}function co(n,e){let t=e?new Set(e.map(String)):null;return n.filter(r=>!t||t.has(r.rowId)).map(r=>({...r,data:Vi(r.data),cells:r.cells.map(o=>({...o}))}))}function zi(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 lo(n,e){let t=new Map;for(let r of n??[]){let o=zi(r,e);o&&!t.has(o.rowId)&&t.set(o.rowId,o)}return[...t.values()]}function uo(n,e){let t=new Set(n.map(d=>d.rowId)),r=lo(e?.conflicts,t),o=new Set(r.map(d=>d.rowId)),i=lo(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 Wi(n,e){if(e.serverData===void 0)return null;let t=n.rows.getById(e.rowId);if(!t||t.data==null)return null;let r=n.getOption("rowKey");if(r){let s=typeof r=="function"?r(e.serverData):$(e.serverData,r);return String(s)===e.rowId?{data:e.serverData,mergeIntoCurrent:!1}:null}let o=t.data;return o!=null&&e.serverData!=null&&typeof o=="object"&&typeof e.serverData=="object"?{data:o,mergeIntoCurrent:!0}:null}function ho(n,e,t){if(n.isDestroyed())return!1;if(t==="keepLocal")return!0;let r=Wi(n,e);return r?(n.editing.rollback([e.rowId]),r.mergeIntoCurrent&&Object.assign(r.data,e.serverData),n.rows.transact({update:[r.data]}),n.editing.markSaved([e.rowId]),!0):!1}function po(n){return{setData:e=>n.setRowData(e),transact:e=>n.applyTransaction(e),transactAsync:(e,t)=>n.applyTransactionAsync(e,t),flushTransactions:()=>n.flushAsyncTransactions(),getCount:()=>n.getDisplayedRowCount(),getAt:e=>n.getRowNode(e),getById:e=>n.getNodeById(e),forEach:e=>n.forEachNode(e),forEachDisplayed:e=>n.forEachNodeAfterFilterAndSort(e),reorder:(e,t)=>n.reorderRows(e,t),isRemote:()=>n.isInfinite(),reload:e=>n.reload(e),ensureLoaded:(e,t,r)=>n.ensureRowsLoaded(e,t,r),purgeCache:()=>n.purgeDatasourceCache(),getCacheSnapshot:()=>n.getDatasourceCacheSnapshot()}}function fo(n){return{getDefinitions:()=>n.getColumnDefs(),setDefinitions:e=>n.setColumnDefs(e),getState:()=>n.getColumnState(),setState:e=>n.setColumnState(e),resetState:()=>n.resetColumnState(),setVisible:(e,t)=>n.setColumnVisibility(e,t),setPinned:(e,t)=>n.setColumnPinned(e,t),move:(e,t)=>n.moveColumn(e,t),setWidth:(e,t)=>n.setColumnWidth(e,t),fit:e=>n.sizeColumnsToFit(e),autoSize:(e,t)=>n.autoSizeColumn(e,t),autoSizeAll:e=>n.autoSizeAllColumns(e),getWorkbenchItems:()=>n.getColumnWorkbenchItems(),openWorkbench:e=>n.openColumnWorkbench(e),closeWorkbench:()=>n.closeColumnWorkbench()}}function mo(n){return{getRows:()=>n.getSelectedRows(),getVisibleRows:()=>n.getVisibleSelection(),getNodes:()=>n.getSelectedNodes(),getIds:()=>n.getSelectedIds(),setRows:(e,t)=>n.setSelection(e,t),setById:(e,t,r)=>n.selectNodeById(e,t,r),selectAll:e=>n.selectAll(e),clear:()=>n.deselectAll(),getMode:()=>n.getRowSelection(),setMode:e=>n.setRowSelection(e),getRange:()=>n.getRangeSelection(),clearRange:()=>n.clearRangeSelection()}}function go(n){return{startCell:e=>n.startEditingCell(e),startRow:e=>n.startEditingRow(e),isRowActive:e=>n.isRowEditing(e),stop:e=>n.stopEditing(e?.cancel===!0),getChanges:()=>n.getChanges(),getDirtyRowIds:()=>n.getDirtyRowIds(),markSaved:e=>n.markChangesSaved(e),rollback:e=>n.rollbackChanges(e),save:(e,t)=>n.saveEditingChanges(e,t),undo:()=>n.undo(),redo:()=>n.redo(),canUndo:()=>n.canUndo(),canRedo:()=>n.canRedo()}}function yo(n){return{get:()=>n.getState(),apply:(e,t)=>n.applyState(e,t)}}function vo(n){return{get:()=>n.getDiagnostics(),getPerformance:()=>n.getPerformanceSnapshot(),resetPerformance:()=>n.resetPerformanceMetrics()}}function wo(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 bo(n){return{getModel:()=>n.getSortModel(),setModel:e=>n.setSortModel(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 To(n){return{isRowExpanded:e=>n.isRowExpanded(e),setRowExpanded:(e,t)=>n.isRowExpanded(e)===t?!1:(t?n.expandRow(e):n.collapseRow(e),n.isRowExpanded(e)===t),isTreeRowLoading:e=>n.isTreeRowLoading(e),loadTreeChildren:(e,t)=>n.loadTreeChildren(e,t),isGroupExpanded:e=>n.isGroupExpanded(e),setGroupExpanded:(e,t)=>n.isGroupExpanded(e)===t?!1:(n.toggleRowGroup(e),n.isGroupExpanded(e)===t),setAllGroupsExpanded:e=>e?n.expandAllGroups():n.collapseAllGroups(),setAllDetailsExpanded:e=>e?n.expandAllDetails():n.collapseAllDetails()}}function Ro(n){return{getRoot:()=>n.getRootElement(),scrollToRow:(e,t)=>n.scrollToIndex(e,t),refreshCells:e=>n.refreshCells(e),refreshLayout:()=>n.refreshLayout(),flush:()=>n.flushUpdates(),setOverlay:e=>n.setOverlay(e),getPinnedRows:e=>e==="top"?n.getPinnedTopRowData():n.getPinnedBottomRowData(),setPinnedRows:(e,t)=>e==="top"?n.setPinnedTopRowData(t):n.setPinnedBottomRowData(t)}}function So(n){return{exportCsv:e=>n.getDataAsCsv(e),importCsv:(e,t)=>n.importCsv(e,t),print:e=>n.print(e),copyRange:()=>n.copyRangeToClipboard()}}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 Do(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 _i(){return{datasourceChanged:!1,filterChanged:!1,needsCellRefresh:!1,needsColumnRebuild:!1,needsHeaderRebuild:!1,needsPoolRebuild:!1,needsRelayout:!1,needsRowRebuild:!1,needsStateLoad:!1,needsSummaryRefresh:!1,needsFeatureReload:!1}}function R(n,e){return Object.prototype.hasOwnProperty.call(n,e)}function L(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=L(n,t,r);return o===void 0||o===e?void 0:o}var nr=class{constructor(e){this.core=e;this.measureCanvas=null;this.asyncTransactions=[];this.asyncTransactionTimer=null}connectPublicApi(e){if(this.publicApi)throw new Error("[MachTable] Grid API is already connected.");this.publicApi=e}batch(e){let t=this.publicApi;if(!t)throw new Error("[MachTable] Grid API is not connected.");return this.core.batchUpdates(()=>e(t))}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.loadPersistedGridState(),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())}resetColumnState(){this.core.isDestroyed()||(this.core.columnModel.resetColumnState(),this.core.onColumnsStructureChanged())}setColumnVisibility(e,t){this.core.isDestroyed()||(this.core.columnModel.setColumnVisibility(e,t),this.core.onColumnsStructureChanged(),this.core.emit("columnVisibilityChanged",{colId:e,visible:t}))}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())}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(K(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)}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.resolveRowId,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 saveEditingChanges(e,t){let r=co(this.core.changeTracker.getChanges(),t);if(r.length===0)return{submitted:[],saved:[],failures:[],conflicts:[]};let o=uo(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()}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(!0))}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?Do(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():Do(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=We(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(le(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);J(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>${te(d.colDef.headerName??d.colDef.field??d.id)}</th>`).join("")}</tr>`:"",a=o.map(d=>`<tr>${r.map(c=>{let u=K(this.core,d,c);return`<td>${te(u)}</td>`}).join("")}</tr>`).join(""),l=`<!doctype html><html><head><meta charset="utf-8"><title>${te(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>${te(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){return this.core.editingService.stopAsync(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})}getOption(e){return this.core.options[e]}updateOptions(e){this.core.isDestroyed()||(this.core.checkWarnings(e),e=oo(e),Object.keys(e).length!==0&&this.core.batchUpdates(()=>{let t=_i(),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;R(e,"columnDefs")&&e.columnDefs!==r.columnDefs&&(r.columnDefs=Array.isArray(e.columnDefs)?e.columnDefs:[],t.needsColumnRebuild=!0,t.needsRowRebuild=!0),R(e,"rowData")&&(r.rowData=Array.isArray(e.rowData)?e.rowData:[],t.needsRowRebuild=!0),R(e,"initialState")&&e.initialState&&(r.initialState=e.initialState,t.stateToApply=e.initialState),this.updateEventHandlers(e)}updateEventHandlers(e){for(let t of q){let r=`on${t.charAt(0).toUpperCase()}${t.slice(1)}`;R(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),R(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=L(e.asyncTransactionWaitMillis,0,!0);i!==void 0&&(r.asyncTransactionWaitMillis=i),this.updateDynamicRowHeight(e,t),this.updateRangeAndFeedbackOptions(e)}updateDynamicRowHeight(e,t){if(!R(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()),R(e,"tooltipComponent")&&(t.tooltipComponent=e.tooltipComponent);let r=L(e.tooltipShowDelay,0);r!==void 0&&(t.tooltipShowDelay=r),e.flashCells!=null&&(t.flashCells=e.flashCells),R(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=L(e.page,1,!0),o=L(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),R(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||!R(fe,r)||r===this.core.options.size)return;let o=fe[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;R(e,"ariaLabel")&&(t.ariaLabel=e.ariaLabel??"MachTable data grid",r=!0),R(e,"ariaLabelledBy")&&(t.ariaLabelledBy=e.ariaLabelledBy??"",r=!0),R(e,"ariaDescribedBy")&&(t.ariaDescribedBy=e.ariaDescribedBy??"",r=!0),r&&this.core.skeleton.applyAriaLabels(t)}updateOverlayOptions(e){let t=this.core.options;R(e,"overlayNoRowsTemplate")&&(t.overlayNoRowsTemplate=e.overlayNoRowsTemplate??""),R(e,"overlayLoadingTemplate")&&(t.overlayLoadingTemplate=e.overlayLoadingTemplate??""),R(e,"overlayErrorTemplate")&&(t.overlayErrorTemplate=e.overlayErrorTemplate??""),e.allowUnsafeOverlayHtml!=null&&(t.allowUnsafeOverlayHtml=e.allowUnsafeOverlayHtml),R(e,"className")&&(t.className=e.className??"",this.core.skeleton.setCustomClass(t.className)),e.loading!=null&&(t.loading=e.loading),R(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),R(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={...Bt,...e.defaultColDef},t.needsColumnRebuild=!0),R(e,"columnTypes")&&e.columnTypes!==r.columnTypes&&(r.columnTypes=e.columnTypes??{},t.needsColumnRebuild=!0),R(e,"rowKey")){r.rowKey=e.rowKey;let o=e.rowKey;r.resolveRowId=o?({data:i})=>Vt(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),R(e,"isTreeRowExpandable")&&(r.isTreeRowExpandable=e.isTreeRowExpandable,t.needsCellRefresh=!0),R(e,"loadTreeChildren")&&(r.loadTreeChildren=e.loadTreeChildren,t.needsCellRefresh=!0)}updateExtensionOptions(e,t){let r=this.core.options;R(e,"aggFuncs")&&(r.aggFuncs=e.aggFuncs,t.needsRowRebuild=!0),R(e,"components")&&(r.components=e.components,t.needsCellRefresh=!0),R(e,"actionPolicy")&&(r.actionPolicy=e.actionPolicy,t.needsCellRefresh=!0),R(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;R(e,"dataProcessor")&&e.dataProcessor!==r.dataProcessor&&(r.dataProcessor?.destroy?.(),r.dataProcessor=e.dataProcessor,t.needsRowRebuild=!0);let o=L(e.dataProcessorMinRows,1,!0);o!==void 0&&o!==r.dataProcessorMinRows&&(r.dataProcessorMinRows=o,t.needsRowRebuild=!0)}updatePersistenceOptions(e,t){let r=this.core.options;if(!R(e,"persistence"))return;let o=e.persistence;!o||typeof o.key!="string"||!o.key.trim()?r.persistence=null:r.persistence={key:o.key.trim(),debounceMs:L(o.debounceMs,0,!0)??160,...o.sections?{sections:[...new Set(o.sections)]}:{},...o.store?{store:o.store}:{}},t.needsStateLoad=!0}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=L(e.blockSize,1,!0),i=L(e.infiniteBufferRows,0,!0),s=L(e.maxBlocksInCache,1,!0),a=L(e.datasourceMaxConcurrentRequests,1,!0),l=L(e.blockPrefetch,0,!0),d=L(e.datasourceRetryCount,0,!0),c=L(e.datasourceRetryDelay,0,!0),u=L(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(R(e,"datasourceMode")){let o=e.datasourceMode==="block"?"block":"sequential";o!==r.datasourceMode&&(r.datasourceMode=o,t.datasourceChanged=!0)}if(R(e,"datasourceRowCount")){let o=e.datasourceRowCount==null?null:L(e.datasourceRowCount,0,!0)??null;o!==r.datasourceRowCount&&(r.datasourceRowCount=o,t.datasourceChanged=!0)}}updateDatasourceReference(e,t){let r=this.core.options;R(e,"datasource")&&e.datasource!==r.datasource&&(r.datasource=e.datasource,r.paginationEnabled=e.datasource==null&&r.paginationEnabled,t.datasourceChanged=!0,this.core.paginationBar.rebuild()),R(e,"detailRowRenderer")&&(r.detailRowRenderer=e.detailRowRenderer,t.needsCellRefresh=!0),R(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.loadPersistedGridState(),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 Ut({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 Ut({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:K(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=z(e);if(!r){this.core.reportError(new TypeError("[MachTable] GridState must use the current version 2 schema."),"gridState.apply");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??[])}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"){let t=this.core.options.overlayLoadingTemplate||this.core.buildDefaultLoadingState();this.core.skeleton.showOverlay("loading",t,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()}on(e,t){return this.core.eventBus.on(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()}};function Eo(n){let e=new nr(n),t,r,o,i,s,a,l,d,c,u,h,p,m={get rows(){return t??(t=Object.freeze(po(e)))},get columns(){return r??(r=Object.freeze(fo(e)))},get selection(){return o??(o=Object.freeze(mo(e)))},get editing(){return i??(i=Object.freeze(go(e)))},get filtering(){return s??(s=Object.freeze(wo(e)))},get sorting(){return a??(a=Object.freeze(bo(e)))},get pagination(){return l??(l=Object.freeze(Co(e)))},get hierarchy(){return d??(d=Object.freeze(To(e)))},get view(){return c??(c=Object.freeze(Ro(e)))},get state(){return u??(u=Object.freeze(yo(e)))},get io(){return h??(h=Object.freeze(So(e)))},get diagnostics(){return p??(p=Object.freeze(vo(e)))},batch:y=>e.batch(y),whenReady:()=>e.whenReady(),getOption:y=>e.getOption(y),updateOptions:y=>e.updateOptions(y),on:(y,v)=>e.on(y,v),destroy:()=>e.destroy(),isDestroyed:()=>e.isDestroyed()};return e.connectPublicApi(m),Object.freeze(m)}var Ki=["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.resizeRaf=0;this.observedWidth=-1;this.observedHeight=-1;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=f("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=f("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=f("div",`mach-pane mach-pane--${o} mach-header-pane`),s=f("div","mach-header-rows");if(o==="center"){let a=f("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=f("div","mach-body"),this.pinnedTopEl=f("div","mach-pinned-rows mach-pinned-rows--top"),this.pinnedTopEl.style.display="none",this.pinnedBottomEl=f("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=f("div",`mach-pane mach-pane--${o} mach-body-pane`),s=f("div",`mach-body-viewport${o==="center"?" mach-body-viewport--scroll":""}`),a=f("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=f("div","mach-overlay"),this.overlayWrapper.style.display="none",this.overlayWrapper.setAttribute("role","status"),this.overlayWrapper.setAttribute("aria-live","polite"),this.overlayContent=f("div","mach-overlay-content"),this.overlayWrapper.appendChild(this.overlayContent),this.infiniteLoadingEl=f("div","mach-infinite-loading"),this.infiniteLoadingEl.style.display="none",this.infiniteLoadingEl.appendChild(f("div","mach-spinner")),this.infiniteLoadingText=f("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(o=>{let i=o[o.length-1]?.contentRect;if(!i)return;let s=Math.round(i.width),a=Math.round(i.height);s===this.observedWidth&&a===this.observedHeight||(this.observedWidth=s,this.observedHeight=a,!this.resizeRaf&&(this.resizeRaf=requestAnimationFrame(()=>{this.resizeRaf=0,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=f("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 Ki)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))}resolveOverlayContent(e){try{return typeof e=="function"?e():e}catch(t){return this.core.reportError(t,"overlayTemplate"),""}}renderOverlayContent(e,t,r){if(typeof t=="object"&&t!=null&&"el"in t){this.overlayContent.appendChild(t.el),this.overlayCleanup=t.destroy??null;return}if(t instanceof HTMLElement){this.overlayContent.appendChild(t);return}if(t){r?this.overlayContent.innerHTML=t:this.overlayContent.textContent=t;return}if(e!=="loading")return;let o=f("div","mach-spinner");o.setAttribute("aria-label","loading"),this.overlayContent.appendChild(o)}showOverlay(e,t,r=!1){this.currentOverlay===e&&this.currentOverlayContent===t&&this.currentOverlayAllowsHtml===r||(this.currentOverlay=e,this.currentOverlayContent=t,this.currentOverlayAllowsHtml=r,this.cleanupOverlayContent(),this.overlayContent.replaceChildren(),this.renderOverlayContent(e,this.resolveOverlayContent(t),r),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.resizeRaf&&cancelAnimationFrame(this.resizeRaf),this.resizeRaf=0,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 $i={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=$i[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 xo(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 Ui(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 ce=class{constructor(){this.offsets=new Float64Array(1)}update(e){let t=0,r=this.offsets.length!==e.length+1;for(let i=0;i<e.length;i++)t+=e[i].currentWidth,!r&&this.offsets[i+1]!==t&&(r=!0);if(!r)return!1;let o=new Float64Array(e.length+1);for(let i=0;i<e.length;i++)o[i+1]=o[i]+e[i].currentWidth;return this.offsets=o,!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,xo(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,xo(this.offsets,i)-1),l=Math.min(o,Ui(this.offsets,s));return{first:Math.max(0,a-r),lastExcl:Math.min(o,l+r)}}};var qi=".mach-header-resize, .mach-filter-btn, .mach-menu-btn, .mach-select-all";function ir(n){return n instanceof HTMLElement&&n.closest(qi)!=null}function sr(n){return n==="ArrowLeft"||n==="ArrowRight"}var yt=class{constructor(e){this.core=e;this.leafCells=[];this.groupCells=[];this.paneTrees={left:[],center:[],right:[]};this.columnViewport=new ce;this.centerFirst=0;this.centerLastExcl=Number.MAX_SAFE_INTEGER}build(){this.updateColumnWindowState(),this.core.resizeService.cancelResize();for(let l of this.leafCells){let d=Qt(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 Z){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=f("div","mach-header-cell mach-header-cell--leaf");e.hasCheckbox&&o.classList.add("mach-header-cell--selection"),o.dataset.colId=e.id,o.setAttribute("role","columnheader"),o.style.height=`${t*r}px`,this.applyLeafPresentation(o,e),this.attachHeaderFocus(o,e);let i=this.appendSelectAll(o,e);this.appendHeaderContent(o,e);let s=f("span","mach-sort-indicator");o.appendChild(s);let{filterBtn:a,filterTagEl:l}=this.appendFilterControls(o,e);return this.appendColumnMenu(o,e),this.appendResizeHandle(o,e),this.attachLeafInteractions(o,e),{column:e,el:o,sortEl:s,filterBtn:a,filterTagEl:l,selectAllEl:i}}applyLeafPresentation(e,t){let r=t.colDef;typeof r.headerClass=="string"?e.classList.add(r.headerClass):Array.isArray(r.headerClass)&&e.classList.add(...r.headerClass),r.headerTooltip&&e.setAttribute("title",r.headerTooltip);let o=r.headerAlign??r.align;o==="center"?e.classList.add("mach-header-cell--center"):o==="right"&&e.classList.add("mach-header-cell--right")}attachHeaderFocus(e,t){this.core.options.suppressHeaderFocus||(e.tabIndex=-1,e.addEventListener("mousedown",()=>this.focusHeaderCell(t)),e.addEventListener("keydown",r=>this.onHeaderKeyDown(r,t)))}appendSelectAll(e,t){if(!t.hasCheckbox||this.core.options.rowSelection!=="multiple")return;let r=document.createElement("input");return r.type="checkbox",r.className="mach-select-all",r.setAttribute("aria-label","select all rows"),r.addEventListener("click",o=>o.stopPropagation()),r.addEventListener("change",()=>{r.checked?this.core.selectionService.selectAll(!0):this.core.selectionService.deselectAll()}),e.appendChild(r),r}appendHeaderContent(e,t){let r=t.colDef,o=r.headerComponent,i;if(!o){this.appendHeaderLabel(e,r.headerName??r.field??t.id);return}try{i=o({colDef:r,column:t,api:this.core.getApi()})}catch(s){this.core.reportError(s,"headerComponent",{colId:t.id}),i=null}this.appendHeaderComponentOutput(e,t,i)}appendHeaderComponentOutput(e,t,r){if(typeof r=="string"){this.appendHeaderLabel(e,r);return}if(r instanceof HTMLElement){this.appendCustomHeader(e,r);return}if(r&&typeof r=="object"&&r.el instanceof HTMLElement){this.appendCustomHeader(e,r.el),Jr(e,r.destroy);return}let o=t.colDef;this.appendHeaderLabel(e,o.headerName??o.field??t.id)}appendHeaderLabel(e,t){let r=f("span","mach-header-label");r.textContent=t,e.appendChild(r)}appendCustomHeader(e,t){let r=f("span","mach-header-label mach-header-label--custom");r.appendChild(t),e.appendChild(r)}appendFilterControls(e,t){if(!t.filterable)return{};let r=document.createElement("button");r.type="button",r.className="mach-filter-btn",r.setAttribute("aria-label",`filter ${t.id}`),r.innerHTML=zr,r.addEventListener("click",i=>{i.stopPropagation(),this.core.filterPopup.toggle(t,r)}),e.appendChild(r);let o=f("span","mach-filter-tag");return e.appendChild(o),{filterBtn:r,filterTagEl:o}}appendColumnMenu(e,t){if(!this.core.options.columnMenu||t.hasCheckbox||t.colDef.suppressColumnMenu)return;let r=document.createElement("button");r.type="button",r.className="mach-menu-btn";let i=`${t.colDef.headerName??t.colDef.field??t.id} \xB7 ${this.core.getLocaleText("columnSettings")}`;r.setAttribute("aria-label",i),r.title=i,r.innerHTML=Kr,r.addEventListener("click",s=>{s.stopPropagation(),this.core.columnMenu.toggle(t,r)}),e.appendChild(r)}appendResizeHandle(e,t){if(!this.canResizeColumn(t))return;let r=f("div","mach-header-resize");r.setAttribute("aria-hidden","true"),r.addEventListener("pointerdown",o=>{o.button===0&&(o.preventDefault(),o.stopPropagation(),this.core.resizeService.startResize(o,t))}),r.addEventListener("dblclick",o=>{o.stopPropagation(),this.core.getApi().columns.autoSize(t.id)}),r.addEventListener("click",o=>o.stopPropagation()),e.appendChild(r)}attachLeafInteractions(e,t){e.addEventListener("click",r=>{this.core.columnDragService.didDrag()||ir(r.target)||t.sortable&&this.core.cycleSort(t,r.shiftKey)}),e.addEventListener("pointerdown",r=>{r.button!==0||ir(r.target)||this.core.columnDragService.onPointerDown(r,t)})}createGroupCell(e){let t=f("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=f("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){this.core.isDestroyed()||this.activateHeaderFromKeyboard(e,t)||this.resizeColumnFromKeyboard(e,t)||this.moveColumnFromKeyboard(e,t)||this.focusAdjacentHeader(e,t)||this.focusBoundaryHeader(e)}activateHeaderFromKeyboard(e,t){return e.key!=="Enter"&&e.key!==" "?!1:(ir(e.target)||(e.preventDefault(),t.sortable&&this.core.cycleSort(t,e.shiftKey)),!0)}resizeColumnFromKeyboard(e,t){if(!e.altKey||!sr(e.key))return!1;if(!this.canResizeColumn(t))return!0;let r=e.key==="ArrowRight"?24:-24,o=Math.max(t.colDef.minWidth??40,t.currentWidth+r);return this.core.columnModel.setColumnWidth(t,o),this.core.relayoutColumns(),this.core.commitColumnWidths([t]),e.preventDefault(),!0}moveColumnFromKeyboard(e,t){if(!e.ctrlKey||!sr(e.key))return!1;if(!t.movable)return!0;e.preventDefault();let r=this.core.columnModel.paneOf(t),o=this.core.columnModel.getPaneColumns(r),i=o.indexOf(t),s=e.key==="ArrowRight"?1:-1,a=Math.max(0,Math.min(o.length-1,i+s));return a!==i&&this.core.moveColumn(t.id,a),!0}focusAdjacentHeader(e,t){if(e.altKey||e.ctrlKey||e.metaKey||!sr(e.key))return!1;e.preventDefault();let r=this.core.columnModel.getOrderedVisible(),o=r.indexOf(t);if(o<0)return!0;let i=e.key==="ArrowRight"?1:-1,s=Math.max(0,Math.min(r.length-1,o+i));return this.focusHeaderCell(r[s]),!0}focusBoundaryHeader(e){if(e.key!=="Home"&&e.key!=="End")return!1;e.preventDefault();let t=this.core.columnModel.getOrderedVisible();if(t.length===0)return!0;let r=e.key==="Home"?0:t.length-1;return this.focusHeaderCell(t[r]),!0}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"?Wr:_r)+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=Qt(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.moveRaf=0;this.pendingClientY=null;this.onMove=e=>{let t=this.state;if(t){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")}this.pendingClientY=e.clientY,!this.moveRaf&&(this.moveRaf=requestAnimationFrame(()=>{this.moveRaf=0;let r=this.pendingClientY;this.pendingClientY=null,r!==null&&this.updateIndicator(r)}))}};this.onUp=e=>{e.type!=="pointercancel"&&this.state?.active&&this.updateIndicator(e.clientY);let t=this.takeState();if(e.type==="pointercancel"||!t||!t.active||t.targetIndex<0)return;let r=t.node.rowIndex,o=Math.max(0,Math.min(t.targetIndex,this.core.rowModel.getDisplayedRowCount()));r===o||r===o-1||(this.core.emit("rowDragEnd",{rowNode:t.node,fromIndex:r,toIndex:o}),this.core.options.applyRowDrag&&!this.core.rowModel.isTree&&this.core.rowModel.reorderRowsByDisplayed(r,o>r?o-1:o))}}start(e,t){this.destroy();let r=f("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,viewportTop:this.core.skeleton.bodyViewports.center.getBoundingClientRect().top},window.addEventListener("pointermove",this.onMove),window.addEventListener("pointerup",this.onUp),window.addEventListener("pointercancel",this.onUp)}updateIndicator(e){let t=this.state;if(!t?.active)return;let r=this.core.skeleton.bodyViewports.center,o=e-t.viewportTop+r.scrollTop,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.transform=`translate3d(0, ${d}px, 0)`}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.moveRaf&&cancelAnimationFrame(this.moveRaf),this.moveRaf=0,this.pendingClientY=null,this.core.skeleton.root.classList.remove("mach-root--row-dragging")}destroy(){this.takeState()}};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 F=["left","center","right"];function Mo(n){return!!n&&!n.hasCheckbox&&!n.isDetailToggle&&!n.colDef.rowDrag}function ko(n){let e=n.length>1&&n.every(o=>typeof o=="number"&&!Number.isNaN(o)),t=e?(n[n.length-1]-n[0])/(n.length-1):0,r=!e||n.every(o=>Number.isInteger(o));return{difference:t,integer:r,numeric:e,values:n}}function Io(n,e){let t=n.values.length;if(t===1)return n.values[0];if(!n.numeric)return n.values[e%t];let r=n.values[t-1]+n.difference*(e-t+1);return n.integer?Math.round(r):Math.round(r*1e6)/1e6}var Ct=class{constructor(e){this.core=e;this.pool=[];this.poolSize=0;this.first=0;this.lastExcl=-1;this.rafId=0;this.lastScrollLeft=0;this.lastScrollTop=0;this.hoverIndex=-1;this.rowSizes=new bt;this.columnViewport=new ce;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=e.target,r=this.resolveEventTarget(e);if(r&&!t.closest(".mach-cell-editor-shell, .mach-row-editor-shell")&&!(e.detail>1&&this.core.editingService.isCellEditing())){if(this.core.editingService.isCellEditing()){let o=r.cellEl?.dataset.colId??"";if(this.core.editingService.isEditing(r.index,o))return;this.core.editingService.stopAsync(!1).then(i=>{if(!i||this.core.isDestroyed())return;this.handleBodyClick(e,t,r);let s=o?this.core.columnModel.getColumn(o):void 0;s&&!this.core.editingService.isCellEditing()&&this.core.editingService.isEditable(r.node,s)&&this.core.editingService.start(r.index,s)});return}this.handleBodyClick(e,t,r)}};this.onBodyDblClick=e=>{if(this.core.isDestroyed()||e.target.closest(".mach-cell-editor-shell, .mach-row-editor-shell"))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.shouldIgnoreRangeMouseDown(e)&&this.core.options.enableRangeSelection&&e.button===0){let t=this.resolveEventTarget(e);if(t&&!t.node.isDetail&&!t.node.isGroup&&t.cellEl&&!t.cellEl.classList.contains("mach-cell--selection")){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(){let e=this.core.skeleton.bodyViewports.center;this.lastScrollLeft=e.scrollLeft,this.lastScrollTop=e.scrollTop,e.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 F)for(let i of r.cells[o]??[])r.index>=0&&this.core.editingService.releaseCell(r.index,i.dataset.colId??"",i),I(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(e=!1){if(this.core.isDestroyed())return;let t=this.core.skeleton,r=t.bodyViewports.center,o=r.scrollLeft,i=r.scrollTop,s=e||o!==this.lastScrollLeft,a=e||i!==this.lastScrollTop;!s&&!a||(this.lastScrollLeft=o,this.lastScrollTop=i,s&&(t.headerRowContainers.center.style.transform=`translate3d(${-o}px, 0, 0)`,this.core.headerRenderer.updateColumnWindow(),this.core.pinnedRowsRenderer.onScrollLeft(o)),a&&(t.rowContainers.left.style.transform=`translate3d(0, ${-i}px, 0)`,t.rowContainers.right.style.transform=`translate3d(0, ${-i}px, 0)`),this.core.tooltipService.hide(),this.updateRange(!1,s),a&&this.core.rowModel.checkInfiniteScroll(this.lastExcl-1))}paneWidths(){let e={left:0,center:0,right:0};for(let t of F)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=this.core.rowModel.getDisplayedRows(),o=this.resolveRowLayout(r.length);this.syncRowSizeIndex(r,o);let i=this.totalRowLayoutHeight(o);this.applyRowContainerDimensions(t,i),this.applyDomLayoutHeight(i),e.root.setAttribute("aria-rowcount",String(o.rowCount+e.getHeaderRowCount()))}resolveRowLayout(e){let t=this.core.rowModel.getDisplayTotalCount(),r=this.core.options.rowHeight,o=this.core.options.masterDetail?[]:this.collectAutoHeightColumns(),i=this.core.options.datasourceMode!=="block"&&(this.core.options.masterDetail||this.core.options.getRowHeight!=null||o.length>0),s=i?this.variableRowLayoutSignature(r,o):`fixed|${r}`;return{autoHeightColumns:o,positionedCount:Math.min(t,e),rowCount:t,rowHeight:r,signature:s,variable:i}}variableRowLayoutSignature(e,t){let r=t.map(o=>`${o.id}:${o.currentWidth}`).join(",");return`${this.core.rowModel.getDisplayRevision()}|${e}|${this.core.options.detailRowHeight}|${r}`}syncRowSizeIndex(e,t){if(!t.variable){this.resetFixedRowSizes(t);return}if(t.signature!==this.rowLayoutSignature||this.rowSizes.length!==t.positionedCount){let r=e.slice(0,t.positionedCount);this.rowSizes.reset(r,o=>this.resolveRowHeight(o,t.autoHeightColumns)),this.completeRowSizeSync(t);return}if(this.dirtyHeightNodes.size!==0){for(let r of this.dirtyHeightNodes){let o=this.rowSizes.indexOf(r);o>=0&&this.rowSizes.update(o,this.resolveRowHeight(r,t.autoHeightColumns))}this.completeRowSizeSync(t)}}resetFixedRowSizes(e){this.rowSizes.length>0&&this.rowSizes.reset([],()=>e.rowHeight),this.rowLayoutSignature=e.signature,this.dirtyHeightNodes.clear(),this.lastMinRowHeight=e.rowHeight}completeRowSizeSync(e){this.rowLayoutSignature=e.signature,this.dirtyHeightNodes.clear(),this.lastMinRowHeight=this.rowSizes.minimumSize()||e.rowHeight}totalRowLayoutHeight(e){return(e.variable?this.rowSizes.totalSize():e.positionedCount*e.rowHeight)+Math.max(0,e.rowCount-e.positionedCount)*e.rowHeight}applyRowContainerDimensions(e,t){let r=this.core.skeleton,o=r.bodyViewports.center,i=Math.max(0,o.clientWidth-e.left-e.right),s=Math.max(e.center,i);for(let a of F){let l=r.rowContainers[a];l.style.height=`${t}px`,a==="center"&&(l.style.width=`${s}px`)}}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=K(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 y=r.measureText(m).width;if(p>0&&p+y>u?(h++,p=y):p+=y,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=window.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,s=i%2===0?i:i+1;if(this.computeColWindow())for(let l of this.pool)this.reconcilePaneCells(l,"center");s>this.poolSize&&this.growPool(s),this.applyCellLayout(),this.updateRange(!0,!1),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 F){if(this.core.columnModel.getPaneColumns(o).length===0)continue;let s=f("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=f("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=f("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),I(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 F){for(let r of e.cells[t]??[])I(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.hasVariableRowHeights();for(let t of F){let r=this.core.columnModel.getPaneColumns(t),o=this.activePaneColumns(t),i=this.paneColumnLefts(t,o,r);this.layoutPoolPane(t,o,i,e)}this.applyDetailRowHeight()}hasVariableRowHeights(){return this.core.options.masterDetail||this.core.options.getRowHeight!=null||this.hasAnyAutoHeight}paneColumnLefts(e,t,r){let o=0;e==="center"&&t.length>0&&(this.columnViewport.update(r),o=this.columnViewport.offsetAt(r.indexOf(t[0])));let i=[];for(let s of t)i.push(o),o+=s.currentWidth;return i}layoutPoolPane(e,t,r,o){for(let i of this.pool){let s=i.cells[e],a=i.rows[e];if(!s||!a)continue;o||(a.style.height=`${this.core.options.rowHeight}px`);let l=Math.min(t.length,s.length);for(let d=0;d<l;d++){let c=t[d];s[d].style.width=`${c.currentWidth}px`,s[d].style.left=`${r[d]}px`,s[d].setAttribute("aria-colindex",String(this.core.columnModel.getFlatIndex(c.id)+1))}}}applyDetailRowHeight(){if(!this.core.options.masterDetail)return;let e=`${this.core.options.detailRowHeight}px`;for(let t of this.pool)t.detailRow?.style.setProperty("--mach-detail-h",e)}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,t=!0){let r=this.core.performanceMonitor.start();if(!this.updateRangeInner(e,t))return;let o=Math.max(0,this.lastExcl-this.first),i=this.core.columnModel.getPaneColumns("left").length+this.activePaneColumns("center").length+this.core.columnModel.getPaneColumns("right").length;this.core.performanceMonitor.recordRender(r,o,i)}updateRangeInner(e,t){let r=this.core.skeleton.bodyViewports.center,o=this.core.rowModel.getDisplayedRowCount(),i=this.core.options.rowBuffer,s=t?this.computeColWindow():!1;if(this.reconcileColumnWindow(s),o===0){for(let d of this.pool)this.hideSlot(d);return this.first=0,this.lastExcl=0,!0}if(this.renderAutoHeightRange(o,e))return!0;let{first:a,lastExcl:l}=this.calculateVisibleRange(r,o,i);return!e&&a===this.first&&l===this.lastExcl?s:(this.first=a,this.lastExcl=l,this.hideOutsideRange(a,l),this.renderVirtualRange(a,l,e,s),!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 F){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){this.assignDetailSlot(e,r,t,o,i);return}this.assignMasterSlot(e,r,t,o,i)}assignDetailSlot(e,t,r,o,i){e.kind="detail";for(let a of F){let l=e.rows[a];l&&(l.style.display="none")}let s=e.detailRow;s&&(s.style.display="",s.style.transform=`translateY(${o}px)`,s.style.height=`${i}px`,s.dataset.index=String(r),s.setAttribute("aria-rowindex",String(r+this.core.skeleton.getHeaderRowCount()+1)),this.renderDetailContent(s,t))}assignMasterSlot(e,t,r,o,i){e.kind="master",e.detailRow&&(e.detailRow.style.display="none");let s=this.resolveMasterRowState(t);for(let a of F){let l=e.rows[a];l&&(this.applyMasterRowState(l,t,r,o,i,s),this.renderPaneCells(e,t,a))}this.focusedCell&&this.focusedCell.rowIndex===r&&this.applyFocusClass()}resolveMasterRowState(e){let t=this.core.rowModel.isTree,r=e.isGroup===!0,o=t&&this.core.rowModel.hasChildren(e.id),i=r||o||this.core.options.masterDetail&&this.core.rowModel.isRowExpandable(e),s=r?this.core.rowModel.isGroupExpanded(e.id):this.core.rowModel.isRowExpanded(e.id),a=null;return r?a=(e.groupLevel??0)+1:t&&(a=this.core.rowModel.getTreeDepth(e)+1),{expanded:s,expandable:i,level:a}}applyMasterRowState(e,t,r,o,i,s){e.style.display="",e.style.transform=`translateY(${o}px)`,e.style.height=`${i}px`,e.dataset.index=String(r),e.dataset.id=t.id,e.setAttribute("aria-rowindex",String(r+this.core.skeleton.getHeaderRowCount()+1)),this.applyRowSelectionState(e,t);let a=this.hoverIndex===r&&!this.core.options.suppressRowHoverHighlight;e.classList.toggle("mach-row--hover",a),e.classList.toggle("mach-row--odd",r%2===1),this.applyExpandableRowState(e,s)}applyRowSelectionState(e,t){e.classList.toggle("mach-row--selected",t.selected),e.setAttribute("aria-selected",t.selected?"true":"false")}applyExpandableRowState(e,t){t.expandable?e.setAttribute("aria-expanded",t.expanded?"true":"false"):e.removeAttribute("aria-expanded"),t.level!=null?e.setAttribute("aria-level",String(t.level)):e.removeAttribute("aria-level")}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--,I(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=f("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),Xr(e,a.destroy))}}cleanupDetail(e){let t=Qr(e);if(t)try{t()}catch(r){this.core.reportError(r,"detailRowRenderer.destroy")}e.textContent=""}renderCell(e,t,r){if(t.loading){I(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"){I(this.core,e),this.renderStructuralCell(o,e,t,r);return}Je(this.core,e,t,r),be(this.core,e,t,r),Qe(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":ie(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=f("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=f("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 if(e==="index"){t.textContent=String(this.core.rowModel.getRowSeq(r)+this.core.options.indexOffset);let s=`mach-cell mach-cell--index${o.colDef.align==="right"?" mach-cell--right":o.colDef.align==="center"?" mach-cell--center":""}`;t.className!==s&&(t.className=s),this.applyCellSpanStyle(t,r,o)}else 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 F)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&&!ie(e.colDef,"index"))??null,this.treeColumnCache)}renderTreeCell(e,t,r){let o=this.core.rowModel.isRowExpandable(t),i=this.getNodeDepth(t),s=f("span","mach-tree-indent");s.style.width=`${i*16}px`;let a=f("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=f("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=f("span","mach-tree-toggle-spacer");a.appendChild(d)}let l=f("span","mach-tree-text");l.textContent=we(this.core,t,r,this.core.getCellValue(t,r)),a.appendChild(l),e.replaceChildren(a),be(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){if(r.hasCheckbox){this.renderGroupCheckbox(e,t);return}if(r.isDetailToggle){this.clearGroupCell(e);return}let o=this.core.columnModel.getGroupLabelColumn();if(o&&r.id===o.id){this.renderGroupLabel(e,t);return}this.renderGroupAggregate(e,t,r)||this.clearGroupCell(e)}renderGroupCheckbox(e,t){let r=e.querySelector(".mach-row-checkbox");if(r){let o=this.core.selectionService.getGroupSelectionState(t);r.checked=o.all,r.indeterminate=o.some&&!o.all}e.className!=="mach-cell mach-cell--selection"&&(e.className="mach-cell mach-cell--selection")}renderGroupLabel(e,t){let r=this.core.rowModel.isGroupExpanded(t.id),o=t.groupLevel??0;e.setAttribute("aria-expanded",r?"true":"false"),e.setAttribute("aria-level",String(o+1));let i=f("span","mach-group-label");i.style.paddingLeft=`${o*16}px`;let s=f("span",`mach-detail-toggle${r?" mach-detail-toggle--open":""}`);s.textContent="\u25B6";let a=f("span","mach-group-text"),l=this.core.columnModel.getRowGroupColumns()[o],d=l?.colDef.headerName?`${l.colDef.headerName}: `:"";a.textContent=`${d}${t.groupKey??""}`;let c=f("span","mach-group-count");c.textContent=`(${t.leafNodes?.length??0})`,i.append(s,a,c),e.replaceChildren(i),e.className!=="mach-cell mach-cell--group"&&(e.className="mach-cell mach-cell--group")}renderGroupAggregate(e,t,r){if(!r.colDef.aggFunc||!t.aggValues||!Object.prototype.hasOwnProperty.call(t.aggValues,r.id))return!1;let o=t.aggValues[r.id];return e.textContent=r.colDef.valueFormatter!=null?we(this.core,t,r,o):Xe(o),e.className!=="mach-cell mach-cell--num"&&(e.className="mach-cell mach-cell--num"),!0}clearGroupCell(e){e.textContent="",e.className!=="mach-cell"&&(e.className="mach-cell")}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 F){let a=o.rows[s];a&&this.applyRowSelectionState(a,i),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 F)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&&I(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){let t=e.overlayLoadingTemplate||this.core.buildDefaultLoadingState();this.core.skeleton.showOverlay("loading",t,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=f("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++)this.fillHorizontalRow(l,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()}))}fillHorizontalRow(e,t,r,o,i,s){let a=this.core.rowModel.getDisplayedRow(e);if(!a||a.isDetail||a.isGroup)return;let l=[];for(let c=t;c<=r;c++){let u=i[c];l.push(u?this.core.getCellValue(a,u):void 0)}let d=ko(l);for(let c=r+1;c<=o;c++){let u=i[c];if(!Mo(u)||!this.core.editingService.isEditable(a,u))continue;let h=Io(d,c-t),p=this.core.getCellValue(a,u);this.core.setCellValue(a,u,h,p)&&s.add(e)}}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];Mo(d)&&this.fillColumnDown(d,e,t,i,a)}}fillColumnDown(e,t,r,o,i){let s=this.verticalSourceValues(e,t,r);if(s.length===1&&s[0]===void 0)return;let a=ko(s);for(let l=r+1;l<=o;l++){let d=this.core.rowModel.getDisplayedRow(l);if(!d||d.isDetail||d.isGroup||!this.core.editingService.isEditable(d,e))continue;let c=Io(a,l-t),u=this.core.getCellValue(d,e);this.core.setCellValue(d,e,c,u)&&i.add(l)}}verticalSourceValues(e,t,r){let o=[];for(let i=t;i<=r;i++){let s=this.core.rowModel.getDisplayedRow(i);o.push(s?this.core.getCellValue(s,e):void 0)}return o}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 F)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}}handleBodyClick(e,t,r){let{node:o,index:i,cellEl:s}=r;if(this.handleGroupRowClick(t,o,s)||this.handleTreeToggleClick(t,o,s))return;let a=s?.dataset.colId??"",l=a?this.core.columnModel.getColumn(a):void 0;this.handleDetailToggleClick(o,l)||o.isDetail||this.handleSelectionCheckboxClick(t,o,i,e)||!s||!l||(this.focusGridRoot(),this.core.options.suppressCellFocus||this.setFocusedCell(i,a),this.core.selectionService.onRowClick(o,e,!1),this.emitCellClick(e,o,i,l),this.maybeStartSingleClickEdit(o,i,l))}handleGroupRowClick(e,t,r){if(!t.isGroup)return!1;if(this.focusGridRoot(),e.closest(".mach-row-checkbox")){let i=this.core.selectionService.getGroupSelectionState(t).all;return this.core.selectionService.setGroupSelected(t,!i),!0}let o=this.core.columnModel.getGroupLabelColumn();return(!o||!r||r.dataset.colId===o.id)&&this.core.rowModel.toggleGroup(t.id),!0}handleDetailToggleClick(e,t){return!t?.isDetailToggle||e.isDetail?!1:(this.focusGridRoot(),this.core.toggleDetail(e.id),!0)}handleSelectionCheckboxClick(e,t,r,o){let i=e.closest(".mach-cell--selection");return i?(this.focusGridRoot(),this.core.options.suppressCellFocus||this.setFocusedCell(r,i.dataset.colId??""),this.clearRangeSelection(),this.core.selectionService.onRowClick(t,o,!0),!0):!1}emitCellClick(e,t,r,o){let i=this.core.getCellValue(t,o),s=this.core.emit("cellClicked",{event:e,rowNode:t,rowIndex:r,column:o,colDef:o.colDef,value:i});o.colDef.onCellClick?.(s),this.core.emit("rowClicked",{event:e,rowNode:t,rowIndex:r})}maybeStartSingleClickEdit(e,t,r){(this.core.options.singleClickEdit||r.colDef.singleClickEdit===!0)&&this.core.editingService.isEditable(e,r)&&this.core.editingService.start(t,r)}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)}shouldIgnoreRangeMouseDown(e){return!!(e.target.closest(".mach-cell-editor-shell, .mach-row-editor-shell")||this.core.editingService.isCellEditing())}};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=f("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=f("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={...D,...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=f("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=H(o.totalRowsLabel,r.length):u.textContent=""})}}destroy(){this.footerEl?.remove(),this.footerEl=null}};var Rt=class{constructor(e){this.core=e;this.barEl=null;this.totalEl=null;this.pageEl=null;this.sizeSelect=null;this.sizeControl=null;this.firstBtn=null;this.prevBtn=null;this.nextBtn=null;this.lastBtn=null;this.offs=[]}init(){this.barEl=f("div","mach-pagination"),this.barEl.style.display="none",this.barEl.setAttribute("role","navigation");let e=(t,r,o)=>{let i=f("button",`mach-pagination-btn ${t}`);return i.type="button",i.title=r,i.setAttribute("aria-label",r),i.textContent=o,i};this.totalEl=f("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=f("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.sizeControl=U({ariaLabel:"page size",options:[],classNames:{root:"mach-pagination-size-control",native:"mach-pagination-size"},themeSource:this.core.skeleton.root,onChange:t=>{let r=Number(t);Number.isNaN(r)||this.core.rowModel.setPageSize(r)}}),this.sizeSelect=this.sizeControl.native,this.buildSizeOptions(),this.barEl.appendChild(this.sizeControl.el)),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.sizeControl?.setOptions(e.map(r=>({value:String(r),label:H(this.t("perPage"),r)})),String(t))}t(e){return this.core.options.locale?.[e]??D[e]}rebuild(){this.barEl&&(this.sizeSelect&&this.core.options.paginationShowSizeSelector&&this.buildSizeOptions(),this.refresh())}setText(e,t){e&&e.textContent!==t&&(e.textContent=t)}refreshNavigation(e,t){let r=e<=1,o=e>=t;this.firstBtn&&(this.firstBtn.disabled=r),this.prevBtn&&(this.prevBtn.disabled=r),this.nextBtn&&(this.nextBtn.disabled=o),this.lastBtn&&(this.lastBtn.disabled=o)}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();this.totalEl&&this.core.options.paginationShowTotal&&this.setText(this.totalEl,H(this.t("paginationTotal"),r)),this.setText(this.pageEl,tt(this.t("paginationPage"),i,s)),this.refreshNavigation(i,s),this.sizeSelect&&Number(this.sizeSelect.value)!==this.core.options.paginationPageSize&&this.sizeControl?.setValue(String(this.core.options.paginationPageSize))}destroy(){for(let e of this.offs)e();this.offs=[],this.sizeControl?.destroy(),this.sizeControl=null,this.sizeSelect=null,this.barEl?.remove(),this.barEl=null}};var re=["left","center","right"],St=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:f("div"),center:f("div"),right:f("div")},centerViewport:f("div","mach-pinned-viewport"),rowWrappers:{left:[],center:[],right:[]},cells:[],data:[]};for(let r of re)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 re)for(let a of i[s])I(this.core,a);for(let i of re){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 re){let c=f("div","mach-pinned-row");c.style.height=`${r}px`,c.setAttribute("role","row"),l[d]=[];for(let u of o.getPaneColumns(d)){let h=f("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),be(this.core,h,a,u),Qe(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 re){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 re){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 re)for(let o of t[r])I(this.core,o);this.top=null,this.bottom=null}};var Dt=class{constructor(e){this.core=e;this.barEl=null;this.items={};this.offs=[]}init(){this.barEl=f("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=f("span",`mach-statusbar-item mach-statusbar-item--${t}`);this.barEl.appendChild(r),this.items[t]=r}this.refresh()}text(e,t,r){let o=e[t]??D[t];if(r===void 0)return o;let i=typeof r=="number"?r:parseFloat(String(r))||0;return H(o,i)}updateItem(e,t){let r=this.items[e];r&&r.textContent!==t&&(r.textContent=t)}rowCountText(e){let t=this.core.rowModel,r=t.getDisplayTotalCount(),o=t.paginationActive?t.getTotalRowCount():t.getDisplayedRowCount(),i=H(this.text(e,"totalRowsLabel"),o);return t.isInfinite&&r>o?`${i} / ${r}`:i}rangeAggregateText(e){let t=this.core.bodyRenderer.normalizedRange();if(!t)return"";let r=this.core.columnModel.getOrderedVisible(),o=0,i=0;for(let l=t.r1;l<=t.r2;l++){let d=this.core.rowModel.getDisplayedRow(l);if(!(!d||d.isDetail||d.isGroup))for(let c=t.c1;c<=t.c2;c++){let u=r[c];if(!u)continue;let h=this.core.getCellValue(d,u);typeof h!="number"||Number.isNaN(h)||(o+=h,i++)}}if(i===0)return"";let s=Math.round(o/i*100)/100,a=Number.isInteger(o)?String(o):String(Math.round(o*100)/100);return`${this.text(e,"statusSum",a)} \xB7 ${this.text(e,"statusAvg",String(s))} \xB7 ${this.text(e,"statusCount",String(i))}`}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={...D,...e.locale};if(this.items.rowCount&&this.updateItem("rowCount",this.rowCountText(t)),this.items.selectedRowCount){let r=this.core.selectionService.getSelectedNodes().length;this.updateItem("selectedRowCount",H(this.text(t,"statusSelected"),r))}this.items.rangeAggregate&&this.updateItem("rangeAggregate",this.rangeAggregateText(t))}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 Lo(n){return typeof TextEncoder>"u"?n.length*2:new TextEncoder().encode(n).byteLength}function lr(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??ar())?.getItem(r(i));if(!s)return null;if(Lo(s)>t)throw new RangeError(`[MachTable] Stored grid state for "${i}" exceeds ${t} bytes.`);let a=JSON.parse(s);if(a?.schemaVersion!==2)throw new TypeError(`[MachTable] Stored grid state for "${i}" uses an unsupported schema.`);let l=z(a.state);if(!l)throw new TypeError(`[MachTable] Stored grid state for "${i}" is invalid.`);return l}catch(s){return o(s,"load",i),null}},save(i,s){try{let a=z(s);if(!a)throw new TypeError(`[MachTable] Invalid grid state for "${i}".`);let l=JSON.stringify({schemaVersion:2,savedAt:Date.now(),state:a});if(Lo(l)>t)throw new RangeError(`[MachTable] Grid state for "${i}" exceeds ${t} bytes.`);(n.storage??ar())?.setItem(r(i),l)}catch(a){o(a,"save",i)}},clear(i){try{(n.storage??ar())?.removeItem(r(i))}catch(s){o(s,"clear",i)}}}}var dr=lr();function Et(n,e){dr.save(n,e)}function xt(n){return dr.load(n)}function Ao(n){dr.clear(n)}var ji=[[/^(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 ur(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 ji)if(r.test(t))return o;return"neutral"}function hr(n={}){return e=>{if(e.value==null||e.value==="")return"";let t=ur(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 pr(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 fr(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 mr={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 Mt(n,e=14){let t=mr[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 X=null,W=null;function j(n=!1){X?.remove(),X=null,W&&(W.setAttribute("aria-expanded","false"),n&&W.isConnected&&W.focus({preventScroll:!0})),W=null,document.removeEventListener("mousedown",Po,!0),document.removeEventListener("keydown",gr,!0)}function Po(n){X&&!X.contains(n.target)&&!W?.contains(n.target)&&j()}function gr(n){if(!X)return;if(n.key==="Escape"){n.preventDefault(),j(!0);return}let e=[...X.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 Go(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&&mr[n.icon]?t.innerHTML=`${Mt(n.icon,16)}<span>${n.label}</span>`:t.textContent=n.label,t.addEventListener("click",()=>n.pick(t)),t}function Yi(n,e){j();let t=document.createElement("div");t.className="mach-context-menu mach-action-menu",t.setAttribute("role","menu");for(let i of e){let s=Go(i,"mach-context-menu-item");s.setAttribute("role","menuitem"),t.appendChild(s)}A(t,n.closest(".mach-root")),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`,X=t,W=n,n.setAttribute("aria-expanded","true"),document.addEventListener("mousedown",Po,!0),document.addEventListener("keydown",gr,!0),t.querySelector("button:not(:disabled)")?.focus({preventScroll:!0})}function Xi(n,e,t){j();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=Mt("close",16),a.addEventListener("click",()=>j(!0)),i.append(s,a);let l=document.createElement("div");l.className="mach-action-drawer__body";for(let d of t)l.appendChild(Go(d,"mach-action-drawer__item"));o.append(i,l),r.appendChild(o),r.addEventListener("mousedown",d=>{d.target===r&&j(!0)}),A(r,n.closest(".mach-root")),document.body.appendChild(r),X=r,W=n,n.setAttribute("aria-expanded","true"),document.addEventListener("keydown",gr,!0),o.querySelector("button:not(:disabled)")?.focus({preventScroll:!0})}function Y(n,e){if(typeof n=="function")try{return n(e)}catch{return!1}return n===!0}function Fo(n){return n.variant??"default"}function No(n){return n.permission?typeof n.permission=="string"?[n.permission]:n.permission:[]}function yr(n,e,t){return{...n.id?{actionId:n.id}:{},permissions:No(n),...t?{message:t}:{},params:e}}function kt(n,e,t){let r=t.api.getOption("actionPolicy");try{r?.onError?r.onError(n,yr(e,t)):console.error("[mach-table] action handler failed",n)}catch(o){console.error("[mach-table] action error policy failed",o,n)}}function Qi(n,e){if(No(n).length===0)return!0;let r=e.api.getOption("actionPolicy");if(!r?.canAccess)return!0;try{return r.canAccess(yr(n,e))}catch(o){return kt(o,n,e),!1}}function Ji(n,e){return n.filter(t=>{if(!Qi(t,e))return!1;if(!t.show)return!0;try{return t.show(e)}catch{return!1}})}function vr(n,e,t){t.isConnected&&(t.disabled=Y(n.disabled,e)||Y(n.loading,e),t.classList.toggle("mach-action-btn--loading",Y(n.loading,e)))}function Zi(n,e,t,r){Promise.resolve(n).catch(o=>kt(o,e,t)).finally(()=>vr(e,t,r))}function es(n,e,t){try{Zi(n.onClick(e),n,e,t)}catch(r){kt(r,n,e),vr(n,e,t)}}function cr(n,e,t){if(n===!1)return!1;let r=typeof n=="string"?n:e.label??e.title??"Confirm action",o=t.api.getOption("actionPolicy");return o?.confirm?o.confirm(yr(e,t,r)):typeof window>"u"||typeof window.confirm!="function"?!1:window.confirm(r)}function ts(n,e){if(n.confirm==null||n.confirm===!1)return!0;if(typeof n.confirm!="function")return cr(n.confirm,n,e);let t=n.confirm(e);return t instanceof Promise?t.then(r=>cr(r,n,e)):cr(t,n,e)}function rs(n){return(e,t)=>{if(Y(e.disabled,n))return;if(t.disabled=!0,t.classList.add("mach-action-btn--loading"),e.confirm==null||e.confirm===!1){es(e,n,t);return}(async()=>{await ts(e,n)&&await e.onClick(n)})().catch(o=>kt(o,e,n)).finally(()=>{vr(e,n,t)})}}function os(n,e,t){let r=document.createElement("button");r.type="button",r.className="mach-action-btn";let o=Fo(n);o!=="default"&&r.classList.add(`mach-action-btn--${o}`);let i=n.title??n.label??"Action";return r.title=i,r.setAttribute("aria-label",i),r.disabled=Y(n.disabled,e),Y(n.loading,e)&&(r.disabled=!0,r.classList.add("mach-action-btn--loading")),n.icon&&mr[n.icon]?(r.innerHTML=Mt(n.icon),r.classList.add("mach-action-btn--icon")):r.textContent=n.label??i,r.addEventListener("mousedown",s=>s.stopPropagation()),r.addEventListener("click",s=>{s.stopPropagation(),t(n,r)}),r}function ns(n,e,t,r,o){let i=document.createElement("button");i.type="button",i.className="mach-action-btn mach-action-btn--icon";let s=r.api.getOption("locale")??{},a=t.moreLabel??s.actionMore??D.actionMore;return i.title=a,i.setAttribute("aria-label",a),i.setAttribute("aria-haspopup",e==="drawer"?"dialog":"menu"),i.setAttribute("aria-expanded","false"),i.innerHTML=`${Mt("more",16)}<span class="mach-sr-only">\u22EF</span>`,i.addEventListener("mousedown",l=>l.stopPropagation()),i.addEventListener("click",l=>{l.stopPropagation();let d=n.map(c=>({label:c.label??c.title??"Action",icon:c.icon,variant:Fo(c),disabled:Y(c.disabled,r)||Y(c.loading,r),pick:u=>{j(),o(c,u)}}));e==="drawer"?Xi(i,t.drawerTitle??a,d):Yi(i,d)}),i}function he(n){let e=Math.max(0,n.max??3),t=n.overflow??"menu";return r=>{let o=Ji(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=rs(r);for(let d of s)i.appendChild(os(d,r,l));return a.length>0&&i.appendChild(ns(a,t,n,r,l)),{el:i,destroy:()=>{W&&i.contains(W)&&j()}}}}function ue(n,e,t){return n??e??t}function is(n,e){let t=e.api.getOption("locale")??{};return{view:ue(n.labels?.view,t.actionView,D.actionView),edit:ue(n.labels?.edit,t.actionEdit,D.actionEdit),delete:ue(n.labels?.delete,t.actionDelete,D.actionDelete),confirm:ue(n.labels?.confirm,t.actionConfirm,D.actionConfirm),save:ue(n.labels?.save,t.actionSave,D.actionSave),cancel:ue(n.labels?.cancel,t.actionCancel,D.actionCancel)}}function ss(n,e,t){let r=async()=>{if(!await e.api.editing.stop()||!n.onSave)return;let s=e.api.editing.getChanges().filter(a=>a.rowId===e.node.id);try{await n.onSave(e,s),e.api.editing.markSaved([e.node.id])}catch(a){throw e.api.editing.startRow(e.rowIndex),a}},o=n.onSave?t.save:n.labels?.confirm??n.labels?.save??t.confirm;return he({actions:[{icon:"check",title:o,variant:"success",onClick:r},{icon:"close",title:t.cancel,variant:"danger",onClick:()=>e.api.editing.stop({cancel:!0}).then(()=>{})}],overflow:"inline"})(e)}function as(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:n.onEdit??(()=>{e.api.editing.startRow(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 It(n={}){return e=>{let t=is(n,e);if(e.api.editing.isRowActive(e.rowIndex))return ss(n,e,t);let r=as(n,e,t);return he({actions:r,max:n.max,overflow:n.overflow??"menu",moreLabel:n.moreLabel,drawerTitle:n.drawerTitle})(e)}}var ls=hr(),ds=pr(),Oo=Object.freeze({statusTag:ls,progressBar:ds,link:fr});function cs(n){return!!(n.field||n.valueGetter||n.cellRenderer||n.checkboxSelection||n.rowDrag||n.type||n.autoRowSpan||n.rowSpan)}function us(n,e,t){n.width!=null&&n.minWidth!=null&&n.width<n.minWidth&&t.push(`\u5217 "${e}" \u7684 width(${n.width}) \u5C0F\u4E8E minWidth(${n.minWidth})\uFF0C\u5C06\u6309 minWidth \u6E32\u67D3`),n.width!=null&&n.maxWidth!=null&&n.width>n.maxWidth&&t.push(`\u5217 "${e}" \u7684 width(${n.width}) \u5927\u4E8E maxWidth(${n.maxWidth})\uFF0C\u5C06\u6309 maxWidth \u6E32\u67D3`)}function hs(n,e){let t=n.colId??n.field??`col_${e.leafIndex}`;e.seenIds.set(t,(e.seenIds.get(t)??0)+1),n.field&&!oe(n.field)&&e.issues.push(`\u5217 "${t}" \u7684 field \u8DEF\u5F84\u4E0D\u5B89\u5168\u6216\u65E0\u6548\uFF0C\u5DF2\u7981\u6B62\u8BFB\u53D6\u548C\u5199\u5165`),cs(n)||e.issues.push(`\u5217 "${t}" \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`),us(n,t,e.issues)}function Ho(n,e){for(let t of n){if(se(t)){!Array.isArray(t.children)||t.children.length===0?e.issues.push(`\u5217\u5206\u7EC4 "${t.headerName??t.groupId??"?"}" \u7684 children \u4E3A\u7A7A`):Ho(t.children,e);continue}e.leafIndex++,hs(t,e)}}function Bo(n){if(!n||n.length===0)return[];let e={issues:[],seenIds:new Map,leafIndex:0};Ho(n,e);for(let[t,r]of e.seenIds)r>1&&e.issues.push(`\u5B58\u5728 ${r} \u4E2A\u91CD\u590D\u7684 colId/field "${t}"\uFF0C\u5DF2\u81EA\u52A8\u52A0\u540E\u7F00\u533A\u5206\uFF0C\u5EFA\u8BAE\u663E\u5F0F\u547D\u540D colId`);return e.issues}var ps=q.map(n=>`on${n.charAt(0).toUpperCase()}${n.slice(1)}`),Vo=new Set([...ft,...ps]);function fs(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 ms(n){let e,t=Number.POSITIVE_INFINITY;for(let o of Vo){let i=fs(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 gs(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(...ys(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 ys(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"}),zo(n)||e.push({code:"MISSING_STABLE_ROW_ID",option:"rowKey",message:"Random-access blocks require rowKey to preserve selection and identity after eviction"}),e}function zo(n){return n.rowKey!=null}function vs(n){let e=new Set(["enableColumnResize","pagination","rowKey"]),t=[];for(let r of ft){if(e.has(r)||!Object.prototype.hasOwnProperty.call(n,r))continue;let o=n[r],i=de[r].kind;tr(o,i)||t.push({code:"INVALID_OPTION_VALUE",option:r,message:`${r} \u503C\u7C7B\u578B\u65E0\u6548\uFF0C\u671F\u671B ${i}`})}return t}function ws(n){let e=[];for(let t of Object.keys(n)){if(Vo.has(t))continue;let r=ms(t);e.push({code:"UNKNOWN_OPTION",option:t,...r?{suggestion:r}:{},message:r?`\u672A\u77E5 GridOption "${t}"\uFF0C\u662F\u5426\u60F3\u4F7F\u7528 "${r}"\uFF1F`:`\u672A\u77E5 GridOption "${t}"\uFF0C\u8BE5\u503C\u4E0D\u4F1A\u751F\u6548`})}return e}function bs(n,e){if(e.mode!=="server")return[];let t=[];zo(n)||t.push({code:"MISSING_STABLE_ROW_ID",option:"rowKey",message:"\u670D\u52A1\u7AEF\u5206\u9875\u5EFA\u8BAE\u63D0\u4F9B\u7A33\u5B9A rowKey\uFF0C\u5426\u5219\u8DE8\u9875\u9009\u62E9\u4E0E\u589E\u91CF\u66F4\u65B0\u65E0\u6CD5\u53EF\u9760\u4FDD\u6301"});let r=e.total;return r!==void 0&&(typeof r!="number"||!Number.isFinite(r)||r<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"}),t}function Cs(n){let e=[],t=n.pagination;return t!=null&&typeof t!="boolean"&&typeof t!="object"&&e.push({code:"INVALID_OPTION_VALUE",option:"pagination",message:"pagination \u5FC5\u987B\u662F boolean \u6216\u914D\u7F6E\u5BF9\u8C61"}),n.datasource!=null&&t!==void 0&&t!==!1&&e.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'"}),t&&typeof t=="object"&&e.push(...bs(n,t)),e}function Ts(n){return n.treeData!==!0||n.masterDetail!==!0?[]:[{code:"OPTION_CONFLICT",option:"masterDetail",message:"treeData \u4E0E masterDetail \u4E0D\u80FD\u540C\u65F6\u542F\u7528\uFF0C\u4E3B\u4ECE\u660E\u7EC6\u5C06\u88AB\u5FFD\u7565"}]}function Lt(n){let e=n,t=ws(e);return t.push(...Cs(e)),t.push(...Ts(e)),t.push(...vs(e)),t.push(...gs(e)),t}function Wo(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 wr(n,e){for(let t=0;t<3;t++)if(n[t]!==e[t])return n[t]<e[t]?-1:1;return 0}function Rs(n){return n[0]>0?[n[0]+1,0,0]:n[1]>0?[0,n[1]+1,0]:[0,0,n[2]+1]}function Ss(n,e){if(e==="*"||e.toLowerCase()==="latest")return!0;let t=/^(\^|~|>=|<=|>|<|=)?\s*(.+)$/.exec(e);if(!t)return!1;let r=Wo(t[2]);if(!r)return!1;let o=wr(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&&wr(n,Rs(r))<0;case"~":return o>=0&&wr(n,[r[0],r[1]+1,0])<0;default:return o===0}}function _o(n,e){if(!e?.trim())return!0;let t=n?Wo(n):null;return t?e.split("||").some(r=>{let o=r.trim().split(/\s+/).filter(Boolean);return o.length>0&&o.every(i=>Ss(t,i))}):!1}function Ds(n){return[...new Set((n??[]).map(e=>e.trim()).filter(Boolean))]}function At(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 Pt(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 At(d.requires)){let u=t.get(c.key);u?_o(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 Ds(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 At(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 Es=["datasource","treeData"],xs=["columnState.","gridState."],Ms=new Set(["valueFormatter","cellStyle","cellClass"]),ks=new Set(["selectionChanged","sortChanged","filterChanged","columnMoved","columnVisibilityChanged","displayedColumnsChanged","paginationChanged","detailToggled"]),Is=0,Gt=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.gridStateMutationVersion=0;this.applyingPersistedGridState=!1;this.stateSaveInFlight=!1;this.pendingStateSave=null;this.lastValidatedDefs=null;this.issuedWarningSignatures=new Set;let r;this.readyPromise=new Promise(o=>{r=o}),this.resolveReady=r,this.gridId=++Is,this.options=kr(t),this.eventBus=new Ee((o,i)=>{i==="gridError"?console.error("[mach-table] error in gridError listener",o):this.reportError(o,"eventBus.listener",{eventType:i})}),this.columnModel=new Ie(this),this.rowModel=new Oe(this),this.selectionService=new He(this),this.skeleton=new mt(this),this.headerRenderer=new yt(this),this.bodyRenderer=new Ct(this),this.resizeService=new Be(this),this.columnDragService=new Ve(this),this.keyboardService=new Ke(this),this.editingService=new Ze(this),this.undoService=new lt(this),this.performanceMonitor=new ut,this.updateScheduler=new ht(o=>this.applyScheduledUpdate(o)),this.filterPopup=new ot(this),this.columnMenu=new nt(this),this.contextMenuService=new it(this),this.tooltipService=new st(this),this.watermarkService=new at(this),this.paginationBar=new Rt(this),this.pinnedRowsRenderer=new St(this),this.summaryRenderer=new Tt(this),this.statusBarService=new Dt(this),this.api=Eo(this),this.changeTracker=new dt(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.headerRenderer.build(),this.options.datasource?this.rowModel.startInfinite().catch(()=>{}):this.rowModel.setRowData(this.options.rowData),this.options.initialState&&this.api.state.apply(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){return this.options.components?.cellRenderers?.[e]??Oo[e]}resolveCellEditor(e){return this.options.components?.cellEditors?.[e]}inactiveFeatureDependency(e){return At(e.requires).map(t=>t.key).find(t=>!this.activeFeatures.has(t))}setFeatures(e){if(this.destroyFeatures(),this.destroyed)return;let t=Pt(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 $(e.data,r.field)}getLocaleText(e){return this.options.locale[e]??D[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?J(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=J(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 le(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=ze(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){let c=this.nextPasteRow(l,s);if(!c)break;this.pasteLine(c.node,c.index,d,i,r,a),l=c.index+1}}finally{this.undoService.endBatch()}a.size>0&&(this.bodyRenderer.refreshRows([...a]),this.summaryRenderer.refresh())}nextPasteRow(e,t){for(let r=e;r<t;r++){let o=this.rowModel.getDisplayedRow(r);if(o&&!o.isDetail&&!o.isGroup)return{index:r,node:o}}return null}nextPasteColumn(e,t){let r=t;for(;r<e.length;){let o=e[r];if(!o.hasCheckbox&&!o.isDetailToggle&&!o.colDef.rowDrag)break;r++}return r}pasteLine(e,t,r,o,i,s){let a=i;for(let l of r){if(a=this.nextPasteColumn(o,a),a>=o.length)return;this.pasteCell(e,o[a],l)&&s.add(t),a++}}pasteCell(e,t,r){if(!this.editingService.isEditable(e,t))return!1;let o=this.getCellValue(e,t),i=typeof o=="number"&&r!==""&&!Number.isNaN(Number(r)),s=r===""?null:i?Number(r):r;return this.setCellValue(e,t,s,o)}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||ks.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(Es.some(o=>e.startsWith(o)))return"DATA_SOURCE_ERROR";let r=t instanceof Error?t.message:String(t);return e==="rowKey"||r.includes("Duplicate row id")?"DATA_INTEGRITY_ERROR":e==="validate"?"VALIDATION_ERROR":e.toLowerCase().includes("renderer")||Ms.has(e)?"RENDERER_ERROR":e.toLowerCase().includes("editor")||e==="editable"?"EDITOR_ERROR":e.startsWith("feature.")?"FEATURE_ERROR":xs.some(o=>e.startsWith(o))?"STATE_ERROR":e.startsWith("eventBus.")||e.startsWith("eventHandler.")?"EVENT_HANDLER_ERROR":"GRID_ERROR"}getDiagnostics(){return{gridId:this.gridId,version:De,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.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}))}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)}}loadPersistedGridState(){let e=++this.gridStateLoadToken,t=this.gridStateMutationVersion,r=this.options.persistence;if(!r)return;let{key:o,store:i,sections:s}=r,a;try{a=i?i.load(o):xt(o)}catch(d){this.reportError(d,"gridState.load");return}let l=d=>{if(!(this.destroyed||e!==this.gridStateLoadToken||t!==this.gridStateMutationVersion||!d)){this.applyingPersistedGridState=!0;try{this.api.state.apply(d,{emitEvents:!1,...s?{sections:s}:{}})}finally{this.applyingPersistedGridState=!1}}};a&&typeof a.then=="function"?Promise.resolve(a).then(l).catch(d=>this.reportError(d,"gridState.load")):l(a)}scheduleGridStateSave(){let e=this.options.persistence;if(!(!e||this.destroyed||this.applyingPersistedGridState)){if(this.gridStateMutationVersion++,this.stateSaveTimer&&clearTimeout(this.stateSaveTimer),e.debounceMs===0){this.stateSaveTimer=null,this.persistGridState();return}this.stateSaveTimer=setTimeout(()=>{this.stateSaveTimer=null,this.persistGridState()},e.debounceMs)}}persistGridState(){let e=this.options.persistence;if(!e||this.destroyed)return;let{key:t,store:r,sections:o}=e,i=this.api.state.get(),s=o?ao(i,o):i,a={key:t,...r?{store:r}:{},state:s};if(this.stateSaveInFlight){this.pendingStateSave=a;return}this.writeGridState(a)}writeGridState(e){try{let t=e.store?e.store.save(e.key,e.state):Et(e.key,e.state);if(!t||typeof t.then!="function")return;this.stateSaveInFlight=!0,Promise.resolve(t).catch(r=>this.reportError(r,"gridState.save")).finally(()=>{this.stateSaveInFlight=!1;let r=this.pendingStateSave;this.pendingStateSave=null,r&&this.writeGridState(r)})}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}buildDefaultLoadingState(){let e=document.createElement("div");e.className="mach-loading";let t=document.createElement("div");t.className="mach-loading__visual",t.setAttribute("aria-hidden","true");for(let s=0;s<4;s+=1){let a=document.createElement("span");a.className="mach-loading__row",t.appendChild(a)}let r=document.createElement("div");r.className="mach-loading__status";let o=document.createElement("span");o.className="mach-spinner mach-loading__spinner",o.setAttribute("aria-hidden","true");let i=document.createElement("span");return i.className="mach-loading__label",i.textContent=this.getLocaleText("loading"),r.append(o,i),e.append(t,r),e}buildDefaultEmptyState(){let e=this.options.locale??{},t=e.emptyRows??D.emptyRows,r=e.emptyRowsHint??D.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 Lt(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 Bo(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 Ko(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 Gt(n,e).getApi()}function Ls(n){return n.value===!0?"\u662F":n.value===!1?"\u5426":""}function As(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 Ps(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 Gs(n,e){return n.filterable===!1?!1:e==="number"?"number":e==="date"?"date":e==="select"||e==="boolean"?"set":"text"}function Fs(n,e,t){if(t==="number"){n.type="rightAligned";return}if(t==="date"){n.valueFormatter=As(e.format);return}if(t==="boolean"){n.valueFormatter=Ls;return}if(t!=="select")return;let r=e.options??[];n.valueFormatter=Ps(r),e.editable&&(n.cellEditor="select",n.cellEditorParams={options:r})}function $o(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:Gs(n,e),cellClass:n.cellClass};return Fs(t,n,e),t}function Uo(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($o(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($o(a)),t.add(s))}i.length>0&&r.push({headerName:o.title,children:i})}return r}function P(n){let e=n();return e&&!e.isDestroyed()?e:null}function qo(n){let e=()=>n.getApi();return{search(t){P(e)?.filtering.setQuickText(t)},async refresh(){if(n.reload){await n.reload();return}let t=P(e);t&&(t.rows.isRemote()?await t.rows.reload():t.view.refreshCells())},openColumns(t){P(e)?.columns.openWorkbench(t)},setDensity(t){P(e)?.updateOptions({size:t})},selectAll(t=!0){P(e)?.selection.selectAll(t)},clearSelection(){let t=P(e);t?.selection.clear(),t?.selection.clearRange()},resetColumns(){P(e)?.columns.resetState()},resetView(){P(e)?.batch(t=>{t.selection.clear(),t.selection.clearRange(),t.filtering.setModel(null),t.filtering.setAdvancedModel(null),t.sorting.setModel(null),t.pagination.setPage(1),t.columns.resetState()})},undo(){return P(e)?.editing.undo()??!1},redo(){return P(e)?.editing.redo()??!1},canUndo(){return P(e)?.editing.canUndo()??!1},canRedo(){return P(e)?.editing.canRedo()??!1},exportCsv(t="mach-table.csv"){let r=P(e);return r?pt(t,r.io.exportCsv({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=P(e)?.view.getRoot(),o=n.getFullscreenElement?.()??r?.parentElement??r;return o?.requestFullscreen?(await o.requestFullscreen(),!0):!1}}}var Re={sortable:!1,resizable:!1,movable:!1,filter:!1,suppressSizeToFit:!0,suppressColumnMenu:!0};function jo(n={}){let e=n.width??40;return{colId:"sel",headerName:"",width:e,minWidth:n.minWidth??e,maxWidth:n.maxWidth??e,pinned:"left",checkboxSelection:!0,...Re,...n}}function Yo(n={}){let e=n.width??52;return{colId:"idx",headerName:"#",type:"index",width:e,minWidth:n.minWidth??e,maxWidth:n.maxWidth??e,pinned:"left",align:"center",headerAlign:"center",...Re,...n}}function Xo(n={}){return{colId:"drag",headerName:"",rowDrag:!0,width:40,...Re,...n}}function Qo(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:he(r),...Re,cellRendererParams:void 0}}function Jo(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:It(r),...Re,cellRendererParams:void 0}}function Zo(){return{accessor:(n,e={})=>({...e,field:n}),display:n=>({...n}),group:n=>({...n,children:[...n.children]})}}function en(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 Ns(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 Os(n,e){if(!(!n.components&&!e.components))return{cellRenderers:{...n.components?.cellRenderers,...e.components?.cellRenderers},cellEditors:{...n.components?.cellEditors,...e.components?.cellEditors}}}function Hs(n,e){if(!n.columnTypes&&!e.columnTypes)return;let t={},r=new Set([...Object.keys(n.columnTypes??{}),...Object.keys(e.columnTypes??{})]);for(let o of r)t[o]={...n.columnTypes?.[o],...e.columnTypes?.[o]};return t}function Bs(n,e,t){for(let r of new Set([...Object.keys(e),...Object.keys(t)])){if(!/^on[A-Z]/.test(r))continue;let o=e[r],i=t[r];typeof o!="function"||typeof i!="function"||(n[r]=Ns(o,i))}}function Vs(n,e){let t={...n,...e,features:e.features??n.features};(n.defaultColDef||e.defaultColDef)&&(t.defaultColDef={...n.defaultColDef,...e.defaultColDef}),(n.locale||e.locale)&&(t.locale={...n.locale,...e.locale});let r=Os(n,e);r&&(t.components=r);let o=Hs(n,e);return o&&(t.columnTypes=o),(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),Bs(t,n,e),t}function Cr(...n){return n.reduce(Vs,{})}function tn(n={}){return Cr({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 rn(n){return n}function on(n){return n}function nn(n){return n}function Se(n){return n!=null&&n!==""}function zs(n){if(!Se(n))return null;let e=typeof n=="number"?n:Number(n);return Number.isFinite(e)?e:null}function Ft(n,e){try{return new Intl.NumberFormat(n,e)}catch{return new Intl.NumberFormat(void 0,e)}}function sn(n,e){try{return new Intl.DateTimeFormat(n,e)}catch{let t={...e};return delete t.timeZone,new Intl.DateTimeFormat(void 0,t)}}function Ws(n){if(!Se(n))return null;let e=n instanceof Date?n:new Date(n);return Number.isFinite(e.getTime())?e:null}function an(n={}){let e=n.emptyText??"",t=n.invalidText??"\u2014",r=Ft(n.locale,{maximumFractionDigits:n.maximumFractionDigits??2}),o=Ft(n.locale,{maximumFractionDigits:0}),i=Ft(n.locale,{style:"currency",currency:n.currency??"CNY",currencyDisplay:n.currencyDisplay??"symbol",maximumFractionDigits:n.maximumFractionDigits??2}),s=Ft(n.locale,{style:"percent",maximumFractionDigits:n.maximumFractionDigits??2}),a=sn(n.locale,{year:"numeric",month:"2-digit",day:"2-digit",...n.timeZone?{timeZone:n.timeZone}:{}}),l=sn(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(!Se(p))return e;let m=zs(p);return m==null?t:u.format(m*h)},c=u=>({value:h})=>{if(!Se(h))return e;let p=Ws(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 Nt(n){return`${typeof n}:${String(n)}`}function ln(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=v=>{let g=Nt(v),b=o.get(g);if(b){if(b.expiresAt<Date.now()){o.delete(g);return}return o.delete(g),o.set(g,b),b.label}},u=v=>{let g=e===0?Number.POSITIVE_INFINITY:Date.now()+e;for(let b of v){let T=Nt(b.value);o.delete(T),o.set(T,{key:b.value,label:String(b.label),expiresAt:g})}for(;o.size>t;)o.delete(o.keys().next().value)},h=v=>{for(let[g,b]of v){let T=c(b);for(let E of s.get(g)??[])E.resolve(T);s.delete(g)}},p=(v,g)=>{for(let[b]of v){for(let T of s.get(b)??[])T.reject(g);s.delete(b)}},m=async()=>{if(a=null,d||i.size===0)return;let v=[...i.entries()];i.clear();let g=v.map(([,T])=>T),b=new AbortController;l=b;try{let T=await n.load(g,b.signal);if(d||b.signal.aborted)return;u(T),h(v)}catch(T){b.signal.aborted||n.onError?.(T,g),p(v,T)}finally{l===b&&(l=null),!d&&i.size>0&&a==null&&(a=setTimeout(()=>{m()},r))}},y=v=>{let g=c(v);if(g!==void 0)return Promise.resolve(g);if(d)return Promise.reject(new Error("[MachTable] Dictionary resolver has been destroyed."));let b=Nt(v);i.set(b,v);let T=new Promise((E,w)=>{let C=s.get(b)??[];C.push({resolve:E,reject:w}),s.set(b,C)});return a==null&&l==null&&(a=setTimeout(()=>{m()},r)),T};return{get:c,resolve:y,async resolveMany(v){let g=await Promise.all(v.map(async b=>[b,await y(b)]));return new Map(g.filter(b=>b[1]!==void 0))},prime:u,invalidate(v){if(!v)o.clear();else for(let g of v)o.delete(Nt(g))},destroy(){d=!0,a!=null&&clearTimeout(a),a=null,l?.abort(),l=null;let v=new Error("[MachTable] Dictionary resolver has been destroyed.");for(let g of s.values())for(let b of g)b.reject(v);s.clear(),i.clear(),o.clear()},get size(){return o.size}}}function dn(n,e={}){return t=>{if(!Se(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 cn(){try{return typeof localStorage>"u"?null:localStorage}catch{return null}}function un(n){return typeof TextEncoder>"u"?n.length*2:new TextEncoder().encode(n).byteLength}function hn(n){if(typeof n!="string")return null;let e=n.trim();return e&&e.length<=256?e:null}function Ot(n){if(n==null||typeof n!="object")return null;let e=n;if(e.version!==1)return null;let t=z({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=hn(e.id),r=typeof e.name=="string"?e.name.trim().slice(0,120):"",o=Ot(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.state.get();return{version:1,columns:e.columns,sortModel:e.sortModel,filterModel:e.filterModel,advancedFilterModel:e.advancedFilterModel,quickFilterText:e.quickFilterText,pageSize:e.pagination.pageSize}}function Rr(n,e,t={}){let r=Ot(e);if(!r||n.isDestroyed())return!1;let o=n.state.get();return n.state.apply({...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 Sr(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??cn())?.getItem(o(l));if(!d||un(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(un(c)>r)throw new RangeError(`[MachTable] Saved views for "${l}" exceed ${r} bytes.`);let u=n.storage??cn();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 _s(){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 pn(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??Sr(),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=hn(s)??_s(),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(!Rr(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 Ks=De;0&&(module.exports={BUILTIN_AGG_FUNCS,DEFAULT_LOCALE,EVENT_TYPES,LOCALE_EN,actionsColumn,advancedFilterCondition,advancedFilterGroup,applyGridViewState,buildColDefsFromSchema,captureGridViewState,clearGridState,createActionButtonsRenderer,createAggResolver,createBusinessColumnTypes,createCachedDictionary,createColumnHelper,createDictionaryRenderer,createEnterprisePreset,createGrid,createGridViewManager,createLocalGridStateStore,createLocalGridViewStore,createMachTableCommands,createMachTablePreset,createProgressBarRenderer,createRowActionsRenderer,createStatusTagRenderer,defineColumns,defineGridOptions,defineMachTableConfig,defineMachTablePreset,describeFilter,downloadFile,dragColumn,escapeHtml,formatText,formatTwo,getByPath,indexColumn,isColDefGroup,isSafePath,linkRenderer,loadGridState,matchLocaleKey,normalizeAdvancedFilterModel,normalizeColumnFilter,normalizeFilterModel,normalizeGridState,normalizeGridViewState,normalizeSavedGridView,parseCsv,parseDelimited,parseTsv,resolveGridFeatures,resolveSaveConflict,resolveTagVariant,rowActionsColumn,sanitizeFormulaCell,saveGridState,selectionColumn,setByPath,toTsv,validateGridOptions,version});
6
+ `?s+=2:s++;continue}o+=a,s++}return(o!==""||r.length>0)&&(r.push(o),t.push(r)),t}function pi(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 ve(n){try{if(typeof navigator<"u"&&navigator.clipboard?.writeText)return await navigator.clipboard.writeText(n),!0}catch{}return pi(n)}var fi=new Set(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Enter","F2","Home","End","PageUp","PageDown","Tab"," ","Escape","Delete","Backspace"]),mi=new Set(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Home","End","PageUp","PageDown"]),qe=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):ve(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):ve(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)||fi.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 mi.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}};var H=null;function jr(n){let e=n.target;H?.contains(e)||H?.close()}function je(){H?.reposition()}function Yr(n){n.key!=="Escape"||!H||(n.preventDefault(),n.stopImmediatePropagation(),H.close(!0))}function gi(n){H?.close!==n.close&&H?.close(),!H&&(H=n,document.addEventListener("mousedown",jr,!0),document.addEventListener("keydown",Yr,!0),window.addEventListener("resize",je),window.addEventListener("scroll",je,!0))}function yi(n){H?.close===n&&(H=null,document.removeEventListener("mousedown",jr,!0),document.removeEventListener("keydown",Yr,!0),window.removeEventListener("resize",je),window.removeEventListener("scroll",je,!0))}function te(n,e){return e?`${n} ${e}`:n}function Ue(n){let e=[];return n.forEach((t,r)=>{t.disabled||e.push(r)}),e}function Ur(n,e,t){let r=Ue(n);if(r.length===0)return-1;let o=r.indexOf(e);return o<0?t>0?r[0]:r[r.length-1]:r[Math.max(0,Math.min(r.length-1,o+t))]}function $e(n,e){return n.findIndex(t=>t.value===e&&!t.disabled)}function U(n){let e=f("div",te("mach-select-control",n.classNames?.root)),t=f("select",te("mach-select-native",n.classNames?.native));t.hidden=!0,t.tabIndex=-1,t.setAttribute("aria-hidden","true");let r=f("button",te("mach-select-trigger",n.classNames?.trigger));r.type="button",r.setAttribute("role","combobox"),r.setAttribute("aria-haspopup","listbox"),r.setAttribute("aria-expanded","false"),r.setAttribute("aria-label",n.ariaLabel);let o=f("span",te("mach-select-value",n.classNames?.value)),i=f("span",te("mach-select-caret",n.classNames?.caret));i.setAttribute("aria-hidden","true"),r.append(o,i);let s=f("div",te("mach-select-listbox",n.classNames?.listbox));s.id=Vr("mach-select-listbox"),s.setAttribute("role","listbox"),s.setAttribute("aria-hidden","true"),r.setAttribute("aria-controls",s.id),e.append(t,r);let a=[...n.options],l=[],d=-1,c=!1,u=()=>n.themeSource??e.closest(".mach-root")??e,h=()=>{let w=a.find(C=>C.value===t.value);o.textContent=w?.label??t.value,l.forEach((C,k)=>{let M=a[k]?.value===t.value;C.setAttribute("aria-selected",M?"true":"false"),C.classList.toggle("mach-select-option--selected",M),C.classList.toggle("mach-select-option--active",k===d)}),r.setAttribute("aria-activedescendant",d>=0?l[d]?.id??"":"")},p=()=>{let w=r.getBoundingClientRect(),C=s.getBoundingClientRect(),k=Math.max(w.width,C.width),M=x(w.left,8,Math.max(8,window.innerWidth-k-8)),V=window.innerHeight-w.bottom-8,J=V<Math.min(C.height,240)&&w.top>V,G=J?Math.max(8,w.top-C.height-5):Math.min(window.innerHeight-C.height-8,w.bottom+5);s.style.minWidth=`${w.width}px`,s.style.left=`${M}px`,s.style.top=`${Math.max(8,G)}px`,s.classList.toggle("mach-select-listbox--above",J)},m=(w=!1)=>s.classList.contains("mach-select-listbox--open")?(s.classList.remove("mach-select-listbox--open","mach-select-listbox--above"),s.setAttribute("aria-hidden","true"),r.setAttribute("aria-expanded","false"),r.removeAttribute("aria-activedescendant"),s.remove(),yi(m),w&&!c&&r.focus({preventScroll:!0}),!0):!1,g=(w,C=!0)=>{!a[w]||a[w].disabled||(d=w,h(),C&&l[w]?.scrollIntoView?.({block:"nearest"}))},v=()=>{c||r.disabled||s.classList.contains("mach-select-listbox--open")||(gi({close:m,contains:w=>e.contains(w)||s.contains(w),reposition:p}),d=$e(a,t.value),d<0&&(d=Ue(a)[0]??-1),A(s,u()),document.body.appendChild(s),s.classList.add("mach-select-listbox--open"),s.setAttribute("aria-hidden","false"),r.setAttribute("aria-expanded","true"),p(),h(),l[d]?.scrollIntoView?.({block:"nearest"}))},y=w=>{let C=a[w];!C||C.disabled||(t.value=C.value,d=w,h(),m(!0),t.dispatchEvent(new Event("input",{bubbles:!0})),t.dispatchEvent(new Event("change",{bubbles:!0})))},b=(w,C)=>{a=[...w],t.replaceChildren(),s.replaceChildren(),l=a.map((M,V)=>{let J=document.createElement("option");J.value=M.value,J.textContent=M.label,J.disabled=M.disabled===!0,t.appendChild(J);let G=f("button",te("mach-select-option",n.classNames?.option));return G.id=`${s.id}-option-${V}`,G.type="button",G.tabIndex=-1,G.dataset.value=M.value,G.disabled=M.disabled===!0,G.setAttribute("role","option"),G.textContent=M.label,G.addEventListener("mousedown",mn=>mn.preventDefault()),G.addEventListener("click",()=>y(V)),s.appendChild(G),G});let k=a.find(M=>!M.disabled)?.value??"";t.value=C!=null&&a.some(M=>M.value===C)?C:k,d=$e(a,t.value),h()},R=w=>{if(w.key==="Tab"){m();return}if(w.key==="Escape"){if(!m(!0))return;w.preventDefault(),w.stopPropagation();return}if(w.key==="Enter"||w.key===" "){w.preventDefault(),w.stopPropagation(),s.classList.contains("mach-select-listbox--open")?y(d):v();return}let C=d;if(w.key==="ArrowDown")C=Ur(a,d,1);else if(w.key==="ArrowUp")C=Ur(a,d,-1);else if(w.key==="Home")C=Ue(a)[0]??-1;else if(w.key==="End"){let k=Ue(a);C=k[k.length-1]??-1}else return;w.preventDefault(),w.stopPropagation(),s.classList.contains("mach-select-listbox--open")||v(),g(C)},E=()=>{d=$e(a,t.value),h(),n.onChange?.(t.value)};return r.addEventListener("click",()=>{m()||v()}),r.addEventListener("keydown",R),t.addEventListener("change",E),b(a,n.value),{el:e,native:t,trigger:r,listbox:s,contains:w=>e.contains(w)||s.contains(w),isOpen:()=>s.classList.contains("mach-select-listbox--open"),open:v,close:m,focus:()=>r.focus({preventScroll:!0}),getValue:()=>t.value,setValue:w=>{t.value=w,d=$e(a,w),h()},setOptions:b,destroy:()=>{c||(c=!0,m(),r.removeEventListener("keydown",R),t.removeEventListener("change",E),e.remove())}}}function jt(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 vi(n){return n?.options?.length?n.options:(n?.values??[]).map(e=>({label:String(e),value:e}))}function wi(n,e){return e?.options?.length||e?.values?.length?"select":typeof n=="number"?"number":n instanceof Date||typeof n=="string"&&/^\d{4}-\d{2}-\d{2}/.test(n)?"date":"text"}function Yt(n,e,t){let r=n.colDef,o=typeof r.cellEditor=="string"?r.cellEditor:wi(e,r.cellEditorParams);if(o==="number"){let s=jt("number",e);return{el:s,getValue:()=>s.value===""?null:Number(s.value),focus:()=>{s.focus({preventScroll:!0}),s.select()}}}if(o==="date"){let s=jt("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({preventScroll:!0})}}if(o==="select"){let s=vi(r.cellEditorParams),a=U({ariaLabel:r.headerName??r.field??n.id,options:s.map(l=>({value:String(l.value),label:l.label,disabled:l.disabled})),value:String(e??""),classNames:{root:"mach-editor-select-control",native:"mach-editor-select"}});return{el:a.el,getValue:()=>{let l=a.getValue();return s.find(c=>String(c.value)===l)?.value??l},focus:()=>a.focus(),destroy:()=>a.destroy()}}let i=jt("text",e);return t&&t.length===1&&(i.value=t),{el:i,getValue:()=>i.value,focus:()=>{i.focus({preventScroll:!0}),i.select()}}}var Xt=new WeakMap,Ye=new WeakMap,Xe=new WeakMap;function we(n){let e=Xt.get(n);return e||(e={},Xt.set(n,e)),e}function Qt(n){return Xt.get(n)}function Xr(n,e){e?Ye.set(n,e):Ye.delete(n)}function Qr(n){let e=Ye.get(n);return Ye.delete(n),e}function Jr(n,e){e?Xe.set(n,e):Xe.delete(n)}function Jt(n){let e=Xe.get(n);return Xe.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 I(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 Zr(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 bi(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 K(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 be(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 Je(n,e,t,r){let o=r.colDef.cellStyle,i=we(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 Ze(n,e,t,r){let o=n.getCellValue(t,r),i=K(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(bi(n,e,t,r,a,l)){Zr(n,e,t,r,o,i);return}I(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=we(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 I(n,e),e.textContent=i;Zr(n,e,t,r,o,i)}function Ci(n,e,t){let r=e.colDef.align;if(r==="center"){n.push("mach-cell--center");return}if(r==="right"){n.push("mach-cell--right");return}(ie(e.colDef,"rightAligned")||ie(e.colDef,"numericColumn")||typeof t=="number")&&n.push("mach-cell--num")}function Ri(n,e,t,r,o){let i=r.colDef.cellClass;if(!i)return;if(typeof i=="string"){e.push(i);return}if(Array.isArray(i)){e.push(...i);return}let s={api:n.getApi(),colDef:r.colDef,column:r,node:t,data:t.data,value:o,rowIndex:t.rowIndex};try{let a=i(s);typeof a=="string"?e.push(a):Array.isArray(a)&&e.push(...a)}catch(a){n.reportError(a,"cellClass",{colId:r.id,rowId:t.id})}}function Ti(n,e,t){e.classList.contains("mach-cell--focus")&&n.push("mach-cell--focus"),e.classList.contains("mach-cell--editing")&&n.push("mach-cell--editing"),t.colDef.wrapText&&n.push("mach-cell--wrap")}function Ce(n,e,t,r){let o=n.getCellValue(t,r),i=["mach-cell"];Ci(i,r,o),Ri(n,i,t,r,o),Ti(i,e,r);let s=i.join(" ");e.className!==s&&(e.className=s)}var Si='<path d="M3 8.5 6.4 12 13.5 4"/>',Di='<path d="m4 4 8 8m0-8-8 8"/>';function eo(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"?Si:Di}</svg>`,t.addEventListener("mousedown",r=>{r.preventDefault(),r.stopPropagation()}),t}var et=class{constructor(e){this.core=e;this.cellEditing=null;this.rowEditing=null;this.stopPromise=null;this.stopToken=0;this.onCellEditorKeyDown=e=>{if(this.cellEditing&&!(e.isComposing||e.keyCode===229)){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))})}}}}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.rowEditing)return!1;if(this.cellEditing)return this.cellEditing.rowIndex===e&&this.cellEditing.column.id===t.id||this.stopAsync(!1).then(p=>{p&&!this.cellEditing&&!this.rowEditing&&this.start(e,t,r)}),!0;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;I(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=eo("confirm","Confirm edit"),u=eo("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),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;I(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)??Yt(t,o,i):a=Yt(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(".mach-select-trigger, input:not([type='hidden']), select:not([hidden]), 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.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 D={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"},to={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 tt(n){return Ei[n]??"matchEquals"}function B(n,e){return n.replace("{n}",String(e))}function rt(n,e,t){return n.replace("{a}",String(e)).replace("{b}",String(t))}var xi=["contains","notContains","equals","notEquals","startsWith","endsWith","blank","notBlank"],Mi=["equals","notEquals","lessThan","lessThanOrEqual","greaterThan","greaterThanOrEqual","inRange","blank","notBlank"],ki=["equals","notEquals","lessThan","greaterThan","inRange","blank","notBlank"];function Zt(n){return n==="blank"||n==="notBlank"}function Ii(n){return n==="number"?Mi:n==="date"?ki:xi}function ot(n){return n===null?"null:":`${typeof n}:${String(n)}`}var nt=class{constructor(e){this.core=e;this.panel=null;this.openColId=null;this.conditionSelect=null;this.docMouseDown=e=>{if(!this.panel)return;let t=e.target;if(!this.panel.contains(t)&&!this.conditionSelect?.contains(t)){this.close();return}this.conditionSelect?.contains(t)||(!(t instanceof Element)||!t.closest(".mach-filter-select-control"))&&this.closeConditionListbox()};this.docKeyDown=e=>{if(e.key==="Escape"){if(this.closeConditionListbox(!0)){e.preventDefault(),e.stopPropagation();return}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=f("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=f("div","mach-filter-footer"),a=f("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=f("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),A(i,this.core.skeleton.root),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(".mach-filter-select-trigger, input")?.focus()}close(){this.panel&&(this.conditionSelect?.destroy(),this.conditionSelect=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()}buildConditionBody(e,t,r,o){let i=o&&o.type!=="set"&&o.conditions.length>0?o.conditions[0]:null,s=i?.match??(r==="text"?"contains":"equals"),{root:a,select:l}=this.createConditionSelect(r,s),d=this.createConditionInput(r),c=this.createConditionInput(r,!0);this.populateConditionInputs(r,s,i,d,c),this.updateConditionInputVisibility(s,d,c),l.addEventListener("change",()=>{this.updateConditionInputVisibility(l.value,d,c)}),this.attachEnterApply(t,e,d,c);let u=f("div","mach-filter-body");u.append(a,d,c),e.appendChild(u),e.dataset.filterType=r}createConditionSelect(e,t){let r=U({ariaLabel:"Filter condition",options:Ii(e).map(o=>({value:o,label:this.core.getLocaleText(tt(o))})),value:t,classNames:{root:"mach-filter-select-control",native:"mach-filter-select",trigger:"mach-filter-select-trigger",value:"mach-filter-select-value",caret:"mach-filter-select-caret",listbox:"mach-filter-listbox",option:"mach-filter-listbox-option"},themeSource:this.core.skeleton.root});return this.conditionSelect=r,{root:r.el,select:r.native}}closeConditionListbox(e=!1){return this.conditionSelect?.close(e)??!1}createConditionInput(e,t=!1){let o=f("input",`mach-filter-input${t?" mach-filter-input--second":""}`);return e==="number"&&(o.type="number"),e==="date"&&(o.type="date"),o}populateConditionInputs(e,t,r,o,i){r?.value!=null&&!Zt(t)&&(o.value=e==="date"?String(r.value).slice(0,10):String(r.value)),r&&"value2"in r&&r.value2!=null&&(i.value=e==="date"?String(r.value2).slice(0,10):String(r.value2))}updateConditionInputVisibility(e,t,r){t.style.display=Zt(e)?"none":"",r.style.display=e==="inRange"?"":"none"}attachEnterApply(e,t,r,o){let i=s=>{s.key==="Enter"&&(this.core.applyColumnFilter(e,this.readFilter(t)),this.close())};r.addEventListener("keydown",i),o.addEventListener("keydown",i)}buildSetBody(e,t,r){let i=t.colDef.filterParams,s;if(i?.values)s=i.values;else{let g=new Set;s=[];let v=this.core.rowModel.getAllNodes(),y=Math.min(v.length,i?.maxValues??500);for(let b=0;b<y;b++){let R=this.core.getCellValue(v[b],t),E=ot(R??null);g.has(E)||(g.add(E),s.push(R))}}let a=new Set(r?.type==="set"?r.values.map(ot):s.map(ot)),l=f("input","mach-filter-input mach-filter-input--search");l.type="text",l.placeholder=this.core.getLocaleText("search");let d=f("div","mach-filter-set-list"),c=[],u=new Map,h=g=>{d.textContent="",c.length=0;let v=g.trim().toLowerCase();for(let y of s){let b=y==null?this.core.getLocaleText("emptySetLabel"):String(y);if(v&&!b.toLowerCase().includes(v))continue;let R=ot(y);u.set(R,y);let E=f("label","mach-filter-set-item"),w=document.createElement("input");w.type="checkbox",w.checked=a.has(R),w.addEventListener("change",()=>{w.checked?a.add(R):a.delete(R),e.dataset.setSelected=JSON.stringify([...a])});let C=f("span");C.textContent=b,E.append(w,C),d.appendChild(E),c.push(w)}};l.addEventListener("input",()=>h(l.value)),h(""),e.dataset.filterType="set",e.dataset.setValues=JSON.stringify([...u.entries()]),e.dataset.setSelected=JSON.stringify([...a]),(()=>{let g=[...u.entries()];e.dataset.setValues=JSON.stringify(g)})();let m=f("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")return this.readSetFilter(e);if(t!=="text"&&t!=="number"&&t!=="date")return null;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(Zt(a))return{type:t,conditions:[{match:a}]};let l=i.value;return l===""&&a!=="inRange"?null:t==="number"?this.readNumberFilter(a,l,s):t==="date"?this.readDateFilter(a,l,s):{type:"text",conditions:[{match:a,value:l}]}}readSetFilter(e){let t=[],r=[];try{t=JSON.parse(e.dataset.setValues??"[]"),r=JSON.parse(e.dataset.setSelected??"[]")}catch{return null}let o=new Set(r),i=t.filter(([s])=>o.has(s)).map(([,s])=>s);return i.length===t.length||i.length===0?null:{type:"set",values:i}}readNumberFilter(e,t,r){let o=Number(t);if(Number.isNaN(o))return null;if(e!=="inRange")return{type:"number",conditions:[{match:e,value:o}]};let i=r?.value?Number(r.value):o;return Number.isNaN(i)?null:{type:"number",conditions:[{match:"inRange",value:o,value2:i}]}}readDateFilter(e,t,r){return e!=="inRange"?{type:"date",conditions:[{match:e,value:t}]}:{type:"date",conditions:[{match:"inRange",value:t,value2:r?.value||t}]}}};var it=class{constructor(e){this.core=e;this.panel=null;this.openColId=null;this.standaloneAnchor=null;this.searchText="";this.selectControls=new Set;this.docMouseDown=e=>{let t=e.target;this.panel&&!this.panel.contains(t)&&!this.containsSelectTarget(t)&&this.close()};this.docKeyDown=e=>{if(e.key!=="Escape")return;if([...this.selectControls].find(r=>r.isOpen())?.close(!0)){e.preventDefault(),e.stopImmediatePropagation();return}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.destroySelectControls(),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=f("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=f("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 w=f("div","mach-column-panel-actions"),C=(k,M)=>{let V=f("button","mach-column-panel-btn");return V.type="button",V.textContent=this.core.getLocaleText(k),V.addEventListener("click",()=>{r.sorting.setModel(M?[{colId:e.id,direction:M}]:[]),this.close()}),V};w.append(C("sortAsc","asc"),C("sortDesc","desc"),C("clearSort",null)),o.appendChild(w)}let s=f("div","mach-column-panel-actions"),a=(w,C)=>{let k=f("button","mach-column-panel-btn");return k.type="button",k.textContent=this.core.getLocaleText(w),k.addEventListener("click",()=>{e&&r.columns.setPinned(e.id,C),this.close()}),k};e&&(s.append(a("pinLeft","left"),a("pinRight","right"),a("clearPin",null)),o.appendChild(s));let l=f("div","mach-column-panel-actions"),d=f("button","mach-column-panel-btn");d.type="button",d.textContent=this.core.getLocaleText("autoSize"),d.addEventListener("click",()=>{e?r.columns.autoSize(e.id):r.columns.autoSizeAll(),this.close()});let c=f("button","mach-column-panel-btn");c.type="button",c.textContent=this.core.getLocaleText("hideColumn"),c.addEventListener("click",()=>{e&&r.columns.setVisible(e.id,!1),this.close()}),e&&(l.append(d,c),o.appendChild(l));let u=f("div","mach-column-panel-divider");o.appendChild(u);let h=f("div","mach-column-panel-subtitle");if(h.textContent=this.core.getLocaleText("columnVisibility"),o.appendChild(h),!e){let w=document.createElement("input");w.type="search",w.className="mach-column-workbench-search",w.placeholder=this.core.getLocaleText("search"),w.setAttribute("aria-label",this.core.getLocaleText("search")),w.value=this.searchText,w.addEventListener("input",()=>{this.searchText=w.value.trim().toLocaleLowerCase(),this.renderColumnList(p,!0)}),o.appendChild(w)}let p=f("div","mach-column-panel-list");this.renderColumnList(p,!e),o.appendChild(p);let m=f("div","mach-filter-footer"),g=f("button","mach-filter-btn-reset");g.type="button",g.textContent=this.core.getLocaleText("resetAll"),g.addEventListener("click",()=>{r.columns.resetState(),this.close()});let v=f("button","mach-filter-btn-apply");v.type="button",v.textContent=this.core.getLocaleText("autoSizeAll"),v.addEventListener("click",()=>{r.columns.autoSizeAll(),this.close()}),m.append(g,v),o.appendChild(m),A(o,this.core.skeleton.root),document.body.appendChild(o),this.panel=o,this.openColId=e?e.id:"__standalone__";let y=t.getBoundingClientRect(),b=o.getBoundingClientRect(),R=x(y.left,8,window.innerWidth-b.width-8),E=y.bottom+4;E+b.height>window.innerHeight-8&&(E=Math.max(8,y.top-b.height-4)),o.style.left=`${R}px`,o.style.top=`${E}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();this.destroySelectControls(e),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=f("div",t?"mach-column-workbench-item":"mach-filter-set-item"),a=f("label","mach-column-workbench-label"),l=document.createElement("input");l.type="checkbox",l.checked=!i.hide,l.disabled=i.hasCheckbox,l.addEventListener("change",()=>{r.columns.setVisible(i.id,l.checked),this.rebuildListStates()});let d=f("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=U({ariaLabel:`${d.textContent} ${this.core.getLocaleText("clearPin")}`,options:[{value:"",label:this.core.getLocaleText("clearPin")},{value:"left",label:this.core.getLocaleText("pinLeft")},{value:"right",label:this.core.getLocaleText("pinRight")}],value:i.pinned??"",classNames:{root:"mach-column-workbench-pin-control",native:"mach-column-workbench-pin"},themeSource:this.core.skeleton.root,onChange:m=>{r.columns.setPinned(i.id,m==="left"||m==="right"?m:null),this.rebuildListStates()}});c.trigger.disabled=!i.movable,c.native.disabled=!i.movable,this.selectControls.add(c),s.appendChild(c.el);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,g,v)=>{let y=f("button","mach-column-workbench-move");return y.type="button",y.textContent=m,y.disabled=v||i.hide||!i.movable,y.addEventListener("click",()=>{r.columns.move(i.id,g),this.rebuildListStates()}),y};s.append(p("\u2191",h-1,h<=0),p("\u2193",h+1,h<0||h>=u.length-1))}e.appendChild(s)}}containsSelectTarget(e){return[...this.selectControls].some(t=>t.contains(e))}destroySelectControls(e){for(let t of[...this.selectControls])e&&!e.contains(t.el)||(t.destroy(),this.selectControls.delete(t))}};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()}}resolveAnchor(e){if(e){let i=this.core.rowModel.getDisplayedRow(e.rowIndex),s=this.core.columnModel.getColumn(e.colId);return i&&s?{node:i,column:s}:null}let t=this.core.bodyRenderer.getNormalizedRangeOrFocus();if(!t)return null;let r=this.core.rowModel.getDisplayedRow(t.r1),o=this.core.columnModel.getOrderedVisible()[t.c1];return r&&o?{node:r,column:o}:null}readCustomItems(e,t){let r=this.core.options.getContextMenuItems;if(!r)return null;try{return r({data:e.data,node:e,api:this.core.getApi(),colId:t.id,value:this.core.getCellValue(e,t),rowIndex:e.rowIndex})??null}catch(o){return this.core.reportError(o,"getContextMenuItems",{colId:t.id,rowId:e.id}),null}}populateCustomPanel(e,t,r,o){let i=!1;for(let s of t){if(s.separator){e.appendChild(f("div","mach-context-menu-separator"));continue}let a=f("button","mach-context-menu-item");a.type="button",a.textContent=s.label??"",s.danger&&a.classList.add("mach-context-menu-item--danger"),a.disabled=s.disabled===!0,a.disabled||(i=!0,a.addEventListener("click",()=>this.runCustomItem(s,r,o))),e.appendChild(a)}return i}runCustomItem(e,t,r){this.close();try{e.action?.()}catch(o){this.core.reportError(o,"contextMenu.action",{colId:r.id,rowId:t.id})}}appendDefaultButton(e,t,r){let o=f("button","mach-context-menu-item");o.type="button",o.textContent=t,o.addEventListener("click",r),e.appendChild(o)}populateDefaultPanel(e){let t=this.core;this.appendDefaultButton(e,t.getLocaleText("menuCopy"),()=>{t.copyActiveRange(),this.close()}),!t.options.suppressClipboard&&(this.appendDefaultButton(e,t.getLocaleText("menuPaste"),()=>{t.pasteFromSystemClipboard(),this.close()}),this.appendDefaultButton(e,t.getLocaleText("menuClearContents"),()=>{let r=t.bodyRenderer.getNormalizedRangeOrFocus();r&&t.clearRangeValues(r),this.close()}))}open(e,t,r){this.close();let o=this.resolveAnchor(r);if(!o)return;let i=f("div","mach-context-menu");if(i.setAttribute("role","menu"),this.core.options.getContextMenuItems){let s=this.readCustomItems(o.node,o.column);if(!s||!this.populateCustomPanel(i,s,o.node,o.column))return;this.attach(i,e,t);return}this.populateDefaultPanel(i),this.attach(i,e,t)}attach(e,t,r){A(e,this.core.skeleton.root),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 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=this.resolveCell(r);if(!o||r.classList.contains("mach-cell--editing"))return;let i=this.createParams(o.node,o.column,o.index);this.hasTooltipValue(i,o.column)&&(this.showTimer=window.setTimeout(()=>{this.core.isDestroyed()||this.currentCell!==r||this.showPanel(r,i)},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)}resolveCell(e){let t=e.dataset.colId??"",r=Number(e.closest(".mach-row")?.dataset.index);if(Number.isNaN(r))return null;let o=this.core.rowModel.getDisplayedRow(r),i=t?this.core.columnModel.getColumn(t):void 0;return!o||!i||o.isDetail||o.isGroup?null:{node:o,column:i,index:r}}createParams(e,t,r){return{data:e.data,node:e,api:this.core.getApi(),colId:t.id,value:this.core.getCellValue(e,t),formatted:K(this.core,e,t),rowIndex:r}}hasTooltipValue(e,t){let r=t.colDef.tooltipValueGetter;if(!r)return!!e.formatted;try{r({...e,colDef:t.colDef,column:t})}catch(o){this.core.reportError(o,"tooltipValueGetter",{colId:t.id,rowId:e.node.id})}return!0}showPanel(e,t){this.removePanel();let r=this.core.options.tooltipComponent;if(!r)return;let o=f("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),A(o,this.core.skeleton.root),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 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 tr=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 tr;function er(){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 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(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,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 ro(n,e){if(!(n==null||e==null))return[...new Set([...n,...e])]}function Li(n,e){return n===!0||e===!0?!0:n?e?{rowIds:ro(n.rowIds,e.rowIds),rowIndexes:n.rowIndexes==null||e.rowIndexes==null?void 0:[...new Set([...n.rowIndexes,...e.rowIndexes])],columns:ro(n.columns,e.columns),force:n.force===!0||e.force===!0,includePinned:n.includePinned===!0||e.includePinned===!0}:n:e}function Ai(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:Li(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=Ai(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 j=["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 re(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 ce={columnDefs:{kind:"array",update:"columnDefs"},rowData:{kind:"array",update:"rowData"},defaultColDef:{kind:"object",update:"options"},columnTypes:{kind:"object",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"},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"},persistence:{kind:"boolean-object",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"}},mt=Object.freeze(Object.keys(ce)),hl=Object.freeze(mt.filter(n=>ce[n].update==="options"));var Pi=new Set(j.map(n=>`on${n.charAt(0).toUpperCase()}${n.slice(1)}`));function rr(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 oo(n){let e={};for(let[t,r]of Object.entries(n)){if(Pi.has(t)){(r==null||typeof r=="function")&&(e[t]=r);continue}let o=ce[t];!o||!rr(r,o.kind)||(e[t]=r)}return e}var so=2e3,Gi=1e5,nr=512,Fi=1e4;function or(n){return Array.isArray(n)?[...new Set(n.slice(0,Gi).filter(e=>typeof e=="string"&&e.length>0&&e.length<=nr))]:[]}function no(n,e){return typeof n=="number"&&Number.isFinite(n)&&n>=1?Math.floor(n):e}function io(n){return typeof n=="number"&&Number.isFinite(n)&&n>0?n:void 0}function Ni(n,e){let t=io(e.flex);for(let r of["width","contentWidth"]){let o=io(e[r]);o!==void 0&&(n[r]=o)}e.flex===null?n.flex=null:t!==void 0&&(n.flex=t),(e.widthMode==="auto"||e.widthMode==="manual")&&(n.widthMode=e.widthMode)}function Oi(n,e){typeof e.hide=="boolean"&&(n.hide=e.hide),(e.pinned===null||e.pinned==="left"||e.pinned==="right")&&(n.pinned=e.pinned)}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>nr||e.has(r))return null;e.add(r);let o={colId:r};return Oi(o,t),Ni(o,t),o}function Bi(n){if(!Array.isArray(n))return[];let e=[],t=new Set;for(let r of n.slice(0,so)){let o=Hi(r,t);o&&e.push(o)}return e}function Vi(n){if(!Array.isArray(n))return[];let e=[],t=new Set;for(let r of n.slice(0,so)){if(r==null||typeof r!="object")continue;let o=r,i=typeof o.colId=="string"?o.colId.trim():"";!i||i.length>nr||t.has(i)||o.direction!=="asc"&&o.direction!=="desc"||(t.add(i),e.push({colId:i,direction:o.direction}))}return e}function z(n){if(n==null||typeof n!="object")return null;let e=n;if(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:Bi(e.columns),sortModel:Vi(e.sortModel),filterModel:$(e.filterModel),advancedFilterModel:O(e.advancedFilterModel),quickFilterText:typeof e.quickFilterText=="string"&&e.quickFilterText.trim()?e.quickFilterText.slice(0,Fi):null,pagination:{enabled:t.enabled===!0,page:no(t.page,1),pageSize:no(t.pageSize,20)},selectedRowIds:or(e.selectedRowIds),expandedRowIds:or(e.expandedRowIds),expandedGroupIds:or(e.expandedGroupIds)}}function ao(n,e){let t=z(n);if(!t)throw new TypeError("[MachTable] Cannot persist an invalid GridState snapshot.");let r=new Set(e);return{version:2,columns:r.has("columns")?t.columns:[],sortModel:r.has("sort")?t.sortModel:[],filterModel:r.has("filter")?t.filterModel:{},advancedFilterModel:r.has("filter")?t.advancedFilterModel:null,quickFilterText:r.has("filter")?t.quickFilterText:null,pagination:r.has("pagination")?t.pagination:{enabled:!1,page:1,pageSize:20},selectedRowIds:r.has("selection")?t.selectedRowIds:[],expandedRowIds:r.has("expansion")?t.expandedRowIds:[],expandedGroupIds:r.has("expansion")?t.expandedGroupIds:[]}}function zi(n){try{if(typeof structuredClone=="function")return structuredClone(n)}catch{}return Array.isArray(n)?[...n]:n!=null&&typeof n=="object"?{...n}:n}function co(n,e){let t=e?new Set(e.map(String)):null;return n.filter(r=>!t||t.has(r.rowId)).map(r=>({...r,data:zi(r.data),cells:r.cells.map(o=>({...o}))}))}function Wi(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 lo(n,e){let t=new Map;for(let r of n??[]){let o=Wi(r,e);o&&!t.has(o.rowId)&&t.set(o.rowId,o)}return[...t.values()]}function uo(n,e){let t=new Set(n.map(d=>d.rowId)),r=lo(e?.conflicts,t),o=new Set(r.map(d=>d.rowId)),i=lo(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 _i(n,e){if(e.serverData===void 0)return null;let t=n.rows.getById(e.rowId);if(!t||t.data==null)return null;let r=n.getOption("rowKey");if(r){let s=typeof r=="function"?r(e.serverData):q(e.serverData,r);return String(s)===e.rowId?{data:e.serverData,mergeIntoCurrent:!1}:null}let o=t.data;return o!=null&&e.serverData!=null&&typeof o=="object"&&typeof e.serverData=="object"?{data:o,mergeIntoCurrent:!0}:null}function ho(n,e,t){if(n.isDestroyed())return!1;if(t==="keepLocal")return!0;let r=_i(n,e);return r?(n.editing.rollback([e.rowId]),r.mergeIntoCurrent&&Object.assign(r.data,e.serverData),n.rows.transact({update:[r.data]}),n.editing.markSaved([e.rowId]),!0):!1}function po(n){return{setData:e=>n.setRowData(e),transact:e=>n.applyTransaction(e),transactAsync:(e,t)=>n.applyTransactionAsync(e,t),flushTransactions:()=>n.flushAsyncTransactions(),getCount:()=>n.getDisplayedRowCount(),getAt:e=>n.getRowNode(e),getById:e=>n.getNodeById(e),forEach:e=>n.forEachNode(e),forEachDisplayed:e=>n.forEachNodeAfterFilterAndSort(e),reorder:(e,t)=>n.reorderRows(e,t),isRemote:()=>n.isInfinite(),reload:e=>n.reload(e),ensureLoaded:(e,t,r)=>n.ensureRowsLoaded(e,t,r),purgeCache:()=>n.purgeDatasourceCache(),getCacheSnapshot:()=>n.getDatasourceCacheSnapshot()}}function fo(n){return{getDefinitions:()=>n.getColumnDefs(),setDefinitions:e=>n.setColumnDefs(e),getState:()=>n.getColumnState(),setState:e=>n.setColumnState(e),resetState:()=>n.resetColumnState(),setVisible:(e,t)=>n.setColumnVisibility(e,t),setPinned:(e,t)=>n.setColumnPinned(e,t),move:(e,t)=>n.moveColumn(e,t),setWidth:(e,t)=>n.setColumnWidth(e,t),fit:e=>n.sizeColumnsToFit(e),autoSize:(e,t)=>n.autoSizeColumn(e,t),autoSizeAll:e=>n.autoSizeAllColumns(e),getWorkbenchItems:()=>n.getColumnWorkbenchItems(),openWorkbench:e=>n.openColumnWorkbench(e),closeWorkbench:()=>n.closeColumnWorkbench()}}function mo(n){return{getRows:()=>n.getSelectedRows(),getVisibleRows:()=>n.getVisibleSelection(),getNodes:()=>n.getSelectedNodes(),getIds:()=>n.getSelectedIds(),setRows:(e,t)=>n.setSelection(e,t),setById:(e,t,r)=>n.selectNodeById(e,t,r),selectAll:e=>n.selectAll(e),clear:()=>n.deselectAll(),getMode:()=>n.getRowSelection(),setMode:e=>n.setRowSelection(e),getRange:()=>n.getRangeSelection(),clearRange:()=>n.clearRangeSelection()}}function go(n){return{startCell:e=>n.startEditingCell(e),startRow:e=>n.startEditingRow(e),isRowActive:e=>n.isRowEditing(e),stop:e=>n.stopEditing(e?.cancel===!0),getChanges:()=>n.getChanges(),getDirtyRowIds:()=>n.getDirtyRowIds(),markSaved:e=>n.markChangesSaved(e),rollback:e=>n.rollbackChanges(e),save:(e,t)=>n.saveEditingChanges(e,t),undo:()=>n.undo(),redo:()=>n.redo(),canUndo:()=>n.canUndo(),canRedo:()=>n.canRedo()}}function yo(n){return{get:()=>n.getState(),apply:(e,t)=>n.applyState(e,t)}}function vo(n){return{get:()=>n.getDiagnostics(),getPerformance:()=>n.getPerformanceSnapshot(),resetPerformance:()=>n.resetPerformanceMetrics()}}function wo(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 bo(n){return{getModel:()=>n.getSortModel(),setModel:e=>n.setSortModel(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 Ro(n){return{isRowExpanded:e=>n.isRowExpanded(e),setRowExpanded:(e,t)=>n.isRowExpanded(e)===t?!1:(t?n.expandRow(e):n.collapseRow(e),n.isRowExpanded(e)===t),isTreeRowLoading:e=>n.isTreeRowLoading(e),loadTreeChildren:(e,t)=>n.loadTreeChildren(e,t),isGroupExpanded:e=>n.isGroupExpanded(e),setGroupExpanded:(e,t)=>n.isGroupExpanded(e)===t?!1:(n.toggleRowGroup(e),n.isGroupExpanded(e)===t),setAllGroupsExpanded:e=>e?n.expandAllGroups():n.collapseAllGroups(),setAllDetailsExpanded:e=>e?n.expandAllDetails():n.collapseAllDetails()}}function To(n){return{getRoot:()=>n.getRootElement(),scrollToRow:(e,t)=>n.scrollToIndex(e,t),refreshCells:e=>n.refreshCells(e),refreshLayout:()=>n.refreshLayout(),flush:()=>n.flushUpdates(),setOverlay:e=>n.setOverlay(e),getPinnedRows:e=>e==="top"?n.getPinnedTopRowData():n.getPinnedBottomRowData(),setPinnedRows:(e,t)=>e==="top"?n.setPinnedTopRowData(t):n.setPinnedBottomRowData(t)}}function So(n){return{exportCsv:e=>n.getDataAsCsv(e),importCsv:(e,t)=>n.importCsv(e,t),print:e=>n.print(e),copyRange:()=>n.copyRangeToClipboard()}}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 Do(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 Ki(){return{datasourceChanged:!1,filterChanged:!1,needsCellRefresh:!1,needsColumnRebuild:!1,needsHeaderRebuild:!1,needsPoolRebuild:!1,needsRelayout:!1,needsRowRebuild:!1,needsStateLoad:!1,needsSummaryRefresh:!1,needsFeatureReload:!1}}function T(n,e){return Object.prototype.hasOwnProperty.call(n,e)}function L(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=L(n,t,r);return o===void 0||o===e?void 0:o}var ir=class{constructor(e){this.core=e;this.measureCanvas=null;this.asyncTransactions=[];this.asyncTransactionTimer=null}connectPublicApi(e){if(this.publicApi)throw new Error("[MachTable] Grid API is already connected.");this.publicApi=e}batch(e){let t=this.publicApi;if(!t)throw new Error("[MachTable] Grid API is not connected.");return this.core.batchUpdates(()=>e(t))}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.loadPersistedGridState(),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())}resetColumnState(){this.core.isDestroyed()||(this.core.columnModel.resetColumnState(),this.core.onColumnsStructureChanged())}setColumnVisibility(e,t){this.core.isDestroyed()||(this.core.columnModel.setColumnVisibility(e,t),this.core.onColumnsStructureChanged(),this.core.emit("columnVisibilityChanged",{colId:e,visible:t}))}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())}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(),r=t.filter(d=>d.pinned===null&&!d.colDef.suppressSizeToFit);if(r.length===0)return;let o=e??this.core.skeleton.measureViewportWidth();if(!Number.isFinite(o)||o<=0)return;let i=t.reduce((d,c)=>d+(c.pinned!==null||c.colDef.suppressSizeToFit?c.currentWidth:0),0),s=Ie(r.map(d=>({width:d.currentWidth,minWidth:d.colDef.minWidth,maxWidth:d.colDef.maxWidth})),Math.max(0,o-i)),a=this.core.options.columnLayout==="fit"&&e===void 0,l=r.filter((d,c)=>a?this.core.columnModel.setContentWidth(d,s[c]):this.core.columnModel.setColumnWidth(d,s[c]));this.core.relayoutColumns(),this.core.commitColumnWidths(l)}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(this.core.options.columnLayout==="fit"&&e.colDef.suppressSizeToFit)return!1;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(K(this.core,a[c],e));let d=(e.sortable?20:0)+(e.filterable?28:0)+(this.core.options.columnMenu?22:0)+28;return this.setAutoSizeWidth(e,Math.ceil(i)+d)}setAutoSizeWidth(e,t){return this.core.options.columnLayout==="fit"?this.core.columnModel.setContentWidth(e,t):this.core.columnModel.setColumnWidth(e,t)}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)}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.resolveRowId,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 saveEditingChanges(e,t){let r=co(this.core.changeTracker.getChanges(),t);if(r.length===0)return{submitted:[],saved:[],failures:[],conflicts:[]};let o=uo(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()}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(!0))}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?Do(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():Do(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=_e(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(de(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);Z(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>${re(d.colDef.headerName??d.colDef.field??d.id)}</th>`).join("")}</tr>`:"",a=o.map(d=>`<tr>${r.map(c=>{let u=K(this.core,d,c);return`<td>${re(u)}</td>`}).join("")}</tr>`).join(""),l=`<!doctype html><html><head><meta charset="utf-8"><title>${re(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>${re(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){return this.core.editingService.stopAsync(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})}getOption(e){return this.core.options[e]}updateOptions(e){this.core.isDestroyed()||(this.core.checkWarnings(e),e=oo(e),Object.keys(e).length!==0&&this.core.batchUpdates(()=>{let t=Ki(),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;T(e,"columnDefs")&&e.columnDefs!==r.columnDefs&&(r.columnDefs=Array.isArray(e.columnDefs)?e.columnDefs:[],t.needsColumnRebuild=!0,t.needsRowRebuild=!0),T(e,"rowData")&&(r.rowData=Array.isArray(e.rowData)?e.rowData:[],t.needsRowRebuild=!0),T(e,"initialState")&&e.initialState&&(r.initialState=e.initialState,t.stateToApply=e.initialState),this.updateEventHandlers(e)}updateEventHandlers(e){for(let t of j){let r=`on${t.charAt(0).toUpperCase()}${t.slice(1)}`;T(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),T(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=L(e.asyncTransactionWaitMillis,0,!0);i!==void 0&&(r.asyncTransactionWaitMillis=i),this.updateDynamicRowHeight(e,t),this.updateRangeAndFeedbackOptions(e)}updateDynamicRowHeight(e,t){if(!T(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()),T(e,"tooltipComponent")&&(t.tooltipComponent=e.tooltipComponent);let r=L(e.tooltipShowDelay,0);r!==void 0&&(t.tooltipShowDelay=r),e.flashCells!=null&&(t.flashCells=e.flashCells),T(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=L(e.page,1,!0),o=L(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),T(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||!T(me,r)||r===this.core.options.size)return;let o=me[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;T(e,"ariaLabel")&&(t.ariaLabel=e.ariaLabel??"MachTable data grid",r=!0),T(e,"ariaLabelledBy")&&(t.ariaLabelledBy=e.ariaLabelledBy??"",r=!0),T(e,"ariaDescribedBy")&&(t.ariaDescribedBy=e.ariaDescribedBy??"",r=!0),r&&this.core.skeleton.applyAriaLabels(t)}updateOverlayOptions(e){let t=this.core.options;T(e,"overlayNoRowsTemplate")&&(t.overlayNoRowsTemplate=e.overlayNoRowsTemplate??""),T(e,"overlayLoadingTemplate")&&(t.overlayLoadingTemplate=e.overlayLoadingTemplate??""),T(e,"overlayErrorTemplate")&&(t.overlayErrorTemplate=e.overlayErrorTemplate??""),e.allowUnsafeOverlayHtml!=null&&(t.allowUnsafeOverlayHtml=e.allowUnsafeOverlayHtml),T(e,"className")&&(t.className=e.className??"",this.core.skeleton.setCustomClass(t.className)),e.loading!=null&&(t.loading=e.loading),T(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),T(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={...Vt,...e.defaultColDef},t.needsColumnRebuild=!0),T(e,"columnTypes")&&e.columnTypes!==r.columnTypes&&(r.columnTypes=e.columnTypes??{},t.needsColumnRebuild=!0),T(e,"rowKey")){r.rowKey=e.rowKey;let o=e.rowKey;r.resolveRowId=o?({data:i})=>zt(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),T(e,"isTreeRowExpandable")&&(r.isTreeRowExpandable=e.isTreeRowExpandable,t.needsCellRefresh=!0),T(e,"loadTreeChildren")&&(r.loadTreeChildren=e.loadTreeChildren,t.needsCellRefresh=!0)}updateExtensionOptions(e,t){let r=this.core.options;T(e,"aggFuncs")&&(r.aggFuncs=e.aggFuncs,t.needsRowRebuild=!0),T(e,"components")&&(r.components=e.components,t.needsCellRefresh=!0),T(e,"actionPolicy")&&(r.actionPolicy=e.actionPolicy,t.needsCellRefresh=!0),T(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;T(e,"dataProcessor")&&e.dataProcessor!==r.dataProcessor&&(r.dataProcessor?.destroy?.(),r.dataProcessor=e.dataProcessor,t.needsRowRebuild=!0);let o=L(e.dataProcessorMinRows,1,!0);o!==void 0&&o!==r.dataProcessorMinRows&&(r.dataProcessorMinRows=o,t.needsRowRebuild=!0)}updatePersistenceOptions(e,t){let r=this.core.options;if(!T(e,"persistence"))return;let o=e.persistence;!o||typeof o.key!="string"||!o.key.trim()?r.persistence=null:r.persistence={key:o.key.trim(),debounceMs:L(o.debounceMs,0,!0)??160,...o.sections?{sections:[...new Set(o.sections)]}:{},...o.store?{store:o.store}:{}},t.needsStateLoad=!0}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=L(e.blockSize,1,!0),i=L(e.infiniteBufferRows,0,!0),s=L(e.maxBlocksInCache,1,!0),a=L(e.datasourceMaxConcurrentRequests,1,!0),l=L(e.blockPrefetch,0,!0),d=L(e.datasourceRetryCount,0,!0),c=L(e.datasourceRetryDelay,0,!0),u=L(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(T(e,"datasourceMode")){let o=e.datasourceMode==="block"?"block":"sequential";o!==r.datasourceMode&&(r.datasourceMode=o,t.datasourceChanged=!0)}if(T(e,"datasourceRowCount")){let o=e.datasourceRowCount==null?null:L(e.datasourceRowCount,0,!0)??null;o!==r.datasourceRowCount&&(r.datasourceRowCount=o,t.datasourceChanged=!0)}}updateDatasourceReference(e,t){let r=this.core.options;T(e,"datasource")&&e.datasource!==r.datasource&&(r.datasource=e.datasource,r.paginationEnabled=e.datasource==null&&r.paginationEnabled,t.datasourceChanged=!0,this.core.paginationBar.rebuild()),T(e,"detailRowRenderer")&&(r.detailRowRenderer=e.detailRowRenderer,t.needsCellRefresh=!0),T(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.loadPersistedGridState(),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 Ut({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 Ut({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:K(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=z(e);if(!r){this.core.reportError(new TypeError("[MachTable] GridState must use the current version 2 schema."),"gridState.apply");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??[])}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"){let t=this.core.options.overlayLoadingTemplate||this.core.buildDefaultLoadingState();this.core.skeleton.showOverlay("loading",t,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()}on(e,t){return this.core.eventBus.on(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()}};function Eo(n){let e=new ir(n),t,r,o,i,s,a,l,d,c,u,h,p,m={get rows(){return t??(t=Object.freeze(po(e)))},get columns(){return r??(r=Object.freeze(fo(e)))},get selection(){return o??(o=Object.freeze(mo(e)))},get editing(){return i??(i=Object.freeze(go(e)))},get filtering(){return s??(s=Object.freeze(wo(e)))},get sorting(){return a??(a=Object.freeze(bo(e)))},get pagination(){return l??(l=Object.freeze(Co(e)))},get hierarchy(){return d??(d=Object.freeze(Ro(e)))},get view(){return c??(c=Object.freeze(To(e)))},get state(){return u??(u=Object.freeze(yo(e)))},get io(){return h??(h=Object.freeze(So(e)))},get diagnostics(){return p??(p=Object.freeze(vo(e)))},batch:g=>e.batch(g),whenReady:()=>e.whenReady(),getOption:g=>e.getOption(g),updateOptions:g=>e.updateOptions(g),on:(g,v)=>e.on(g,v),destroy:()=>e.destroy(),isDestroyed:()=>e.isDestroyed()};return e.connectPublicApi(m),Object.freeze(m)}var qi=["compact","normal","large"],gt=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.resizeRaf=0;this.observedWidth=-1;this.observedHeight=-1;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=f("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=f("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=f("div",`mach-pane mach-pane--${o} mach-header-pane`),s=f("div","mach-header-rows");if(o==="center"){let a=f("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=f("div","mach-body"),this.pinnedTopEl=f("div","mach-pinned-rows mach-pinned-rows--top"),this.pinnedTopEl.style.display="none",this.pinnedBottomEl=f("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=f("div",`mach-pane mach-pane--${o} mach-body-pane`),s=f("div",`mach-body-viewport${o==="center"?" mach-body-viewport--scroll":""}`),a=f("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=f("div","mach-overlay"),this.overlayWrapper.style.display="none",this.overlayWrapper.setAttribute("role","status"),this.overlayWrapper.setAttribute("aria-live","polite"),this.overlayContent=f("div","mach-overlay-content"),this.overlayWrapper.appendChild(this.overlayContent),this.infiniteLoadingEl=f("div","mach-infinite-loading"),this.infiniteLoadingEl.style.display="none",this.infiniteLoadingEl.appendChild(f("div","mach-spinner")),this.infiniteLoadingText=f("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(o=>{let i=o[o.length-1]?.contentRect;if(!i)return;let s=Math.round(i.width),a=Math.round(i.height);s===this.observedWidth&&a===this.observedHeight||(this.observedWidth=s,this.observedHeight=a,!this.resizeRaf&&(this.resizeRaf=requestAnimationFrame(()=>{this.resizeRaf=0,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=f("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(){let e=this.bodyViewports.center,t=Math.max(0,e.offsetWidth-e.clientWidth);return Math.max(0,this.bodyEl.clientWidth-t)}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 qi)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))}resolveOverlayContent(e){try{return typeof e=="function"?e():e}catch(t){return this.core.reportError(t,"overlayTemplate"),""}}renderOverlayContent(e,t,r){if(typeof t=="object"&&t!=null&&"el"in t){this.overlayContent.appendChild(t.el),this.overlayCleanup=t.destroy??null;return}if(t instanceof HTMLElement){this.overlayContent.appendChild(t);return}if(t){r?this.overlayContent.innerHTML=t:this.overlayContent.textContent=t;return}if(e!=="loading")return;let o=f("div","mach-spinner");o.setAttribute("aria-label","loading"),this.overlayContent.appendChild(o)}showOverlay(e,t,r=!1){this.currentOverlay===e&&this.currentOverlayContent===t&&this.currentOverlayAllowsHtml===r||(this.currentOverlay=e,this.currentOverlayContent=t,this.currentOverlayAllowsHtml=r,this.cleanupOverlayContent(),this.overlayContent.replaceChildren(),this.renderOverlayContent(e,this.resolveOverlayContent(t),r),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.resizeRaf&&cancelAnimationFrame(this.resizeRaf),this.resizeRaf=0,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 $i={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 yt(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=$i[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 xo(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 Ui(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 ue=class{constructor(){this.offsets=new Float64Array(1)}update(e){let t=0,r=this.offsets.length!==e.length+1;for(let i=0;i<e.length;i++)t+=e[i].currentWidth,!r&&this.offsets[i+1]!==t&&(r=!0);if(!r)return!1;let o=new Float64Array(e.length+1);for(let i=0;i<e.length;i++)o[i+1]=o[i]+e[i].currentWidth;return this.offsets=o,!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,xo(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,xo(this.offsets,i)-1),l=Math.min(o,Ui(this.offsets,s));return{first:Math.max(0,a-r),lastExcl:Math.min(o,l+r)}}};var ji=".mach-header-resize, .mach-filter-btn, .mach-menu-btn, .mach-select-all";function sr(n){return n instanceof HTMLElement&&n.closest(ji)!=null}function ar(n){return n==="ArrowLeft"||n==="ArrowRight"}var vt=class{constructor(e){this.core=e;this.leafCells=[];this.groupCells=[];this.paneTrees={left:[],center:[],right:[]};this.columnViewport=new ue;this.centerFirst=0;this.centerLastExcl=Number.MAX_SAFE_INTEGER}build(){this.updateColumnWindowState(),this.core.resizeService.cancelResize();for(let l of this.leafCells){let d=Jt(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 ee){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=f("div","mach-header-cell mach-header-cell--leaf");e.hasCheckbox&&o.classList.add("mach-header-cell--selection"),o.dataset.colId=e.id,o.setAttribute("role","columnheader"),o.style.height=`${t*r}px`,this.applyLeafPresentation(o,e),this.attachHeaderFocus(o,e);let i=this.appendSelectAll(o,e);this.appendHeaderContent(o,e);let s=f("span","mach-sort-indicator");o.appendChild(s);let{filterBtn:a,filterTagEl:l}=this.appendFilterControls(o,e);return this.appendColumnMenu(o,e),this.appendResizeHandle(o,e),this.attachLeafInteractions(o,e),{column:e,el:o,sortEl:s,filterBtn:a,filterTagEl:l,selectAllEl:i}}applyLeafPresentation(e,t){let r=t.colDef;typeof r.headerClass=="string"?e.classList.add(r.headerClass):Array.isArray(r.headerClass)&&e.classList.add(...r.headerClass),r.headerTooltip&&e.setAttribute("title",r.headerTooltip);let o=r.headerAlign??r.align;o==="center"?e.classList.add("mach-header-cell--center"):o==="right"&&e.classList.add("mach-header-cell--right")}attachHeaderFocus(e,t){this.core.options.suppressHeaderFocus||(e.tabIndex=-1,e.addEventListener("mousedown",()=>this.focusHeaderCell(t)),e.addEventListener("keydown",r=>this.onHeaderKeyDown(r,t)))}appendSelectAll(e,t){if(!t.hasCheckbox||this.core.options.rowSelection!=="multiple")return;let r=document.createElement("input");return r.type="checkbox",r.className="mach-select-all",r.setAttribute("aria-label","select all rows"),r.addEventListener("click",o=>o.stopPropagation()),r.addEventListener("change",()=>{r.checked?this.core.selectionService.selectAll(!0):this.core.selectionService.deselectAll()}),e.appendChild(r),r}appendHeaderContent(e,t){let r=t.colDef,o=r.headerComponent,i;if(!o){this.appendHeaderLabel(e,r.headerName??r.field??t.id);return}try{i=o({colDef:r,column:t,api:this.core.getApi()})}catch(s){this.core.reportError(s,"headerComponent",{colId:t.id}),i=null}this.appendHeaderComponentOutput(e,t,i)}appendHeaderComponentOutput(e,t,r){if(typeof r=="string"){this.appendHeaderLabel(e,r);return}if(r instanceof HTMLElement){this.appendCustomHeader(e,r);return}if(r&&typeof r=="object"&&r.el instanceof HTMLElement){this.appendCustomHeader(e,r.el),Jr(e,r.destroy);return}let o=t.colDef;this.appendHeaderLabel(e,o.headerName??o.field??t.id)}appendHeaderLabel(e,t){let r=f("span","mach-header-label");r.textContent=t,e.appendChild(r)}appendCustomHeader(e,t){let r=f("span","mach-header-label mach-header-label--custom");r.appendChild(t),e.appendChild(r)}appendFilterControls(e,t){if(!t.filterable)return{};let r=document.createElement("button");r.type="button",r.className="mach-filter-btn",r.setAttribute("aria-label",`filter ${t.id}`),r.innerHTML=zr,r.addEventListener("click",i=>{i.stopPropagation(),this.core.filterPopup.toggle(t,r)}),e.appendChild(r);let o=f("span","mach-filter-tag");return e.appendChild(o),{filterBtn:r,filterTagEl:o}}appendColumnMenu(e,t){if(!this.core.options.columnMenu||t.hasCheckbox||t.colDef.suppressColumnMenu)return;let r=document.createElement("button");r.type="button",r.className="mach-menu-btn";let i=`${t.colDef.headerName??t.colDef.field??t.id} \xB7 ${this.core.getLocaleText("columnSettings")}`;r.setAttribute("aria-label",i),r.title=i,r.innerHTML=Kr,r.addEventListener("click",s=>{s.stopPropagation(),this.core.columnMenu.toggle(t,r)}),e.appendChild(r)}appendResizeHandle(e,t){if(!this.canResizeColumn(t))return;let r=f("div","mach-header-resize");r.setAttribute("aria-hidden","true"),r.addEventListener("pointerdown",o=>{o.button===0&&(o.preventDefault(),o.stopPropagation(),this.core.resizeService.startResize(o,t))}),r.addEventListener("dblclick",o=>{o.stopPropagation(),this.core.getApi().columns.autoSize(t.id)}),r.addEventListener("click",o=>o.stopPropagation()),e.appendChild(r)}attachLeafInteractions(e,t){e.addEventListener("click",r=>{this.core.columnDragService.didDrag()||sr(r.target)||t.sortable&&this.core.cycleSort(t,r.shiftKey)}),e.addEventListener("pointerdown",r=>{r.button!==0||sr(r.target)||this.core.columnDragService.onPointerDown(r,t)})}createGroupCell(e){let t=f("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=f("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){this.core.isDestroyed()||this.activateHeaderFromKeyboard(e,t)||this.resizeColumnFromKeyboard(e,t)||this.moveColumnFromKeyboard(e,t)||this.focusAdjacentHeader(e,t)||this.focusBoundaryHeader(e)}activateHeaderFromKeyboard(e,t){return e.key!=="Enter"&&e.key!==" "?!1:(sr(e.target)||(e.preventDefault(),t.sortable&&this.core.cycleSort(t,e.shiftKey)),!0)}resizeColumnFromKeyboard(e,t){if(!e.altKey||!ar(e.key))return!1;if(!this.canResizeColumn(t))return!0;let r=e.key==="ArrowRight"?24:-24,o=Math.max(t.colDef.minWidth??40,t.currentWidth+r);return this.core.columnModel.setColumnWidth(t,o),this.core.relayoutColumns(),this.core.commitColumnWidths([t]),e.preventDefault(),!0}moveColumnFromKeyboard(e,t){if(!e.ctrlKey||!ar(e.key))return!1;if(!t.movable)return!0;e.preventDefault();let r=this.core.columnModel.paneOf(t),o=this.core.columnModel.getPaneColumns(r),i=o.indexOf(t),s=e.key==="ArrowRight"?1:-1,a=Math.max(0,Math.min(o.length-1,i+s));return a!==i&&this.core.moveColumn(t.id,a),!0}focusAdjacentHeader(e,t){if(e.altKey||e.ctrlKey||e.metaKey||!ar(e.key))return!1;e.preventDefault();let r=this.core.columnModel.getOrderedVisible(),o=r.indexOf(t);if(o<0)return!0;let i=e.key==="ArrowRight"?1:-1,s=Math.max(0,Math.min(r.length-1,o+i));return this.focusHeaderCell(r[s]),!0}focusBoundaryHeader(e){if(e.key!=="Home"&&e.key!=="End")return!1;e.preventDefault();let t=this.core.columnModel.getOrderedVisible();if(t.length===0)return!0;let r=e.key==="Home"?0:t.length-1;return this.focusHeaderCell(t[r]),!0}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"?Wr:_r)+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?yt(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=Jt(e.el);if(t)try{t()}catch(r){console.error("[mach-table] headerComponent destroy error",r)}}this.leafCells=[],this.groupCells=[]}};var wt=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 bt=class{constructor(e,t,r){this.core=e;this.getRowTop=t;this.findRowAt=r;this.state=null;this.moveRaf=0;this.pendingClientY=null;this.onMove=e=>{let t=this.state;if(t){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")}this.pendingClientY=e.clientY,!this.moveRaf&&(this.moveRaf=requestAnimationFrame(()=>{this.moveRaf=0;let r=this.pendingClientY;this.pendingClientY=null,r!==null&&this.updateIndicator(r)}))}};this.onUp=e=>{e.type!=="pointercancel"&&this.state?.active&&this.updateIndicator(e.clientY);let t=this.takeState();if(e.type==="pointercancel"||!t||!t.active||t.targetIndex<0)return;let r=t.node.rowIndex,o=Math.max(0,Math.min(t.targetIndex,this.core.rowModel.getDisplayedRowCount()));r===o||r===o-1||(this.core.emit("rowDragEnd",{rowNode:t.node,fromIndex:r,toIndex:o}),this.core.options.applyRowDrag&&!this.core.rowModel.isTree&&this.core.rowModel.reorderRowsByDisplayed(r,o>r?o-1:o))}}start(e,t){this.destroy();let r=f("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,viewportTop:this.core.skeleton.bodyViewports.center.getBoundingClientRect().top},window.addEventListener("pointermove",this.onMove),window.addEventListener("pointerup",this.onUp),window.addEventListener("pointercancel",this.onUp)}updateIndicator(e){let t=this.state;if(!t?.active)return;let r=this.core.skeleton.bodyViewports.center,o=e-t.viewportTop+r.scrollTop,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.transform=`translate3d(0, ${d}px, 0)`}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.moveRaf&&cancelAnimationFrame(this.moveRaf),this.moveRaf=0,this.pendingClientY=null,this.core.skeleton.root.classList.remove("mach-root--row-dragging")}destroy(){this.takeState()}};var Ct=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 N=["left","center","right"];function Mo(n){return!!n&&!n.hasCheckbox&&!n.isDetailToggle&&!n.colDef.rowDrag}function ko(n){let e=n.length>1&&n.every(o=>typeof o=="number"&&!Number.isNaN(o)),t=e?(n[n.length-1]-n[0])/(n.length-1):0,r=!e||n.every(o=>Number.isInteger(o));return{difference:t,integer:r,numeric:e,values:n}}function Io(n,e){let t=n.values.length;if(t===1)return n.values[0];if(!n.numeric)return n.values[e%t];let r=n.values[t-1]+n.difference*(e-t+1);return n.integer?Math.round(r):Math.round(r*1e6)/1e6}var Rt=class{constructor(e){this.core=e;this.pool=[];this.poolSize=0;this.first=0;this.lastExcl=-1;this.rafId=0;this.lastScrollLeft=0;this.lastScrollTop=0;this.hoverIndex=-1;this.rowSizes=new Ct;this.columnViewport=new ue;this.rangeSelection=new wt;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=e.target,r=this.resolveEventTarget(e);if(r&&!t.closest(".mach-cell-editor-shell, .mach-row-editor-shell")&&!(e.detail>1&&this.core.editingService.isCellEditing())){if(this.core.editingService.isCellEditing()){let o=r.cellEl?.dataset.colId??"";if(this.core.editingService.isEditing(r.index,o))return;this.core.editingService.stopAsync(!1).then(i=>{if(!i||this.core.isDestroyed())return;this.handleBodyClick(e,t,r);let s=o?this.core.columnModel.getColumn(o):void 0;s&&!this.core.editingService.isCellEditing()&&this.core.editingService.isEditable(r.node,s)&&this.core.editingService.start(r.index,s)});return}this.handleBodyClick(e,t,r)}};this.onBodyDblClick=e=>{if(this.core.isDestroyed()||e.target.closest(".mach-cell-editor-shell, .mach-row-editor-shell"))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.shouldIgnoreRangeMouseDown(e)&&this.core.options.enableRangeSelection&&e.button===0){let t=this.resolveEventTarget(e);if(t&&!t.node.isDetail&&!t.node.isGroup&&t.cellEl&&!t.cellEl.classList.contains("mach-cell--selection")){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 bt(e,t=>this.rowTop(t),t=>this.rowAtOffset(t,this.core.rowModel.getDisplayedRowCount()))}init(){let e=this.core.skeleton.bodyViewports.center;this.lastScrollLeft=e.scrollLeft,this.lastScrollTop=e.scrollTop,e.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 N)for(let i of r.cells[o]??[])r.index>=0&&this.core.editingService.releaseCell(r.index,i.dataset.colId??"",i),I(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(e=!1){if(this.core.isDestroyed())return;let t=this.core.skeleton,r=t.bodyViewports.center,o=r.scrollLeft,i=r.scrollTop,s=e||o!==this.lastScrollLeft,a=e||i!==this.lastScrollTop;!s&&!a||(this.lastScrollLeft=o,this.lastScrollTop=i,s&&(t.headerRowContainers.center.style.transform=`translate3d(${-o}px, 0, 0)`,this.core.headerRenderer.updateColumnWindow(),this.core.pinnedRowsRenderer.onScrollLeft(o)),a&&(t.rowContainers.left.style.transform=`translate3d(0, ${-i}px, 0)`,t.rowContainers.right.style.transform=`translate3d(0, ${-i}px, 0)`),this.core.tooltipService.hide(),this.updateRange(!1,s),a&&this.core.rowModel.checkInfiniteScroll(this.lastExcl-1))}paneWidths(){let e={left:0,center:0,right:0};for(let t of N)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=this.core.rowModel.getDisplayedRows(),o=this.resolveRowLayout(r.length);this.syncRowSizeIndex(r,o);let i=this.totalRowLayoutHeight(o);this.applyRowContainerDimensions(t,i),this.applyDomLayoutHeight(i),e.root.setAttribute("aria-rowcount",String(o.rowCount+e.getHeaderRowCount()))}resolveRowLayout(e){let t=this.core.rowModel.getDisplayTotalCount(),r=this.core.options.rowHeight,o=this.core.options.masterDetail?[]:this.collectAutoHeightColumns(),i=this.core.options.datasourceMode!=="block"&&(this.core.options.masterDetail||this.core.options.getRowHeight!=null||o.length>0),s=i?this.variableRowLayoutSignature(r,o):`fixed|${r}`;return{autoHeightColumns:o,positionedCount:Math.min(t,e),rowCount:t,rowHeight:r,signature:s,variable:i}}variableRowLayoutSignature(e,t){let r=t.map(o=>`${o.id}:${o.currentWidth}`).join(",");return`${this.core.rowModel.getDisplayRevision()}|${e}|${this.core.options.detailRowHeight}|${r}`}syncRowSizeIndex(e,t){if(!t.variable){this.resetFixedRowSizes(t);return}if(t.signature!==this.rowLayoutSignature||this.rowSizes.length!==t.positionedCount){let r=e.slice(0,t.positionedCount);this.rowSizes.reset(r,o=>this.resolveRowHeight(o,t.autoHeightColumns)),this.completeRowSizeSync(t);return}if(this.dirtyHeightNodes.size!==0){for(let r of this.dirtyHeightNodes){let o=this.rowSizes.indexOf(r);o>=0&&this.rowSizes.update(o,this.resolveRowHeight(r,t.autoHeightColumns))}this.completeRowSizeSync(t)}}resetFixedRowSizes(e){this.rowSizes.length>0&&this.rowSizes.reset([],()=>e.rowHeight),this.rowLayoutSignature=e.signature,this.dirtyHeightNodes.clear(),this.lastMinRowHeight=e.rowHeight}completeRowSizeSync(e){this.rowLayoutSignature=e.signature,this.dirtyHeightNodes.clear(),this.lastMinRowHeight=this.rowSizes.minimumSize()||e.rowHeight}totalRowLayoutHeight(e){return(e.variable?this.rowSizes.totalSize():e.positionedCount*e.rowHeight)+Math.max(0,e.rowCount-e.positionedCount)*e.rowHeight}applyRowContainerDimensions(e,t){let r=this.core.skeleton,o=r.bodyViewports.center,i=Math.max(0,o.clientWidth-e.left-e.right),s=Math.max(e.center,i);for(let a of N){let l=r.rowContainers[a];l.style.height=`${t}px`,a==="center"&&(l.style.width=`${s}px`)}}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=K(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 g=r.measureText(m).width;if(p>0&&p+g>u?(h++,p=g):p+=g,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=we(o),s=i.flashTimer;s&&clearTimeout(s),i.flashTimer=window.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,s=i%2===0?i:i+1;if(this.computeColWindow())for(let l of this.pool)this.reconcilePaneCells(l,"center");s>this.poolSize&&this.growPool(s),this.applyCellLayout(),this.updateRange(!0,!1),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 N){if(this.core.columnModel.getPaneColumns(o).length===0)continue;let s=f("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=f("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=f("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),I(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 N){for(let r of e.cells[t]??[])I(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.hasVariableRowHeights();for(let t of N){let r=this.core.columnModel.getPaneColumns(t),o=this.activePaneColumns(t),i=this.paneColumnLefts(t,o,r);this.layoutPoolPane(t,o,i,e)}this.applyDetailRowHeight()}hasVariableRowHeights(){return this.core.options.masterDetail||this.core.options.getRowHeight!=null||this.hasAnyAutoHeight}paneColumnLefts(e,t,r){let o=0;e==="center"&&t.length>0&&(this.columnViewport.update(r),o=this.columnViewport.offsetAt(r.indexOf(t[0])));let i=[];for(let s of t)i.push(o),o+=s.currentWidth;return i}layoutPoolPane(e,t,r,o){for(let i of this.pool){let s=i.cells[e],a=i.rows[e];if(!s||!a)continue;o||(a.style.height=`${this.core.options.rowHeight}px`);let l=Math.min(t.length,s.length);for(let d=0;d<l;d++){let c=t[d];s[d].style.width=`${c.currentWidth}px`,s[d].style.left=`${r[d]}px`,s[d].setAttribute("aria-colindex",String(this.core.columnModel.getFlatIndex(c.id)+1))}}}applyDetailRowHeight(){if(!this.core.options.masterDetail)return;let e=`${this.core.options.detailRowHeight}px`;for(let t of this.pool)t.detailRow?.style.setProperty("--mach-detail-h",e)}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,t=!0){let r=this.core.performanceMonitor.start();if(!this.updateRangeInner(e,t))return;let o=Math.max(0,this.lastExcl-this.first),i=this.core.columnModel.getPaneColumns("left").length+this.activePaneColumns("center").length+this.core.columnModel.getPaneColumns("right").length;this.core.performanceMonitor.recordRender(r,o,i)}updateRangeInner(e,t){let r=this.core.skeleton.bodyViewports.center,o=this.core.rowModel.getDisplayedRowCount(),i=this.core.options.rowBuffer,s=t?this.computeColWindow():!1;if(this.reconcileColumnWindow(s),o===0){for(let d of this.pool)this.hideSlot(d);return this.first=0,this.lastExcl=0,!0}if(this.renderAutoHeightRange(o,e))return!0;let{first:a,lastExcl:l}=this.calculateVisibleRange(r,o,i);return!e&&a===this.first&&l===this.lastExcl?s:(this.first=a,this.lastExcl=l,this.hideOutsideRange(a,l),this.renderVirtualRange(a,l,e,s),!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 N){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){this.assignDetailSlot(e,r,t,o,i);return}this.assignMasterSlot(e,r,t,o,i)}assignDetailSlot(e,t,r,o,i){e.kind="detail";for(let a of N){let l=e.rows[a];l&&(l.style.display="none")}let s=e.detailRow;s&&(s.style.display="",s.style.transform=`translateY(${o}px)`,s.style.height=`${i}px`,s.dataset.index=String(r),s.setAttribute("aria-rowindex",String(r+this.core.skeleton.getHeaderRowCount()+1)),this.renderDetailContent(s,t))}assignMasterSlot(e,t,r,o,i){e.kind="master",e.detailRow&&(e.detailRow.style.display="none");let s=this.resolveMasterRowState(t);for(let a of N){let l=e.rows[a];l&&(this.applyMasterRowState(l,t,r,o,i,s),this.renderPaneCells(e,t,a))}this.focusedCell&&this.focusedCell.rowIndex===r&&this.applyFocusClass()}resolveMasterRowState(e){let t=this.core.rowModel.isTree,r=e.isGroup===!0,o=t&&this.core.rowModel.hasChildren(e.id),i=r||o||this.core.options.masterDetail&&this.core.rowModel.isRowExpandable(e),s=r?this.core.rowModel.isGroupExpanded(e.id):this.core.rowModel.isRowExpanded(e.id),a=null;return r?a=(e.groupLevel??0)+1:t&&(a=this.core.rowModel.getTreeDepth(e)+1),{expanded:s,expandable:i,level:a}}applyMasterRowState(e,t,r,o,i,s){e.style.display="",e.style.transform=`translateY(${o}px)`,e.style.height=`${i}px`,e.dataset.index=String(r),e.dataset.id=t.id,e.setAttribute("aria-rowindex",String(r+this.core.skeleton.getHeaderRowCount()+1)),this.applyRowSelectionState(e,t);let a=this.hoverIndex===r&&!this.core.options.suppressRowHoverHighlight;e.classList.toggle("mach-row--hover",a),e.classList.toggle("mach-row--odd",r%2===1),this.applyExpandableRowState(e,s)}applyRowSelectionState(e,t){e.classList.toggle("mach-row--selected",t.selected),e.setAttribute("aria-selected",t.selected?"true":"false")}applyExpandableRowState(e,t){t.expandable?e.setAttribute("aria-expanded",t.expanded?"true":"false"):e.removeAttribute("aria-expanded"),t.level!=null?e.setAttribute("aria-level",String(t.level)):e.removeAttribute("aria-level")}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--,I(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=f("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),Xr(e,a.destroy))}}cleanupDetail(e){let t=Qr(e);if(t)try{t()}catch(r){this.core.reportError(r,"detailRowRenderer.destroy")}e.textContent=""}renderCell(e,t,r){if(t.loading){I(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"){I(this.core,e),this.renderStructuralCell(o,e,t,r);return}Ze(this.core,e,t,r),Ce(this.core,e,t,r),Je(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":ie(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=f("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=f("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 if(e==="index"){t.textContent=String(this.core.rowModel.getRowSeq(r)+this.core.options.indexOffset);let s=`mach-cell mach-cell--index${o.colDef.align==="right"?" mach-cell--right":o.colDef.align==="center"?" mach-cell--center":""}`;t.className!==s&&(t.className=s),this.applyCellSpanStyle(t,r,o)}else 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 N)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&&!ie(e.colDef,"index"))??null,this.treeColumnCache)}renderTreeCell(e,t,r){let o=this.core.rowModel.isRowExpandable(t),i=this.getNodeDepth(t),s=f("span","mach-tree-indent");s.style.width=`${i*16}px`;let a=f("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=f("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=f("span","mach-tree-toggle-spacer");a.appendChild(d)}let l=f("span","mach-tree-text");l.textContent=be(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){if(r.hasCheckbox){this.renderGroupCheckbox(e,t);return}if(r.isDetailToggle){this.clearGroupCell(e);return}let o=this.core.columnModel.getGroupLabelColumn();if(o&&r.id===o.id){this.renderGroupLabel(e,t);return}this.renderGroupAggregate(e,t,r)||this.clearGroupCell(e)}renderGroupCheckbox(e,t){let r=e.querySelector(".mach-row-checkbox");if(r){let o=this.core.selectionService.getGroupSelectionState(t);r.checked=o.all,r.indeterminate=o.some&&!o.all}e.className!=="mach-cell mach-cell--selection"&&(e.className="mach-cell mach-cell--selection")}renderGroupLabel(e,t){let r=this.core.rowModel.isGroupExpanded(t.id),o=t.groupLevel??0;e.setAttribute("aria-expanded",r?"true":"false"),e.setAttribute("aria-level",String(o+1));let i=f("span","mach-group-label");i.style.paddingLeft=`${o*16}px`;let s=f("span",`mach-detail-toggle${r?" mach-detail-toggle--open":""}`);s.textContent="\u25B6";let a=f("span","mach-group-text"),l=this.core.columnModel.getRowGroupColumns()[o],d=l?.colDef.headerName?`${l.colDef.headerName}: `:"";a.textContent=`${d}${t.groupKey??""}`;let c=f("span","mach-group-count");c.textContent=`(${t.leafNodes?.length??0})`,i.append(s,a,c),e.replaceChildren(i),e.className!=="mach-cell mach-cell--group"&&(e.className="mach-cell mach-cell--group")}renderGroupAggregate(e,t,r){if(!r.colDef.aggFunc||!t.aggValues||!Object.prototype.hasOwnProperty.call(t.aggValues,r.id))return!1;let o=t.aggValues[r.id];return e.textContent=r.colDef.valueFormatter!=null?be(this.core,t,r,o):Qe(o),e.className!=="mach-cell mach-cell--num"&&(e.className="mach-cell mach-cell--num"),!0}clearGroupCell(e){e.textContent="",e.className!=="mach-cell"&&(e.className="mach-cell")}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 N){let a=o.rows[s];a&&this.applyRowSelectionState(a,i),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 N)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&&I(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){let t=e.overlayLoadingTemplate||this.core.buildDefaultLoadingState();this.core.skeleton.showOverlay("loading",t,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=f("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++)this.fillHorizontalRow(l,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()}))}fillHorizontalRow(e,t,r,o,i,s){let a=this.core.rowModel.getDisplayedRow(e);if(!a||a.isDetail||a.isGroup)return;let l=[];for(let c=t;c<=r;c++){let u=i[c];l.push(u?this.core.getCellValue(a,u):void 0)}let d=ko(l);for(let c=r+1;c<=o;c++){let u=i[c];if(!Mo(u)||!this.core.editingService.isEditable(a,u))continue;let h=Io(d,c-t),p=this.core.getCellValue(a,u);this.core.setCellValue(a,u,h,p)&&s.add(e)}}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];Mo(d)&&this.fillColumnDown(d,e,t,i,a)}}fillColumnDown(e,t,r,o,i){let s=this.verticalSourceValues(e,t,r);if(s.length===1&&s[0]===void 0)return;let a=ko(s);for(let l=r+1;l<=o;l++){let d=this.core.rowModel.getDisplayedRow(l);if(!d||d.isDetail||d.isGroup||!this.core.editingService.isEditable(d,e))continue;let c=Io(a,l-t),u=this.core.getCellValue(d,e);this.core.setCellValue(d,e,c,u)&&i.add(l)}}verticalSourceValues(e,t,r){let o=[];for(let i=t;i<=r;i++){let s=this.core.rowModel.getDisplayedRow(i);o.push(s?this.core.getCellValue(s,e):void 0)}return o}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 N)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}}handleBodyClick(e,t,r){let{node:o,index:i,cellEl:s}=r;if(this.handleGroupRowClick(t,o,s)||this.handleTreeToggleClick(t,o,s))return;let a=s?.dataset.colId??"",l=a?this.core.columnModel.getColumn(a):void 0;this.handleDetailToggleClick(o,l)||o.isDetail||this.handleSelectionCheckboxClick(t,o,i,e)||!s||!l||(this.focusGridRoot(),this.core.options.suppressCellFocus||this.setFocusedCell(i,a),this.core.selectionService.onRowClick(o,e,!1),this.emitCellClick(e,o,i,l),this.maybeStartSingleClickEdit(o,i,l))}handleGroupRowClick(e,t,r){if(!t.isGroup)return!1;if(this.focusGridRoot(),e.closest(".mach-row-checkbox")){let i=this.core.selectionService.getGroupSelectionState(t).all;return this.core.selectionService.setGroupSelected(t,!i),!0}let o=this.core.columnModel.getGroupLabelColumn();return(!o||!r||r.dataset.colId===o.id)&&this.core.rowModel.toggleGroup(t.id),!0}handleDetailToggleClick(e,t){return!t?.isDetailToggle||e.isDetail?!1:(this.focusGridRoot(),this.core.toggleDetail(e.id),!0)}handleSelectionCheckboxClick(e,t,r,o){let i=e.closest(".mach-cell--selection");return i?(this.focusGridRoot(),this.core.options.suppressCellFocus||this.setFocusedCell(r,i.dataset.colId??""),this.clearRangeSelection(),this.core.selectionService.onRowClick(t,o,!0),!0):!1}emitCellClick(e,t,r,o){let i=this.core.getCellValue(t,o),s=this.core.emit("cellClicked",{event:e,rowNode:t,rowIndex:r,column:o,colDef:o.colDef,value:i});o.colDef.onCellClick?.(s),this.core.emit("rowClicked",{event:e,rowNode:t,rowIndex:r})}maybeStartSingleClickEdit(e,t,r){(this.core.options.singleClickEdit||r.colDef.singleClickEdit===!0)&&this.core.editingService.isEditable(e,r)&&this.core.editingService.start(t,r)}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)}shouldIgnoreRangeMouseDown(e){return!!(e.target.closest(".mach-cell-editor-shell, .mach-row-editor-shell")||this.core.editingService.isCellEditing())}};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=f("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=f("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={...D,...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=f("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=B(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.sizeControl=null;this.firstBtn=null;this.prevBtn=null;this.nextBtn=null;this.lastBtn=null;this.offs=[]}init(){this.barEl=f("div","mach-pagination"),this.barEl.style.display="none",this.barEl.setAttribute("role","navigation");let e=(t,r,o)=>{let i=f("button",`mach-pagination-btn ${t}`);return i.type="button",i.title=r,i.setAttribute("aria-label",r),i.textContent=o,i};this.totalEl=f("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=f("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.sizeControl=U({ariaLabel:"page size",options:[],classNames:{root:"mach-pagination-size-control",native:"mach-pagination-size"},themeSource:this.core.skeleton.root,onChange:t=>{let r=Number(t);Number.isNaN(r)||this.core.rowModel.setPageSize(r)}}),this.sizeSelect=this.sizeControl.native,this.buildSizeOptions(),this.barEl.appendChild(this.sizeControl.el)),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.sizeControl?.setOptions(e.map(r=>({value:String(r),label:B(this.t("perPage"),r)})),String(t))}t(e){return this.core.options.locale?.[e]??D[e]}rebuild(){this.barEl&&(this.sizeSelect&&this.core.options.paginationShowSizeSelector&&this.buildSizeOptions(),this.refresh())}setText(e,t){e&&e.textContent!==t&&(e.textContent=t)}refreshNavigation(e,t){let r=e<=1,o=e>=t;this.firstBtn&&(this.firstBtn.disabled=r),this.prevBtn&&(this.prevBtn.disabled=r),this.nextBtn&&(this.nextBtn.disabled=o),this.lastBtn&&(this.lastBtn.disabled=o)}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();this.totalEl&&this.core.options.paginationShowTotal&&this.setText(this.totalEl,B(this.t("paginationTotal"),r)),this.setText(this.pageEl,rt(this.t("paginationPage"),i,s)),this.refreshNavigation(i,s),this.sizeSelect&&Number(this.sizeSelect.value)!==this.core.options.paginationPageSize&&this.sizeControl?.setValue(String(this.core.options.paginationPageSize))}destroy(){for(let e of this.offs)e();this.offs=[],this.sizeControl?.destroy(),this.sizeControl=null,this.sizeSelect=null,this.barEl?.remove(),this.barEl=null}};var oe=["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:f("div"),center:f("div"),right:f("div")},centerViewport:f("div","mach-pinned-viewport"),rowWrappers:{left:[],center:[],right:[]},cells:[],data:[]};for(let r of oe)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 oe)for(let a of i[s])I(this.core,a);for(let i of oe){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 oe){let c=f("div","mach-pinned-row");c.style.height=`${r}px`,c.setAttribute("role","row"),l[d]=[];for(let u of o.getPaneColumns(d)){let h=f("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{Ze(this.core,h,a,u),Ce(this.core,h,a,u),Je(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 oe){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 oe){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 oe)for(let o of t[r])I(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=f("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=f("span",`mach-statusbar-item mach-statusbar-item--${t}`);this.barEl.appendChild(r),this.items[t]=r}this.refresh()}text(e,t,r){let o=e[t]??D[t];if(r===void 0)return o;let i=typeof r=="number"?r:parseFloat(String(r))||0;return B(o,i)}updateItem(e,t){let r=this.items[e];r&&r.textContent!==t&&(r.textContent=t)}rowCountText(e){let t=this.core.rowModel,r=t.getDisplayTotalCount(),o=t.paginationActive?t.getTotalRowCount():t.getDisplayedRowCount(),i=B(this.text(e,"totalRowsLabel"),o);return t.isInfinite&&r>o?`${i} / ${r}`:i}rangeAggregateText(e){let t=this.core.bodyRenderer.normalizedRange();if(!t)return"";let r=this.core.columnModel.getOrderedVisible(),o=0,i=0;for(let l=t.r1;l<=t.r2;l++){let d=this.core.rowModel.getDisplayedRow(l);if(!(!d||d.isDetail||d.isGroup))for(let c=t.c1;c<=t.c2;c++){let u=r[c];if(!u)continue;let h=this.core.getCellValue(d,u);typeof h!="number"||Number.isNaN(h)||(o+=h,i++)}}if(i===0)return"";let s=Math.round(o/i*100)/100,a=Number.isInteger(o)?String(o):String(Math.round(o*100)/100);return`${this.text(e,"statusSum",a)} \xB7 ${this.text(e,"statusAvg",String(s))} \xB7 ${this.text(e,"statusCount",String(i))}`}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={...D,...e.locale};if(this.items.rowCount&&this.updateItem("rowCount",this.rowCountText(t)),this.items.selectedRowCount){let r=this.core.selectionService.getSelectedNodes().length;this.updateItem("selectedRowCount",B(this.text(t,"statusSelected"),r))}this.items.rangeAggregate&&this.updateItem("rangeAggregate",this.rangeAggregateText(t))}destroy(){for(let e of this.offs)e();this.offs=[],this.barEl?.remove(),this.barEl=null}};function lr(){try{return typeof localStorage>"u"?null:localStorage}catch{return null}}function Lo(n){return typeof TextEncoder>"u"?n.length*2:new TextEncoder().encode(n).byteLength}function dr(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??lr())?.getItem(r(i));if(!s)return null;if(Lo(s)>t)throw new RangeError(`[MachTable] Stored grid state for "${i}" exceeds ${t} bytes.`);let a=JSON.parse(s);if(a?.schemaVersion!==2)throw new TypeError(`[MachTable] Stored grid state for "${i}" uses an unsupported schema.`);let l=z(a.state);if(!l)throw new TypeError(`[MachTable] Stored grid state for "${i}" is invalid.`);return l}catch(s){return o(s,"load",i),null}},save(i,s){try{let a=z(s);if(!a)throw new TypeError(`[MachTable] Invalid grid state for "${i}".`);let l=JSON.stringify({schemaVersion:2,savedAt:Date.now(),state:a});if(Lo(l)>t)throw new RangeError(`[MachTable] Grid state for "${i}" exceeds ${t} bytes.`);(n.storage??lr())?.setItem(r(i),l)}catch(a){o(a,"save",i)}},clear(i){try{(n.storage??lr())?.removeItem(r(i))}catch(s){o(s,"clear",i)}}}}var cr=dr();function xt(n,e){cr.save(n,e)}function Mt(n){return cr.load(n)}function Ao(n){cr.clear(n)}var Yi=[[/^(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 hr(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 Yi)if(r.test(t))return o;return"neutral"}function pr(n={}){return e=>{if(e.value==null||e.value==="")return"";let t=hr(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 fr(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 mr(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 gr={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 kt(n,e=14){let t=gr[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,W=null;function Y(n=!1){Q?.remove(),Q=null,W&&(W.setAttribute("aria-expanded","false"),n&&W.isConnected&&W.focus({preventScroll:!0})),W=null,document.removeEventListener("mousedown",Po,!0),document.removeEventListener("keydown",yr,!0)}function Po(n){Q&&!Q.contains(n.target)&&!W?.contains(n.target)&&Y()}function yr(n){if(!Q)return;if(n.key==="Escape"){n.preventDefault(),Y(!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 Go(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&&gr[n.icon]?t.innerHTML=`${kt(n.icon,16)}<span>${n.label}</span>`:t.textContent=n.label,t.addEventListener("click",()=>n.pick(t)),t}function Xi(n,e){Y();let t=document.createElement("div");t.className="mach-context-menu mach-action-menu",t.setAttribute("role","menu");for(let i of e){let s=Go(i,"mach-context-menu-item");s.setAttribute("role","menuitem"),t.appendChild(s)}A(t,n.closest(".mach-root")),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,W=n,n.setAttribute("aria-expanded","true"),document.addEventListener("mousedown",Po,!0),document.addEventListener("keydown",yr,!0),t.querySelector("button:not(:disabled)")?.focus({preventScroll:!0})}function Qi(n,e,t){Y();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=kt("close",16),a.addEventListener("click",()=>Y(!0)),i.append(s,a);let l=document.createElement("div");l.className="mach-action-drawer__body";for(let d of t)l.appendChild(Go(d,"mach-action-drawer__item"));o.append(i,l),r.appendChild(o),r.addEventListener("mousedown",d=>{d.target===r&&Y(!0)}),A(r,n.closest(".mach-root")),document.body.appendChild(r),Q=r,W=n,n.setAttribute("aria-expanded","true"),document.addEventListener("keydown",yr,!0),o.querySelector("button:not(:disabled)")?.focus({preventScroll:!0})}function X(n,e){if(typeof n=="function")try{return n(e)}catch{return!1}return n===!0}function Fo(n){return n.variant??"default"}function No(n){return n.permission?typeof n.permission=="string"?[n.permission]:n.permission:[]}function vr(n,e,t){return{...n.id?{actionId:n.id}:{},permissions:No(n),...t?{message:t}:{},params:e}}function It(n,e,t){let r=t.api.getOption("actionPolicy");try{r?.onError?r.onError(n,vr(e,t)):console.error("[mach-table] action handler failed",n)}catch(o){console.error("[mach-table] action error policy failed",o,n)}}function Ji(n,e){if(No(n).length===0)return!0;let r=e.api.getOption("actionPolicy");if(!r?.canAccess)return!0;try{return r.canAccess(vr(n,e))}catch(o){return It(o,n,e),!1}}function Zi(n,e){return n.filter(t=>{if(!Ji(t,e))return!1;if(!t.show)return!0;try{return t.show(e)}catch{return!1}})}function wr(n,e,t){t.isConnected&&(t.disabled=X(n.disabled,e)||X(n.loading,e),t.classList.toggle("mach-action-btn--loading",X(n.loading,e)))}function es(n,e,t,r){Promise.resolve(n).catch(o=>It(o,e,t)).finally(()=>wr(e,t,r))}function ts(n,e,t){try{es(n.onClick(e),n,e,t)}catch(r){It(r,n,e),wr(n,e,t)}}function ur(n,e,t){if(n===!1)return!1;let r=typeof n=="string"?n:e.label??e.title??"Confirm action",o=t.api.getOption("actionPolicy");return o?.confirm?o.confirm(vr(e,t,r)):typeof window>"u"||typeof window.confirm!="function"?!1:window.confirm(r)}function rs(n,e){if(n.confirm==null||n.confirm===!1)return!0;if(typeof n.confirm!="function")return ur(n.confirm,n,e);let t=n.confirm(e);return t instanceof Promise?t.then(r=>ur(r,n,e)):ur(t,n,e)}function os(n){return(e,t)=>{if(X(e.disabled,n))return;if(t.disabled=!0,t.classList.add("mach-action-btn--loading"),e.confirm==null||e.confirm===!1){ts(e,n,t);return}(async()=>{await rs(e,n)&&await e.onClick(n)})().catch(o=>It(o,e,n)).finally(()=>{wr(e,n,t)})}}function ns(n,e,t){let r=document.createElement("button");r.type="button",r.className="mach-action-btn";let o=Fo(n);o!=="default"&&r.classList.add(`mach-action-btn--${o}`);let i=n.title??n.label??"Action";return r.title=i,r.setAttribute("aria-label",i),r.disabled=X(n.disabled,e),X(n.loading,e)&&(r.disabled=!0,r.classList.add("mach-action-btn--loading")),n.icon&&gr[n.icon]?(r.innerHTML=kt(n.icon),r.classList.add("mach-action-btn--icon")):r.textContent=n.label??i,r.addEventListener("mousedown",s=>s.stopPropagation()),r.addEventListener("click",s=>{s.stopPropagation(),t(n,r)}),r}function is(n,e,t,r,o){let i=document.createElement("button");i.type="button",i.className="mach-action-btn mach-action-btn--icon";let s=r.api.getOption("locale")??{},a=t.moreLabel??s.actionMore??D.actionMore;return i.title=a,i.setAttribute("aria-label",a),i.setAttribute("aria-haspopup",e==="drawer"?"dialog":"menu"),i.setAttribute("aria-expanded","false"),i.innerHTML=`${kt("more",16)}<span class="mach-sr-only">\u22EF</span>`,i.addEventListener("mousedown",l=>l.stopPropagation()),i.addEventListener("click",l=>{l.stopPropagation();let d=n.map(c=>({label:c.label??c.title??"Action",icon:c.icon,variant:Fo(c),disabled:X(c.disabled,r)||X(c.loading,r),pick:u=>{Y(),o(c,u)}}));e==="drawer"?Qi(i,t.drawerTitle??a,d):Xi(i,d)}),i}function pe(n){let e=Math.max(0,n.max??3),t=n.overflow??"menu";return r=>{let o=Zi(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=os(r);for(let d of s)i.appendChild(ns(d,r,l));return a.length>0&&i.appendChild(is(a,t,n,r,l)),{el:i,destroy:()=>{W&&i.contains(W)&&Y()}}}}function he(n,e,t){return n??e??t}function ss(n,e){let t=e.api.getOption("locale")??{};return{view:he(n.labels?.view,t.actionView,D.actionView),edit:he(n.labels?.edit,t.actionEdit,D.actionEdit),delete:he(n.labels?.delete,t.actionDelete,D.actionDelete),confirm:he(n.labels?.confirm,t.actionConfirm,D.actionConfirm),save:he(n.labels?.save,t.actionSave,D.actionSave),cancel:he(n.labels?.cancel,t.actionCancel,D.actionCancel)}}function as(n,e,t){let r=async()=>{if(!await e.api.editing.stop()||!n.onSave)return;let s=e.api.editing.getChanges().filter(a=>a.rowId===e.node.id);try{await n.onSave(e,s),e.api.editing.markSaved([e.node.id])}catch(a){throw e.api.editing.startRow(e.rowIndex),a}},o=n.onSave?t.save:n.labels?.confirm??n.labels?.save??t.confirm;return pe({actions:[{icon:"check",title:o,variant:"success",onClick:r},{icon:"close",title:t.cancel,variant:"danger",onClick:()=>e.api.editing.stop({cancel:!0}).then(()=>{})}],overflow:"inline"})(e)}function ls(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:n.onEdit??(()=>{e.api.editing.startRow(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=ss(n,e);if(e.api.editing.isRowActive(e.rowIndex))return as(n,e,t);let r=ls(n,e,t);return pe({actions:r,max:n.max,overflow:n.overflow??"menu",moreLabel:n.moreLabel,drawerTitle:n.drawerTitle})(e)}}var ds=pr(),cs=fr(),Oo=Object.freeze({statusTag:ds,progressBar:cs,link:mr});function us(n){return!!(n.field||n.valueGetter||n.cellRenderer||n.checkboxSelection||n.rowDrag||n.type||n.autoRowSpan||n.rowSpan)}function hs(n,e,t){n.width!=null&&n.minWidth!=null&&n.width<n.minWidth&&t.push(`\u5217 "${e}" \u7684 width(${n.width}) \u5C0F\u4E8E minWidth(${n.minWidth})\uFF0C\u5C06\u6309 minWidth \u6E32\u67D3`),n.width!=null&&n.maxWidth!=null&&n.width>n.maxWidth&&t.push(`\u5217 "${e}" \u7684 width(${n.width}) \u5927\u4E8E maxWidth(${n.maxWidth})\uFF0C\u5C06\u6309 maxWidth \u6E32\u67D3`)}function ps(n,e){let t=n.colId??n.field??`col_${e.leafIndex}`;e.seenIds.set(t,(e.seenIds.get(t)??0)+1),n.field&&!ne(n.field)&&e.issues.push(`\u5217 "${t}" \u7684 field \u8DEF\u5F84\u4E0D\u5B89\u5168\u6216\u65E0\u6548\uFF0C\u5DF2\u7981\u6B62\u8BFB\u53D6\u548C\u5199\u5165`),us(n)||e.issues.push(`\u5217 "${t}" \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`),hs(n,t,e.issues)}function Ho(n,e){for(let t of n){if(se(t)){!Array.isArray(t.children)||t.children.length===0?e.issues.push(`\u5217\u5206\u7EC4 "${t.headerName??t.groupId??"?"}" \u7684 children \u4E3A\u7A7A`):Ho(t.children,e);continue}e.leafIndex++,ps(t,e)}}function Bo(n){if(!n||n.length===0)return[];let e={issues:[],seenIds:new Map,leafIndex:0};Ho(n,e);for(let[t,r]of e.seenIds)r>1&&e.issues.push(`\u5B58\u5728 ${r} \u4E2A\u91CD\u590D\u7684 colId/field "${t}"\uFF0C\u5DF2\u81EA\u52A8\u52A0\u540E\u7F00\u533A\u5206\uFF0C\u5EFA\u8BAE\u663E\u5F0F\u547D\u540D colId`);return e.issues}var fs=j.map(n=>`on${n.charAt(0).toUpperCase()}${n.slice(1)}`),Vo=new Set([...mt,...fs]);function ms(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 gs(n){let e,t=Number.POSITIVE_INFINITY;for(let o of Vo){let i=ms(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 ys(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(...vs(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 vs(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"}),zo(n)||e.push({code:"MISSING_STABLE_ROW_ID",option:"rowKey",message:"Random-access blocks require rowKey to preserve selection and identity after eviction"}),e}function zo(n){return n.rowKey!=null}function ws(n){let e=new Set(["enableColumnResize","pagination","rowKey"]),t=[];for(let r of mt){if(e.has(r)||!Object.prototype.hasOwnProperty.call(n,r))continue;let o=n[r],i=ce[r].kind;rr(o,i)||t.push({code:"INVALID_OPTION_VALUE",option:r,message:`${r} \u503C\u7C7B\u578B\u65E0\u6548\uFF0C\u671F\u671B ${i}`})}return t}function bs(n){let e=[];for(let t of Object.keys(n)){if(Vo.has(t))continue;let r=gs(t);e.push({code:"UNKNOWN_OPTION",option:t,...r?{suggestion:r}:{},message:r?`\u672A\u77E5 GridOption "${t}"\uFF0C\u662F\u5426\u60F3\u4F7F\u7528 "${r}"\uFF1F`:`\u672A\u77E5 GridOption "${t}"\uFF0C\u8BE5\u503C\u4E0D\u4F1A\u751F\u6548`})}return e}function Cs(n,e){if(e.mode!=="server")return[];let t=[];zo(n)||t.push({code:"MISSING_STABLE_ROW_ID",option:"rowKey",message:"\u670D\u52A1\u7AEF\u5206\u9875\u5EFA\u8BAE\u63D0\u4F9B\u7A33\u5B9A rowKey\uFF0C\u5426\u5219\u8DE8\u9875\u9009\u62E9\u4E0E\u589E\u91CF\u66F4\u65B0\u65E0\u6CD5\u53EF\u9760\u4FDD\u6301"});let r=e.total;return r!==void 0&&(typeof r!="number"||!Number.isFinite(r)||r<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"}),t}function Rs(n){let e=[],t=n.pagination;return t!=null&&typeof t!="boolean"&&typeof t!="object"&&e.push({code:"INVALID_OPTION_VALUE",option:"pagination",message:"pagination \u5FC5\u987B\u662F boolean \u6216\u914D\u7F6E\u5BF9\u8C61"}),n.datasource!=null&&t!==void 0&&t!==!1&&e.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'"}),t&&typeof t=="object"&&e.push(...Cs(n,t)),e}function Ts(n){return n.treeData!==!0||n.masterDetail!==!0?[]:[{code:"OPTION_CONFLICT",option:"masterDetail",message:"treeData \u4E0E masterDetail \u4E0D\u80FD\u540C\u65F6\u542F\u7528\uFF0C\u4E3B\u4ECE\u660E\u7EC6\u5C06\u88AB\u5FFD\u7565"}]}function At(n){let e=n,t=bs(e);return t.push(...Rs(e)),t.push(...Ts(e)),t.push(...ws(e)),t.push(...ys(e)),t}function Wo(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 br(n,e){for(let t=0;t<3;t++)if(n[t]!==e[t])return n[t]<e[t]?-1:1;return 0}function Ss(n){return n[0]>0?[n[0]+1,0,0]:n[1]>0?[0,n[1]+1,0]:[0,0,n[2]+1]}function Ds(n,e){if(e==="*"||e.toLowerCase()==="latest")return!0;let t=/^(\^|~|>=|<=|>|<|=)?\s*(.+)$/.exec(e);if(!t)return!1;let r=Wo(t[2]);if(!r)return!1;let o=br(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&&br(n,Ss(r))<0;case"~":return o>=0&&br(n,[r[0],r[1]+1,0])<0;default:return o===0}}function _o(n,e){if(!e?.trim())return!0;let t=n?Wo(n):null;return t?e.split("||").some(r=>{let o=r.trim().split(/\s+/).filter(Boolean);return o.length>0&&o.every(i=>Ds(t,i))}):!1}function Es(n){return[...new Set((n??[]).map(e=>e.trim()).filter(Boolean))]}function Pt(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 Gt(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 Pt(d.requires)){let u=t.get(c.key);u?_o(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 Es(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 Pt(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 xs=["datasource","treeData"],Ms=["columnState.","gridState."],ks=new Set(["valueFormatter","cellStyle","cellClass"]),Is=new Set(["selectionChanged","sortChanged","filterChanged","columnMoved","columnVisibilityChanged","displayedColumnsChanged","paginationChanged","detailToggled"]),Ls=0,Ft=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.gridStateMutationVersion=0;this.applyingPersistedGridState=!1;this.stateSaveInFlight=!1;this.pendingStateSave=null;this.lastValidatedDefs=null;this.issuedWarningSignatures=new Set;let r;this.readyPromise=new Promise(o=>{r=o}),this.resolveReady=r,this.gridId=++Ls,this.options=Ir(t),this.eventBus=new xe((o,i)=>{i==="gridError"?console.error("[mach-table] error in gridError listener",o):this.reportError(o,"eventBus.listener",{eventType:i})}),this.columnModel=new Le(this),this.rowModel=new He(this),this.selectionService=new Be(this),this.skeleton=new gt(this),this.headerRenderer=new vt(this),this.bodyRenderer=new Rt(this),this.resizeService=new Ve(this),this.columnDragService=new ze(this),this.keyboardService=new qe(this),this.editingService=new et(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 St(this),this.pinnedRowsRenderer=new Dt(this),this.summaryRenderer=new Tt(this),this.statusBarService=new Et(this),this.api=Eo(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.headerRenderer.build(),this.options.datasource?this.rowModel.startInfinite().catch(()=>{}):this.rowModel.setRowData(this.options.rowData),this.options.initialState&&this.api.state.apply(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){return this.options.components?.cellRenderers?.[e]??Oo[e]}resolveCellEditor(e){return this.options.components?.cellEditors?.[e]}inactiveFeatureDependency(e){return Pt(e.requires).map(t=>t.key).find(t=>!this.activeFeatures.has(t))}setFeatures(e){if(this.destroyFeatures(),this.destroyed)return;let t=Gt(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 q(e.data,r.field)}getLocaleText(e){return this.options.locale[e]??D[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?Z(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=Z(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?"":be(this,s,a,this.getCellValue(s,a))))}return de(o)}copyActiveRange(){let e=this.bodyRenderer.getNormalizedRangeOrFocus();return e?ve(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){let c=this.nextPasteRow(l,s);if(!c)break;this.pasteLine(c.node,c.index,d,i,r,a),l=c.index+1}}finally{this.undoService.endBatch()}a.size>0&&(this.bodyRenderer.refreshRows([...a]),this.summaryRenderer.refresh())}nextPasteRow(e,t){for(let r=e;r<t;r++){let o=this.rowModel.getDisplayedRow(r);if(o&&!o.isDetail&&!o.isGroup)return{index:r,node:o}}return null}nextPasteColumn(e,t){let r=t;for(;r<e.length;){let o=e[r];if(!o.hasCheckbox&&!o.isDetailToggle&&!o.colDef.rowDrag)break;r++}return r}pasteLine(e,t,r,o,i,s){let a=i;for(let l of r){if(a=this.nextPasteColumn(o,a),a>=o.length)return;this.pasteCell(e,o[a],l)&&s.add(t),a++}}pasteCell(e,t,r){if(!this.editingService.isEditable(e,t))return!1;let o=this.getCellValue(e,t),i=typeof o=="number"&&r!==""&&!Number.isNaN(Number(r)),s=r===""?null:i?Number(r):r;return this.setCellValue(e,t,s,o)}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||Is.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(xs.some(o=>e.startsWith(o)))return"DATA_SOURCE_ERROR";let r=t instanceof Error?t.message:String(t);return e==="rowKey"||r.includes("Duplicate row id")?"DATA_INTEGRITY_ERROR":e==="validate"?"VALIDATION_ERROR":e.toLowerCase().includes("renderer")||ks.has(e)?"RENDERER_ERROR":e.toLowerCase().includes("editor")||e==="editable"?"EDITOR_ERROR":e.startsWith("feature.")?"FEATURE_ERROR":Ms.some(o=>e.startsWith(o))?"STATE_ERROR":e.startsWith("eventBus.")||e.startsWith("eventHandler.")?"EVENT_HANDLER_ERROR":"GRID_ERROR"}getDiagnostics(){return{gridId:this.gridId,version:Ee,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.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}))}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)}}loadPersistedGridState(){let e=++this.gridStateLoadToken,t=this.gridStateMutationVersion,r=this.options.persistence;if(!r)return;let{key:o,store:i,sections:s}=r,a;try{a=i?i.load(o):Mt(o)}catch(d){this.reportError(d,"gridState.load");return}let l=d=>{if(!(this.destroyed||e!==this.gridStateLoadToken||t!==this.gridStateMutationVersion||!d)){this.applyingPersistedGridState=!0;try{this.api.state.apply(d,{emitEvents:!1,...s?{sections:s}:{}})}finally{this.applyingPersistedGridState=!1}}};a&&typeof a.then=="function"?Promise.resolve(a).then(l).catch(d=>this.reportError(d,"gridState.load")):l(a)}scheduleGridStateSave(){let e=this.options.persistence;if(!(!e||this.destroyed||this.applyingPersistedGridState)){if(this.gridStateMutationVersion++,this.stateSaveTimer&&clearTimeout(this.stateSaveTimer),e.debounceMs===0){this.stateSaveTimer=null,this.persistGridState();return}this.stateSaveTimer=setTimeout(()=>{this.stateSaveTimer=null,this.persistGridState()},e.debounceMs)}}persistGridState(){let e=this.options.persistence;if(!e||this.destroyed)return;let{key:t,store:r,sections:o}=e,i=this.api.state.get(),s=o?ao(i,o):i,a={key:t,...r?{store:r}:{},state:s};if(this.stateSaveInFlight){this.pendingStateSave=a;return}this.writeGridState(a)}writeGridState(e){try{let t=e.store?e.store.save(e.key,e.state):xt(e.key,e.state);if(!t||typeof t.then!="function")return;this.stateSaveInFlight=!0,Promise.resolve(t).catch(r=>this.reportError(r,"gridState.save")).finally(()=>{this.stateSaveInFlight=!1;let r=this.pendingStateSave;this.pendingStateSave=null,r&&this.writeGridState(r)})}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}buildDefaultLoadingState(){let e=document.createElement("div");e.className="mach-loading";let t=document.createElement("div");t.className="mach-loading__visual",t.setAttribute("aria-hidden","true");for(let s=0;s<4;s+=1){let a=document.createElement("span");a.className="mach-loading__row",t.appendChild(a)}let r=document.createElement("div");r.className="mach-loading__status";let o=document.createElement("span");o.className="mach-spinner mach-loading__spinner",o.setAttribute("aria-hidden","true");let i=document.createElement("span");return i.className="mach-loading__label",i.textContent=this.getLocaleText("loading"),r.append(o,i),e.append(t,r),e}buildDefaultEmptyState(){let e=this.options.locale??{},t=e.emptyRows??D.emptyRows,r=e.emptyRowsHint??D.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 At(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 Bo(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 Ko(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 Ft(n,e).getApi()}function As(n){return n.mode==="allMatching"?{mode:"allMatching",excludedKeys:[...n.excludedKeys]}:{mode:"explicit",selectedKeys:[...n.selectedKeys]}}function qo(n,e){if(e.scope!=="filtered"&&e.scope!=="selected")throw new TypeError("[MachTable] Remote export scope must be filtered or selected.");let t=n.state.get();return{version:1,scope:e.scope,columnIds:t.columns.filter(r=>!r.hide).map(r=>r.colId),sortModel:t.sortModel.map(r=>({...r})),filterModel:$(t.filterModel),advancedFilterModel:O(t.advancedFilterModel),quickFilterText:t.quickFilterText,...e.scope==="selected"?{selection:As(e.selection??{mode:"explicit",selectedKeys:t.selectedRowIds})}:{}}}function Ps(n){return n.value===!0?"\u662F":n.value===!1?"\u5426":""}function Gs(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 Fs(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 Ns(n,e){return n.filterable===!1?!1:e==="number"?"number":e==="date"?"date":e==="select"||e==="boolean"?"set":"text"}function Os(n,e,t){if(t==="number"){n.type="rightAligned";return}if(t==="date"){n.valueFormatter=Gs(e.format);return}if(t==="boolean"){n.valueFormatter=Ps;return}if(t!=="select")return;let r=e.options??[];n.valueFormatter=Fs(r),e.editable&&(n.cellEditor="select",n.cellEditorParams={options:r})}function $o(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:Ns(n,e),cellClass:n.cellClass};return Os(t,n,e),t}function Uo(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($o(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($o(a)),t.add(s))}i.length>0&&r.push({headerName:o.title,children:i})}return r}function P(n){let e=n();return e&&!e.isDestroyed()?e:null}function jo(n){let e=()=>n.getApi();return{search(t){P(e)?.filtering.setQuickText(t)},async refresh(){if(n.reload){await n.reload();return}let t=P(e);t&&(t.rows.isRemote()?await t.rows.reload():t.view.refreshCells())},openColumns(t){P(e)?.columns.openWorkbench(t)},setDensity(t){P(e)?.updateOptions({size:t})},selectAll(t=!0){P(e)?.selection.selectAll(t)},clearSelection(){let t=P(e);t?.selection.clear(),t?.selection.clearRange()},resetColumns(){P(e)?.columns.resetState()},resetView(){P(e)?.batch(t=>{t.selection.clear(),t.selection.clearRange(),t.filtering.setModel(null),t.filtering.setAdvancedModel(null),t.sorting.setModel(null),t.pagination.setPage(1),t.columns.resetState()})},undo(){return P(e)?.editing.undo()??!1},redo(){return P(e)?.editing.redo()??!1},canUndo(){return P(e)?.editing.canUndo()??!1},canRedo(){return P(e)?.editing.canRedo()??!1},exportCsv(t="mach-table.csv"){let r=P(e);return r?ft(t,r.io.exportCsv({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=P(e)?.view.getRoot(),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,suppressColumnMenu:!0};function Yo(n={}){let e=n.width??40;return{colId:"sel",headerName:"",width:e,minWidth:n.minWidth??e,maxWidth:n.maxWidth??e,pinned:"left",checkboxSelection:!0,...Se,...n}}function Xo(n={}){let e=n.width??52;return{colId:"idx",headerName:"#",type:"index",width:e,minWidth:n.minWidth??e,maxWidth:n.maxWidth??e,pinned:"left",align:"center",headerAlign:"center",...Se,...n}}function Qo(n={}){return{colId:"drag",headerName:"",rowDrag:!0,width:40,...Se,...n}}function Jo(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:pe(r),...Se,cellRendererParams:void 0}}function Zo(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 en(){return{accessor:(n,e={})=>({...e,field:n}),display:n=>({...n}),group:n=>({...n,children:[...n.children]})}}function tn(n){return[...n]}function Cr(n,e){return e===void 0?n:typeof e!="object"||e===null||typeof n!="object"||n===null?e:{...n,...e}}function Hs(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 Bs(n,e){if(!(!n.components&&!e.components))return{cellRenderers:{...n.components?.cellRenderers,...e.components?.cellRenderers},cellEditors:{...n.components?.cellEditors,...e.components?.cellEditors}}}function Vs(n,e){if(!n.columnTypes&&!e.columnTypes)return;let t={},r=new Set([...Object.keys(n.columnTypes??{}),...Object.keys(e.columnTypes??{})]);for(let o of r)t[o]={...n.columnTypes?.[o],...e.columnTypes?.[o]};return t}function zs(n,e,t){for(let r of new Set([...Object.keys(e),...Object.keys(t)])){if(!/^on[A-Z]/.test(r))continue;let o=e[r],i=t[r];typeof o!="function"||typeof i!="function"||(n[r]=Hs(o,i))}}function Ws(n,e){let t={...n,...e,features:e.features??n.features};(n.defaultColDef||e.defaultColDef)&&(t.defaultColDef={...n.defaultColDef,...e.defaultColDef}),(n.locale||e.locale)&&(t.locale={...n.locale,...e.locale});let r=Bs(n,e);r&&(t.components=r);let o=Vs(n,e);return o&&(t.columnTypes=o),(n.aggFuncs||e.aggFuncs)&&(t.aggFuncs={...n.aggFuncs,...e.aggFuncs}),t.pagination=Cr(n.pagination,e.pagination),t.statusBar=Cr(n.statusBar,e.statusBar),t.watermark=Cr(n.watermark,e.watermark),zs(t,n,e),t}function Rr(...n){return n.reduce(Ws,{})}function rn(n={}){return Rr({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 on(n){return n}function nn(n){return n}function sn(n){return n}function De(n){return n!=null&&n!==""}function _s(n){if(!De(n))return null;let e=typeof n=="number"?n:Number(n);return Number.isFinite(e)?e:null}function Nt(n,e){try{return new Intl.NumberFormat(n,e)}catch{return new Intl.NumberFormat(void 0,e)}}function an(n,e){try{return new Intl.DateTimeFormat(n,e)}catch{let t={...e};return delete t.timeZone,new Intl.DateTimeFormat(void 0,t)}}function Ks(n){if(!De(n))return null;let e=n instanceof Date?n:new Date(n);return Number.isFinite(e.getTime())?e:null}function ln(n={}){let e=n.emptyText??"",t=n.invalidText??"\u2014",r=Nt(n.locale,{maximumFractionDigits:n.maximumFractionDigits??2}),o=Nt(n.locale,{maximumFractionDigits:0}),i=Nt(n.locale,{style:"currency",currency:n.currency??"CNY",currencyDisplay:n.currencyDisplay??"symbol",maximumFractionDigits:n.maximumFractionDigits??2}),s=Nt(n.locale,{style:"percent",maximumFractionDigits:n.maximumFractionDigits??2}),a=an(n.locale,{year:"numeric",month:"2-digit",day:"2-digit",...n.timeZone?{timeZone:n.timeZone}:{}}),l=an(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=_s(p);return m==null?t:u.format(m*h)},c=u=>({value:h})=>{if(!De(h))return e;let p=Ks(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 Ot(n){return`${typeof n}:${String(n)}`}function dn(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=v=>{let y=Ot(v),b=o.get(y);if(b){if(b.expiresAt<Date.now()){o.delete(y);return}return o.delete(y),o.set(y,b),b.label}},u=v=>{let y=e===0?Number.POSITIVE_INFINITY:Date.now()+e;for(let b of v){let R=Ot(b.value);o.delete(R),o.set(R,{key:b.value,label:String(b.label),expiresAt:y})}for(;o.size>t;)o.delete(o.keys().next().value)},h=v=>{for(let[y,b]of v){let R=c(b);for(let E of s.get(y)??[])E.resolve(R);s.delete(y)}},p=(v,y)=>{for(let[b]of v){for(let R of s.get(b)??[])R.reject(y);s.delete(b)}},m=async()=>{if(a=null,d||i.size===0)return;let v=[...i.entries()];i.clear();let y=v.map(([,R])=>R),b=new AbortController;l=b;try{let R=await n.load(y,b.signal);if(d||b.signal.aborted)return;u(R),h(v)}catch(R){b.signal.aborted||n.onError?.(R,y),p(v,R)}finally{l===b&&(l=null),!d&&i.size>0&&a==null&&(a=setTimeout(()=>{m()},r))}},g=v=>{let y=c(v);if(y!==void 0)return Promise.resolve(y);if(d)return Promise.reject(new Error("[MachTable] Dictionary resolver has been destroyed."));let b=Ot(v);i.set(b,v);let R=new Promise((E,w)=>{let C=s.get(b)??[];C.push({resolve:E,reject:w}),s.set(b,C)});return a==null&&l==null&&(a=setTimeout(()=>{m()},r)),R};return{get:c,resolve:g,async resolveMany(v){let y=await Promise.all(v.map(async b=>[b,await g(b)]));return new Map(y.filter(b=>b[1]!==void 0))},prime:u,invalidate(v){if(!v)o.clear();else for(let y of v)o.delete(Ot(y))},destroy(){d=!0,a!=null&&clearTimeout(a),a=null,l?.abort(),l=null;let v=new Error("[MachTable] Dictionary resolver has been destroyed.");for(let y of s.values())for(let b of y)b.reject(v);s.clear(),i.clear(),o.clear()},get size(){return o.size}}}function cn(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 un(){try{return typeof localStorage>"u"?null:localStorage}catch{return null}}function hn(n){return typeof TextEncoder>"u"?n.length*2:new TextEncoder().encode(n).byteLength}function pn(n){if(typeof n!="string")return null;let e=n.trim();return e&&e.length<=256?e:null}function Ht(n){if(n==null||typeof n!="object")return null;let e=n;if(e.version!==1)return null;let t=z({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 fe(n){if(n==null||typeof n!="object")return null;let e=n,t=pn(e.id),r=typeof e.name=="string"?e.name.trim().slice(0,120):"",o=Ht(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.state.get();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=Ht(e);if(!r||n.isDestroyed())return!1;let o=n.state.get();return n.state.apply({...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??un())?.getItem(o(l));if(!d||hn(d)>r)return[];let c=JSON.parse(d);return c.schemaVersion!==1||!Array.isArray(c.views)?[]:c.views.flatMap(u=>{let h=fe(u);return h?[h]:[]}).slice(0,t)},a=(l,d)=>{let c=JSON.stringify({schemaVersion:1,savedAt:Date.now(),views:d});if(hn(c)>r)throw new RangeError(`[MachTable] Saved views for "${l}" exceed ${r} bytes.`);let u=n.storage??un();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=fe(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 qs(){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 fn(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=fe(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=pn(s)??qs(),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):fe(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 $s=Ee;0&&(module.exports={BUILTIN_AGG_FUNCS,DEFAULT_LOCALE,EVENT_TYPES,LOCALE_EN,actionsColumn,advancedFilterCondition,advancedFilterGroup,applyGridViewState,buildColDefsFromSchema,captureGridViewState,clearGridState,createActionButtonsRenderer,createAggResolver,createBusinessColumnTypes,createCachedDictionary,createColumnHelper,createDictionaryRenderer,createEnterprisePreset,createGrid,createGridViewManager,createLocalGridStateStore,createLocalGridViewStore,createMachTableCommands,createMachTablePreset,createProgressBarRenderer,createRemoteExportRequest,createRowActionsRenderer,createStatusTagRenderer,defineColumns,defineGridOptions,defineMachTableConfig,defineMachTablePreset,describeFilter,downloadFile,dragColumn,escapeHtml,formatText,formatTwo,getByPath,indexColumn,isColDefGroup,isSafePath,linkRenderer,loadGridState,matchLocaleKey,normalizeAdvancedFilterModel,normalizeColumnFilter,normalizeFilterModel,normalizeGridState,normalizeGridViewState,normalizeSavedGridView,parseCsv,parseDelimited,parseTsv,resolveGridFeatures,resolveSaveConflict,resolveTagVariant,rowActionsColumn,sanitizeFormulaCell,saveGridState,selectionColumn,setByPath,toTsv,validateGridOptions,version});