@tmagic/editor 1.8.0-beta.2 → 1.8.0-beta.4

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 (84) hide show
  1. package/dist/es/Editor.vue_vue_type_script_setup_true_lang.js +9 -0
  2. package/dist/es/components/CompareForm.vue_vue_type_script_setup_true_lang.js +46 -28
  3. package/dist/es/editorProps.js +2 -0
  4. package/dist/es/fields/CodeLink.vue_vue_type_script_setup_true_lang.js +2 -5
  5. package/dist/es/hooks/use-code-block-edit.js +6 -3
  6. package/dist/es/hooks/use-data-source-edit.js +5 -2
  7. package/dist/es/hooks/use-stage.js +8 -4
  8. package/dist/es/index.js +3 -1
  9. package/dist/es/layouts/CodeEditor.vue_vue_type_script_setup_true_lang.js +2 -5
  10. package/dist/es/layouts/NavMenu.vue_vue_type_script_setup_true_lang.js +1 -1
  11. package/dist/es/layouts/history-list/Bucket.vue_vue_type_script_setup_true_lang.js +37 -14
  12. package/dist/es/layouts/history-list/BucketTab.js +5 -0
  13. package/dist/es/layouts/history-list/{CodeBlockTab.vue_vue_type_script_setup_true_lang.js → BucketTab.vue_vue_type_script_setup_true_lang.js} +30 -16
  14. package/dist/es/layouts/history-list/GroupRow.vue_vue_type_script_setup_true_lang.js +91 -60
  15. package/dist/es/layouts/history-list/HistoryDiffDialog.vue_vue_type_script_setup_true_lang.js +82 -30
  16. package/dist/es/layouts/history-list/HistoryListPanel.vue_vue_type_script_setup_true_lang.js +140 -66
  17. package/dist/es/layouts/history-list/InitialRow.vue_vue_type_script_setup_true_lang.js +15 -9
  18. package/dist/es/layouts/history-list/PageTab.vue_vue_type_script_setup_true_lang.js +15 -6
  19. package/dist/es/layouts/history-list/composables.js +72 -2
  20. package/dist/es/layouts/props-panel/PropsPanel.vue_vue_type_script_setup_true_lang.js +5 -1
  21. package/dist/es/layouts/sidebar/ComponentListPanel.vue_vue_type_script_setup_true_lang.js +1 -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 +25 -10
  32. package/dist/es/services/dataSource.js +24 -10
  33. package/dist/es/services/editor.js +98 -46
  34. package/dist/es/services/history.js +7 -2
  35. package/dist/es/services/keybinding.js +3 -3
  36. package/dist/es/style.css +60 -16
  37. package/dist/es/utils/content-menu.js +17 -9
  38. package/dist/style.css +60 -16
  39. package/dist/tmagic-editor.umd.cjs +795 -443
  40. package/package.json +7 -7
  41. package/src/Editor.vue +8 -0
  42. package/src/components/CompareForm.vue +50 -19
  43. package/src/editorProps.ts +7 -0
  44. package/src/fields/CodeLink.vue +2 -5
  45. package/src/hooks/use-code-block-edit.ts +4 -3
  46. package/src/hooks/use-data-source-edit.ts +2 -2
  47. package/src/hooks/use-stage.ts +4 -3
  48. package/src/index.ts +2 -0
  49. package/src/layouts/CodeEditor.vue +2 -5
  50. package/src/layouts/NavMenu.vue +1 -1
  51. package/src/layouts/history-list/Bucket.vue +58 -29
  52. package/src/layouts/history-list/BucketTab.vue +80 -0
  53. package/src/layouts/history-list/GroupRow.vue +110 -58
  54. package/src/layouts/history-list/HistoryDiffDialog.vue +53 -33
  55. package/src/layouts/history-list/HistoryListPanel.vue +165 -52
  56. package/src/layouts/history-list/InitialRow.vue +17 -6
  57. package/src/layouts/history-list/PageTab.vue +25 -7
  58. package/src/layouts/history-list/composables.ts +92 -1
  59. package/src/layouts/props-panel/PropsPanel.vue +5 -1
  60. package/src/layouts/sidebar/ComponentListPanel.vue +9 -5
  61. package/src/layouts/sidebar/code-block/CodeBlockList.vue +5 -5
  62. package/src/layouts/sidebar/code-block/CodeBlockListPanel.vue +1 -1
  63. package/src/layouts/sidebar/code-block/useContentMenu.ts +1 -1
  64. package/src/layouts/sidebar/data-source/DataSourceListPanel.vue +1 -1
  65. package/src/layouts/sidebar/data-source/useContentMenu.ts +1 -1
  66. package/src/layouts/sidebar/layer/LayerMenu.vue +19 -11
  67. package/src/layouts/sidebar/layer/LayerNodeTool.vue +7 -4
  68. package/src/layouts/workspace/viewer/Stage.vue +1 -1
  69. package/src/layouts/workspace/viewer/ViewerMenu.vue +8 -8
  70. package/src/services/codeBlock.ts +33 -9
  71. package/src/services/dataSource.ts +30 -8
  72. package/src/services/editor.ts +111 -34
  73. package/src/services/history.ts +10 -0
  74. package/src/services/keybinding.ts +3 -3
  75. package/src/theme/history-list-panel.scss +67 -14
  76. package/src/theme/props-panel.scss +3 -3
  77. package/src/type.ts +146 -0
  78. package/src/utils/content-menu.ts +18 -9
  79. package/types/index.d.ts +387 -156
  80. package/dist/es/layouts/history-list/CodeBlockTab.js +0 -5
  81. package/dist/es/layouts/history-list/DataSourceTab.js +0 -5
  82. package/dist/es/layouts/history-list/DataSourceTab.vue_vue_type_script_setup_true_lang.js +0 -62
  83. package/src/layouts/history-list/CodeBlockTab.vue +0 -61
  84. package/src/layouts/history-list/DataSourceTab.vue +0 -61
