@agile-team/mach-table-react 0.19.0 → 0.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  # @agile-team/mach-table-react
6
6
 
7
- Official React 18+ adapter for MachTable 0.19. It provides a generic `<MachTable>`, full app/route configuration, advanced-filter aware remote query, conflict-aware editing workflows, persistent named views, a cohesive controller, optional and persistent column resizing, random-access remote blocks, batched/domain APIs, optional Worker processing, a standard toolbar, in-place React cell refresh, latest-closure event handling and StrictMode-safe cleanup. `RobotGrid` remains a deprecated 0.x alias.
7
+ Official React 18+ adapter for MachTable 0.23. It provides a generic `<MachTable>`, full app/route configuration, advanced-filter aware remote query, conflict-aware editing workflows, persistent named views, a cohesive controller, optional and persistent column resizing, bounded random-access remote blocks, governed domain APIs, optional Worker processing, a standard toolbar, in-place React cell refresh, latest-closure event handling and StrictMode-safe cleanup. `RobotGrid` remains a deprecated 0.x alias.
8
8
 
9
9
  ## Install
10
10
 
@@ -1,2 +1 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _react = require('react');function pe(){let[r,a]=_react.useState.call(void 0, null),[T,h]=_react.useState.call(void 0, !1);return{apiRef:_react.useMemo.call(void 0, ()=>{let m=null;return Object.defineProperty({},"current",{enumerable:!0,get:()=>m,set:g=>{g!==m&&(m=g,a(g),h(!1),g&&g.whenReady().then(()=>{m===g&&!g.isDestroyed()&&h(!0)}))}})},[]),api:r,ready:T}}var _machtable = require('@agile-team/mach-table');function Te(r,a={}){let[T,h]=_react.useState.call(void 0, []),[R,m]=_react.useState.call(void 0, []),[g,l]=_react.useState.call(void 0, !1),[w,D]=_react.useState.call(void 0, null),[i,P]=_react.useState.call(void 0, null),C=_react.useRef.call(void 0, !1),p=_react.useCallback.call(void 0, ()=>{let t=r.apiRef.current;if(!t||t.isDestroyed()){m([]),h([]);return}m(t.getDirtyRowIds()),h(t.getChanges())},[r.apiRef]);_react.useEffect.call(void 0, ()=>{let t=r.api;return p(),t&&!t.isDestroyed()?t.addEventListener("dirtyStateChanged",p):void 0},[r.api,p]);let G=_react.useCallback.call(void 0, async(t,u)=>{let d=r.apiRef.current;if(!d||d.isDestroyed())throw new Error("[MachTable] Cannot save before the grid is ready.");if(C.current)throw new Error("[MachTable] A save operation is already in progress.");C.current=!0,l(!0),D(null),P(null);try{let o=await d.saveChangesDetailed(t,u);return P(o),p(),_optionalChain([a, 'access', _2 => _2.onSaveSuccess, 'optionalCall', _3 => _3(o.saved)]),_optionalChain([a, 'access', _4 => _4.onSaveResult, 'optionalCall', _5 => _5(o)]),o}catch(o){throw D(o),_optionalChain([a, 'access', _6 => _6.onSaveError, 'optionalCall', _7 => _7(o)]),o}finally{C.current=!1,l(!1)}},[a,p,r.apiRef]),j=_react.useCallback.call(void 0, async(t,u)=>(await G(t,u)).saved,[G]),K=_react.useCallback.call(void 0, ()=>P(null),[]),H=_react.useCallback.call(void 0, (t,u)=>{let d=_optionalChain([i, 'optionalAccess', _8 => _8.conflicts, 'access', _9 => _9.find, 'call', _10 => _10(v=>v.rowId===t)]),o=r.apiRef.current;return!i||!d||!o||!_machtable.resolveSaveConflict.call(void 0, o,d,u)?!1:(P({...i,failures:i.failures,conflicts:i.conflicts.filter(v=>v.rowId!==t)}),p(),!0)},[i,p,r.apiRef]),Q=_react.useCallback.call(void 0, t=>{let u=_nullishCoalesce(_optionalChain([r, 'access', _11 => _11.apiRef, 'access', _12 => _12.current, 'optionalAccess', _13 => _13.rollbackChanges, 'call', _14 => _14(t)]), () => (!1));return p(),u},[p,r.apiRef]),N=_react.useCallback.call(void 0, t=>{_optionalChain([r, 'access', _15 => _15.apiRef, 'access', _16 => _16.current, 'optionalAccess', _17 => _17.markChangesSaved, 'call', _18 => _18(t)]),p()},[p,r.apiRef]),A=_react.useCallback.call(void 0, (t,u,d=!1)=>{let o=r.apiRef.current,v=_optionalChain([o, 'optionalAccess', _19 => _19.getNodeById, 'call', _20 => _20(t)]);return!o||!v||v.rowIndex<0?!1:(o.scrollToIndex(v.rowIndex,"middle"),u&&d?o.startEditingCell({rowIndex:v.rowIndex,colId:u}):!0)},[r.apiRef]);_react.useEffect.call(void 0, ()=>{if(!a.guardBeforeUnload||typeof window>"u")return;let t=u=>{if(R.length===0)return;let d=_nullishCoalesce(a.beforeUnloadMessage, () => ("\u5B58\u5728\u672A\u4FDD\u5B58\u7684\u8868\u683C\u4FEE\u6539\u3002"));return u.preventDefault(),u.returnValue=d,d};return window.addEventListener("beforeunload",t),()=>window.removeEventListener("beforeunload",t)},[R.length,a.beforeUnloadMessage,a.guardBeforeUnload]);let U=_react.useMemo.call(void 0, ()=>[..._nullishCoalesce(_optionalChain([i, 'optionalAccess', _21 => _21.failures]), () => ([])),..._nullishCoalesce(_optionalChain([i, 'optionalAccess', _22 => _22.conflicts]), () => ([]))],[i]),W=_react.useMemo.call(void 0, ()=>[...new Set(U.map(t=>t.rowId))],[U]);return _react.useMemo.call(void 0, ()=>({changes:T,dirtyRowIds:R,dirty:R.length>0,saving:g,saveError:w,lastSaveResult:i,saveIssues:U,failedRowIds:W,save:j,saveDetailed:G,clearSaveIssues:K,resolveConflict:H,rollback:Q,markSaved:N,reveal:A,refresh:p}),[T,K,R,W,i,N,p,H,A,Q,j,G,w,U,g])}function ee(r,a){return typeof r=="number"&&Number.isFinite(r)&&r>0?Math.floor(r):a}function Oe(r){return(r instanceof DOMException||typeof r=="object"&&r!=null&&"name"in r)&&r.name==="AbortError"}function qe(r){return typeof r=="function"?r():r}function Ne(r){let a=_react.useRef.call(void 0, r);a.current=r;let[T,h]=_react.useState.call(void 0, []),[R,m]=_react.useState.call(void 0, !1),[g,l]=_react.useState.call(void 0, null),[w,D]=_react.useState.call(void 0, ee(r.initialPage,1)),[i,P]=_react.useState.call(void 0, ee(r.pageSize,20)),[C,p]=_react.useState.call(void 0, 0),[G,j]=_react.useState.call(void 0, []),[K,H]=_react.useState.call(void 0, {}),[Q,N]=_react.useState.call(void 0, null),[A,U]=_react.useState.call(void 0, _nullishCoalesce(r.initialQuickFilterText, () => (null))),[,W]=_react.useReducer.call(void 0, e=>e+1,0),t=_react.useRef.call(void 0, {page:w,pageSize:i,sortModel:G,filterModel:K,advancedFilterModel:Q,quickFilterText:A,rows:T});t.current={page:w,pageSize:i,sortModel:G,filterModel:K,advancedFilterModel:Q,quickFilterText:A,rows:T};let u=_react.useRef.call(void 0, null),d=_react.useRef.call(void 0, null),o=_react.useRef.call(void 0, null),v=_react.useRef.call(void 0, 0),E=_react.useRef.call(void 0, new Set),k=_react.useRef.call(void 0, new Set),b=_react.useRef.call(void 0, new Map),O=_react.useRef.call(void 0, !1),V=_react.useRef.call(void 0, !1),$=_react.useRef.call(void 0, !1),y=_react.useCallback.call(void 0, e=>{let n=a.current.rowKey,s=typeof n=="function"?n(e):_machtable.getByPath.call(void 0, e,n);if(s==null||String(s).length===0)throw new Error(`[MachTable] useMachTableQuery rowKey "${String(n)}" returned an empty value.`);return String(s)},[]),B=_react.useCallback.call(void 0, e=>O.current?!k.current.has(e):E.current.has(e),[]),F=_react.useCallback.call(void 0, ()=>W(),[]),q=_react.useCallback.call(void 0, ()=>{let e=u.current;if(!(!e||e.isDestroyed())){$.current=!0;try{e.setSelection(t.current.rows.filter(n=>B(y(n))),!0)}finally{$.current=!1}}},[y,B]),re=_react.useCallback.call(void 0, ()=>{v.current++,_optionalChain([d, 'access', _23 => _23.current, 'optionalAccess', _24 => _24.abort, 'call', _25 => _25()]),d.current=null,o.current&&clearTimeout(o.current),o.current=null,m(!1)},[]),X=_react.useCallback.call(void 0, (e,n)=>e.signal.aborted||n!==v.current,[]),te=_react.useCallback.call(void 0, (e,n,s)=>{if(X(n,s))return;if(!e||!Array.isArray(e.rows)||!Number.isFinite(e.total)||e.total<0)throw new TypeError("[MachTable] Remote request must resolve to { rows: TData[], total: non-negative number }.");let c=[...e.rows];for(let Y of c){let Z=y(Y);B(Z)?b.current.set(Z,Y):b.current.delete(Z)}t.current.rows=c,h(c),p(Math.floor(e.total)),F(),_optionalChain([a, 'access', _26 => _26.current, 'access', _27 => _27.onSuccess, 'optionalCall', _28 => _28(e)]),queueMicrotask(q)},[X,F,y,B,q]),ne=_react.useCallback.call(void 0, (e,n,s)=>{if(X(n,s)||Oe(e))return;let c=_nullishCoalesce(e, () => (new Error("Remote request failed")));l(c),_optionalChain([a, 'access', _29 => _29.current, 'access', _30 => _30.onError, 'optionalCall', _31 => _31(c)])},[X]),ae=_react.useCallback.call(void 0, (e,n)=>{n===v.current&&(m(!1),d.current===e&&(d.current=null))},[]),M=_react.useCallback.call(void 0, async()=>{o.current&&clearTimeout(o.current),o.current=null,_optionalChain([d, 'access', _32 => _32.current, 'optionalAccess', _33 => _33.abort, 'call', _34 => _34()]);let e=new AbortController;d.current=e;let n=++v.current;m(!0),l(null),a.current.keepPreviousData===!1&&h([]);let s=t.current;try{let c=await a.current.request({page:s.page,pageSize:s.pageSize,query:qe(a.current.query),sortModel:s.sortModel.map(Y=>({...Y})),filterModel:{...s.filterModel},advancedFilterModel:_machtable.normalizeAdvancedFilterModel.call(void 0, s.advancedFilterModel),quickFilterText:s.quickFilterText,signal:e.signal});te(c,e,n)}catch(c){ne(c,e,n)}finally{ae(e,n)}},[te,ae,ne]),L=_react.useCallback.call(void 0, e=>{e&&(t.current.page=1,D(1)),_optionalChain([d, 'access', _35 => _35.current, 'optionalAccess', _36 => _36.abort, 'call', _37 => _37()]),d.current=null;let n=Math.max(0,_nullishCoalesce(a.current.debounceMs, () => (0)));o.current&&clearTimeout(o.current),n===0?M():o.current=setTimeout(()=>{M()},n)},[M]),z=_react.useCallback.call(void 0, ()=>{let e=O.current||E.current.size>0||k.current.size>0||b.current.size>0;O.current=!1,E.current.clear(),k.current.clear(),b.current.clear(),e&&F(),$.current=!0;try{_optionalChain([u, 'access', _38 => _38.current, 'optionalAccess', _39 => _39.deselectAll, 'call', _40 => _40()])}finally{$.current=!1}},[F]),oe=_react.useCallback.call(void 0, e=>{if(V.current)return;let n=t.current;e.page===n.page&&e.pageSize===n.pageSize||(n.page=e.page,n.pageSize=e.pageSize,D(e.page),P(e.pageSize),a.current.mode!=="manual"&&M())},[M]),le=_react.useCallback.call(void 0, e=>{if(V.current)return;let n=e.sortModel.map(s=>({...s}));t.current.sortModel=n,j(n),a.current.mode!=="manual"?L(!0):(t.current.page=1,D(1))},[L]),ie=_react.useCallback.call(void 0, e=>{if(V.current)return;let n={...e.filterModel};t.current.filterModel=n;let s=_machtable.normalizeAdvancedFilterModel.call(void 0, e.advancedFilterModel);t.current.advancedFilterModel=s,t.current.quickFilterText=e.api.getQuickFilter(),H(n),N(s),U(t.current.quickFilterText),a.current.clearSelectionOnQueryChange!==!1&&z(),a.current.mode!=="manual"?L(!0):(t.current.page=1,D(1))},[z,L]),se=_react.useCallback.call(void 0, e=>{if($.current)return;let n=new Set(t.current.rows.map(y)),s=new Set(e.selectedRows.map(y));if(O.current)for(let c of n)s.has(c)?k.current.delete(c):(k.current.add(c),b.current.delete(c));else{if((_nullishCoalesce(a.current.selectionScope, () => ("preserve")))==="page")E.current.clear(),b.current.clear();else for(let c of n)E.current.delete(c),b.current.delete(c);for(let c of e.selectedRows)E.current.add(y(c))}for(let c of e.selectedRows)b.current.set(y(c),c);F()},[F,y]),Re=_react.useCallback.call(void 0, async(e={})=>{e.resetPage&&(t.current.page=1,D(1)),await M()},[M]),we=_react.useCallback.call(void 0, async()=>{t.current.page=1,t.current.sortModel=[],t.current.filterModel={},t.current.advancedFilterModel=null,D(1),j([]),H({}),N(null),z(),V.current=!0;try{_optionalChain([u, 'access', _41 => _41.current, 'optionalAccess', _42 => _42.setSortModel, 'call', _43 => _43(null)]),_optionalChain([u, 'access', _44 => _44.current, 'optionalAccess', _45 => _45.setFilterModel, 'call', _46 => _46(null)]),_optionalChain([u, 'access', _47 => _47.current, 'optionalAccess', _48 => _48.setAdvancedFilterModel, 'call', _49 => _49(null)])}finally{V.current=!1}await M()},[z,M]),De=_react.useCallback.call(void 0, ()=>{O.current=!0,E.current.clear(),k.current.clear(),b.current.clear();for(let e of t.current.rows)b.current.set(y(e),e);F(),q()},[F,y,q]),Ce=_react.useCallback.call(void 0, e=>{E.current.clear(),k.current.clear(),b.current.clear(),O.current=e.mode==="allMatching";for(let n of(e.mode==="allMatching"?e.excludedKeys:e.selectedKeys).map(String))e.mode==="allMatching"?k.current.add(n):E.current.add(n);for(let n of t.current.rows)B(y(n))&&b.current.set(y(n),n);F(),q()},[F,y,B,q]),ce=_react.useRef.call(void 0, !0),Ee=r.queryKey===void 0?r.query:r.queryKey;_react.useEffect.call(void 0, ()=>{if(ce.current){ce.current=!1;return}a.current.clearSelectionOnQueryChange!==!1&&z(),a.current.mode!=="manual"?L(!0):(t.current.page=1,D(1))},[Ee,z,L]),_react.useEffect.call(void 0, ()=>(r.mode!=="manual"&&r.immediate!==!1&&M(),re),[]);let ue=_react.useMemo.call(void 0, ()=>{let e=[...new Set((_nullishCoalesce(r.pageSizeOptions, () => ([10,20,50,100]))).map(n=>ee(n,0)).filter(Boolean))];return e.includes(i)||e.push(i),e.sort((n,s)=>n-s)},[r.pageSizeOptions,i]),de=_react.useMemo.call(void 0, ()=>({rowData:T,loading:R,error:g,rowKey:y,manualSorting:!0,manualFiltering:!0,advancedFilterModel:Q,quickFilterText:A,overlayErrorTemplate:g?()=>_nullishCoalesce(_optionalChain([a, 'access', _50 => _50.current, 'access', _51 => _51.errorOverlay, 'optionalCall', _52 => _52({error:g,retry:M})]), () => ("Remote request failed. Please retry.")):void 0,overlayNoRowsTemplate:r.emptyOverlay,pagination:{mode:"server",page:w,pageSize:i,pageSizeOptions:ue,total:C,showTotal:!0,showPageSizeSelector:!0},onGridReady:({api:e})=>{u.current=e,queueMicrotask(q)},onPaginationChanged:oe,onSortChanged:le,onFilterChanged:ie,onSelectionChanged:se}),[Q,g,M,R,ie,oe,se,le,r.emptyOverlay,w,i,ue,A,y,T,q,C]),fe=O.current?[]:[...E.current],ke=[...b.current.entries()].filter(([e])=>!k.current.has(e)).map(([,e])=>e),Fe=O.current?{mode:"allMatching",excludedKeys:[...k.current]}:{mode:"explicit",selectedKeys:fe};return{rows:T,loading:R,error:g,page:w,pageSize:i,total:C,sortModel:G,filterModel:K,advancedFilterModel:Q,quickFilterText:A,setQuickFilterText(e){t.current.quickFilterText=e,U(e),_optionalChain([u, 'access', _53 => _53.current, 'optionalAccess', _54 => _54.setQuickFilter, 'call', _55 => _55(e)])},selectedKeys:fe,selectedRows:ke,selectionState:Fe,gridProps:de,bindings:de,reload:Re,retry:M,reset:we,abort:re,clearSelection:z,selectAllMatching:De,applySelectionState:Ce}}function Ye(r={}){let a=pe(),T=Te(a,r.editing),[h,R]=_react.useState.call(void 0, _nullishCoalesce(r.initialSearch, () => (""))),[m,g]=_react.useState.call(void 0, []),l=_nullishCoalesce(r.query, () => (null));_react.useEffect.call(void 0, ()=>{let C=a.api;if(!C||C.isDestroyed()||l)return;let p=()=>g(C.getSelectedRows());return p(),C.addEventListener("selectionChanged",p)},[l,a.api]),_react.useEffect.call(void 0, ()=>{l?l.setQuickFilterText(h||null):_optionalChain([a, 'access', _56 => _56.apiRef, 'access', _57 => _57.current, 'optionalAccess', _58 => _58.setQuickFilter, 'call', _59 => _59(h||null)])},[l,h,a.apiRef]);let w=_react.useMemo.call(void 0, ()=>async()=>{l?await l.reload():_optionalChain([a, 'access', _60 => _60.apiRef, 'access', _61 => _61.current, 'optionalAccess', _62 => _62.isInfinite, 'call', _63 => _63()])?await a.apiRef.current.reload():_optionalChain([a, 'access', _64 => _64.apiRef, 'access', _65 => _65.current, 'optionalAccess', _66 => _66.refreshCells, 'call', _67 => _67()])},[l,a.apiRef]),D=_react.useMemo.call(void 0, ()=>_machtable.createMachTableCommands.call(void 0, {getApi:()=>a.apiRef.current,reload:w}),[w,a.apiRef]),i=_nullishCoalesce(_optionalChain([l, 'optionalAccess', _68 => _68.selectedRows]), () => (m)),P=l?l.selectionState.mode==="allMatching"?Math.max(0,l.total-l.selectionState.excludedKeys.length):l.selectionState.selectedKeys.length:i.length;return{table:a,query:l,editing:T,bindings:_nullishCoalesce(_optionalChain([l, 'optionalAccess', _69 => _69.bindings]), () => ({})),search:h,setSearch:R,selectedRows:i,selectedCount:P,busy:_optionalChain([l, 'optionalAccess', _70 => _70.loading])===!0||T.saving,error:_nullishCoalesce(_nullishCoalesce(_optionalChain([l, 'optionalAccess', _71 => _71.error]), () => (T.saveError)), () => (null)),commands:D,reload:w}}exports.a = pe; exports.b = Te; exports.c = Ne; exports.d = Ye;
2
- //# sourceMappingURL=chunk-TSVK66UX.cjs.map
@@ -1,2 +1 @@
1
1
  import{useMemo as xe,useState as ge}from"react";function pe(){let[r,a]=ge(null),[T,h]=ge(!1);return{apiRef:xe(()=>{let m=null;return Object.defineProperty({},"current",{enumerable:!0,get:()=>m,set:g=>{g!==m&&(m=g,a(g),h(!1),g&&g.whenReady().then(()=>{m===g&&!g.isDestroyed()&&h(!0)}))}})},[]),api:r,ready:T}}import{useCallback as I,useEffect as ye,useMemo as _,useRef as Pe,useState as J}from"react";import{resolveSaveConflict as Ge}from"@agile-team/mach-table";function Te(r,a={}){let[T,h]=J([]),[R,m]=J([]),[g,l]=J(!1),[w,D]=J(null),[i,P]=J(null),C=Pe(!1),p=I(()=>{let t=r.apiRef.current;if(!t||t.isDestroyed()){m([]),h([]);return}m(t.getDirtyRowIds()),h(t.getChanges())},[r.apiRef]);ye(()=>{let t=r.api;return p(),t&&!t.isDestroyed()?t.addEventListener("dirtyStateChanged",p):void 0},[r.api,p]);let G=I(async(t,u)=>{let d=r.apiRef.current;if(!d||d.isDestroyed())throw new Error("[MachTable] Cannot save before the grid is ready.");if(C.current)throw new Error("[MachTable] A save operation is already in progress.");C.current=!0,l(!0),D(null),P(null);try{let o=await d.saveChangesDetailed(t,u);return P(o),p(),a.onSaveSuccess?.(o.saved),a.onSaveResult?.(o),o}catch(o){throw D(o),a.onSaveError?.(o),o}finally{C.current=!1,l(!1)}},[a,p,r.apiRef]),j=I(async(t,u)=>(await G(t,u)).saved,[G]),K=I(()=>P(null),[]),H=I((t,u)=>{let d=i?.conflicts.find(v=>v.rowId===t),o=r.apiRef.current;return!i||!d||!o||!Ge(o,d,u)?!1:(P({...i,failures:i.failures,conflicts:i.conflicts.filter(v=>v.rowId!==t)}),p(),!0)},[i,p,r.apiRef]),Q=I(t=>{let u=r.apiRef.current?.rollbackChanges(t)??!1;return p(),u},[p,r.apiRef]),N=I(t=>{r.apiRef.current?.markChangesSaved(t),p()},[p,r.apiRef]),A=I((t,u,d=!1)=>{let o=r.apiRef.current,v=o?.getNodeById(t);return!o||!v||v.rowIndex<0?!1:(o.scrollToIndex(v.rowIndex,"middle"),u&&d?o.startEditingCell({rowIndex:v.rowIndex,colId:u}):!0)},[r.apiRef]);ye(()=>{if(!a.guardBeforeUnload||typeof window>"u")return;let t=u=>{if(R.length===0)return;let d=a.beforeUnloadMessage??"\u5B58\u5728\u672A\u4FDD\u5B58\u7684\u8868\u683C\u4FEE\u6539\u3002";return u.preventDefault(),u.returnValue=d,d};return window.addEventListener("beforeunload",t),()=>window.removeEventListener("beforeunload",t)},[R.length,a.beforeUnloadMessage,a.guardBeforeUnload]);let U=_(()=>[...i?.failures??[],...i?.conflicts??[]],[i]),W=_(()=>[...new Set(U.map(t=>t.rowId))],[U]);return _(()=>({changes:T,dirtyRowIds:R,dirty:R.length>0,saving:g,saveError:w,lastSaveResult:i,saveIssues:U,failedRowIds:W,save:j,saveDetailed:G,clearSaveIssues:K,resolveConflict:H,rollback:Q,markSaved:N,reveal:A,refresh:p}),[T,K,R,W,i,N,p,H,A,Q,j,G,w,U,g])}import{useCallback as f,useEffect as he,useMemo as me,useReducer as Qe,useRef as S,useState as x}from"react";import{getByPath as Ae,normalizeAdvancedFilterModel as ve}from"@agile-team/mach-table";function ee(r,a){return typeof r=="number"&&Number.isFinite(r)&&r>0?Math.floor(r):a}function Oe(r){return(r instanceof DOMException||typeof r=="object"&&r!=null&&"name"in r)&&r.name==="AbortError"}function qe(r){return typeof r=="function"?r():r}function Ne(r){let a=S(r);a.current=r;let[T,h]=x([]),[R,m]=x(!1),[g,l]=x(null),[w,D]=x(ee(r.initialPage,1)),[i,P]=x(ee(r.pageSize,20)),[C,p]=x(0),[G,j]=x([]),[K,H]=x({}),[Q,N]=x(null),[A,U]=x(r.initialQuickFilterText??null),[,W]=Qe(e=>e+1,0),t=S({page:w,pageSize:i,sortModel:G,filterModel:K,advancedFilterModel:Q,quickFilterText:A,rows:T});t.current={page:w,pageSize:i,sortModel:G,filterModel:K,advancedFilterModel:Q,quickFilterText:A,rows:T};let u=S(null),d=S(null),o=S(null),v=S(0),E=S(new Set),k=S(new Set),b=S(new Map),O=S(!1),V=S(!1),$=S(!1),y=f(e=>{let n=a.current.rowKey,s=typeof n=="function"?n(e):Ae(e,n);if(s==null||String(s).length===0)throw new Error(`[MachTable] useMachTableQuery rowKey "${String(n)}" returned an empty value.`);return String(s)},[]),B=f(e=>O.current?!k.current.has(e):E.current.has(e),[]),F=f(()=>W(),[]),q=f(()=>{let e=u.current;if(!(!e||e.isDestroyed())){$.current=!0;try{e.setSelection(t.current.rows.filter(n=>B(y(n))),!0)}finally{$.current=!1}}},[y,B]),re=f(()=>{v.current++,d.current?.abort(),d.current=null,o.current&&clearTimeout(o.current),o.current=null,m(!1)},[]),X=f((e,n)=>e.signal.aborted||n!==v.current,[]),te=f((e,n,s)=>{if(X(n,s))return;if(!e||!Array.isArray(e.rows)||!Number.isFinite(e.total)||e.total<0)throw new TypeError("[MachTable] Remote request must resolve to { rows: TData[], total: non-negative number }.");let c=[...e.rows];for(let Y of c){let Z=y(Y);B(Z)?b.current.set(Z,Y):b.current.delete(Z)}t.current.rows=c,h(c),p(Math.floor(e.total)),F(),a.current.onSuccess?.(e),queueMicrotask(q)},[X,F,y,B,q]),ne=f((e,n,s)=>{if(X(n,s)||Oe(e))return;let c=e??new Error("Remote request failed");l(c),a.current.onError?.(c)},[X]),ae=f((e,n)=>{n===v.current&&(m(!1),d.current===e&&(d.current=null))},[]),M=f(async()=>{o.current&&clearTimeout(o.current),o.current=null,d.current?.abort();let e=new AbortController;d.current=e;let n=++v.current;m(!0),l(null),a.current.keepPreviousData===!1&&h([]);let s=t.current;try{let c=await a.current.request({page:s.page,pageSize:s.pageSize,query:qe(a.current.query),sortModel:s.sortModel.map(Y=>({...Y})),filterModel:{...s.filterModel},advancedFilterModel:ve(s.advancedFilterModel),quickFilterText:s.quickFilterText,signal:e.signal});te(c,e,n)}catch(c){ne(c,e,n)}finally{ae(e,n)}},[te,ae,ne]),L=f(e=>{e&&(t.current.page=1,D(1)),d.current?.abort(),d.current=null;let n=Math.max(0,a.current.debounceMs??0);o.current&&clearTimeout(o.current),n===0?M():o.current=setTimeout(()=>{M()},n)},[M]),z=f(()=>{let e=O.current||E.current.size>0||k.current.size>0||b.current.size>0;O.current=!1,E.current.clear(),k.current.clear(),b.current.clear(),e&&F(),$.current=!0;try{u.current?.deselectAll()}finally{$.current=!1}},[F]),oe=f(e=>{if(V.current)return;let n=t.current;e.page===n.page&&e.pageSize===n.pageSize||(n.page=e.page,n.pageSize=e.pageSize,D(e.page),P(e.pageSize),a.current.mode!=="manual"&&M())},[M]),le=f(e=>{if(V.current)return;let n=e.sortModel.map(s=>({...s}));t.current.sortModel=n,j(n),a.current.mode!=="manual"?L(!0):(t.current.page=1,D(1))},[L]),ie=f(e=>{if(V.current)return;let n={...e.filterModel};t.current.filterModel=n;let s=ve(e.advancedFilterModel);t.current.advancedFilterModel=s,t.current.quickFilterText=e.api.getQuickFilter(),H(n),N(s),U(t.current.quickFilterText),a.current.clearSelectionOnQueryChange!==!1&&z(),a.current.mode!=="manual"?L(!0):(t.current.page=1,D(1))},[z,L]),se=f(e=>{if($.current)return;let n=new Set(t.current.rows.map(y)),s=new Set(e.selectedRows.map(y));if(O.current)for(let c of n)s.has(c)?k.current.delete(c):(k.current.add(c),b.current.delete(c));else{if((a.current.selectionScope??"preserve")==="page")E.current.clear(),b.current.clear();else for(let c of n)E.current.delete(c),b.current.delete(c);for(let c of e.selectedRows)E.current.add(y(c))}for(let c of e.selectedRows)b.current.set(y(c),c);F()},[F,y]),Re=f(async(e={})=>{e.resetPage&&(t.current.page=1,D(1)),await M()},[M]),we=f(async()=>{t.current.page=1,t.current.sortModel=[],t.current.filterModel={},t.current.advancedFilterModel=null,D(1),j([]),H({}),N(null),z(),V.current=!0;try{u.current?.setSortModel(null),u.current?.setFilterModel(null),u.current?.setAdvancedFilterModel(null)}finally{V.current=!1}await M()},[z,M]),De=f(()=>{O.current=!0,E.current.clear(),k.current.clear(),b.current.clear();for(let e of t.current.rows)b.current.set(y(e),e);F(),q()},[F,y,q]),Ce=f(e=>{E.current.clear(),k.current.clear(),b.current.clear(),O.current=e.mode==="allMatching";for(let n of(e.mode==="allMatching"?e.excludedKeys:e.selectedKeys).map(String))e.mode==="allMatching"?k.current.add(n):E.current.add(n);for(let n of t.current.rows)B(y(n))&&b.current.set(y(n),n);F(),q()},[F,y,B,q]),ce=S(!0),Ee=r.queryKey===void 0?r.query:r.queryKey;he(()=>{if(ce.current){ce.current=!1;return}a.current.clearSelectionOnQueryChange!==!1&&z(),a.current.mode!=="manual"?L(!0):(t.current.page=1,D(1))},[Ee,z,L]),he(()=>(r.mode!=="manual"&&r.immediate!==!1&&M(),re),[]);let ue=me(()=>{let e=[...new Set((r.pageSizeOptions??[10,20,50,100]).map(n=>ee(n,0)).filter(Boolean))];return e.includes(i)||e.push(i),e.sort((n,s)=>n-s)},[r.pageSizeOptions,i]),de=me(()=>({rowData:T,loading:R,error:g,rowKey:y,manualSorting:!0,manualFiltering:!0,advancedFilterModel:Q,quickFilterText:A,overlayErrorTemplate:g?()=>a.current.errorOverlay?.({error:g,retry:M})??"Remote request failed. Please retry.":void 0,overlayNoRowsTemplate:r.emptyOverlay,pagination:{mode:"server",page:w,pageSize:i,pageSizeOptions:ue,total:C,showTotal:!0,showPageSizeSelector:!0},onGridReady:({api:e})=>{u.current=e,queueMicrotask(q)},onPaginationChanged:oe,onSortChanged:le,onFilterChanged:ie,onSelectionChanged:se}),[Q,g,M,R,ie,oe,se,le,r.emptyOverlay,w,i,ue,A,y,T,q,C]),fe=O.current?[]:[...E.current],ke=[...b.current.entries()].filter(([e])=>!k.current.has(e)).map(([,e])=>e),Fe=O.current?{mode:"allMatching",excludedKeys:[...k.current]}:{mode:"explicit",selectedKeys:fe};return{rows:T,loading:R,error:g,page:w,pageSize:i,total:C,sortModel:G,filterModel:K,advancedFilterModel:Q,quickFilterText:A,setQuickFilterText(e){t.current.quickFilterText=e,U(e),u.current?.setQuickFilter(e)},selectedKeys:fe,selectedRows:ke,selectionState:Fe,gridProps:de,bindings:de,reload:Re,retry:M,reset:we,abort:re,clearSelection:z,selectAllMatching:De,applySelectionState:Ce}}import{useEffect as be,useMemo as Me,useState as Se}from"react";import{createMachTableCommands as Ie}from"@agile-team/mach-table";function Ye(r={}){let a=pe(),T=Te(a,r.editing),[h,R]=Se(r.initialSearch??""),[m,g]=Se([]),l=r.query??null;be(()=>{let C=a.api;if(!C||C.isDestroyed()||l)return;let p=()=>g(C.getSelectedRows());return p(),C.addEventListener("selectionChanged",p)},[l,a.api]),be(()=>{l?l.setQuickFilterText(h||null):a.apiRef.current?.setQuickFilter(h||null)},[l,h,a.apiRef]);let w=Me(()=>async()=>{l?await l.reload():a.apiRef.current?.isInfinite()?await a.apiRef.current.reload():a.apiRef.current?.refreshCells()},[l,a.apiRef]),D=Me(()=>Ie({getApi:()=>a.apiRef.current,reload:w}),[w,a.apiRef]),i=l?.selectedRows??m,P=l?l.selectionState.mode==="allMatching"?Math.max(0,l.total-l.selectionState.excludedKeys.length):l.selectionState.selectedKeys.length:i.length;return{table:a,query:l,editing:T,bindings:l?.bindings??{},search:h,setSearch:R,selectedRows:i,selectedCount:P,busy:l?.loading===!0||T.saving,error:l?.error??T.saveError??null,commands:D,reload:w}}export{pe as a,Te as b,Ne as c,Ye as d};
