@tmagic/editor 1.8.0-beta.3 → 1.8.0-beta.5

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 (92) hide show
  1. package/dist/es/components/CompareForm.vue_vue_type_script_setup_true_lang.js +15 -1
  2. package/dist/es/components/ToolButton.vue_vue_type_script_setup_true_lang.js +6 -6
  3. package/dist/es/hooks/use-code-block-edit.js +6 -3
  4. package/dist/es/hooks/use-data-source-edit.js +5 -2
  5. package/dist/es/hooks/use-stage.js +6 -3
  6. package/dist/es/index.js +6 -3
  7. package/dist/es/initService.js +1 -1
  8. package/dist/es/layouts/Framework.vue_vue_type_script_setup_true_lang.js +1 -1
  9. package/dist/es/layouts/NavMenu.vue_vue_type_script_setup_true_lang.js +1 -1
  10. package/dist/es/layouts/history-list/Bucket.vue_vue_type_script_setup_true_lang.js +19 -51
  11. package/dist/es/layouts/history-list/BucketTab.vue_vue_type_script_setup_true_lang.js +22 -36
  12. package/dist/es/layouts/history-list/GroupRow.vue_vue_type_script_setup_true_lang.js +152 -93
  13. package/dist/es/layouts/history-list/HistoryDiffDialog.vue_vue_type_script_setup_true_lang.js +36 -10
  14. package/dist/es/layouts/history-list/HistoryListPanel.vue_vue_type_script_setup_true_lang.js +334 -208
  15. package/dist/es/layouts/history-list/InitialRow.vue_vue_type_script_setup_true_lang.js +28 -7
  16. package/dist/es/layouts/history-list/PageTab.vue_vue_type_script_setup_true_lang.js +47 -57
  17. package/dist/es/layouts/history-list/composables.js +118 -25
  18. package/dist/es/layouts/page-bar/PageBar.vue_vue_type_script_setup_true_lang.js +4 -2
  19. package/dist/es/layouts/props-panel/PropsPanel.vue_vue_type_script_setup_true_lang.js +5 -1
  20. package/dist/es/layouts/sidebar/ComponentListPanel.vue_vue_type_script_setup_true_lang.js +1 -1
  21. package/dist/es/layouts/sidebar/Sidebar.vue_vue_type_script_setup_true_lang.js +5 -1
  22. package/dist/es/layouts/sidebar/code-block/CodeBlockList.vue_vue_type_script_setup_true_lang.js +3 -3
  23. package/dist/es/layouts/sidebar/code-block/CodeBlockListPanel.vue_vue_type_script_setup_true_lang.js +1 -1
  24. package/dist/es/layouts/sidebar/code-block/useContentMenu.js +1 -1
  25. package/dist/es/layouts/sidebar/data-source/DataSourceListPanel.vue_vue_type_script_setup_true_lang.js +1 -1
  26. package/dist/es/layouts/sidebar/data-source/useContentMenu.js +1 -1
  27. package/dist/es/layouts/sidebar/layer/LayerMenu.vue_vue_type_script_setup_true_lang.js +5 -5
  28. package/dist/es/layouts/sidebar/layer/LayerNodeTool.vue_vue_type_script_setup_true_lang.js +1 -1
  29. package/dist/es/layouts/workspace/viewer/Stage.vue_vue_type_script_setup_true_lang.js +1 -1
  30. package/dist/es/layouts/workspace/viewer/ViewerMenu.vue_vue_type_script_setup_true_lang.js +8 -8
  31. package/dist/es/services/codeBlock.js +105 -42
  32. package/dist/es/services/dataSource.js +85 -35
  33. package/dist/es/services/editor.js +317 -122
  34. package/dist/es/services/history.js +270 -204
  35. package/dist/es/services/keybinding.js +3 -3
  36. package/dist/es/services/ui.js +3 -0
  37. package/dist/es/style.css +65 -10
  38. package/dist/es/utils/content-menu.js +17 -9
  39. package/dist/es/utils/editor.js +35 -1
  40. package/dist/es/utils/history.js +223 -0
  41. package/dist/es/utils/indexed-db.js +86 -0
  42. package/dist/es/utils/undo-redo.js +60 -1
  43. package/dist/style.css +65 -10
  44. package/dist/tmagic-editor.umd.cjs +2047 -954
  45. package/package.json +7 -7
  46. package/src/components/CompareForm.vue +21 -1
  47. package/src/components/ToolButton.vue +2 -2
  48. package/src/hooks/use-code-block-edit.ts +4 -3
  49. package/src/hooks/use-data-source-edit.ts +2 -2
  50. package/src/hooks/use-stage.ts +3 -3
  51. package/src/index.ts +1 -0
  52. package/src/initService.ts +1 -1
  53. package/src/layouts/Framework.vue +1 -1
  54. package/src/layouts/NavMenu.vue +1 -1
  55. package/src/layouts/history-list/Bucket.vue +34 -67
  56. package/src/layouts/history-list/BucketTab.vue +46 -51
  57. package/src/layouts/history-list/GroupRow.vue +150 -98
  58. package/src/layouts/history-list/HistoryDiffDialog.vue +96 -69
  59. package/src/layouts/history-list/HistoryListPanel.vue +298 -111
  60. package/src/layouts/history-list/InitialRow.vue +25 -9
  61. package/src/layouts/history-list/PageTab.vue +58 -48
  62. package/src/layouts/history-list/composables.ts +210 -29
  63. package/src/layouts/page-bar/PageBar.vue +4 -2
  64. package/src/layouts/props-panel/PropsPanel.vue +5 -1
  65. package/src/layouts/sidebar/ComponentListPanel.vue +9 -5
  66. package/src/layouts/sidebar/Sidebar.vue +6 -1
  67. package/src/layouts/sidebar/code-block/CodeBlockList.vue +5 -5
  68. package/src/layouts/sidebar/code-block/CodeBlockListPanel.vue +1 -1
  69. package/src/layouts/sidebar/code-block/useContentMenu.ts +1 -1
  70. package/src/layouts/sidebar/data-source/DataSourceListPanel.vue +1 -1
  71. package/src/layouts/sidebar/data-source/useContentMenu.ts +1 -1
  72. package/src/layouts/sidebar/layer/LayerMenu.vue +19 -11
  73. package/src/layouts/sidebar/layer/LayerNodeTool.vue +7 -4
  74. package/src/layouts/workspace/viewer/Stage.vue +1 -1
  75. package/src/layouts/workspace/viewer/ViewerMenu.vue +8 -8
  76. package/src/services/codeBlock.ts +129 -35
  77. package/src/services/dataSource.ts +105 -34
  78. package/src/services/editor.ts +470 -157
  79. package/src/services/history.ts +312 -203
  80. package/src/services/keybinding.ts +3 -3
  81. package/src/services/ui.ts +7 -0
  82. package/src/theme/history-list-panel.scss +87 -6
  83. package/src/theme/page-bar.scss +0 -4
  84. package/src/theme/props-panel.scss +3 -3
  85. package/src/type.ts +221 -61
  86. package/src/utils/content-menu.ts +18 -9
  87. package/src/utils/editor.ts +41 -1
  88. package/src/utils/history.ts +298 -0
  89. package/src/utils/index.ts +2 -0
  90. package/src/utils/indexed-db.ts +122 -0
  91. package/src/utils/undo-redo.ts +88 -0
  92. package/types/index.d.ts +871 -308