@@ -1,30 +1,27 @@
1
- import { opLabel } from "./composables.js";
1
+ import { opLabel, sourceLabel } from "./composables.js";
2
2
  import { Fragment, computed, createCommentVNode, createElementBlock, createElementVNode, defineComponent, normalizeClass, openBlock, renderList, toDisplayString, unref, withModifiers } from "vue";
3
3
  //#region packages/editor/src/layouts/history-list/GroupRow.vue?vue&type=script&setup=true&lang.ts
4
4
  var _hoisted_1 = ["title"];
5
5
  var _hoisted_2 = ["title"];
6
6
  var _hoisted_3 = { class: "m-editor-history-list-item-desc" };
7
- var _hoisted_4 = {
8
- key: 0,
9
- class: "m-editor-history-list-item-current"
10
- };
11
- var _hoisted_5 = {
7
+ var _hoisted_4 = ["title"];
8
+ var _hoisted_5 = ["title"];
9
+ var _hoisted_6 = {
12
10
  key: 2,
13
11
  class: "m-editor-history-list-item-merge"
14
12
  };
15
- var _hoisted_6 = {
13
+ var _hoisted_7 = {
16
14
  key: 0,
17
15
  class: "m-editor-history-list-substeps"
18
16
  };
19
- var _hoisted_7 = ["title", "onClick"];
20
- var _hoisted_8 = { class: "m-editor-history-list-item-index" };
21
- var _hoisted_9 = { class: "m-editor-history-list-substep-desc" };
22
- var _hoisted_10 = {
23
- key: 0,
24
- class: "m-editor-history-list-item-current"
25
- };
26
- var _hoisted_11 = ["onClick"];
27
- var _hoisted_12 = ["onClick"];
17
+ var _hoisted_8 = ["title"];
18
+ var _hoisted_9 = { class: "m-editor-history-list-item-index" };
19
+ var _hoisted_10 = { class: "m-editor-history-list-substep-desc" };
20
+ var _hoisted_11 = ["title"];
21
+ var _hoisted_12 = ["title"];
22
+ var _hoisted_13 = ["onClick"];
23
+ var _hoisted_14 = ["onClick"];
24
+ var _hoisted_15 = ["onClick"];
28
25
  var GroupRow_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
29
26
  name: "MEditorHistoryListGroupRow",
30
27
  __name: "GroupRow",
@@ -34,10 +31,20 @@ var GroupRow_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defin
34
31
  merged: { type: Boolean },
35
32
  opType: {},
36
33
  desc: {},
34
+ source: {},
35
+ time: {},
36
+ timeTitle: {},
37
37
  stepCount: {},
38
38
  subSteps: {},
39
39
  expanded: { type: Boolean },
40
- isCurrent: { type: Boolean }
40
+ isCurrent: {
41
+ type: Boolean,
42
+ default: false
43
+ },
44
+ gotoEnabled: {
45
+ type: Boolean,
46
+ default: true
47
+ }
41
48
  },
42
49
  emits: [
43
50
  "toggle",
@@ -48,33 +55,29 @@ var GroupRow_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defin
48
55
  setup(__props, { emit: __emit }) {
49
56
  const props = __props;
50
57
  const emit = __emit;
51
- /** 单步组:头部可点击 goto;合并组:头部可点击切换展开。当前组(isCurrent)的单步组头部不可点击。 */
52
- const isHeadClickable = computed(() => {
53
- if (props.merged) return true;
54
- return !props.isCurrent;
55
- });
58
+ /**
59
+ * 仅合并组头部可点击(切换展开 / 收起);
60
+ * 单步组的跳转改由头部的「回退」按钮触发,整行不再可点击。
61
+ */
62
+ const isHeadClickable = computed(() => props.merged);
56
63
  const headTitle = computed(() => {
57
64
  if (props.merged) return props.expanded ? "点击收起子步" : "点击展开子步";
58
65
  if (props.isCurrent) return "当前所在记录";
59
- return "点击跳转到该记录";
66
+ return "";
60
67
  });
61
68
  /**
62
- * 头部点击行为分流:
63
- * - 合并组:仅切换展开 / 收起,不触发 goto;
64
- * - 单步组:跳转到该唯一步骤;当前组忽略点击。
69
+ * 头部点击行为:仅合并组切换展开 / 收起;单步组不再响应整行点击。
65
70
  */
66
71
  const onHeadClick = () => {
67
- if (props.merged) {
68
- emit("toggle", props.groupKey);
69
- return;
70
- }
71
- if (props.isCurrent) return;
72
- if (!props.subSteps.length) return;
73
- emit("goto", props.subSteps[0].index);
72
+ if (props.merged) emit("toggle", props.groupKey);
74
73
  };
75
- const onSubStepClick = (s) => {
76
- if (s.isCurrent) return;
77
- emit("goto", s.index);
74
+ const onGotoClick = (index) => {
75
+ if (!props.gotoEnabled) return;
76
+ emit("goto", index);
77
+ };
78
+ const subStepTitle = (s) => {
79
+ if (s.isCurrent) return "当前所在记录";
80
+ return "";
78
81
  };
79
82
  /** 单步组头部是否展示"查看差异"入口:要求该唯一子步本身可对比。 */
80
83
  const headDiffable = computed(() => !props.merged && Boolean(props.subSteps[0]?.diffable));
@@ -127,51 +130,79 @@ var GroupRow_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defin
127
130
  }, toDisplayString(headIndexLabel.value), 9, _hoisted_2),
128
131
  createElementVNode("span", { class: normalizeClass(["m-editor-history-list-item-op", `op-${__props.opType}`]) }, toDisplayString(unref(opLabel)(__props.opType)), 3),
129
132
  createElementVNode("span", _hoisted_3, toDisplayString(__props.desc), 1),
130
- __props.isCurrent ? (openBlock(), createElementBlock("span", _hoisted_4, "当前")) : createCommentVNode("v-if", true),
131
- !__props.merged && headDiffable.value ? (openBlock(), createElementBlock("span", {
133
+ !__props.merged && unref(sourceLabel)(__props.source) ? (openBlock(), createElementBlock("span", {
134
+ key: 0,
135
+ class: "m-editor-history-list-item-source",
136
+ title: `操作途径:${unref(sourceLabel)(__props.source)}`
137
+ }, toDisplayString(unref(sourceLabel)(__props.source)), 9, _hoisted_4)) : createCommentVNode("v-if", true),
138
+ !__props.merged && __props.time ? (openBlock(), createElementBlock("span", {
132
139
  key: 1,
133
- class: "m-editor-history-list-item-diff",
134
- title: "查看修改差异",
135
- onClick: _cache[0] || (_cache[0] = withModifiers(($event) => onDiffClick(__props.subSteps[0].index), ["stop"]))
136
- }, "查看差异")) : createCommentVNode("v-if", true),
137
- __props.merged ? (openBlock(), createElementBlock("span", _hoisted_5, "合并 " + toDisplayString(__props.stepCount) + " 步", 1)) : createCommentVNode("v-if", true),
140
+ class: "m-editor-history-list-item-time",
141
+ title: __props.timeTitle || __props.time
142
+ }, toDisplayString(__props.time), 9, _hoisted_5)) : createCommentVNode("v-if", true),
143
+ __props.merged ? (openBlock(), createElementBlock("span", _hoisted_6, "合并 " + toDisplayString(__props.stepCount) + " 步", 1)) : createCommentVNode("v-if", true),
138
144
  !__props.merged && headRevertable.value ? (openBlock(), createElementBlock("span", {
139
145
  key: 3,
140
146
  class: "m-editor-history-list-item-revert",
141
147
  title: "将该步骤的修改作为一次新操作反向应用(不影响后续历史)",
142
- onClick: _cache[1] || (_cache[1] = withModifiers(($event) => onRevertClick(__props.subSteps[0].index), ["stop"]))
148
+ onClick: _cache[0] || (_cache[0] = withModifiers(($event) => onRevertClick(__props.subSteps[0].index), ["stop"]))
143
149
  }, "回滚")) : createCommentVNode("v-if", true),
144
- __props.merged ? (openBlock(), createElementBlock("span", {
150
+ !__props.merged && __props.gotoEnabled && !__props.isCurrent && __props.subSteps.length ? (openBlock(), createElementBlock("span", {
145
151
  key: 4,
152
+ class: "m-editor-history-list-item-goto",
153
+ title: "回到该记录",
154
+ onClick: _cache[1] || (_cache[1] = withModifiers(($event) => onGotoClick(__props.subSteps[0].index), ["stop"]))
155
+ }, "回到")) : createCommentVNode("v-if", true),
156
+ !__props.merged && headDiffable.value ? (openBlock(), createElementBlock("span", {
157
+ key: 5,
158
+ class: "m-editor-history-list-item-diff",
159
+ title: "查看修改差异",
160
+ onClick: _cache[2] || (_cache[2] = withModifiers(($event) => onDiffClick(__props.subSteps[0].index), ["stop"]))
161
+ }, "查看差异")) : createCommentVNode("v-if", true),
162
+ __props.merged ? (openBlock(), createElementBlock("span", {
163
+ key: 6,
146
164
  class: normalizeClass(["m-editor-history-list-group-toggle", { "is-expanded": __props.expanded }])
147
165
  }, "▾", 2)) : createCommentVNode("v-if", true)
148
- ], 10, _hoisted_1), __props.merged && __props.expanded ? (openBlock(), createElementBlock("ul", _hoisted_6, [(openBlock(true), createElementBlock(Fragment, null, renderList(subStepsDisplay.value, (s) => {
166
+ ], 10, _hoisted_1), __props.merged && __props.expanded ? (openBlock(), createElementBlock("ul", _hoisted_7, [(openBlock(true), createElementBlock(Fragment, null, renderList(subStepsDisplay.value, (s) => {
149
167
  return openBlock(), createElementBlock("li", {
150
168
  key: s.index,
151
169
  class: normalizeClass({
152
170
  "is-undone": !s.applied,
153
- "is-current": s.isCurrent,
154
- "is-clickable": !s.isCurrent
171
+ "is-current": s.isCurrent
155
172
  }),
156
- title: s.isCurrent ? "当前所在记录" : "点击跳转到该记录",
157
- onClick: ($event) => onSubStepClick(s)
173
+ title: subStepTitle(s)
158
174
  }, [
159
- createElementVNode("span", _hoisted_8, "#" + toDisplayString(s.index + 1), 1),
160
- createElementVNode("span", _hoisted_9, toDisplayString(s.desc), 1),
161
- s.isCurrent ? (openBlock(), createElementBlock("span", _hoisted_10, "当前")) : createCommentVNode("v-if", true),
162
- s.diffable ? (openBlock(), createElementBlock("span", {
175
+ createElementVNode("span", _hoisted_9, "#" + toDisplayString(s.index + 1), 1),
176
+ createElementVNode("span", _hoisted_10, toDisplayString(s.desc), 1),
177
+ unref(sourceLabel)(s.source) ? (openBlock(), createElementBlock("span", {
178
+ key: 0,
179
+ class: "m-editor-history-list-item-source",
180
+ title: `操作途径:${unref(sourceLabel)(s.source)}`
181
+ }, toDisplayString(unref(sourceLabel)(s.source)), 9, _hoisted_11)) : createCommentVNode("v-if", true),
182
+ s.time ? (openBlock(), createElementBlock("span", {
163
183
  key: 1,
164
- class: "m-editor-history-list-item-diff",
165
- title: "查看修改差异",
166
- onClick: withModifiers(($event) => onDiffClick(s.index), ["stop"])
167
- }, "查看差异", 8, _hoisted_11)) : createCommentVNode("v-if", true),
184
+ class: "m-editor-history-list-item-time",
185
+ title: s.timeTitle || s.time
186
+ }, toDisplayString(s.time), 9, _hoisted_12)) : createCommentVNode("v-if", true),
168
187
  s.revertable ? (openBlock(), createElementBlock("span", {
169
188
  key: 2,
170
189
  class: "m-editor-history-list-item-revert",
171
190
  title: "将该步骤的修改作为一次新操作反向应用(不影响后续历史)",
172
191
  onClick: withModifiers(($event) => onRevertClick(s.index), ["stop"])
173
- }, "回滚", 8, _hoisted_12)) : createCommentVNode("v-if", true)
174
- ], 10, _hoisted_7);
192
+ }, "回滚", 8, _hoisted_13)) : createCommentVNode("v-if", true),
193
+ __props.gotoEnabled && !s.isCurrent ? (openBlock(), createElementBlock("span", {
194
+ key: 3,
195
+ class: "m-editor-history-list-item-goto",
196
+ title: "回到该记录",
197
+ onClick: withModifiers(($event) => onGotoClick(s.index), ["stop"])
198
+ }, "回到", 8, _hoisted_14)) : createCommentVNode("v-if", true),
199
+ s.diffable ? (openBlock(), createElementBlock("span", {
200
+ key: 4,
201
+ class: "m-editor-history-list-item-diff",
202
+ title: "查看修改差异",
203
+ onClick: withModifiers(($event) => onDiffClick(s.index), ["stop"])
204
+ }, "查看差异", 8, _hoisted_15)) : createCommentVNode("v-if", true)
205
+ ], 10, _hoisted_8);
175
206
  }), 128))])) : createCommentVNode("v-if", true)], 2);
176
207
  };
