@agile-team/mach-table-react 0.5.0 → 0.14.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/LICENSE +110 -21
- package/README.md +74 -3
- package/dist/chunk-VVQCWQ2C.js +2 -0
- package/dist/chunk-VVQCWQ2C.js.map +1 -0
- package/dist/chunk-Z5XSUQ5O.cjs +2 -0
- package/dist/chunk-Z5XSUQ5O.cjs.map +1 -0
- package/dist/index.cjs +1 -205
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +62 -8
- package/dist/index.d.ts +62 -8
- package/dist/index.js +1 -176
- package/dist/index.js.map +1 -1
- package/dist/mach-table.css +517 -3
- package/dist/workflows-BhNumPcR.d.cts +129 -0
- package/dist/workflows-BhNumPcR.d.ts +129 -0
- package/dist/workflows.cjs +2 -0
- package/dist/workflows.cjs.map +1 -0
- package/dist/workflows.d.cts +3 -0
- package/dist/workflows.d.ts +3 -0
- package/dist/workflows.js +2 -0
- package/dist/workflows.js.map +1 -0
- package/package.json +14 -4
package/LICENSE
CHANGED
|
@@ -1,21 +1,110 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
1
|
+
MachTable Source-Available License 1.0
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 ChenyCHENYU (Agile Team). All rights reserved.
|
|
4
|
+
|
|
5
|
+
IMPORTANT: The source code is publicly visible for review, but it is not
|
|
6
|
+
open-source software as defined by the Open Source Initiative. Except for the
|
|
7
|
+
limited inspection permission below, no permission is granted unless the
|
|
8
|
+
copyright holder gives you prior written authorization.
|
|
9
|
+
|
|
10
|
+
1. Definitions
|
|
11
|
+
|
|
12
|
+
"Software" means MachTable and all source code, object code, packages,
|
|
13
|
+
documentation, examples, designs, assets, and other materials distributed with
|
|
14
|
+
this license.
|
|
15
|
+
|
|
16
|
+
"Licensor" means ChenyCHENYU (Agile Team), the copyright holder of the
|
|
17
|
+
Software.
|
|
18
|
+
|
|
19
|
+
"Written Authorization" means a durable written permission issued directly by
|
|
20
|
+
the Licensor that identifies the licensee and the permitted scope, purpose,
|
|
21
|
+
environment, term, and any other applicable conditions.
|
|
22
|
+
|
|
23
|
+
2. Limited Inspection Permission
|
|
24
|
+
|
|
25
|
+
You may view the Software on the repository hosting service solely to inspect
|
|
26
|
+
and evaluate it, to link to its public repository, to discuss it, and to submit
|
|
27
|
+
good-faith issue reports. This limited permission does not include permission
|
|
28
|
+
to use, run, build, compile, copy, download for reuse, install, integrate,
|
|
29
|
+
modify, create derivative works from, deploy, distribute, sublicense, sell,
|
|
30
|
+
lease, provide as a service, or otherwise exploit the Software.
|
|
31
|
+
|
|
32
|
+
3. Authorization Required
|
|
33
|
+
|
|
34
|
+
Any use beyond Section 2 requires the Licensor's prior Written Authorization.
|
|
35
|
+
This requirement applies to personal, educational, research, governmental,
|
|
36
|
+
non-profit, internal, evaluation, testing, development, staging, production,
|
|
37
|
+
and commercial use. Possession of a copy, cloning the repository, downloading
|
|
38
|
+
an npm package, receiving the Software from another person, or submitting a
|
|
39
|
+
contribution does not grant any additional rights.
|
|
40
|
+
|
|
41
|
+
The Licensor may grant separate commercial or non-commercial terms in a
|
|
42
|
+
written agreement. If such an agreement conflicts with this license, that
|
|
43
|
+
agreement controls only for the licensee and scope identified in it.
|
|
44
|
+
|
|
45
|
+
4. Restrictions
|
|
46
|
+
|
|
47
|
+
Without prior Written Authorization, you must not, directly or indirectly:
|
|
48
|
+
|
|
49
|
+
a. use, execute, build, compile, install, test, or integrate the Software;
|
|
50
|
+
b. copy, reproduce, modify, adapt, translate, or create derivative works;
|
|
51
|
+
c. publish, distribute, sublicense, sell, rent, lease, transfer, host, or make
|
|
52
|
+
the Software available to any third party;
|
|
53
|
+
d. use the Software to provide a hosted, managed, consulting, outsourcing,
|
|
54
|
+
software-as-a-service, or other service;
|
|
55
|
+
e. remove or alter copyright, authorization, trademark, attribution, or other
|
|
56
|
+
proprietary notices; or
|
|
57
|
+
f. represent the Software as open source or represent that you have received
|
|
58
|
+
authorization when you have not.
|
|
59
|
+
|
|
60
|
+
5. Contributions
|
|
61
|
+
|
|
62
|
+
Submitting a patch, pull request, code, documentation, design, or other
|
|
63
|
+
material to the project does not authorize you to use the Software. Unless a
|
|
64
|
+
separate written contributor agreement applies, by intentionally submitting a
|
|
65
|
+
contribution you represent that you have the right to submit it and grant the
|
|
66
|
+
Licensor a perpetual, worldwide, irrevocable, transferable, sublicensable,
|
|
67
|
+
royalty-free license to use, reproduce, modify, create derivative works from,
|
|
68
|
+
distribute, license, and relicense that contribution as part of the Software.
|
|
69
|
+
|
|
70
|
+
6. Ownership and Trademarks
|
|
71
|
+
|
|
72
|
+
The Software is licensed, not sold. The Licensor and applicable contributors
|
|
73
|
+
retain all right, title, and interest in the Software. No trademark, service
|
|
74
|
+
mark, trade name, logo, or branding rights are granted by this license.
|
|
75
|
+
|
|
76
|
+
7. Termination
|
|
77
|
+
|
|
78
|
+
Any permission granted under this license terminates automatically upon breach.
|
|
79
|
+
On termination, you must immediately stop all use and destroy all copies in
|
|
80
|
+
your possession or control, except where retention is required by law. Sections
|
|
81
|
+
4 through 9 survive termination.
|
|
82
|
+
|
|
83
|
+
8. Disclaimer
|
|
84
|
+
|
|
85
|
+
TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS PROVIDED "AS IS" AND
|
|
86
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
|
|
87
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, AND
|
|
88
|
+
NON-INFRINGEMENT.
|
|
89
|
+
|
|
90
|
+
9. Limitation of Liability
|
|
91
|
+
|
|
92
|
+
TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE LICENSOR AND CONTRIBUTORS WILL NOT
|
|
93
|
+
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
|
94
|
+
CONSEQUENTIAL, OR OTHER DAMAGES, OR FOR LOSS OF DATA, PROFITS, REVENUE,
|
|
95
|
+
GOODWILL, OR BUSINESS INTERRUPTION, ARISING FROM OR RELATED TO THE SOFTWARE OR
|
|
96
|
+
THIS LICENSE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
|
97
|
+
|
|
98
|
+
10. Contact and Authorization
|
|
99
|
+
|
|
100
|
+
See LICENSING.md in the repository for the authorization request process. No
|
|
101
|
+
request, discussion, issue, payment, or contribution constitutes authorization
|
|
102
|
+
unless and until the Licensor issues explicit Written Authorization.
|
|
103
|
+
|
|
104
|
+
中文说明(仅为阅读便利;如有冲突,以英文条款为准)
|
|
105
|
+
|
|
106
|
+
本项目源代码公开可查看,但不是 OSI 定义下的开源软件。除查看、链接、
|
|
107
|
+
讨论和善意提交问题外,任何个人、教育、研究、公益、政府、内部、测试、
|
|
108
|
+
开发、生产或商业用途,均须事先取得作者明确的书面授权。未经授权,不得
|
|
109
|
+
运行、构建、复制、修改、集成、部署、分发、转授权、销售、出租、托管或
|
|
110
|
+
以服务形式提供本软件。公开仓库、克隆代码或下载 npm 包不代表获得授权。
|
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. It provides `<MachTable
|
|
7
|
+
Official React 18+ adapter for MachTable 0.14. It provides a generic `<MachTable>`, full app/route configuration, remote query and editing workflows, a cohesive controller, a standard toolbar, React cell/detail renderer factories, latest-closure event handling and StrictMode-safe cleanup. `RobotGrid` remains a deprecated 0.x alias.
|
|
8
8
|
|
|
9
9
|
## Install
|
|
10
10
|
|
|
@@ -39,7 +39,8 @@ export function App({ rows }: { rows: Row[] }) {
|
|
|
39
39
|
apiRef={grid.apiRef}
|
|
40
40
|
rowData={rows}
|
|
41
41
|
columnDefs={columns}
|
|
42
|
-
|
|
42
|
+
rowKey="id"
|
|
43
|
+
stateKey="customer-list"
|
|
43
44
|
/>
|
|
44
45
|
</div>
|
|
45
46
|
);
|
|
@@ -66,8 +67,78 @@ export function OrdersPage() {
|
|
|
66
67
|
|
|
67
68
|
When 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.
|
|
68
69
|
|
|
70
|
+
## Application and route defaults
|
|
71
|
+
|
|
72
|
+
Keep table conventions in one file. Providers can be nested; the nearest configuration is merged, named presets are reusable, and explicit table props win:
|
|
73
|
+
|
|
74
|
+
```tsx
|
|
75
|
+
// mach-table.config.ts
|
|
76
|
+
import { defineMachTableConfig, defineMachTablePreset } from "@agile-team/mach-table-react";
|
|
77
|
+
export default defineMachTableConfig({
|
|
78
|
+
defaults: {
|
|
79
|
+
size: "compact",
|
|
80
|
+
defaultColDef: { sortable: true, resizable: true, filter: true }
|
|
81
|
+
},
|
|
82
|
+
defaultPreset: "list",
|
|
83
|
+
presets: {
|
|
84
|
+
list: defineMachTablePreset({ pagination: false }),
|
|
85
|
+
crud: defineMachTablePreset({ rowSelection: "multiple", editType: "fullRow" })
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
// main.tsx
|
|
90
|
+
<MachTableProvider config={machTableConfig}>
|
|
91
|
+
<App />
|
|
92
|
+
</MachTableProvider>
|
|
93
|
+
```
|
|
94
|
+
|
|
69
95
|
The 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.
|
|
70
96
|
|
|
97
|
+
## Remote lists and standard workflows
|
|
98
|
+
|
|
99
|
+
Import heavier page workflows from the tree-shakeable subpath:
|
|
100
|
+
|
|
101
|
+
```tsx
|
|
102
|
+
import { useMachTableQuery, useMachTableController } from "@agile-team/mach-table-react/workflows";
|
|
103
|
+
import { MachTable, MachTableToolbar } from "@agile-team/mach-table-react";
|
|
104
|
+
|
|
105
|
+
const query = useMachTableQuery({
|
|
106
|
+
query: filters,
|
|
107
|
+
queryKey: filters,
|
|
108
|
+
rowKey: "id",
|
|
109
|
+
request: orderApi.page,
|
|
110
|
+
mode: "manual"
|
|
111
|
+
});
|
|
112
|
+
const controller = useMachTableController({ query });
|
|
113
|
+
|
|
114
|
+
<MachTableToolbar
|
|
115
|
+
api={controller.table.api}
|
|
116
|
+
commands={controller.commands}
|
|
117
|
+
search={controller.search}
|
|
118
|
+
onSearchChange={controller.setSearch}
|
|
119
|
+
loading={controller.busy}
|
|
120
|
+
/>;
|
|
121
|
+
<MachTable apiRef={controller.table.apiRef} {...controller.bindings} />;
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
The query hook cancels superseded requests, ignores stale responses, exposes an error overlay and supports cross-page or select-all-matching selection. `useMachTableEditing()` adds dirty state, guarded saves, rollback and reveal helpers.
|
|
125
|
+
|
|
126
|
+
## Cell and full-row editing
|
|
127
|
+
|
|
128
|
+
```tsx
|
|
129
|
+
import { MachTable, rowActionsColumn } from "@agile-team/mach-table-react";
|
|
130
|
+
|
|
131
|
+
const columns = [
|
|
132
|
+
{ field: "name", editable: true },
|
|
133
|
+
{ field: "age", editable: true, cellEditor: "number" },
|
|
134
|
+
rowActionsColumn({ onView, onDelete, overflow: "drawer" })
|
|
135
|
+
];
|
|
136
|
+
|
|
137
|
+
<MachTable editType="fullRow" columnDefs={columns} rowData={rows} />;
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
Cell mode is the default and provides a pencil plus inline confirm/cancel controls. Use `editableIndicator="always" | "hover" | "none"` to match the page density.
|
|
141
|
+
|
|
71
142
|
Documentation: [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)
|
|
72
143
|
|
|
73
|
-
|
|
144
|
+
Source-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).
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useMemo as Ce,useState as ue}from"react";function de(){let[r,n]=ue(null),[p,T]=ue(!1);return{apiRef:Ce(()=>{let h=null;return Object.defineProperty({},"current",{enumerable:!0,get:()=>h,set:u=>{u!==h&&(h=u,n(u),T(!1),u&&u.whenReady().then(()=>{h===u&&!u.isDestroyed()&&T(!0)}))}})},[]),api:r,ready:p}}import{useCallback as H,useEffect as fe,useMemo as Ee,useRef as ke,useState as W}from"react";function ge(r,n={}){let[p,T]=W([]),[v,h]=W([]),[u,a]=W(!1),[w,R]=W(null),f=ke(!1),g=H(()=>{let o=r.apiRef.current;if(!o||o.isDestroyed()){h([]),T([]);return}h(o.getDirtyRowIds()),T(o.getChanges())},[r.apiRef]);fe(()=>{let o=r.api;return g(),o&&!o.isDestroyed()?o.addEventListener("dirtyStateChanged",g):void 0},[r.api,g]);let C=H(async(o,D)=>{let y=r.apiRef.current;if(!y||y.isDestroyed())throw new Error("[MachTable] Cannot save before the grid is ready.");if(f.current)throw new Error("[MachTable] A save operation is already in progress.");f.current=!0,a(!0),R(null);try{let m=await y.saveChanges(o,D);return g(),n.onSaveSuccess?.(m),m}catch(m){throw R(m),n.onSaveError?.(m),m}finally{f.current=!1,a(!1)}},[n,g,r.apiRef]),U=H(o=>{let D=r.apiRef.current?.rollbackChanges(o)??!1;return g(),D},[g,r.apiRef]),A=H(o=>{r.apiRef.current?.markChangesSaved(o),g()},[g,r.apiRef]),L=H((o,D,y=!1)=>{let m=r.apiRef.current,z=m?.getNodeById(o);return!m||!z||z.rowIndex<0?!1:(m.scrollToIndex(z.rowIndex,"middle"),D&&y?m.startEditingCell({rowIndex:z.rowIndex,colId:D}):!0)},[r.apiRef]);return fe(()=>{if(!n.guardBeforeUnload||typeof window>"u")return;let o=D=>{if(v.length===0)return;let y=n.beforeUnloadMessage??"\u5B58\u5728\u672A\u4FDD\u5B58\u7684\u8868\u683C\u4FEE\u6539\u3002";return D.preventDefault(),D.returnValue=y,y};return window.addEventListener("beforeunload",o),()=>window.removeEventListener("beforeunload",o)},[v.length,n.beforeUnloadMessage,n.guardBeforeUnload]),Ee(()=>({changes:p,dirtyRowIds:v,dirty:v.length>0,saving:u,saveError:w,save:C,rollback:U,markSaved:A,reveal:L,refresh:g}),[p,v,A,g,L,U,C,w,u])}import{useCallback as s,useEffect as pe,useMemo as ye,useReducer as xe,useRef as S,useState as Q}from"react";import{getByPath as Pe}from"@agile-team/mach-table";function Y(r,n){return typeof r=="number"&&Number.isFinite(r)&&r>0?Math.floor(r):n}function Qe(r){return(r instanceof DOMException||typeof r=="object"&&r!=null&&"name"in r)&&r.name==="AbortError"}function Oe(r){return typeof r=="function"?r():r}function Ke(r){let n=S(r);n.current=r;let[p,T]=Q([]),[v,h]=Q(!1),[u,a]=Q(null),[w,R]=Q(Y(r.initialPage,1)),[f,g]=Q(Y(r.pageSize,20)),[C,U]=Q(0),[A,L]=Q([]),[o,D]=Q({}),[y,m]=Q(r.initialQuickFilterText??null),[,z]=xe(e=>e+1,0),l=S({page:w,pageSize:f,sortModel:A,filterModel:o,quickFilterText:y,rows:p});l.current={page:w,pageSize:f,sortModel:A,filterModel:o,quickFilterText:y,rows:p};let I=S(null),O=S(null),P=S(null),V=S(0),E=S(new Set),k=S(new Set),b=S(new Map),q=S(!1),j=S(!1),N=S(!1),d=s(e=>{let t=n.current.rowKey,c=typeof t=="function"?t(e):Pe(e,t);if(c==null||String(c).length===0)throw new Error(`[MachTable] useMachTableQuery rowKey "${String(t)}" returned an empty value.`);return String(c)},[]),K=s(e=>q.current?!k.current.has(e):E.current.has(e),[]),x=s(()=>z(),[]),G=s(()=>{let e=I.current;if(!(!e||e.isDestroyed())){N.current=!0;try{e.setSelection(l.current.rows.filter(t=>K(d(t))),!0)}finally{N.current=!1}}},[d,K]),Z=s(()=>{V.current++,O.current?.abort(),O.current=null,P.current&&clearTimeout(P.current),P.current=null,h(!1)},[]),$=s((e,t)=>e.signal.aborted||t!==V.current,[]),_=s((e,t,c)=>{if($(t,c))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 i=[...e.rows];for(let J of i){let X=d(J);K(X)?b.current.set(X,J):b.current.delete(X)}l.current.rows=i,T(i),U(Math.floor(e.total)),x(),n.current.onSuccess?.(e),queueMicrotask(G)},[$,x,d,K,G]),ee=s((e,t,c)=>{if($(t,c)||Qe(e))return;let i=e??new Error("Remote request failed");a(i),n.current.onError?.(i)},[$]),re=s((e,t)=>{t===V.current&&(h(!1),O.current===e&&(O.current=null))},[]),M=s(async()=>{P.current&&clearTimeout(P.current),P.current=null,O.current?.abort();let e=new AbortController;O.current=e;let t=++V.current;h(!0),a(null),n.current.keepPreviousData===!1&&T([]);let c=l.current;try{let i=await n.current.request({page:c.page,pageSize:c.pageSize,query:Oe(n.current.query),sortModel:c.sortModel.map(J=>({...J})),filterModel:{...c.filterModel},quickFilterText:c.quickFilterText,signal:e.signal});_(i,e,t)}catch(i){ee(i,e,t)}finally{re(e,t)}},[_,re,ee]),B=s(e=>{e&&(l.current.page=1,R(1)),O.current?.abort(),O.current=null;let t=Math.max(0,n.current.debounceMs??0);P.current&&clearTimeout(P.current),t===0?M():P.current=setTimeout(()=>{M()},t)},[M]),F=s(()=>{let e=q.current||E.current.size>0||k.current.size>0||b.current.size>0;q.current=!1,E.current.clear(),k.current.clear(),b.current.clear(),e&&x(),N.current=!0;try{I.current?.deselectAll()}finally{N.current=!1}},[x]),te=s(e=>{if(j.current)return;let t=l.current;e.page===t.page&&e.pageSize===t.pageSize||(t.page=e.page,t.pageSize=e.pageSize,R(e.page),g(e.pageSize),n.current.mode!=="manual"&&M())},[M]),ne=s(e=>{if(j.current)return;let t=e.sortModel.map(c=>({...c}));l.current.sortModel=t,L(t),n.current.mode!=="manual"?B(!0):(l.current.page=1,R(1))},[B]),ae=s(e=>{if(j.current)return;let t={...e.filterModel};l.current.filterModel=t,l.current.quickFilterText=e.api.getQuickFilter(),D(t),m(l.current.quickFilterText),n.current.clearSelectionOnQueryChange!==!1&&F(),n.current.mode!=="manual"?B(!0):(l.current.page=1,R(1))},[F,B]),oe=s(e=>{if(N.current)return;let t=new Set(l.current.rows.map(d)),c=new Set(e.selectedRows.map(d));if(q.current)for(let i of t)c.has(i)?k.current.delete(i):(k.current.add(i),b.current.delete(i));else{if((n.current.selectionScope??"preserve")==="page")E.current.clear(),b.current.clear();else for(let i of t)E.current.delete(i),b.current.delete(i);for(let i of e.selectedRows)E.current.add(d(i))}for(let i of e.selectedRows)b.current.set(d(i),i);x()},[x,d]),be=s(async(e={})=>{e.resetPage&&(l.current.page=1,R(1)),await M()},[M]),Me=s(async()=>{l.current.page=1,l.current.sortModel=[],l.current.filterModel={},R(1),L([]),D({}),F(),j.current=!0;try{I.current?.setSortModel(null),I.current?.setFilterModel(null)}finally{j.current=!1}await M()},[F,M]),Se=s(()=>{q.current=!0,E.current.clear(),k.current.clear(),b.current.clear();for(let e of l.current.rows)b.current.set(d(e),e);x(),G()},[x,d,G]),ve=s(e=>{E.current.clear(),k.current.clear(),b.current.clear(),q.current=e.mode==="allMatching";for(let t of(e.mode==="allMatching"?e.excludedKeys:e.selectedKeys).map(String))e.mode==="allMatching"?k.current.add(t):E.current.add(t);for(let t of l.current.rows)K(d(t))&&b.current.set(d(t),t);x(),G()},[x,d,K,G]),ie=S(!0),we=r.queryKey===void 0?r.query:r.queryKey;pe(()=>{if(ie.current){ie.current=!1;return}n.current.clearSelectionOnQueryChange!==!1&&F(),n.current.mode!=="manual"?B(!0):(l.current.page=1,R(1))},[we,F,B]),pe(()=>(r.mode!=="manual"&&r.immediate!==!1&&M(),Z),[]);let le=ye(()=>{let e=[...new Set((r.pageSizeOptions??[10,20,50,100]).map(t=>Y(t,0)).filter(Boolean))];return e.includes(f)||e.push(f),e.sort((t,c)=>t-c)},[r.pageSizeOptions,f]),se=ye(()=>({rowData:p,loading:v,error:u,rowKey:d,manualSorting:!0,manualFiltering:!0,quickFilterText:y,overlayErrorTemplate:u?()=>n.current.errorOverlay?.({error:u,retry:M})??"Remote request failed. Please retry.":void 0,overlayNoRowsTemplate:r.emptyOverlay,pagination:{mode:"server",page:w,pageSize:f,pageSizeOptions:le,total:C,showTotal:!0,showPageSizeSelector:!0},onGridReady:({api:e})=>{I.current=e,queueMicrotask(G)},onPaginationChanged:te,onSortChanged:ne,onFilterChanged:ae,onSelectionChanged:oe}),[u,M,v,ae,te,oe,ne,r.emptyOverlay,w,f,le,y,d,p,G,C]),ce=q.current?[]:[...E.current],Re=[...b.current.entries()].filter(([e])=>!k.current.has(e)).map(([,e])=>e),De=q.current?{mode:"allMatching",excludedKeys:[...k.current]}:{mode:"explicit",selectedKeys:ce};return{rows:p,loading:v,error:u,page:w,pageSize:f,total:C,sortModel:A,filterModel:o,quickFilterText:y,setQuickFilterText(e){l.current.quickFilterText=e,m(e),I.current?.setQuickFilter(e)},selectedKeys:ce,selectedRows:Re,selectionState:De,gridProps:se,bindings:se,reload:be,retry:M,reset:Me,abort:Z,clearSelection:F,selectAllMatching:Se,applySelectionState:ve}}import{useEffect as me,useMemo as Te,useState as he}from"react";import{createMachTableCommands as qe}from"@agile-team/mach-table";function Ve(r={}){let n=de(),p=ge(n,r.editing),[T,v]=he(r.initialSearch??""),[h,u]=he([]),a=r.query??null;me(()=>{let C=n.api;if(!C||C.isDestroyed()||a)return;let U=()=>u(C.getSelectedRows());return U(),C.addEventListener("selectionChanged",U)},[a,n.api]),me(()=>{a?a.setQuickFilterText(T||null):n.apiRef.current?.setQuickFilter(T||null)},[a,T,n.apiRef]);let w=Te(()=>async()=>{a?await a.reload():n.apiRef.current?.isInfinite()?await n.apiRef.current.reload():n.apiRef.current?.refreshCells()},[a,n.apiRef]),R=Te(()=>qe({getApi:()=>n.apiRef.current,reload:w}),[w,n.apiRef]),f=a?.selectedRows??h,g=a?a.selectionState.mode==="allMatching"?Math.max(0,a.total-a.selectionState.excludedKeys.length):a.selectionState.selectedKeys.length:f.length;return{table:n,query:a,editing:p,bindings:a?.bindings??{},search:T,setSearch:v,selectedRows:f,selectedCount:g,busy:a?.loading===!0||p.saving,error:a?.error??p.saveError??null,commands:R,reload:w}}export{de as a,ge as b,Ke as c,Ve as d};
|
|
2
|
+
//# sourceMappingURL=chunk-VVQCWQ2C.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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 type { GridChange, SaveChangesHandler } 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 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 save(handler: SaveChangesHandler<TData>, rowIds?: readonly string[]): Promise<GridChange<TData>[]>;\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 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 save = useCallback(async (\n handler: SaveChangesHandler<TData>,\n rowIds?: readonly string[]\n ): Promise<GridChange<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 try {\n const saved = await api.saveChanges(handler, rowIds);\n refresh();\n options.onSaveSuccess?.(saved);\n return saved;\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\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 return useMemo(() => ({\n changes, dirtyRowIds, dirty: dirtyRowIds.length > 0, saving, saveError,\n save, rollback, markSaved, reveal, refresh\n }), [changes, dirtyRowIds, markSaved, refresh, reveal, rollback, save, saveError, saving]);\n}\n","import { useCallback, useEffect, useMemo, useReducer, useRef, useState } from \"react\";\nimport {\n getByPath,\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 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 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 [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, quickFilterText, rows });\n stateRef.current = { page, pageSize, sortModel, filterModel, 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 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 stateRef.current.quickFilterText = event.api.getQuickFilter();\n setFilterModel(next);\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 setPage(1); setSortModel([]); setFilterModel({}); clearSelection();\n suppressGrid.current = true;\n try { apiRef.current?.setSortModel(null); apiRef.current?.setFilterModel(null); }\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 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 }), [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,\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","useMachTableEditing","table","options","changes","setChanges","dirtyRowIds","setDirtyRowIds","saving","setSaving","saveError","setSaveError","savingRef","refresh","api","save","handler","rowIds","saved","error","rollback","changed","markSaved","reveal","rowId","colId","edit","node","event","message","useCallback","useEffect","useMemo","useReducer","useRef","useState","getByPath","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","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","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"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
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 de(){let[r,n]=_react.useState.call(void 0, null),[p,T]=_react.useState.call(void 0, !1);return{apiRef:_react.useMemo.call(void 0, ()=>{let h=null;return Object.defineProperty({},"current",{enumerable:!0,get:()=>h,set:u=>{u!==h&&(h=u,n(u),T(!1),u&&u.whenReady().then(()=>{h===u&&!u.isDestroyed()&&T(!0)}))}})},[]),api:r,ready:p}}function ge(r,n={}){let[p,T]=_react.useState.call(void 0, []),[v,h]=_react.useState.call(void 0, []),[u,a]=_react.useState.call(void 0, !1),[w,R]=_react.useState.call(void 0, null),f=_react.useRef.call(void 0, !1),g=_react.useCallback.call(void 0, ()=>{let o=r.apiRef.current;if(!o||o.isDestroyed()){h([]),T([]);return}h(o.getDirtyRowIds()),T(o.getChanges())},[r.apiRef]);_react.useEffect.call(void 0, ()=>{let o=r.api;return g(),o&&!o.isDestroyed()?o.addEventListener("dirtyStateChanged",g):void 0},[r.api,g]);let C=_react.useCallback.call(void 0, async(o,D)=>{let y=r.apiRef.current;if(!y||y.isDestroyed())throw new Error("[MachTable] Cannot save before the grid is ready.");if(f.current)throw new Error("[MachTable] A save operation is already in progress.");f.current=!0,a(!0),R(null);try{let m=await y.saveChanges(o,D);return g(),_optionalChain([n, 'access', _2 => _2.onSaveSuccess, 'optionalCall', _3 => _3(m)]),m}catch(m){throw R(m),_optionalChain([n, 'access', _4 => _4.onSaveError, 'optionalCall', _5 => _5(m)]),m}finally{f.current=!1,a(!1)}},[n,g,r.apiRef]),U=_react.useCallback.call(void 0, o=>{let D=_nullishCoalesce(_optionalChain([r, 'access', _6 => _6.apiRef, 'access', _7 => _7.current, 'optionalAccess', _8 => _8.rollbackChanges, 'call', _9 => _9(o)]), () => (!1));return g(),D},[g,r.apiRef]),A=_react.useCallback.call(void 0, o=>{_optionalChain([r, 'access', _10 => _10.apiRef, 'access', _11 => _11.current, 'optionalAccess', _12 => _12.markChangesSaved, 'call', _13 => _13(o)]),g()},[g,r.apiRef]),L=_react.useCallback.call(void 0, (o,D,y=!1)=>{let m=r.apiRef.current,z=_optionalChain([m, 'optionalAccess', _14 => _14.getNodeById, 'call', _15 => _15(o)]);return!m||!z||z.rowIndex<0?!1:(m.scrollToIndex(z.rowIndex,"middle"),D&&y?m.startEditingCell({rowIndex:z.rowIndex,colId:D}):!0)},[r.apiRef]);return _react.useEffect.call(void 0, ()=>{if(!n.guardBeforeUnload||typeof window>"u")return;let o=D=>{if(v.length===0)return;let y=_nullishCoalesce(n.beforeUnloadMessage, () => ("\u5B58\u5728\u672A\u4FDD\u5B58\u7684\u8868\u683C\u4FEE\u6539\u3002"));return D.preventDefault(),D.returnValue=y,y};return window.addEventListener("beforeunload",o),()=>window.removeEventListener("beforeunload",o)},[v.length,n.beforeUnloadMessage,n.guardBeforeUnload]),_react.useMemo.call(void 0, ()=>({changes:p,dirtyRowIds:v,dirty:v.length>0,saving:u,saveError:w,save:C,rollback:U,markSaved:A,reveal:L,refresh:g}),[p,v,A,g,L,U,C,w,u])}var _machtable = require('@agile-team/mach-table');function Y(r,n){return typeof r=="number"&&Number.isFinite(r)&&r>0?Math.floor(r):n}function Qe(r){return(r instanceof DOMException||typeof r=="object"&&r!=null&&"name"in r)&&r.name==="AbortError"}function Oe(r){return typeof r=="function"?r():r}function Ke(r){let n=_react.useRef.call(void 0, r);n.current=r;let[p,T]=_react.useState.call(void 0, []),[v,h]=_react.useState.call(void 0, !1),[u,a]=_react.useState.call(void 0, null),[w,R]=_react.useState.call(void 0, Y(r.initialPage,1)),[f,g]=_react.useState.call(void 0, Y(r.pageSize,20)),[C,U]=_react.useState.call(void 0, 0),[A,L]=_react.useState.call(void 0, []),[o,D]=_react.useState.call(void 0, {}),[y,m]=_react.useState.call(void 0, _nullishCoalesce(r.initialQuickFilterText, () => (null))),[,z]=_react.useReducer.call(void 0, e=>e+1,0),l=_react.useRef.call(void 0, {page:w,pageSize:f,sortModel:A,filterModel:o,quickFilterText:y,rows:p});l.current={page:w,pageSize:f,sortModel:A,filterModel:o,quickFilterText:y,rows:p};let I=_react.useRef.call(void 0, null),O=_react.useRef.call(void 0, null),P=_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),q=_react.useRef.call(void 0, !1),j=_react.useRef.call(void 0, !1),N=_react.useRef.call(void 0, !1),d=_react.useCallback.call(void 0, e=>{let t=n.current.rowKey,c=typeof t=="function"?t(e):_machtable.getByPath.call(void 0, e,t);if(c==null||String(c).length===0)throw new Error(`[MachTable] useMachTableQuery rowKey "${String(t)}" returned an empty value.`);return String(c)},[]),K=_react.useCallback.call(void 0, e=>q.current?!k.current.has(e):E.current.has(e),[]),x=_react.useCallback.call(void 0, ()=>z(),[]),G=_react.useCallback.call(void 0, ()=>{let e=I.current;if(!(!e||e.isDestroyed())){N.current=!0;try{e.setSelection(l.current.rows.filter(t=>K(d(t))),!0)}finally{N.current=!1}}},[d,K]),Z=_react.useCallback.call(void 0, ()=>{V.current++,_optionalChain([O, 'access', _16 => _16.current, 'optionalAccess', _17 => _17.abort, 'call', _18 => _18()]),O.current=null,P.current&&clearTimeout(P.current),P.current=null,h(!1)},[]),$=_react.useCallback.call(void 0, (e,t)=>e.signal.aborted||t!==V.current,[]),_=_react.useCallback.call(void 0, (e,t,c)=>{if($(t,c))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 i=[...e.rows];for(let J of i){let X=d(J);K(X)?b.current.set(X,J):b.current.delete(X)}l.current.rows=i,T(i),U(Math.floor(e.total)),x(),_optionalChain([n, 'access', _19 => _19.current, 'access', _20 => _20.onSuccess, 'optionalCall', _21 => _21(e)]),queueMicrotask(G)},[$,x,d,K,G]),ee=_react.useCallback.call(void 0, (e,t,c)=>{if($(t,c)||Qe(e))return;let i=_nullishCoalesce(e, () => (new Error("Remote request failed")));a(i),_optionalChain([n, 'access', _22 => _22.current, 'access', _23 => _23.onError, 'optionalCall', _24 => _24(i)])},[$]),re=_react.useCallback.call(void 0, (e,t)=>{t===V.current&&(h(!1),O.current===e&&(O.current=null))},[]),M=_react.useCallback.call(void 0, async()=>{P.current&&clearTimeout(P.current),P.current=null,_optionalChain([O, 'access', _25 => _25.current, 'optionalAccess', _26 => _26.abort, 'call', _27 => _27()]);let e=new AbortController;O.current=e;let t=++V.current;h(!0),a(null),n.current.keepPreviousData===!1&&T([]);let c=l.current;try{let i=await n.current.request({page:c.page,pageSize:c.pageSize,query:Oe(n.current.query),sortModel:c.sortModel.map(J=>({...J})),filterModel:{...c.filterModel},quickFilterText:c.quickFilterText,signal:e.signal});_(i,e,t)}catch(i){ee(i,e,t)}finally{re(e,t)}},[_,re,ee]),B=_react.useCallback.call(void 0, e=>{e&&(l.current.page=1,R(1)),_optionalChain([O, 'access', _28 => _28.current, 'optionalAccess', _29 => _29.abort, 'call', _30 => _30()]),O.current=null;let t=Math.max(0,_nullishCoalesce(n.current.debounceMs, () => (0)));P.current&&clearTimeout(P.current),t===0?M():P.current=setTimeout(()=>{M()},t)},[M]),F=_react.useCallback.call(void 0, ()=>{let e=q.current||E.current.size>0||k.current.size>0||b.current.size>0;q.current=!1,E.current.clear(),k.current.clear(),b.current.clear(),e&&x(),N.current=!0;try{_optionalChain([I, 'access', _31 => _31.current, 'optionalAccess', _32 => _32.deselectAll, 'call', _33 => _33()])}finally{N.current=!1}},[x]),te=_react.useCallback.call(void 0, e=>{if(j.current)return;let t=l.current;e.page===t.page&&e.pageSize===t.pageSize||(t.page=e.page,t.pageSize=e.pageSize,R(e.page),g(e.pageSize),n.current.mode!=="manual"&&M())},[M]),ne=_react.useCallback.call(void 0, e=>{if(j.current)return;let t=e.sortModel.map(c=>({...c}));l.current.sortModel=t,L(t),n.current.mode!=="manual"?B(!0):(l.current.page=1,R(1))},[B]),ae=_react.useCallback.call(void 0, e=>{if(j.current)return;let t={...e.filterModel};l.current.filterModel=t,l.current.quickFilterText=e.api.getQuickFilter(),D(t),m(l.current.quickFilterText),n.current.clearSelectionOnQueryChange!==!1&&F(),n.current.mode!=="manual"?B(!0):(l.current.page=1,R(1))},[F,B]),oe=_react.useCallback.call(void 0, e=>{if(N.current)return;let t=new Set(l.current.rows.map(d)),c=new Set(e.selectedRows.map(d));if(q.current)for(let i of t)c.has(i)?k.current.delete(i):(k.current.add(i),b.current.delete(i));else{if((_nullishCoalesce(n.current.selectionScope, () => ("preserve")))==="page")E.current.clear(),b.current.clear();else for(let i of t)E.current.delete(i),b.current.delete(i);for(let i of e.selectedRows)E.current.add(d(i))}for(let i of e.selectedRows)b.current.set(d(i),i);x()},[x,d]),be=_react.useCallback.call(void 0, async(e={})=>{e.resetPage&&(l.current.page=1,R(1)),await M()},[M]),Me=_react.useCallback.call(void 0, async()=>{l.current.page=1,l.current.sortModel=[],l.current.filterModel={},R(1),L([]),D({}),F(),j.current=!0;try{_optionalChain([I, 'access', _34 => _34.current, 'optionalAccess', _35 => _35.setSortModel, 'call', _36 => _36(null)]),_optionalChain([I, 'access', _37 => _37.current, 'optionalAccess', _38 => _38.setFilterModel, 'call', _39 => _39(null)])}finally{j.current=!1}await M()},[F,M]),Se=_react.useCallback.call(void 0, ()=>{q.current=!0,E.current.clear(),k.current.clear(),b.current.clear();for(let e of l.current.rows)b.current.set(d(e),e);x(),G()},[x,d,G]),ve=_react.useCallback.call(void 0, e=>{E.current.clear(),k.current.clear(),b.current.clear(),q.current=e.mode==="allMatching";for(let t of(e.mode==="allMatching"?e.excludedKeys:e.selectedKeys).map(String))e.mode==="allMatching"?k.current.add(t):E.current.add(t);for(let t of l.current.rows)K(d(t))&&b.current.set(d(t),t);x(),G()},[x,d,K,G]),ie=_react.useRef.call(void 0, !0),we=r.queryKey===void 0?r.query:r.queryKey;_react.useEffect.call(void 0, ()=>{if(ie.current){ie.current=!1;return}n.current.clearSelectionOnQueryChange!==!1&&F(),n.current.mode!=="manual"?B(!0):(l.current.page=1,R(1))},[we,F,B]),_react.useEffect.call(void 0, ()=>(r.mode!=="manual"&&r.immediate!==!1&&M(),Z),[]);let le=_react.useMemo.call(void 0, ()=>{let e=[...new Set((_nullishCoalesce(r.pageSizeOptions, () => ([10,20,50,100]))).map(t=>Y(t,0)).filter(Boolean))];return e.includes(f)||e.push(f),e.sort((t,c)=>t-c)},[r.pageSizeOptions,f]),se=_react.useMemo.call(void 0, ()=>({rowData:p,loading:v,error:u,rowKey:d,manualSorting:!0,manualFiltering:!0,quickFilterText:y,overlayErrorTemplate:u?()=>_nullishCoalesce(_optionalChain([n, 'access', _40 => _40.current, 'access', _41 => _41.errorOverlay, 'optionalCall', _42 => _42({error:u,retry:M})]), () => ("Remote request failed. Please retry.")):void 0,overlayNoRowsTemplate:r.emptyOverlay,pagination:{mode:"server",page:w,pageSize:f,pageSizeOptions:le,total:C,showTotal:!0,showPageSizeSelector:!0},onGridReady:({api:e})=>{I.current=e,queueMicrotask(G)},onPaginationChanged:te,onSortChanged:ne,onFilterChanged:ae,onSelectionChanged:oe}),[u,M,v,ae,te,oe,ne,r.emptyOverlay,w,f,le,y,d,p,G,C]),ce=q.current?[]:[...E.current],Re=[...b.current.entries()].filter(([e])=>!k.current.has(e)).map(([,e])=>e),De=q.current?{mode:"allMatching",excludedKeys:[...k.current]}:{mode:"explicit",selectedKeys:ce};return{rows:p,loading:v,error:u,page:w,pageSize:f,total:C,sortModel:A,filterModel:o,quickFilterText:y,setQuickFilterText(e){l.current.quickFilterText=e,m(e),_optionalChain([I, 'access', _43 => _43.current, 'optionalAccess', _44 => _44.setQuickFilter, 'call', _45 => _45(e)])},selectedKeys:ce,selectedRows:Re,selectionState:De,gridProps:se,bindings:se,reload:be,retry:M,reset:Me,abort:Z,clearSelection:F,selectAllMatching:Se,applySelectionState:ve}}function Ve(r={}){let n=de(),p=ge(n,r.editing),[T,v]=_react.useState.call(void 0, _nullishCoalesce(r.initialSearch, () => (""))),[h,u]=_react.useState.call(void 0, []),a=_nullishCoalesce(r.query, () => (null));_react.useEffect.call(void 0, ()=>{let C=n.api;if(!C||C.isDestroyed()||a)return;let U=()=>u(C.getSelectedRows());return U(),C.addEventListener("selectionChanged",U)},[a,n.api]),_react.useEffect.call(void 0, ()=>{a?a.setQuickFilterText(T||null):_optionalChain([n, 'access', _46 => _46.apiRef, 'access', _47 => _47.current, 'optionalAccess', _48 => _48.setQuickFilter, 'call', _49 => _49(T||null)])},[a,T,n.apiRef]);let w=_react.useMemo.call(void 0, ()=>async()=>{a?await a.reload():_optionalChain([n, 'access', _50 => _50.apiRef, 'access', _51 => _51.current, 'optionalAccess', _52 => _52.isInfinite, 'call', _53 => _53()])?await n.apiRef.current.reload():_optionalChain([n, 'access', _54 => _54.apiRef, 'access', _55 => _55.current, 'optionalAccess', _56 => _56.refreshCells, 'call', _57 => _57()])},[a,n.apiRef]),R=_react.useMemo.call(void 0, ()=>_machtable.createMachTableCommands.call(void 0, {getApi:()=>n.apiRef.current,reload:w}),[w,n.apiRef]),f=_nullishCoalesce(_optionalChain([a, 'optionalAccess', _58 => _58.selectedRows]), () => (h)),g=a?a.selectionState.mode==="allMatching"?Math.max(0,a.total-a.selectionState.excludedKeys.length):a.selectionState.selectedKeys.length:f.length;return{table:n,query:a,editing:p,bindings:_nullishCoalesce(_optionalChain([a, 'optionalAccess', _59 => _59.bindings]), () => ({})),search:T,setSearch:v,selectedRows:f,selectedCount:g,busy:_optionalChain([a, 'optionalAccess', _60 => _60.loading])===!0||p.saving,error:_nullishCoalesce(_nullishCoalesce(_optionalChain([a, 'optionalAccess', _61 => _61.error]), () => (p.saveError)), () => (null)),commands:R,reload:w}}exports.a = de; exports.b = ge; exports.c = Ke; exports.d = Ve;
|
|
2
|
+
//# sourceMappingURL=chunk-Z5XSUQ5O.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["d:\\office-project\\wl\\MachTable\\packages\\react\\dist\\chunk-Z5XSUQ5O.cjs"],"names":[],"mappings":"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","file":"D:\\office-project\\wl\\MachTable\\packages\\react\\dist\\chunk-Z5XSUQ5O.cjs","sourcesContent":[null]}
|