2
- //# sourceMappingURL=chunk-MW23Z6MV.js.map
package/dist/index.cjs CHANGED
@@ -1,2 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _createStarExport(obj) { Object.keys(obj) .filter((key) => key !== "default" && key !== "__esModule") .forEach((key) => { if (exports.hasOwnProperty(key)) { return; } Object.defineProperty(exports, key, {enumerable: true, configurable: true, get: () => obj[key]}); }); } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkTSVK66UXcjs = require('./chunk-TSVK66UX.cjs');var _react = require('react');var _machtable = require('@agile-team/mach-table'); _createStarExport(_machtable);var I=_machtable.normalizeMachTableConfig.call(void 0, ),T=_react.createContext.call(void 0, I);function Q({config:e,defaults:a,children:r}){let t=_react.useContext.call(void 0, T),n=_react.useMemo.call(void 0, ()=>_machtable.mergeMachTableConfig.call(void 0, t,{..._nullishCoalesce(e, () => ({})),...a?{defaults:a}:{}}),[t,e,a]);return _react.createElement.call(void 0, T.Provider,{value:n},r)}function j(){return _react.useContext.call(void 0, T).defaults}function P(){return _react.useContext.call(void 0, T)}function W(e,a){let r={};for(let t of _machtable.GRID_OPTION_KEYS){if(t==="className")continue;let n=t==="ariaLabel"?e.gridAriaLabel:t==="ariaLabelledBy"?e.gridAriaLabelledBy:t==="ariaDescribedBy"?e.gridAriaDescribedBy:e[t];n!==void 0&&(r[t]=n)}return e.gridClassName!==void 0&&(r.className=e.gridClassName),_machtable.resolveMachTableGridOptions.call(void 0, a,e.preset,r).options}function N(e){let{className:a,style:r,apiRef:t}=e,n=_react.useRef.call(void 0, null),s=_react.useRef.call(void 0, null),O=_react.useRef.call(void 0, e);O.current=e;let E=P(),y=[E,e.preset,..._machtable.GRID_OPTION_KEYS.map(o=>o==="className"?e.gridClassName:o==="ariaLabel"?e.gridAriaLabel:o==="ariaLabelledBy"?e.gridAriaLabelledBy:o==="ariaDescribedBy"?e.gridAriaDescribedBy:e[o])],m=_react.useRef.call(void 0, null);(!m.current||m.current.inputs.length!==y.length||y.some((o,i)=>!Object.is(o,_optionalChain([m, 'access', _2 => _2.current, 'optionalAccess', _3 => _3.inputs, 'access', _4 => _4[i]]))))&&(m.current={inputs:y,options:W(e,E)});let R=m.current.options,g=_react.useRef.call(void 0, R);g.current=R,_react.useEffect.call(void 0, ()=>{let o=n.current;if(!o)return;let i={...g.current};for(let b of _machtable.EVENT_TYPES){let p=`on${b.charAt(0).toUpperCase()}${b.slice(1)}`;i[p]=S=>{let D=g.current[p];typeof D=="function"&&D(S);let C=O.current[p];typeof C=="function"&&C!==D&&C(S)}}let f=_machtable.createGrid.call(void 0, o,i);return s.current=f,()=>{f.destroy(),s.current=null}},[]),_react.useEffect.call(void 0, ()=>{if(!t)return;let o=s.current;return t.current=o,()=>{t.current===o&&(t.current=null)}},[t]);let M=_machtable.GRID_OPTION_KEYS.map(o=>R[o]),A=_react.useRef.call(void 0, null);return _react.useEffect.call(void 0, ()=>{let o=A.current;if(A.current=M,!o)return;let i={};M.forEach((f,b)=>{Object.is(f,o[b])||(i[_machtable.GRID_OPTION_KEYS[b]]=f)}),Object.keys(i).length>0&&_optionalChain([s, 'access', _5 => _5.current, 'optionalAccess', _6 => _6.updateOptions, 'call', _7 => _7(i)])},M),_react.createElement.call(void 0, "div",{ref:n,className:`mach-react-host ${_nullishCoalesce(a, () => (""))}`.trim()||void 0,style:r,"aria-label":e["aria-label"],"aria-labelledby":e["aria-labelledby"],"aria-describedby":e["aria-describedby"]})}var J=N;var X={search:!0,refresh:!0,columns:!0,density:!0,export:!0,undoRedo:!1,fullscreen:!1};function c(e,a){return _nullishCoalesce(_optionalChain([e, 'optionalAccess', _8 => _8[a]]), () => (X[a]))}function u(e,a,r,t=!1){return _react.createElement.call(void 0, "button",{key:e,type:"button",className:"mach-toolbar__button",title:e,"aria-label":e,disabled:t,onClick:r},a)}function Z(e){let a=[e.start],r=_nullishCoalesce(e.searchPlaceholder, () => ("\u641C\u7D22\u5F53\u524D\u7ED3\u679C"));return c(e.features,"search")&&a.push(_react.createElement.call(void 0, "label",{className:"mach-toolbar__search",key:"search"},_react.createElement.call(void 0, "span",{className:"mach-sr-only"},r),_react.createElement.call(void 0, "span",{"aria-hidden":!0},"\u2315"),_react.createElement.call(void 0, "input",{type:"search",value:_nullishCoalesce(e.search, () => ("")),placeholder:r,onChange:t=>{let n=t.currentTarget.value;_optionalChain([e, 'access', _9 => _9.onSearchChange, 'optionalCall', _10 => _10(n)]),e.onSearchChange||(e.commands?e.commands.search(n||null):_optionalChain([e, 'access', _11 => _11.api, 'optionalAccess', _12 => _12.setQuickFilter, 'call', _13 => _13(n||null)]))}}))),c(e.features,"refresh")&&a.push(u("\u5237\u65B0",e.loading?"\u2026":"\u21BB",()=>{_optionalChain([e, 'access', _14 => _14.onRefresh, 'optionalCall', _15 => _15()]),e.onRefresh||(e.commands?e.commands.refresh():_optionalChain([e, 'access', _16 => _16.api, 'optionalAccess', _17 => _17.isInfinite, 'call', _18 => _18()])?e.api.reload():_optionalChain([e, 'access', _19 => _19.api, 'optionalAccess', _20 => _20.refreshCells, 'call', _21 => _21()]))},e.loading)),c(e.features,"columns")&&a.push(u("\u5217\u8BBE\u7F6E","\u2637",t=>{e.commands?e.commands.openColumns(t.currentTarget):_optionalChain([e, 'access', _22 => _22.api, 'optionalAccess', _23 => _23.openColumnWorkbench, 'call', _24 => _24(t.currentTarget)])})),c(e.features,"density")&&a.push(_react.createElement.call(void 0, "select",{key:"density",className:"mach-toolbar__select",value:_nullishCoalesce(_optionalChain([e, 'access', _25 => _25.api, 'optionalAccess', _26 => _26.getGridOption, 'call', _27 => _27("size")]), () => ("normal")),"aria-label":"\u8868\u683C\u5BC6\u5EA6",onChange:t=>{let n=t.currentTarget.value;e.commands?e.commands.setDensity(n):_optionalChain([e, 'access', _28 => _28.api, 'optionalAccess', _29 => _29.setGridOption, 'call', _30 => _30("size",n)])}},_react.createElement.call(void 0, "option",{value:"compact"},"\u7D27\u51D1"),_react.createElement.call(void 0, "option",{value:"normal"},"\u6807\u51C6"),_react.createElement.call(void 0, "option",{value:"large"},"\u5BBD\u677E"))),a.push(e.children),a}function ee(e){e.commands?e.commands.undo():_optionalChain([e, 'access', _31 => _31.api, 'optionalAccess', _32 => _32.undo, 'call', _33 => _33()])}function ae(e){e.commands?e.commands.redo():_optionalChain([e, 'access', _34 => _34.api, 'optionalAccess', _35 => _35.redo, 'call', _36 => _36()])}function te(e){let a=[];return(_nullishCoalesce(e.selectedCount, () => (0)))>0&&a.push(_react.createElement.call(void 0, "button",{type:"button",className:"mach-toolbar__selection",onClick:()=>_optionalChain([e, 'access', _37 => _37.onClearSelection, 'optionalCall', _38 => _38()])},`\u5DF2\u9009 ${e.selectedCount} \u9879 \xD7`)),c(e.features,"undoRedo")&&(a.push(u("\u64A4\u9500","\u21B6",()=>ee(e),e.commands?!e.commands.canUndo():!_optionalChain([e, 'access', _39 => _39.api, 'optionalAccess', _40 => _40.canUndo, 'call', _41 => _41()]))),a.push(u("\u91CD\u505A","\u21B7",()=>ae(e),e.commands?!e.commands.canRedo():!_optionalChain([e, 'access', _42 => _42.api, 'optionalAccess', _43 => _43.canRedo, 'call', _44 => _44()])))),c(e.features,"export")&&a.push(u("\u5BFC\u51FA CSV","\u21E9",()=>{_optionalChain([e, 'access', _45 => _45.commands, 'optionalAccess', _46 => _46.exportCsv, 'call', _47 => _47(e.exportFilename)])},!e.commands)),c(e.features,"fullscreen")&&a.push(u("\u5168\u5C4F","\u26F6",()=>{_optionalChain([e, 'access', _48 => _48.commands, 'optionalAccess', _49 => _49.toggleFullscreen, 'call', _50 => _50()])},!e.commands)),a.push(e.end),a}function re(e){return _react.createElement.call(void 0, "div",{className:"mach-toolbar",role:"toolbar","aria-label":"\u8868\u683C\u5DE5\u5177\u680F"},_react.createElement.call(void 0, "div",{className:"mach-toolbar__main"},...Z(e)),_react.createElement.call(void 0, "div",{className:"mach-toolbar__aside"},...te(e)))}var _client = require('react-dom/client');function ne(e){return a=>{let r=document.createElement("div");r.className="mach-cell-react",r.style.width="100%";let t=_client.createRoot.call(void 0, r);t.render(_react.createElement.call(void 0, e,a));let n=!1;return{el:r,refresh:s=>(t.render(_react.createElement.call(void 0, e,s)),!0),destroy:()=>{n||(n=!0,window.setTimeout(()=>{t.unmount()},0))}}}}function oe(e){return a=>{let r=document.createElement("div");r.style.height="100%";let t=_client.createRoot.call(void 0, r);t.render(_react.createElement.call(void 0, e,a));let n=!1;return{el:r,destroy:()=>{n||(n=!0,window.setTimeout(()=>{t.unmount()},0))}}}}var pe=N;exports.MachTable = N; exports.MachTableProvider = Q; exports.MachTableToolbar = re; exports.RobotGrid = J; exports.default = pe; exports.reactCellRenderer = ne; exports.reactDetailRenderer = oe; exports.useMachGrid = _chunkTSVK66UXcjs.a; exports.useMachTableConfig = P; exports.useMachTableController = _chunkTSVK66UXcjs.d; exports.useMachTableDefaults = j; exports.useMachTableEditing = _chunkTSVK66UXcjs.b; exports.useMachTableQuery = _chunkTSVK66UXcjs.c;
2
- //# sourceMappingURL=index.cjs.map
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _createStarExport(obj) { Object.keys(obj) .filter((key) => key !== "default" && key !== "__esModule") .forEach((key) => { if (exports.hasOwnProperty(key)) { return; } Object.defineProperty(exports, key, {enumerable: true, configurable: true, get: () => obj[key]}); }); } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkMFRKW34Vcjs = require('./chunk-MFRKW34V.cjs');var _react = require('react');var _machtable = require('@agile-team/mach-table'); _createStarExport(_machtable);var I=_machtable.normalizeMachTableConfig.call(void 0, ),T=_react.createContext.call(void 0, I);function Q({config:e,defaults:a,children:r}){let t=_react.useContext.call(void 0, T),n=_react.useMemo.call(void 0, ()=>_machtable.mergeMachTableConfig.call(void 0, t,{..._nullishCoalesce(e, () => ({})),...a?{defaults:a}:{}}),[t,e,a]);return _react.createElement.call(void 0, T.Provider,{value:n},r)}function j(){return _react.useContext.call(void 0, T).defaults}function P(){return _react.useContext.call(void 0, T)}function W(e,a){let r={};for(let t of _machtable.GRID_OPTION_KEYS){if(t==="className")continue;let n=t==="ariaLabel"?e.gridAriaLabel:t==="ariaLabelledBy"?e.gridAriaLabelledBy:t==="ariaDescribedBy"?e.gridAriaDescribedBy:e[t];n!==void 0&&(r[t]=n)}return e.gridClassName!==void 0&&(r.className=e.gridClassName),_machtable.resolveMachTableGridOptions.call(void 0, a,e.preset,r).options}function N(e){let{className:a,style:r,apiRef:t}=e,n=_react.useRef.call(void 0, null),s=_react.useRef.call(void 0, null),O=_react.useRef.call(void 0, e);O.current=e;let E=P(),y=[E,e.preset,..._machtable.GRID_OPTION_KEYS.map(o=>o==="className"?e.gridClassName:o==="ariaLabel"?e.gridAriaLabel:o==="ariaLabelledBy"?e.gridAriaLabelledBy:o==="ariaDescribedBy"?e.gridAriaDescribedBy:e[o])],m=_react.useRef.call(void 0, null);(!m.current||m.current.inputs.length!==y.length||y.some((o,i)=>!Object.is(o,_optionalChain([m, 'access', _2 => _2.current, 'optionalAccess', _3 => _3.inputs, 'access', _4 => _4[i]]))))&&(m.current={inputs:y,options:W(e,E)});let R=m.current.options,g=_react.useRef.call(void 0, R);g.current=R,_react.useEffect.call(void 0, ()=>{let o=n.current;if(!o)return;let i={...g.current};for(let b of _machtable.EVENT_TYPES){let p=`on${b.charAt(0).toUpperCase()}${b.slice(1)}`;i[p]=S=>{let D=g.current[p];typeof D=="function"&&D(S);let C=O.current[p];typeof C=="function"&&C!==D&&C(S)}}let f=_machtable.createGrid.call(void 0, o,i);return s.current=f,()=>{f.destroy(),s.current=null}},[]),_react.useEffect.call(void 0, ()=>{if(!t)return;let o=s.current;return t.current=o,()=>{t.current===o&&(t.current=null)}},[t]);let M=_machtable.GRID_OPTION_KEYS.map(o=>R[o]),A=_react.useRef.call(void 0, null);return _react.useEffect.call(void 0, ()=>{let o=A.current;if(A.current=M,!o)return;let i={};M.forEach((f,b)=>{Object.is(f,o[b])||(i[_machtable.GRID_OPTION_KEYS[b]]=f)}),Object.keys(i).length>0&&_optionalChain([s, 'access', _5 => _5.current, 'optionalAccess', _6 => _6.updateOptions, 'call', _7 => _7(i)])},M),_react.createElement.call(void 0, "div",{ref:n,className:`mach-react-host ${_nullishCoalesce(a, () => (""))}`.trim()||void 0,style:r,"aria-label":e["aria-label"],"aria-labelledby":e["aria-labelledby"],"aria-describedby":e["aria-describedby"]})}var J=N;var X={search:!0,refresh:!0,columns:!0,density:!0,export:!0,undoRedo:!1,fullscreen:!1};function c(e,a){return _nullishCoalesce(_optionalChain([e, 'optionalAccess', _8 => _8[a]]), () => (X[a]))}function u(e,a,r,t=!1){return _react.createElement.call(void 0, "button",{key:e,type:"button",className:"mach-toolbar__button",title:e,"aria-label":e,disabled:t,onClick:r},a)}function Z(e){let a=[e.start],r=_nullishCoalesce(e.searchPlaceholder, () => ("\u641C\u7D22\u5F53\u524D\u7ED3\u679C"));return c(e.features,"search")&&a.push(_react.createElement.call(void 0, "label",{className:"mach-toolbar__search",key:"search"},_react.createElement.call(void 0, "span",{className:"mach-sr-only"},r),_react.createElement.call(void 0, "span",{"aria-hidden":!0},"\u2315"),_react.createElement.call(void 0, "input",{type:"search",value:_nullishCoalesce(e.search, () => ("")),placeholder:r,onChange:t=>{let n=t.currentTarget.value;_optionalChain([e, 'access', _9 => _9.onSearchChange, 'optionalCall', _10 => _10(n)]),e.onSearchChange||(e.commands?e.commands.search(n||null):_optionalChain([e, 'access', _11 => _11.api, 'optionalAccess', _12 => _12.setQuickFilter, 'call', _13 => _13(n||null)]))}}))),c(e.features,"refresh")&&a.push(u("\u5237\u65B0",e.loading?"\u2026":"\u21BB",()=>{_optionalChain([e, 'access', _14 => _14.onRefresh, 'optionalCall', _15 => _15()]),e.onRefresh||(e.commands?e.commands.refresh():_optionalChain([e, 'access', _16 => _16.api, 'optionalAccess', _17 => _17.isInfinite, 'call', _18 => _18()])?e.api.reload():_optionalChain([e, 'access', _19 => _19.api, 'optionalAccess', _20 => _20.refreshCells, 'call', _21 => _21()]))},e.loading)),c(e.features,"columns")&&a.push(u("\u5217\u8BBE\u7F6E","\u2637",t=>{e.commands?e.commands.openColumns(t.currentTarget):_optionalChain([e, 'access', _22 => _22.api, 'optionalAccess', _23 => _23.openColumnWorkbench, 'call', _24 => _24(t.currentTarget)])})),c(e.features,"density")&&a.push(_react.createElement.call(void 0, "select",{key:"density",className:"mach-toolbar__select",value:_nullishCoalesce(_optionalChain([e, 'access', _25 => _25.api, 'optionalAccess', _26 => _26.getGridOption, 'call', _27 => _27("size")]), () => ("normal")),"aria-label":"\u8868\u683C\u5BC6\u5EA6",onChange:t=>{let n=t.currentTarget.value;e.commands?e.commands.setDensity(n):_optionalChain([e, 'access', _28 => _28.api, 'optionalAccess', _29 => _29.setGridOption, 'call', _30 => _30("size",n)])}},_react.createElement.call(void 0, "option",{value:"compact"},"\u7D27\u51D1"),_react.createElement.call(void 0, "option",{value:"normal"},"\u6807\u51C6"),_react.createElement.call(void 0, "option",{value:"large"},"\u5BBD\u677E"))),a.push(e.children),a}function ee(e){e.commands?e.commands.undo():_optionalChain([e, 'access', _31 => _31.api, 'optionalAccess', _32 => _32.undo, 'call', _33 => _33()])}function ae(e){e.commands?e.commands.redo():_optionalChain([e, 'access', _34 => _34.api, 'optionalAccess', _35 => _35.redo, 'call', _36 => _36()])}function te(e){let a=[];return(_nullishCoalesce(e.selectedCount, () => (0)))>0&&a.push(_react.createElement.call(void 0, "button",{type:"button",className:"mach-toolbar__selection",onClick:()=>_optionalChain([e, 'access', _37 => _37.onClearSelection, 'optionalCall', _38 => _38()])},`\u5DF2\u9009 ${e.selectedCount} \u9879 \xD7`)),c(e.features,"undoRedo")&&(a.push(u("\u64A4\u9500","\u21B6",()=>ee(e),e.commands?!e.commands.canUndo():!_optionalChain([e, 'access', _39 => _39.api, 'optionalAccess', _40 => _40.canUndo, 'call', _41 => _41()]))),a.push(u("\u91CD\u505A","\u21B7",()=>ae(e),e.commands?!e.commands.canRedo():!_optionalChain([e, 'access', _42 => _42.api, 'optionalAccess', _43 => _43.canRedo, 'call', _44 => _44()])))),c(e.features,"export")&&a.push(u("\u5BFC\u51FA CSV","\u21E9",()=>{_optionalChain([e, 'access', _45 => _45.commands, 'optionalAccess', _46 => _46.exportCsv, 'call', _47 => _47(e.exportFilename)])},!e.commands)),c(e.features,"fullscreen")&&a.push(u("\u5168\u5C4F","\u26F6",()=>{_optionalChain([e, 'access', _48 => _48.commands, 'optionalAccess', _49 => _49.toggleFullscreen, 'call', _50 => _50()])},!e.commands)),a.push(e.end),a}function re(e){return _react.createElement.call(void 0, "div",{className:"mach-toolbar",role:"toolbar","aria-label":"\u8868\u683C\u5DE5\u5177\u680F"},_react.createElement.call(void 0, "div",{className:"mach-toolbar__main"},...Z(e)),_react.createElement.call(void 0, "div",{className:"mach-toolbar__aside"},...te(e)))}var _client = require('react-dom/client');function ne(e){return a=>{let r=document.createElement("div");r.className="mach-cell-react",r.style.width="100%";let t=_client.createRoot.call(void 0, r);t.render(_react.createElement.call(void 0, e,a));let n=!1;return{el:r,refresh:s=>(t.render(_react.createElement.call(void 0, e,s)),!0),destroy:()=>{n||(n=!0,window.setTimeout(()=>{t.unmount()},0))}}}}function oe(e){return a=>{let r=document.createElement("div");r.style.height="100%";let t=_client.createRoot.call(void 0, r);t.render(_react.createElement.call(void 0, e,a));let n=!1;return{el:r,destroy:()=>{n||(n=!0,window.setTimeout(()=>{t.unmount()},0))}}}}var pe=N;exports.MachTable = N; exports.MachTableProvider = Q; exports.MachTableToolbar = re; exports.RobotGrid = J; exports.default = pe; exports.reactCellRenderer = ne; exports.reactDetailRenderer = oe; exports.useMachGrid = _chunkMFRKW34Vcjs.a; exports.useMachTableConfig = P; exports.useMachTableController = _chunkMFRKW34Vcjs.d; exports.useMachTableDefaults = j; exports.useMachTableEditing = _chunkMFRKW34Vcjs.b; exports.useMachTableQuery = _chunkMFRKW34Vcjs.c;
package/dist/index.js CHANGED
@@ -1,2 +1 @@
1
- import{a as L,b as _,c as k,d as F}from"./chunk-MW23Z6MV.js";import{createElement as $,useEffect as x,useRef as d}from"react";import{createGrid as q,GRID_OPTION_KEYS as h,EVENT_TYPES as K,resolveMachTableGridOptions as Y}from"@agile-team/mach-table";import{createContext as B,createElement as U,useContext as v,useMemo as V}from"react";import{mergeMachTableConfig as z,normalizeMachTableConfig as H}from"@agile-team/mach-table";var I=H(),T=B(I);function Q({config:e,defaults:a,children:r}){let t=v(T),n=V(()=>z(t,{...e??{},...a?{defaults:a}:{}}),[t,e,a]);return U(T.Provider,{value:n},r)}function j(){return v(T).defaults}function P(){return v(T)}function W(e,a){let r={};for(let t of h){if(t==="className")continue;let n=t==="ariaLabel"?e.gridAriaLabel:t==="ariaLabelledBy"?e.gridAriaLabelledBy:t==="ariaDescribedBy"?e.gridAriaDescribedBy:e[t];n!==void 0&&(r[t]=n)}return e.gridClassName!==void 0&&(r.className=e.gridClassName),Y(a,e.preset,r).options}function N(e){let{className:a,style:r,apiRef:t}=e,n=d(null),s=d(null),O=d(e);O.current=e;let E=P(),y=[E,e.preset,...h.map(o=>o==="className"?e.gridClassName:o==="ariaLabel"?e.gridAriaLabel:o==="ariaLabelledBy"?e.gridAriaLabelledBy:o==="ariaDescribedBy"?e.gridAriaDescribedBy:e[o])],m=d(null);(!m.current||m.current.inputs.length!==y.length||y.some((o,i)=>!Object.is(o,m.current?.inputs[i])))&&(m.current={inputs:y,options:W(e,E)});let R=m.current.options,g=d(R);g.current=R,x(()=>{let o=n.current;if(!o)return;let i={...g.current};for(let b of K){let p=`on${b.charAt(0).toUpperCase()}${b.slice(1)}`;i[p]=S=>{let D=g.current[p];typeof D=="function"&&D(S);let C=O.current[p];typeof C=="function"&&C!==D&&C(S)}}let f=q(o,i);return s.current=f,()=>{f.destroy(),s.current=null}},[]),x(()=>{if(!t)return;let o=s.current;return t.current=o,()=>{t.current===o&&(t.current=null)}},[t]);let M=h.map(o=>R[o]),A=d(null);return x(()=>{let o=A.current;if(A.current=M,!o)return;let i={};M.forEach((f,b)=>{Object.is(f,o[b])||(i[h[b]]=f)}),Object.keys(i).length>0&&s.current?.updateOptions(i)},M),$("div",{ref:n,className:`mach-react-host ${a??""}`.trim()||void 0,style:r,"aria-label":e["aria-label"],"aria-labelledby":e["aria-labelledby"],"aria-describedby":e["aria-describedby"]})}var J=N;import{createElement as l}from"react";var X={search:!0,refresh:!0,columns:!0,density:!0,export:!0,undoRedo:!1,fullscreen:!1};function c(e,a){return e?.[a]??X[a]}function u(e,a,r,t=!1){return l("button",{key:e,type:"button",className:"mach-toolbar__button",title:e,"aria-label":e,disabled:t,onClick:r},a)}function Z(e){let a=[e.start],r=e.searchPlaceholder??"\u641C\u7D22\u5F53\u524D\u7ED3\u679C";return c(e.features,"search")&&a.push(l("label",{className:"mach-toolbar__search",key:"search"},l("span",{className:"mach-sr-only"},r),l("span",{"aria-hidden":!0},"\u2315"),l("input",{type:"search",value:e.search??"",placeholder:r,onChange:t=>{let n=t.currentTarget.value;e.onSearchChange?.(n),e.onSearchChange||(e.commands?e.commands.search(n||null):e.api?.setQuickFilter(n||null))}}))),c(e.features,"refresh")&&a.push(u("\u5237\u65B0",e.loading?"\u2026":"\u21BB",()=>{e.onRefresh?.(),e.onRefresh||(e.commands?e.commands.refresh():e.api?.isInfinite()?e.api.reload():e.api?.refreshCells())},e.loading)),c(e.features,"columns")&&a.push(u("\u5217\u8BBE\u7F6E","\u2637",t=>{e.commands?e.commands.openColumns(t.currentTarget):e.api?.openColumnWorkbench(t.currentTarget)})),c(e.features,"density")&&a.push(l("select",{key:"density",className:"mach-toolbar__select",value:e.api?.getGridOption("size")??"normal","aria-label":"\u8868\u683C\u5BC6\u5EA6",onChange:t=>{let n=t.currentTarget.value;e.commands?e.commands.setDensity(n):e.api?.setGridOption("size",n)}},l("option",{value:"compact"},"\u7D27\u51D1"),l("option",{value:"normal"},"\u6807\u51C6"),l("option",{value:"large"},"\u5BBD\u677E"))),a.push(e.children),a}function ee(e){e.commands?e.commands.undo():e.api?.undo()}function ae(e){e.commands?e.commands.redo():e.api?.redo()}function te(e){let a=[];return(e.selectedCount??0)>0&&a.push(l("button",{type:"button",className:"mach-toolbar__selection",onClick:()=>e.onClearSelection?.()},`\u5DF2\u9009 ${e.selectedCount} \u9879 \xD7`)),c(e.features,"undoRedo")&&(a.push(u("\u64A4\u9500","\u21B6",()=>ee(e),e.commands?!e.commands.canUndo():!e.api?.canUndo())),a.push(u("\u91CD\u505A","\u21B7",()=>ae(e),e.commands?!e.commands.canRedo():!e.api?.canRedo()))),c(e.features,"export")&&a.push(u("\u5BFC\u51FA CSV","\u21E9",()=>{e.commands?.exportCsv(e.exportFilename)},!e.commands)),c(e.features,"fullscreen")&&a.push(u("\u5168\u5C4F","\u26F6",()=>{e.commands?.toggleFullscreen()},!e.commands)),a.push(e.end),a}function re(e){return l("div",{className:"mach-toolbar",role:"toolbar","aria-label":"\u8868\u683C\u5DE5\u5177\u680F"},l("div",{className:"mach-toolbar__main"},...Z(e)),l("div",{className:"mach-toolbar__aside"},...te(e)))}import{createElement as G,isValidElement as ye}from"react";import{createRoot as w}from"react-dom/client";function ne(e){return a=>{let r=document.createElement("div");r.className="mach-cell-react",r.style.width="100%";let t=w(r);t.render(G(e,a));let n=!1;return{el:r,refresh:s=>(t.render(G(e,s)),!0),destroy:()=>{n||(n=!0,window.setTimeout(()=>{t.unmount()},0))}}}}function oe(e){return a=>{let r=document.createElement("div");r.style.height="100%";let t=w(r);t.render(G(e,a));let n=!1;return{el:r,destroy:()=>{n||(n=!0,window.setTimeout(()=>{t.unmount()},0))}}}}export*from"@agile-team/mach-table";var pe=N;export{N as MachTable,Q as MachTableProvider,re as MachTableToolbar,J as RobotGrid,pe as default,ne as reactCellRenderer,oe as reactDetailRenderer,L as useMachGrid,P as useMachTableConfig,F as useMachTableController,j as useMachTableDefaults,_ as useMachTableEditing,k as useMachTableQuery};
2
- //# sourceMappingURL=index.js.map
1
+ import{a as L,b as _,c as k,d as F}from"./chunk-WF435LXF.js";import{createElement as $,useEffect as x,useRef as d}from"react";import{createGrid as q,GRID_OPTION_KEYS as h,EVENT_TYPES as K,resolveMachTableGridOptions as Y}from"@agile-team/mach-table";import{createContext as B,createElement as U,useContext as v,useMemo as V}from"react";import{mergeMachTableConfig as z,normalizeMachTableConfig as H}from"@agile-team/mach-table";var I=H(),T=B(I);function Q({config:e,defaults:a,children:r}){let t=v(T),n=V(()=>z(t,{...e??{},...a?{defaults:a}:{}}),[t,e,a]);return U(T.Provider,{value:n},r)}function j(){return v(T).defaults}function P(){return v(T)}function W(e,a){let r={};for(let t of h){if(t==="className")continue;let n=t==="ariaLabel"?e.gridAriaLabel:t==="ariaLabelledBy"?e.gridAriaLabelledBy:t==="ariaDescribedBy"?e.gridAriaDescribedBy:e[t];n!==void 0&&(r[t]=n)}return e.gridClassName!==void 0&&(r.className=e.gridClassName),Y(a,e.preset,r).options}function N(e){let{className:a,style:r,apiRef:t}=e,n=d(null),s=d(null),O=d(e);O.current=e;let E=P(),y=[E,e.preset,...h.map(o=>o==="className"?e.gridClassName:o==="ariaLabel"?e.gridAriaLabel:o==="ariaLabelledBy"?e.gridAriaLabelledBy:o==="ariaDescribedBy"?e.gridAriaDescribedBy:e[o])],m=d(null);(!m.current||m.current.inputs.length!==y.length||y.some((o,i)=>!Object.is(o,m.current?.inputs[i])))&&(m.current={inputs:y,options:W(e,E)});let R=m.current.options,g=d(R);g.current=R,x(()=>{let o=n.current;if(!o)return;let i={...g.current};for(let b of K){let p=`on${b.charAt(0).toUpperCase()}${b.slice(1)}`;i[p]=S=>{let D=g.current[p];typeof D=="function"&&D(S);let C=O.current[p];typeof C=="function"&&C!==D&&C(S)}}let f=q(o,i);return s.current=f,()=>{f.destroy(),s.current=null}},[]),x(()=>{if(!t)return;let o=s.current;return t.current=o,()=>{t.current===o&&(t.current=null)}},[t]);let M=h.map(o=>R[o]),A=d(null);return x(()=>{let o=A.current;if(A.current=M,!o)return;let i={};M.forEach((f,b)=>{Object.is(f,o[b])||(i[h[b]]=f)}),Object.keys(i).length>0&&s.current?.updateOptions(i)},M),$("div",{ref:n,className:`mach-react-host ${a??""}`.trim()||void 0,style:r,"aria-label":e["aria-label"],"aria-labelledby":e["aria-labelledby"],"aria-describedby":e["aria-describedby"]})}var J=N;import{createElement as l}from"react";var X={search:!0,refresh:!0,columns:!0,density:!0,export:!0,undoRedo:!1,fullscreen:!1};function c(e,a){return e?.[a]??X[a]}function u(e,a,r,t=!1){return l("button",{key:e,type:"button",className:"mach-toolbar__button",title:e,"aria-label":e,disabled:t,onClick:r},a)}function Z(e){let a=[e.start],r=e.searchPlaceholder??"\u641C\u7D22\u5F53\u524D\u7ED3\u679C";return c(e.features,"search")&&a.push(l("label",{className:"mach-toolbar__search",key:"search"},l("span",{className:"mach-sr-only"},r),l("span",{"aria-hidden":!0},"\u2315"),l("input",{type:"search",value:e.search??"",placeholder:r,onChange:t=>{let n=t.currentTarget.value;e.onSearchChange?.(n),e.onSearchChange||(e.commands?e.commands.search(n||null):e.api?.setQuickFilter(n||null))}}))),c(e.features,"refresh")&&a.push(u("\u5237\u65B0",e.loading?"\u2026":"\u21BB",()=>{e.onRefresh?.(),e.onRefresh||(e.commands?e.commands.refresh():e.api?.isInfinite()?e.api.reload():e.api?.refreshCells())},e.loading)),c(e.features,"columns")&&a.push(u("\u5217\u8BBE\u7F6E","\u2637",t=>{e.commands?e.commands.openColumns(t.currentTarget):e.api?.openColumnWorkbench(t.currentTarget)})),c(e.features,"density")&&a.push(l("select",{key:"density",className:"mach-toolbar__select",value:e.api?.getGridOption("size")??"normal","aria-label":"\u8868\u683C\u5BC6\u5EA6",onChange:t=>{let n=t.currentTarget.value;e.commands?e.commands.setDensity(n):e.api?.setGridOption("size",n)}},l("option",{value:"compact"},"\u7D27\u51D1"),l("option",{value:"normal"},"\u6807\u51C6"),l("option",{value:"large"},"\u5BBD\u677E"))),a.push(e.children),a}function ee(e){e.commands?e.commands.undo():e.api?.undo()}function ae(e){e.commands?e.commands.redo():e.api?.redo()}function te(e){let a=[];return(e.selectedCount??0)>0&&a.push(l("button",{type:"button",className:"mach-toolbar__selection",onClick:()=>e.onClearSelection?.()},`\u5DF2\u9009 ${e.selectedCount} \u9879 \xD7`)),c(e.features,"undoRedo")&&(a.push(u("\u64A4\u9500","\u21B6",()=>ee(e),e.commands?!e.commands.canUndo():!e.api?.canUndo())),a.push(u("\u91CD\u505A","\u21B7",()=>ae(e),e.commands?!e.commands.canRedo():!e.api?.canRedo()))),c(e.features,"export")&&a.push(u("\u5BFC\u51FA CSV","\u21E9",()=>{e.commands?.exportCsv(e.exportFilename)},!e.commands)),c(e.features,"fullscreen")&&a.push(u("\u5168\u5C4F","\u26F6",()=>{e.commands?.toggleFullscreen()},!e.commands)),a.push(e.end),a}function re(e){return l("div",{className:"mach-toolbar",role:"toolbar","aria-label":"\u8868\u683C\u5DE5\u5177\u680F"},l("div",{className:"mach-toolbar__main"},...Z(e)),l("div",{className:"mach-toolbar__aside"},...te(e)))}import{createElement as G,isValidElement as ye}from"react";import{createRoot as w}from"react-dom/client";function ne(e){return a=>{let r=document.createElement("div");r.className="mach-cell-react",r.style.width="100%";let t=w(r);t.render(G(e,a));let n=!1;return{el:r,refresh:s=>(t.render(G(e,s)),!0),destroy:()=>{n||(n=!0,window.setTimeout(()=>{t.unmount()},0))}}}}function oe(e){return a=>{let r=document.createElement("div");r.style.height="100%";let t=w(r);t.render(G(e,a));let n=!1;return{el:r,destroy:()=>{n||(n=!0,window.setTimeout(()=>{t.unmount()},0))}}}}export*from"@agile-team/mach-table";var pe=N;export{N as MachTable,Q as MachTableProvider,re as MachTableToolbar,J as RobotGrid,pe as default,ne as reactCellRenderer,oe as reactDetailRenderer,L as useMachGrid,P as useMachTableConfig,F as useMachTableController,j as useMachTableDefaults,_ as useMachTableEditing,k as useMachTableQuery};
package/dist/worker.cjs CHANGED
@@ -1,2 +1 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _createStarExport(obj) { Object.keys(obj) .filter((key) => key !== "default" && key !== "__esModule") .forEach((key) => { if (exports.hasOwnProperty(key)) { return; } Object.defineProperty(exports, key, {enumerable: true, configurable: true, get: () => obj[key]}); }); }var _worker = require('@agile-team/mach-table/worker'); _createStarExport(_worker);
2
- //# sourceMappingURL=worker.cjs.map
package/dist/worker.js CHANGED
@@ -1,2 +1 @@
1
1
  export*from"@agile-team/mach-table/worker";
