@taocompany/magic-grid 0.13.9 → 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.
Files changed (41) hide show
  1. package/AGENTS.md +47 -0
  2. package/README.md +63 -10
  3. package/dist/api-manifest.json +2862 -0
  4. package/dist/components/MagicGrid/MagicGrid.vue.d.ts +86 -114
  5. package/dist/components/MagicGrid/MagicGrid.vue.d.ts.map +1 -1
  6. package/dist/components/MagicGrid/index.d.ts +9 -0
  7. package/dist/components/MagicGrid/index.d.ts.map +1 -0
  8. package/dist/components/MagicGrid/magicGridProps.d.ts +3 -3
  9. package/dist/components/MagicGrid/magicGridProps.d.ts.map +1 -1
  10. package/dist/components/MagicGrid/publicProps.d.ts +4 -0
  11. package/dist/components/MagicGrid/publicProps.d.ts.map +1 -0
  12. package/dist/core/grid/grid.d.ts.map +1 -1
  13. package/dist/core/grid/gridBootstrap.d.ts.map +1 -1
  14. package/dist/core/grid/gridColumnLayout.d.ts.map +1 -1
  15. package/dist/core/grid/gridFilter.d.ts.map +1 -1
  16. package/dist/core/grid/gridHierarchyOps.d.ts +2 -0
  17. package/dist/core/grid/gridHierarchyOps.d.ts.map +1 -1
  18. package/dist/core/grid/gridInteraction/columnResizeSession.d.ts.map +1 -1
  19. package/dist/core/grid/gridRowMutation.d.ts.map +1 -1
  20. package/dist/core/grid/gridViewport.d.ts.map +1 -1
  21. package/dist/core/renderer/rowRenderer.d.ts +2 -0
  22. package/dist/core/renderer/rowRenderer.d.ts.map +1 -1
  23. package/dist/core/row/rowComp.d.ts +1 -0
  24. package/dist/core/row/rowComp.d.ts.map +1 -1
  25. package/dist/core/styling/cellStyleOverrideService.d.ts +1 -0
  26. package/dist/core/styling/cellStyleOverrideService.d.ts.map +1 -1
  27. package/dist/core/types/cellRangeSelection.d.ts.map +1 -1
  28. package/dist/index.cjs.js +6 -6
  29. package/dist/index.cjs.js.map +1 -1
  30. package/dist/index.d.ts +2 -1
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.es.js +4593 -4561
  33. package/dist/index.es.js.map +1 -1
  34. package/dist/style.css +1 -1
  35. package/dist/token-catalog.json +2 -2
  36. package/dist/types/core.d.ts +115 -0
  37. package/dist/types/core.d.ts.map +1 -1
  38. package/dist/types/magic-grid.d.ts +38 -3
  39. package/dist/types/magic-grid.d.ts.map +1 -1
  40. package/llms.txt +19 -0
  41. package/package.json +25 -4