package/types/index.d.ts CHANGED
@@ -69,6 +69,16 @@ declare const canUsePluginMethods$7: {
69
69
  type AsyncMethodName$4 = Writable<(typeof canUsePluginMethods$7)['async']>;
70
70
  declare class CodeBlock extends BaseService {
71
71
  private state;
72
+ /**
73
+ * 最近一次写入历史栈的代码块历史记录 uuid(单条写入场景:新增 / 更新)。
74
+ * 供 setCodeDslById(Sync)AndGetHistoryId 取回,普通方法不读取它。
75
+ */
76
+ private lastPushedHistoryId;
77
+ /**
78
+ * deleteCodeDslByIds 一次删除多个代码块时,按写入顺序收集的历史记录 uuid 列表。
79
+ * 在 deleteCodeDslByIds 入口处重置,供 deleteCodeDslByIdsAndGetHistoryId 取回。
80
+ */
81
+ private lastDeletedHistoryIds;
72
82
  constructor();
73
83
  /**
74
84
  * 设置活动的代码块dsl数据源
@@ -100,7 +110,9 @@ declare class CodeBlock extends BaseService {
100
110
  */
101
111
  setCodeDslById(id: Id, codeConfig: Partial<CodeBlockContent>, {
102
112
  changeRecords,
103
- doNotPushHistory
113
+ doNotPushHistory,
114
+ historyDescription,
115
+ historySource
104
116
  }?: HistoryOpOptionsWithChangeRecords): Promise<void>;
105
117
  /**
106
118
  * 为了兼容历史原因
@@ -117,7 +129,8 @@ declare class CodeBlock extends BaseService {
117
129
  setCodeDslByIdSync(id: Id, codeConfig: Partial<CodeBlockContent>, force?: boolean, {
118
130
  changeRecords,
119
131
  doNotPushHistory,
120
- historyDescription
132
+ historyDescription,
133
+ historySource
121
134
  }?: HistoryOpOptionsWithChangeRecords): void;
122
135
  /**
123
136
  * 根据代码块id数组获取代码dsl
@@ -178,8 +191,25 @@ declare class CodeBlock extends BaseService {
178
191
  */
179
192
  deleteCodeDslByIds(codeIds: Id[], {
180
193
  doNotPushHistory,
181
- historyDescription
194
+ historyDescription,
195
+ historySource
182
196
  }?: HistoryOpOptions): Promise<void>;
197
+ /**
198
+ * 下列 *AndGetHistoryId 方法与对应的写入方法行为完全一致,
199
+ * 唯一区别是返回值为本次写入历史栈的历史记录 uuid({@link CodeBlockStepValue.uuid}),
200
+ * 可用于精确引用 / 定位该条历史记录(埋点、revert、跨端同步等)。
201
+ *
202
+ * 当本次操作未写入历史(doNotPushHistory 为 true、或无对应记录)时:单条写入返回 null,批量删除返回空数组。
203
+ */
204
+ /** 等价于 {@link setCodeDslById},但返回本次写入历史记录的 uuid(未入栈时返回 null)。 */
205
+ setCodeDslByIdAndGetHistoryId(id: Id, codeConfig: Partial<CodeBlockContent>, options?: HistoryOpOptionsWithChangeRecords): Promise<string | null>;
206
+ /** 等价于 {@link setCodeDslByIdSync},但返回本次写入历史记录的 uuid(未入栈时返回 null)。 */
207
+ setCodeDslByIdSyncAndGetHistoryId(id: Id, codeConfig: Partial<CodeBlockContent>, force?: boolean, options?: HistoryOpOptionsWithChangeRecords): string | null;
208
+ /**
209
+ * 等价于 {@link deleteCodeDslByIds},但返回本次写入的全部历史记录 uuid(按删除顺序)。
210
+ * 一次删除多个代码块会产生多条历史记录,因此返回数组;未写入任何历史时返回空数组。
211
+ */
212
+ deleteCodeDslByIdsAndGetHistoryId(codeIds: Id[], options?: HistoryOpOptions): Promise<string[]>;
183
213
  setParamsColConfig(config: TableColumnConfig): void;
184
214
  getParamsColConfig(): TableColumnConfig | undefined;
185
215
  /**
@@ -223,6 +253,15 @@ declare class CodeBlock extends BaseService {
223
253
  * @returns 反向后产生的新 step;目标不存在 / 未应用时返回 null
224
254
  */
225
255
  revert(id: Id, index: number): Promise<CodeBlockStepValue | null>;
256
+ /**
257
+ * 通过历史记录 uuid 回滚某条代码块历史步骤,语义同 {@link revert},
258
+ * 仅无需调用方再传 codeBlockId 与 index:内部会按 uuid({@link CodeBlockStepValue.uuid})
259
+ * 在全部代码块栈中定位对应步骤后再回滚。
260
+ *
261
+ * @param uuid 目标历史记录的 uuid,通常由 {@link setCodeDslByIdAndGetHistoryId} 等方法返回
262
+ * @returns 反向后产生的新 step;找不到对应 uuid / 未应用时返回 null
263
+ */
264
+ revertById(uuid: string): Promise<CodeBlockStepValue | null>;
226
265
  /**
227
266
  * 生成代码块唯一id
228
267
  * @returns {Id} 代码块唯一id
@@ -264,7 +303,7 @@ declare class CodeBlock extends BaseService {
264
303
  private applyHistoryStep;
265
304
  }
266
305
  type CodeBlockService = CodeBlock;
267
- declare const _default$37: CodeBlock;
306
+ declare const _default$38: CodeBlock;
268
307
  //#endregion
269
308
  //#region temp/packages/editor/src/services/componentList.d.ts
270
309
  declare class ComponentList extends BaseService {
@@ -298,6 +337,12 @@ declare const canUsePluginMethods$6: {
298
337
  type SyncMethodName$4 = Writable<(typeof canUsePluginMethods$6)['sync']>;
299
338
  declare class DataSource extends BaseService {
300
339
  private state;
340
+ /**
341
+ * 最近一次写入历史栈的数据源历史记录 uuid。
342
+ * 供 *AndGetHistoryId 系列方法在调用 add / update / remove 后取回本次产生的历史记录 id;
343
+ * 普通方法不读取它,调用前由 *AndGetHistoryId 重置为 null。
344
+ */
345
+ private lastPushedHistoryId;
301
346
  constructor();
302
347
  set<K extends StateKey$1, T extends State$2[K]>(name: K, value: T): void;
303
348
  get<K extends StateKey$1>(name: K): State$2[K];
@@ -318,7 +363,8 @@ declare class DataSource extends BaseService {
318
363
  */
319
364
  add(config: DataSourceSchema, {
320
365
  doNotPushHistory,
321
- historyDescription
366
+ historyDescription,
367
+ historySource
322
368
  }?: HistoryOpOptions): {
323
369
  id: string;
324
370
  type: string;
@@ -341,7 +387,8 @@ declare class DataSource extends BaseService {
341
387
  update(config: DataSourceSchema, {
342
388
  changeRecords,
343
389
  doNotPushHistory,
344
- historyDescription
390
+ historyDescription,
391
+ historySource
345
392
  }?: HistoryOpOptionsWithChangeRecords): DataSourceSchema;
346
393
  /**
347
394
  * 删除数据源
@@ -352,8 +399,22 @@ declare class DataSource extends BaseService {
352
399
  */
353
400
  remove(id: string, {
354
401
  doNotPushHistory,
355
- historyDescription
402
+ historyDescription,
403
+ historySource
356
404
  }?: HistoryOpOptions): void;
405
+ /**
406
+ * 下列 *AndGetHistoryId 方法与对应的 add / update / remove 行为完全一致,
407
+ * 唯一区别是返回值为本次写入历史栈的历史记录 uuid({@link DataSourceStepValue.uuid}),
408
+ * 而非数据源配置。可用于精确引用 / 定位该条历史记录(埋点、revert、跨端同步等)。
409
+ *
410
+ * 当本次操作未写入历史(doNotPushHistory 为 true、或无对应记录)时返回 null。
411
+ */
412
+ /** 等价于 {@link add},但返回本次写入历史记录的 uuid(未入栈时返回 null)。 */
413
+ addAndGetHistoryId(config: DataSourceSchema, options?: HistoryOpOptions): string | null;
414
+ /** 等价于 {@link update},但返回本次写入历史记录的 uuid(未入栈时返回 null)。 */
415
+ updateAndGetHistoryId(config: DataSourceSchema, options?: HistoryOpOptionsWithChangeRecords): string | null;
416
+ /** 等价于 {@link remove},但返回本次写入历史记录的 uuid(未入栈时返回 null)。 */
417
+ removeAndGetHistoryId(id: string, options?: HistoryOpOptions): string | null;
357
418
  /**
358
419
  * 撤销指定数据源的最近一次变更。
359
420
  *
@@ -394,6 +455,15 @@ declare class DataSource extends BaseService {
394
455
  * @returns 反向后产生的新 step;目标不存在 / 未应用时返回 null
395
456
  */
396
457
  revert(id: Id, index: number): DataSourceStepValue | null;
458
+ /**
459
+ * 通过历史记录 uuid 回滚某条数据源历史步骤,语义同 {@link revert},
460
+ * 仅无需调用方再传 dataSourceId 与 index:内部会按 uuid({@link DataSourceStepValue.uuid})
461
+ * 在全部数据源栈中定位对应步骤后再回滚。
462
+ *
463
+ * @param uuid 目标历史记录的 uuid,通常由 {@link addAndGetHistoryId} 等方法返回
464
+ * @returns 反向后产生的新 step;找不到对应 uuid / 未应用时返回 null
465
+ */
466
+ revertById(uuid: string): DataSourceStepValue | null;
397
467
  createId(): string;
398
468
  getDataSourceById(id: string): DataSourceSchema | undefined;
399
469
  resetState(): void;
@@ -432,7 +502,7 @@ declare class DataSource extends BaseService {
432
502
  private applyHistoryStep;
433
503
  }
434
504
  type DataSourceService = DataSource;
435
- declare const _default$38: DataSource;
505
+ declare const _default$39: DataSource;
436
506
  //#endregion
437
507
  //#region temp/packages/editor/src/services/dep.d.ts
438
508
  interface DepEvents {
@@ -485,19 +555,28 @@ declare class Dep extends BaseService {
485
555
  private enqueueTask;
486
556
  }
487
557
  type DepService = Dep;
488
- declare const _default$40: Dep;
558
+ declare const _default$41: Dep;
489
559
  //#endregion
490
560
  //#region temp/packages/editor/src/services/editor.d.ts
491
561
  declare class Editor extends BaseService {
492
562
  state: StoreState;
493
563
  private selectionBeforeOp;
564
+ /**
565
+ * 最近一次 pushOpHistory 写入的历史记录 uuid。
566
+ * 供 *AndGetHistoryId 系列方法在调用普通操作后取回本次产生的历史记录 id;
567
+ * 普通操作不会读取它,调用前由 *AndGetHistoryId 重置为 null。
568
+ */
569
+ private lastPushedHistoryId;
494
570
  constructor();
495
571
  /**
496
572
  * 设置当前指点节点配置
497
573
  * @param name 'root' | 'page' | 'parent' | 'node' | 'highlightNode' | 'nodes' | 'stage' | 'modifiedNodeIds' | 'pageLength' | 'pageFragmentLength
498
574
  * @param value MNode
575
+ * @param options.historySource 设置 root 时,本次变更写入历史记录的「操作来源」(仅 name === 'root' 时生效)
499
576
  */
500
- set<K extends StoreStateKey, T extends StoreState[K]>(name: K, value: T): void;
577
+ set<K extends StoreStateKey, T extends StoreState[K]>(name: K, value: T, options?: {
578
+ historySource?: HistoryOpSource;
579
+ }): void;
501
580
  /**
502
581
  * 获取当前指点节点配置
503
582
  * @param name 'root' | 'page' | 'parent' | 'node' | 'highlightNode' | 'nodes' | 'stage' | 'modifiedNodeIds' | 'pageLength' | 'pageFragmentLength'
@@ -571,7 +650,8 @@ declare class Editor extends BaseService {
571
650
  doNotSelect,
572
651
  doNotSwitchPage,
573
652
  doNotPushHistory,
574
- historyDescription
653
+ historyDescription,
654
+ historySource
575
655
  }?: DslOpOptions): Promise<MNode | MNode[]>;
576
656
  doRemove(node: MNode, {
577
657
  doNotSelect,
@@ -589,12 +669,15 @@ declare class Editor extends BaseService {
589
669
  doNotSelect,
590
670
  doNotSwitchPage,
591
671
  doNotPushHistory,
592
- historyDescription
672
+ historyDescription,
673
+ historySource
593
674
  }?: DslOpOptions): Promise<void>;
594
675
  doUpdate(config: MNode, {
595
- changeRecords
676
+ changeRecords,
677
+ historySource
596
678
  }?: {
597
679
  changeRecords?: ChangeRecord[];
680
+ historySource?: HistoryOpSource;
598
681
  }): Promise<{
599
682
  newNode: MNode;
600
683
  oldNode: MNode;
@@ -616,6 +699,7 @@ declare class Editor extends BaseService {
616
699
  changeRecordList?: ChangeRecord[][];
617
700
  doNotPushHistory?: boolean;
618
701
  historyDescription?: string;
702
+ historySource?: HistoryOpSource;
619
703
  }): Promise<MNode | MNode[]>;
620
704
  /**
621
705
  * 将id为id1的组件移动到id为id2的组件位置上,例如:[1,2,3,4] -> sort(1,3) -> [2,1,3,4]
@@ -629,7 +713,8 @@ declare class Editor extends BaseService {
629
713
  */
630
714
  sort(id1: Id, id2: Id, {
631
715
  doNotSelect,
632
- doNotPushHistory
716
+ doNotPushHistory,
717
+ historySource
633
718
  }?: DslOpOptions): Promise<void>;
634
719
  /**
635
720
  * 将组件节点配置存储到localStorage中
@@ -656,7 +741,9 @@ declare class Editor extends BaseService {
656
741
  paste(position?: PastePosition, collectorOptions?: TargetOptions, {
657
742
  doNotSelect,
658
743
  doNotSwitchPage,
659
- doNotPushHistory
744
+ doNotPushHistory,
745
+ historyDescription,
746
+ historySource
660
747
  }?: DslOpOptions): Promise<MNode | MNode[] | void>;
661
748
  doPaste(config: MNode[], position?: PastePosition): Promise<MNode[]>;
662
749
  doAlignCenter(config: MNode): Promise<MNode>;
@@ -671,7 +758,9 @@ declare class Editor extends BaseService {
671
758
  */
672
759
  alignCenter(config: MNode | MNode[], {
673
760
  doNotSelect,
674
- doNotPushHistory
761
+ doNotPushHistory,
762
+ historyDescription,
763
+ historySource
675
764
  }?: DslOpOptions): Promise<MNode | MNode[]>;
676
765
  /**
677
766
  * 移动当前选中节点位置
@@ -680,7 +769,9 @@ declare class Editor extends BaseService {
680
769
  * @param options.doNotPushHistory 是否不写入历史记录(默认 false)
681
770
  */
682
771
  moveLayer(offset: number | LayerOffset, {
683
- doNotPushHistory
772
+ doNotPushHistory,
773
+ historyDescription,
774
+ historySource
684
775
  }?: DslOpOptions): Promise<void>;
685
776
  /**
686
777
  * 移动一个或多个节点到指定容器中。
@@ -699,11 +790,40 @@ declare class Editor extends BaseService {
699
790
  moveToContainer(config: MNode | MNode[], targetId: Id, {
700
791
  doNotSelect,
701
792
  doNotSwitchPage,
702
- doNotPushHistory
793
+ doNotPushHistory,
794
+ historyDescription,
795
+ historySource
703
796
  }?: DslOpOptions): Promise<MNode | MNode[]>;
704
797
  dragTo(config: MNode | MNode[], targetParent: MContainer, targetIndex: number, {
705
- doNotPushHistory
798
+ doNotPushHistory,
799
+ historyDescription,
800
+ historySource
706
801
  }?: DslOpOptions): Promise<void>;
802
+ /**
803
+ * 下列 *AndGetHistoryId 方法与对应的普通操作(add / remove / update ...)行为完全一致,
804
+ * 唯一区别是返回值为本次写入历史栈的历史记录 uuid({@link StepValue.uuid}),
805
+ * 而非节点 / 节点数组。可用于精确引用 / 定位该条历史记录(埋点、revert、跨端同步等)。
806
+ *
807
+ * 当本次操作未写入历史(doNotPushHistory 为 true、或操作无实际变更 / 提前返回)时返回 null。
808
+ */
809
+ /** 等价于 {@link add},但返回本次写入历史记录的 uuid(未入栈时返回 null)。 */
810
+ addAndGetHistoryId(addNode: AddMNode | MNode[], parent?: MContainer | null, options?: DslOpOptions): Promise<string | null>;
811
+ /** 等价于 {@link remove},但返回本次写入历史记录的 uuid(未入栈时返回 null)。 */
812
+ removeAndGetHistoryId(nodeOrNodeList: MNode | MNode[], options?: DslOpOptions): Promise<string | null>;
813
+ /** 等价于 {@link update},但返回本次写入历史记录的 uuid(未入栈时返回 null)。 */
814
+ updateAndGetHistoryId(config: MNode | MNode[], data?: {
815
+ changeRecords?: ChangeRecord[];
816
+ changeRecordList?: ChangeRecord[][];
817
+ doNotPushHistory?: boolean;
818
+ historyDescription?: string;
819
+ historySource?: HistoryOpSource;
820
+ }): Promise<string | null>;
821
+ /** 等价于 {@link moveLayer},但返回本次写入历史记录的 uuid(未入栈时返回 null)。 */
822
+ moveLayerAndGetHistoryId(offset: number | LayerOffset, options?: DslOpOptions): Promise<string | null>;
823
+ /** 等价于 {@link moveToContainer},但返回本次写入历史记录的 uuid(未入栈时返回 null)。 */
824
+ moveToContainerAndGetHistoryId(config: MNode | MNode[], targetId: Id, options?: DslOpOptions): Promise<string | null>;
825
+ /** 等价于 {@link dragTo},但返回本次写入历史记录的 uuid(未入栈时返回 null)。 */
826
+ dragToAndGetHistoryId(config: MNode | MNode[], targetParent: MContainer, targetIndex: number, options?: DslOpOptions): Promise<string | null>;
707
827
  /**
708
828
  * 撤销当前操作
709
829
  * @returns 被撤销的操作
@@ -731,6 +851,15 @@ declare class Editor extends BaseService {
731
851
  * @returns 反向后产生的新 step;目标不存在 / 未应用 / 反向失败时返回 null
732
852
  */
733
853
  revertPageStep(index: number): Promise<StepValue | null>;
854
+ /**
855
+ * 通过历史记录 uuid 回滚当前页面的某条历史步骤,语义与 {@link revertPageStep} 完全一致,
856
+ * 仅入参从 index 改为 uuid({@link StepValue.uuid})。uuid 不随栈内步骤增删而变化,
857
+ * 更适合业务侧持有引用后再回滚(埋点、跨端同步等场景)。
858
+ *
859
+ * @param uuid 目标历史记录的 uuid,通常由 *AndGetHistoryId 方法返回
860
+ * @returns 反向后产生的新 step;找不到对应 uuid / 未应用 / 反向失败时返回 null
861
+ */
862
+ revertPageStepById(uuid: string): Promise<StepValue | null>;
734
863
  /**
735
864
  * 跳转当前页面历史栈到指定游标位置。
736
865
  *
@@ -742,7 +871,9 @@ declare class Editor extends BaseService {
742
871
  */
743
872
  gotoPageStep(targetCursor: number): Promise<number>;
744
873
  move(left: number, top: number, {
745
- doNotPushHistory
874
+ doNotPushHistory,
875
+ historyDescription,
876
+ historySource
746
877
  }?: DslOpOptions): Promise<void>;
747
878
  resetState(): void;
748
879
  destroy(): void;
@@ -753,6 +884,24 @@ declare class Editor extends BaseService {
753
884
  emit<Name extends keyof EditorEvents, Param extends EditorEvents[Name]>(eventName: Name, ...args: Param): boolean;
754
885
  private addModifiedNodeId;
755
886
  private captureSelectionBeforeOp;
887
+ /**
888
+ * 比较「上一次 root」与「新 root」的页面 / 页面片,按页面粒度把整体替换拆成历史记录:
889
+ * - 新旧都存在且内容变化的页面 → 一条 `update`(整页快照替换,无 changeRecords);
890
+ * - 仅新 root 存在的页面 → 一条 `add`;
891
+ * - 仅旧 root 存在的页面 → 一条 `remove`。
892
+ *
893
+ * 每条记录落到对应页面自己的历史栈(与普通节点操作一致),并标记来源 `source`。
894
+ * 内容未变化的页面不产生记录,避免重复设置相同 DSL 时产生噪声。
895
+ */
896
+ private pushRootDiffHistory;
897
+ /**
898
+ * 构造一条页面级「set root」历史记录(不携带选区 / modifiedNodeIds 上下文)并落到该页面自己的栈。
899
+ *
900
+ * 连续 set root 替换:若该页栈最新一条已是**同来源**的 set root 记录({@link StepValue.rootStep} 且 `source` 相同),
901
+ * 则用本次记录**替换**它而非新增,避免源码反复保存 / 外部重设 DSL 时堆积多条 root 记录;
902
+ * 来源不同则照常新增(initial 基线不是 rootStep,不在此列)。
903
+ */
904
+ private pushPageDiffStep;
756
905
  private pushOpHistory;
757
906
  /**
758
907
  * 应用历史操作(撤销 / 重做)
@@ -770,7 +919,7 @@ declare class Editor extends BaseService {
770
919
  private selectedConfigExceptionHandler;
771
920
  }
772
921
  type EditorService = Editor;
773
- declare const _default$41: Editor;
922
+ declare const _default$42: Editor;
774
923
  //#endregion
775
924
  //#region temp/packages/editor/src/services/events.d.ts
776
925
  declare const canUsePluginMethods$5: {
@@ -792,14 +941,40 @@ declare class Events extends BaseService {
792
941
  usePlugin(options: AsyncHookPlugin<AsyncMethodName$3, Events> & SyncHookPlugin<SyncMethodName$3, Events>): void;
793
942
  }
794
943
  type EventsService = Events;
795
- declare const _default$42: Events;
944
+ declare const _default$43: Events;
796
945
  //#endregion
797
946
  //#region temp/packages/editor/src/utils/undo-redo.d.ts
947
+ /**
948
+ * UndoRedo 栈的可序列化快照,用于持久化(如写入 IndexedDB)后再还原。
949
+ */
950
+ interface SerializedUndoRedo<T = any> {
951
+ /** 栈内全部元素(按时间正序,索引 0 为最早一步)。 */
952
+ elementList: T[];
953
+ /** 游标位置(已应用步骤数量)。 */
954
+ listCursor: number;
955
+ /** 栈容量上限。 */
956
+ listMaxSize: number;
957
+ }
798
958
  declare class UndoRedo<T = any> {
959
+ /**
960
+ * 由 {@link UndoRedo.serialize} 产出的快照重建一个 UndoRedo 实例。
961
+ * 游标会被夹紧到 [0, length] 区间,避免脏数据导致越界。
962
+ *
963
+ * @param options.isSavedStep 可选谓词:若提供,则把游标定位到「最近一条满足该谓词的记录」之后
964
+ * (即恢复到最近一个已保存点);找不到匹配记录时退回快照中的原游标。
965
+ */
966
+ static fromSerialized<T = any>(data: SerializedUndoRedo<T>, options?: {
967
+ isSavedStep?: (element: T) => boolean;
968
+ }): UndoRedo<T>;
799
969
  private elementList;
800
970
  private listCursor;
801
971
  private listMaxSize;
802
972
  constructor(listMaxSize?: number);
973
+ /**
974
+ * 导出当前栈的可序列化快照(深克隆,避免外部改动污染内部状态)。
975
+ * 配合 {@link UndoRedo.fromSerialized} 可在持久化后完整还原撤销/重做栈。
976
+ */
977
+ serialize(): SerializedUndoRedo<T>;
803
978
  pushElement(element: T): void;
804
979
  canUndo(): boolean;
805
980
  /** 返回被撤销的操作 */
@@ -808,6 +983,19 @@ declare class UndoRedo<T = any> {
808
983
  /** 返回被重做的操作 */
809
984
  redo(): T | null;
810
985
  getCurrentElement(): T | null;
986
+ /**
987
+ * 用 `element` 替换当前游标所在元素(cursor - 1),并丢弃其后的重做尾部(与 {@link pushElement} 的丢尾一致),
988
+ * 游标位置保持不变(元素数量不增)。cursor 为 0(无已应用元素)时不做任何操作并返回 false。
989
+ * 用于「连续同类记录合并」等就地替换最新一条的场景。
990
+ */
991
+ replaceCurrentElement(element: T): boolean;
992
+ /**
993
+ * 对当前游标所在元素(cursor - 1)做就地更新;cursor 为 0(全部已撤销)时不做任何操作。
994
+ * 用于给「当前步骤」打标记(如标记为已保存)等元数据写入场景。
995
+ */
996
+ updateCurrentElement(updater: (element: T) => void): void;
997
+ /** 对栈内全部元素做就地更新。用于批量清理元数据(如清空所有元素的已保存标记)。 */
998
+ updateElements(updater: (element: T, index: number) => void): void;
811
999
  /**
812
1000
  * 返回栈内全部元素的浅克隆数组(按时间顺序,索引 0 为最早一步)。
813
1001
  * 仅用于历史面板等只读展示场景,不应直接修改返回值。
@@ -826,32 +1014,6 @@ declare class UndoRedo<T = any> {
826
1014
  //#endregion
827
1015
  //#region temp/packages/editor/src/services/history.d.ts
828
1016
  declare class History extends BaseService {
829
- /**
830
- * 把单个代码块栈拆成若干 group:
831
- * - 把"新增/删除"独立成组(语义上属于一次性事件,不应与 update 合并);
832
- * - 连续 'update' 合并到同一组,组内 steps 顺序就是发生顺序。
833
- */
834
- private static mergeCodeBlockSteps;
835
- private static mergeDataSourceSteps;
836
- /**
837
- * 根据 old/new 是否为 null 推断 opType(与 push 时的约定一致)。
838
- */
839
- private static detectOpType;
840
- /**
841
- * 把页面栈拆成若干 group:
842
- * - 单节点的 'update' 按 targetId 与相邻同 targetId 的 update 合并到一个 group;
843
- * - 'add' / 'remove' 始终独立成组(语义上是结构变更,不应被收纳进单节点修改组);
844
- * - 多节点 'update'(如批量改属性)也独立成组(无明确单一目标,避免误合并)。
845
- */
846
- private static mergePageSteps;
847
- /**
848
- * 解析 StepValue 中的"目标节点 id"用于合并:
849
- * - 单节点 update:取唯一一项 updatedItems 的节点 id;
850
- * - 其它情形(多节点 update / add / remove):返回 undefined,表示不参与合并。
851
- */
852
- private static detectPageTargetId;
853
- /** 解析 StepValue 中的目标节点可读名(用于 UI 展示)。 */
854
- private static detectPageTargetName;
855
1017
  state: {
856
1018
  pageId?: Id | undefined;
857
1019
  pageSteps: Record<Id, UndoRedo<StepValue>>;
@@ -865,6 +1027,27 @@ declare class History extends BaseService {
865
1027
  resetPage(): void;
866
1028
  changePage(page: MPage | MPageFragment): void;
867
1029
  resetState(): void;
1030
+ /**
1031
+ * 为指定页面 / 页面片种入一条「初始基线」记录(如加载 DSL 时的「初始 / 加载」基线)。
1032
+ *
1033
+ * 该记录是一条 `opType: 'initial'` 的 {@link StepValue},作为页面历史栈 **index 0 的固定底线**:
1034
+ * - 它是一条真实入栈的 step(随栈一起持久化),但被钉为撤销/回滚的下限——cursor 永不低于它,
1035
+ * 因此不会被 undo / goto / revert 触达(详见 {@link undo} / {@link setCanUndoRedo});
1036
+ * - 历史面板把它过滤出分组列表(见 {@link getPageHistoryGroups}),改由底部「初始」行展示。
1037
+ *
1038
+ * 仅当目标页面栈为空时种入(保证 initial 一定位于 index 0);已存在 initial 底线时默认不重复种入,
1039
+ * 传 `force=true` 且栈为空时按新基线种入。
1040
+ */
1041
+ setPageMarker(pageId: Id, options?: {
1042
+ name?: string;
1043
+ description?: string;
1044
+ source?: HistoryOpSource;
1045
+ }): StepValue | null;
1046
+ /**
1047
+ * 读取指定页面(缺省当前活动页)的初始基线 step(页面栈 index 0 且 `opType: 'initial'`);
1048
+ * 不存在时返回 undefined。
1049
+ */
1050
+ getPageMarker(pageId?: Id): StepValue | undefined;
868
1051
  /**
869
1052
  * 把一条步骤推入指定页面的栈;不指定 pageId 时落到当前活动页。
870
1053
  *
@@ -872,6 +1055,13 @@ declare class History extends BaseService {
872
1055
  * 否则会把记录错误地落到操作发起页 / 当前激活页,破坏目标页 / 源页的撤销栈语义。
873
1056
  */
874
1057
  push(state: StepValue, pageId?: Id): StepValue | null;
1058
+ /** 读取指定页面(缺省当前活动页)历史栈当前游标所在的 step(cursor - 1);无则返回 null。 */
1059
+ getCurrentPageStep(pageId?: Id): StepValue | null;
1060
+ /**
1061
+ * 用 `state` 替换指定页面栈当前游标所在的 step(并丢弃其后的重做尾部),游标不变。
1062
+ * 用于「连续 set root 记录合并」等就地替换最新一条的场景;替换成功后按需刷新 / 通知。
1063
+ */
1064
+ replaceCurrentPageStep(state: StepValue, pageId?: Id): StepValue | null;
875
1065
  /**
876
1066
  * 推入一条代码块变更记录(与页面/节点完全无关),按 `codeBlockId` 维度独立一份 UndoRedo 栈。
877
1067
  *
@@ -885,7 +1075,8 @@ declare class History extends BaseService {
885
1075
  oldContent: CodeBlockContent | null;
886
1076
  newContent: CodeBlockContent | null;
887
1077
  changeRecords?: ChangeRecord[]; /** 可选的人类可读描述(如「修改按钮颜色」),仅用于历史面板展示。 */
888
- historyDescription?: string;
1078
+ historyDescription?: string; /** 可选的操作途径(配置面板 / 菜单 / 接口等),仅用于历史面板展示与埋点。 */
1079
+ source?: HistoryOpSource;
889
1080
  }): CodeBlockStepValue | null;
890
1081
  /**
891
1082
  * 推入一条数据源变更记录(与页面/节点完全无关),按 `dataSourceId` 维度独立一份 UndoRedo 栈。
@@ -895,7 +1086,8 @@ declare class History extends BaseService {
895
1086
  oldSchema: DataSourceSchema | null;
896
1087
  newSchema: DataSourceSchema | null;
897
1088
  changeRecords?: ChangeRecord[]; /** 可选的人类可读描述,仅用于历史面板展示。 */
898
- historyDescription?: string;
1089
+ historyDescription?: string; /** 可选的操作途径(配置面板 / 菜单 / 接口等),仅用于历史面板展示与埋点。 */
1090
+ source?: HistoryOpSource;
899
1091
  }): DataSourceStepValue | null;
900
1092
  /** 撤销指定代码块的最近一次变更。 */
901
1093
  undoCodeBlock(codeBlockId: Id): CodeBlockStepValue | null;
@@ -916,6 +1108,54 @@ declare class History extends BaseService {
916
1108
  undo(): StepValue | null;
917
1109
  redo(): StepValue | null;
918
1110
  destroy(): void;
1111
+ /**
1112
+ * 清空指定页面(缺省当前活动页)的历史记录栈。
1113
+ * 仅删除撤销/重做记录,不会改动当前 DSL;清空后该页将无法再撤销/重做之前的操作。
1114
+ */
1115
+ clearPage(pageId?: Id): void;
1116
+ /**
1117
+ * 清空数据源历史记录栈:传入 `dataSourceId` 仅清空该数据源,缺省清空全部数据源。
1118
+ * 仅删除撤销/重做记录,不会改动数据源本身。
1119
+ */
1120
+ clearDataSource(dataSourceId?: Id): void;
1121
+ /**
1122
+ * 清空代码块历史记录栈:传入 `codeBlockId` 仅清空该代码块,缺省清空全部代码块。
1123
+ * 仅删除撤销/重做记录,不会改动代码块本身。
1124
+ */
1125
+ clearCodeBlock(codeBlockId?: Id): void;
1126
+ /**
1127
+ * 标记「整份 DSL 已保存」:把页面 / 代码块 / 数据源所有栈当前游标所在的记录都标为 `saved`。
1128
+ * 适用于「整体落库」场景;若只保存了其中一类,请改用更细粒度的
1129
+ * {@link markPageSaved} / {@link markCodeBlockSaved} / {@link markDataSourceSaved}。
1130
+ */
1131
+ markSaved(): void;
1132
+ /**
1133
+ * 标记指定页面(缺省为当前活动页)的历史栈当前记录为已保存。
1134
+ * 仅影响该页面自己的栈,不波及代码块 / 数据源 / 其它页面。
1135
+ */
1136
+ markPageSaved(pageId?: Id): void;
1137
+ /** 标记指定代码块的历史栈当前记录为已保存,仅影响该代码块自己的栈。 */
1138
+ markCodeBlockSaved(codeBlockId: Id): void;
1139
+ /** 标记指定数据源的历史栈当前记录为已保存,仅影响该数据源自己的栈。 */
1140
+ markDataSourceSaved(dataSourceId: Id): void;
1141
+ /**
1142
+ * 把当前内存中的全部历史栈(页面 / 代码块 / 数据源)序列化后写入本地 IndexedDB。
1143
+ *
1144
+ * - 每个 UndoRedo 栈连同其游标、容量一并保存,恢复后可继续 undo/redo;
1145
+ * - `key` 用于区分不同活动页 / 项目(同一 store 下可保存多份快照),缺省为 `default`;
1146
+ * - 返回写入成功的快照对象,便于调用方记录 savedAt 等信息;
1147
+ * - 不支持 IndexedDB 的环境(如 SSR)会 reject。
1148
+ */
1149
+ saveToIndexedDB(options?: HistoryPersistOptions): Promise<PersistedHistoryState>;
1150
+ /**
1151
+ * 从本地 IndexedDB 读取此前保存的历史快照并重建全部撤销/重做栈。
1152
+ *
1153
+ * - 读取到的每个栈都会经 {@link UndoRedo.fromSerialized} 还原(含游标),随后可直接 undo/redo;
1154
+ * - 会整体覆盖当前内存中的历史状态,并把活动页恢复为快照中的 pageId;
1155
+ * - 找不到对应记录时返回 null,且不改动当前状态;
1156
+ * - 不支持 IndexedDB 的环境(如 SSR)会 reject。
1157
+ */
1158
+ restoreFromIndexedDB(options?: HistoryPersistOptions): Promise<PersistedHistoryState | null>;
919
1159
  /**
920
1160
  * 取出当前活动页的历史步骤平铺列表(包含已应用 + 已撤销)。
921
1161
  * 列表按时间正序,最早一步在最前面。
@@ -962,6 +1202,27 @@ declare class History extends BaseService {
962
1202
  index: number;
963
1203
  applied: boolean;
964
1204
  }[];
1205
+ /**
1206
+ * 按历史记录 uuid 在指定页面(默认当前活动页)的栈中查找其索引。
1207
+ * 找不到时返回 -1。供「按 uuid 回滚」等需要把 uuid 映射回 index 的场景使用。
1208
+ */
1209
+ getPageStepIndexByUuid(uuid: string, pageId?: Id): number;
1210
+ /**
1211
+ * 按历史记录 uuid 在全部代码块栈中查找其所属 codeBlockId 与索引。
1212
+ * 找不到时返回 null。
1213
+ */
1214
+ findCodeBlockStepLocationByUuid(uuid: string): {
1215
+ id: Id;
1216
+ index: number;
1217
+ } | null;
1218
+ /**
1219
+ * 按历史记录 uuid 在全部数据源栈中查找其所属 dataSourceId 与索引。
1220
+ * 找不到时返回 null。
1221
+ */
1222
+ findDataSourceStepLocationByUuid(uuid: string): {
1223
+ id: Id;
1224
+ index: number;
1225
+ } | null;
965
1226
  /**
966
1227
  * 取出全部数据源的历史栈,按 dataSourceId 分组。同上。
967
1228
  */
@@ -973,18 +1234,15 @@ declare class History extends BaseService {
973
1234
  * 这样切到目标页时 Ctrl+Z 也能撤回该步骤。
974
1235
  */
975
1236
  private getUndoRedo;
976
- private setCanUndoRedo;
977
1237
  /**
978
- * id 获取(或创建)指定代码块的 UndoRedo 栈。
1238
+ * 把基础 dbName 与当前 DSL(root app)的 id 拼成最终库名,实现不同应用历史隔离。
1239
+ * 取不到 app id(如尚未加载 DSL)时退回基础 dbName。
979
1240
  */
980
- private getCodeBlockUndoRedo;
981
- /**
982
- * 按 id 获取(或创建)指定数据源的 UndoRedo 栈。
983
- */
984
- private getDataSourceUndoRedo;
1241
+ private resolveDbName;
1242
+ private setCanUndoRedo;
985
1243
  }
986
1244
  type HistoryService = History;
987
- declare const _default$43: History;
1245
+ declare const _default$44: History;
988
1246
  //#endregion
989
1247
  //#region temp/packages/editor/src/services/keybinding.d.ts
990
1248
  declare class Keybinding extends BaseService {
@@ -1122,7 +1380,7 @@ declare class Props extends BaseService {
1122
1380
  private setRelateId;
1123
1381
  }
1124
1382
  type PropsService = Props;
1125
- declare const _default$45: Props;
1383
+ declare const _default$46: Props;
1126
1384
  //#endregion
1127
1385
  //#region temp/packages/editor/src/services/stageOverlay.d.ts
1128
1386
  declare const canUsePluginMethods$3: {
@@ -1149,7 +1407,7 @@ declare class StageOverlay extends BaseService {
1149
1407
  private updateSelectStatus;
1150
1408
  }
1151
1409
  type StageOverlayService = StageOverlay;
1152
- declare const _default$46: StageOverlay;
1410
+ declare const _default$47: StageOverlay;
1153
1411
  //#endregion
1154
1412
  //#region temp/packages/editor/src/services/storage.d.ts
1155
1413
  interface Options$1 {
@@ -1212,7 +1470,7 @@ declare class WebStorage extends BaseService {
1212
1470
  private getValueAndProtocol;
1213
1471
  }
1214
1472
  type StorageService = WebStorage;
1215
- declare const _default$47: WebStorage;
1473
+ declare const _default$48: WebStorage;
1216
1474
  //#endregion
1217
1475
  //#region temp/packages/editor/src/services/ui.d.ts
1218
1476
  declare const canUsePluginMethods$1: {
@@ -1232,7 +1490,7 @@ declare class Ui extends BaseService {
1232
1490
  private setStageRect;
1233
1491
  }
1234
1492
  type UiService = Ui;
1235
- declare const _default$48: Ui;
1493
+ declare const _default$49: Ui;
1236
1494
  //#endregion
1237
1495
  //#region temp/packages/editor/src/type.d.ts
1238
1496
  type EditorSlots = FrameworkSlots & WorkspaceSlots & SidebarSlots & PropsPanelSlots & {
@@ -1477,6 +1735,8 @@ interface UiState {
1477
1735
  hideSlideBar: boolean;
1478
1736
  /** 侧边栏面板配置 */
1479
1737
  sideBarItems: SideComponent[];
1738
+ /** 当前激活的侧边栏面板 */
1739
+ sideBarActiveTabName: string;
1480
1740
  navMenuRect: {
1481
1741
  left: number;
1482
1742
  top: number;
@@ -1544,6 +1804,9 @@ interface MenuButton {
1544
1804
  items?: MenuButton[];
1545
1805
  /** 唯一标识,用于高亮 */
1546
1806
  id?: string | number;
1807
+ buttonProps?: {
1808
+ type?: string;
1809
+ };
1547
1810
  }
1548
1811
  interface MenuComponent {
1549
1812
  type: 'component';
@@ -1628,7 +1891,7 @@ interface HistoryListExtraTab {
1628
1891
  * - data-source: 数据源,按 `type`(base/http/...) 从 dataSourceService 获取数据源表单配置
1629
1892
  * - code-block: 数据源代码块,使用内置的代码块表单配置
1630
1893
  */
1631
- type CompareCategory = 'node' | 'data-source' | 'code-block';
1894
+ type CompareCategory = 'node' | 'data-source' | 'code-block' | string;
1632
1895
  /**
1633
1896
  * 自定义 `loadConfig` 时回传的上下文,聚合了组件当前的对比入参,
1634
1897
  * 方便调用方在外部按需拼装 FormConfig。
@@ -1758,97 +2021,139 @@ interface CodeParamStatement {
1758
2021
  type?: string | TypeFunction<string>;
1759
2022
  [key: string]: any;
1760
2023
  }
1761
- type HistoryOpType = 'add' | 'remove' | 'update';
1762
- interface StepValue {
1763
- /** 页面信息 */
1764
- data: {
1765
- name: string;
1766
- id: Id;
1767
- };
1768
- opType: HistoryOpType;
1769
- /** 操作前选中的节点 ID,用于撤销后恢复选择状态 */
1770
- selectedBefore: Id[];
1771
- /** 操作后选中的节点 ID,用于重做后恢复选择状态 */
1772
- selectedAfter: Id[];
1773
- modifiedNodeIds: Map<Id, Id>;
1774
- /** opType 'add': 新增的节点 */
1775
- nodes?: MNode[];
1776
- /** opType 'add': 父节点 ID */
2024
+ /**
2025
+ * 历史记录操作类型:
2026
+ * - `add` / `remove` / `update`:普通可撤销/重做的节点变更;
2027
+ * - `initial`:页面「未修改的初始状态」基线(设置 root 时生成),作为页面栈 index 0 的固定底线 step。
2028
+ * 该 step 不可被撤销/回滚(cursor 不会低于它),仅用于历史面板底部的初始行展示。
2029
+ */
2030
+ type HistoryOpType = 'add' | 'remove' | 'update' | 'initial';
2031
+ /**
2032
+ * 历史记录的「操作途径」——标记本次变更由哪条交互入口触发,仅用于历史面板展示 / 业务埋点,
2033
+ * 不影响 undo/redo 行为。缺省(未传)时 UI 视为「未知」。
2034
+ *
2035
+ * - `stage`:画布(拖拽 / 缩放 / 排序等舞台直接操作)
2036
+ * - `tree`:树形面板(图层 / 数据源 / 代码块等树形结构里的拖拽 / 菜单操作)
2037
+ * - `component-panel`:组件面板(左侧组件列表点击 / 拖拽新增组件)
2038
+ * - `props`:配置面板表单(属性表单字段编辑)
2039
+ * - `code`:源码编辑器(配置面板「源码」面板里直接编辑 JSON/代码后保存)
2040
+ * - `stage-contextmenu`:画布右键菜单(舞台上节点的右键上下文菜单)
2041
+ * - `tree-contextmenu`:树面板右键菜单(图层 / 数据源 / 代码块等树形列表上的右键上下文菜单)
2042
+ * - `toolbar`:工具栏菜单(顶部导航工具栏按钮)
2043
+ * - `shortcut`:键盘快捷键
2044
+ * - `rollback`:历史回滚(历史面板里对某条历史「回滚」,反向应用为一条新记录,类 git revert)
2045
+ * - `api`:代码 / 接口调用(程序化触发)
2046
+ * - `ai`:AI 生成 / 智能助手触发的变更
2047
+ * - `unknown`:未知来源
2048
+ *
2049
+ * 通过 `(string & {})` 允许业务侧扩展自定义途径字符串,同时保留内置值的自动补全。
2050
+ */
2051
+ type HistoryOpSource = 'initial' | 'stage' | 'tree' | 'component-panel' | 'props' | 'code' | 'root-code' | 'stage-contextmenu' | 'tree-contextmenu' | 'toolbar' | 'shortcut' | 'rollback' | 'api' | 'ai' | 'sync' | 'unknown' | (string & {});
2052
+ /**
2053
+ * 单条变更的 diff 描述,统一表达「页面节点 / 代码块 / 数据源」的变化内容,
2054
+ * 被 {@link StepValue} / {@link CodeBlockStepValue} / {@link DataSourceStepValue} 的 `diff` 复用。
2055
+ *
2056
+ * 按 `opType` 区分携带的字段:
2057
+ * - `add`:仅 `newSchema`(页面节点还带 `parentId` / `index`);
2058
+ * - `remove`:仅 `oldSchema`(页面节点还带 `parentId` / `index`);
2059
+ * - `update`:`oldSchema` + `newSchema`,并可带 `changeRecords` 做局部更新。
2060
+ *
2061
+ * 泛型 `T` 为变化内容的快照类型:页面节点为 `MNode`,代码块为 `CodeBlockContent`,数据源为 `DataSourceSchema`。
2062
+ */
2063
+ interface StepDiffItem<T = unknown> {
2064
+ /** 变更后的内容快照。`opType` 为 `add` / `update` 时有,`remove` 时无。 */
2065
+ newSchema?: T;
2066
+ /** 变更前的内容快照。`opType` 为 `remove` / `update` 时有,`add` 时无。 */
2067
+ oldSchema?: T;
2068
+ /** 父节点 id。仅页面节点有(数据源 / 代码块没有父节点)。 */
1777
2069
  parentId?: Id;
1778
- /** opType 'add': 每个新增节点在父节点 items 中的索引 */
1779
- indexMap?: Record<string, number>;
1780
- /** opType 'remove': 被删除的节点及其位置信息 */
1781
- removedItems?: {
1782
- node: MNode;
1783
- parentId: Id;
1784
- index: number;
1785
- }[];
2070
+ /** 在父节点 items 数组中的索引。仅页面节点有(数据源 / 代码块无需排序)。 */
2071
+ index?: number;
1786
2072
  /**
1787
- * opType 'update': 变更前后的节点快照
1788
- *
1789
- * `changeRecords` 来自 form 端的 propPath/value 列表,撤销/重做时只对这些 propPath 做局部更新;
1790
- * 缺省(未传 / 空数组)才退化为整节点替换。
2073
+ * form 端 propPath/value 变更列表,仅 `opType` 为 `update` 时有;
2074
+ * 撤销/重做时若有则按 propPath 局部更新,缺省才退化为整内容替换。
1791
2075
  */
1792
- updatedItems?: {
1793
- oldNode: MNode;
1794
- newNode: MNode;
1795
- changeRecords?: ChangeRecord[];
1796
- }[];
2076
+ changeRecords?: ChangeRecord[];
2077
+ }
2078
+ /**
2079
+ * 历史记录条目公共字段,被 {@link StepValue} / {@link CodeBlockStepValue} / {@link DataSourceStepValue} 复用。
2080
+ *
2081
+ * 泛型 `T` 为 `diff` 中变化内容的快照类型(页面节点 `MNode` / 代码块 `CodeBlockContent` / 数据源 `DataSourceSchema`)。
2082
+ */
2083
+ interface BaseStepValue<T = unknown> {
2084
+ /**
2085
+ * 历史记录唯一标识(uuid)。入栈时自动写入(若调用方未指定),
2086
+ * 用于精确定位 / 引用某一条历史记录(如 revert、埋点、跨端同步等)。
2087
+ * 注意与各自的 `id`(关联的页面 / 代码块 / 数据源 id)区分。
2088
+ */
2089
+ uuid: string;
2090
+ /** 操作类型:新增 / 删除 / 更新(三类历史记录统一携带)。 */
2091
+ opType: HistoryOpType;
2092
+ /**
2093
+ * 本次变更的内容(统一 diff 表达),每项见 {@link StepDiffItem}。
2094
+ * 页面节点(add/remove 多节点、update 多节点)会有多项,代码块 / 数据源通常只有一项。
2095
+ */
2096
+ diff: StepDiffItem<T>[];
1797
2097
  /**
1798
2098
  * 调用方可选传入的人类可读描述(如「调整按钮颜色」),用于历史面板展示。
1799
2099
  * 不影响 undo/redo 行为;缺省时面板会根据节点 / propPath 自动生成描述。
1800
2100
  */
1801
2101
  historyDescription?: string;
1802
2102
  /**
1803
- * 入栈时间戳(毫秒)。在 historyService.push 时自动写入(若调用方未指定),仅用于历史面板展示。
2103
+ * 操作途径:标记本次变更由哪条交互入口触发,取值见 {@link HistoryOpSource}
2104
+ * (画布 / 树面板 / 组件面板 / 配置面板 / 源码编辑器 / 右键菜单 / 工具栏 / 快捷键 / 回滚 / 接口 等)。
2105
+ * 仅用于历史面板展示与业务埋点,不影响 undo/redo 行为;缺省时面板视为「未知」。
2106
+ */
2107
+ source?: HistoryOpSource;
2108
+ /**
2109
+ * 入栈时间戳(毫秒)。入栈时自动写入(若调用方未指定),仅用于历史面板展示。
1804
2110
  */
1805
2111
  timestamp?: number;
2112
+ /**
2113
+ * 是否为「已保存」记录:DSL 落库(如保存到后端 / 本地)时由 historyService.markSaved 标记。
2114
+ * 同一栈内任意时刻最多只有一条记录为 true;从 IndexedDB 恢复时游标会被定位到最近一条已保存记录之后。
2115
+ */
2116
+ saved?: boolean;
2117
+ /**
2118
+ * 是否为「整体设置 root」(set root)产生的记录(由 {@link Editor.pushRootDiffHistory} 写入)。
2119
+ * 用于「连续 set root 合并」:当某页栈最新一条已是 root 记录时,下一条 set root 会替换它而非新增,
2120
+ * 避免源码反复保存 / 外部重设 DSL 时堆积多条 root 记录。
2121
+ */
2122
+ rootStep?: boolean;
2123
+ }
2124
+ interface StepValue extends BaseStepValue<MNode> {
2125
+ /** 页面信息 */
2126
+ data: {
2127
+ name: string;
2128
+ id: Id;
2129
+ };
2130
+ /** 操作前选中的节点 ID,用于撤销后恢复选择状态 */
2131
+ selectedBefore: Id[];
2132
+ /** 操作后选中的节点 ID,用于重做后恢复选择状态 */
2133
+ selectedAfter: Id[];
2134
+ modifiedNodeIds: Map<Id, Id>;
1806
2135
  }
1807
2136
  /**
1808
2137
  * 代码块历史记录条目。按 codeBlock.id 分组保存到 historyState.codeBlockState。
1809
- * - 新增:oldContent = null,newContent = 新内容
1810
- * - 更新:oldContent / newContent 都为对应内容
1811
- * - 删除:newContent = null,oldContent = 删除前内容
2138
+ * 变更内容统一由 `diff`(单项)表达,每项见 {@link StepDiffItem}:
2139
+ * - 新增(opType 'add'):仅 `newSchema`(新内容);
2140
+ * - 更新(opType 'update'):`oldSchema` + `newSchema`,并可带 `changeRecords` 做局部更新;
2141
+ * - 删除(opType 'remove'):仅 `oldSchema`(删除前内容)。
1812
2142
  */
1813
- interface CodeBlockStepValue {
2143
+ interface CodeBlockStepValue extends BaseStepValue<CodeBlockContent> {
1814
2144
  /** 关联的代码块 id */
1815
2145
  id: Id;
1816
- /** 变更前的代码块内容,新增时为 null */
1817
- oldContent: CodeBlockContent | null;
1818
- /** 变更后的代码块内容,删除时为 null */
1819
- newContent: CodeBlockContent | null;
1820
- /**
1821
- * form 端 propPath/value 列表。撤销/重做时若有则按 propPath 局部更新;
1822
- * 缺省才退化为整内容替换。新增/删除场景通常无 changeRecords。
1823
- */
1824
- changeRecords?: ChangeRecord[];
1825
- /** 调用方可选传入的人类可读描述,用于历史面板展示;不影响 undo/redo 行为。 */
1826
- historyDescription?: string;
1827
- /** 入栈时间戳(毫秒),入栈时自动写入,仅用于历史面板展示。 */
1828
- timestamp?: number;
1829
2146
  }
1830
2147
  /**
1831
2148
  * 数据源历史记录条目。按 dataSource.id 分组保存到 historyState.dataSourceState。
1832
- * - 新增:oldSchema = null,newSchema = 新 schema
1833
- * - 更新:oldSchema / newSchema 都为对应 schema
1834
- * - 删除:newSchema = null,oldSchema = 删除前 schema
2149
+ * 变更内容统一由 `diff`(单项)表达,每项见 {@link StepDiffItem}:
2150
+ * - 新增(opType 'add'):仅 `newSchema`(新 schema);
2151
+ * - 更新(opType 'update'):`oldSchema` + `newSchema`,并可带 `changeRecords` 做局部更新;
2152
+ * - 删除(opType 'remove'):仅 `oldSchema`(删除前 schema)。
1835
2153
  */
1836
- interface DataSourceStepValue {
2154
+ interface DataSourceStepValue extends BaseStepValue<DataSourceSchema> {
1837
2155
  /** 关联的数据源 id */
1838
2156
  id: Id;
1839
- /** 变更前的数据源 schema,新增时为 null */
1840
- oldSchema: DataSourceSchema | null;
1841
- /** 变更后的数据源 schema,删除时为 null */
1842
- newSchema: DataSourceSchema | null;
1843
- /**
1844
- * form 端 propPath/value 列表。撤销/重做时若有则按 propPath 局部更新;
1845
- * 缺省才退化为整 schema 替换。新增/删除场景通常无 changeRecords。
1846
- */
1847
- changeRecords?: ChangeRecord[];
1848
- /** 调用方可选传入的人类可读描述,用于历史面板展示;不影响 undo/redo 行为。 */
1849
- historyDescription?: string;
1850
- /** 入栈时间戳(毫秒),入栈时自动写入,仅用于历史面板展示。 */
1851
- timestamp?: number;
1852
2157
  }
1853
2158
  interface HistoryState {
1854
2159
  pageId?: Id;
@@ -1866,6 +2171,39 @@ interface HistoryState {
1866
2171
  */
1867
2172
  dataSourceState: Record<Id, UndoRedo<DataSourceStepValue>>;
1868
2173
  }
2174
+ /**
2175
+ * 历史记录的可持久化快照。由 historyService.saveToIndexedDB 写入 IndexedDB,
2176
+ * 再由 historyService.restoreFromIndexedDB 读出并重建各 UndoRedo 栈。
2177
+ */
2178
+ interface PersistedHistoryState {
2179
+ /** 快照结构版本号,便于后续兼容升级。 */
2180
+ version: number;
2181
+ /** 保存时的活动页 id。 */
2182
+ pageId?: Id;
2183
+ /** 各页面历史栈的序列化快照,按 pageId 分组。 */
2184
+ pageSteps: Record<Id, SerializedUndoRedo<StepValue>>;
2185
+ /** 各代码块历史栈的序列化快照,按 codeBlockId 分组。 */
2186
+ codeBlockState: Record<Id, SerializedUndoRedo<CodeBlockStepValue>>;
2187
+ /** 各数据源历史栈的序列化快照,按 dataSourceId 分组。 */
2188
+ dataSourceState: Record<Id, SerializedUndoRedo<DataSourceStepValue>>;
2189
+ /** 保存时间戳(毫秒)。 */
2190
+ savedAt: number;
2191
+ }
2192
+ /** historyService 持久化相关 API 的可选配置。 */
2193
+ interface HistoryPersistOptions {
2194
+ /** IndexedDB 数据库名,默认 `tmagic-editor`(最终库名会拼上当前 DSL app id)。 */
2195
+ dbName?: string;
2196
+ /** objectStore 名,默认 `history`。 */
2197
+ storeName?: string;
2198
+ /** 记录 key,用于区分不同活动页 / 项目,默认 `default`。 */
2199
+ key?: IDBValidKey;
2200
+ /**
2201
+ * 显式指定用于库名隔离的 DSL app id。
2202
+ * 缺省时回退到当前 editorService 的 `root.id`;在「先恢复历史再 set root」场景下 root 尚未设置,
2203
+ * 需由调用方(如从待加载 DSL 取 id)显式传入,否则会读 / 写到未按 app 隔离的默认库。
2204
+ */
2205
+ appId?: Id;
2206
+ }
1869
2207
  /**
1870
2208
  * 历史面板用:当前页面的一条历史步骤(包含位置和是否已应用)。
1871
2209
  */
@@ -2107,10 +2445,12 @@ type AsyncMethodName = Writable<(typeof canUsePluginMethods)['async']>;
2107
2445
  * 历史记录写入相关的通用配置(codeBlock / dataSource / editor 共用)
2108
2446
  * - doNotPushHistory: 操作完成后是否不要将本次操作压入历史栈(撤销/重做记录),默认 false
2109
2447
  * - historyDescription: 入栈时附带的人类可读描述,用于历史面板展示;不影响 undo/redo 行为,缺省时面板会自动生成描述
2448
+ * - historySource: 操作途径,取值见 {@link HistoryOpSource}(画布 / 树面板 / 组件面板 / 配置面板 / 源码编辑器 / 右键菜单 / 工具栏 / 快捷键 / 回滚 / 接口 等),用于历史面板展示与埋点;不影响 undo/redo 行为
2110
2449
  */
2111
2450
  interface HistoryOpOptions {
2112
2451
  doNotPushHistory?: boolean;
2113
2452
  historyDescription?: string;
2453
+ historySource?: HistoryOpSource;
2114
2454
  }
2115
2455
  /**
2116
2456
  * 在 HistoryOpOptions 基础上携带 form 端 propPath/value 变更记录,
@@ -2131,7 +2471,7 @@ interface DslOpOptions extends HistoryOpOptions {
2131
2471
  /** 差异对话框的入参 */
2132
2472
  interface DiffDialogPayload {
2133
2473
  /** 表单类别 */
2134
- category: CompareCategory;
2474
+ category?: CompareCategory;
2135
2475
  /** 节点类型 / 数据源类型 */
2136
2476
  type?: string;
2137
2477
  /** 代码块场景下的数据源类型 */
@@ -2147,6 +2487,35 @@ interface DiffDialogPayload {
2147
2487
  /** 用于标题展示的目标 id */
2148
2488
  id?: string | number;
2149
2489
  }
2490
+ /**
2491
+ * 一组「描述 + 可操作性」的判定函数集合。页面 / 数据源 / 代码块及业务自定义历史
2492
+ * 各自实现一份,作为整体注入,避免把 describe* / isStep* 拆成多个独立 props 反复透传。
2493
+ */
2494
+ interface HistoryRowDescriptor<T extends BaseStepValue = BaseStepValue> {
2495
+ /** 组级描述文案生成器,接收一个 group,返回展示文本。 */
2496
+ describeGroup: (_group: any) => string;
2497
+ /** 单步描述文案生成器,接收一个 step,返回展示文本(合并组展开后的子步列表用)。 */
2498
+ describeStep: (_step: T) => string;
2499
+ /** 判断某个 step 是否可查看差异(前后值都存在)。不传则一律不展示差异入口。 */
2500
+ isStepDiffable?: (_step: T) => boolean;
2501
+ /** 判断某个 step 是否支持回滚(如更新需带 changeRecords)。不传则已应用即可回滚。 */
2502
+ isStepRevertable?: (_step: T) => boolean;
2503
+ }
2504
+ /**
2505
+ * 通用 bucket(数据源 / 代码块 / 业务自定义历史)的整体渲染配置。
2506
+ * 把原先散落在 Bucket / BucketTab 上的 title / prefix / describe* / isStep* / showInitial / gotoEnabled
2507
+ * 收敛成一个对象作为单一 prop 传递,调用方一次配齐、组件内部按需读取。
2508
+ */
2509
+ interface HistoryBucketConfig<T extends BaseStepValue = BaseStepValue> extends HistoryRowDescriptor<T> {
2510
+ /** bucket 头部标题,例如 "数据源" / "代码块"。 */
2511
+ title: string;
2512
+ /** 子项 key 的命名空间前缀(`ds` 数据源 / `cb` 代码块 / 业务自定义如 `mod`)。 */
2513
+ prefix: string;
2514
+ /** 是否展示底部「回到初始状态」入口,默认 true。无 undo cursor 语义的自定义历史可传 false。 */
2515
+ showInitial?: boolean;
2516
+ /** 是否支持「跳转到该记录」(goto),默认 true。 */
2517
+ gotoEnabled?: boolean;
2518
+ }
2150
2519
  //#endregion
2151
2520
  //#region temp/packages/editor/src/hooks/use-code-block-edit.d.ts
2152
2521
  declare const useCodeBlockEdit: (codeBlockService: Services["codeBlockService"]) => {
@@ -2170,8 +2539,8 @@ declare const useCodeBlockEdit: (codeBlockService: Services["codeBlockService"])
2170
2539
  onClose?: (() => any) | undefined;
2171
2540
  onSubmit?: ((values: CodeBlockContent, eventData: ContainerChangeEventData) => any) | undefined;
2172
2541
  onOpen?: (() => any) | undefined;
2173
- "onUpdate:width"?: ((value: number) => any) | undefined;
2174
2542
  "onUpdate:visible"?: ((value: boolean) => any) | undefined;
2543
+ "onUpdate:width"?: ((value: number) => any) | undefined;
2175
2544
  }>, {
2176
2545
  show(): Promise<void>;
2177
2546
  hide(): Promise<void>;
@@ -2179,8 +2548,8 @@ declare const useCodeBlockEdit: (codeBlockService: Services["codeBlockService"])
2179
2548
  close: () => any;
2180
2549
  submit: (values: CodeBlockContent, eventData: ContainerChangeEventData) => any;
2181
2550
  open: () => any;
2182
- "update:width": (value: number) => any;
2183
2551
  "update:visible": (value: boolean) => any;
2552
+ "update:width": (value: number) => any;
2184
2553
  }, import("@vue/runtime-core").PublicProps, {}, false, {}, {}, import("@vue/runtime-core").GlobalComponents, import("@vue/runtime-core").GlobalDirectives, string, {}, any, import("@vue/runtime-core").ComponentProvideOptions, {
2185
2554
  P: {};
2186
2555
  B: {};
@@ -2202,15 +2571,19 @@ declare const useCodeBlockEdit: (codeBlockService: Services["codeBlockService"])
2202
2571
  onClose?: (() => any) | undefined;
2203
2572
  onSubmit?: ((values: CodeBlockContent, eventData: ContainerChangeEventData) => any) | undefined;
2204
2573
  onOpen?: (() => any) | undefined;
2205
- "onUpdate:width"?: ((value: number) => any) | undefined;
2206
2574
  "onUpdate:visible"?: ((value: boolean) => any) | undefined;
2575
+ "onUpdate:width"?: ((value: number) => any) | undefined;
2207
2576
  }>, {
2208
2577
  show(): Promise<void>;
2209
2578
  hide(): Promise<void>;
2210
2579
  }, {}, {}, {}, {}> | null>>;
2211
2580
  createCodeBlock: () => Promise<void>;
2212
2581
  editCode: (id: string) => Promise<void>;
2213
- deleteCode: (key: string) => Promise<void>;
2582
+ deleteCode: (key: string, {
2583
+ historySource
2584
+ }?: {
2585
+ historySource?: HistoryOpSource;
2586
+ }) => Promise<void>;
2214
2587
  submitCodeBlockHandler: (values: CodeBlockContent, eventData?: ContainerChangeEventData) => Promise<void>;
2215
2588
  };
2216
2589
  //#endregion
@@ -2503,6 +2876,11 @@ interface DragClassification {
2503
2876
  * @returns 分类结果,包含同容器索引列表和跨容器节点列表
2504
2877
  */
2505
2878
  declare const classifyDragSources: (configs: MNode[], targetParent: MContainer, getNodeInfo: (id: Id, raw?: boolean) => EditorNodeInfo) => DragClassification;
2879
+ /**
2880
+ * 给「回滚」生成的新 step 用的简短描述生成器。
2881
+ * 与 UI 层 `describePageStep` 同义,但避免 service 反向依赖 layouts/,故放在此工具函数中。
2882
+ */
2883
+ declare const describeStepForRevert: (step: StepValue) => string;
2506
2884
  //#endregion
2507
2885
  //#region temp/packages/editor/src/utils/operator.d.ts
2508
2886
  /**
@@ -2602,6 +2980,120 @@ declare const updateStatus: (nodeStatusMap: Map<Id, LayerNodeStatus>, id: Id, st
2602
2980
  /** 默认的组件树节点是否可展开的判断函数:当节点的子项中至少存在一个可见节点时认为可展开 */
2603
2981
  declare const defaultIsExpandable: IsExpandableFunction;
2604
2982
  //#endregion
2983
+ //#region temp/packages/editor/src/utils/indexed-db.d.ts
2984
+ /**
2985
+ * 一组极简的、基于原生 IndexedDB 的 Promise KV 工具,避免引入额外依赖。
2986
+ * 仅用于浏览器环境;在不支持 IndexedDB 的环境(如 SSR / 部分测试环境)下会 reject。
2987
+ */
2988
+ /** 是否处于支持 IndexedDB 的环境。 */
2989
+ declare const isIndexedDBSupported: () => boolean;
2990
+ /**
2991
+ * 打开(必要时升级)数据库,确保目标 objectStore 存在后返回连接。
2992
+ *
2993
+ * 由于 objectStore 只能在 `onupgradeneeded` 内创建,这里先以当前版本打开,
2994
+ * 若发现 store 不存在则关闭连接、以更高版本重开来按需创建,兼容动态 storeName。
2995
+ */
2996
+ declare const openIndexedDB: (dbName: string, storeName: string) => Promise<IDBDatabase>;
2997
+ /** 写入(覆盖)一条记录。value 通过结构化克隆存储,支持 Map / Set 等结构。 */
2998
+ declare const idbSet: (dbName: string, storeName: string, key: IDBValidKey, value: unknown) => Promise<void>;
2999
+ /** 读取一条记录,不存在时返回 undefined。 */
3000
+ declare const idbGet: <T = unknown>(dbName: string, storeName: string, key: IDBValidKey) => Promise<T | undefined>;
3001
+ /** 删除一条记录。 */
3002
+ declare const idbDelete: (dbName: string, storeName: string, key: IDBValidKey) => Promise<void>;
3003
+ //#endregion
3004
+ //#region temp/packages/editor/src/utils/history.d.ts
3005
+ /**
3006
+ * 「回滚」生成的新 step 简短描述。代码块 / 数据源共用。
3007
+ * 二者逻辑一致,仅展示名取值字段不同(代码块取 `name`,数据源取 `title`),
3008
+ * 因此通过 `getLabel` 注入取值方式。
3009
+ *
3010
+ * @param id 关联的代码块 / 数据源 id
3011
+ * @param diff 单条变更 diff(缺省视为空)
3012
+ * @param getLabel 从快照取展示名
3013
+ */
3014
+ declare const describeRevertStep: <T extends object>(id: Id, {
3015
+ oldSchema,
3016
+ newSchema,
3017
+ changeRecords
3018
+ }: StepDiffItem<T> | undefined, getLabel: (schema: T) => string | undefined) => string;
3019
+ /**
3020
+ * 根据 old/new 是否为 null 推断 opType(与 push 时的约定一致)。
3021
+ */
3022
+ declare const detectStackOpType: (oldVal: unknown, newVal: unknown) => "add" | "remove" | "update";
3023
+ /**
3024
+ * 构造一条代码块 / 数据源「按 id 分栈」的历史记录:两者除 payload 字段命名外完全一致。
3025
+ *
3026
+ * - `add`:oldValue = null;`remove`:newValue = null;`update`:两者都有,可带 changeRecords 做局部更新。
3027
+ * - 内容会做 cloneDeep 防止后续被外部引用篡改;opType 依据 old/new 是否为 null 推断。
3028
+ * - 仅负责构造 step 并返回,入栈与事件 emit 由各公共方法(pushCodeBlock / pushDataSource)自行处理。
3029
+ * - 不直接驱动业务 service,调用方负责实际写回。
3030
+ */
3031
+ declare const createStackStep: <T, S extends BaseStepValue<T> & {
3032
+ id: Id;
3033
+ }>(id: Id, payload: {
3034
+ oldValue: T | null;
3035
+ newValue: T | null;
3036
+ changeRecords?: ChangeRecord[];
3037
+ historyDescription?: string;
3038
+ source?: HistoryOpSource;
3039
+ }) => S | null;
3040
+ declare const markStackSaved: <S extends {
3041
+ saved?: boolean;
3042
+ }>(undoRedo?: UndoRedo<S>) => void;
3043
+ /**
3044
+ * 把单个「按 id 分栈」的历史栈(代码块 / 数据源)拆成若干 group:
3045
+ * - 把"新增/删除"独立成组(语义上属于一次性事件,不应与 update 合并);
3046
+ * - 连续 'update' 合并到同一组,组内 steps 顺序就是发生顺序。
3047
+ *
3048
+ * 代码块与数据源除 `kind` 外结构完全一致,统一由本方法处理;`kind` 决定返回的具体分组类型。
3049
+ */
3050
+ declare const mergeStackSteps: <S extends BaseStepValue, K extends "code-block" | "data-source">(kind: K, id: Id, list: S[], cursor: number) => {
3051
+ kind: K;
3052
+ id: Id;
3053
+ opType: HistoryOpType;
3054
+ steps: {
3055
+ step: S;
3056
+ index: number;
3057
+ applied: boolean;
3058
+ isCurrent?: boolean;
3059
+ }[];
3060
+ applied: boolean;
3061
+ isCurrent?: boolean;
3062
+ }[];
3063
+ /**
3064
+ * 把页面栈拆成若干 group:
3065
+ * - 单节点的 'update' 按 targetId 与相邻同 targetId 的 update 合并到一个 group;
3066
+ * - 'add' / 'remove' 始终独立成组(语义上是结构变更,不应被收纳进单节点修改组);
3067
+ * - 多节点 'update'(如批量改属性)也独立成组(无明确单一目标,避免误合并)。
3068
+ */
3069
+ declare const mergePageSteps: (pageId: Id, list: StepValue[], cursor: number) => PageHistoryGroup[];
3070
+ /**
3071
+ * 解析 StepValue 中的"目标节点 id"用于合并:
3072
+ * - 单节点 update:取唯一一项 updatedItems 的节点 id;
3073
+ * - 其它情形(多节点 update / add / remove):返回 undefined,表示不参与合并。
3074
+ */
3075
+ declare const detectPageTargetId: (step: StepValue) => Id | undefined;
3076
+ /** 解析 StepValue 中的目标节点可读名(用于 UI 展示)。 */
3077
+ declare const detectPageTargetName: (step: StepValue) => string | undefined;
3078
+ /** 把 `Record<Id, UndoRedo>` 整体序列化为 `Record<Id, SerializedUndoRedo>`。 */
3079
+ declare const serializeStacks: <T>(stacks: Record<Id, UndoRedo<T>>) => Record<Id, SerializedUndoRedo<T>>;
3080
+ /**
3081
+ * 把 `Record<Id, SerializedUndoRedo>` 整体还原为 `Record<Id, UndoRedo>`。
3082
+ * 还原时把每个栈的游标定位到最近一条已保存(`saved === true`)记录之后。
3083
+ */
3084
+ declare const deserializeStacks: <T extends {
3085
+ saved?: boolean;
3086
+ }>(stacks?: Record<Id, ReturnType<UndoRedo<T>["serialize"]>>) => Record<Id, UndoRedo<T>>;
3087
+ /**
3088
+ * 按 id 从「按 id 分栈」的记录表(代码块 / 数据源)中获取(或创建)对应的 UndoRedo 栈。
3089
+ */
3090
+ declare const getOrCreateStack: <T>(stacks: Record<Id, UndoRedo<T>>, id: Id) => UndoRedo<T>;
3091
+ /**
3092
+ * 撤销下限:当页面栈 index 0 是 `opType: 'initial'` 的基线 step 时为 1(基线不可被撤销),否则为 0。
3093
+ * 用于把 cursor 钉在基线之上,保证 undo / canUndo / goto 都不会越过初始基线。
3094
+ */
3095
+ declare const undoFloor: (undoRedo: UndoRedo<StepValue>) => number;
3096
+ //#endregion
2605
3097
  //#region temp/packages/editor/src/utils/const.d.ts
2606
3098
  /** 当uiService.get('uiSelectMode')为true,点击组件(包括任何形式,组件树/画布)时触发的事件名 */
2607
3099
  declare const UI_SELECT_MODE_EVENT_NAME = "ui-select";
@@ -2617,7 +3109,7 @@ declare const H_GUIDE_LINE_STORAGE_KEY = "$MagicStageHorizontalGuidelinesData";
2617
3109
  declare const V_GUIDE_LINE_STORAGE_KEY = "$MagicStageVerticalGuidelinesData";
2618
3110
  //#endregion
2619
3111
  //#region temp/packages/editor/src/utils/monaco-editor.d.ts
2620
- declare const _default$44: () => Promise<typeof import("monaco-editor")>;
3112
+ declare const _default$45: () => Promise<typeof import("monaco-editor")>;
2621
3113
  //#endregion
2622
3114
  //#region temp/packages/form/src/schema.d.ts
2623
3115
  interface ChangeRecord$1 {
@@ -3681,6 +4173,7 @@ declare const __VLS_base$12: import("@vue/runtime-core").DefineComponent<EditorP
3681
4173
  disabledCodeBlock: boolean;
3682
4174
  disabledMultiSelect: boolean;
3683
4175
  alwaysMultiSelect: boolean;
4176
+ disabledFlashTip: boolean;
3684
4177
  disabledPageFragment: boolean;
3685
4178
  historyListExtraTabs: HistoryListExtraTab[];
3686
4179
  disabledShowSrc: boolean;
@@ -3702,11 +4195,10 @@ declare const __VLS_base$12: import("@vue/runtime-core").DefineComponent<EditorP
3702
4195
  datasourceConfigs: Record<string, import("@tmagic/form-schema").FormConfig>;
3703
4196
  containerHighlightDuration: number;
3704
4197
  containerHighlightType: import("@tmagic/stage").ContainerHighlightType;
3705
- disabledFlashTip: boolean;
3706
4198
  canSelect: (el: HTMLElement) => boolean | Promise<boolean>;
3707
4199
  }, {}, {}, {}, string, import("@vue/runtime-core").ComponentProvideOptions, false, {}, any>;
3708
- declare const __VLS_export$36: __VLS_WithSlots$12<typeof __VLS_base$12, __VLS_Slots$12>;
3709
- declare const _default$33: typeof __VLS_export$36;
4200
+ declare const __VLS_export$37: __VLS_WithSlots$12<typeof __VLS_base$12, __VLS_Slots$12>;
4201
+ declare const _default$34: typeof __VLS_export$37;
3710
4202
  type __VLS_WithSlots$12<T, S> = T & {
3711
4203
  new (): {
3712
4204
  $slots: S;
@@ -3714,7 +4206,7 @@ type __VLS_WithSlots$12<T, S> = T & {
3714
4206
  };
3715
4207
  //#endregion
3716
4208
  //#region temp/packages/editor/src/layouts/CodeEditor.vue.d.ts
3717
- type __VLS_Props$33 = {
4209
+ type __VLS_Props$32 = {
3718
4210
  initValues?: any;
3719
4211
  modifiedValues?: any;
3720
4212
  type?: 'diff';
@@ -3730,7 +4222,7 @@ type __VLS_Props$33 = {
3730
4222
  };
3731
4223
  editorCustomType?: string;
3732
4224
  };
3733
- declare const __VLS_export$35: import("@vue/runtime-core").DefineComponent<__VLS_Props$33, {
4225
+ declare const __VLS_export$36: import("@vue/runtime-core").DefineComponent<__VLS_Props$32, {
3734
4226
  values: import("@vue/reactivity").Ref<string, string>;
3735
4227
  getEditor(): Monaco.editor.IStandaloneCodeEditor | Monaco.editor.IStandaloneDiffEditor | null;
3736
4228
  getVsEditor(): Monaco.editor.IStandaloneCodeEditor | null;
@@ -3741,7 +4233,7 @@ declare const __VLS_export$35: import("@vue/runtime-core").DefineComponent<__VLS
3741
4233
  }, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {
3742
4234
  save: (...args: any[]) => void;
3743
4235
  initd: (...args: any[]) => void;
3744
- }, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_Props$33> & Readonly<{
4236
+ }, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_Props$32> & Readonly<{
3745
4237
  onSave?: ((...args: any[]) => any) | undefined;
3746
4238
  onInitd?: ((...args: any[]) => any) | undefined;
3747
4239
  }>, {
@@ -3752,13 +4244,13 @@ declare const __VLS_export$35: import("@vue/runtime-core").DefineComponent<__VLS
3752
4244
  autoSave: boolean;
3753
4245
  disabledFullScreen: boolean;
3754
4246
  }, {}, {}, {}, string, import("@vue/runtime-core").ComponentProvideOptions, false, {}, any>;
3755
- declare const _default$32: typeof __VLS_export$35;
4247
+ declare const _default$33: typeof __VLS_export$36;
3756
4248
  //#endregion
3757
4249
  //#region temp/packages/editor/src/layouts/sidebar/ComponentListPanel.vue.d.ts
3758
4250
  type __VLS_Slots$11 = ComponentListPanelSlots;
3759
4251
  declare const __VLS_base$11: import("@vue/runtime-core").DefineComponent<{}, {}, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {}, string, import("@vue/runtime-core").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("@vue/runtime-core").ComponentProvideOptions, true, {}, any>;
3760
- declare const __VLS_export$34: __VLS_WithSlots$11<typeof __VLS_base$11, __VLS_Slots$11>;
3761
- declare const _default$6: typeof __VLS_export$34;
4252
+ declare const __VLS_export$35: __VLS_WithSlots$11<typeof __VLS_base$11, __VLS_Slots$11>;
4253
+ declare const _default$6: typeof __VLS_export$35;
3762
4254
  type __VLS_WithSlots$11<T, S> = T & {
3763
4255
  new (): {
3764
4256
  $slots: S;
@@ -3767,7 +4259,7 @@ type __VLS_WithSlots$11<T, S> = T & {
3767
4259
  //#endregion
3768
4260
  //#region temp/packages/editor/src/layouts/sidebar/layer/LayerPanel.vue.d.ts
3769
4261
  type __VLS_Slots$10 = LayerPanelSlots;
3770
- type __VLS_Props$32 = {
4262
+ type __VLS_Props$31 = {
3771
4263
  layerContentMenu: (MenuButton | MenuComponent)[];
3772
4264
  indent?: number;
3773
4265
  nextLevelIndentIncrement?: number;
@@ -3776,13 +4268,13 @@ type __VLS_Props$32 = {
3776
4268
  canDropIn?: CanDropInFunction; /** 组件树节点双击前的钩子函数,返回 false 则阻止默认的双击行为 */
3777
4269
  beforeNodeDblclick?: (_event: MouseEvent, _data: TreeNodeData) => Promise<boolean | void> | boolean | void;
3778
4270
  };
3779
- declare const __VLS_base$10: import("@vue/runtime-core").DefineComponent<__VLS_Props$32, {}, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {
4271
+ declare const __VLS_base$10: import("@vue/runtime-core").DefineComponent<__VLS_Props$31, {}, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {
3780
4272
  "node-dblclick": (event: MouseEvent, data: TreeNodeData) => any;
3781
- }, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_Props$32> & Readonly<{
4273
+ }, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_Props$31> & Readonly<{
3782
4274
  "onNode-dblclick"?: ((event: MouseEvent, data: TreeNodeData) => any) | undefined;
3783
4275
  }>, {}, {}, {}, {}, string, import("@vue/runtime-core").ComponentProvideOptions, false, {}, any>;
3784
- declare const __VLS_export$33: __VLS_WithSlots$10<typeof __VLS_base$10, __VLS_Slots$10>;
3785
- declare const _default$25: typeof __VLS_export$33;
4276
+ declare const __VLS_export$34: __VLS_WithSlots$10<typeof __VLS_base$10, __VLS_Slots$10>;
4277
+ declare const _default$26: typeof __VLS_export$34;
3786
4278
  type __VLS_WithSlots$10<T, S> = T & {
3787
4279
  new (): {
3788
4280
  $slots: S;
@@ -3790,151 +4282,151 @@ type __VLS_WithSlots$10<T, S> = T & {
3790
4282
  };
3791
4283
  //#endregion
3792
4284
  //#region temp/packages/editor/src/fields/CodeSelect.vue.d.ts
3793
- type __VLS_Props$31 = FieldProps<CodeSelectConfig>;
3794
- declare const __VLS_export$32: import("@vue/runtime-core").DefineComponent<__VLS_Props$31, {}, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {
4285
+ type __VLS_Props$30 = FieldProps<CodeSelectConfig>;
4286
+ declare const __VLS_export$33: import("@vue/runtime-core").DefineComponent<__VLS_Props$30, {}, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {
3795
4287
  change: (v: any, eventData: ContainerChangeEventData) => any;
3796
- }, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_Props$31> & Readonly<{
4288
+ }, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_Props$30> & Readonly<{
3797
4289
  onChange?: ((v: any, eventData: ContainerChangeEventData) => any) | undefined;
3798
4290
  }>, {}, {}, {}, {}, string, import("@vue/runtime-core").ComponentProvideOptions, false, {}, any>;
3799
- declare const _default$3: typeof __VLS_export$32;
4291
+ declare const _default$3: typeof __VLS_export$33;
3800
4292
  //#endregion
3801
4293
  //#region temp/packages/editor/src/fields/CodeSelectCol.vue.d.ts
3802
- type __VLS_Props$30 = FieldProps<CodeSelectColConfig>;
3803
- declare const __VLS_export$31: import("@vue/runtime-core").DefineComponent<__VLS_Props$30, {}, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {
4294
+ type __VLS_Props$29 = FieldProps<CodeSelectColConfig>;
4295
+ declare const __VLS_export$32: import("@vue/runtime-core").DefineComponent<__VLS_Props$29, {}, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {
3804
4296
  change: (v: any, eventData: ContainerChangeEventData) => any;
3805
- }, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_Props$30> & Readonly<{
4297
+ }, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_Props$29> & Readonly<{
3806
4298
  onChange?: ((v: any, eventData: ContainerChangeEventData) => any) | undefined;
3807
4299
  }>, {
3808
4300
  disabled: boolean;
3809
4301
  }, {}, {}, {}, string, import("@vue/runtime-core").ComponentProvideOptions, false, {}, any>;
3810
- declare const _default$4: typeof __VLS_export$31;
4302
+ declare const _default$4: typeof __VLS_export$32;
3811
4303
  //#endregion
3812
4304
  //#region temp/packages/editor/src/fields/DataSourceFields.vue.d.ts
3813
- type __VLS_Props$29 = FieldProps<DataSourceFieldsConfig>;
4305
+ type __VLS_Props$28 = FieldProps<DataSourceFieldsConfig>;
3814
4306
  type __VLS_ModelProps$4 = {
3815
4307
  'width'?: number;
3816
4308
  'visible'?: boolean;
3817
4309
  'visible1'?: boolean;
3818
4310
  };
3819
- type __VLS_PublicProps$4 = __VLS_Props$29 & __VLS_ModelProps$4;
3820
- declare const __VLS_export$30: import("@vue/runtime-core").DefineComponent<__VLS_PublicProps$4, {}, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {
4311
+ type __VLS_PublicProps$4 = __VLS_Props$28 & __VLS_ModelProps$4;
4312
+ declare const __VLS_export$31: import("@vue/runtime-core").DefineComponent<__VLS_PublicProps$4, {}, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {
3821
4313
  change: (v: any, eventData?: ContainerChangeEventData | undefined) => any;
3822
- "update:width": (value: number) => any;
3823
4314
  "update:visible": (value: boolean) => any;
4315
+ "update:width": (value: number) => any;
3824
4316
  "update:visible1": (value: boolean) => any;
3825
4317
  }, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_PublicProps$4> & Readonly<{
3826
4318
  onChange?: ((v: any, eventData?: ContainerChangeEventData | undefined) => any) | undefined;
3827
- "onUpdate:width"?: ((value: number) => any) | undefined;
3828
4319
  "onUpdate:visible"?: ((value: boolean) => any) | undefined;
4320
+ "onUpdate:width"?: ((value: number) => any) | undefined;
3829
4321
  "onUpdate:visible1"?: ((value: boolean) => any) | undefined;
3830
4322
  }>, {
3831
4323
  disabled: boolean;
3832
4324
  }, {}, {}, {}, string, import("@vue/runtime-core").ComponentProvideOptions, false, {}, any>;
3833
- declare const _default$12: typeof __VLS_export$30;
4325
+ declare const _default$12: typeof __VLS_export$31;
3834
4326
  //#endregion
3835
4327
  //#region temp/packages/editor/src/fields/DataSourceMocks.vue.d.ts
3836
- type __VLS_Props$28 = FieldProps<DataSourceMocksConfig>;
4328
+ type __VLS_Props$27 = FieldProps<DataSourceMocksConfig>;
3837
4329
  type __VLS_ModelProps$3 = {
3838
4330
  'width'?: number;
3839
4331
  'visible'?: boolean;
3840
4332
  };
3841
- type __VLS_PublicProps$3 = __VLS_Props$28 & __VLS_ModelProps$3;
3842
- declare const __VLS_export$29: import("@vue/runtime-core").DefineComponent<__VLS_PublicProps$3, {}, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {
4333
+ type __VLS_PublicProps$3 = __VLS_Props$27 & __VLS_ModelProps$3;
4334
+ declare const __VLS_export$30: import("@vue/runtime-core").DefineComponent<__VLS_PublicProps$3, {}, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {
3843
4335
  change: (...args: any[]) => void;
3844
- "update:width": (value: number) => void;
3845
4336
  "update:visible": (value: boolean) => void;
4337
+ "update:width": (value: number) => void;
3846
4338
  }, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_PublicProps$3> & Readonly<{
3847
4339
  onChange?: ((...args: any[]) => any) | undefined;
3848
- "onUpdate:width"?: ((value: number) => any) | undefined;
3849
4340
  "onUpdate:visible"?: ((value: boolean) => any) | undefined;
4341
+ "onUpdate:width"?: ((value: number) => any) | undefined;
3850
4342
  }>, {
3851
4343
  disabled: boolean;
3852
4344
  }, {}, {}, {}, string, import("@vue/runtime-core").ComponentProvideOptions, false, {}, any>;
3853
- declare const _default$16: typeof __VLS_export$29;
4345
+ declare const _default$16: typeof __VLS_export$30;
3854
4346
  //#endregion
3855
4347
  //#region temp/packages/editor/src/fields/DataSourceMethods.vue.d.ts
3856
- type __VLS_Props$27 = FieldProps<DataSourceMethodsConfig>;
3857
- declare const __VLS_export$28: import("@vue/runtime-core").DefineComponent<__VLS_Props$27, {}, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {
4348
+ type __VLS_Props$26 = FieldProps<DataSourceMethodsConfig>;
4349
+ declare const __VLS_export$29: import("@vue/runtime-core").DefineComponent<__VLS_Props$26, {}, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {
3858
4350
  change: (...args: any[]) => void;
3859
- }, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_Props$27> & Readonly<{
4351
+ }, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_Props$26> & Readonly<{
3860
4352
  onChange?: ((...args: any[]) => any) | undefined;
3861
4353
  }>, {
3862
4354
  disabled: boolean;
3863
4355
  }, {}, {}, {}, string, import("@vue/runtime-core").ComponentProvideOptions, false, {}, any>;
3864
- declare const _default$15: typeof __VLS_export$28;
4356
+ declare const _default$15: typeof __VLS_export$29;
3865
4357
  //#endregion
3866
4358
  //#region temp/packages/editor/src/fields/DataSourceInput.vue.d.ts
3867
- type __VLS_Props$26 = FieldProps<DataSourceInputConfig>;
3868
- declare const __VLS_export$27: import("@vue/runtime-core").DefineComponent<__VLS_Props$26, {}, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {
4359
+ type __VLS_Props$25 = FieldProps<DataSourceInputConfig>;
4360
+ declare const __VLS_export$28: import("@vue/runtime-core").DefineComponent<__VLS_Props$25, {}, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {
3869
4361
  change: (value: string) => any;
3870
- }, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_Props$26> & Readonly<{
4362
+ }, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_Props$25> & Readonly<{
3871
4363
  onChange?: ((value: string) => any) | undefined;
3872
4364
  }>, {
3873
4365
  disabled: boolean;
3874
4366
  }, {}, {}, {}, string, import("@vue/runtime-core").ComponentProvideOptions, false, {}, any>;
3875
- declare const _default$13: typeof __VLS_export$27;
4367
+ declare const _default$13: typeof __VLS_export$28;
3876
4368
  //#endregion
3877
4369
  //#region temp/packages/editor/src/fields/DataSourceSelect.vue.d.ts
3878
- type __VLS_Props$25 = FieldProps<DataSourceSelect>;
3879
- declare const __VLS_export$26: import("@vue/runtime-core").DefineComponent<__VLS_Props$25, {}, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {
4370
+ type __VLS_Props$24 = FieldProps<DataSourceSelect>;
4371
+ declare const __VLS_export$27: import("@vue/runtime-core").DefineComponent<__VLS_Props$24, {}, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {
3880
4372
  change: (...args: any[]) => void;
3881
- }, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_Props$25> & Readonly<{
4373
+ }, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_Props$24> & Readonly<{
3882
4374
  onChange?: ((...args: any[]) => any) | undefined;
3883
4375
  }>, {
3884
4376
  disabled: boolean;
3885
4377
  }, {}, {}, {}, string, import("@vue/runtime-core").ComponentProvideOptions, false, {}, any>;
3886
- declare const _default$17: typeof __VLS_export$26;
4378
+ declare const _default$17: typeof __VLS_export$27;
3887
4379
  //#endregion
3888
4380
  //#region temp/packages/editor/src/fields/DataSourceMethodSelect.vue.d.ts
3889
- type __VLS_Props$24 = FieldProps<DataSourceMethodSelectConfig>;
3890
- declare const __VLS_export$25: import("@vue/runtime-core").DefineComponent<__VLS_Props$24, {}, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {
4381
+ type __VLS_Props$23 = FieldProps<DataSourceMethodSelectConfig>;
4382
+ declare const __VLS_export$26: import("@vue/runtime-core").DefineComponent<__VLS_Props$23, {}, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {
3891
4383
  change: (...args: any[]) => void;
3892
- }, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_Props$24> & Readonly<{
4384
+ }, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_Props$23> & Readonly<{
3893
4385
  onChange?: ((...args: any[]) => any) | undefined;
3894
4386
  }>, {
3895
4387
  disabled: boolean;
3896
4388
  }, {}, {}, {}, string, import("@vue/runtime-core").ComponentProvideOptions, false, {}, any>;
3897
- declare const _default$14: typeof __VLS_export$25;
4389
+ declare const _default$14: typeof __VLS_export$26;
3898
4390
  //#endregion
3899
4391
  //#region temp/packages/editor/src/fields/DataSourceFieldSelect/Index.vue.d.ts
3900
- type __VLS_Props$23 = FieldProps<DataSourceFieldSelectConfig>;
3901
- declare const __VLS_export$24: import("@vue/runtime-core").DefineComponent<__VLS_Props$23, {}, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {
4392
+ type __VLS_Props$22 = FieldProps<DataSourceFieldSelectConfig>;
4393
+ declare const __VLS_export$25: import("@vue/runtime-core").DefineComponent<__VLS_Props$22, {}, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {
3902
4394
  change: (...args: any[]) => void;
3903
- }, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_Props$23> & Readonly<{
4395
+ }, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_Props$22> & Readonly<{
3904
4396
  onChange?: ((...args: any[]) => any) | undefined;
3905
4397
  }>, {
3906
4398
  disabled: boolean;
3907
4399
  }, {}, {}, {}, string, import("@vue/runtime-core").ComponentProvideOptions, false, {}, any>;
3908
- declare const _default$11: typeof __VLS_export$24;
4400
+ declare const _default$11: typeof __VLS_export$25;
3909
4401
  //#endregion
3910
4402
  //#region temp/packages/editor/src/fields/EventSelect.vue.d.ts
3911
- type __VLS_Props$22 = FieldProps<EventSelectConfig>;
3912
- declare const __VLS_export$23: import("@vue/runtime-core").DefineComponent<__VLS_Props$22, {}, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {
4403
+ type __VLS_Props$21 = FieldProps<EventSelectConfig>;
4404
+ declare const __VLS_export$24: import("@vue/runtime-core").DefineComponent<__VLS_Props$21, {}, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {
3913
4405
  change: (v: any, eventData?: ContainerChangeEventData | undefined) => any;
3914
- }, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_Props$22> & Readonly<{
4406
+ }, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_Props$21> & Readonly<{
3915
4407
  onChange?: ((v: any, eventData?: ContainerChangeEventData | undefined) => any) | undefined;
3916
4408
  }>, {}, {}, {}, {}, string, import("@vue/runtime-core").ComponentProvideOptions, false, {}, any>;
3917
- declare const _default$19: typeof __VLS_export$23;
4409
+ declare const _default$19: typeof __VLS_export$24;
3918
4410
  //#endregion
3919
4411
  //#region temp/packages/editor/src/fields/KeyValue.vue.d.ts
3920
- type __VLS_Props$21 = FieldProps<KeyValueConfig>;
3921
- declare const __VLS_export$22: import("@vue/runtime-core").DefineComponent<__VLS_Props$21, {}, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {
4412
+ type __VLS_Props$20 = FieldProps<KeyValueConfig>;
4413
+ declare const __VLS_export$23: import("@vue/runtime-core").DefineComponent<__VLS_Props$20, {}, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {
3922
4414
  change: (value: Record<string, any>) => any;
3923
- }, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_Props$21> & Readonly<{
4415
+ }, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_Props$20> & Readonly<{
3924
4416
  onChange?: ((value: Record<string, any>) => any) | undefined;
3925
4417
  }>, {
3926
4418
  disabled: boolean;
3927
4419
  }, {}, {}, {}, string, import("@vue/runtime-core").ComponentProvideOptions, false, {}, any>;
3928
- declare const _default$24: typeof __VLS_export$22;
4420
+ declare const _default$25: typeof __VLS_export$23;
3929
4421
  //#endregion
3930
4422
  //#region temp/packages/editor/src/layouts/sidebar/code-block/CodeBlockList.vue.d.ts
3931
4423
  type __VLS_Slots$9 = CodeBlockListSlots;
3932
- type __VLS_Props$20 = {
4424
+ type __VLS_Props$19 = {
3933
4425
  indent?: number;
3934
4426
  nextLevelIndentIncrement?: number;
3935
4427
  customError?: (_id: Id, _errorType: CodeDeleteErrorType) => any;
3936
4428
  };
3937
- declare const __VLS_base$9: import("@vue/runtime-core").DefineComponent<__VLS_Props$20, {
4429
+ declare const __VLS_base$9: import("@vue/runtime-core").DefineComponent<__VLS_Props$19, {
3938
4430
  nodeStatusMap: import("@vue/reactivity").Ref<Map<Id, {
3939
4431
  visible: boolean;
3940
4432
  expand: boolean;
@@ -3947,18 +4439,26 @@ declare const __VLS_base$9: import("@vue/runtime-core").DefineComponent<__VLS_Pr
3947
4439
  draggable: boolean;
3948
4440
  }> & Omit<Map<Id, LayerNodeStatus>, keyof Map<any, any>>)>;
3949
4441
  filter: (text: string | string[]) => void;
3950
- deleteCode: (id: string) => Promise<void>;
4442
+ deleteCode: (id: string, {
4443
+ historySource
4444
+ }?: {
4445
+ historySource?: HistoryOpSource;
4446
+ }) => Promise<void>;
3951
4447
  }, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {
3952
- remove: (id: string) => any;
4448
+ remove: (id: string, args_1: {
4449
+ historySource?: HistoryOpSource;
4450
+ }) => any;
3953
4451
  edit: (id: string) => any;
3954
4452
  "node-contextmenu": (event: MouseEvent, data: TreeNodeData) => any;
3955
- }, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_Props$20> & Readonly<{
3956
- onRemove?: ((id: string) => any) | undefined;
4453
+ }, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_Props$19> & Readonly<{
4454
+ onRemove?: ((id: string, args_1: {
4455
+ historySource?: HistoryOpSource;
4456
+ }) => any) | undefined;
3957
4457
  onEdit?: ((id: string) => any) | undefined;
3958
4458
  "onNode-contextmenu"?: ((event: MouseEvent, data: TreeNodeData) => any) | undefined;
3959
4459
  }>, {}, {}, {}, {}, string, import("@vue/runtime-core").ComponentProvideOptions, false, {}, any>;
3960
- declare const __VLS_export$21: __VLS_WithSlots$9<typeof __VLS_base$9, __VLS_Slots$9>;
3961
- declare const _default$1: typeof __VLS_export$21;
4460
+ declare const __VLS_export$22: __VLS_WithSlots$9<typeof __VLS_base$9, __VLS_Slots$9>;
4461
+ declare const _default$1: typeof __VLS_export$22;
3962
4462
  type __VLS_WithSlots$9<T, S> = T & {
3963
4463
  new (): {
3964
4464
  $slots: S;
@@ -3967,15 +4467,15 @@ type __VLS_WithSlots$9<T, S> = T & {
3967
4467
  //#endregion
3968
4468
  //#region temp/packages/editor/src/layouts/sidebar/code-block/CodeBlockListPanel.vue.d.ts
3969
4469
  type __VLS_Slots$8 = CodeBlockListPanelSlots;
3970
- type __VLS_Props$19 = {
4470
+ type __VLS_Props$18 = {
3971
4471
  indent?: number;
3972
4472
  nextLevelIndentIncrement?: number;
3973
4473
  customError?: (_id: Id, _errorType: CodeDeleteErrorType) => any;
3974
4474
  customContentMenu: CustomContentMenuFunction;
3975
4475
  };
3976
- declare const __VLS_base$8: import("@vue/runtime-core").DefineComponent<__VLS_Props$19, {}, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {}, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_Props$19> & Readonly<{}>, {}, {}, {}, {}, string, import("@vue/runtime-core").ComponentProvideOptions, false, {}, any>;
3977
- declare const __VLS_export$20: __VLS_WithSlots$8<typeof __VLS_base$8, __VLS_Slots$8>;
3978
- declare const _default$2: typeof __VLS_export$20;
4476
+ declare const __VLS_base$8: import("@vue/runtime-core").DefineComponent<__VLS_Props$18, {}, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {}, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_Props$18> & Readonly<{}>, {}, {}, {}, {}, string, import("@vue/runtime-core").ComponentProvideOptions, false, {}, any>;
4477
+ declare const __VLS_export$21: __VLS_WithSlots$8<typeof __VLS_base$8, __VLS_Slots$8>;
4478
+ declare const _default$2: typeof __VLS_export$21;
3979
4479
  type __VLS_WithSlots$8<T, S> = T & {
3980
4480
  new (): {
3981
4481
  $slots: S;
@@ -3983,7 +4483,7 @@ type __VLS_WithSlots$8<T, S> = T & {
3983
4483
  };
3984
4484
  //#endregion
3985
4485
  //#region temp/packages/editor/src/layouts/sidebar/data-source/DataSourceConfigPanel.vue.d.ts
3986
- type __VLS_Props$18 = {
4486
+ type __VLS_Props$17 = {
3987
4487
  title?: string;
3988
4488
  values: any;
3989
4489
  disabled: boolean;
@@ -3992,27 +4492,27 @@ type __VLS_ModelProps$2 = {
3992
4492
  'visible'?: boolean;
3993
4493
  'width'?: number;
3994
4494
  };
3995
- type __VLS_PublicProps$2 = __VLS_Props$18 & __VLS_ModelProps$2;
3996
- declare const __VLS_export$19: import("@vue/runtime-core").DefineComponent<__VLS_PublicProps$2, {
4495
+ type __VLS_PublicProps$2 = __VLS_Props$17 & __VLS_ModelProps$2;
4496
+ declare const __VLS_export$20: import("@vue/runtime-core").DefineComponent<__VLS_PublicProps$2, {
3997
4497
  show(): void;
3998
4498
  hide(): void;
3999
4499
  }, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {
4000
4500
  close: () => any;
4001
4501
  submit: (v: any, eventData: ContainerChangeEventData) => any;
4002
4502
  open: (id: string) => any;
4003
- "update:width": (value: number) => any;
4004
4503
  "update:visible": (value: boolean) => any;
4504
+ "update:width": (value: number) => any;
4005
4505
  }, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_PublicProps$2> & Readonly<{
4006
4506
  onClose?: (() => any) | undefined;
4007
4507
  onSubmit?: ((v: any, eventData: ContainerChangeEventData) => any) | undefined;
4008
4508
  onOpen?: ((id: string) => any) | undefined;
4009
- "onUpdate:width"?: ((value: number) => any) | undefined;
4010
4509
  "onUpdate:visible"?: ((value: boolean) => any) | undefined;
4510
+ "onUpdate:width"?: ((value: number) => any) | undefined;
4011
4511
  }>, {}, {}, {}, {}, string, import("@vue/runtime-core").ComponentProvideOptions, false, {}, any>;
4012
- declare const _default$10: typeof __VLS_export$19;
4512
+ declare const _default$10: typeof __VLS_export$20;
4013
4513
  //#endregion
4014
4514
  //#region temp/packages/editor/src/layouts/sidebar/data-source/DataSourceAddButton.vue.d.ts
4015
- type __VLS_Props$17 = {
4515
+ type __VLS_Props$16 = {
4016
4516
  datasourceTypeList: {
4017
4517
  text: string;
4018
4518
  type: string;
@@ -4020,20 +4520,20 @@ type __VLS_Props$17 = {
4020
4520
  addButtonConfig?: ButtonProps;
4021
4521
  addButtonText?: string;
4022
4522
  };
4023
- declare const __VLS_export$18: import("@vue/runtime-core").DefineComponent<__VLS_Props$17, {}, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {
4523
+ declare const __VLS_export$19: import("@vue/runtime-core").DefineComponent<__VLS_Props$16, {}, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {
4024
4524
  add: (type: string) => any;
4025
- }, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_Props$17> & Readonly<{
4525
+ }, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_Props$16> & Readonly<{
4026
4526
  onAdd?: ((type: string) => any) | undefined;
4027
4527
  }>, {}, {}, {}, {}, string, import("@vue/runtime-core").ComponentProvideOptions, false, {}, any>;
4028
- declare const _default$9: typeof __VLS_export$18;
4528
+ declare const _default$9: typeof __VLS_export$19;
4029
4529
  //#endregion
4030
4530
  //#region temp/packages/editor/src/layouts/props-panel/PropsPanel.vue.d.ts
4031
4531
  type __VLS_Slots$7 = PropsPanelSlots;
4032
- type __VLS_Props$16 = {
4532
+ type __VLS_Props$15 = {
4033
4533
  disabledShowSrc?: boolean;
4034
4534
  extendState?: (_state: FormState) => Record<string, any> | Promise<Record<string, any>>;
4035
4535
  };
4036
- declare const __VLS_base$7: import("@vue/runtime-core").DefineComponent<__VLS_Props$16, {
4536
+ declare const __VLS_base$7: import("@vue/runtime-core").DefineComponent<__VLS_Props$15, {
4037
4537
  getFormState(): FormState | undefined;
4038
4538
  submit: (v: MNode, eventData?: ContainerChangeEventData) => Promise<void>;
4039
4539
  }, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {
@@ -4486,7 +4986,7 @@ declare const __VLS_base$7: import("@vue/runtime-core").DefineComponent<__VLS_Pr
4486
4986
  unmounted: () => any;
4487
4987
  "submit-error": (e: any) => any;
4488
4988
  "form-error": (e: any) => any;
4489
- }, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_Props$16> & Readonly<{
4989
+ }, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_Props$15> & Readonly<{
4490
4990
  onMounted?: ((internalInstance: {
4491
4991
  $: import("@vue/runtime-core").ComponentInternalInstance;
4492
4992
  $data: {};
@@ -4937,8 +5437,8 @@ declare const __VLS_base$7: import("@vue/runtime-core").DefineComponent<__VLS_Pr
4937
5437
  "onSubmit-error"?: ((e: any) => any) | undefined;
4938
5438
  "onForm-error"?: ((e: any) => any) | undefined;
4939
5439
  }>, {}, {}, {}, {}, string, import("@vue/runtime-core").ComponentProvideOptions, false, {}, any>;
4940
- declare const __VLS_export$17: __VLS_WithSlots$7<typeof __VLS_base$7, __VLS_Slots$7>;
4941
- declare const _default$29: typeof __VLS_export$17;
5440
+ declare const __VLS_export$18: __VLS_WithSlots$7<typeof __VLS_base$7, __VLS_Slots$7>;
5441
+ declare const _default$30: typeof __VLS_export$18;
4942
5442
  type __VLS_WithSlots$7<T, S> = T & {
4943
5443
  new (): {
4944
5444
  $slots: S;
@@ -4949,7 +5449,7 @@ type __VLS_WithSlots$7<T, S> = T & {
4949
5449
  type __VLS_Slots$6 = {
4950
5450
  'props-form-panel-header'(_props: {}): any;
4951
5451
  };
4952
- type __VLS_Props$15 = {
5452
+ type __VLS_Props$14 = {
4953
5453
  config: FormConfig;
4954
5454
  values: FormValue;
4955
5455
  disabledShowSrc?: boolean;
@@ -4958,7 +5458,7 @@ type __VLS_Props$15 = {
4958
5458
  labelPosition?: string;
4959
5459
  extendState?: (_state: FormState) => Record<string, any> | Promise<Record<string, any>>;
4960
5460
  };
4961
- declare const __VLS_base$6: import("@vue/runtime-core").DefineComponent<__VLS_Props$15, {
5461
+ declare const __VLS_base$6: import("@vue/runtime-core").DefineComponent<__VLS_Props$14, {
4962
5462
  configForm: Readonly<import("@vue/reactivity").ShallowRef<({
4963
5463
  $: import("@vue/runtime-core").ComponentInternalInstance;
4964
5464
  $data: {};
@@ -5143,15 +5643,15 @@ declare const __VLS_base$6: import("@vue/runtime-core").DefineComponent<__VLS_Pr
5143
5643
  submit: (values: any, eventData?: ContainerChangeEventData | undefined) => any;
5144
5644
  "submit-error": (e: any) => any;
5145
5645
  "form-error": (e: any) => any;
5146
- }, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_Props$15> & Readonly<{
5646
+ }, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_Props$14> & Readonly<{
5147
5647
  onMounted?: ((internalInstance: any) => any) | undefined;
5148
5648
  onUnmounted?: (() => any) | undefined;
5149
5649
  onSubmit?: ((values: any, eventData?: ContainerChangeEventData | undefined) => any) | undefined;
5150
5650
  "onSubmit-error"?: ((e: any) => any) | undefined;
5151
5651
  "onForm-error"?: ((e: any) => any) | undefined;
5152
5652
  }>, {}, {}, {}, {}, string, import("@vue/runtime-core").ComponentProvideOptions, false, {}, any>;
5153
- declare const __VLS_export$16: __VLS_WithSlots$6<typeof __VLS_base$6, __VLS_Slots$6>;
5154
- declare const _default$28: typeof __VLS_export$16;
5653
+ declare const __VLS_export$17: __VLS_WithSlots$6<typeof __VLS_base$6, __VLS_Slots$6>;
5654
+ declare const _default$29: typeof __VLS_export$17;
5155
5655
  type __VLS_WithSlots$6<T, S> = T & {
5156
5656
  new (): {
5157
5657
  $slots: S;
@@ -5159,20 +5659,20 @@ type __VLS_WithSlots$6<T, S> = T & {
5159
5659
  };
5160
5660
  //#endregion
5161
5661
  //#region temp/packages/editor/src/components/ToolButton.vue.d.ts
5162
- type __VLS_Props$14 = {
5662
+ type __VLS_Props$13 = {
5163
5663
  data?: MenuButton | MenuComponent;
5164
5664
  eventType?: 'mousedown' | 'mouseup' | 'click';
5165
5665
  };
5166
- declare const __VLS_export$15: import("@vue/runtime-core").DefineComponent<__VLS_Props$14, {
5666
+ declare const __VLS_export$16: import("@vue/runtime-core").DefineComponent<__VLS_Props$13, {
5167
5667
  getElRef: () => Readonly<import("@vue/reactivity").ShallowRef<HTMLDivElement | null>>;
5168
- }, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {}, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_Props$14> & Readonly<{}>, {
5668
+ }, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {}, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_Props$13> & Readonly<{}>, {
5169
5669
  data: MenuButton | MenuComponent;
5170
5670
  eventType: "mousedown" | "mouseup" | "click";
5171
5671
  }, {}, {}, {}, string, import("@vue/runtime-core").ComponentProvideOptions, false, {}, any>;
5172
- declare const _default$34: typeof __VLS_export$15;
5672
+ declare const _default$35: typeof __VLS_export$16;
5173
5673
  //#endregion
5174
5674
  //#region temp/packages/editor/src/components/ContentMenu.vue.d.ts
5175
- type __VLS_Props$13 = {
5675
+ type __VLS_Props$12 = {
5176
5676
  menuData?: (MenuButton | MenuComponent)[];
5177
5677
  isSubMenu?: boolean;
5178
5678
  active?: string | number;
@@ -5182,7 +5682,7 @@ declare var __VLS_7$1: {};
5182
5682
  type __VLS_Slots$5 = {} & {
5183
5683
  title?: (props: typeof __VLS_7$1) => any;
5184
5684
  };
5185
- declare const __VLS_base$5: import("@vue/runtime-core").DefineComponent<__VLS_Props$13, {
5685
+ declare const __VLS_base$5: import("@vue/runtime-core").DefineComponent<__VLS_Props$12, {
5186
5686
  menu: Readonly<import("@vue/reactivity").ShallowRef<HTMLDivElement | null>>;
5187
5687
  menuPosition: Ref<{
5188
5688
  left: number;
@@ -5208,7 +5708,7 @@ declare const __VLS_base$5: import("@vue/runtime-core").DefineComponent<__VLS_Pr
5208
5708
  mouseenter: () => any;
5209
5709
  show: () => any;
5210
5710
  hide: () => any;
5211
- }, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_Props$13> & Readonly<{
5711
+ }, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_Props$12> & Readonly<{
5212
5712
  onMouseenter?: (() => any) | undefined;
5213
5713
  onShow?: (() => any) | undefined;
5214
5714
  onHide?: (() => any) | undefined;
@@ -5217,8 +5717,8 @@ declare const __VLS_base$5: import("@vue/runtime-core").DefineComponent<__VLS_Pr
5217
5717
  isSubMenu: boolean;
5218
5718
  autoHide: boolean;
5219
5719
  }, {}, {}, {}, string, import("@vue/runtime-core").ComponentProvideOptions, false, {}, any>;
5220
- declare const __VLS_export$14: __VLS_WithSlots$5<typeof __VLS_base$5, __VLS_Slots$5>;
5221
- declare const _default$8: typeof __VLS_export$14;
5720
+ declare const __VLS_export$15: __VLS_WithSlots$5<typeof __VLS_base$5, __VLS_Slots$5>;
5721
+ declare const _default$8: typeof __VLS_export$15;
5222
5722
  type __VLS_WithSlots$5<T, S> = T & {
5223
5723
  new (): {
5224
5724
  $slots: S;
@@ -5226,14 +5726,14 @@ type __VLS_WithSlots$5<T, S> = T & {
5226
5726
  };
5227
5727
  //#endregion
5228
5728
  //#region temp/packages/editor/src/components/Icon.vue.d.ts
5229
- type __VLS_Props$12 = {
5729
+ type __VLS_Props$11 = {
5230
5730
  icon?: any;
5231
5731
  };
5232
- declare const __VLS_export$13: import("@vue/runtime-core").DefineComponent<__VLS_Props$12, {}, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {}, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_Props$12> & Readonly<{}>, {}, {}, {}, {}, string, import("@vue/runtime-core").ComponentProvideOptions, false, {}, any>;
5233
- declare const _default$23: typeof __VLS_export$13;
5732
+ declare const __VLS_export$14: import("@vue/runtime-core").DefineComponent<__VLS_Props$11, {}, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {}, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_Props$11> & Readonly<{}>, {}, {}, {}, {}, string, import("@vue/runtime-core").ComponentProvideOptions, false, {}, any>;
5733
+ declare const _default$24: typeof __VLS_export$14;
5234
5734
  //#endregion
5235
5735
  //#region temp/packages/editor/src/components/SplitView.vue.d.ts
5236
- type __VLS_Props$11 = {
5736
+ type __VLS_Props$10 = {
5237
5737
  width?: number;
5238
5738
  left?: number;
5239
5739
  right?: number;
@@ -5252,13 +5752,13 @@ type __VLS_Slots$4 = {} & {
5252
5752
  } & {
5253
5753
  right?: (props: typeof __VLS_19) => any;
5254
5754
  };
5255
- declare const __VLS_base$4: import("@vue/runtime-core").DefineComponent<__VLS_Props$11, {
5755
+ declare const __VLS_base$4: import("@vue/runtime-core").DefineComponent<__VLS_Props$10, {
5256
5756
  updateWidth(): void;
5257
5757
  }, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {
5258
5758
  change: (...args: any[]) => void;
5259
5759
  "update:left": (...args: any[]) => void;
5260
5760
  "update:right": (...args: any[]) => void;
5261
- }, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_Props$11> & Readonly<{
5761
+ }, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_Props$10> & Readonly<{
5262
5762
  onChange?: ((...args: any[]) => any) | undefined;
5263
5763
  "onUpdate:left"?: ((...args: any[]) => any) | undefined;
5264
5764
  "onUpdate:right"?: ((...args: any[]) => any) | undefined;
@@ -5267,8 +5767,8 @@ declare const __VLS_base$4: import("@vue/runtime-core").DefineComponent<__VLS_Pr
5267
5767
  minRight: number;
5268
5768
  minCenter: number;
5269
5769
  }, {}, {}, {}, string, import("@vue/runtime-core").ComponentProvideOptions, false, {}, any>;
5270
- declare const __VLS_export$12: __VLS_WithSlots$4<typeof __VLS_base$4, __VLS_Slots$4>;
5271
- declare const _default$26: typeof __VLS_export$12;
5770
+ declare const __VLS_export$13: __VLS_WithSlots$4<typeof __VLS_base$4, __VLS_Slots$4>;
5771
+ declare const _default$27: typeof __VLS_export$13;
5272
5772
  type __VLS_WithSlots$4<T, S> = T & {
5273
5773
  new (): {
5274
5774
  $slots: S;
@@ -5285,8 +5785,8 @@ declare const __VLS_base$3: import("@vue/runtime-core").DefineComponent<{}, {},
5285
5785
  }, string, import("@vue/runtime-core").PublicProps, Readonly<{}> & Readonly<{
5286
5786
  onChange?: ((e: OnDrag$1<import("gesto").default>) => any) | undefined;
5287
5787
  }>, {}, {}, {}, {}, string, import("@vue/runtime-core").ComponentProvideOptions, true, {}, any>;
5288
- declare const __VLS_export$11: __VLS_WithSlots$3<typeof __VLS_base$3, __VLS_Slots$3>;
5289
- declare const _default$30: typeof __VLS_export$11;
5788
+ declare const __VLS_export$12: __VLS_WithSlots$3<typeof __VLS_base$3, __VLS_Slots$3>;
5789
+ declare const _default$31: typeof __VLS_export$12;
5290
5790
  type __VLS_WithSlots$3<T, S> = T & {
5291
5791
  new (): {
5292
5792
  $slots: S;
@@ -5294,7 +5794,7 @@ type __VLS_WithSlots$3<T, S> = T & {
5294
5794
  };
5295
5795
  //#endregion
5296
5796
  //#region temp/packages/editor/src/components/CodeBlockEditor.vue.d.ts
5297
- type __VLS_Props$10 = {
5797
+ type __VLS_Props$9 = {
5298
5798
  content: Omit<CodeBlockContent, 'content'> & {
5299
5799
  content: string;
5300
5800
  };
@@ -5306,27 +5806,27 @@ type __VLS_ModelProps$1 = {
5306
5806
  'width'?: number;
5307
5807
  'visible'?: boolean;
5308
5808
  };
5309
- type __VLS_PublicProps$1 = __VLS_Props$10 & __VLS_ModelProps$1;
5310
- declare const __VLS_export$10: import("@vue/runtime-core").DefineComponent<__VLS_PublicProps$1, {
5809
+ type __VLS_PublicProps$1 = __VLS_Props$9 & __VLS_ModelProps$1;
5810
+ declare const __VLS_export$11: import("@vue/runtime-core").DefineComponent<__VLS_PublicProps$1, {
5311
5811
  show(): Promise<void>;
5312
5812
  hide(): Promise<void>;
5313
5813
  }, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {
5314
5814
  close: () => any;
5315
5815
  submit: (values: CodeBlockContent, eventData: ContainerChangeEventData) => any;
5316
5816
  open: () => any;
5317
- "update:width": (value: number) => any;
5318
5817
  "update:visible": (value: boolean) => any;
5818
+ "update:width": (value: number) => any;
5319
5819
  }, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_PublicProps$1> & Readonly<{
5320
5820
  onClose?: (() => any) | undefined;
5321
5821
  onSubmit?: ((values: CodeBlockContent, eventData: ContainerChangeEventData) => any) | undefined;
5322
5822
  onOpen?: (() => any) | undefined;
5323
- "onUpdate:width"?: ((value: number) => any) | undefined;
5324
5823
  "onUpdate:visible"?: ((value: boolean) => any) | undefined;
5824
+ "onUpdate:width"?: ((value: number) => any) | undefined;
5325
5825
  }>, {}, {}, {}, {}, string, import("@vue/runtime-core").ComponentProvideOptions, false, {}, any>;
5326
- declare const _default: typeof __VLS_export$10;
5826
+ declare const _default: typeof __VLS_export$11;
5327
5827
  //#endregion
5328
5828
  //#region temp/packages/editor/src/components/CompareForm.vue.d.ts
5329
- type __VLS_Props$9 = {
5829
+ type __VLS_Props$8 = {
5330
5830
  /** 当前值(修改后的值) */value: Partial<MNode> | Partial<DataSourceSchema> | Partial<CodeBlockContent> | Record<string, any>; /** 用于对比的旧值(修改前的值) */
5331
5831
  lastValue?: Partial<MNode> | Partial<DataSourceSchema> | Partial<CodeBlockContent> | Record<string, any>;
5332
5832
  /**
@@ -5358,60 +5858,121 @@ type __VLS_Props$9 = {
5358
5858
  */
5359
5859
  loadConfig?: CompareFormLoadConfig;
5360
5860
  };
5361
- declare const __VLS_export$9: import("@vue/runtime-core").DefineComponent<__VLS_Props$9, {
5861
+ declare const __VLS_export$10: import("@vue/runtime-core").DefineComponent<__VLS_Props$8, {
5362
5862
  form: ShallowRef<InstanceType<typeof MForm> | null>;
5363
5863
  config: Ref<FormConfig>;
5364
5864
  reload: () => Promise<void>;
5365
- }, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {}, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_Props$9> & Readonly<{}>, {
5865
+ }, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {}, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_Props$8> & Readonly<{}>, {
5366
5866
  labelWidth: string;
5367
5867
  category: CompareCategory;
5368
5868
  }, {}, {}, {}, string, import("@vue/runtime-core").ComponentProvideOptions, false, {}, any>;
5369
- declare const _default$5: typeof __VLS_export$9;
5869
+ declare const _default$5: typeof __VLS_export$10;
5370
5870
  //#endregion
5371
- //#region temp/packages/editor/src/layouts/history-list/Bucket.vue.d.ts
5372
- type __VLS_Props$8 = {
5373
- /** Bucket 标题,例如 "数据源" / "代码块",渲染在 bucket 头部。 */title: string; /** 当前 bucket 对应的目标 id(dataSource.id 或 codeBlock.id),同时用于组装子项的 key。 */
5374
- bucketId: string | number;
5375
- /**
5376
- * 子项 key 的命名空间前缀:内置 `ds` 表示数据源,`cb` 表示代码块;
5377
- * 业务方复用 Bucket 时可传入自定义前缀(如 `mod`)。与上层折叠状态 key 保持一致。
5378
- */
5379
- prefix: string; /** 是否展示底部「回到初始状态」入口,默认 true。无 undo cursor 语义的自定义历史可传 false 关闭。 */
5380
- showInitial?: boolean; /** 当前 bucket 下的所有历史分组,按时间倒序展示(最近的操作在前)。 */
5381
- groups: {
5871
+ //#region temp/packages/editor/src/layouts/history-list/composables.d.ts
5872
+ /**
5873
+ * 通用 bucket 分组(数据源 / 代码块及业务自定义历史)在面板中的展示结构。
5874
+ * Bucket / BucketTab 复用,step 类型通过泛型 T 收窄(约束为 {@link BaseStepValue})。
5875
+ */
5876
+ interface HistoryBucketGroup<T extends BaseStepValue = BaseStepValue> {
5877
+ /** 组内最后一步是否已应用 */
5878
+ applied: boolean;
5879
+ /** 是否为当前所在的分组 */
5880
+ isCurrent?: boolean;
5881
+ /** 该分组的操作类型 */
5882
+ opType: HistoryOpType;
5883
+ /** 组内所有步骤 */
5884
+ steps: {
5885
+ index: number;
5382
5886
  applied: boolean;
5383
5887
  isCurrent?: boolean;
5384
- opType: HistoryOpType;
5385
- steps: {
5386
- index: number;
5387
- applied: boolean;
5388
- isCurrent?: boolean;
5389
- step: any;
5888
+ step: T;
5889
+ }[];
5890
+ }
5891
+ //#endregion
5892
+ //#region temp/packages/editor/src/layouts/history-list/Bucket.vue.d.ts
5893
+ declare const __VLS_export$9: <T extends BaseStepValue = BaseStepValue>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal$1<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
5894
+ props: import("vue").PublicProps & __VLS_PrettifyLocal$1<{
5895
+ /**
5896
+ * 该类历史的整体渲染配置(title / prefix / describe* / isStep* / showInitial / gotoEnabled)。
5897
+ * 由父组件按业务类型注入,组件内部按需读取,避免逐项透传多个 props。
5898
+ */
5899
+ config: HistoryBucketConfig<T>; /** 当前 bucket 对应的目标 id(dataSource.id 或 codeBlock.id),同时用于组装子项的 key。 */
5900
+ bucketId: string | number; /** 当前 bucket 下的所有历史分组,按时间倒序展示(最近的操作在前)。 */
5901
+ groups: HistoryBucketGroup<T>[]; /** 共享的折叠状态表(key -> 是否展开,缺省或 true 为展开、false 为收起),由顶层 panel 统一维护以便跨 tab 复用。 */
5902
+ expanded: Record<string, boolean>;
5903
+ } & {
5904
+ onToggle?: ((_key: string) => any) | undefined;
5905
+ onGoto?: ((_bucketId: string | number, _index: number) => any) | undefined;
5906
+ "onDiff-step"?: ((_bucketId: string | number, _index: number) => any) | undefined;
5907
+ "onRevert-step"?: ((_bucketId: string | number, _index: number) => any) | undefined;
5908
+ "onGoto-initial"?: ((_bucketId: string | number) => any) | undefined;
5909
+ }> & (typeof globalThis extends {
5910
+ __VLS_PROPS_FALLBACK: infer P;
5911
+ } ? P : {});
5912
+ expose: (exposed: {}) => void;
5913
+ attrs: any;
5914
+ slots: {};
5915
+ emit: {
5916
+ (_e: "toggle", _key: string): void;
5917
+ (_e: "goto", _bucketId: string | number, _index: number): void;
5918
+ (_e: "goto-initial", _bucketId: string | number): void;
5919
+ (_e: "diff-step", _bucketId: string | number, _index: number): void;
5920
+ (_e: "revert-step", _bucketId: string | number, _index: number): void;
5921
+ };
5922
+ }>) => import("vue").VNode & {
5923
+ __ctx?: Awaited<typeof __VLS_setup>;
5924
+ };
5925
+ declare const _default$22: typeof __VLS_export$9;
5926
+ type __VLS_PrettifyLocal$1<T> = (T extends any ? { [K in keyof T]: T[K] } : { [K in keyof T as K]: T[K] }) & {};
5927
+ //#endregion
5928
+ //#region temp/packages/editor/src/layouts/history-list/BucketTab.vue.d.ts
5929
+ declare const __VLS_export$8: <T extends BaseStepValue = BaseStepValue>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
5930
+ props: import("vue").PublicProps & __VLS_PrettifyLocal<{
5931
+ /**
5932
+ * 该类历史的整体渲染配置(title / prefix / describe* / isStep* / showInitial / gotoEnabled),
5933
+ * 由父组件按业务类型注入并整体透传给 Bucket,避免逐项透传多个 props。
5934
+ */
5935
+ config: HistoryBucketConfig<T>;
5936
+ /**
5937
+ * 已按目标 id 聚拢成的 bucket 列表,每个 bucket 内部的 groups 已按时间倒序排好。
5938
+ * 空数组时显示空态。
5939
+ */
5940
+ buckets: {
5941
+ id: string | number;
5942
+ groups: HistoryBucketGroup<T>[];
5390
5943
  }[];
5391
- }[]; /** 组级描述文案生成器,接收一个 group,返回展示文本。由父组件按业务类型注入。 */
5392
- describeGroup: (_group: any) => string; /** 单步描述文案生成器,接收一个 step,返回展示文本。用于合并组展开后的子步列表。 */
5393
- describeStep: (_step: any) => string; /** 判断某个 step 是否可查看差异(前后值都存在)。由父组件按业务类型注入;不传则一律不展示差异入口。 */
5394
- isStepDiffable?: (_step: any) => boolean; /** 共享的折叠状态表(key -> 是否展开),由顶层 panel 统一维护以便跨 tab 复用。 */
5395
- expanded: Record<string, boolean>; /** 是否支持「跳转到该记录」(goto)。默认 true。 */
5396
- gotoEnabled?: boolean;
5944
+ /**
5945
+ * 共享的折叠状态表(key -> 是否展开),由顶层 panel 统一维护。
5946
+ * key 形如 `${prefix}-${id}-${组内首步 index}`——以稳定的 step 索引而非展示位置标识分组,
5947
+ * 这样历史数据更新后已展开的分组状态仍能正确保持。
5948
+ */
5949
+ expanded: Record<string, boolean>;
5950
+ } & {
5951
+ onClear?: (() => any) | undefined;
5952
+ onToggle?: ((_key: string) => any) | undefined;
5953
+ onGoto?: ((_targetId: string | number, _index: number) => any) | undefined;
5954
+ "onDiff-step"?: ((_targetId: string | number, _index: number) => any) | undefined;
5955
+ "onRevert-step"?: ((_targetId: string | number, _index: number) => any) | undefined;
5956
+ "onGoto-initial"?: ((_targetId: string | number) => any) | undefined;
5957
+ }> & (typeof globalThis extends {
5958
+ __VLS_PROPS_FALLBACK: infer P;
5959
+ } ? P : {});
5960
+ expose: (exposed: {}) => void;
5961
+ attrs: any;
5962
+ slots: {};
5963
+ emit: {
5964
+ (_e: "toggle", _key: string): void;
5965
+ (_e: "goto", _targetId: string | number, _index: number): void;
5966
+ (_e: "goto-initial", _targetId: string | number): void;
5967
+ (_e: "diff-step", _targetId: string | number, _index: number): void;
5968
+ (_e: "revert-step", _targetId: string | number, _index: number): void;
5969
+ (_e: "clear"): void;
5970
+ };
5971
+ }>) => import("vue").VNode & {
5972
+ __ctx?: Awaited<typeof __VLS_setup>;
5397
5973
  };
5398
- declare const __VLS_export$8: import("@vue/runtime-core").DefineComponent<__VLS_Props$8, {}, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {} & {
5399
- toggle: (_key: string) => any;
5400
- goto: (_bucketId: string | number, _index: number) => any;
5401
- "diff-step": (_bucketId: string | number, _index: number) => any;
5402
- "revert-step": (_bucketId: string | number, _index: number) => any;
5403
- "goto-initial": (_bucketId: string | number) => any;
5404
- }, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_Props$8> & Readonly<{
5405
- onToggle?: ((_key: string) => any) | undefined;
5406
- onGoto?: ((_bucketId: string | number, _index: number) => any) | undefined;
5407
- "onDiff-step"?: ((_bucketId: string | number, _index: number) => any) | undefined;
5408
- "onRevert-step"?: ((_bucketId: string | number, _index: number) => any) | undefined;
5409
- "onGoto-initial"?: ((_bucketId: string | number) => any) | undefined;
5410
- }>, {
5411
- gotoEnabled: boolean;
5412
- showInitial: boolean;
5413
- }, {}, {}, {}, string, import("@vue/runtime-core").ComponentProvideOptions, false, {}, any>;
5414
- declare const _default$22: typeof __VLS_export$8;
5974
+ declare const _default$23: typeof __VLS_export$8;
5975
+ type __VLS_PrettifyLocal<T> = (T extends any ? { [K in keyof T]: T[K] } : { [K in keyof T as K]: T[K] }) & {};
5415
5976
  //#endregion
5416
5977
  //#region temp/packages/editor/src/layouts/history-list/HistoryDiffDialog.vue.d.ts
5417
5978
  type __VLS_Props$7 = {
@@ -5427,11 +5988,13 @@ type __VLS_Props$7 = {
5427
5988
  */
5428
5989
  loadConfig?: CompareFormLoadConfig;
5429
5990
  width?: string;
5991
+ isConfirm?: boolean;
5430
5992
  onConfirm?: () => void;
5431
5993
  selfDiffFieldTypes?: string[];
5432
5994
  };
5433
5995
  declare const __VLS_export$7: import("@vue/runtime-core").DefineComponent<__VLS_Props$7, {
5434
5996
  open: (p: DiffDialogPayload) => void;
5997
+ confirm: (p: DiffDialogPayload) => Promise<boolean>;
5435
5998
  close: () => void;
5436
5999
  }, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {
5437
6000
  close: (...args: any[]) => void;
@@ -5469,13 +6032,13 @@ declare const __VLS_base$2: import("@vue/runtime-core").DefineComponent<__VLS_Pu
5469
6032
  target: Readonly<import("@vue/reactivity").ShallowRef<HTMLDivElement | null>>;
5470
6033
  titleEl: Readonly<import("@vue/reactivity").ShallowRef<HTMLDivElement | null>>;
5471
6034
  }, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {
6035
+ "update:visible": (value: boolean) => any;
5472
6036
  "update:width": (value: number) => any;
5473
6037
  "update:height": (value: number) => any;
5474
- "update:visible": (value: boolean) => any;
5475
6038
  }, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
6039
+ "onUpdate:visible"?: ((value: boolean) => any) | undefined;
5476
6040
  "onUpdate:width"?: ((value: number) => any) | undefined;
5477
6041
  "onUpdate:height"?: ((value: number) => any) | undefined;
5478
- "onUpdate:visible"?: ((value: boolean) => any) | undefined;
5479
6042
  }>, {
5480
6043
  title: string;
5481
6044
  position: Position;
@@ -5531,7 +6094,7 @@ declare const __VLS_base$1: import("@vue/runtime-core").DefineComponent<__VLS_Pr
5531
6094
  indent: number;
5532
6095
  }, {}, {}, {}, string, import("@vue/runtime-core").ComponentProvideOptions, false, {}, any>;
5533
6096
  declare const __VLS_export$5: __VLS_WithSlots$1<typeof __VLS_base$1, __VLS_Slots$1>;
5534
- declare const _default$35: typeof __VLS_export$5;
6097
+ declare const _default$36: typeof __VLS_export$5;
5535
6098
  type __VLS_WithSlots$1<T, S> = T & {
5536
6099
  new (): {
5537
6100
  $slots: S;
@@ -5582,7 +6145,7 @@ declare const __VLS_base: import("@vue/runtime-core").DefineComponent<__VLS_Prop
5582
6145
  isExpandable: IsExpandableFunction;
5583
6146
  }, {}, {}, {}, string, import("@vue/runtime-core").ComponentProvideOptions, false, {}, any>;
5584
6147
  declare const __VLS_export$4: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
5585
- declare const _default$36: typeof __VLS_export$4;
6148
+ declare const _default$37: typeof __VLS_export$4;
5586
6149
  type __VLS_WithSlots<T, S> = T & {
5587
6150
  new (): {
5588
6151
  $slots: S;
@@ -5598,7 +6161,7 @@ declare const __VLS_export$3: import("@vue/runtime-core").DefineComponent<__VLS_
5598
6161
  }>, {
5599
6162
  disabled: boolean;
5600
6163
  }, {}, {}, {}, string, import("@vue/runtime-core").ComponentProvideOptions, false, {}, any>;
5601
- declare const _default$27: typeof __VLS_export$3;
6164
+ declare const _default$28: typeof __VLS_export$3;
5602
6165
  //#endregion
5603
6166
  //#region temp/packages/editor/src/fields/DisplayConds.vue.d.ts
5604
6167
  type __VLS_Props$2 = FieldProps<DisplayCondsConfig>;
@@ -5629,11 +6192,11 @@ declare const __VLS_export: import("@vue/runtime-core").DefineComponent<__VLS_Pr
5629
6192
  onChange?: ((v: any, eventData: ContainerChangeEventData) => any) | undefined;
5630
6193
  onAddDiffCount?: (() => any) | undefined;
5631
6194
  }>, {}, {}, {}, {}, string, import("@vue/runtime-core").ComponentProvideOptions, false, {}, any>;
5632
- declare const _default$31: typeof __VLS_export;
6195
+ declare const _default$32: typeof __VLS_export;
5633
6196
  //#endregion
5634
6197
  //#region temp/packages/editor/src/plugin.d.ts
5635
- declare const _default$39: {
6198
+ declare const _default$40: {
5636
6199
  install: (app: App, opt?: Partial<EditorInstallOptions | DesignPluginOptions | FormInstallOptions>) => void;
5637
6200
  };
5638
6201
  //#endregion
5639
- export { AddMNode, AddPrefixToObject, AsyncAfterHook, AsyncBeforeHook, AsyncHookPlugin, AsyncMethodName, BeforeAdd, CODE_DRAFT_STORAGE_KEY, COPY_CODE_STORAGE_KEY, COPY_DS_STORAGE_KEY, COPY_STORAGE_KEY, CanDropInFunction, CanDropInScene, _default as CodeBlockEditor, CodeBlockHistoryGroup, _default$1 as CodeBlockList, _default$2 as CodeBlockListPanel, CodeBlockListPanelSlots, CodeBlockListSlots, CodeBlockStepValue, CodeDeleteErrorType, CodeDslItem, CodeParamStatement, CodeRelation, _default$3 as CodeSelect, _default$4 as CodeSelectCol, CodeState, ColumnLayout, CombineInfo, CompareCategory, _default$5 as CompareForm, CompareFormLoadConfig, CompareFormLoadConfigContext, ComponentGroup, ComponentGroupState, ComponentItem, _default$6 as ComponentListPanel, ComponentListPanelSlots, _default$7 as CondOpSelect, _default$8 as ContentMenu, CustomContentMenuFunction, DEFAULT_LEFT_COLUMN_WIDTH, DEFAULT_RIGHT_COLUMN_WIDTH, _default$9 as DataSourceAddButton, _default$10 as DataSourceConfigPanel, _default$11 as DataSourceFieldSelect, _default$12 as DataSourceFields, DataSourceHistoryGroup, _default$13 as DataSourceInput, DataSourceListSlots, _default$14 as DataSourceMethodSelect, _default$15 as DataSourceMethods, _default$16 as DataSourceMocks, _default$17 as DataSourceSelect, DataSourceStepValue, DatasourceTypeOption, DepTargetType, DiffDialogPayload, _default$18 as DisplayConds, DragClassification, DragType, DslOpOptions, EditorEvents, EditorInstallOptions, EditorNodeInfo, EditorSlots, EventBus, EventBusEvent, _default$19 as EventSelect, Fixed2Other, _default$20 as FloatingBox, FrameworkSlots, GetCodeBlockFormConfigOptions, GetColumnWidth, GetConfig, H_GUIDE_LINE_STORAGE_KEY, _default$21 as HistoryDiffDialog, _default$22 as HistoryListBucket, HistoryListExtraTab, HistoryOpOptions, HistoryOpOptionsWithChangeRecords, HistoryOpType, HistoryState, _default$23 as Icon, IdleTask, IdleTaskEvents, IsExpandableFunction, KeyBindingCacheItem, KeyBindingCommand, KeyBindingItem, _default$24 as KeyValue, Keys, LEFT_COLUMN_WIDTH_STORAGE_KEY, LayerNodeSlots, LayerNodeStatus, LayerOffset, _default$25 as LayerPanel, LayerPanelSlots, Layout, _default$26 as LayoutContainer, _default$26 as SplitView, ListState, MIN_CENTER_COLUMN_WIDTH, MIN_LEFT_COLUMN_WIDTH, MIN_RIGHT_COLUMN_WIDTH, MenuBarData, MenuButton, MenuComponent, MenuItem, type OnDrag, PROPS_PANEL_WIDTH_STORAGE_KEY, PageBarSortOptions, _default$27 as PageFragmentSelect, PageHistoryGroup, PageHistoryStepEntry, PartSortableOptions, PastePosition, PropsFormConfigFunction, _default$28 as PropsFormPanel, PropsFormValueFunction, _default$29 as PropsPanel, PropsPanelSlots, PropsState, RIGHT_COLUMN_WIDTH_STORAGE_KEY, _default$30 as Resizer, ScrollViewer, ScrollViewerEvent, ScrollViewerSlots, Services, SetColumnWidth, SideBarData, SideComponent, SideItem, SideItemKey, SidebarSlots, StageCore, StageOptions, StageOverlayState, StageRect, StageSlots, StepValue, StoreState, StoreStateKey, _default$31 as StyleSetter, SyncAfterHook, SyncBeforeHook, SyncHookPlugin, _default$32 as TMagicCodeEditor, _default$33 as TMagicEditor, _default$34 as ToolButton, _default$35 as Tree, _default$36 as TreeNode, TreeNodeData, UI_SELECT_MODE_EVENT_NAME, UiState, UndoRedo, V_GUIDE_LINE_STORAGE_KEY, WorkspaceSlots, advancedTabConfig, arrayOptions, beforePaste, buildChangeRecords, calcAlignCenterStyle, calcLayerTargetIndex, calcMoveStyle, canUsePluginMethods, change2Fixed, classifyDragSources, _default$37 as codeBlockService, collectRelatedNodes, _default$38 as dataSourceService, debug, _default$39 as default, defaultIsExpandable, _default$40 as depService, designPlugin, displayTabConfig, editorNodeMergeCustomizer, _default$41 as editorService, eqOptions, error, eventTabConfig, _default$42 as eventsService, fillConfig, fixNodeLeft, fixNodePosition, formPlugin, generatePageName, generatePageNameByApp, getAddParent, getCascaderOptionsFromFields, getCodeBlockFormConfig, getDefaultConfig, getDisplayField, getEditorConfig, getFieldType, getFormConfig, getFormValue, getGuideLineFromCache, getInitPositionStyle, getNodeIndex, getPageFragmentList, getPageList, getPageNameList, getPositionInContainer, getRelativeStyle, _default$43 as historyService, info, isIncludeDataSource, _default$44 as loadMonaco, log, moveItemsInContainer, numberOptions, _default$45 as propsService, resolveSelectedNode, serializeConfig, setChildrenLayout, setEditorConfig, setLayout, _default$46 as stageOverlayService, _default$47 as storageService, styleTabConfig, tablePlugin, toggleFixedPosition, _default$48 as uiService, updateStatus, useCodeBlockEdit, useEditorContentHeight, useFilter, useFloatBox, useGetSo, useNextFloatBoxPosition, useNodeStatus, useServices, useStage, useWindowRect, warn };
6202
+ export { AddMNode, AddPrefixToObject, AsyncAfterHook, AsyncBeforeHook, AsyncHookPlugin, AsyncMethodName, BaseStepValue, BeforeAdd, CODE_DRAFT_STORAGE_KEY, COPY_CODE_STORAGE_KEY, COPY_DS_STORAGE_KEY, COPY_STORAGE_KEY, CanDropInFunction, CanDropInScene, _default as CodeBlockEditor, CodeBlockHistoryGroup, _default$1 as CodeBlockList, _default$2 as CodeBlockListPanel, CodeBlockListPanelSlots, CodeBlockListSlots, CodeBlockStepValue, CodeDeleteErrorType, CodeDslItem, CodeParamStatement, CodeRelation, _default$3 as CodeSelect, _default$4 as CodeSelectCol, CodeState, ColumnLayout, CombineInfo, CompareCategory, _default$5 as CompareForm, CompareFormLoadConfig, CompareFormLoadConfigContext, ComponentGroup, ComponentGroupState, ComponentItem, _default$6 as ComponentListPanel, ComponentListPanelSlots, _default$7 as CondOpSelect, _default$8 as ContentMenu, CustomContentMenuFunction, DEFAULT_LEFT_COLUMN_WIDTH, DEFAULT_RIGHT_COLUMN_WIDTH, _default$9 as DataSourceAddButton, _default$10 as DataSourceConfigPanel, _default$11 as DataSourceFieldSelect, _default$12 as DataSourceFields, DataSourceHistoryGroup, _default$13 as DataSourceInput, DataSourceListSlots, _default$14 as DataSourceMethodSelect, _default$15 as DataSourceMethods, _default$16 as DataSourceMocks, _default$17 as DataSourceSelect, DataSourceStepValue, DatasourceTypeOption, DepTargetType, DiffDialogPayload, _default$18 as DisplayConds, DragClassification, DragType, DslOpOptions, EditorEvents, EditorInstallOptions, EditorNodeInfo, EditorSlots, EventBus, EventBusEvent, _default$19 as EventSelect, Fixed2Other, _default$20 as FloatingBox, FrameworkSlots, GetCodeBlockFormConfigOptions, GetColumnWidth, GetConfig, H_GUIDE_LINE_STORAGE_KEY, HistoryBucketConfig, _default$21 as HistoryDiffDialog, _default$22 as HistoryListBucket, _default$23 as HistoryListBucketTab, HistoryListExtraTab, HistoryOpOptions, HistoryOpOptionsWithChangeRecords, HistoryOpSource, HistoryOpType, HistoryPersistOptions, HistoryRowDescriptor, HistoryState, _default$24 as Icon, IdleTask, IdleTaskEvents, IsExpandableFunction, KeyBindingCacheItem, KeyBindingCommand, KeyBindingItem, _default$25 as KeyValue, Keys, LEFT_COLUMN_WIDTH_STORAGE_KEY, LayerNodeSlots, LayerNodeStatus, LayerOffset, _default$26 as LayerPanel, LayerPanelSlots, Layout, _default$27 as LayoutContainer, _default$27 as SplitView, ListState, MIN_CENTER_COLUMN_WIDTH, MIN_LEFT_COLUMN_WIDTH, MIN_RIGHT_COLUMN_WIDTH, MenuBarData, MenuButton, MenuComponent, MenuItem, type OnDrag, PROPS_PANEL_WIDTH_STORAGE_KEY, PageBarSortOptions, _default$28 as PageFragmentSelect, PageHistoryGroup, PageHistoryStepEntry, PartSortableOptions, PastePosition, PersistedHistoryState, PropsFormConfigFunction, _default$29 as PropsFormPanel, PropsFormValueFunction, _default$30 as PropsPanel, PropsPanelSlots, PropsState, RIGHT_COLUMN_WIDTH_STORAGE_KEY, _default$31 as Resizer, ScrollViewer, ScrollViewerEvent, ScrollViewerSlots, SerializedUndoRedo, Services, SetColumnWidth, SideBarData, SideComponent, SideItem, SideItemKey, SidebarSlots, StageCore, StageOptions, StageOverlayState, StageRect, StageSlots, StepDiffItem, StepValue, StoreState, StoreStateKey, _default$32 as StyleSetter, SyncAfterHook, SyncBeforeHook, SyncHookPlugin, _default$33 as TMagicCodeEditor, _default$34 as TMagicEditor, _default$35 as ToolButton, _default$36 as Tree, _default$37 as TreeNode, TreeNodeData, UI_SELECT_MODE_EVENT_NAME, UiState, UndoRedo, V_GUIDE_LINE_STORAGE_KEY, WorkspaceSlots, advancedTabConfig, arrayOptions, beforePaste, buildChangeRecords, calcAlignCenterStyle, calcLayerTargetIndex, calcMoveStyle, canUsePluginMethods, change2Fixed, classifyDragSources, _default$38 as codeBlockService, collectRelatedNodes, createStackStep, _default$39 as dataSourceService, debug, _default$40 as default, defaultIsExpandable, _default$41 as depService, describeRevertStep, describeStepForRevert, deserializeStacks, designPlugin, detectPageTargetId, detectPageTargetName, detectStackOpType, displayTabConfig, editorNodeMergeCustomizer, _default$42 as editorService, eqOptions, error, eventTabConfig, _default$43 as eventsService, fillConfig, fixNodeLeft, fixNodePosition, formPlugin, generatePageName, generatePageNameByApp, getAddParent, getCascaderOptionsFromFields, getCodeBlockFormConfig, getDefaultConfig, getDisplayField, getEditorConfig, getFieldType, getFormConfig, getFormValue, getGuideLineFromCache, getInitPositionStyle, getNodeIndex, getOrCreateStack, getPageFragmentList, getPageList, getPageNameList, getPositionInContainer, getRelativeStyle, _default$44 as historyService, idbDelete, idbGet, idbSet, info, isIncludeDataSource, isIndexedDBSupported, _default$45 as loadMonaco, log, markStackSaved, mergePageSteps, mergeStackSteps, moveItemsInContainer, numberOptions, openIndexedDB, _default$46 as propsService, resolveSelectedNode, serializeConfig, serializeStacks, setChildrenLayout, setEditorConfig, setLayout, _default$47 as stageOverlayService, _default$48 as storageService, styleTabConfig, tablePlugin, toggleFixedPosition, _default$49 as uiService, undoFloor, updateStatus, useCodeBlockEdit, useEditorContentHeight, useFilter, useFloatBox, useGetSo, useNextFloatBoxPosition, useNodeStatus, useServices, useStage, useWindowRect, warn };