2
- //# sourceMappingURL=worker.js.map
@@ -1,2 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkTSVK66UXcjs = require('./chunk-TSVK66UX.cjs');exports.useMachTableController = _chunkTSVK66UXcjs.d; exports.useMachTableEditing = _chunkTSVK66UXcjs.b; exports.useMachTableQuery = _chunkTSVK66UXcjs.c;
2
- //# sourceMappingURL=workflows.cjs.map
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkMFRKW34Vcjs = require('./chunk-MFRKW34V.cjs');exports.useMachTableController = _chunkMFRKW34Vcjs.d; exports.useMachTableEditing = _chunkMFRKW34Vcjs.b; exports.useMachTableQuery = _chunkMFRKW34Vcjs.c;
package/dist/workflows.js CHANGED
@@ -1,2 +1 @@
1
- import{b as e,c as a,d as r}from"./chunk-MW23Z6MV.js";export{r as useMachTableController,e as useMachTableEditing,a as useMachTableQuery};
2
- //# sourceMappingURL=workflows.js.map
1
+ import{b as e,c as a,d as r}from"./chunk-WF435LXF.js";export{r as useMachTableController,e as useMachTableEditing,a as useMachTableQuery};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agile-team/mach-table-react",
3
- "version": "0.19.0",
3
+ "version": "0.23.0",
4
4
  "description": "Official React 18+ adapter for the MachTable enterprise data grid",