@@ -0,0 +1,2862 @@
1
+ {
2
+ "manifestVersion": 1,
3
+ "libraryVersion": "0.14.0",
4
+ "generatedAt": "2026-11-03T07:33:37.560Z",
5
+ "props": [
6
+ {
7
+ "name": "columns",
8
+ "type": "ColumnDef<TData>[]",
9
+ "required": true,
10
+ "notes": "列定义"
11
+ },
12
+ {
13
+ "name": "data",
14
+ "type": "TData[]",
15
+ "default": "() => []",
16
+ "required": true,
17
+ "notes": "行数据"
18
+ },
19
+ {
20
+ "name": "rowModelType",
21
+ "type": "RowModelType",
22
+ "default": "'clientSide'",
23
+ "required": false,
24
+ "notes": "行模型:clientSide(默认)| infinite"
25
+ },
26
+ {
27
+ "name": "infiniteDatasource",
28
+ "type": "InfiniteRowDatasource",
29
+ "default": "undefined",
30
+ "required": false,
31
+ "notes": "infinite 模式必填:块数据源"
32
+ },
33
+ {
34
+ "name": "blockSize",
35
+ "type": "number",
36
+ "default": "undefined",
37
+ "required": false,
38
+ "notes": "infinite:每块行数,默认 100"
39
+ },
40
+ {
41
+ "name": "maxBlocksInCache",
42
+ "type": "number",
43
+ "default": "undefined",
44
+ "required": false,
45
+ "notes": "infinite:LRU 最多保留块数,默认 10"
46
+ },
47
+ {
48
+ "name": "infiniteInitialRowCount",
49
+ "type": "number",
50
+ "default": "undefined",
51
+ "required": false,
52
+ "notes": "infinite:未知 lastRow 时初始虚拟行数,默认 blockSize × 2"
53
+ },
54
+ {
55
+ "name": "infiniteMaxRetries",
56
+ "type": "number",
57
+ "default": "undefined",
58
+ "required": false,
59
+ "notes": "infinite:块加载失败自动重试次数,默认 0"
60
+ },
61
+ {
62
+ "name": "infiniteLoadingRowVisible",
63
+ "type": "boolean",
64
+ "default": "undefined",
65
+ "required": false,
66
+ "notes": "infinite:stub 行是否展示 loading 样式,默认 true"
67
+ },
68
+ {
69
+ "name": "cellEditorRegistry",
70
+ "type": "Record<string, CellEditorFn>",
71
+ "default": "undefined",
72
+ "required": false,
73
+ "notes": "Grid 实例级命名编辑器(colId 引用 cellEditor: 'name' 时解析;优先于全局注册表)"
74
+ },
75
+ {
76
+ "name": "rowKey",
77
+ "type": "string",
78
+ "default": "'id'",
79
+ "required": false,
80
+ "notes": "行数据主键字段名(PK),用于行池复用与增量更新"
81
+ },
82
+ {
83
+ "name": "stripe",
84
+ "type": "boolean",
85
+ "default": "false",
86
+ "required": false,
87
+ "notes": "斑马纹"
88
+ },
89
+ {
90
+ "name": "cellColor",
91
+ "type": "CellStyle",
92
+ "default": "undefined",
93
+ "required": false,
94
+ "notes": "表体默认单元格颜色(Grid 级 · 与 CellStyle 同形)。"
95
+ },
96
+ {
97
+ "name": "border",
98
+ "type": "GridBorder",
99
+ "default": "'border'",
100
+ "required": false,
101
+ "notes": "边框样式(默认 `border`)"
102
+ },
103
+ {
104
+ "name": "theme",
105
+ "type": "GridTheme",
106
+ "default": "'light'",
107
+ "required": false,
108
+ "notes": "主题 preset;默认 `light`(亮色)。"
109
+ },
110
+ {
111
+ "name": "size",
112
+ "type": "GridSize",
113
+ "default": "'default'",
114
+ "required": false,
115
+ "notes": "尺寸 preset;默认 `default`。"
116
+ },
117
+ {
118
+ "name": "rounded",
119
+ "type": "GridRounded",
120
+ "default": "false",
121
+ "required": false,
122
+ "notes": "容器圆角(px);默认 `false`(无圆角)"
123
+ },
124
+ {
125
+ "name": "rowHeight",
126
+ "type": "number",
127
+ "default": "undefined",
128
+ "required": false,
129
+ "notes": "固定行高(px);显式传入时覆盖 size preset"
130
+ },
131
+ {
132
+ "name": "headerHeight",
133
+ "type": "number",
134
+ "default": "undefined",
135
+ "required": false,
136
+ "notes": "表头高度(px);显式传入时覆盖 size preset"
137
+ },
138
+ {
139
+ "name": "showIndexColumn",
140
+ "type": "boolean",
141
+ "default": "false",
142
+ "required": false,
143
+ "notes": "是否显示最左侧索引列;默认 false"
144
+ },
145
+ {
146
+ "name": "indexColumn",
147
+ "type": "IndexColumnOptions",
148
+ "default": "undefined",
149
+ "required": false,
150
+ "notes": "索引列配置;showIndexColumn=true 时生效;MagicGrid 层 syncToSelectionColumn 默认 true"
151
+ },
152
+ {
153
+ "name": "selectionColumn",
154
+ "type": "SelectionColumnOptions",
155
+ "default": "undefined",
156
+ "required": false,
157
+ "notes": "行选择列配置;rowSelection !== false 时生效"
158
+ },
159
+ {
160
+ "name": "showSummary",
161
+ "type": "boolean",
162
+ "default": "false",
163
+ "required": false,
164
+ "notes": "是否展示表尾汇总行;默认 false"
165
+ },
166
+ {
167
+ "name": "navigateHeader",
168
+ "type": "boolean",
169
+ "default": "false",
170
+ "required": false,
171
+ "notes": "是否允许键盘/鼠标将焦点导航到表头;默认 false"
172
+ },
173
+ {
174
+ "name": "navigateFooter",
175
+ "type": "boolean",
176
+ "default": "false",
177
+ "required": false,
178
+ "notes": "是否允许键盘/鼠标将焦点导航到表尾汇总行;默认 false(需 showSummary: true)"
179
+ },
180
+ {
181
+ "name": "summaryScope",
182
+ "type": "SummaryScope",
183
+ "default": "'displayed'",
184
+ "required": false,
185
+ "notes": "汇总计算范围;默认 `displayed`(rowsToDisplay,尊重 filter / sort)"
186
+ },
187
+ {
188
+ "name": "summaryRowHeight",
189
+ "type": "number",
190
+ "default": "undefined",
191
+ "required": false,
192
+ "notes": "汇总行高度(px);未传时跟随 rowHeight / size preset"
193
+ },
194
+ {
195
+ "name": "summaryMethod",
196
+ "type": "SummaryMethod",
197
+ "default": "undefined",
198
+ "required": false,
199
+ "notes": "全局汇总方法(优先级高于列级 summaryAgg)"
200
+ },
201
+ {
202
+ "name": "headerAlign",
203
+ "type": "GridHorizontalAlign",
204
+ "default": "undefined",
205
+ "required": false,
206
+ "notes": "表头水平对齐(全局默认);默认 center"
207
+ },
208
+ {
209
+ "name": "headerValign",
210
+ "type": "GridVerticalAlign",
211
+ "default": "undefined",
212
+ "required": false,
213
+ "notes": "表头垂直对齐(全局默认);默认 center"
214
+ },
215
+ {
216
+ "name": "align",
217
+ "type": "GridHorizontalAlign",
218
+ "default": "undefined",
219
+ "required": false,
220
+ "notes": "表体水平对齐(全局默认);默认 center"
221
+ },
222
+ {
223
+ "name": "valign",
224
+ "type": "GridVerticalAlign",
225
+ "default": "undefined",
226
+ "required": false,
227
+ "notes": "表体垂直对齐(全局默认);默认 center"
228
+ },
229
+ {
230
+ "name": "footerAlign",
231
+ "type": "GridHorizontalAlign",
232
+ "default": "undefined",
233
+ "required": false,
234
+ "notes": "表尾汇总水平对齐(全局默认);默认 center"
235
+ },
236
+ {
237
+ "name": "footerValign",
238
+ "type": "GridVerticalAlign",
239
+ "default": "undefined",
240
+ "required": false,
241
+ "notes": "表尾汇总垂直对齐(全局默认);默认 center"
242
+ },
243
+ {
244
+ "name": "rowBuffer",
245
+ "type": "number",
246
+ "default": "10",
247
+ "required": false,
248
+ "notes": "行虚拟化缓冲行数"
249
+ },
250
+ {
251
+ "name": "scrollEndFlushMs",
252
+ "type": "number",
253
+ "default": "0",
254
+ "required": false,
255
+ "notes": "滚动停止后 flush RAF 队列(ms);0 = 关闭"
256
+ },
257
+ {
258
+ "name": "frameBudgetMs",
259
+ "type": "number",
260
+ "default": "undefined",
261
+ "required": false,
262
+ "notes": "活跃滚动帧预算(ms),默认 60"
263
+ },
264
+ {
265
+ "name": "scrollEndFrameBudgetMs",
266
+ "type": "number",
267
+ "default": "undefined",
268
+ "required": false,
269
+ "notes": "scroll idle flush 帧预算;-1 = 一次跑完"
270
+ },
271
+ {
272
+ "name": "cellRendererDefer",
273
+ "type": "CellRendererDeferMode",
274
+ "default": "'always'",
275
+ "required": false,
276
+ "notes": "cellRenderer 调度:always | never | sync-only"
277
+ },
278
+ {
279
+ "name": "deferRowDestroyOnScroll",
280
+ "type": "boolean",
281
+ "default": "false",
282
+ "required": false,
283
+ "notes": "滚动 active 期间延迟行 destroy"
284
+ },
285
+ {
286
+ "name": "rendererFrameBudgetMs",
287
+ "type": "number",
288
+ "default": "undefined",
289
+ "required": false,
290
+ "notes": "滚动 active 时 f1 每帧保底预算(ms);0 = 与 p1/p2 共享总预算,默认 20"
291
+ },
292
+ {
293
+ "name": "cellRendererPresentation",
294
+ "type": "CellRendererPresentation",
295
+ "default": "'deferred'",
296
+ "required": false,
297
+ "notes": "Vue renderer 呈现:immediate | deferred | placeholder-then-vue"
298
+ },
299
+ {
300
+ "name": "rowSelection",
301
+ "type": "RowSelectionInput",
302
+ "default": "'single'",
303
+ "required": false,
304
+ "notes": "行选择模式,false 禁用;对象形式支持 groupSelectsChildren"
305
+ },
306
+ {
307
+ "name": "selectable",
308
+ "type": "SelectableFn",
309
+ "default": "undefined",
310
+ "required": false,
311
+ "notes": "行选择列:行 checkbox 是否可勾选;函数入参含 `data` / `rowId` / `rowIndex`。"
312
+ },
313
+ {
314
+ "name": "isRowDisabled",
315
+ "type": "boolean | IsRowDisabledFn<TData>",
316
+ "default": "undefined",
317
+ "required": false,
318
+ "notes": "行级禁用:true 时该行全部数据列 disabled。"
319
+ },
320
+ {
321
+ "name": "rowStyle",
322
+ "type": "RowStyle<TData>",
323
+ "default": "undefined",
324
+ "required": false,
325
+ "notes": "行级样式:对象 = 全表同色;函数 = 按行。"
326
+ },
327
+ {
328
+ "name": "editableCellStyle",
329
+ "type": "CellStyle",
330
+ "default": "undefined",
331
+ "required": false,
332
+ "notes": "可编辑单元格样式(Grid 级 · 可选)。"
333
+ },
334
+ {
335
+ "name": "showEditableCellIcon",
336
+ "type": "boolean",
337
+ "default": "false",
338
+ "required": false,
339
+ "notes": "可编辑格左侧 pencil-line;默认 false,与 editableCellStyle 独立;inline 列不显示"
340
+ },
341
+ {
342
+ "name": "disabledCellStyle",
343
+ "type": "CellStyle",
344
+ "default": "undefined",
345
+ "required": false,
346
+ "notes": "禁用单元格样式(Grid 级 · 可选)。"
347
+ },
348
+ {
349
+ "name": "showDisabledCellIcon",
350
+ "type": "boolean",
351
+ "default": "false",
352
+ "required": false,
353
+ "notes": "disabled 格左侧 pencil-off;默认 false,与 disabledCellStyle 独立;inline 列不显示"
354
+ },
355
+ {
356
+ "name": "reserveSelection",
357
+ "type": "boolean",
358
+ "default": "false",
359
+ "required": false,
360
+ "notes": "行选择列:数据刷新后是否保留选中行;默认 false"
361
+ },
362
+ {
363
+ "name": "preserveScrollOnSetData",
364
+ "type": "boolean",
365
+ "default": "true",
366
+ "required": false,
367
+ "notes": "setData / :data 全量替换后是否保留滚动位置;默认 true"
368
+ },
369
+ {
370
+ "name": "defaultSelectedRows",
371
+ "type": "DefaultSelectedRowsInput",
372
+ "default": "undefined",
373
+ "required": false,
374
+ "notes": "preset 默认选中:id 数组或解析函数(`targets` / internalRowId)。"
375
+ },
376
+ {
377
+ "name": "editBehavior",
378
+ "type": "CellEditBehavior",
379
+ "default": "'cell'",
380
+ "required": false,
381
+ "notes": "编辑范围:cell 单格 / row 整行"
382
+ },
383
+ {
384
+ "name": "editType",
385
+ "type": "CellEditType",
386
+ "default": "'singleClick'",
387
+ "required": false,
388
+ "notes": "进入编辑态的触发方式,默认 singleClick"
389
+ },
390
+ {
391
+ "name": "editorOptions",
392
+ "type": "EditorOptions",
393
+ "default": "undefined",
394
+ "required": false,
395
+ "notes": "Grid 级编辑器外观(`:editor-options`)。"
396
+ },
397
+ {
398
+ "name": "invalidEditValueMode",
399
+ "type": "InvalidEditValueMode",
400
+ "default": "'block'",
401
+ "required": false,
402
+ "notes": "校验失败后:block 保持编辑 / revert 退出并恢复旧值"
403
+ },
404
+ {
405
+ "name": "rowValidator",
406
+ "type": "RowValidator",
407
+ "default": "undefined",
408
+ "required": false,
409
+ "notes": "行编辑跨字段校验"
410
+ },
411
+ {
412
+ "name": "asyncRowMutation",
413
+ "type": "AsyncRowMutationHandlers",
414
+ "default": "undefined",
415
+ "required": false,
416
+ "notes": "异步行 CRUD / 行序持久化钩子。"
417
+ },
418
+ {
419
+ "name": "height",
420
+ "type": "string | number",
421
+ "default": "'100%'",
422
+ "required": false,
423
+ "notes": "容器高度;number 或纯数字字符串自动补 `px`,亦支持 `100%` / `vh` 等 CSS 长度"
424
+ },
425
+ {
426
+ "name": "width",
427
+ "type": "string | number",
428
+ "default": "'100%'",
429
+ "required": false,
430
+ "notes": "容器宽度;number 或纯数字字符串自动补 `px`"
431
+ },
432
+ {
433
+ "name": "defaultSort",
434
+ "type": "SortModelItem[]",
435
+ "default": "undefined",
436
+ "required": false,
437
+ "notes": "初始排序(Grid 挂载 / initGrid 时应用一次);当前仅使用首项"
438
+ },
439
+ {
440
+ "name": "sortable",
441
+ "type": "boolean",
442
+ "default": "false",
443
+ "required": false,
444
+ "notes": "列是否参与排序(sort 管线 / 表头 sort 指示器);默认 `false`。"
445
+ },
446
+ {
447
+ "name": "enableHeaderSortClick",
448
+ "type": "boolean",
449
+ "default": "true",
450
+ "required": false,
451
+ "notes": "是否允许用户点击表头 / 键盘 Enter 切换排序;默认 `true`。"
452
+ },
453
+ {
454
+ "name": "columnMovable",
455
+ "type": "boolean",
456
+ "default": "true",
457
+ "required": false,
458
+ "notes": "是否允许用户列表头拖拽重排;默认 true(对齐 AG Grid;`:column-movable=\"false\"` 关闭)"
459
+ },
460
+ {
461
+ "name": "resizable",
462
+ "type": "boolean",
463
+ "default": "true",
464
+ "required": false,
465
+ "notes": "是否允许用户拖拽调整列宽;默认 `true`(对齐 AG Grid `defaultColDef.resizable`)。"
466
+ },
467
+ {
468
+ "name": "colResizeDefault",
469
+ "type": "'shift'",
470
+ "default": "undefined",
471
+ "required": false,
472
+ "notes": "默认 Shift 模式:拖拽列宽时相邻列反向补偿,总宽不变。"
473
+ },
474
+ {
475
+ "name": "skipHeaderOnAutoSize",
476
+ "type": "boolean",
477
+ "default": "false",
478
+ "required": false,
479
+ "notes": "双击 resize 把柄 auto-size 时跳过表头宽度;对标 AG Grid skipHeaderOnAutoSize"
480
+ },
481
+ {
482
+ "name": "autoSizePadding",
483
+ "type": "number",
484
+ "default": "undefined",
485
+ "required": false,
486
+ "notes": "auto-size 内容测量额外 padding(px);对标 AG Grid autoSizePadding"
487
+ },
488
+ {
489
+ "name": "autoSizeStrategy",
490
+ "type": "AutoSizeStrategy",
491
+ "default": "undefined",
492
+ "required": false,
493
+ "notes": "挂载 / 首屏 auto-size 策略;对标 AG Grid autoSizeStrategy"
494
+ },
495
+ {
496
+ "name": "suppressMoveWhenColumnDragging",
497
+ "type": "boolean",
498
+ "default": "false",
499
+ "required": false,
500
+ "notes": "默认 false(drag 过程中 live move,对齐 AG Grid)。"
501
+ },
502
+ {
503
+ "name": "suppressColumnMoveAnimation",
504
+ "type": "boolean",
505
+ "default": "false",
506
+ "required": false,
507
+ "notes": "默认 false;true 关闭列移动 transition"
508
+ },
509
+ {
510
+ "name": "allowCrossLaneColumnMove",
511
+ "type": "boolean",
512
+ "default": "false",
513
+ "required": false,
514
+ "notes": "默认 false。"
515
+ },
516
+ {
517
+ "name": "showUnsortedSortHintOnHover",
518
+ "type": "boolean",
519
+ "default": "false",
520
+ "required": false,
521
+ "notes": "默认 false;true → 未排序 sortable 列 hover 显示 faint 双三角"
522
+ },
523
+ {
524
+ "name": "quickFilterText",
525
+ "type": "string",
526
+ "default": "''",
527
+ "required": false,
528
+ "notes": "Grid 级 quick filter 文本"
529
+ },
530
+ {
531
+ "name": "filterable",
532
+ "type": "boolean",
533
+ "default": "false",
534
+ "required": false,
535
+ "notes": "是否允许列筛选;默认 `false`。"
536
+ },
537
+ {
538
+ "name": "floatingFilter",
539
+ "type": "boolean",
540
+ "default": "false",
541
+ "required": false,
542
+ "notes": "表头下方 Floating Filter 行;默认 `false`"
543
+ },
544
+ {
545
+ "name": "filterSetValueMode",
546
+ "type": "FilterSetValueMode",
547
+ "default": "'current'",
548
+ "required": false,
549
+ "notes": "值选择搜索时的勾选投影模式;默认 `current`"
550
+ },
551
+ {
552
+ "name": "filterSetDateLayoutMode",
553
+ "type": "FilterSetDateLayoutMode",
554
+ "default": "'tree'",
555
+ "required": false,
556
+ "notes": "日期列值选择展示方式;默认 `tree`"
557
+ },
558
+ {
559
+ "name": "showStatusBar",
560
+ "type": "boolean",
561
+ "default": "true",
562
+ "required": false,
563
+ "notes": "是否显示底部状态栏;默认 true"
564
+ },
565
+ {
566
+ "name": "showDefaultStatusBarPanels",
567
+ "type": "boolean",
568
+ "default": "true",
569
+ "required": false,
570
+ "notes": "显示默认状态栏左侧面板(行数 / 筛选态 / 选中数);默认 true"
571
+ },
572
+ {
573
+ "name": "statusBarHeight",
574
+ "type": "StatusBarHeightInput",
575
+ "default": "'auto'",
576
+ "required": false,
577
+ "notes": "状态栏高度:`'auto'` 跟随 size preset(默认);number 为自定义 px。"
578
+ },
579
+ {
580
+ "name": "showStatusBarRangeAggregation",
581
+ "type": "boolean",
582
+ "default": "true",
583
+ "required": false,
584
+ "notes": "框选时在状态栏展示平均值/计数/求和;cellSelection 开时默认 true"
585
+ },
586
+ {
587
+ "name": "statusBarRangeAggregationPosition",
588
+ "type": "StatusBarRangeAggregationPosition",
589
+ "default": "'right'",
590
+ "required": false,
591
+ "notes": "框选聚合 panel 位置;默认 `right`(右栏内侧)"
592
+ },
593
+ {
594
+ "name": "statusBarRangeAggregationPrecision",
595
+ "type": "StatusBarRangeAggregationPrecisionInput",
596
+ "default": "undefined",
597
+ "required": false,
598
+ "notes": "平均值 / 求和展示小数位数。"
599
+ },
600
+ {
601
+ "name": "rowDragManaged",
602
+ "type": "boolean",
603
+ "default": "true",
604
+ "required": false,
605
+ "notes": "启用 managed 行拖拽:拖拽过程中实时改 source 顺序;默认 true。"
606
+ },
607
+ {
608
+ "name": "getRowHeight",
609
+ "type": "GetRowHeightFn",
610
+ "default": "undefined",
611
+ "required": false,
612
+ "notes": "行级动态高度(无 DOM);优先于默认 rowHeight,低于手动 setRowHeight。"
613
+ },
614
+ {
615
+ "name": "rowHeightMin",
616
+ "type": "number",
617
+ "default": "undefined",
618
+ "required": false,
619
+ "notes": "行高下限(px);未传时跟随 size preset / rowHeight"
620
+ },
621
+ {
622
+ "name": "rowHeightMax",
623
+ "type": "number",
624
+ "default": "undefined",
625
+ "required": false,
626
+ "notes": "行高上限(px);未传时无上限"
627
+ },
628
+ {
629
+ "name": "enableCellSpan",
630
+ "type": "boolean",
631
+ "default": "false",
632
+ "required": false,
633
+ "notes": "启用单元格合并。默认 `false`。"
634
+ },
635
+ {
636
+ "name": "enableCellEditorCache",
637
+ "type": "boolean",
638
+ "default": "false",
639
+ "required": false,
640
+ "notes": "为所有 overlay 列注入 cell editor cache API(get/set/clear)。"
641
+ },
642
+ {
643
+ "name": "cellEditorCacheMaxEntries",
644
+ "type": "number",
645
+ "default": "undefined",
646
+ "required": false,
647
+ "notes": "会话缓存最大条目数;超出时 LRU 淘汰。默认不限。"
648
+ },
649
+ {
650
+ "name": "masterDetail",
651
+ "type": "boolean",
652
+ "default": "false",
653
+ "required": false,
654
+ "notes": "启用主从展开行。默认 `false`。"
655
+ },
656
+ {
657
+ "name": "isRowMaster",
658
+ "type": "IsRowMasterFn",
659
+ "default": "undefined",
660
+ "required": false,
661
+ "notes": "是否为主行(可展示 expand 控件);缺省全部 data 行可展开"
662
+ },
663
+ {
664
+ "name": "masterDefaultExpanded",
665
+ "type": "number",
666
+ "default": "undefined",
667
+ "required": false,
668
+ "notes": "默认展开层级:0 = 无;1 = 第一层;-1 = 全部"
669
+ },
670
+ {
671
+ "name": "detailRowHeight",
672
+ "type": "number | DetailRowHeightFn",
673
+ "default": "undefined",
674
+ "required": false,
675
+ "notes": "详情行固定高度(px);与 detailRowAutoHeight 并存时本字段优先"
676
+ },
677
+ {
678
+ "name": "detailRowAutoHeight",
679
+ "type": "boolean",
680
+ "default": "undefined",
681
+ "required": false,
682
+ "notes": "详情行按内容自动撑高"
683
+ },
684
+ {
685
+ "name": "embedFullWidthRows",
686
+ "type": "boolean",
687
+ "default": "undefined",
688
+ "required": false,
689
+ "notes": "false(默认):详情 overlay 不随 center 横滚。"
690
+ },
691
+ {
692
+ "name": "showExpandColumn",
693
+ "type": "boolean",
694
+ "default": "undefined",
695
+ "required": false,
696
+ "notes": "最左展示专用展开列(fixed=left)"
697
+ },
698
+ {
699
+ "name": "getDetailRowData",
700
+ "type": "GetDetailRowDataFn",
701
+ "default": "undefined",
702
+ "required": false,
703
+ "notes": "异步提供详情区数据"
704
+ },
705
+ {
706
+ "name": "detailCellRenderer",
707
+ "type": "DetailCellRendererFn",
708
+ "default": "undefined",
709
+ "required": false,
710
+ "notes": "自定义详情行渲染器(与 `#detail-row` 插槽二选一)"
711
+ },
712
+ {
713
+ "name": "loadMoreRow",
714
+ "type": "{",
715
+ "required": false,
716
+ "notes": "CSRM · display 末尾加载更多行(enabled / height / loading / hasMore / labels)"
717
+ },
718
+ {
719
+ "name": "loadMoreRowRenderer",
720
+ "type": "LoadMoreRowRendererFn",
721
+ "default": "undefined",
722
+ "required": false,
723
+ "notes": "自定义 load-more 行渲染(与 `#load-more-row` 插槽二选一)"
724
+ },
725
+ {
726
+ "name": "rowGrouping",
727
+ "type": "boolean",
728
+ "default": "false",
729
+ "required": false,
730
+ "notes": "启用行分组。默认 `false`。"
731
+ },
732
+ {
733
+ "name": "groupDefaultExpanded",
734
+ "type": "number",
735
+ "default": "undefined",
736
+ "required": false,
737
+ "notes": "默认展开分组层级:0 = 全折叠;1 = 第一层;-1 = 全部展开。默认 `-1`"
738
+ },
739
+ {
740
+ "name": "showGroupHeader",
741
+ "type": "boolean",
742
+ "default": "false",
743
+ "required": false,
744
+ "notes": "是否展示 groupHeader 分组标题行。默认 `false`"
745
+ },
746
+ {
747
+ "name": "showGroupFooter",
748
+ "type": "boolean",
749
+ "default": "false",
750
+ "required": false,
751
+ "notes": "是否为每个已展开的分组展示 footer 汇总行。默认 `false`"
752
+ },
753
+ {
754
+ "name": "groupDisplayType",
755
+ "type": "GroupDisplayType",
756
+ "default": "undefined",
757
+ "required": false,
758
+ "notes": "分组展示模式。当前仅支持 `singleColumn`。"
759
+ },
760
+ {
761
+ "name": "showGroupColumn",
762
+ "type": "boolean",
763
+ "default": "false",
764
+ "required": false,
765
+ "notes": "是否展示 auto group 系统列;默认 false"
766
+ },
767
+ {
768
+ "name": "autoGroupColumnDef",
769
+ "type": "Partial<ColumnDef<TData>>",
770
+ "default": "undefined",
771
+ "required": false,
772
+ "notes": "覆盖 auto group 列的 colDef"
773
+ },
774
+ {
775
+ "name": "groupKeyCreator",
776
+ "type": "GroupKeyCreatorFn",
777
+ "default": "undefined",
778
+ "required": false,
779
+ "notes": "分组键归一化(可选)"
780
+ },
781
+ {
782
+ "name": "groupComparator",
783
+ "type": "GroupComparatorFn",
784
+ "default": "undefined",
785
+ "required": false,
786
+ "notes": "同级 group 节点排序。缺省按 groupKey 升序(blank 置末)。"
787
+ },
788
+ {
789
+ "name": "groupSortKey",
790
+ "type": "string",
791
+ "default": "undefined",
792
+ "required": false,
793
+ "notes": "组内 leaf 排序字段(如 sortNumber);未配置则不处理"
794
+ },
795
+ {
796
+ "name": "groupFooterLabel",
797
+ "type": "string",
798
+ "default": "undefined",
799
+ "required": false,
800
+ "notes": "groupFooter 首列展示标签"
801
+ },
802
+ {
803
+ "name": "groupCellRenderer",
804
+ "type": "GroupCellRendererFn",
805
+ "default": "undefined",
806
+ "required": false,
807
+ "notes": "自定义分组单元格渲染器"
808
+ },
809
+ {
810
+ "name": "tree",
811
+ "type": "boolean",
812
+ "default": "false",
813
+ "required": false,
814
+ "notes": "启用树形表格。默认 `false`。"
815
+ },
816
+ {
817
+ "name": "getDataPath",
818
+ "type": "GetDataPathFn",
819
+ "default": "undefined",
820
+ "required": false,
821
+ "notes": "树形路径回调;`tree: true` 时必填"
822
+ },
823
+ {
824
+ "name": "showTreeColumn",
825
+ "type": "boolean",
826
+ "default": "undefined",
827
+ "required": false,
828
+ "notes": "是否展示 tree 系统列。默认 `true`"
829
+ },
830
+ {
831
+ "name": "autoTreeColumnDef",
832
+ "type": "Partial<ColumnDef<TData>>",
833
+ "default": "undefined",
834
+ "required": false,
835
+ "notes": "覆盖 tree 系统列 colDef"
836
+ },
837
+ {
838
+ "name": "treeValueGetter",
839
+ "type": "TreeValueGetterFn",
840
+ "default": "undefined",
841
+ "required": false,
842
+ "notes": "自定义 tree 列展示值"
843
+ },
844
+ {
845
+ "name": "treeDisplayType",
846
+ "type": "TreeDisplayType",
847
+ "default": "undefined",
848
+ "required": false,
849
+ "notes": "树节点展示列模式。当前仅支持 `singleColumn`"
850
+ },
851
+ {
852
+ "name": "treeDragScope",
853
+ "type": "TreeDragScope",
854
+ "default": "undefined",
855
+ "required": false,
856
+ "notes": "树形 managed 行拖拽范围。默认 `siblings`(仅同 parent 兄弟换序);"
857
+ },
858
+ {
859
+ "name": "treeHierarchyActions",
860
+ "type": "boolean",
861
+ "default": "undefined",
862
+ "required": false,
863
+ "notes": "hierarchy 模式下在 tree 列展示 settings 层级菜单(上移一级 / 下移一级)。"
864
+ },
865
+ {
866
+ "name": "setDataPath",
867
+ "type": "SetDataPathFn",
868
+ "default": "undefined",
869
+ "required": false,
870
+ "notes": "hierarchy 模式下写回 dataPath;缺省时若 data.pathSegments 为数组则自动更新"
871
+ },
872
+ {
873
+ "name": "treeLazyLoad",
874
+ "type": "boolean",
875
+ "default": "false",
876
+ "required": false,
877
+ "notes": "启用树形懒加载"
878
+ },
879
+ {
880
+ "name": "hasTreeChildren",
881
+ "type": "HasTreeChildrenFn",
882
+ "default": "undefined",
883
+ "required": false,
884
+ "notes": "lazy 模式:节点是否可能有未加载子行"
885
+ },
886
+ {
887
+ "name": "loadTreeChildren",
888
+ "type": "LoadTreeChildrenFn",
889
+ "default": "undefined",
890
+ "required": false,
891
+ "notes": "lazy 模式:首次展开时拉取子数据"
892
+ },
893
+ {
894
+ "name": "cellCommentsDataSource",
895
+ "type": "CellCommentsDataSource",
896
+ "default": "undefined",
897
+ "required": false,
898
+ "notes": "单元格批注数据源;提供即启用"
899
+ },
900
+ {
901
+ "name": "suppressCellComments",
902
+ "type": "boolean",
903
+ "default": "false",
904
+ "required": false,
905
+ "notes": "全局抑制批注交互;API 仍可 bypass"
906
+ },
907
+ {
908
+ "name": "cellCommentTrigger",
909
+ "type": "CellCommentTrigger",
910
+ "default": "'click'",
911
+ "required": false,
912
+ "notes": "查看已有批注的触发方式;默认 click(点角标 toggle)"
913
+ },
914
+ {
915
+ "name": "cellCommentShowDelay",
916
+ "type": "number",
917
+ "default": "undefined",
918
+ "required": false,
919
+ "notes": "hover 模式展示延迟 ms;默认 180"
920
+ },
921
+ {
922
+ "name": "cellCommentHideDelay",
923
+ "type": "number",
924
+ "default": "undefined",
925
+ "required": false,
926
+ "notes": "离开 cell/popup 后隐藏延迟 ms;默认 220"
927
+ },
928
+ {
929
+ "name": "cellSelection",
930
+ "type": "boolean | CellSelectionOptions",
931
+ "default": "true",
932
+ "required": false,
933
+ "notes": "单元格框选;MagicGrid 默认 true(含 enableColumnSelection,handleMode 默认 off),Grid API 未传时为 false"
934
+ },
935
+ {
936
+ "name": "enableCellCopy",
937
+ "type": "boolean",
938
+ "default": "undefined",
939
+ "required": false,
940
+ "notes": "框选复制;cellSelection 开启时默认 true"
941
+ },
942
+ {
943
+ "name": "enableCellPaste",
944
+ "type": "boolean",
945
+ "default": "undefined",
946
+ "required": false,
947
+ "notes": "框选粘贴;cellSelection 开启时默认 false"
948
+ },
949
+ {
950
+ "name": "enableHeaderHighlight",
951
+ "type": "boolean",
952
+ "default": "true",
953
+ "required": false,
954
+ "notes": "选区涉及列的表头底色;默认 true"
955
+ },
956
+ {
957
+ "name": "enableIndexColumnHighlight",
958
+ "type": "boolean",
959
+ "default": "true",
960
+ "required": false,
961
+ "notes": "选区行跨度内索引列高亮;默认 true"
962
+ },
963
+ {
964
+ "name": "processCellForClipboard",
965
+ "type": "ProcessCellForClipboardFn",
966
+ "default": "undefined",
967
+ "required": false,
968
+ "notes": "复制单格时自定义导出值(最高优先级)"
969
+ },
970
+ {
971
+ "name": "processCellFromClipboard",
972
+ "type": "ProcessCellFromClipboardFn",
973
+ "default": "undefined",
974
+ "required": false,
975
+ "notes": "粘贴单格时预处理 clipboard 字符串"
976
+ },
977
+ {
978
+ "name": "processDataFromClipboard",
979
+ "type": "ProcessDataFromClipboardFn",
980
+ "default": "undefined",
981
+ "required": false,
982
+ "notes": "整表粘贴前处理 TSV 矩阵;return null 取消粘贴"
983
+ },
984
+ {
985
+ "name": "enableTooltips",
986
+ "type": "boolean",
987
+ "default": "undefined",
988
+ "required": false,
989
+ "notes": "是否启用溢出 tooltip;默认 true"
990
+ },
991
+ {
992
+ "name": "tooltipShowMode",
993
+ "type": "TooltipShowMode",
994
+ "default": "undefined",
995
+ "required": false,
996
+ "notes": "溢出 tooltip 显示策略;默认 whenTruncated"
997
+ },
998
+ {
999
+ "name": "tooltipShowDelay",
1000
+ "type": "number",
1001
+ "default": "undefined",
1002
+ "required": false,
1003
+ "notes": "首次 hover 展示延迟 ms;默认 500"
1004
+ },
1005
+ {
1006
+ "name": "tooltipSwitchShowDelay",
1007
+ "type": "number",
1008
+ "default": "undefined",
1009
+ "required": false,
1010
+ "notes": "格间切换展示延迟 ms;默认 200"
1011
+ },
1012
+ {
1013
+ "name": "tooltipHideDelay",
1014
+ "type": "number",
1015
+ "default": "undefined",
1016
+ "required": false,
1017
+ "notes": "离开后隐藏延迟 ms;默认 3000"
1018
+ },
1019
+ {
1020
+ "name": "tooltipInteraction",
1021
+ "type": "boolean",
1022
+ "default": "undefined",
1023
+ "required": false,
1024
+ "notes": "tooltip 内容是否可交互;默认 false"
1025
+ },
1026
+ {
1027
+ "name": "tooltipMouseTrack",
1028
+ "type": "boolean",
1029
+ "default": "undefined",
1030
+ "required": false,
1031
+ "notes": "tooltip 是否跟随鼠标;默认 false"
1032
+ },
1033
+ {
1034
+ "name": "tooltipComponent",
1035
+ "type": "TooltipComponentType",
1036
+ "default": "undefined",
1037
+ "required": false,
1038
+ "notes": "全局自定义 tooltip 组件(与 `#tooltip` 插槽二选一)"
1039
+ },
1040
+ {
1041
+ "name": "tooltipComponentParams",
1042
+ "type": "Record<string, unknown>",
1043
+ "default": "undefined",
1044
+ "required": false,
1045
+ "notes": "全局 tooltip 组件额外参数"
1046
+ },
1047
+ {
1048
+ "name": "loading",
1049
+ "type": "boolean",
1050
+ "default": "undefined",
1051
+ "required": false,
1052
+ "notes": "是否显示 loading overlay;undefined 为挂载后首次 setData 前自动 loading"
1053
+ },
1054
+ {
1055
+ "name": "suppressOverlays",
1056
+ "type": "OverlayType[]",
1057
+ "default": "undefined",
1058
+ "required": false,
1059
+ "notes": "逐项抑制内置 overlay"
1060
+ },
1061
+ {
1062
+ "name": "suppressLoadingOverlay",
1063
+ "type": "boolean",
1064
+ "default": "undefined",
1065
+ "required": false,
1066
+ "notes": "抑制 loading overlay"
1067
+ },
1068
+ {
1069
+ "name": "suppressNoRowsOverlay",
1070
+ "type": "boolean",
1071
+ "default": "undefined",
1072
+ "required": false,
1073
+ "notes": "抑制无数据 overlay"
1074
+ },
1075
+ {
1076
+ "name": "suppressNoMatchingRowsOverlay",
1077
+ "type": "boolean",
1078
+ "default": "undefined",
1079
+ "required": false,
1080
+ "notes": "抑制无匹配行 overlay(filter 后为空)"
1081
+ },
1082
+ {
1083
+ "name": "overlayLoadingTemplate",
1084
+ "type": "string",
1085
+ "default": "undefined",
1086
+ "required": false,
1087
+ "notes": "loading overlay 内置 HTML 模板"
1088
+ },
1089
+ {
1090
+ "name": "overlayNoRowsTemplate",
1091
+ "type": "string",
1092
+ "default": "undefined",
1093
+ "required": false,
1094
+ "notes": "无数据 overlay 内置 HTML 模板"
1095
+ },
1096
+ {
1097
+ "name": "overlayNoMatchingRowsTemplate",
1098
+ "type": "string",
1099
+ "default": "undefined",
1100
+ "required": false,
1101
+ "notes": "无匹配行 overlay 内置 HTML 模板"
1102
+ },
1103
+ {
1104
+ "name": "overlayInteraction",
1105
+ "type": "boolean",
1106
+ "default": "undefined",
1107
+ "required": false,
1108
+ "notes": "overlay 内容是否可交互(默认可穿透)"
1109
+ },
1110
+ {
1111
+ "name": "loadingOverlayComponent",
1112
+ "type": "OverlayComponentType",
1113
+ "default": "undefined",
1114
+ "required": false,
1115
+ "notes": "自定义 loading overlay 组件"
1116
+ },
1117
+ {
1118
+ "name": "loadingOverlayComponentParams",
1119
+ "type": "Record<string, unknown>",
1120
+ "default": "undefined",
1121
+ "required": false,
1122
+ "notes": "loading overlay 组件额外参数"
1123
+ },
1124
+ {
1125
+ "name": "noRowsOverlayComponent",
1126
+ "type": "OverlayComponentType",
1127
+ "default": "undefined",
1128
+ "required": false,
1129
+ "notes": "自定义无数据 overlay 组件"
1130
+ },
1131
+ {
1132
+ "name": "noRowsOverlayComponentParams",
1133
+ "type": "Record<string, unknown>",
1134
+ "default": "undefined",
1135
+ "required": false,
1136
+ "notes": "无数据 overlay 组件额外参数"
1137
+ },
1138
+ {
1139
+ "name": "noMatchingRowsOverlayComponent",
1140
+ "type": "OverlayComponentType",
1141
+ "default": "undefined",
1142
+ "required": false,
1143
+ "notes": "自定义无匹配行 overlay 组件"
1144
+ },
1145
+ {
1146
+ "name": "noMatchingRowsOverlayComponentParams",
1147
+ "type": "Record<string, unknown>",
1148
+ "default": "undefined",
1149
+ "required": false,
1150
+ "notes": "无匹配行 overlay 组件额外参数"
1151
+ },
1152
+ {
1153
+ "name": "overlayComponent",
1154
+ "type": "OverlayComponentType",
1155
+ "default": "undefined",
1156
+ "required": false,
1157
+ "notes": "通用 overlay 组件(按类型分发)"
1158
+ },
1159
+ {
1160
+ "name": "overlayComponentParams",
1161
+ "type": "Record<string, unknown>",
1162
+ "default": "undefined",
1163
+ "required": false,
1164
+ "notes": "通用 overlay 组件额外参数"
1165
+ }
1166
+ ],
1167
+ "emits": [
1168
+ {
1169
+ "name": "scroll",
1170
+ "payloadType": "event: ScrollEvent"
1171
+ },
1172
+ {
1173
+ "name": "scroll-start",
1174
+ "payloadType": "event: ScrollStartEvent"
1175
+ },
1176
+ {
1177
+ "name": "scroll-end",
1178
+ "payloadType": "event: ScrollEndEvent"
1179
+ },
1180
+ {
1181
+ "name": "scroll-top",
1182
+ "payloadType": "event: ScrollTopEvent"
1183
+ },
1184
+ {
1185
+ "name": "scroll-bottom",
1186
+ "payloadType": "event: ScrollBottomEvent"
1187
+ },
1188
+ {
1189
+ "name": "load-more",
1190
+ "payloadType": "event: LoadMoreEvent"
1191
+ },
1192
+ {
1193
+ "name": "data-rendered",
1194
+ "payloadType": "metrics: GridMetrics"
1195
+ },
1196
+ {
1197
+ "name": "grid-ready",
1198
+ "payloadType": "event: GridReadyEvent"
1199
+ },
1200
+ {
1201
+ "name": "grid-destroyed",
1202
+ "payloadType": "event: GridDestroyedEvent"
1203
+ },
1204
+ {
1205
+ "name": "first-rendered",
1206
+ "payloadType": "event: FirstRenderedEvent"
1207
+ },
1208
+ {
1209
+ "name": "cell-clicked",
1210
+ "payloadType": "event: CellClickedEvent"
1211
+ },
1212
+ {
1213
+ "name": "row-click",
1214
+ "payloadType": "event: RowClickedEvent"
1215
+ },
1216
+ {
1217
+ "name": "row-dblclick",
1218
+ "payloadType": "event: RowDoubleClickedEvent"
1219
+ },
1220
+ {
1221
+ "name": "selection-changed",
1222
+ "payloadType": "event: SelectionChangedEvent"
1223
+ },
1224
+ {
1225
+ "name": "index-focus-changed",
1226
+ "payloadType": "event: IndexFocusChangedEvent"
1227
+ },
1228
+ {
1229
+ "name": "cell-value-changed",
1230
+ "payloadType": "event: CellValueChangedEvent"
1231
+ },
1232
+ {
1233
+ "name": "row-data-changed",
1234
+ "payloadType": "event: RowDataChangedEvent"
1235
+ },
1236
+ {
1237
+ "name": "rows-data-changed",
1238
+ "payloadType": "event: RowsDataChangedEvent"
1239
+ },
1240
+ {
1241
+ "name": "cell-editing-started",
1242
+ "payloadType": "event: CellEditingStartedEvent"
1243
+ },
1244
+ {
1245
+ "name": "cell-editing-stopped",
1246
+ "payloadType": "event: CellEditingStoppedEvent"
1247
+ },
1248
+ {
1249
+ "name": "cell-commit-started",
1250
+ "payloadType": "event: CellCommitStartedEvent"
1251
+ },
1252
+ {
1253
+ "name": "cell-commit-finished",
1254
+ "payloadType": "event: CellCommitFinishedEvent"
1255
+ },
1256
+ {
1257
+ "name": "edit-commit-aborted",
1258
+ "payloadType": "event: EditCommitAbortedEvent"
1259
+ },
1260
+ {
1261
+ "name": "row-commit-started",
1262
+ "payloadType": "event: RowCommitStartedEvent"
1263
+ },
1264
+ {
1265
+ "name": "row-commit-finished",
1266
+ "payloadType": "event: RowCommitFinishedEvent"
1267
+ },
1268
+ {
1269
+ "name": "row-editing-started",
1270
+ "payloadType": "event: RowEditingStartedEvent"
1271
+ },
1272
+ {
1273
+ "name": "row-editing-stopped",
1274
+ "payloadType": "event: RowEditingStoppedEvent"
1275
+ },
1276
+ {
1277
+ "name": "row-value-changed",
1278
+ "payloadType": "event: RowValueChangedEvent"
1279
+ },
1280
+ {
1281
+ "name": "cell-validation-failed",
1282
+ "payloadType": "event: CellValidationFailedEvent"
1283
+ },
1284
+ {
1285
+ "name": "row-validation-failed",
1286
+ "payloadType": "event: RowValidationFailedEvent"
1287
+ },
1288
+ {
1289
+ "name": "sort-changed",
1290
+ "payloadType": "model: SortModelItem["
1291
+ },
1292
+ {
1293
+ "name": "column-moved",
1294
+ "payloadType": "event: ColumnMovedEvent"
1295
+ },
1296
+ {
1297
+ "name": "column-resized",
1298
+ "payloadType": "event: ColumnResizedEvent"
1299
+ },
1300
+ {
1301
+ "name": "column-pinned",
1302
+ "payloadType": "event: ColumnPinnedEvent"
1303
+ },
1304
+ {
1305
+ "name": "column-hidden-changed",
1306
+ "payloadType": "event: ColumnHiddenChangedEvent"
1307
+ },
1308
+ {
1309
+ "name": "filter-changed",
1310
+ "payloadType": "model: FilterModel"
1311
+ },
1312
+ {
1313
+ "name": "rows-added",
1314
+ "payloadType": "event: RowsAddedEvent"
1315
+ },
1316
+ {
1317
+ "name": "rows-removed",
1318
+ "payloadType": "event: RowsRemovedEvent"
1319
+ },
1320
+ {
1321
+ "name": "row-id-promoted",
1322
+ "payloadType": "event: RowIdPromotedEvent"
1323
+ },
1324
+ {
1325
+ "name": "row-moved",
1326
+ "payloadType": "event: RowMovedEvent"
1327
+ },
1328
+ {
1329
+ "name": "row-drag-end",
1330
+ "payloadType": "event: RowDragEndEvent"
1331
+ },
1332
+ {
1333
+ "name": "row-drag-commit-started",
1334
+ "payloadType": "event: RowDragCommitStartedEvent"
1335
+ },
1336
+ {
1337
+ "name": "row-drag-commit-finished",
1338
+ "payloadType": "event: RowDragCommitFinishedEvent"
1339
+ },
1340
+ {
1341
+ "name": "row-height-changed",
1342
+ "payloadType": "event: RowHeightChangedEvent"
1343
+ },
1344
+ {
1345
+ "name": "row-expanded",
1346
+ "payloadType": "event: RowExpansionChangedEvent"
1347
+ },
1348
+ {
1349
+ "name": "row-collapsed",
1350
+ "payloadType": "event: RowExpansionChangedEvent"
1351
+ },
1352
+ {
1353
+ "name": "row-group-opened",
1354
+ "payloadType": "event: RowGroupOpenedEvent"
1355
+ },
1356
+ {
1357
+ "name": "row-group-changed",
1358
+ "payloadType": "event: RowGroupChangedEvent"
1359
+ },
1360
+ {
1361
+ "name": "tree-node-opened",
1362
+ "payloadType": "event: TreeNodeOpenedEvent"
1363
+ },
1364
+ {
1365
+ "name": "tree-children-loading",
1366
+ "payloadType": "event: TreeChildrenLoadingEvent"
1367
+ },
1368
+ {
1369
+ "name": "tree-children-loaded",
1370
+ "payloadType": "event: TreeChildrenLoadedEvent"
1371
+ },
1372
+ {
1373
+ "name": "tree-children-load-failed",
1374
+ "payloadType": "event: TreeChildrenLoadFailedEvent"
1375
+ },
1376
+ {
1377
+ "name": "cell-comment-changed",
1378
+ "payloadType": "event: CellCommentChangedEvent"
1379
+ },
1380
+ {
1381
+ "name": "cell-selection-changed",
1382
+ "payloadType": "event: CellSelectionChangedEvent"
1383
+ },
1384
+ {
1385
+ "name": "cell-selection-delete-start",
1386
+ "payloadType": "event: CellSelectionDeleteStartEvent"
1387
+ },
1388
+ {
1389
+ "name": "cell-selection-delete-end",
1390
+ "payloadType": "event: CellSelectionDeleteEndEvent"
1391
+ },
1392
+ {
1393
+ "name": "overlay-shown",
1394
+ "payloadType": "event: OverlayShownEvent"
1395
+ },
1396
+ {
1397
+ "name": "overlay-hidden",
1398
+ "payloadType": "event: OverlayHiddenEvent"
1399
+ },
1400
+ {
1401
+ "name": "infinite-block-loading",
1402
+ "payloadType": "event: InfiniteBlockLoadingEvent"
1403
+ },
1404
+ {
1405
+ "name": "infinite-block-loaded",
1406
+ "payloadType": "event: InfiniteBlockLoadedEvent"
1407
+ },
1408
+ {
1409
+ "name": "infinite-block-load-failed",
1410
+ "payloadType": "event: InfiniteBlockLoadFailedEvent"
1411
+ },
1412
+ {
1413
+ "name": "infinite-cache-purged",
1414
+ "payloadType": "event: InfiniteCachePurgedEvent"
1415
+ }
1416
+ ],
1417
+ "slots": [
1418
+ {
1419
+ "name": "#toolbar",
1420
+ "kind": "static",
1421
+ "description": "表格顶部工具栏"
1422
+ },
1423
+ {
1424
+ "name": "#status-bar",
1425
+ "kind": "static",
1426
+ "description": "完全自定义底部状态栏(提供时替换默认布局)"
1427
+ },
1428
+ {
1429
+ "name": "#status-bar-left",
1430
+ "kind": "static",
1431
+ "description": "默认状态栏左侧区域"
1432
+ },
1433
+ {
1434
+ "name": "#status-bar-right",
1435
+ "kind": "static",
1436
+ "description": "默认状态栏右侧区域"
1437
+ },
1438
+ {
1439
+ "name": "#cell-{colId}",
1440
+ "kind": "dynamic",
1441
+ "description": "自定义单元格渲染"
1442
+ },
1443
+ {
1444
+ "name": "#cell-editor-{colId}",
1445
+ "kind": "dynamic",
1446
+ "description": "自定义单元格编辑器"
1447
+ },
1448
+ {
1449
+ "name": "#detail-row",
1450
+ "kind": "static",
1451
+ "description": "主从展开行详情区"
1452
+ },
1453
+ {
1454
+ "name": "#tooltip",
1455
+ "kind": "static",
1456
+ "description": "全局自定义 tooltip"
1457
+ },
1458
+ {
1459
+ "name": "#loading",
1460
+ "kind": "static",
1461
+ "description": "loading overlay 内容"
1462
+ },
1463
+ {
1464
+ "name": "#no-rows",
1465
+ "kind": "static",
1466
+ "description": "无数据 overlay 内容"
1467
+ },
1468
+ {
1469
+ "name": "#no-matching-rows",
1470
+ "kind": "static",
1471
+ "description": "筛选无匹配 overlay 内容"
1472
+ }
1473
+ ],
1474
+ "expose": [
1475
+ {
1476
+ "name": "api",
1477
+ "type": "GridApi | undefined",
1478
+ "notes": "GridApi 实例;挂载后可用"
1479
+ },
1480
+ {
1481
+ "name": "getMetrics",
1482
+ "type": "() => GridMetrics | undefined",
1483
+ "notes": "读取 Grid 运行时性能指标"
1484
+ },
1485
+ {
1486
+ "name": "scrollTo",
1487
+ "type": "(scrollTop: number, scrollLeft?: number) => void",
1488
+ "notes": "滚动到指定 scrollTop / scrollLeft(px)"
1489
+ },
1490
+ {
1491
+ "name": "setSortModel",
1492
+ "type": "(model: SortModelItem[]) => void",
1493
+ "notes": "设置排序模型并重算 rowsToDisplay"
1494
+ },
1495
+ {
1496
+ "name": "getSortModel",
1497
+ "type": "() => SortModelItem[]",
1498
+ "notes": "读取当前排序模型"
1499
+ },
1500
+ {
1501
+ "name": "setFilterModel",
1502
+ "type": "(model: FilterModel) => void",
1503
+ "notes": "设置筛选模型并重算 rowsToDisplay"
1504
+ },
1505
+ {
1506
+ "name": "getData",
1507
+ "type": "(options?: GetDataOptions) => RowData[]",
1508
+ "notes": "导出当前表格业务数据;等价于 `api.getData()`"
1509
+ },
1510
+ {
1511
+ "name": "applyTransaction",
1512
+ "type": "(transaction: RowTransaction) => Promise<RowNodeTransaction | undefined>",
1513
+ "notes": "批量增删改行;返回本次事务影响的 RowNode 快照"
1514
+ },
1515
+ {
1516
+ "name": "beginUpdate",
1517
+ "type": "() => void",
1518
+ "notes": "开启批量更新(合并多次 DOM 刷新)"
1519
+ },
1520
+ {
1521
+ "name": "endUpdate",
1522
+ "type": "() => void",
1523
+ "notes": "结束批量更新并刷新"
1524
+ },
1525
+ {
1526
+ "name": "ensureIndexVisible",
1527
+ "type": "(index: number, position?: 'top' | 'bottom' | 'middle') => void",
1528
+ "notes": "滚动使指定 display 行可见"
1529
+ },
1530
+ {
1531
+ "name": "flushFrames",
1532
+ "type": "() => void",
1533
+ "notes": "立即刷新待处理的动画帧任务"
1534
+ },
1535
+ {
1536
+ "name": "getPendingFrameTaskCount",
1537
+ "type": "() => number",
1538
+ "notes": "RAF 队列待处理任务总数"
1539
+ },
1540
+ {
1541
+ "name": "getPendingRendererTaskCount",
1542
+ "type": "() => number",
1543
+ "notes": "f1 队列待处理 cellRenderer 任务数"
1544
+ },
1545
+ {
1546
+ "name": "setDefaultSelectedRows",
1547
+ "type": "GridApi['setDefaultSelectedRows']",
1548
+ "notes": "preset 行选区;见 GridApi.setDefaultSelectedRows"
1549
+ }
1550
+ ],
1551
+ "gridApi": [
1552
+ {
1553
+ "name": "addCellRange",
1554
+ "signature": "addCellRange(params: CellRange) => void",
1555
+ "notes": "追加一个 cell range(非法参数忽略)。"
1556
+ },
1557
+ {
1558
+ "name": "addGroupRows",
1559
+ "signature": "addGroupRows(options: AddGroupRowsOptions) => Promise<RowNodeTransaction>",
1560
+ "notes": "向指定分组内插入一行或多行(组内 leaf 坐标系)。"
1561
+ },
1562
+ {
1563
+ "name": "addGroupRowsByArray",
1564
+ "signature": "addGroupRowsByArray(items: readonly AddGroupRowByArrayItem[], options?: AddGroupRowsByArrayOptions) => Promise<RowNodeTransaction>",
1565
+ "notes": "向指定分组内批量插入,每项可指定独立 target 与组内 index。"
1566
+ },
1567
+ {
1568
+ "name": "addRows",
1569
+ "signature": "addRows(options: AddRowsOptions) => Promise<RowNodeTransaction>",
1570
+ "notes": "在指定位置插入一行或多行。"
1571
+ },
1572
+ {
1573
+ "name": "addRowsByArray",
1574
+ "signature": "addRowsByArray(items: readonly AddRowByArrayItem[], options?: AddRowsByArrayOptions) => Promise<RowNodeTransaction>",
1575
+ "notes": "按数组批量插入行,每项可指定独立插入下标。"
1576
+ },
1577
+ {
1578
+ "name": "applyTransaction",
1579
+ "signature": "applyTransaction(tx: RowTransaction) => Promise<RowNodeTransaction>",
1580
+ "notes": "增量事务:add / update / remove。"
1581
+ },
1582
+ {
1583
+ "name": "autoSizeColumn",
1584
+ "signature": "autoSizeColumn(colId: string, skipHeader?: boolean) => void",
1585
+ "notes": "按当前可见单元格内容自动调整列宽(Phase 14+ · 对标 autoSizeColumn)"
1586
+ },
1587
+ {
1588
+ "name": "autoSizeColumns",
1589
+ "signature": "autoSizeColumns(colIds: readonly string[], skipHeader?: boolean) => void",
1590
+ "notes": "批量 auto-size(Phase 14+ · 对标 autoSizeColumns)"
1591
+ },
1592
+ {
1593
+ "name": "awaitCommitIdle",
1594
+ "signature": "awaitCommitIdle() => Promise<void>",
1595
+ "notes": "等待当前编辑 commit 管线结束(无编辑态且非 committing)。"
1596
+ },
1597
+ {
1598
+ "name": "beginUpdate",
1599
+ "signature": "beginUpdate() => void",
1600
+ "notes": "开启批量更新:多次 `applyTransaction` / `addRows` 合并为一次重绘。"
1601
+ },
1602
+ {
1603
+ "name": "cancelCommit",
1604
+ "signature": "cancelCommit() => void",
1605
+ "notes": "中断进行中的异步提交,保持编辑态与编辑器焦点。"
1606
+ },
1607
+ {
1608
+ "name": "clearAllCellEditorCache",
1609
+ "signature": "clearAllCellEditorCache() => void",
1610
+ "notes": "清除当前 Grid 实例全部 cell editor cache(等价于 reinit / destroy 前全清)。"
1611
+ },
1612
+ {
1613
+ "name": "clearAllFilters",
1614
+ "signature": "clearAllFilters() => void",
1615
+ "notes": "清除全部筛选:列 filterModel + quickFilterText。"
1616
+ },
1617
+ {
1618
+ "name": "clearCellEditorCache",
1619
+ "signature": "clearCellEditorCache(rowId?: RowId, colId?: string, key?: string) => void",
1620
+ "notes": "按范围清除 cell editor cache。"
1621
+ },
1622
+ {
1623
+ "name": "clearCellSelection",
1624
+ "signature": "clearCellSelection() => void",
1625
+ "notes": "清除全部 cell range。"
1626
+ },
1627
+ {
1628
+ "name": "clearCellStyles",
1629
+ "signature": "clearCellStyles(params?: ClearCellStylesParams) => void",
1630
+ "notes": "清除 API 临时高亮;省略 params 时清除全部 override。"
1631
+ },
1632
+ {
1633
+ "name": "clearCellValidation",
1634
+ "signature": "clearCellValidation(options: ClearCellValidationOptions) => void",
1635
+ "notes": "清除指定单元格的校验视觉反馈。"
1636
+ },
1637
+ {
1638
+ "name": "clearPendingDefaultSelectedRows",
1639
+ "signature": "clearPendingDefaultSelectedRows() => void",
1640
+ "notes": "清除待满足的 preset(如移除 `default-selected-rows` prop 时)"
1641
+ },
1642
+ {
1643
+ "name": "clearRowSelection",
1644
+ "signature": "clearRowSelection(options?: ClearRowSelectionOptions) => void",
1645
+ "notes": "清空行 checkbox 选中。"
1646
+ },
1647
+ {
1648
+ "name": "clearRowValidation",
1649
+ "signature": "clearRowValidation(options: ClearRowValidationOptions) => void",
1650
+ "notes": "清除指定行的校验视觉反馈。"
1651
+ },
1652
+ {
1653
+ "name": "clearValidation",
1654
+ "signature": "clearValidation(options?: ClearValidationOptions) => void",
1655
+ "notes": "清除全表或指定行的校验视觉反馈。"
1656
+ },
1657
+ {
1658
+ "name": "collapseAll",
1659
+ "signature": "collapseAll() => void",
1660
+ "notes": "折叠全部已展开主行 / 分组(取决于启用的能力)。"
1661
+ },
1662
+ {
1663
+ "name": "collapseGroup",
1664
+ "signature": "collapseGroup(groupId: string) => boolean",
1665
+ "notes": "折叠分组节点。"
1666
+ },
1667
+ {
1668
+ "name": "collapseNode",
1669
+ "signature": "collapseNode(rowId: RowId) => boolean",
1670
+ "notes": "折叠 tree 节点。"
1671
+ },
1672
+ {
1673
+ "name": "collapseRow",
1674
+ "signature": "collapseRow(rowId: RowId) => boolean",
1675
+ "notes": "折叠主行;未展开或未启用时返回 `false`。"
1676
+ },
1677
+ {
1678
+ "name": "commit",
1679
+ "signature": "commit(cancel?: boolean) => Promise<boolean>",
1680
+ "notes": "提交或撤销当前编辑内容。"
1681
+ },
1682
+ {
1683
+ "name": "copySelectedRangeToClipboard",
1684
+ "signature": "copySelectedRangeToClipboard() => void",
1685
+ "notes": "复制当前选区到系统剪贴板(TSV)。"
1686
+ },
1687
+ {
1688
+ "name": "destroy",
1689
+ "signature": "destroy() => void",
1690
+ "notes": "销毁 Grid 实例:解绑监听、取消编辑、清理 DOM。"
1691
+ },
1692
+ {
1693
+ "name": "endUpdate",
1694
+ "signature": "endUpdate() => void",
1695
+ "notes": "结束批量更新并 flush 累积的事务。"
1696
+ },
1697
+ {
1698
+ "name": "ensureIndexVisible",
1699
+ "signature": "ensureIndexVisible(index: number, position?: EnsureIndexVisiblePosition) => void",
1700
+ "notes": "滚动使指定**行下标**(`rowsToDisplay` 中的 index)进入视口。"
1701
+ },
1702
+ {
1703
+ "name": "expandAll",
1704
+ "signature": "expandAll() => void",
1705
+ "notes": "展开当前 display 中全部可展开 master 行。"
1706
+ },
1707
+ {
1708
+ "name": "expandGroup",
1709
+ "signature": "expandGroup(groupId: string) => boolean",
1710
+ "notes": "展开分组节点;未启用 rowGrouping 或 groupId 无效时返回 `false`。"
1711
+ },
1712
+ {
1713
+ "name": "expandNode",
1714
+ "signature": "expandNode(rowId: RowId) => boolean",
1715
+ "notes": "展开 tree 节点;未启用 tree 时返回 `false`。"
1716
+ },
1717
+ {
1718
+ "name": "expandRow",
1719
+ "signature": "expandRow(rowId: RowId) => boolean",
1720
+ "notes": "展开主行;非 master 或未启用 `masterDetail` 时返回 `false`。"
1721
+ },
1722
+ {
1723
+ "name": "getCellComment",
1724
+ "signature": "getCellComment(rowId: RowId, colId: string) => CellComment | undefined",
1725
+ "notes": "读取批注;无则 `undefined`。"
1726
+ },
1727
+ {
1728
+ "name": "getCellEditorCache",
1729
+ "signature": "getCellEditorCache<T = unknown>(rowId: RowId, colId: string, key?: string) => T | undefined",
1730
+ "notes": "读取指定单元格会话 cache(Grid 内存 KV,不进 row.data)。"
1731
+ },
1732
+ {
1733
+ "name": "getCellRanges",
1734
+ "signature": "getCellRanges() => CellRange[]",
1735
+ "notes": "读取当前 cell range 列表(0..n)。"
1736
+ },
1737
+ {
1738
+ "name": "getCellSelectionAggregation",
1739
+ "signature": "getCellSelectionAggregation() => CellSelectionAggregation | null",
1740
+ "notes": "Phase 24.1 · 当前框选聚合统计;无选区或未开框选时返回 null。"
1741
+ },
1742
+ {
1743
+ "name": "getCellSpan",
1744
+ "signature": "getCellSpan(rowId: RowId, colId: string) => CellSpanInfo | null",
1745
+ "notes": "Phase 16 · 只读查询 `(rowId, colId)` 所属 span。"
1746
+ },
1747
+ {
1748
+ "name": "getCellStyle",
1749
+ "signature": "getCellStyle(rowId: RowId, colId: string) => CellStyle",
1750
+ "notes": "读取合并后的最终 cellStyle。"
1751
+ },
1752
+ {
1753
+ "name": "getCellStyleOverride",
1754
+ "signature": "getCellStyleOverride(rowId: RowId, colId: string) => CellStyle | undefined",
1755
+ "notes": "仅读取 API override 层;无 override 时 `undefined`。"
1756
+ },
1757
+ {
1758
+ "name": "getColumnDistinctFilterValues",
1759
+ "signature": "getColumnDistinctFilterValues(colId: string) => readonly ColumnFilterValueOption[]",
1760
+ "notes": "Phase 12 · 列 distinct 值(set filter 勾选列表)"
1761
+ },
1762
+ {
1763
+ "name": "getColumnFilter",
1764
+ "signature": "getColumnFilter(colId: string) => FilterCondition | null",
1765
+ "notes": "读取单列筛选条件;未设置时 `null`。"
1766
+ },
1767
+ {
1768
+ "name": "getColumns",
1769
+ "signature": "getColumns() => readonly Column[]",
1770
+ "notes": "Phase 27 · 全量列(含 hidden · 含系统列)"
1771
+ },
1772
+ {
1773
+ "name": "getColumnWidth",
1774
+ "signature": "getColumnWidth(colId: string) => number",
1775
+ "notes": "读取列当前像素宽度(Phase 14)"
1776
+ },
1777
+ {
1778
+ "name": "getData",
1779
+ "signature": "getData(options?: GetDataOptions) => RowData[]",
1780
+ "notes": "导出当前表格数据为业务层 `RowData[]`。"
1781
+ },
1782
+ {
1783
+ "name": "getDataPath",
1784
+ "signature": "getDataPath(rowId: RowId) => string[] | undefined",
1785
+ "notes": "查询行的 dataPath;未启用 tree 时返回 `undefined`。"
1786
+ },
1787
+ {
1788
+ "name": "getDisplayedColumnIds",
1789
+ "signature": "getDisplayedColumnIds() => readonly string[]",
1790
+ "notes": "Phase 22 · 当前 UI 展示的列 id(左→右)"
1791
+ },
1792
+ {
1793
+ "name": "getDisplayedColumns",
1794
+ "signature": "getDisplayedColumns() => readonly Column[]",
1795
+ "notes": "Phase 27 · 当前 UI 展示的列(不含 hidden)"
1796
+ },
1797
+ {
1798
+ "name": "getEditingCell",
1799
+ "signature": "getEditingCell() => {",
1800
+ "notes": "当前主编辑单元格;无编辑时 `null`。rowId 为业务类型(与 data[rowKey] 一致,临时行为 null)。"
1801
+ },
1802
+ {
1803
+ "name": "getEditingCells",
1804
+ "signature": "getEditingCells() => EditingCellPosition[]",
1805
+ "notes": "行编辑模式下所有正在编辑的单元格位置列表。"
1806
+ },
1807
+ {
1808
+ "name": "getEditSessionPhase",
1809
+ "signature": "getEditSessionPhase() => EditSessionPhase",
1810
+ "notes": "当前编辑会话阶段。"
1811
+ },
1812
+ {
1813
+ "name": "getFilterModel",
1814
+ "signature": "getFilterModel() => FilterModel",
1815
+ "notes": "读取当前筛选模型。"
1816
+ },
1817
+ {
1818
+ "name": "getIndexFocusedRowIds",
1819
+ "signature": "getIndexFocusedRowIds(options?: RowListOptions) => RowId[]",
1820
+ "notes": "读取索引列 focus 行 id,可直接传给 `moveRows({ rowIds })`。"
1821
+ },
1822
+ {
1823
+ "name": "getIndexFocusedRows",
1824
+ "signature": "getIndexFocusedRows(options?: RowListOptions) => RowSnapshot[]",
1825
+ "notes": "读取索引列 focus 行快照(结构同 getSelectedRows)。"
1826
+ },
1827
+ {
1828
+ "name": "getInfiniteRowCount",
1829
+ "signature": "getInfiniteRowCount() => number",
1830
+ "notes": "Infinite Row Model · 虚拟总行数(已知 lastRow 时精确,否则为当前占位长度)。"
1831
+ },
1832
+ {
1833
+ "name": "getLoadedRowData",
1834
+ "signature": "getLoadedRowData() => RowData[]",
1835
+ "notes": "Infinite Row Model · 已加载行数据(非全量)。"
1836
+ },
1837
+ {
1838
+ "name": "getMetrics",
1839
+ "signature": "getMetrics() => GridMetrics",
1840
+ "notes": "读取当前渲染与滚动指标(验收 / 调试用途)。"
1841
+ },
1842
+ {
1843
+ "name": "getOverlayType",
1844
+ "signature": "getOverlayType() => OverlayType | null",
1845
+ "notes": "当前 overlay 类型;无 overlay 时返回 `null`。"
1846
+ },
1847
+ {
1848
+ "name": "getPendingFrameTaskCount",
1849
+ "signature": "getPendingFrameTaskCount() => number",
1850
+ "notes": "Phase 41 · RAF 队列待处理任务总数(p1 + p2 + f1 + destroy)"
1851
+ },
1852
+ {
1853
+ "name": "getPendingRendererTaskCount",
1854
+ "signature": "getPendingRendererTaskCount() => number",
1855
+ "notes": "Phase 41 · f1 队列待处理 cellRenderer 任务数"
1856
+ },
1857
+ {
1858
+ "name": "getQuickFilterText",
1859
+ "signature": "getQuickFilterText() => string",
1860
+ "notes": "读取当前 quick filter 文本。"
1861
+ },
1862
+ {
1863
+ "name": "getRowByIndex",
1864
+ "signature": "getRowByIndex(index: number) => RowSnapshot | null",
1865
+ "notes": "display 下标 → 快照;与 `getRowIndex(id, { type: 'display' })` 互逆。越界 → `null`"
1866
+ },
1867
+ {
1868
+ "name": "getRowGroupColumns",
1869
+ "signature": "getRowGroupColumns() => readonly string[]",
1870
+ "notes": "当前分组列 colId 列表。"
1871
+ },
1872
+ {
1873
+ "name": "getRowHeight",
1874
+ "signature": "getRowHeight(rowId: RowId) => number | null",
1875
+ "notes": "读取行当前有效高度(px);行不存在时 `null`"
1876
+ },
1877
+ {
1878
+ "name": "getRowIds",
1879
+ "signature": "getRowIds(predicate?: RowSnapshotPredicate) => RowId[]",
1880
+ "notes": "getRowSnapshots 的 id 投影(display 顺序、谓词语义相同)。"
1881
+ },
1882
+ {
1883
+ "name": "getRowIndex",
1884
+ "signature": "getRowIndex(rowId: RowId, options?: GetRowIndexOptions) => number | null",
1885
+ "notes": "按 rowId 查下标。完整说明(source vs display、与快照字段对齐)见 `src/core/row/getRowIndex.ts`。"
1886
+ },
1887
+ {
1888
+ "name": "getRowIndexes",
1889
+ "signature": "getRowIndexes(rowIds: readonly RowId[], options?: GetRowIndexOptions) => RowIndexMap",
1890
+ "notes": "批量 getRowIndex;返回 `RowIndexMap`(id 原样作 key)"
1891
+ },
1892
+ {
1893
+ "name": "getRowKind",
1894
+ "signature": "getRowKind(rowId: RowId) => RowKind | null",
1895
+ "notes": "解析行的展示种类(RowKind)。"
1896
+ },
1897
+ {
1898
+ "name": "getRowNode",
1899
+ "signature": "getRowNode(id: RowId) => RowNode | undefined",
1900
+ "notes": "按 rowId 获取行节点快照。"
1901
+ },
1902
+ {
1903
+ "name": "getRowsByIndexes",
1904
+ "signature": "getRowsByIndexes(indexes: readonly number[]) => RowSnapshot[]",
1905
+ "notes": "批量 getRowByIndex;跳过无效下标"
1906
+ },
1907
+ {
1908
+ "name": "getRowSnapshots",
1909
+ "signature": "getRowSnapshots(predicate?: RowSnapshotPredicate) => RowSnapshot[]",
1910
+ "notes": "遍历 **rowsToDisplay** 返回行快照(display 顺序,与 getRowByIndex 同坐标系)。"
1911
+ },
1912
+ {
1913
+ "name": "getSelectedRowIds",
1914
+ "signature": "getSelectedRowIds() => BusinessRowId[]",
1915
+ "notes": "读取当前 checkbox 选中的业务 id(与 `data[rowKey]` 一致;临时行均为 `null`)"
1916
+ },
1917
+ {
1918
+ "name": "getSelectedRows",
1919
+ "signature": "getSelectedRows() => RowSnapshot[]",
1920
+ "notes": "读取当前 checkbox 选中的完整快照。"
1921
+ },
1922
+ {
1923
+ "name": "getSiblingRowByIterator",
1924
+ "signature": "getSiblingRowByIterator(rowId: RowId, options: GetSiblingRowByIteratorOptions) => RowSnapshot | null",
1925
+ "notes": "沿 `direction` 遍历相邻行,返回 **`next(false)` 终止时** 的 `currentRow` 快照。"
1926
+ },
1927
+ {
1928
+ "name": "getSiblingRowsByRowId",
1929
+ "signature": "getSiblingRowsByRowId(rowId: RowId, options: GetSiblingRowsByRowIdOptions) => RowSnapshot[]",
1930
+ "notes": "按行 id 获取相邻可见行快照(`rowsToDisplay` 顺序;**不含锚点**)。"
1931
+ },
1932
+ {
1933
+ "name": "getSortModel",
1934
+ "signature": "getSortModel() => SortModelItem[]",
1935
+ "notes": "读取当前排序模型(v1 至多 1 项)"
1936
+ },
1937
+ {
1938
+ "name": "hideOverlay",
1939
+ "signature": "hideOverlay() => void",
1940
+ "notes": "隐藏当前 overlay。"
1941
+ },
1942
+ {
1943
+ "name": "isAnyFilterActive",
1944
+ "signature": "isAnyFilterActive() => boolean",
1945
+ "notes": "任一列 filter 或 quick filter 是否 active。"
1946
+ },
1947
+ {
1948
+ "name": "isColumnFilterActive",
1949
+ "signature": "isColumnFilterActive(colId: string) => boolean",
1950
+ "notes": "单列是否有有效筛选条件(含 blank/notBlank · custom predicate)。"
1951
+ },
1952
+ {
1953
+ "name": "isColumnHidden",
1954
+ "signature": "isColumnHidden(colId: string) => boolean | undefined",
1955
+ "notes": "Phase 22 · 列是否 hidden;未知 colId 返回 `undefined`"
1956
+ },
1957
+ {
1958
+ "name": "isCommitting",
1959
+ "signature": "isCommitting() => boolean",
1960
+ "notes": "是否正在异步提交(commit 管线进行中)。提交期间 Tab 导航等行为受限。"
1961
+ },
1962
+ {
1963
+ "name": "isEditing",
1964
+ "signature": "isEditing() => boolean",
1965
+ "notes": "是否存在任意单元格 / 行处于编辑态。"
1966
+ },
1967
+ {
1968
+ "name": "isGroupExpanded",
1969
+ "signature": "isGroupExpanded(groupId: string) => boolean",
1970
+ "notes": "分组是否已展开。"
1971
+ },
1972
+ {
1973
+ "name": "isNodeExpanded",
1974
+ "signature": "isNodeExpanded(rowId: RowId) => boolean",
1975
+ "notes": "tree 节点是否已展开。"
1976
+ },
1977
+ {
1978
+ "name": "isOverlayShowing",
1979
+ "signature": "isOverlayShowing() => boolean",
1980
+ "notes": "是否有 overlay 正在显示。"
1981
+ },
1982
+ {
1983
+ "name": "isRowExpanded",
1984
+ "signature": "isRowExpanded(rowId: RowId) => boolean",
1985
+ "notes": "主行是否已展开。"
1986
+ },
1987
+ {
1988
+ "name": "moveColumn",
1989
+ "signature": "moveColumn(colId: string, toIndex: number) => void",
1990
+ "notes": "编程式移动列;`toIndex` 为全局 columns 下标(含系统列占位)。"
1991
+ },
1992
+ {
1993
+ "name": "moveDown",
1994
+ "signature": "moveDown(rowId: RowId) => Promise< RowSnapshot | null>",
1995
+ "notes": "在存储顺序中将行下移一位(语义同 moveUp)。"
1996
+ },
1997
+ {
1998
+ "name": "moveDowns",
1999
+ "signature": "moveDowns(rowIds: readonly RowId[]) => Promise< RowSnapshot[]>",
2000
+ "notes": "批量步进下移(语义同 moveUps)。"
2001
+ },
2002
+ {
2003
+ "name": "moveRow",
2004
+ "signature": "moveRow(rowId: RowId, toIndex: number, indexMode?: RowIndexMode) => Promise<RowMoveResult>",
2005
+ "notes": "编程式移动行。始终改写 **source** 存储顺序;`indexMode` 仅解释 `toIndex` 入参。"
2006
+ },
2007
+ {
2008
+ "name": "moveRows",
2009
+ "signature": "moveRows(options: MoveRowsGridApiOptions) => Promise<RowMoveResult>",
2010
+ "notes": "编程式批量移动行(保持 source 内相对顺序)。"
2011
+ },
2012
+ {
2013
+ "name": "moveUp",
2014
+ "signature": "moveUp(rowId: RowId) => Promise< RowSnapshot | null>",
2015
+ "notes": "在存储顺序中将行上移一位。"
2016
+ },
2017
+ {
2018
+ "name": "moveUps",
2019
+ "signature": "moveUps(rowIds: readonly RowId[]) => Promise< RowSnapshot[]>",
2020
+ "notes": "批量步进上移(保持块内相对顺序)。"
2021
+ },
2022
+ {
2023
+ "name": "on",
2024
+ "signature": "on<T extends GridEventType>(type: T, handler: GridEventHandler<T>) => () => void",
2025
+ "notes": "订阅 Grid 事件。"
2026
+ },
2027
+ {
2028
+ "name": "pasteFromClipboard",
2029
+ "signature": "pasteFromClipboard() => Promise<void>",
2030
+ "notes": "从系统剪贴板粘贴到选区起点。"
2031
+ },
2032
+ {
2033
+ "name": "patchRow",
2034
+ "signature": "patchRow(options: PatchRowOptions) => Promise<RowNodeTransaction>",
2035
+ "notes": "从 RowSnapshot 增量合并字段(cellCommitted 联动推荐入口)。"
2036
+ },
2037
+ {
2038
+ "name": "promoteRowId",
2039
+ "signature": "promoteRowId(options: PromoteRowIdOptions) => PromoteRowIdResult",
2040
+ "notes": "将临时行的内部 id 提升为正式业务主键。"
2041
+ },
2042
+ {
2043
+ "name": "reconcileDefaultSelectedRows",
2044
+ "signature": "reconcileDefaultSelectedRows() => void",
2045
+ "notes": "按当前 pending 再 reconcile(不修改 pending)。"
2046
+ },
2047
+ {
2048
+ "name": "refreshCellComments",
2049
+ "signature": "refreshCellComments(params?: RefreshCellCommentsParams) => void",
2050
+ "notes": "刷新可见 cell 批注角标;popup 不强制重建。"
2051
+ },
2052
+ {
2053
+ "name": "refreshCells",
2054
+ "signature": "refreshCells(params?: RefreshCellsParams) => number",
2055
+ "notes": "刷新指定行或列的单元格 DOM(不重跑全表 setData)。"
2056
+ },
2057
+ {
2058
+ "name": "refreshCellSpans",
2059
+ "signature": "refreshCellSpans() => void",
2060
+ "notes": "Phase 16 · 强制重建单元格合并 cache 并刷新可见行 / 表尾。"
2061
+ },
2062
+ {
2063
+ "name": "refreshCellStyles",
2064
+ "signature": "refreshCellStyles(params?: RefreshCellStylesParams) => void",
2065
+ "notes": "重算可见单元格 backgroundColor / color 投影。"
2066
+ },
2067
+ {
2068
+ "name": "refreshDisabledState",
2069
+ "signature": "refreshDisabledState(params?: RefreshDisabledStateParams) => void",
2070
+ "notes": "Phase 21 · 重算可见单元格 disabled 投影(class · inline 控件 · aria)"
2071
+ },
2072
+ {
2073
+ "name": "refreshInfiniteCache",
2074
+ "signature": "refreshInfiniteCache() => void",
2075
+ "notes": "Infinite Row Model · 清空块缓存并重新加载视口。"
2076
+ },
2077
+ {
2078
+ "name": "registerCellEditor",
2079
+ "signature": "registerCellEditor(name: string, editor: CellEditorFn) => void",
2080
+ "notes": "向当前 Grid 实例注册命名单元格编辑器。"
2081
+ },
2082
+ {
2083
+ "name": "reloadDetailRowData",
2084
+ "signature": "reloadDetailRowData(rowId: RowId) => boolean",
2085
+ "notes": "清除主行详情 cache 并重新调用 `getDetailRowData`(已展开时保持展开并显示 loading)。"
2086
+ },
2087
+ {
2088
+ "name": "removeRows",
2089
+ "signature": "removeRows(options: RemoveRowsOptions) => Promise<RowNodeTransaction>",
2090
+ "notes": "按 rowId 和/或行下标删除行。"
2091
+ },
2092
+ {
2093
+ "name": "removeSelectedRows",
2094
+ "signature": "removeSelectedRows(options?: ClearRowSelectionOptions) => Promise<RowNodeTransaction>",
2095
+ "notes": "删除当前 checkbox 选中的行。"
2096
+ },
2097
+ {
2098
+ "name": "resetColumnOrder",
2099
+ "signature": "resetColumnOrder() => boolean",
2100
+ "notes": "Phase 27 · 各 lane 内用户列恢复 defOrder;无变化时为 no-op"
2101
+ },
2102
+ {
2103
+ "name": "resetColumnWidths",
2104
+ "signature": "resetColumnWidths() => boolean",
2105
+ "notes": "Phase 27 · 用户列恢复 defWidth / defFlex;无变化时为 no-op"
2106
+ },
2107
+ {
2108
+ "name": "resetRowHeights",
2109
+ "signature": "resetRowHeights(rowIds?: readonly RowId[]) => void",
2110
+ "notes": "清除 pinned 并重算行高(getRowHeight / autoHeight / 默认行高)。"
2111
+ },
2112
+ {
2113
+ "name": "retryInfiniteBlock",
2114
+ "signature": "retryInfiniteBlock(blockIndex: number) => void",
2115
+ "notes": "Infinite Row Model · 重试指定块。"
2116
+ },
2117
+ {
2118
+ "name": "scrollTo",
2119
+ "signature": "scrollTo(scrollTop: number, scrollLeft?: number) => void",
2120
+ "notes": "编程式滚动视口。"
2121
+ },
2122
+ {
2123
+ "name": "setCellComment",
2124
+ "signature": "setCellComment(rowId: RowId, colId: string, comment: CellComment | null | undefined) => Promise<void>",
2125
+ "notes": "设置或删除批注(`comment=null/undefined`);`source` 记为 `api`。"
2126
+ },
2127
+ {
2128
+ "name": "setCellEditorCache",
2129
+ "signature": "setCellEditorCache(rowId: RowId, colId: string, value: unknown, key?: string) => void",
2130
+ "notes": "编排层写入 cell editor cache(如 `cellEditingStopped` 回调)。"
2131
+ },
2132
+ {
2133
+ "name": "setCellStyle",
2134
+ "signature": "setCellStyle(rowId: RowId, colId: string, style: CellStyle | null) => void",
2135
+ "notes": "API 临时高亮单格;`style=null` 清除 override 并回退声明式规则。"
2136
+ },
2137
+ {
2138
+ "name": "setColumnFilter",
2139
+ "signature": "setColumnFilter(colId: string, condition: FilterCondition | null) => void",
2140
+ "notes": "设置或清除单列筛选条件;`condition === null` 移除该 colId。"
2141
+ },
2142
+ {
2143
+ "name": "setColumnFixed",
2144
+ "signature": "setColumnFixed(colId: string, fixed: 'left' | 'right' | null) => boolean",
2145
+ "notes": "运行时改列 fixed(left / right / null)。"
2146
+ },
2147
+ {
2148
+ "name": "setColumnsHidden",
2149
+ "signature": "setColumnsHidden(colIds: readonly string[], hidden: boolean) => boolean",
2150
+ "notes": "Phase 22 · 批量设置列 hidden;触发 `columnHiddenChanged`"
2151
+ },
2152
+ {
2153
+ "name": "setColumnWidth",
2154
+ "signature": "setColumnWidth(colId: string, width: number, finished?: boolean, source?: ColumnResizeSource) => void",
2155
+ "notes": "设置单列宽度(Phase 14)"
2156
+ },
2157
+ {
2158
+ "name": "setColumnWidths",
2159
+ "signature": "setColumnWidths(payloads: readonly { colId: string; width: number; }[], finished?: boolean, source?: ColumnResizeSource) => void",
2160
+ "notes": "批量设置列宽(Phase 14)。"
2161
+ },
2162
+ {
2163
+ "name": "setData",
2164
+ "signature": "setData(rows: RowData[]) => void",
2165
+ "notes": "全量替换表格数据(等价于清空后重新加载)。"
2166
+ },
2167
+ {
2168
+ "name": "setDefaultSelectedRows",
2169
+ "signature": "setDefaultSelectedRows(input: DefaultSelectedRowsInput, options?: ApplyDefaultSelectedRowsOptions) => void",
2170
+ "notes": "**preset** 写入行 checkbox 选区。"
2171
+ },
2172
+ {
2173
+ "name": "setDetailRowData",
2174
+ "signature": "setDetailRowData(rowId: RowId, detailRowData: unknown) => boolean",
2175
+ "notes": "主动写入主行详情数据(等价于 `getDetailRowData` 的 `successCallback` 结果缓存)。"
2176
+ },
2177
+ {
2178
+ "name": "setDisabledCellStyle",
2179
+ "signature": "setDisabledCellStyle(style: CellStyle | undefined) => void",
2180
+ "notes": "Grid 级 disabled 单元格样式;等价于更新 `disabled-cell-style` prop。"
2181
+ },
2182
+ {
2183
+ "name": "setEditableCellStyle",
2184
+ "signature": "setEditableCellStyle(style: CellStyle | undefined) => void",
2185
+ "notes": "Grid 级可编辑单元格样式;等价于更新 `editable-cell-style` prop。"
2186
+ },
2187
+ {
2188
+ "name": "setFilterModel",
2189
+ "signature": "setFilterModel(model: FilterModel) => void",
2190
+ "notes": "设置筛选模型并重算 `rowsToDisplay`。触发 `filterChanged`。"
2191
+ },
2192
+ {
2193
+ "name": "setIndexFocus",
2194
+ "signature": "setIndexFocus(rowIds: RowIdInput, options?: SetIndexFocusOptions) => void",
2195
+ "notes": "设置索引列辅助定位(`IndexFocusService`),不触发鼠标拖拉。"
2196
+ },
2197
+ {
2198
+ "name": "setInfiniteDatasource",
2199
+ "signature": "setInfiniteDatasource(datasource: InfiniteRowDatasource) => void",
2200
+ "notes": "Infinite Row Model · 绑定 / 更换 datasource(purge + 从顶加载)。"
2201
+ },
2202
+ {
2203
+ "name": "setQuickFilterText",
2204
+ "signature": "setQuickFilterText(text: string) => void",
2205
+ "notes": "设置 Grid 级 quick filter 文本;触发 `filterChanged`(块 5 接入过滤语义)。"
2206
+ },
2207
+ {
2208
+ "name": "setRowGroupColumns",
2209
+ "signature": "setRowGroupColumns(colIds: readonly string[]) => void",
2210
+ "notes": "设置分组列顺序;需 `rowGrouping: true`。触发 `rowGroupChanged`。"
2211
+ },
2212
+ {
2213
+ "name": "setRowHeight",
2214
+ "signature": "setRowHeight(rowId: RowId, height: number, finished?: boolean) => void",
2215
+ "notes": "设置单行高度并 pinned(Phase 15)。"
2216
+ },
2217
+ {
2218
+ "name": "setRowHeights",
2219
+ "signature": "setRowHeights(changes: readonly { rowId: RowId; height: number; }[], finished?: boolean) => void",
2220
+ "notes": "批量设置行高(Phase 15);语义同 setRowHeight"
2221
+ },
2222
+ {
2223
+ "name": "setRowStyle",
2224
+ "signature": "setRowStyle(rowStyle: RowStyle | undefined) => void",
2225
+ "notes": "Grid 级行样式;等价于更新 `row-style` prop。"
2226
+ },
2227
+ {
2228
+ "name": "setShowDisabledCellIcon",
2229
+ "signature": "setShowDisabledCellIcon(show: boolean) => void",
2230
+ "notes": "overlay disabled 格 pencil-off 图标开关;inline 列不显示;等价于 `show-disabled-cell-icon` prop。"
2231
+ },
2232
+ {
2233
+ "name": "setShowEditableCellIcon",
2234
+ "signature": "setShowEditableCellIcon(show: boolean) => void",
2235
+ "notes": "overlay 可编辑格 pencil-line 图标开关;inline 列不显示;等价于 `show-editable-cell-icon` prop。"
2236
+ },
2237
+ {
2238
+ "name": "setSortModel",
2239
+ "signature": "setSortModel(model: SortModelItem[]) => void",
2240
+ "notes": "设置排序模型并重算 `rowsToDisplay`。触发 `sortChanged`。"
2241
+ },
2242
+ {
2243
+ "name": "showLoadingOverlay",
2244
+ "signature": "showLoadingOverlay() => void",
2245
+ "notes": "等价 `setGridOption('loading', true)`。"
2246
+ },
2247
+ {
2248
+ "name": "showNoRowsOverlay",
2249
+ "signature": "showNoRowsOverlay() => void",
2250
+ "notes": "强制显示 noRows overlay,直至 `hideOverlay()`。"
2251
+ },
2252
+ {
2253
+ "name": "sizeColumnsToFit",
2254
+ "signature": "sizeColumnsToFit(params?: SizeColumnsToFitParams) => void",
2255
+ "notes": "将列宽按比例分配至视口(或指定宽度);对标 sizeColumnsToFit"
2256
+ },
2257
+ {
2258
+ "name": "startEditingCell",
2259
+ "signature": "startEditingCell(params: { rowIndex: number; colKey: string; }) => void",
2260
+ "notes": "编程式进入单元格编辑。"
2261
+ },
2262
+ {
2263
+ "name": "stopEditing",
2264
+ "signature": "stopEditing(cancel?: boolean) => Promise<void>",
2265
+ "notes": "结束当前编辑会话。"
2266
+ },
2267
+ {
2268
+ "name": "toggleAllSelection",
2269
+ "signature": "toggleAllSelection(selected?: boolean) => void",
2270
+ "notes": "表头全选 checkbox 操作(`rowSelection: 'multiple'` 时有效)。"
2271
+ },
2272
+ {
2273
+ "name": "toggleRowSelection",
2274
+ "signature": "toggleRowSelection(rowIds: RowIdInput, selected?: boolean, force?: boolean) => void",
2275
+ "notes": "切换或设置行的 checkbox 选中状态(行选择列 / `SelectionService`)。"
2276
+ },
2277
+ {
2278
+ "name": "unregisterCellEditor",
2279
+ "signature": "unregisterCellEditor(name: string) => boolean",
2280
+ "notes": "注销实例级编辑器;成功返回 `true`。"
2281
+ },
2282
+ {
2283
+ "name": "updateDimensions",
2284
+ "signature": "updateDimensions(params: UpdateRowDimensionsParams) => void",
2285
+ "notes": "热更新默认行高与 clamp 边界(Phase 15 · MagicGrid `rowHeight` prop)。"
2286
+ },
2287
+ {
2288
+ "name": "updateRows",
2289
+ "signature": "updateRows(options: UpdateRowsOptions) => Promise<RowNodeTransaction>",
2290
+ "notes": "按 rowKey 或 rowId 批量更新行字段(浅合并)。"
2291
+ },
2292
+ {
2293
+ "name": "validate",
2294
+ "signature": "validate(options?: ValidateGridOptions) => Promise<GridValidationResult>",
2295
+ "notes": "校验全表或指定行的持久化数据。"
2296
+ },
2297
+ {
2298
+ "name": "validateCells",
2299
+ "signature": "validateCells(options: ValidateCellsOptions) => Promise<GridValidationResult>",
2300
+ "notes": "校验指定单元格列表(不跑 rowValidator)。"
2301
+ },
2302
+ {
2303
+ "name": "validateRows",
2304
+ "signature": "validateRows(options: ValidateRowsOptions) => Promise<GridValidationResult>",
2305
+ "notes": "校验指定行列表(语义同 validate 的 `rowIds` 分支)。"
2306
+ }
2307
+ ],
2308
+ "columnDef": [
2309
+ {
2310
+ "name": "key",
2311
+ "type": "string",
2312
+ "notes": "列唯一标识,缺省等于 prop"
2313
+ },
2314
+ {
2315
+ "name": "prop",
2316
+ "type": "Extract<keyof TData, string>",
2317
+ "notes": "数据字段"
2318
+ },
2319
+ {
2320
+ "name": "label",
2321
+ "type": "string",
2322
+ "notes": "表头文案"
2323
+ },
2324
+ {
2325
+ "name": "available",
2326
+ "type": "boolean",
2327
+ "notes": "列是否有效;默认 true。"
2328
+ },
2329
+ {
2330
+ "name": "hidden",
2331
+ "type": "boolean",
2332
+ "notes": "是否隐藏该列(不渲染 header/body/footer · 不参与布局)。"
2333
+ },
2334
+ {
2335
+ "name": "width",
2336
+ "type": "number",
2337
+ "notes": "尺寸"
2338
+ },
2339
+ {
2340
+ "name": "minWidth",
2341
+ "type": "number",
2342
+ "notes": "列最小宽度(px)"
2343
+ },
2344
+ {
2345
+ "name": "maxWidth",
2346
+ "type": "number",
2347
+ "notes": "列最大宽度(px)"
2348
+ },
2349
+ {
2350
+ "name": "flex",
2351
+ "type": "number",
2352
+ "notes": "flex 布局权重;与 width 互斥时 flex 参与剩余空间分配"
2353
+ },
2354
+ {
2355
+ "name": "sortable",
2356
+ "type": "boolean",
2357
+ "notes": "列是否参与排序;缺省继承 Grid `sortable`(默认 false)"
2358
+ },
2359
+ {
2360
+ "name": "comparator",
2361
+ "type": "ColumnComparatorFn",
2362
+ "notes": "自定义排序比较器;入参为两行的单元格原始值(经 valueGetter)。"
2363
+ },
2364
+ {
2365
+ "name": "filterable",
2366
+ "type": "boolean",
2367
+ "notes": "是否允许列筛选;缺省继承 Grid `filterable`(默认 false)"
2368
+ },
2369
+ {
2370
+ "name": "filterType",
2371
+ "type": "ColumnDataFilterType",
2372
+ "notes": "列筛选数据类型;默认 text"
2373
+ },
2374
+ {
2375
+ "name": "filterParams",
2376
+ "type": "FilterParams",
2377
+ "notes": "列级 filter 参数(如 caseSensitive)"
2378
+ },
2379
+ {
2380
+ "name": "filterFormatter",
2381
+ "type": "(row: TData) => unknown",
2382
+ "notes": "筛选用取值;缺省 formatter → valueGetter → prop */"
2383
+ },
2384
+ {
2385
+ "name": "editable",
2386
+ "type": "boolean | ((row: TData) => boolean)",
2387
+ "notes": "是否可编辑;可函数按行判断"
2388
+ },
2389
+ {
2390
+ "name": "resizable",
2391
+ "type": "boolean",
2392
+ "notes": "是否允许拖拽调整列宽;缺省继承 Grid `resizable`(默认 true)"
2393
+ },
2394
+ {
2395
+ "name": "suppressAutoSize",
2396
+ "type": "boolean",
2397
+ "notes": "禁止 resize 把柄 dblclick / API auto-size;对标 AG Grid suppressAutoSize"
2398
+ },
2399
+ {
2400
+ "name": "suppressSizeToFit",
2401
+ "type": "boolean",
2402
+ "notes": "禁止参与 sizeColumnsToFit;对标 AG Grid suppressSizeToFit"
2403
+ },
2404
+ {
2405
+ "name": "fixed",
2406
+ "type": "'left' | 'right' | null",
2407
+ "notes": "列固定:left / right;null 或不传为不固定"
2408
+ },
2409
+ {
2410
+ "name": "movable",
2411
+ "type": "boolean",
2412
+ "notes": "是否允许表头拖拽重排;默认继承 grid.columnMovable"
2413
+ },
2414
+ {
2415
+ "name": "rowDrag",
2416
+ "type": "boolean",
2417
+ "notes": "该列单元格作为行拖拽起点;默认 false"
2418
+ },
2419
+ {
2420
+ "name": "rowExpand",
2421
+ "type": "boolean",
2422
+ "notes": "在该列渲染 expand/collapse 控件;需 Grid `masterDetail: true`。"
2423
+ },
2424
+ {
2425
+ "name": "rowGroup",
2426
+ "type": "boolean",
2427
+ "notes": "该列参与行分组;需 Grid `rowGrouping: true`。"
2428
+ },
2429
+ {
2430
+ "name": "rowGroupIndex",
2431
+ "type": "number",
2432
+ "notes": "多级分组顺序(小者优先);缺省按列定义顺序"
2433
+ },
2434
+ {
2435
+ "name": "groupAgg",
2436
+ "type": "SummaryAgg",
2437
+ "notes": "分组 footer 行的聚合;缺省不在该列展示 group 汇总"
2438
+ },
2439
+ {
2440
+ "name": "showGroupHeaderCell",
2441
+ "type": "boolean",
2442
+ "notes": "在该用户列渲染 groupHeader 单元格(chevron / 缩进 / 键值)。"
2443
+ },
2444
+ {
2445
+ "name": "showGroupFooterCell",
2446
+ "type": "boolean",
2447
+ "notes": "在该用户列渲染 groupFooter 标签(如「小计」)。"
2448
+ },
2449
+ {
2450
+ "name": "groupFooterLabel",
2451
+ "type": "string",
2452
+ "notes": "覆盖 Grid `groupFooterLabel` 的本列小计文案"
2453
+ },
2454
+ {
2455
+ "name": "autoHeight",
2456
+ "type": "boolean",
2457
+ "notes": "该列内容撑开行高(与其他 autoHeight 列取 max);默认 false"
2458
+ },
2459
+ {
2460
+ "name": "colSpan",
2461
+ "type": "ColSpanFn",
2462
+ "notes": "横向合并列数(≥1);表体与表尾共用,用 `params.isSummaryRow` 分支。"
2463
+ },
2464
+ {
2465
+ "name": "rowSpan",
2466
+ "type": "RowSpanFn",
2467
+ "notes": "纵向合并行数(≥1);仅表体。与 `spanRows` 互斥(本字段优先)。"
2468
+ },
2469
+ {
2470
+ "name": "spanRows",
2471
+ "type": "boolean | SpanRowsFunc",
2472
+ "notes": "相邻等值自动纵向合并;`true` 或自定义比较函数。"
2473
+ },
2474
+ {
2475
+ "name": "valueGetter",
2476
+ "type": "(row: TData, value: unknown) => unknown",
2477
+ "notes": "读取单元格展示值(优先于 prop 直读)"
2478
+ },
2479
+ {
2480
+ "name": "formatter",
2481
+ "type": "(row: TData, value: unknown) => string",
2482
+ "notes": "格式化展示文案(不影响原始值)"
2483
+ },
2484
+ {
2485
+ "name": "cellRenderer",
2486
+ "type": "CellRendererFn",
2487
+ "notes": "自定义单元格渲染器(函数;Vue 组件通过 MagicGrid 槽位注册)"
2488
+ },
2489
+ {
2490
+ "name": "cellRendererMount",
2491
+ "type": "CellRendererMountKind",
2492
+ "notes": "renderer 挂载类型:`vue` 强制异步队列;`sync` 在 `cellRendererDefer=\"sync-only\"` 下同步挂载。"
2493
+ },
2494
+ {
2495
+ "name": "cellEditor",
2496
+ "type": "CellEditorDef",
2497
+ "notes": "自定义单元格编辑器(函数、内置 text / number / checkbox / switch、或命名引用)"
2498
+ },
2499
+ {
2500
+ "name": "cellEditorMode",
2501
+ "type": "CellEditorMode",
2502
+ "notes": "编辑器呈现:overlay 进编辑态;inline 常驻格内。默认 overlay"
2503
+ },
2504
+ {
2505
+ "name": "cellEditorParams",
2506
+ "type": "CellEditorParamsInput",
2507
+ "notes": "列级编辑器配置(内置 checkbox / switch / 自定义编辑器统一入口)。"
2508
+ },
2509
+ {
2510
+ "name": "cellEditorCache",
2511
+ "type": "CellEditorCacheColumnFlag",
2512
+ "notes": "为本列启用 cell editor cache API(overlay 列;inline 列忽略)。"
2513
+ },
2514
+ {
2515
+ "name": "valueParser",
2516
+ "type": "(value: unknown, params: CellEditorParams) => unknown",
2517
+ "notes": "提交前解析编辑值"
2518
+ },
2519
+ {
2520
+ "name": "valueSetter",
2521
+ "type": "ValueSetterFn",
2522
+ "notes": "自定义写回逻辑,返回 false 拒绝提交;可 async"
2523
+ },
2524
+ {
2525
+ "name": "editType",
2526
+ "type": "CellEditType",
2527
+ "notes": "编辑触发策略,缺省继承 grid 级配置"
2528
+ },
2529
+ {
2530
+ "name": "cellValidator",
2531
+ "type": "CellValidator",
2532
+ "notes": "手写校验(优先级高于 validationRules)"
2533
+ },
2534
+ {
2535
+ "name": "cellCommitted",
2536
+ "type": "CellCommittedHandler<TData>",
2537
+ "notes": "值成功写回后的列级副作用钩子(编辑 / 粘贴 / 填充 / Delete)"
2538
+ },
2539
+ {
2540
+ "name": "suppressPaste",
2541
+ "type": "boolean | ((row: TData) => boolean)",
2542
+ "notes": "禁止粘贴;可函数按行判断"
2543
+ },
2544
+ {
2545
+ "name": "useParserForClipboard",
2546
+ "type": "boolean",
2547
+ "notes": "粘贴是否走 valueParser;默认 true"
2548
+ },
2549
+ {
2550
+ "name": "useFormatterForClipboard",
2551
+ "type": "boolean",
2552
+ "notes": "复制是否走 formatter;默认 true"
2553
+ },
2554
+ {
2555
+ "name": "validationRules",
2556
+ "type": "ValidationRules",
2557
+ "notes": "async-validator 规则;通过 magic-grid/validation enrichColumnsWithValidation 编译"
2558
+ },
2559
+ {
2560
+ "name": "validationRequired",
2561
+ "type": "boolean",
2562
+ "notes": "必填列;表头文字前显示红色 *(缺省由 validationRules.required 推导)"
2563
+ },
2564
+ {
2565
+ "name": "summary",
2566
+ "type": "boolean",
2567
+ "notes": "是否参与表尾汇总;缺省时:有 summaryAgg 则为 true,否则 false"
2568
+ },
2569
+ {
2570
+ "name": "summaryAgg",
2571
+ "type": "SummaryAgg",
2572
+ "notes": "表尾汇总聚合:内置 sum / avg / min / max / count 或自定义函数"
2573
+ },
2574
+ {
2575
+ "name": "summaryFormatter",
2576
+ "type": "(value: unknown) => string",
2577
+ "notes": "汇总格专用 formatter;缺省复用 formatter"
2578
+ },
2579
+ {
2580
+ "name": "headerAlign",
2581
+ "type": "GridHorizontalAlign",
2582
+ "notes": "表头水平对齐;默认 center"
2583
+ },
2584
+ {
2585
+ "name": "headerValign",
2586
+ "type": "GridVerticalAlign",
2587
+ "notes": "表头垂直对齐;默认 center"
2588
+ },
2589
+ {
2590
+ "name": "align",
2591
+ "type": "GridHorizontalAlign",
2592
+ "notes": "表体水平对齐;默认 center"
2593
+ },
2594
+ {
2595
+ "name": "valign",
2596
+ "type": "GridVerticalAlign",
2597
+ "notes": "表体垂直对齐;默认 center"
2598
+ },
2599
+ {
2600
+ "name": "footerAlign",
2601
+ "type": "GridHorizontalAlign",
2602
+ "notes": "表尾汇总水平对齐;默认 center"
2603
+ },
2604
+ {
2605
+ "name": "footerValign",
2606
+ "type": "GridVerticalAlign",
2607
+ "notes": "表尾汇总垂直对齐;默认 center"
2608
+ },
2609
+ {
2610
+ "name": "suppressCellComments",
2611
+ "type": "boolean | SuppressCellCommentFn<TData>",
2612
+ "notes": "抑制该列(或特定行)的批注新建/编辑/删除。"
2613
+ },
2614
+ {
2615
+ "name": "disabled",
2616
+ "type": "boolean",
2617
+ "notes": "列级禁用:true 时该列全部数据行 disabled"
2618
+ },
2619
+ {
2620
+ "name": "cellDisabled",
2621
+ "type": "boolean | CellDisabledFn<TData>",
2622
+ "notes": "格级禁用:按行判定;与 disabled / isRowDisabled 叠加"
2623
+ },
2624
+ {
2625
+ "name": "cellStyle",
2626
+ "type": "CellStyle | CellStyleFn<TData>",
2627
+ "notes": "列级静态背景 或 格级 cellStyle 回调(二选一 · 同 AG Grid cellStyle)。"
2628
+ },
2629
+ {
2630
+ "name": "tooltipField",
2631
+ "type": "Extract<keyof TData, string>",
2632
+ "notes": "读 row.data[field] 作为 tooltip"
2633
+ },
2634
+ {
2635
+ "name": "tooltipValueGetter",
2636
+ "type": "TooltipValueGetter<TData>",
2637
+ "notes": "自定义 tooltip 文案"
2638
+ },
2639
+ {
2640
+ "name": "headerTooltip",
2641
+ "type": "string",
2642
+ "notes": "表头静态 tooltip"
2643
+ },
2644
+ {
2645
+ "name": "headerTooltipValueGetter",
2646
+ "type": "HeaderTooltipValueGetter",
2647
+ "notes": "表头动态 tooltip 文案"
2648
+ },
2649
+ {
2650
+ "name": "suppressTooltip",
2651
+ "type": "boolean",
2652
+ "notes": "抑制该列溢出 tooltip"
2653
+ },
2654
+ {
2655
+ "name": "tooltipComponent",
2656
+ "type": "TooltipComponentType",
2657
+ "notes": "自定义 tooltip 组件"
2658
+ },
2659
+ {
2660
+ "name": "tooltipComponentParams",
2661
+ "type": "Record<string, unknown>",
2662
+ "notes": "自定义 tooltip 组件额外参数"
2663
+ }
2664
+ ],
2665
+ "rules": [
2666
+ {
2667
+ "id": "unknown-prop",
2668
+ "severity": "error",
2669
+ "autoFix": false,
2670
+ "detectable": "static"
2671
+ },
2672
+ {
2673
+ "id": "unknown-emit",
2674
+ "severity": "error",
2675
+ "autoFix": false,
2676
+ "detectable": "static"
2677
+ },
2678
+ {
2679
+ "id": "wrong-field-name",
2680
+ "severity": "error",
2681
+ "autoFix": true,
2682
+ "detectable": "static"
2683
+ },
2684
+ {
2685
+ "id": "prop-type-literal",
2686
+ "severity": "error",
2687
+ "autoFix": true,
2688
+ "detectable": "literal-only"
2689
+ },
2690
+ {
2691
+ "id": "tree-requires-getdatapath",
2692
+ "severity": "error",
2693
+ "autoFix": false,
2694
+ "detectable": "literal-only"
2695
+ },
2696
+ {
2697
+ "id": "tree-vs-rowgrouping",
2698
+ "severity": "error",
2699
+ "autoFix": false,
2700
+ "detectable": "literal-only"
2701
+ },
2702
+ {
2703
+ "id": "tree-lazy-requires-loader",
2704
+ "severity": "error",
2705
+ "autoFix": false,
2706
+ "detectable": "literal-only"
2707
+ },
2708
+ {
2709
+ "id": "move-under-sort-filter",
2710
+ "severity": "warning",
2711
+ "autoFix": false,
2712
+ "detectable": "heuristic"
2713
+ },
2714
+ {
2715
+ "id": "columndef-unknown-field",
2716
+ "severity": "error",
2717
+ "autoFix": false,
2718
+ "detectable": "literal-only"
2719
+ },
2720
+ {
2721
+ "id": "columndef-missing-key",
2722
+ "severity": "error",
2723
+ "autoFix": false,
2724
+ "detectable": "literal-only"
2725
+ },
2726
+ {
2727
+ "id": "columndef-duplicate-key",
2728
+ "severity": "error",
2729
+ "autoFix": false,
2730
+ "detectable": "literal-only"
2731
+ },
2732
+ {
2733
+ "id": "columndef-reserved-colid",
2734
+ "severity": "error",
2735
+ "autoFix": false,
2736
+ "detectable": "literal-only"
2737
+ },
2738
+ {
2739
+ "id": "missing-tokens-css",
2740
+ "severity": "error",
2741
+ "autoFix": true,
2742
+ "detectable": "static"
2743
+ },
2744
+ {
2745
+ "id": "css-order",
2746
+ "severity": "error",
2747
+ "autoFix": true,
2748
+ "detectable": "static"
2749
+ },
2750
+ {
2751
+ "id": "wrong-subpath",
2752
+ "severity": "error",
2753
+ "autoFix": true,
2754
+ "detectable": "static"
2755
+ },
2756
+ {
2757
+ "id": "reactive-data",
2758
+ "severity": "warning",
2759
+ "autoFix": false,
2760
+ "detectable": "literal-only"
2761
+ }
2762
+ ],
2763
+ "commonMistakes": [
2764
+ {
2765
+ "wrong": "columnDefs",
2766
+ "right": "columns",
2767
+ "kind": "prop"
2768
+ },
2769
+ {
2770
+ "wrong": "rowData",
2771
+ "right": "data",
2772
+ "kind": "prop"
2773
+ },
2774
+ {
2775
+ "wrong": "show-overflow-tooltip",
2776
+ "right": "enableTooltips",
2777
+ "kind": "prop"
2778
+ },
2779
+ {
2780
+ "wrong": "field",
2781
+ "right": "prop",
2782
+ "kind": "columnDef"
2783
+ },
2784
+ {
2785
+ "wrong": "headerName",
2786
+ "right": "label",
2787
+ "kind": "columnDef"
2788
+ },
2789
+ {
2790
+ "wrong": "colId",
2791
+ "right": "key",
2792
+ "kind": "columnDef"
2793
+ },
2794
+ {
2795
+ "wrong": "valueFormatter",
2796
+ "right": "formatter",
2797
+ "kind": "columnDef"
2798
+ }
2799
+ ],
2800
+ "recipes": [
2801
+ {
2802
+ "id": "basic",
2803
+ "intent": "基础只读表格:columns / data / rowKey 与样式引入 -->",
2804
+ "code": "<!-- @intent 基础只读表格:columns / data / rowKey 与样式引入 -->\r\n<script setup lang=\"ts\">\r\nimport { ref } from 'vue'\r\nimport MagicGrid from '@taocompany/magic-grid'\r\nimport type { ColumnDef } from '@taocompany/magic-grid/types/core'\r\nimport '@taocompany/magic-grid/tokens.css'\r\nimport '@taocompany/magic-grid/style.css'\r\n\r\ninterface Row { id: number; name: string }\r\n\r\nconst columns = ref<ColumnDef<Row>[]>([\r\n { prop: 'id', label: 'ID', width: 80 },\r\n { prop: 'name', label: '名称' },\r\n])\r\nconst data = ref<Row[]>([\r\n { id: 1, name: 'Alpha' },\r\n { id: 2, name: 'Beta' },\r\n])\r\n</script>\r\n\r\n<template>\r\n <MagicGrid :columns=\"columns\" :data=\"data\" row-key=\"id\" height=\"360\" />\r\n</template>\r\n"
2805
+ },
2806
+ {
2807
+ "id": "edit-validation",
2808
+ "intent": "单击编辑与列级 cellValidator -->",
2809
+ "code": "<!-- @intent 单击编辑与列级 cellValidator -->\r\n<script setup lang=\"ts\">\r\nimport { ref } from 'vue'\r\nimport MagicGrid from '@taocompany/magic-grid'\r\nimport type { ColumnDef } from '@taocompany/magic-grid/types/core'\r\nimport '@taocompany/magic-grid/tokens.css'\r\nimport '@taocompany/magic-grid/style.css'\r\n\r\ninterface Row { id: number; qty: number }\r\n\r\nconst columns = ref<ColumnDef<Row>[]>([\r\n { prop: 'id', label: 'ID', width: 80, editable: false },\r\n {\r\n prop: 'qty',\r\n label: '数量',\r\n editable: true,\r\n cellValidator: (p) =>\r\n Number(p.parsedValue) >= 0 ? undefined : ['须 ≥ 0'],\r\n },\r\n])\r\nconst data = ref<Row[]>([{ id: 1, qty: 10 }])\r\n</script>\r\n\r\n<template>\r\n <MagicGrid\r\n :columns=\"columns\"\r\n :data=\"data\"\r\n row-key=\"id\"\r\n edit-type=\"singleClick\"\r\n invalid-edit-value-mode=\"block\"\r\n height=\"360\"\r\n />\r\n</template>\r\n"
2810
+ },
2811
+ {
2812
+ "id": "pinned-summary",
2813
+ "intent": "固定列与表尾汇总 -->",
2814
+ "code": "<!-- @intent 固定列与表尾汇总 -->\r\n<script setup lang=\"ts\">\r\nimport { ref } from 'vue'\r\nimport MagicGrid from '@taocompany/magic-grid'\r\nimport type { ColumnDef } from '@taocompany/magic-grid/types/core'\r\nimport '@taocompany/magic-grid/tokens.css'\r\nimport '@taocompany/magic-grid/style.css'\r\n\r\ninterface Row { id: number; region: string; amount: number }\r\n\r\nconst columns = ref<ColumnDef<Row>[]>([\r\n { prop: 'id', label: 'ID', width: 70, fixed: 'left' },\r\n { prop: 'region', label: '区域' },\r\n { prop: 'amount', label: '金额', summaryAgg: 'sum' },\r\n])\r\nconst data = ref<Row[]>([\r\n { id: 1, region: '华东', amount: 100 },\r\n { id: 2, region: '华北', amount: 200 },\r\n])\r\n</script>\r\n\r\n<template>\r\n <MagicGrid\r\n :columns=\"columns\"\r\n :data=\"data\"\r\n row-key=\"id\"\r\n show-summary\r\n summary-scope=\"displayed\"\r\n height=\"360\"\r\n />\r\n</template>\r\n"
2815
+ },
2816
+ {
2817
+ "id": "filter-quick",
2818
+ "intent": "列筛选与 quickFilterText -->",
2819
+ "code": "<!-- @intent 列筛选与 quickFilterText -->\r\n<script setup lang=\"ts\">\r\nimport { ref } from 'vue'\r\nimport MagicGrid from '@taocompany/magic-grid'\r\nimport type { ColumnDef } from '@taocompany/magic-grid/types/core'\r\nimport '@taocompany/magic-grid/tokens.css'\r\nimport '@taocompany/magic-grid/style.css'\r\n\r\ninterface Row { id: number; sku: string }\r\n\r\nconst quickFilterText = ref('')\r\nconst columns = ref<ColumnDef<Row>[]>([\r\n { prop: 'id', label: 'ID', width: 80 },\r\n { prop: 'sku', label: 'SKU', filterable: true },\r\n])\r\nconst data = ref<Row[]>([\r\n { id: 1, sku: 'A-001' },\r\n { id: 2, sku: 'B-002' },\r\n])\r\n</script>\r\n\r\n<template>\r\n <MagicGrid\r\n :quick-filter-text=\"quickFilterText\"\r\n :columns=\"columns\"\r\n :data=\"data\"\r\n row-key=\"id\"\r\n filterable\r\n height=\"360\"\r\n />\r\n</template>\r\n"
2820
+ },
2821
+ {
2822
+ "id": "selection-index",
2823
+ "intent": "行选择与索引列 -->",
2824
+ "code": "<!-- @intent 行选择与索引列 -->\r\n<script setup lang=\"ts\">\r\nimport { ref } from 'vue'\r\nimport MagicGrid from '@taocompany/magic-grid'\r\nimport type { ColumnDef } from '@taocompany/magic-grid/types/core'\r\nimport '@taocompany/magic-grid/tokens.css'\r\nimport '@taocompany/magic-grid/style.css'\r\n\r\ninterface Row { id: number; name: string }\r\n\r\nconst columns = ref<ColumnDef<Row>[]>([{ prop: 'name', label: '名称' }])\r\nconst data = ref<Row[]>([\r\n { id: 1, name: 'One' },\r\n { id: 2, name: 'Two' },\r\n])\r\n</script>\r\n\r\n<template>\r\n <MagicGrid\r\n :columns=\"columns\"\r\n :data=\"data\"\r\n row-key=\"id\"\r\n row-selection=\"multiple\"\r\n show-index-column\r\n height=\"360\"\r\n />\r\n</template>\r\n"
2825
+ },
2826
+ {
2827
+ "id": "row-grouping",
2828
+ "intent": "行分组 rowGrouping -->",
2829
+ "code": "<!-- @intent 行分组 rowGrouping -->\r\n<script setup lang=\"ts\">\r\nimport { ref } from 'vue'\r\nimport MagicGrid from '@taocompany/magic-grid'\r\nimport type { ColumnDef } from '@taocompany/magic-grid/types/core'\r\nimport '@taocompany/magic-grid/tokens.css'\r\nimport '@taocompany/magic-grid/style.css'\r\n\r\ninterface Row { id: number; country: string; city: string }\r\n\r\nconst columns = ref<ColumnDef<Row>[]>([\r\n { prop: 'country', label: '国家', rowGroup: true },\r\n { prop: 'city', label: '城市' },\r\n])\r\nconst data = ref<Row[]>([\r\n { id: 1, country: 'CN', city: '上海' },\r\n { id: 2, country: 'CN', city: '北京' },\r\n])\r\n</script>\r\n\r\n<template>\r\n <MagicGrid\r\n :columns=\"columns\"\r\n :data=\"data\"\r\n row-key=\"id\"\r\n row-grouping\r\n :group-default-expanded=\"1\"\r\n height=\"360\"\r\n />\r\n</template>\r\n"
2830
+ },
2831
+ {
2832
+ "id": "tree",
2833
+ "intent": "树形表格 tree + 必填 getDataPath -->",
2834
+ "code": "<!-- @intent 树形表格 tree + 必填 getDataPath -->\r\n<script setup lang=\"ts\">\r\nimport { ref } from 'vue'\r\nimport MagicGrid from '@taocompany/magic-grid'\r\nimport type { ColumnDef } from '@taocompany/magic-grid/types/core'\r\nimport '@taocompany/magic-grid/tokens.css'\r\nimport '@taocompany/magic-grid/style.css'\r\n\r\ninterface Row { id: string; name: string; pathSegments: string[] }\r\n\r\nconst columns = ref<ColumnDef<Row>[]>([{ prop: 'name', label: '节点' }])\r\nconst data = ref<Row[]>([\r\n { id: '1', name: '根', pathSegments: ['根'] },\r\n { id: '1-1', name: '子', pathSegments: ['根', '子'] },\r\n])\r\n\r\nfunction getDataPath(row: Row) {\r\n return row.pathSegments\r\n}\r\n</script>\r\n\r\n<template>\r\n <MagicGrid\r\n :columns=\"columns\"\r\n :data=\"data\"\r\n row-key=\"id\"\r\n tree\r\n :get-data-path=\"getDataPath\"\r\n height=\"360\"\r\n />\r\n</template>\r\n"
2835
+ },
2836
+ {
2837
+ "id": "tree-lazy",
2838
+ "intent": "树形懒加载 loadTreeChildren -->",
2839
+ "code": "<!-- @intent 树形懒加载 loadTreeChildren -->\r\n<script setup lang=\"ts\">\r\nimport { ref } from 'vue'\r\nimport MagicGrid from '@taocompany/magic-grid'\r\nimport type { ColumnDef } from '@taocompany/magic-grid/types/core'\r\nimport '@taocompany/magic-grid/tokens.css'\r\nimport '@taocompany/magic-grid/style.css'\r\n\r\ninterface Row { id: string; name: string; pathSegments: string[] }\r\n\r\nconst columns = ref<ColumnDef<Row>[]>([{ prop: 'name', label: '节点' }])\r\nconst data = ref<Row[]>([{ id: 'r', name: '根', pathSegments: ['根'] }])\r\n\r\nfunction getDataPath(row: Row) {\r\n return row.pathSegments\r\n}\r\n\r\nasync function loadTreeChildren(parent: Row) {\r\n return [{ id: `${parent.id}-1`, name: '懒加载子节点', pathSegments: [...parent.pathSegments, '子'] }]\r\n}\r\n\r\nfunction hasTreeChildren(row: Row) {\r\n return row.pathSegments.length < 2\r\n}\r\n</script>\r\n\r\n<template>\r\n <MagicGrid\r\n :columns=\"columns\"\r\n :data=\"data\"\r\n row-key=\"id\"\r\n tree\r\n tree-lazy-load\r\n :get-data-path=\"getDataPath\"\r\n :load-tree-children=\"loadTreeChildren\"\r\n :has-tree-children=\"hasTreeChildren\"\r\n height=\"360\"\r\n />\r\n</template>\r\n"
2840
+ },
2841
+ {
2842
+ "id": "master-detail",
2843
+ "intent": "主从展开 masterDetail + getDetailRowData -->",
2844
+ "code": "<!-- @intent 主从展开 masterDetail + getDetailRowData -->\r\n<script setup lang=\"ts\">\r\nimport { ref } from 'vue'\r\nimport MagicGrid from '@taocompany/magic-grid'\r\nimport type { ColumnDef } from '@taocompany/magic-grid/types/core'\r\nimport '@taocompany/magic-grid/tokens.css'\r\nimport '@taocompany/magic-grid/style.css'\r\n\r\ninterface Row { id: number; orderNo: string }\r\n\r\nconst columns = ref<ColumnDef<Row>[]>([{ prop: 'orderNo', label: '订单号' }])\r\nconst data = ref<Row[]>([{ id: 1, orderNo: 'SO-1001' }])\r\n\r\nasync function getDetailRowData(_row: Row) {\r\n return { lines: [{ sku: 'X', qty: 1 }] }\r\n}\r\n</script>\r\n\r\n<template>\r\n <MagicGrid\r\n :columns=\"columns\"\r\n :data=\"data\"\r\n row-key=\"id\"\r\n master-detail\r\n :get-detail-row-data=\"getDetailRowData\"\r\n height=\"360\"\r\n >\r\n <template #detail-row=\"{ detailRowData }\">\r\n <pre>{{ detailRowData }}</pre>\r\n </template>\r\n </MagicGrid>\r\n</template>\r\n"
2845
+ },
2846
+ {
2847
+ "id": "cell-selection",
2848
+ "intent": "框选与粘贴 cellSelection -->",
2849
+ "code": "<!-- @intent 框选与粘贴 cellSelection -->\r\n<script setup lang=\"ts\">\r\nimport { ref } from 'vue'\r\nimport MagicGrid from '@taocompany/magic-grid'\r\nimport type { ColumnDef } from '@taocompany/magic-grid/types/core'\r\nimport '@taocompany/magic-grid/tokens.css'\r\nimport '@taocompany/magic-grid/style.css'\r\n\r\ninterface Row { id: number; a: number; b: number }\r\n\r\nconst columns = ref<ColumnDef<Row>[]>([\r\n { prop: 'a', label: 'A' },\r\n { prop: 'b', label: 'B' },\r\n])\r\nconst data = ref<Row[]>([\r\n { id: 1, a: 1, b: 2 },\r\n { id: 2, a: 3, b: 4 },\r\n])\r\n</script>\r\n\r\n<template>\r\n <MagicGrid\r\n :columns=\"columns\"\r\n :data=\"data\"\r\n row-key=\"id\"\r\n :cell-selection=\"{ handleMode: 'range' }\"\r\n enable-cell-paste\r\n height=\"360\"\r\n />\r\n</template>\r\n"
2850
+ },
2851
+ {
2852
+ "id": "row-move",
2853
+ "intent": "编程式行移动 GridApi.moveRow + indexMode -->",
2854
+ "code": "<!-- @intent 编程式行移动 GridApi.moveRow + indexMode -->\r\n<script setup lang=\"ts\">\r\nimport { ref } from 'vue'\r\nimport { MagicGrid, type MagicGridComponent } from '@taocompany/magic-grid'\r\nimport type {\r\n ColumnDef,\r\n MagicGridExpose,\r\n RowIndexMode,\r\n} from '@taocompany/magic-grid/types/core'\r\nimport '@taocompany/magic-grid/tokens.css'\r\nimport '@taocompany/magic-grid/style.css'\r\n\r\ninterface Row { id: number; name: string }\r\n\r\ntype MagicGridInstance = InstanceType<MagicGridComponent> & MagicGridExpose\r\n\r\nconst gridRef = ref<MagicGridInstance>()\r\nconst columns = ref<ColumnDef[]>([{ prop: 'name', label: '名称' }])\r\nconst data = ref<Row[]>([\r\n { id: 1, name: 'First' },\r\n { id: 2, name: 'Second' },\r\n])\r\n\r\nconst indexMode: RowIndexMode = 'source'\r\n\r\nfunction moveUp() {\r\n void gridRef.value?.api?.moveRow(2, 0, indexMode)\r\n}\r\n</script>\r\n\r\n<template>\r\n <button type=\"button\" @click=\"moveUp\">上移第二行</button>\r\n <MagicGrid ref=\"gridRef\" :columns=\"columns\" :data=\"data\" row-key=\"id\" show-index-column height=\"360\" />\r\n</template>\r\n"
2855
+ },
2856
+ {
2857
+ "id": "performance",
2858
+ "intent": "虚拟滚动与渲染性能调参 -->",
2859
+ "code": "<!-- @intent 虚拟滚动与渲染性能调参 -->\r\n<script setup lang=\"ts\">\r\nimport { ref } from 'vue'\r\nimport MagicGrid from '@taocompany/magic-grid'\r\nimport type { ColumnDef } from '@taocompany/magic-grid/types/core'\r\nimport '@taocompany/magic-grid/tokens.css'\r\nimport '@taocompany/magic-grid/style.css'\r\n\r\ninterface Row { id: number; value: string }\r\n\r\nconst columns = ref<ColumnDef<Row>[]>([\r\n { prop: 'id', label: 'ID', width: 90 },\r\n { prop: 'value', label: '值' },\r\n])\r\nconst data = ref<Row[]>(\r\n Array.from({ length: 5000 }, (_, i) => ({ id: i + 1, value: `row-${i + 1}` })),\r\n)\r\n</script>\r\n\r\n<template>\r\n <MagicGrid\r\n :columns=\"columns\"\r\n :data=\"data\"\r\n row-key=\"id\"\r\n :row-buffer=\"20\"\r\n :scroll-end-flush-ms=\"16\"\r\n cell-renderer-presentation=\"deferred\"\r\n height=\"480\"\r\n />\r\n</template>\r\n"
2860
+ }
2861
+ ]
2862
+ }