177
208
  }
@@ -1,27 +1,44 @@
1
1
  import CodeEditor_default from "../CodeEditor.js";
2
2
  import CompareForm_default from "../../components/CompareForm.js";
3
3
  import { TMagicButton, TMagicDialog, TMagicRadioButton, TMagicRadioGroup, TMagicTag } from "@tmagic/design";
4
- import { Teleport, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, openBlock, ref, toDisplayString, unref, watch, withCtx } from "vue";
4
+ import { Fragment, Teleport, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, openBlock, ref, toDisplayString, unref, watch, withCtx } from "vue";
5
5
  import { isEqual } from "lodash-es";
6
6
  //#region packages/editor/src/layouts/history-list/HistoryDiffDialog.vue?vue&type=script&setup=true&lang.ts
7
7
  var _hoisted_1 = {
8
8
  key: 0,
9
9
  class: "m-editor-history-diff-dialog-body"
10
10
  };
11
- var _hoisted_2 = { class: "m-editor-history-diff-dialog-header" };
12
- var _hoisted_3 = { class: "m-editor-history-diff-dialog-target" };
13
- var _hoisted_4 = { class: "m-editor-history-diff-dialog-controls" };
14
- var _hoisted_5 = { class: "m-editor-history-diff-dialog-legend" };
15
- var _hoisted_6 = {
11
+ var _hoisted_2 = {
12
+ key: 0,
13
+ class: "m-editor-history-diff-dialog-notice"
14
+ };
15
+ var _hoisted_3 = { class: "m-editor-history-diff-dialog-header" };
16
+ var _hoisted_4 = { class: "m-editor-history-diff-dialog-target" };
17
+ var _hoisted_5 = { class: "m-editor-history-diff-dialog-controls" };
18
+ var _hoisted_6 = { class: "m-editor-history-diff-dialog-legend" };
19
+ var _hoisted_7 = {
16
20
  key: 0,
17
21
  class: "m-editor-history-diff-dialog-tip"
18
22
  };
19
23
  var HistoryDiffDialog_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
20
24
  name: "MEditorHistoryDiffDialog",
21
25
  __name: "HistoryDiffDialog",
22
- props: { extendState: { type: Function } },
23
- setup(__props, { expose: __expose }) {
24
- /** 差异对话框的入参 */
26
+ props: {
27
+ extendState: {},
28
+ loadConfig: {},
29
+ width: { default: "900px" },
30
+ onConfirm: {},
31
+ selfDiffFieldTypes: {}
32
+ },
33
+ emits: ["close"],
34
+ setup(__props, { expose: __expose, emit: __emit }) {
35
+ const props = __props;
36
+ const emit = __emit;
37
+ /**
38
+ * 差异对比模式:
39
+ * - before:该步骤修改前 vs 该步骤修改后(默认行为,体现这一步带来的变化)
40
+ * - current:该步骤修改后 vs 当前最新值(用于查看「该步骤之后是否还被改过」)
41
+ */
25
42
  const visible = ref(false);
26
43
  const payload = ref(null);
27
44
  const mode = ref("before");
@@ -43,6 +60,7 @@ var HistoryDiffDialog_vue_vue_type_script_setup_true_lang_default = /* @__PURE__
43
60
  scrollBeyondLastLine: false,
44
61
  hideUnchangedRegions: { enabled: true }
45
62
  };
63
+ const dialogTitle = computed(() => props.onConfirm ? "确认回滚" : "查看修改差异");
46
64
  const hasCurrent = computed(() => payload.value?.currentValue !== void 0 && payload.value?.currentValue !== null);
47
65
  /** 左侧(旧/参照)值 */
48
66
  const leftValue = computed(() => {
@@ -63,13 +81,20 @@ var HistoryDiffDialog_vue_vue_type_script_setup_true_lang_default = /* @__PURE__
63
81
  if (mode.value !== "current" || !payload.value) return false;
64
82
  return isEqual(payload.value.value, payload.value.currentValue);
65
83
  });
84
+ const onConfirmClick = () => {
85
+ const cb = props.onConfirm;
86
+ cb?.();
87
+ visible.value = false;
88
+ };
66
89
  const targetText = computed(() => {
67
90
  if (!payload.value) return "";
68
- const prefix = {
91
+ const categoryText = {
69
92
  node: "节点",
70
93
  "data-source": "数据源",
71
94
  "code-block": "代码块"
72
- }[payload.value.category] || "";
95
+ };
96
+ const { category } = payload.value;
97
+ const prefix = category ? categoryText[category] : "";
73
98
  const label = payload.value.targetLabel || payload.value.type || "";
74
99
  const { id } = payload.value;
75
100
  return [prefix, id !== void 0 && id !== "" ? `${label}(${id})` : label].filter(Boolean).join(":");
@@ -86,6 +111,9 @@ var HistoryDiffDialog_vue_vue_type_script_setup_true_lang_default = /* @__PURE__
86
111
  watch(visible, (v) => {
87
112
  if (!v) payload.value = null;
88
113
  });
114
+ const onClose = () => {
115
+ emit("close");
116
+ };
89
117
  __expose({
90
118
  open,
91
119
  close
@@ -93,33 +121,49 @@ var HistoryDiffDialog_vue_vue_type_script_setup_true_lang_default = /* @__PURE__
93
121
  return (_ctx, _cache) => {
94
122
  return openBlock(), createBlock(Teleport, { to: "body" }, [createVNode(unref(TMagicDialog), {
95
123
  modelValue: visible.value,
96
- "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => visible.value = $event),
124
+ "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => visible.value = $event),
97
125
  class: "m-editor-history-diff-dialog",
98
- title: "查看修改差异",
99
- width: "900px",
126
+ title: dialogTitle.value,
100
127
  top: "5vh",
101
128
  "destroy-on-close": "",
102
- "append-to-body": ""
129
+ "append-to-body": "",
130
+ width: __props.width,
131
+ onClose
103
132
  }, {
104
- footer: withCtx(() => [createVNode(unref(TMagicButton), {
133
+ footer: withCtx(() => [__props.onConfirm ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [createVNode(unref(TMagicButton), {
105
134
  size: "small",
106
135
  onClick: _cache[2] || (_cache[2] = ($event) => visible.value = false)
107
136
  }, {
108
- default: withCtx(() => [..._cache[9] || (_cache[9] = [createTextVNode("关闭", -1)])]),
137
+ default: withCtx(() => [..._cache[10] || (_cache[10] = [createTextVNode("取消", -1)])]),
109
138
  _: 1
110
- })]),
139
+ }), createVNode(unref(TMagicButton), {
140
+ size: "small",
141
+ type: "primary",
142
+ onClick: onConfirmClick
143
+ }, {
144
+ default: withCtx(() => [..._cache[11] || (_cache[11] = [createTextVNode("确定回滚", -1)])]),
145
+ _: 1
146
+ })], 64)) : (openBlock(), createBlock(unref(TMagicButton), {
147
+ key: 1,
148
+ size: "small",
149
+ onClick: _cache[3] || (_cache[3] = ($event) => visible.value = false)
150
+ }, {
151
+ default: withCtx(() => [..._cache[12] || (_cache[12] = [createTextVNode("关闭", -1)])]),
152
+ _: 1
153
+ }))]),
111
154
  default: withCtx(() => [payload.value ? (openBlock(), createElementBlock("div", _hoisted_1, [
112
- createElementVNode("div", _hoisted_2, [createElementVNode("span", _hoisted_3, toDisplayString(targetText.value), 1), createElementVNode("div", _hoisted_4, [createVNode(unref(TMagicRadioGroup), {
155
+ __props.onConfirm ? (openBlock(), createElementBlock("div", _hoisted_2, "仅回滚有差异的字段")) : createCommentVNode("v-if", true),
156
+ createElementVNode("div", _hoisted_3, [createElementVNode("span", _hoisted_4, toDisplayString(targetText.value), 1), createElementVNode("div", _hoisted_5, [createVNode(unref(TMagicRadioGroup), {
113
157
  modelValue: viewMode.value,
114
158
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => viewMode.value = $event),
115
159
  size: "small",
116
160
  class: "m-editor-history-diff-dialog-view"
117
161
  }, {
118
162
  default: withCtx(() => [createVNode(unref(TMagicRadioButton), { value: "form" }, {
119
- default: withCtx(() => [..._cache[4] || (_cache[4] = [createTextVNode("表单对比", -1)])]),
163
+ default: withCtx(() => [..._cache[5] || (_cache[5] = [createTextVNode("表单对比", -1)])]),
120
164
  _: 1
121
165
  }), createVNode(unref(TMagicRadioButton), { value: "code" }, {
122
- default: withCtx(() => [..._cache[5] || (_cache[5] = [createTextVNode("源码对比", -1)])]),
166
+ default: withCtx(() => [..._cache[6] || (_cache[6] = [createTextVNode("源码对比", -1)])]),
123
167
  _: 1
124
168
  })]),
125
169
  _: 1
@@ -130,18 +174,18 @@ var HistoryDiffDialog_vue_vue_type_script_setup_true_lang_default = /* @__PURE__
130
174
  class: "m-editor-history-diff-dialog-mode"
131
175
  }, {
132
176
  default: withCtx(() => [createVNode(unref(TMagicRadioButton), { value: "before" }, {
133
- default: withCtx(() => [..._cache[6] || (_cache[6] = [createTextVNode("与修改前对比", -1)])]),
177
+ default: withCtx(() => [..._cache[7] || (_cache[7] = [createTextVNode("与修改前对比", -1)])]),
134
178
  _: 1
135
179
  }), createVNode(unref(TMagicRadioButton), {
136
180
  value: "current",
137
181
  disabled: !hasCurrent.value
138
182
  }, {
139
- default: withCtx(() => [..._cache[7] || (_cache[7] = [createTextVNode("与当前对比", -1)])]),
183
+ default: withCtx(() => [..._cache[8] || (_cache[8] = [createTextVNode("与当前对比", -1)])]),
140
184
  _: 1
141
185
  }, 8, ["disabled"])]),
142
186
  _: 1
143
187
  }, 8, ["modelValue"])])]),
144
- createElementVNode("div", _hoisted_5, [
188
+ createElementVNode("div", _hoisted_6, [
145
189
  createVNode(unref(TMagicTag), {
146
190
  size: "small",
147
191
  type: "danger"
@@ -149,7 +193,7 @@ var HistoryDiffDialog_vue_vue_type_script_setup_true_lang_default = /* @__PURE__
149
193
  default: withCtx(() => [createTextVNode(toDisplayString(leftLabel.value), 1)]),
150
194
  _: 1
151
195
  }),
152
- _cache[8] || (_cache[8] = createElementVNode("span", { class: "m-editor-history-diff-dialog-arrow" }, "→", -1)),
196
+ _cache[9] || (_cache[9] = createElementVNode("span", { class: "m-editor-history-diff-dialog-arrow" }, "→", -1)),
153
197
  createVNode(unref(TMagicTag), {
154
198
  size: "small",
155
199
  type: "success"
@@ -157,16 +201,18 @@ var HistoryDiffDialog_vue_vue_type_script_setup_true_lang_default = /* @__PURE__
157
201
  default: withCtx(() => [createTextVNode(toDisplayString(rightLabel.value), 1)]),
158
202
  _: 1
159
203
  }),
160
- mode.value === "current" && isSameAsCurrent.value ? (openBlock(), createElementBlock("span", _hoisted_6, " 当前值与该步修改后一致,无差异 ")) : createCommentVNode("v-if", true)
204
+ mode.value === "current" && isSameAsCurrent.value ? (openBlock(), createElementBlock("span", _hoisted_7, " 当前值与该步修改后一致,无差异 ")) : createCommentVNode("v-if", true)
161
205
  ]),
162
206
  viewMode.value === "form" ? (openBlock(), createBlock(CompareForm_default, {
163
- key: 0,
207
+ key: 1,
164
208
  category: payload.value.category,
165
209
  type: payload.value.type,
166
210
  "data-source-type": payload.value.dataSourceType,
167
211
  value: rightValue.value,
168
212
  "last-value": leftValue.value,
169
213
  "extend-state": __props.extendState,
214
+ "load-config": __props.loadConfig,
215
+ "self-diff-field-types": __props.selfDiffFieldTypes,
170
216
  height: "70vh"
171
217
  }, null, 8, [
172
218
  "category",
@@ -174,9 +220,11 @@ var HistoryDiffDialog_vue_vue_type_script_setup_true_lang_default = /* @__PURE__
174
220
  "data-source-type",
175
221
  "value",
176
222
  "last-value",
177
- "extend-state"
223
+ "extend-state",
224
+ "load-config",
225
+ "self-diff-field-types"
178
226
  ])) : (openBlock(), createBlock(CodeEditor_default, {
179
- key: 1,
227
+ key: 2,
180
228
  type: "diff",
181
229
  language: "json",
182
230
  "init-values": leftValue.value,
@@ -187,7 +235,11 @@ var HistoryDiffDialog_vue_vue_type_script_setup_true_lang_default = /* @__PURE__
187
235
  }, null, 8, ["init-values", "modified-values"]))
188
236
  ])) : createCommentVNode("v-if", true)]),
189
237
  _: 1
190
- }, 8, ["modelValue"])]);
238
+ }, 8, [
239
+ "modelValue",
240
+ "title",
241
+ "width"
242
+ ])]);
191
243
  };
192
244
  }
193
245
  });