5
5
  "keywords": [
6
6
  "react",
@@ -77,7 +77,7 @@
77
77
  "**/*.css"
78
78
  ],
79
79
  "dependencies": {
80
- "@agile-team/mach-table": "0.19.0"
80
+ "@agile-team/mach-table": "0.23.0"
81
81
  },
82
82
  "peerDependencies": {
83
83
  "react": ">=18.0.0",
@@ -92,5 +92,6 @@
92
92
  "typecheck": "tsc --noEmit",
93
93
  "test": "vitest run",
94
94
  "test:coverage": "vitest run --coverage"
95
- }
95
+ },
96
+ "readme": "<p align=\"center\">\n <img src=\"https://raw.githubusercontent.com/ChenyCHENYU/MachTable/main/assets/mach-table-logo.svg\" alt=\"MachTable\" width=\"760\" />\n</p>\n\n# @agile-team/mach-table-react\n\nOfficial React 18+ adapter for MachTable 0.23. It provides a generic `<MachTable>`, full app/route configuration, advanced-filter aware remote query, conflict-aware editing workflows, persistent named views, a cohesive controller, optional and persistent column resizing, bounded random-access remote blocks, governed domain APIs, optional Worker processing, a standard toolbar, in-place React cell refresh, latest-closure event handling and StrictMode-safe cleanup. `RobotGrid` remains a deprecated 0.x alias.\n\n## Install\n\n```bash\npnpm add @agile-team/mach-table-react\n```\n\nOptional large local-data Worker helpers use the same installed package but a separate chunk:\n\n```ts\nimport { createWorkerDataProcessor } from \"@agile-team/mach-table-react/worker\";\n```\n\nImport the stylesheet once from your application entry:\n\n```ts\nimport \"@agile-team/mach-table-react/styles.css\";\n```\n\n## Direct import\n\n```tsx\nimport { useMemo } from \"react\";\nimport { MachTable, useMachGrid, type ColDef } from \"@agile-team/mach-table-react\";\n\ninterface Row { id: string; name: string }\n\nexport function App({ rows }: { rows: Row[] }) {\n const grid = useMachGrid<Row>();\n const columns = useMemo<ColDef<Row>[]>(\n () => [{ field: \"name\", headerName: \"Name\", flex: 1 }],\n []\n );\n\n return (\n <div style={{ height: 520 }}>\n <MachTable<Row>\n apiRef={grid.apiRef}\n rowData={rows}\n columnDefs={columns}\n rowKey=\"id\"\n stateKey=\"customer-list\"\n enableColumnResize\n />\n </div>\n );\n}\n```\n\n## Route-level lazy loading\n\nReact intentionally has no global component registry. MachTable provides a default component export so the standard `React.lazy` API works without a mapping wrapper:\n\n```tsx\nimport { lazy, Suspense } from \"react\";\n\nconst MachTable = lazy(() => import(\"@agile-team/mach-table-react\"));\n\nexport function OrdersPage() {\n return (\n <Suspense fallback={<div>Loading table...</div>}>\n <MachTable columnDefs={columns} rowData={rows} />\n </Suspense>\n );\n}\n```\n\nWhen the page itself is route-lazy, a normal named import inside that page already produces the same route-level split. Use `React.lazy` when the grid should be split independently from the page.\n\n## Application and route defaults\n\nKeep table conventions in one file. Providers can be nested; the nearest configuration is merged, named presets are reusable, and explicit table props win:\n\n```tsx\n// mach-table.config.ts\nimport { defineMachTableConfig, defineMachTablePreset } from \"@agile-team/mach-table-react\";\nexport default defineMachTableConfig({\n defaults: {\n size: \"compact\",\n enableColumnResize: true,\n defaultColDef: { sortable: true, resizable: true, filter: true }\n },\n defaultPreset: \"list\",\n presets: {\n list: defineMachTablePreset({ pagination: false }),\n crud: defineMachTablePreset({ rowSelection: \"multiple\", editType: \"fullRow\" })\n }\n});\n\n// main.tsx\n<MachTableProvider config={machTableConfig}>\n <App />\n</MachTableProvider>\n```\n\nThe adapter installs the matching `@agile-team/mach-table` core automatically and re-exports its complete API and types. Only `react >= 18` and `react-dom >= 18` remain peer dependencies supplied by the host application.\n\n## Remote lists and standard workflows\n\nImport heavier page workflows from the tree-shakeable subpath:\n\n```tsx\nimport { useMachTableQuery, useMachTableController } from \"@agile-team/mach-table-react/workflows\";\nimport { MachTable, MachTableToolbar } from \"@agile-team/mach-table-react\";\n\nconst query = useMachTableQuery({\n query: filters,\n queryKey: filters,\n rowKey: \"id\",\n request: orderApi.page,\n mode: \"manual\"\n});\nconst controller = useMachTableController({ query });\n\n<MachTableToolbar\n api={controller.table.api}\n commands={controller.commands}\n search={controller.search}\n onSearchChange={controller.setSearch}\n loading={controller.busy}\n/>;\n<MachTable apiRef={controller.table.apiRef} {...controller.bindings} />;\n```\n\nThe query hook cancels superseded requests, ignores stale responses, forwards nested advanced filters, exposes an error overlay and supports cross-page or select-all-matching selection. `useMachTableEditing()` adds dirty state, detailed partial-save/conflict results, guarded saves, conflict resolution, rollback and reveal helpers.\n\n```tsx\nconst editing = useMachTableEditing(grid, { guardBeforeUnload: true });\nconst result = await editing.saveDetailed(orderApi.saveChanges);\nif (result.conflicts.length) editing.reveal(result.conflicts[0].rowId);\n\nasync function saveCurrentView() {\n const api = grid.apiRef.current;\n if (!api) return;\n const views = createGridViewManager(api, {\n scope: `${tenantId}:${userId}:orders`\n });\n await views.save(\"My pending orders\");\n}\n```\n\nSee the [advanced filter](https://github.com/ChenyCHENYU/MachTable/blob/main/docs/recipes/advanced-filter.md), [named views](https://github.com/ChenyCHENYU/MachTable/blob/main/docs/recipes/saved-views.md), and [batch save](https://github.com/ChenyCHENYU/MachTable/blob/main/docs/recipes/batch-save.md) guides.\n\n## Cell and full-row editing\n\n```tsx\nimport { MachTable, rowActionsColumn } from \"@agile-team/mach-table-react\";\n\nconst columns = [\n { field: \"name\", editable: true },\n { field: \"age\", editable: true, cellEditor: \"number\" },\n rowActionsColumn({ onView, onDelete, overflow: \"drawer\" })\n];\n\n<MachTable editType=\"fullRow\" columnDefs={columns} rowData={rows} />;\n```\n\nCell mode is the default and provides a pencil plus inline confirm/cancel controls. Use `editableIndicator=\"always\" | \"hover\" | \"none\"` to match the page density.\n\nDocumentation: [React guide](https://github.com/ChenyCHENYU/MachTable/blob/main/docs/guide/react.md) · [Enterprise integration](https://github.com/ChenyCHENYU/MachTable/blob/main/docs/guide/enterprise-integration.md) · [Next.js / SSR](https://github.com/ChenyCHENYU/MachTable/blob/main/docs/guide/ssr.md)\n\nSource-available © ChenyCHENYU (Agile Team). Any use requires prior written authorization. See the [license](https://github.com/ChenyCHENYU/MachTable/blob/main/LICENSE) and [authorization process](https://github.com/ChenyCHENYU/MachTable/blob/main/LICENSING.md).\n"
96
97
  }
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/useMachGrid.ts","../src/useMachTableEditing.ts","../src/useMachTableQuery.ts","../src/useMachTableController.ts"],"sourcesContent":["import { useMemo, useState, type MutableRefObject } from \"react\";\nimport type { GridApi } from \"@agile-team/mach-table\";\n\nexport interface UseMachGridReturn<TData = any> {\n apiRef: MutableRefObject<GridApi<TData> | null>;\n api: GridApi<TData> | null;\n ready: boolean;\n}\n\nexport function useMachGrid<TData = any>(): UseMachGridReturn<TData> {\n const [api, setApi] = useState<GridApi<TData> | null>(null);\n const [ready, setReady] = useState(false);\n const apiRef = useMemo(() => {\n let current: GridApi<TData> | null = null;\n return Object.defineProperty({}, \"current\", {\n enumerable: true,\n get: () => current,\n set: (next: GridApi<TData> | null) => {\n if (next === current) return;\n current = next;\n setApi(next);\n setReady(false);\n if (next) {\n void next.whenReady().then(() => {\n if (current === next && !next.isDestroyed()) setReady(true);\n });\n }\n }\n }) as MutableRefObject<GridApi<TData> | null>;\n }, []);\n\n return { apiRef, api, ready };\n}\n","import { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport {\n resolveSaveConflict as resolveCoreSaveConflict,\n type GridBatchSaveResult,\n type GridChange,\n type SaveChangeConflict,\n type SaveChangeIssue,\n type SaveChangesHandler\n} from \"@agile-team/mach-table\";\nimport type { UseMachGridReturn } from \"./useMachGrid\";\n\nexport interface UseMachTableEditingOptions<TData = any> {\n guardBeforeUnload?: boolean;\n beforeUnloadMessage?: string;\n onSaveSuccess?(saved: readonly GridChange<TData>[]): void;\n onSaveResult?(result: GridBatchSaveResult<TData>): void;\n onSaveError?(error: unknown): void;\n}\n\nexport interface UseMachTableEditingReturn<TData = any> {\n changes: GridChange<TData>[];\n dirtyRowIds: string[];\n dirty: boolean;\n saving: boolean;\n saveError: unknown | null;\n lastSaveResult: GridBatchSaveResult<TData> | null;\n saveIssues: Array<SaveChangeIssue | SaveChangeConflict<TData>>;\n failedRowIds: string[];\n save(handler: SaveChangesHandler<TData>, rowIds?: readonly string[]): Promise<GridChange<TData>[]>;\n saveDetailed(handler: SaveChangesHandler<TData>, rowIds?: readonly string[]): Promise<GridBatchSaveResult<TData>>;\n clearSaveIssues(): void;\n resolveConflict(rowId: string, strategy: \"acceptServer\" | \"keepLocal\"): boolean;\n rollback(rowIds?: readonly string[]): boolean;\n markSaved(rowIds?: readonly string[]): void;\n reveal(rowId: string, colId?: string, edit?: boolean): boolean;\n refresh(): void;\n}\n\n/** Reactive dirty/save workflow layered over useMachGrid(). */\nexport function useMachTableEditing<TData = any>(\n table: UseMachGridReturn<TData>,\n options: UseMachTableEditingOptions<TData> = {}\n): UseMachTableEditingReturn<TData> {\n const [changes, setChanges] = useState<GridChange<TData>[]>([]);\n const [dirtyRowIds, setDirtyRowIds] = useState<string[]>([]);\n const [saving, setSaving] = useState(false);\n const [saveError, setSaveError] = useState<unknown | null>(null);\n const [lastSaveResult, setLastSaveResult] = useState<GridBatchSaveResult<TData> | null>(null);\n const savingRef = useRef(false);\n\n const refresh = useCallback((): void => {\n const api = table.apiRef.current;\n if (!api || api.isDestroyed()) {\n setDirtyRowIds([]);\n setChanges([]);\n return;\n }\n setDirtyRowIds(api.getDirtyRowIds());\n setChanges(api.getChanges());\n }, [table.apiRef]);\n\n useEffect(() => {\n const api = table.api;\n refresh();\n return api && !api.isDestroyed() ? api.addEventListener(\"dirtyStateChanged\", refresh) : undefined;\n }, [table.api, refresh]);\n\n const saveDetailed = useCallback(async (\n handler: SaveChangesHandler<TData>,\n rowIds?: readonly string[]\n ): Promise<GridBatchSaveResult<TData>> => {\n const api = table.apiRef.current;\n if (!api || api.isDestroyed()) throw new Error(\"[MachTable] Cannot save before the grid is ready.\");\n if (savingRef.current) throw new Error(\"[MachTable] A save operation is already in progress.\");\n savingRef.current = true;\n setSaving(true);\n setSaveError(null);\n setLastSaveResult(null);\n try {\n const result = await api.saveChangesDetailed(handler, rowIds);\n setLastSaveResult(result);\n refresh();\n options.onSaveSuccess?.(result.saved);\n options.onSaveResult?.(result);\n return result;\n } catch (error) {\n setSaveError(error);\n options.onSaveError?.(error);\n throw error;\n } finally {\n savingRef.current = false;\n setSaving(false);\n }\n }, [options, refresh, table.apiRef]);\n const save = useCallback(async (\n handler: SaveChangesHandler<TData>,\n rowIds?: readonly string[]\n ): Promise<GridChange<TData>[]> => (await saveDetailed(handler, rowIds)).saved, [saveDetailed]);\n\n const clearSaveIssues = useCallback((): void => setLastSaveResult(null), []);\n const resolveConflict = useCallback((rowId: string, strategy: \"acceptServer\" | \"keepLocal\"): boolean => {\n const conflict = lastSaveResult?.conflicts.find((entry) => entry.rowId === rowId);\n const api = table.apiRef.current;\n if (!lastSaveResult || !conflict || !api || !resolveCoreSaveConflict(api, conflict, strategy)) return false;\n setLastSaveResult({\n ...lastSaveResult,\n failures: lastSaveResult.failures,\n conflicts: lastSaveResult.conflicts.filter((entry) => entry.rowId !== rowId)\n });\n refresh();\n return true;\n }, [lastSaveResult, refresh, table.apiRef]);\n\n const rollback = useCallback((rowIds?: readonly string[]): boolean => {\n const changed = table.apiRef.current?.rollbackChanges(rowIds) ?? false;\n refresh();\n return changed;\n }, [refresh, table.apiRef]);\n const markSaved = useCallback((rowIds?: readonly string[]): void => {\n table.apiRef.current?.markChangesSaved(rowIds);\n refresh();\n }, [refresh, table.apiRef]);\n const reveal = useCallback((rowId: string, colId?: string, edit = false): boolean => {\n const api = table.apiRef.current;\n const node = api?.getNodeById(rowId);\n if (!api || !node || node.rowIndex < 0) return false;\n api.scrollToIndex(node.rowIndex, \"middle\");\n return colId && edit ? api.startEditingCell({ rowIndex: node.rowIndex, colId }) : true;\n }, [table.apiRef]);\n\n useEffect(() => {\n if (!options.guardBeforeUnload || typeof window === \"undefined\") return;\n const handler = (event: BeforeUnloadEvent): string | undefined => {\n if (dirtyRowIds.length === 0) return undefined;\n const message = options.beforeUnloadMessage ?? \"存在未保存的表格修改。\";\n event.preventDefault();\n event.returnValue = message;\n return message;\n };\n window.addEventListener(\"beforeunload\", handler);\n return () => window.removeEventListener(\"beforeunload\", handler);\n }, [dirtyRowIds.length, options.beforeUnloadMessage, options.guardBeforeUnload]);\n\n const saveIssues = useMemo(() => [\n ...(lastSaveResult?.failures ?? []),\n ...(lastSaveResult?.conflicts ?? [])\n ], [lastSaveResult]);\n const failedRowIds = useMemo(() => [...new Set(saveIssues.map((issue) => issue.rowId))], [saveIssues]);\n\n return useMemo(() => ({\n changes, dirtyRowIds, dirty: dirtyRowIds.length > 0, saving, saveError,\n lastSaveResult, saveIssues, failedRowIds,\n save, saveDetailed, clearSaveIssues, resolveConflict, rollback, markSaved, reveal, refresh\n }), [changes, clearSaveIssues, dirtyRowIds, failedRowIds, lastSaveResult, markSaved, refresh, resolveConflict, reveal, rollback, save, saveDetailed, saveError, saveIssues, saving]);\n}\n","import { useCallback, useEffect, useMemo, useReducer, useRef, useState } from \"react\";\nimport {\n getByPath,\n normalizeAdvancedFilterModel,\n type AdvancedFilterModel,\n type FilterModel,\n type FilterChangedEvent,\n type GridApi,\n type GridOptions,\n type OverlayContent,\n type OverlayTemplate,\n type PaginationChangedEvent,\n type SelectionChangedEvent,\n type SortModel\n} from \"@agile-team/mach-table\";\n\nexport type MachTableQuerySource<TQuery> = TQuery | (() => TQuery);\n\nexport interface MachTablePageRequest<TQuery> {\n page: number;\n pageSize: number;\n query: TQuery;\n sortModel: SortModel;\n filterModel: FilterModel;\n advancedFilterModel: AdvancedFilterModel | null;\n quickFilterText: string | null;\n signal: AbortSignal;\n}\n\nexport interface MachTablePageResult<TData> {\n rows: readonly TData[];\n total: number;\n}\n\nexport type MachTableRemoteSelectionState =\n | { mode: \"explicit\"; selectedKeys: string[] }\n | { mode: \"allMatching\"; excludedKeys: string[] };\n\nexport interface UseMachTableQueryOptions<TData, TQuery = Record<string, unknown>> {\n request(params: MachTablePageRequest<TQuery>): Promise<MachTablePageResult<TData>>;\n query: MachTableQuerySource<TQuery>;\n /** Memoize object queries in React; queryKey can explicitly control reload dependencies. */\n queryKey?: unknown;\n rowKey: string | ((row: TData) => string | number);\n initialPage?: number;\n pageSize?: number;\n pageSizeOptions?: readonly number[];\n immediate?: boolean;\n mode?: \"auto\" | \"manual\";\n debounceMs?: number;\n keepPreviousData?: boolean;\n selectionScope?: \"page\" | \"preserve\" | \"query\";\n clearSelectionOnQueryChange?: boolean;\n initialQuickFilterText?: string | null;\n errorOverlay?(context: { error: unknown; retry(): Promise<void> }): OverlayContent;\n emptyOverlay?: OverlayTemplate;\n onSuccess?(result: MachTablePageResult<TData>): void;\n onError?(error: unknown): void;\n}\n\nexport interface UseMachTableQueryReturn<TData> {\n rows: TData[];\n loading: boolean;\n error: unknown | null;\n page: number;\n pageSize: number;\n total: number;\n sortModel: SortModel;\n filterModel: FilterModel;\n advancedFilterModel: AdvancedFilterModel | null;\n quickFilterText: string | null;\n setQuickFilterText(value: string | null): void;\n selectedKeys: string[];\n selectedRows: TData[];\n selectionState: MachTableRemoteSelectionState;\n gridProps: GridOptions<TData>;\n bindings: GridOptions<TData>;\n reload(options?: { resetPage?: boolean }): Promise<void>;\n retry(): Promise<void>;\n reset(): Promise<void>;\n abort(): void;\n clearSelection(): void;\n selectAllMatching(): void;\n applySelectionState(state: MachTableRemoteSelectionState): void;\n}\n\nfunction positive(value: number | undefined, fallback: number): number {\n return typeof value === \"number\" && Number.isFinite(value) && value > 0 ? Math.floor(value) : fallback;\n}\n\nfunction isAbortError(error: unknown): boolean {\n return error instanceof DOMException\n ? error.name === \"AbortError\"\n : typeof error === \"object\" && error != null && \"name\" in error && (error as { name?: unknown }).name === \"AbortError\";\n}\n\nfunction readQuery<T>(source: MachTableQuerySource<T>): T {\n return typeof source === \"function\" ? (source as () => T)() : source;\n}\n\n/** React remote-list controller with cancellation, stale guards and cross-page selection. */\nexport function useMachTableQuery<TData, TQuery = Record<string, unknown>>(\n options: UseMachTableQueryOptions<TData, TQuery>\n): UseMachTableQueryReturn<TData> {\n const optionsRef = useRef(options);\n optionsRef.current = options;\n const [rows, setRows] = useState<TData[]>([]);\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState<unknown | null>(null);\n const [page, setPage] = useState(positive(options.initialPage, 1));\n const [pageSize, setPageSize] = useState(positive(options.pageSize, 20));\n const [total, setTotal] = useState(0);\n const [sortModel, setSortModel] = useState<SortModel>([]);\n const [filterModel, setFilterModel] = useState<FilterModel>({});\n const [advancedFilterModel, setAdvancedFilterModel] = useState<AdvancedFilterModel | null>(null);\n const [quickFilterText, setQuickFilterText] = useState<string | null>(options.initialQuickFilterText ?? null);\n const [, refreshSelection] = useReducer((value: number) => value + 1, 0);\n const stateRef = useRef({ page, pageSize, sortModel, filterModel, advancedFilterModel, quickFilterText, rows });\n stateRef.current = { page, pageSize, sortModel, filterModel, advancedFilterModel, quickFilterText, rows };\n const apiRef = useRef<GridApi<TData> | null>(null);\n const abortRef = useRef<AbortController | null>(null);\n const timerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const generationRef = useRef(0);\n const selectedIds = useRef(new Set<string>());\n const excludedIds = useRef(new Set<string>());\n const selectedById = useRef(new Map<string, TData>());\n const allMatching = useRef(false);\n const suppressGrid = useRef(false);\n const suppressSelection = useRef(false);\n\n const rowId = useCallback((row: TData): string => {\n const rowKey = optionsRef.current.rowKey;\n const value = typeof rowKey === \"function\" ? rowKey(row) : getByPath(row, rowKey);\n if (value == null || String(value).length === 0) {\n throw new Error(`[MachTable] useMachTableQuery rowKey \"${String(rowKey)}\" returned an empty value.`);\n }\n return String(value);\n }, []);\n const selected = useCallback((id: string): boolean => allMatching.current ? !excludedIds.current.has(id) : selectedIds.current.has(id), []);\n const notifySelection = useCallback(() => refreshSelection(), []);\n const syncVisibleSelection = useCallback((): void => {\n const api = apiRef.current;\n if (!api || api.isDestroyed()) return;\n suppressSelection.current = true;\n try { api.setSelection(stateRef.current.rows.filter((row) => selected(rowId(row))), true); }\n finally { suppressSelection.current = false; }\n }, [rowId, selected]);\n\n const abort = useCallback((): void => {\n generationRef.current++;\n abortRef.current?.abort();\n abortRef.current = null;\n if (timerRef.current) clearTimeout(timerRef.current);\n timerRef.current = null;\n setLoading(false);\n }, []);\n\n const isStale = useCallback((controller: AbortController, generation: number): boolean =>\n controller.signal.aborted || generation !== generationRef.current, []);\n\n const applyPageResult = useCallback((\n result: MachTablePageResult<TData>,\n controller: AbortController,\n generation: number\n ): void => {\n if (isStale(controller, generation)) return;\n if (!result || !Array.isArray(result.rows) || !Number.isFinite(result.total) || result.total < 0) {\n throw new TypeError(\"[MachTable] Remote request must resolve to { rows: TData[], total: non-negative number }.\");\n }\n const nextRows = [...result.rows];\n for (const row of nextRows) {\n const id = rowId(row);\n if (selected(id)) selectedById.current.set(id, row);\n else selectedById.current.delete(id);\n }\n stateRef.current.rows = nextRows;\n setRows(nextRows);\n setTotal(Math.floor(result.total));\n notifySelection();\n optionsRef.current.onSuccess?.(result);\n queueMicrotask(syncVisibleSelection);\n }, [isStale, notifySelection, rowId, selected, syncVisibleSelection]);\n\n const handleRequestError = useCallback((\n requestError: unknown,\n controller: AbortController,\n generation: number\n ): void => {\n if (isStale(controller, generation) || isAbortError(requestError)) return;\n const normalized = requestError ?? new Error(\"Remote request failed\");\n setError(normalized);\n optionsRef.current.onError?.(normalized);\n }, [isStale]);\n\n const finishRequest = useCallback((controller: AbortController, generation: number): void => {\n if (generation !== generationRef.current) return;\n setLoading(false);\n if (abortRef.current === controller) abortRef.current = null;\n }, []);\n\n const load = useCallback(async (): Promise<void> => {\n if (timerRef.current) clearTimeout(timerRef.current);\n timerRef.current = null;\n abortRef.current?.abort();\n const controller = new AbortController();\n abortRef.current = controller;\n const generation = ++generationRef.current;\n setLoading(true);\n setError(null);\n if (optionsRef.current.keepPreviousData === false) setRows([]);\n const current = stateRef.current;\n try {\n const result = await optionsRef.current.request({\n page: current.page,\n pageSize: current.pageSize,\n query: readQuery(optionsRef.current.query),\n sortModel: current.sortModel.map((item) => ({ ...item })),\n filterModel: { ...current.filterModel },\n advancedFilterModel: normalizeAdvancedFilterModel(current.advancedFilterModel),\n quickFilterText: current.quickFilterText,\n signal: controller.signal\n });\n applyPageResult(result, controller, generation);\n } catch (requestError) {\n handleRequestError(requestError, controller, generation);\n } finally {\n finishRequest(controller, generation);\n }\n }, [applyPageResult, finishRequest, handleRequestError]);\n\n const scheduleLoad = useCallback((resetPage: boolean): void => {\n if (resetPage) {\n stateRef.current.page = 1;\n setPage(1);\n }\n abortRef.current?.abort();\n abortRef.current = null;\n const delay = Math.max(0, optionsRef.current.debounceMs ?? 0);\n if (timerRef.current) clearTimeout(timerRef.current);\n if (delay === 0) void load();\n else timerRef.current = setTimeout(() => { void load(); }, delay);\n }, [load]);\n\n const clearSelection = useCallback((): void => {\n const changed = allMatching.current || selectedIds.current.size > 0 ||\n excludedIds.current.size > 0 || selectedById.current.size > 0;\n allMatching.current = false;\n selectedIds.current.clear();\n excludedIds.current.clear();\n selectedById.current.clear();\n if (changed) notifySelection();\n suppressSelection.current = true;\n try { apiRef.current?.deselectAll(); } finally { suppressSelection.current = false; }\n }, [notifySelection]);\n\n const onPaginationChanged = useCallback((event: PaginationChangedEvent<TData>): void => {\n if (suppressGrid.current) return;\n const current = stateRef.current;\n if (event.page === current.page && event.pageSize === current.pageSize) return;\n current.page = event.page;\n current.pageSize = event.pageSize;\n setPage(event.page);\n setPageSize(event.pageSize);\n if (optionsRef.current.mode !== \"manual\") void load();\n }, [load]);\n const onSortChanged = useCallback((event: { sortModel: SortModel }): void => {\n if (suppressGrid.current) return;\n const next = event.sortModel.map((item) => ({ ...item }));\n stateRef.current.sortModel = next;\n setSortModel(next);\n if (optionsRef.current.mode !== \"manual\") scheduleLoad(true);\n else { stateRef.current.page = 1; setPage(1); }\n }, [scheduleLoad]);\n const onFilterChanged = useCallback((event: FilterChangedEvent<TData>): void => {\n if (suppressGrid.current) return;\n const next = { ...event.filterModel };\n stateRef.current.filterModel = next;\n const advanced = normalizeAdvancedFilterModel(event.advancedFilterModel);\n stateRef.current.advancedFilterModel = advanced;\n stateRef.current.quickFilterText = event.api.getQuickFilter();\n setFilterModel(next);\n setAdvancedFilterModel(advanced);\n setQuickFilterText(stateRef.current.quickFilterText);\n if (optionsRef.current.clearSelectionOnQueryChange !== false) clearSelection();\n if (optionsRef.current.mode !== \"manual\") scheduleLoad(true);\n else { stateRef.current.page = 1; setPage(1); }\n }, [clearSelection, scheduleLoad]);\n const onSelectionChanged = useCallback((event: SelectionChangedEvent<TData>): void => {\n if (suppressSelection.current) return;\n const visibleIds = new Set(stateRef.current.rows.map(rowId));\n const nextVisible = new Set(event.selectedRows.map(rowId));\n if (allMatching.current) {\n for (const id of visibleIds) {\n if (nextVisible.has(id)) excludedIds.current.delete(id);\n else { excludedIds.current.add(id); selectedById.current.delete(id); }\n }\n } else {\n if ((optionsRef.current.selectionScope ?? \"preserve\") === \"page\") {\n selectedIds.current.clear(); selectedById.current.clear();\n } else {\n for (const id of visibleIds) { selectedIds.current.delete(id); selectedById.current.delete(id); }\n }\n for (const row of event.selectedRows) selectedIds.current.add(rowId(row));\n }\n for (const row of event.selectedRows) selectedById.current.set(rowId(row), row);\n notifySelection();\n }, [notifySelection, rowId]);\n\n const reload = useCallback(async (reloadOptions: { resetPage?: boolean } = {}): Promise<void> => {\n if (reloadOptions.resetPage) { stateRef.current.page = 1; setPage(1); }\n await load();\n }, [load]);\n const reset = useCallback(async (): Promise<void> => {\n stateRef.current.page = 1;\n stateRef.current.sortModel = [];\n stateRef.current.filterModel = {};\n stateRef.current.advancedFilterModel = null;\n setPage(1); setSortModel([]); setFilterModel({}); setAdvancedFilterModel(null); clearSelection();\n suppressGrid.current = true;\n try {\n apiRef.current?.setSortModel(null);\n apiRef.current?.setFilterModel(null);\n apiRef.current?.setAdvancedFilterModel(null);\n }\n finally { suppressGrid.current = false; }\n await load();\n }, [clearSelection, load]);\n const selectAllMatching = useCallback((): void => {\n allMatching.current = true; selectedIds.current.clear(); excludedIds.current.clear(); selectedById.current.clear();\n for (const row of stateRef.current.rows) selectedById.current.set(rowId(row), row);\n notifySelection(); syncVisibleSelection();\n }, [notifySelection, rowId, syncVisibleSelection]);\n const applySelectionState = useCallback((state: MachTableRemoteSelectionState): void => {\n selectedIds.current.clear(); excludedIds.current.clear(); selectedById.current.clear();\n allMatching.current = state.mode === \"allMatching\";\n for (const id of (state.mode === \"allMatching\" ? state.excludedKeys : state.selectedKeys).map(String)) {\n if (state.mode === \"allMatching\") excludedIds.current.add(id); else selectedIds.current.add(id);\n }\n for (const row of stateRef.current.rows) if (selected(rowId(row))) selectedById.current.set(rowId(row), row);\n notifySelection(); syncVisibleSelection();\n }, [notifySelection, rowId, selected, syncVisibleSelection]);\n\n const firstQueryEffect = useRef(true);\n const queryDependency = options.queryKey === undefined ? options.query : options.queryKey;\n useEffect(() => {\n if (firstQueryEffect.current) { firstQueryEffect.current = false; return; }\n if (optionsRef.current.clearSelectionOnQueryChange !== false) clearSelection();\n if (optionsRef.current.mode !== \"manual\") scheduleLoad(true);\n else { stateRef.current.page = 1; setPage(1); }\n }, [queryDependency, clearSelection, scheduleLoad]);\n useEffect(() => {\n if (options.mode !== \"manual\" && options.immediate !== false) void load();\n return abort;\n }, []);\n\n const pageSizes = useMemo(() => {\n const values = [...new Set((options.pageSizeOptions ?? [10, 20, 50, 100]).map((value) => positive(value, 0)).filter(Boolean))];\n if (!values.includes(pageSize)) values.push(pageSize);\n return values.sort((left, right) => left - right);\n }, [options.pageSizeOptions, pageSize]);\n const gridProps = useMemo<GridOptions<TData>>(() => ({\n rowData: rows,\n loading,\n error,\n rowKey: rowId,\n manualSorting: true,\n manualFiltering: true,\n advancedFilterModel,\n quickFilterText,\n overlayErrorTemplate: error\n ? () => optionsRef.current.errorOverlay?.({ error, retry: load }) ?? \"Remote request failed. Please retry.\"\n : undefined,\n overlayNoRowsTemplate: options.emptyOverlay,\n pagination: {\n mode: \"server\", page, pageSize, pageSizeOptions: pageSizes, total,\n showTotal: true, showPageSizeSelector: true\n },\n onGridReady: ({ api }) => { apiRef.current = api; queueMicrotask(syncVisibleSelection); },\n onPaginationChanged,\n onSortChanged,\n onFilterChanged,\n onSelectionChanged\n }), [advancedFilterModel, error, load, loading, onFilterChanged, onPaginationChanged, onSelectionChanged, onSortChanged, options.emptyOverlay, page, pageSize, pageSizes, quickFilterText, rowId, rows, syncVisibleSelection, total]);\n\n const selectedKeys = allMatching.current ? [] : [...selectedIds.current];\n const selectedRows = [...selectedById.current.entries()]\n .filter(([id]) => !excludedIds.current.has(id))\n .map(([, row]) => row);\n const selectionState: MachTableRemoteSelectionState = allMatching.current\n ? { mode: \"allMatching\", excludedKeys: [...excludedIds.current] }\n : { mode: \"explicit\", selectedKeys };\n\n return {\n rows, loading, error, page, pageSize, total, sortModel, filterModel, advancedFilterModel,\n quickFilterText,\n setQuickFilterText(value) {\n stateRef.current.quickFilterText = value;\n setQuickFilterText(value);\n apiRef.current?.setQuickFilter(value);\n },\n selectedKeys, selectedRows, selectionState, gridProps, bindings: gridProps,\n reload, retry: load, reset, abort, clearSelection, selectAllMatching, applySelectionState\n };\n}\n","import { useEffect, useMemo, useState } from \"react\";\nimport { createMachTableCommands, type GridOptions, type MachTableCommands } from \"@agile-team/mach-table\";\nimport { useMachGrid, type UseMachGridReturn } from \"./useMachGrid\";\nimport { useMachTableEditing, type UseMachTableEditingOptions, type UseMachTableEditingReturn } from \"./useMachTableEditing\";\nimport type { UseMachTableQueryReturn } from \"./useMachTableQuery\";\n\nexport interface UseMachTableControllerOptions<TData> {\n /** Pass the result of useMachTableQuery for remote workflows. */\n query?: UseMachTableQueryReturn<TData>;\n editing?: UseMachTableEditingOptions<TData>;\n initialSearch?: string;\n}\n\nexport interface UseMachTableControllerReturn<TData> {\n table: UseMachGridReturn<TData>;\n query: UseMachTableQueryReturn<TData> | null;\n editing: UseMachTableEditingReturn<TData>;\n bindings: GridOptions<TData>;\n search: string;\n setSearch(value: string): void;\n selectedRows: TData[];\n selectedCount: number;\n busy: boolean;\n error: unknown | null;\n commands: MachTableCommands;\n reload(): Promise<void>;\n}\n\n/** Cohesive React controller for API readiness, selection, editing and toolbar commands. */\nexport function useMachTableController<TData>(\n options: UseMachTableControllerOptions<TData> = {}\n): UseMachTableControllerReturn<TData> {\n const table = useMachGrid<TData>();\n const editing = useMachTableEditing(table, options.editing);\n const [search, setSearch] = useState(options.initialSearch ?? \"\");\n const [localSelection, setLocalSelection] = useState<TData[]>([]);\n const query = options.query ?? null;\n\n useEffect(() => {\n const api = table.api;\n if (!api || api.isDestroyed() || query) return;\n const sync = () => setLocalSelection(api.getSelectedRows());\n sync();\n return api.addEventListener(\"selectionChanged\", sync);\n }, [query, table.api]);\n useEffect(() => {\n if (!query) table.apiRef.current?.setQuickFilter(search || null);\n else query.setQuickFilterText(search || null);\n }, [query, search, table.apiRef]);\n\n const reload = useMemo(() => async (): Promise<void> => {\n if (query) await query.reload();\n else if (table.apiRef.current?.isInfinite()) await table.apiRef.current.reload();\n else table.apiRef.current?.refreshCells();\n }, [query, table.apiRef]);\n const commands = useMemo(() => createMachTableCommands<TData>({\n getApi: () => table.apiRef.current,\n reload\n }), [reload, table.apiRef]);\n const selectedRows = query?.selectedRows ?? localSelection;\n const selectedCount = query\n ? query.selectionState.mode === \"allMatching\"\n ? Math.max(0, query.total - query.selectionState.excludedKeys.length)\n : query.selectionState.selectedKeys.length\n : selectedRows.length;\n\n return {\n table,\n query,\n editing,\n bindings: query?.bindings ?? {},\n search,\n setSearch,\n selectedRows,\n selectedCount,\n busy: query?.loading === true || editing.saving,\n error: query?.error ?? editing.saveError ?? null,\n commands,\n reload\n };\n}\n"],"mappings":"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","names":["useMemo","useState","useMachGrid","api","setApi","ready","setReady","current","next","useCallback","useEffect","useMemo","useRef","useState","resolveCoreSaveConflict","useMachTableEditing","table","options","changes","setChanges","dirtyRowIds","setDirtyRowIds","saving","setSaving","saveError","setSaveError","lastSaveResult","setLastSaveResult","savingRef","refresh","api","saveDetailed","handler","rowIds","result","error","save","clearSaveIssues","resolveConflict","rowId","strategy","conflict","entry","rollback","changed","markSaved","reveal","colId","edit","node","event","message","saveIssues","failedRowIds","issue","useCallback","useEffect","useMemo","useReducer","useRef","useState","getByPath","normalizeAdvancedFilterModel","positive","value","fallback","isAbortError","error","readQuery","source","useMachTableQuery","options","optionsRef","rows","setRows","loading","setLoading","setError","page","setPage","pageSize","setPageSize","total","setTotal","sortModel","setSortModel","filterModel","setFilterModel","advancedFilterModel","setAdvancedFilterModel","quickFilterText","setQuickFilterText","refreshSelection","stateRef","apiRef","abortRef","timerRef","generationRef","selectedIds","excludedIds","selectedById","allMatching","suppressGrid","suppressSelection","rowId","row","rowKey","selected","id","notifySelection","syncVisibleSelection","api","abort","isStale","controller","generation","applyPageResult","result","nextRows","handleRequestError","requestError","normalized","finishRequest","load","current","item","scheduleLoad","resetPage","delay","clearSelection","changed","onPaginationChanged","event","onSortChanged","next","onFilterChanged","advanced","onSelectionChanged","visibleIds","nextVisible","reload","reloadOptions","reset","selectAllMatching","applySelectionState","state","firstQueryEffect","queryDependency","pageSizes","values","left","right","gridProps","selectedKeys","selectedRows","selectionState","useEffect","useMemo","useState","createMachTableCommands","useMachTableController","options","table","useMachGrid","editing","useMachTableEditing","search","setSearch","useState","localSelection","setLocalSelection","query","useEffect","api","sync","reload","useMemo","commands","createMachTableCommands","selectedRows","selectedCount"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["d:\\office-project\\wl\\MachTable\\packages\\react\\dist\\chunk-TSVK66UX.cjs"],"names":[],"mappings":"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","file":"D:\\office-project\\wl\\MachTable\\packages\\react\\dist\\chunk-TSVK66UX.cjs","sourcesContent":[null]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["d:\\office-project\\wl\\MachTable\\packages\\react\\dist\\index.cjs"],"names":[],"mappings":"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","file":"D:\\office-project\\wl\\MachTable\\packages\\react\\dist\\index.cjs","sourcesContent":[null]}
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/MachTable.tsx","../src/defaults.tsx","../src/MachTableToolbar.tsx","../src/adapters.ts","../src/index.ts"],"sourcesContent":["import {\n createElement,\n useEffect,\n useRef,\n type CSSProperties,\n type MutableRefObject\n} from \"react\";\nimport { createGrid, GRID_OPTION_KEYS, EVENT_TYPES, resolveMachTableGridOptions } from \"@agile-team/mach-table\";\nimport type { GridApi, GridOptions, MachTablePresetSelection } from \"@agile-team/mach-table\";\nimport { useMachTableConfig } from \"./defaults\";\n\ntype AdapterOnlyGridOption = \"className\" | \"ariaLabel\" | \"ariaLabelledBy\" | \"ariaDescribedBy\";\n\nexport type MachTableReactProps<TData = any> = Omit<GridOptions<TData>, AdapterOnlyGridOption> & {\n /** Named application preset(s). Explicit component props still win. */\n preset?: MachTablePresetSelection;\n /** CSS class applied to the React host element. */\n className?: string;\n /** CSS class forwarded to MachTable's inner grid root. */\n gridClassName?: string;\n gridAriaLabel?: string;\n gridAriaLabelledBy?: string;\n gridAriaDescribedBy?: string;\n \"aria-label\"?: string;\n \"aria-labelledby\"?: string;\n \"aria-describedby\"?: string;\n style?: CSSProperties;\n apiRef?: MutableRefObject<GridApi<TData> | null>;\n};\n\nfunction collectGridOptions<TData>(\n props: MachTableReactProps<TData>,\n config: ReturnType<typeof useMachTableConfig>\n): GridOptions<TData> {\n const explicit: Record<string, unknown> = {};\n for (const key of GRID_OPTION_KEYS) {\n if (key === \"className\") continue;\n const value = key === \"ariaLabel\"\n ? props.gridAriaLabel\n : key === \"ariaLabelledBy\"\n ? props.gridAriaLabelledBy\n : key === \"ariaDescribedBy\"\n ? props.gridAriaDescribedBy\n : props[key];\n if (value !== undefined) explicit[key] = value;\n }\n if (props.gridClassName !== undefined) explicit.className = props.gridClassName;\n return resolveMachTableGridOptions(config, props.preset, explicit as Partial<GridOptions<TData>>).options;\n}\n\nexport function MachTable<TData = any>(props: MachTableReactProps<TData>) {\n const { className, style, apiRef } = props;\n const hostRef = useRef<HTMLDivElement | null>(null);\n const gridApiRef = useRef<GridApi<TData> | null>(null);\n const propsRef = useRef(props);\n propsRef.current = props;\n const config = useMachTableConfig();\n const effectiveInputs = [\n config,\n props.preset,\n ...GRID_OPTION_KEYS.map((key) => key === \"className\"\n ? props.gridClassName\n : key === \"ariaLabel\"\n ? props.gridAriaLabel\n : key === \"ariaLabelledBy\"\n ? props.gridAriaLabelledBy\n : key === \"ariaDescribedBy\"\n ? props.gridAriaDescribedBy\n : props[key])\n ];\n const effectiveCache = useRef<{ inputs: readonly unknown[]; options: GridOptions<TData> } | null>(null);\n if (\n !effectiveCache.current ||\n effectiveCache.current.inputs.length !== effectiveInputs.length ||\n effectiveInputs.some((value, index) => !Object.is(value, effectiveCache.current?.inputs[index]))\n ) {\n effectiveCache.current = { inputs: effectiveInputs, options: collectGridOptions(props, config) };\n }\n const effectiveOptions = effectiveCache.current.options;\n const effectiveRef = useRef(effectiveOptions);\n effectiveRef.current = effectiveOptions;\n\n useEffect(() => {\n const host = hostRef.current;\n if (!host) return;\n\n const options = { ...effectiveRef.current } as Record<string, unknown>;\n for (const eventType of EVENT_TYPES) {\n const handlerKey = `on${eventType.charAt(0).toUpperCase()}${eventType.slice(1)}`;\n options[handlerKey] = (event: unknown) => {\n const defaultHandler = (effectiveRef.current as Record<string, unknown>)[handlerKey];\n if (typeof defaultHandler === \"function\") (defaultHandler as (value: unknown) => void)(event);\n const latest = propsRef.current as Record<string, unknown>;\n const handler = latest[handlerKey];\n if (typeof handler === \"function\" && handler !== defaultHandler) {\n (handler as (value: unknown) => void)(event);\n }\n };\n }\n\n const api = createGrid<TData>(host, options);\n gridApiRef.current = api;\n return () => {\n api.destroy();\n gridApiRef.current = null;\n };\n }, []);\n\n useEffect(() => {\n if (!apiRef) return;\n const assigned = gridApiRef.current;\n apiRef.current = assigned;\n return () => {\n if (apiRef.current === assigned) apiRef.current = null;\n };\n }, [apiRef]);\n\n const optionValues = GRID_OPTION_KEYS.map((key) => effectiveOptions[key]);\n const previousOptionValues = useRef<readonly unknown[] | null>(null);\n useEffect(() => {\n const previous = previousOptionValues.current;\n previousOptionValues.current = optionValues;\n if (!previous) {\n return;\n }\n const changed: Record<string, unknown> = {};\n optionValues.forEach((value, index) => {\n if (Object.is(value, previous[index])) return;\n changed[GRID_OPTION_KEYS[index]] = value;\n });\n if (Object.keys(changed).length > 0) {\n gridApiRef.current?.updateOptions(changed);\n }\n }, optionValues);\n\n return createElement(\"div\", {\n ref: hostRef,\n className: `mach-react-host ${className ?? \"\"}`.trim() || undefined,\n style,\n \"aria-label\": props[\"aria-label\"],\n \"aria-labelledby\": props[\"aria-labelledby\"],\n \"aria-describedby\": props[\"aria-describedby\"]\n });\n}\n\n/** @deprecated Use MachTable. Kept as a source-compatible alias through 0.x. */\nexport const RobotGrid = MachTable;\n/** @deprecated Use MachTableReactProps. */\nexport type RobotGridReactProps<TData = any> = MachTableReactProps<TData>;\n","import { createContext, createElement, useContext, useMemo, type ReactNode } from \"react\";\nimport {\n mergeMachTableConfig,\n normalizeMachTableConfig,\n type GridOptions,\n type MachTableRuntimeConfig,\n type ResolvedMachTableConfig\n} from \"@agile-team/mach-table\";\n\nconst ROOT_CONFIG = normalizeMachTableConfig();\nconst MachTableConfigContext = createContext<ResolvedMachTableConfig>(ROOT_CONFIG);\n\nexport interface MachTableProviderProps<TData = any> {\n /** Full app/route configuration. Prefer importing this from mach-table.config.ts. */\n config?: MachTableRuntimeConfig;\n /** Backwards-compatible shorthand for config.defaults. */\n defaults?: Partial<GridOptions<TData>>;\n children?: ReactNode;\n}\n\n/** Supplies app-, route- or layout-scoped defaults without making tables eager. */\nexport function MachTableProvider<TData = any>({ config, defaults, children }: MachTableProviderProps<TData>) {\n const parent = useContext(MachTableConfigContext);\n const value = useMemo(\n () => mergeMachTableConfig(parent, { ...(config ?? {}), ...(defaults ? { defaults } : {}) }),\n [parent, config, defaults]\n );\n return createElement(MachTableConfigContext.Provider, { value }, children);\n}\n\nexport function useMachTableDefaults<TData = any>(): Partial<GridOptions<TData>> {\n return useContext(MachTableConfigContext).defaults as Partial<GridOptions<TData>>;\n}\n\nexport function useMachTableConfig(): ResolvedMachTableConfig {\n return useContext(MachTableConfigContext);\n}\n","import { createElement, type ChangeEvent, type MouseEvent as ReactMouseEvent, type ReactNode } from \"react\";\nimport type { GridApi, GridSize, MachTableCommands } from \"@agile-team/mach-table\";\n\nexport interface MachTableToolbarFeatures {\n search?: boolean;\n refresh?: boolean;\n columns?: boolean;\n density?: boolean;\n export?: boolean;\n undoRedo?: boolean;\n fullscreen?: boolean;\n}\n\nexport interface MachTableToolbarProps<TData = any> {\n api?: GridApi<TData> | null;\n commands?: MachTableCommands | null;\n search?: string;\n onSearchChange?(value: string): void;\n onRefresh?(): void;\n onClearSelection?(): void;\n loading?: boolean;\n selectedCount?: number;\n searchPlaceholder?: string;\n exportFilename?: string;\n features?: MachTableToolbarFeatures;\n start?: ReactNode;\n children?: ReactNode;\n end?: ReactNode;\n}\n\nconst DEFAULT_FEATURES: Required<MachTableToolbarFeatures> = {\n search: true, refresh: true, columns: true, density: true,\n export: true, undoRedo: false, fullscreen: false\n};\n\nfunction enabled(features: MachTableToolbarFeatures | undefined, key: keyof MachTableToolbarFeatures): boolean {\n return features?.[key] ?? DEFAULT_FEATURES[key];\n}\n\nfunction button(label: string, icon: string, onClick: (event: ReactMouseEvent<HTMLButtonElement>) => void, disabled = false) {\n return createElement(\"button\", {\n key: label, type: \"button\", className: \"mach-toolbar__button\", title: label, \"aria-label\": label, disabled, onClick\n }, icon);\n}\n\nfunction renderMain<TData>(props: MachTableToolbarProps<TData>): ReactNode[] {\n const main: ReactNode[] = [props.start];\n const placeholder = props.searchPlaceholder ?? \"搜索当前结果\";\n if (enabled(props.features, \"search\")) main.push(createElement(\"label\", { className: \"mach-toolbar__search\", key: \"search\" },\n createElement(\"span\", { className: \"mach-sr-only\" }, placeholder),\n createElement(\"span\", { \"aria-hidden\": true }, \"⌕\"),\n createElement(\"input\", {\n type: \"search\",\n value: props.search ?? \"\",\n placeholder,\n onChange: (event: ChangeEvent<HTMLInputElement>) => {\n const value = event.currentTarget.value;\n props.onSearchChange?.(value);\n if (!props.onSearchChange) {\n if (props.commands) props.commands.search(value || null);\n else props.api?.setQuickFilter(value || null);\n }\n }\n })\n ));\n if (enabled(props.features, \"refresh\")) main.push(button(\"刷新\", props.loading ? \"…\" : \"↻\", () => {\n props.onRefresh?.();\n if (!props.onRefresh) {\n if (props.commands) void props.commands.refresh();\n else if (props.api?.isInfinite()) void props.api.reload();\n else props.api?.refreshCells();\n }\n }, props.loading));\n if (enabled(props.features, \"columns\")) main.push(button(\"列设置\", \"☷\", (event) => {\n if (props.commands) props.commands.openColumns(event.currentTarget);\n else props.api?.openColumnWorkbench(event.currentTarget);\n }));\n if (enabled(props.features, \"density\")) main.push(createElement(\"select\", {\n key: \"density\",\n className: \"mach-toolbar__select\",\n value: props.api?.getGridOption(\"size\") ?? \"normal\",\n \"aria-label\": \"表格密度\",\n onChange: (event: ChangeEvent<HTMLSelectElement>) => {\n const size = event.currentTarget.value as GridSize;\n if (props.commands) props.commands.setDensity(size);\n else props.api?.setGridOption(\"size\", size);\n }\n }, createElement(\"option\", { value: \"compact\" }, \"紧凑\"), createElement(\"option\", { value: \"normal\" }, \"标准\"), createElement(\"option\", { value: \"large\" }, \"宽松\")));\n main.push(props.children);\n return main;\n}\n\nfunction runUndo<TData>(props: MachTableToolbarProps<TData>): void {\n if (props.commands) props.commands.undo();\n else props.api?.undo();\n}\n\nfunction runRedo<TData>(props: MachTableToolbarProps<TData>): void {\n if (props.commands) props.commands.redo();\n else props.api?.redo();\n}\n\nfunction renderAside<TData>(props: MachTableToolbarProps<TData>): ReactNode[] {\n const aside: ReactNode[] = [];\n if ((props.selectedCount ?? 0) > 0) aside.push(createElement(\"button\", {\n type: \"button\", className: \"mach-toolbar__selection\", onClick: () => props.onClearSelection?.()\n }, `已选 ${props.selectedCount} 项 ×`));\n if (enabled(props.features, \"undoRedo\")) {\n aside.push(button(\"撤销\", \"↶\", () => runUndo(props), props.commands ? !props.commands.canUndo() : !props.api?.canUndo()));\n aside.push(button(\"重做\", \"↷\", () => runRedo(props), props.commands ? !props.commands.canRedo() : !props.api?.canRedo()));\n }\n if (enabled(props.features, \"export\")) aside.push(button(\"导出 CSV\", \"⇩\", () => { props.commands?.exportCsv(props.exportFilename); }, !props.commands));\n if (enabled(props.features, \"fullscreen\")) aside.push(button(\"全屏\", \"⛶\", () => { void props.commands?.toggleFullscreen(); }, !props.commands));\n aside.push(props.end);\n return aside;\n}\n\nexport function MachTableToolbar<TData = any>(props: MachTableToolbarProps<TData>) {\n return createElement(\"div\", { className: \"mach-toolbar\", role: \"toolbar\", \"aria-label\": \"表格工具栏\" },\n createElement(\"div\", { className: \"mach-toolbar__main\" }, ...renderMain(props)),\n createElement(\"div\", { className: \"mach-toolbar__aside\" }, ...renderAside(props))\n );\n}\n","import { createElement, isValidElement, type ComponentType, type ReactNode } from \"react\";\nimport { createRoot } from \"react-dom/client\";\nimport type { CellRendererParams, CellRendererFn, DetailRowRendererParams, GridApi, RowNode } from \"@agile-team/mach-table\";\n\nexport interface ReactCellRendererProps<TData = any, TValue = any> extends CellRendererParams<TData, TValue> {\n children?: ReactNode;\n}\n\nexport interface ReactDetailProps<TData = any> {\n data: TData | null;\n node: RowNode<TData>;\n api: GridApi<TData>;\n}\n\nexport function reactCellRenderer<TData = any, TValue = any>(\n Component: ComponentType<ReactCellRendererProps<TData, TValue>>\n): CellRendererFn {\n return (params) => {\n const host = document.createElement(\"div\");\n host.className = \"mach-cell-react\";\n host.style.width = \"100%\";\n const root = createRoot(host);\n root.render(createElement(Component, params as ReactCellRendererProps<TData, TValue>));\n let destroyed = false;\n return {\n el: host,\n refresh: (next) => {\n root.render(createElement(Component, next as ReactCellRendererProps<TData, TValue>));\n return true;\n },\n destroy: () => {\n if (destroyed) return;\n destroyed = true;\n window.setTimeout(() => {\n root.unmount();\n }, 0);\n }\n };\n };\n}\n\nexport function reactDetailRenderer<TData = any>(\n Component: ComponentType<ReactDetailProps<TData>>\n): (params: DetailRowRendererParams<TData>) => { el: HTMLElement; destroy?: () => void } {\n return (params) => {\n const host = document.createElement(\"div\");\n host.style.height = \"100%\";\n const root = createRoot(host);\n root.render(createElement(Component, params));\n let destroyed = false;\n return {\n el: host,\n destroy: () => {\n if (destroyed) return;\n destroyed = true;\n window.setTimeout(() => {\n root.unmount();\n }, 0);\n }\n };\n };\n}\n\nexport function isReactElement(value: unknown): boolean {\n return isValidElement(value);\n}\n","import { MachTable, RobotGrid } from \"./MachTable\";\n\nexport { MachTable, RobotGrid };\nexport type { MachTableReactProps, RobotGridReactProps } from \"./MachTable\";\nexport { useMachGrid } from \"./useMachGrid\";\nexport type { UseMachGridReturn } from \"./useMachGrid\";\nexport { useMachTableEditing } from \"./useMachTableEditing\";\nexport type { UseMachTableEditingOptions, UseMachTableEditingReturn } from \"./useMachTableEditing\";\nexport { useMachTableQuery } from \"./useMachTableQuery\";\nexport type {\n MachTablePageRequest,\n MachTablePageResult,\n MachTableQuerySource,\n MachTableRemoteSelectionState,\n UseMachTableQueryOptions,\n UseMachTableQueryReturn\n} from \"./useMachTableQuery\";\nexport { useMachTableController } from \"./useMachTableController\";\nexport type { UseMachTableControllerOptions, UseMachTableControllerReturn } from \"./useMachTableController\";\nexport { MachTableToolbar } from \"./MachTableToolbar\";\nexport type { MachTableToolbarFeatures, MachTableToolbarProps } from \"./MachTableToolbar\";\nexport { MachTableProvider, useMachTableConfig, useMachTableDefaults } from \"./defaults\";\nexport type { MachTableProviderProps } from \"./defaults\";\nexport { reactCellRenderer, reactDetailRenderer } from \"./adapters\";\nexport type { ReactCellRendererProps, ReactDetailProps } from \"./adapters\";\nexport * from \"@agile-team/mach-table\";\n\n/** Enables `React.lazy(() => import(\"@agile-team/mach-table-react\"))`. */\nexport default MachTable;\n"],"mappings":"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","names":["createElement","useEffect","useRef","createGrid","GRID_OPTION_KEYS","EVENT_TYPES","resolveMachTableGridOptions","createContext","createElement","useContext","useMemo","mergeMachTableConfig","normalizeMachTableConfig","ROOT_CONFIG","MachTableConfigContext","MachTableProvider","config","defaults","children","parent","value","useMachTableDefaults","useMachTableConfig","collectGridOptions","props","config","explicit","key","GRID_OPTION_KEYS","value","resolveMachTableGridOptions","MachTable","className","style","apiRef","hostRef","useRef","gridApiRef","propsRef","useMachTableConfig","effectiveInputs","effectiveCache","index","effectiveOptions","effectiveRef","useEffect","host","options","eventType","EVENT_TYPES","handlerKey","event","defaultHandler","handler","api","createGrid","assigned","optionValues","previousOptionValues","previous","changed","createElement","RobotGrid","createElement","DEFAULT_FEATURES","enabled","features","key","button","label","icon","onClick","disabled","renderMain","props","main","placeholder","event","value","size","runUndo","runRedo","renderAside","aside","MachTableToolbar","createElement","isValidElement","createRoot","reactCellRenderer","Component","params","host","root","destroyed","next","reactDetailRenderer","src_default","MachTable"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["d:\\office-project\\wl\\MachTable\\packages\\react\\dist\\worker.cjs"],"names":[],"mappings":"AAAA,obAA0C","file":"D:\\office-project\\wl\\MachTable\\packages\\react\\dist\\worker.cjs","sourcesContent":[null]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/worker.ts"],"sourcesContent":["export * from \"@agile-team/mach-table/worker\";\n"],"mappings":"AAAA,WAAc","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["d:\\office-project\\wl\\MachTable\\packages\\react\\dist\\workflows.cjs"],"names":[],"mappings":"AAAA,iIAAsD,yJAAoF","file":"D:\\office-project\\wl\\MachTable\\packages\\react\\dist\\workflows.cjs"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}