@tmagic/editor 1.8.0-beta.1 → 1.8.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/es/Editor.vue_vue_type_script_setup_true_lang.js +11 -2
- package/dist/es/components/CodeBlockEditor.vue_vue_type_script_setup_true_lang.js +18 -110
- package/dist/es/components/CodeParams.vue_vue_type_script_setup_true_lang.js +6 -0
- package/dist/es/components/CompareForm.js +5 -0
- package/dist/es/components/CompareForm.vue_vue_type_script_setup_true_lang.js +167 -0
- package/dist/es/fields/Code.vue_vue_type_script_setup_true_lang.js +19 -3
- package/dist/es/fields/CodeSelect.vue_vue_type_script_setup_true_lang.js +18 -2
- package/dist/es/fields/CodeSelectCol.vue_vue_type_script_setup_true_lang.js +37 -6
- package/dist/es/fields/DataSourceFieldSelect/FieldSelect.vue_vue_type_script_setup_true_lang.js +3 -1
- package/dist/es/fields/DataSourceFieldSelect/Index.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/es/fields/DataSourceFields.vue_vue_type_script_setup_true_lang.js +14 -6
- package/dist/es/fields/DataSourceMethodSelect.vue_vue_type_script_setup_true_name_true_lang.js +3 -1
- package/dist/es/fields/DataSourceMethods.vue_vue_type_script_setup_true_lang.js +15 -7
- package/dist/es/fields/DataSourceMocks.vue_vue_type_script_setup_true_lang.js +14 -6
- package/dist/es/fields/DataSourceSelect.vue_vue_type_script_setup_true_lang.js +3 -1
- package/dist/es/fields/EventSelect.vue_vue_type_script_setup_true_lang.js +58 -11
- package/dist/es/fields/KeyValue.vue_vue_type_script_setup_true_lang.js +11 -6
- package/dist/es/fields/UISelect.vue_vue_type_script_setup_true_lang.js +8 -5
- package/dist/es/hooks/use-code-block-edit.js +2 -2
- package/dist/es/hooks/use-stage.js +15 -7
- package/dist/es/index.js +3 -1
- package/dist/es/initService.js +6 -6
- package/dist/es/layouts/CodeEditor.vue_vue_type_script_setup_true_lang.js +4 -0
- package/dist/es/layouts/Framework.vue_vue_type_script_setup_true_lang.js +12 -7
- package/dist/es/layouts/NavMenu.vue_vue_type_script_setup_true_lang.js +8 -0
- package/dist/es/layouts/history-list/Bucket.js +5 -0
- package/dist/es/layouts/history-list/Bucket.vue_vue_type_script_setup_true_lang.js +84 -0
- package/dist/es/layouts/history-list/CodeBlockTab.js +5 -0
- package/dist/es/layouts/history-list/CodeBlockTab.vue_vue_type_script_setup_true_lang.js +62 -0
- package/dist/es/layouts/history-list/DataSourceTab.js +5 -0
- package/dist/es/layouts/history-list/DataSourceTab.vue_vue_type_script_setup_true_lang.js +62 -0
- package/dist/es/layouts/history-list/GroupRow.js +5 -0
- package/dist/es/layouts/history-list/GroupRow.vue_vue_type_script_setup_true_lang.js +180 -0
- package/dist/es/layouts/history-list/HistoryDiffDialog.js +5 -0
- package/dist/es/layouts/history-list/HistoryDiffDialog.vue_vue_type_script_setup_true_lang.js +195 -0
- package/dist/es/layouts/history-list/HistoryListPanel.js +5 -0
- package/dist/es/layouts/history-list/HistoryListPanel.vue_vue_type_script_setup_true_lang.js +270 -0
- package/dist/es/layouts/history-list/InitialRow.js +5 -0
- package/dist/es/layouts/history-list/InitialRow.vue_vue_type_script_setup_true_lang.js +48 -0
- package/dist/es/layouts/history-list/PageTab.js +5 -0
- package/dist/es/layouts/history-list/PageTab.vue_vue_type_script_setup_true_lang.js +99 -0
- package/dist/es/layouts/history-list/composables.js +154 -0
- package/dist/es/layouts/sidebar/layer/use-node-status.js +1 -1
- package/dist/es/services/BaseService.js +31 -68
- package/dist/es/services/codeBlock.js +205 -8
- package/dist/es/services/componentList.js +2 -2
- package/dist/es/services/dataSource.js +217 -8
- package/dist/es/services/dep.js +21 -9
- package/dist/es/services/editor.js +350 -160
- package/dist/es/services/events.js +2 -2
- package/dist/es/services/history.js +407 -12
- package/dist/es/services/keybinding.js +2 -2
- package/dist/es/services/props.js +8 -8
- package/dist/es/services/stageOverlay.js +2 -2
- package/dist/es/services/storage.js +2 -2
- package/dist/es/services/ui.js +2 -2
- package/dist/es/style.css +347 -1
- package/dist/es/utils/code-block.js +122 -0
- package/dist/es/utils/content-menu.js +4 -5
- package/dist/es/utils/dep/worker.js +1 -1
- package/dist/es/utils/editor.js +2 -2
- package/dist/es/utils/undo-redo.js +20 -0
- package/dist/style.css +347 -1
- package/dist/tmagic-editor.umd.cjs +3165 -774
- package/package.json +7 -7
- package/src/Editor.vue +7 -0
- package/src/components/CodeBlockEditor.vue +20 -109
- package/src/components/CodeParams.vue +6 -0
- package/src/components/CompareForm.vue +225 -0
- package/src/editorProps.ts +2 -0
- package/src/fields/Code.vue +19 -3
- package/src/fields/CodeSelect.vue +17 -1
- package/src/fields/CodeSelectCol.vue +30 -2
- package/src/fields/DataSourceFieldSelect/FieldSelect.vue +7 -1
- package/src/fields/DataSourceFieldSelect/Index.vue +2 -2
- package/src/fields/DataSourceFields.vue +12 -3
- package/src/fields/DataSourceMethodSelect.vue +4 -1
- package/src/fields/DataSourceMethods.vue +14 -4
- package/src/fields/DataSourceMocks.vue +13 -3
- package/src/fields/DataSourceSelect.vue +4 -1
- package/src/fields/EventSelect.vue +57 -8
- package/src/fields/KeyValue.vue +17 -4
- package/src/fields/UISelect.vue +5 -2
- package/src/hooks/use-code-block-edit.ts +5 -2
- package/src/hooks/use-stage.ts +23 -7
- package/src/index.ts +1 -0
- package/src/layouts/CodeEditor.vue +15 -0
- package/src/layouts/Framework.vue +10 -5
- package/src/layouts/NavMenu.vue +9 -0
- package/src/layouts/history-list/Bucket.vue +99 -0
- package/src/layouts/history-list/CodeBlockTab.vue +61 -0
- package/src/layouts/history-list/DataSourceTab.vue +61 -0
- package/src/layouts/history-list/GroupRow.vue +207 -0
- package/src/layouts/history-list/HistoryDiffDialog.vue +212 -0
- package/src/layouts/history-list/HistoryListPanel.vue +271 -0
- package/src/layouts/history-list/InitialRow.vue +41 -0
- package/src/layouts/history-list/PageTab.vue +94 -0
- package/src/layouts/history-list/composables.ts +195 -0
- package/src/layouts/sidebar/layer/use-node-status.ts +9 -6
- package/src/services/BaseService.ts +35 -86
- package/src/services/codeBlock.ts +256 -5
- package/src/services/dataSource.ts +257 -6
- package/src/services/dep.ts +32 -9
- package/src/services/editor.ts +454 -171
- package/src/services/history.ts +452 -8
- package/src/services/props.ts +2 -2
- package/src/theme/history-list-panel.scss +423 -0
- package/src/theme/theme.scss +1 -0
- package/src/type.ts +179 -6
- package/src/utils/code-block.ts +150 -0
- package/src/utils/content-menu.ts +8 -5
- package/src/utils/dep/worker.ts +5 -3
- package/src/utils/index.ts +1 -0
- package/src/utils/undo-redo.ts +23 -0
- package/types/index.d.ts +2105 -810
- package/dist/es/utils/compose.js +0 -44
- package/dist/es/utils/editor-history.js +0 -100
- package/src/utils/compose.ts +0 -52
- package/src/utils/editor-history.ts +0 -138
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import GroupRow_default from "./GroupRow.js";
|
|
2
|
+
import InitialRow_default from "./InitialRow.js";
|
|
3
|
+
import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, openBlock, renderList, toDisplayString } from "vue";
|
|
4
|
+
//#region packages/editor/src/layouts/history-list/Bucket.vue?vue&type=script&setup=true&lang.ts
|
|
5
|
+
var _hoisted_1 = { class: "m-editor-history-list-bucket" };
|
|
6
|
+
var _hoisted_2 = { class: "m-editor-history-list-bucket-title" };
|
|
7
|
+
var _hoisted_3 = { class: "m-editor-history-list-bucket-count" };
|
|
8
|
+
var _hoisted_4 = { class: "m-editor-history-list-ul" };
|
|
9
|
+
var Bucket_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
10
|
+
name: "MEditorHistoryListBucket",
|
|
11
|
+
__name: "Bucket",
|
|
12
|
+
props: {
|
|
13
|
+
title: {},
|
|
14
|
+
bucketId: {},
|
|
15
|
+
prefix: {},
|
|
16
|
+
groups: {},
|
|
17
|
+
describeGroup: { type: Function },
|
|
18
|
+
describeStep: { type: Function },
|
|
19
|
+
isStepDiffable: { type: Function },
|
|
20
|
+
expanded: {}
|
|
21
|
+
},
|
|
22
|
+
emits: [
|
|
23
|
+
"toggle",
|
|
24
|
+
"goto",
|
|
25
|
+
"goto-initial",
|
|
26
|
+
"diff-step",
|
|
27
|
+
"revert-step"
|
|
28
|
+
],
|
|
29
|
+
setup(__props) {
|
|
30
|
+
const props = __props;
|
|
31
|
+
/** 该 bucket 是否处于初始状态(栈 cursor=0),等价于全部 group 都未 applied。 */
|
|
32
|
+
const isInitial = computed(() => props.groups.length > 0 && props.groups.every((g) => !g.applied));
|
|
33
|
+
return (_ctx, _cache) => {
|
|
34
|
+
return openBlock(), createElementBlock("div", _hoisted_1, [createElementVNode("div", _hoisted_2, [
|
|
35
|
+
createElementVNode("span", null, toDisplayString(__props.title), 1),
|
|
36
|
+
createElementVNode("code", null, toDisplayString(String(__props.bucketId)), 1),
|
|
37
|
+
createElementVNode("span", _hoisted_3, toDisplayString(__props.groups.length) + " 组", 1)
|
|
38
|
+
]), createElementVNode("ul", _hoisted_4, [
|
|
39
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(__props.groups, (group, gIdx) => {
|
|
40
|
+
return openBlock(), createBlock(GroupRow_default, {
|
|
41
|
+
key: `${__props.prefix}-${__props.bucketId}-${gIdx}`,
|
|
42
|
+
"group-key": `${__props.prefix}-${__props.bucketId}-${gIdx}`,
|
|
43
|
+
applied: group.applied,
|
|
44
|
+
merged: group.steps.length > 1,
|
|
45
|
+
"op-type": group.opType,
|
|
46
|
+
desc: __props.describeGroup(group),
|
|
47
|
+
"step-count": group.steps.length,
|
|
48
|
+
"sub-steps": group.steps.map((s) => ({
|
|
49
|
+
index: s.index,
|
|
50
|
+
applied: s.applied,
|
|
51
|
+
isCurrent: s.isCurrent,
|
|
52
|
+
desc: __props.describeStep(s.step),
|
|
53
|
+
diffable: __props.isStepDiffable ? __props.isStepDiffable(s.step) : false,
|
|
54
|
+
revertable: s.applied
|
|
55
|
+
})),
|
|
56
|
+
"is-current": group.isCurrent,
|
|
57
|
+
expanded: !!__props.expanded[`${__props.prefix}-${__props.bucketId}-${gIdx}`],
|
|
58
|
+
onToggle: _cache[0] || (_cache[0] = (key) => _ctx.$emit("toggle", key)),
|
|
59
|
+
onGoto: _cache[1] || (_cache[1] = (index) => _ctx.$emit("goto", __props.bucketId, index)),
|
|
60
|
+
onDiffStep: _cache[2] || (_cache[2] = (index) => _ctx.$emit("diff-step", __props.bucketId, index)),
|
|
61
|
+
onRevertStep: _cache[3] || (_cache[3] = (index) => _ctx.$emit("revert-step", __props.bucketId, index))
|
|
62
|
+
}, null, 8, [
|
|
63
|
+
"group-key",
|
|
64
|
+
"applied",
|
|
65
|
+
"merged",
|
|
66
|
+
"op-type",
|
|
67
|
+
"desc",
|
|
68
|
+
"step-count",
|
|
69
|
+
"sub-steps",
|
|
70
|
+
"is-current",
|
|
71
|
+
"expanded"
|
|
72
|
+
]);
|
|
73
|
+
}), 128)),
|
|
74
|
+
createCommentVNode("\n 初始状态项:永远位于该 bucket 列表底部(同样按倒序展示,最底部 = 最早状态)。\n 当 bucket 内所有 group 都未 applied 时即为当前位置。\n "),
|
|
75
|
+
createVNode(InitialRow_default, {
|
|
76
|
+
"is-current": isInitial.value,
|
|
77
|
+
onGotoInitial: _cache[4] || (_cache[4] = ($event) => _ctx.$emit("goto-initial", __props.bucketId))
|
|
78
|
+
}, null, 8, ["is-current"])
|
|
79
|
+
])]);
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
//#endregion
|
|
84
|
+
export { Bucket_vue_vue_type_script_setup_true_lang_default as default };
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import CodeBlockTab_vue_vue_type_script_setup_true_lang_default from "./CodeBlockTab.vue_vue_type_script_setup_true_lang.js";
|
|
2
|
+
//#region packages/editor/src/layouts/history-list/CodeBlockTab.vue
|
|
3
|
+
var CodeBlockTab_default = CodeBlockTab_vue_vue_type_script_setup_true_lang_default;
|
|
4
|
+
//#endregion
|
|
5
|
+
export { CodeBlockTab_default as default };
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { describeCodeBlockGroup, describeCodeBlockStep } from "./composables.js";
|
|
2
|
+
import Bucket_default from "./Bucket.js";
|
|
3
|
+
import { TMagicScrollbar } from "@tmagic/design";
|
|
4
|
+
import { Fragment, createBlock, createElementBlock, defineComponent, openBlock, renderList, unref, withCtx } from "vue";
|
|
5
|
+
//#region packages/editor/src/layouts/history-list/CodeBlockTab.vue?vue&type=script&setup=true&lang.ts
|
|
6
|
+
var _hoisted_1 = {
|
|
7
|
+
key: 0,
|
|
8
|
+
class: "m-editor-history-list-empty"
|
|
9
|
+
};
|
|
10
|
+
var CodeBlockTab_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
11
|
+
name: "MEditorHistoryListCodeBlockTab",
|
|
12
|
+
__name: "CodeBlockTab",
|
|
13
|
+
props: {
|
|
14
|
+
buckets: {},
|
|
15
|
+
expanded: {}
|
|
16
|
+
},
|
|
17
|
+
emits: [
|
|
18
|
+
"toggle",
|
|
19
|
+
"goto",
|
|
20
|
+
"goto-initial",
|
|
21
|
+
"diff-step",
|
|
22
|
+
"revert-step"
|
|
23
|
+
],
|
|
24
|
+
setup(__props) {
|
|
25
|
+
/** 仅 update(前后 content 都存在)时可查看差异。 */
|
|
26
|
+
const isCodeBlockStepDiffable = (step) => Boolean(step.oldContent && step.newContent);
|
|
27
|
+
return (_ctx, _cache) => {
|
|
28
|
+
return !__props.buckets.length ? (openBlock(), createElementBlock("div", _hoisted_1, "暂无操作记录")) : (openBlock(), createBlock(unref(TMagicScrollbar), {
|
|
29
|
+
key: 1,
|
|
30
|
+
"max-height": "360px"
|
|
31
|
+
}, {
|
|
32
|
+
default: withCtx(() => [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.buckets, (bucket) => {
|
|
33
|
+
return openBlock(), createBlock(Bucket_default, {
|
|
34
|
+
key: `cb-${bucket.id}`,
|
|
35
|
+
title: "代码块",
|
|
36
|
+
"bucket-id": bucket.id,
|
|
37
|
+
prefix: "cb",
|
|
38
|
+
groups: bucket.groups,
|
|
39
|
+
"describe-group": unref(describeCodeBlockGroup),
|
|
40
|
+
"describe-step": unref(describeCodeBlockStep),
|
|
41
|
+
"is-step-diffable": isCodeBlockStepDiffable,
|
|
42
|
+
expanded: __props.expanded,
|
|
43
|
+
onToggle: _cache[0] || (_cache[0] = (key) => _ctx.$emit("toggle", key)),
|
|
44
|
+
onGoto: _cache[1] || (_cache[1] = (id, index) => _ctx.$emit("goto", id, index)),
|
|
45
|
+
onGotoInitial: _cache[2] || (_cache[2] = (id) => _ctx.$emit("goto-initial", id)),
|
|
46
|
+
onDiffStep: _cache[3] || (_cache[3] = (id, index) => _ctx.$emit("diff-step", id, index)),
|
|
47
|
+
onRevertStep: _cache[4] || (_cache[4] = (id, index) => _ctx.$emit("revert-step", id, index))
|
|
48
|
+
}, null, 8, [
|
|
49
|
+
"bucket-id",
|
|
50
|
+
"groups",
|
|
51
|
+
"describe-group",
|
|
52
|
+
"describe-step",
|
|
53
|
+
"expanded"
|
|
54
|
+
]);
|
|
55
|
+
}), 128))]),
|
|
56
|
+
_: 1
|
|
57
|
+
}));
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
//#endregion
|
|
62
|
+
export { CodeBlockTab_vue_vue_type_script_setup_true_lang_default as default };
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import DataSourceTab_vue_vue_type_script_setup_true_lang_default from "./DataSourceTab.vue_vue_type_script_setup_true_lang.js";
|
|
2
|
+
//#region packages/editor/src/layouts/history-list/DataSourceTab.vue
|
|
3
|
+
var DataSourceTab_default = DataSourceTab_vue_vue_type_script_setup_true_lang_default;
|
|
4
|
+
//#endregion
|
|
5
|
+
export { DataSourceTab_default as default };
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { describeDataSourceGroup, describeDataSourceStep } from "./composables.js";
|
|
2
|
+
import Bucket_default from "./Bucket.js";
|
|
3
|
+
import { TMagicScrollbar } from "@tmagic/design";
|
|
4
|
+
import { Fragment, createBlock, createElementBlock, defineComponent, openBlock, renderList, unref, withCtx } from "vue";
|
|
5
|
+
//#region packages/editor/src/layouts/history-list/DataSourceTab.vue?vue&type=script&setup=true&lang.ts
|
|
6
|
+
var _hoisted_1 = {
|
|
7
|
+
key: 0,
|
|
8
|
+
class: "m-editor-history-list-empty"
|
|
9
|
+
};
|
|
10
|
+
var DataSourceTab_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
11
|
+
name: "MEditorHistoryListDataSourceTab",
|
|
12
|
+
__name: "DataSourceTab",
|
|
13
|
+
props: {
|
|
14
|
+
buckets: {},
|
|
15
|
+
expanded: {}
|
|
16
|
+
},
|
|
17
|
+
emits: [
|
|
18
|
+
"toggle",
|
|
19
|
+
"goto",
|
|
20
|
+
"goto-initial",
|
|
21
|
+
"diff-step",
|
|
22
|
+
"revert-step"
|
|
23
|
+
],
|
|
24
|
+
setup(__props) {
|
|
25
|
+
/** 仅 update(前后 schema 都存在)时可查看差异。 */
|
|
26
|
+
const isDataSourceStepDiffable = (step) => Boolean(step.oldSchema && step.newSchema);
|
|
27
|
+
return (_ctx, _cache) => {
|
|
28
|
+
return !__props.buckets.length ? (openBlock(), createElementBlock("div", _hoisted_1, "暂无操作记录")) : (openBlock(), createBlock(unref(TMagicScrollbar), {
|
|
29
|
+
key: 1,
|
|
30
|
+
"max-height": "360px"
|
|
31
|
+
}, {
|
|
32
|
+
default: withCtx(() => [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.buckets, (bucket) => {
|
|
33
|
+
return openBlock(), createBlock(Bucket_default, {
|
|
34
|
+
key: `ds-${bucket.id}`,
|
|
35
|
+
title: "数据源",
|
|
36
|
+
"bucket-id": bucket.id,
|
|
37
|
+
prefix: "ds",
|
|
38
|
+
groups: bucket.groups,
|
|
39
|
+
"describe-group": unref(describeDataSourceGroup),
|
|
40
|
+
"describe-step": unref(describeDataSourceStep),
|
|
41
|
+
"is-step-diffable": isDataSourceStepDiffable,
|
|
42
|
+
expanded: __props.expanded,
|
|
43
|
+
onToggle: _cache[0] || (_cache[0] = (key) => _ctx.$emit("toggle", key)),
|
|
44
|
+
onGoto: _cache[1] || (_cache[1] = (id, index) => _ctx.$emit("goto", id, index)),
|
|
45
|
+
onGotoInitial: _cache[2] || (_cache[2] = (id) => _ctx.$emit("goto-initial", id)),
|
|
46
|
+
onDiffStep: _cache[3] || (_cache[3] = (id, index) => _ctx.$emit("diff-step", id, index)),
|
|
47
|
+
onRevertStep: _cache[4] || (_cache[4] = (id, index) => _ctx.$emit("revert-step", id, index))
|
|
48
|
+
}, null, 8, [
|
|
49
|
+
"bucket-id",
|
|
50
|
+
"groups",
|
|
51
|
+
"describe-group",
|
|
52
|
+
"describe-step",
|
|
53
|
+
"expanded"
|
|
54
|
+
]);
|
|
55
|
+
}), 128))]),
|
|
56
|
+
_: 1
|
|
57
|
+
}));
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
//#endregion
|
|
62
|
+
export { DataSourceTab_vue_vue_type_script_setup_true_lang_default as default };
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import GroupRow_vue_vue_type_script_setup_true_lang_default from "./GroupRow.vue_vue_type_script_setup_true_lang.js";
|
|
2
|
+
//#region packages/editor/src/layouts/history-list/GroupRow.vue
|
|
3
|
+
var GroupRow_default = GroupRow_vue_vue_type_script_setup_true_lang_default;
|
|
4
|
+
//#endregion
|
|
5
|
+
export { GroupRow_default as default };
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import { opLabel } from "./composables.js";
|
|
2
|
+
import { Fragment, computed, createCommentVNode, createElementBlock, createElementVNode, defineComponent, normalizeClass, openBlock, renderList, toDisplayString, unref, withModifiers } from "vue";
|
|
3
|
+
//#region packages/editor/src/layouts/history-list/GroupRow.vue?vue&type=script&setup=true&lang.ts
|
|
4
|
+
var _hoisted_1 = ["title"];
|
|
5
|
+
var _hoisted_2 = ["title"];
|
|
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 = {
|
|
12
|
+
key: 2,
|
|
13
|
+
class: "m-editor-history-list-item-merge"
|
|
14
|
+
};
|
|
15
|
+
var _hoisted_6 = {
|
|
16
|
+
key: 0,
|
|
17
|
+
class: "m-editor-history-list-substeps"
|
|
18
|
+
};
|
|
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"];
|
|
28
|
+
var GroupRow_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
29
|
+
name: "MEditorHistoryListGroupRow",
|
|
30
|
+
__name: "GroupRow",
|
|
31
|
+
props: {
|
|
32
|
+
groupKey: {},
|
|
33
|
+
applied: { type: Boolean },
|
|
34
|
+
merged: { type: Boolean },
|
|
35
|
+
opType: {},
|
|
36
|
+
desc: {},
|
|
37
|
+
stepCount: {},
|
|
38
|
+
subSteps: {},
|
|
39
|
+
expanded: { type: Boolean },
|
|
40
|
+
isCurrent: { type: Boolean }
|
|
41
|
+
},
|
|
42
|
+
emits: [
|
|
43
|
+
"toggle",
|
|
44
|
+
"goto",
|
|
45
|
+
"diff-step",
|
|
46
|
+
"revert-step"
|
|
47
|
+
],
|
|
48
|
+
setup(__props, { emit: __emit }) {
|
|
49
|
+
const props = __props;
|
|
50
|
+
const emit = __emit;
|
|
51
|
+
/** 单步组:头部可点击 goto;合并组:头部可点击切换展开。当前组(isCurrent)的单步组头部不可点击。 */
|
|
52
|
+
const isHeadClickable = computed(() => {
|
|
53
|
+
if (props.merged) return true;
|
|
54
|
+
return !props.isCurrent;
|
|
55
|
+
});
|
|
56
|
+
const headTitle = computed(() => {
|
|
57
|
+
if (props.merged) return props.expanded ? "点击收起子步" : "点击展开子步";
|
|
58
|
+
if (props.isCurrent) return "当前所在记录";
|
|
59
|
+
return "点击跳转到该记录";
|
|
60
|
+
});
|
|
61
|
+
/**
|
|
62
|
+
* 头部点击行为分流:
|
|
63
|
+
* - 合并组:仅切换展开 / 收起,不触发 goto;
|
|
64
|
+
* - 单步组:跳转到该唯一步骤;当前组忽略点击。
|
|
65
|
+
*/
|
|
66
|
+
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);
|
|
74
|
+
};
|
|
75
|
+
const onSubStepClick = (s) => {
|
|
76
|
+
if (s.isCurrent) return;
|
|
77
|
+
emit("goto", s.index);
|
|
78
|
+
};
|
|
79
|
+
/** 单步组头部是否展示"查看差异"入口:要求该唯一子步本身可对比。 */
|
|
80
|
+
const headDiffable = computed(() => !props.merged && Boolean(props.subSteps[0]?.diffable));
|
|
81
|
+
/** 单步组头部是否展示"回滚"入口:要求该唯一子步本身可回滚(已应用)。 */
|
|
82
|
+
const headRevertable = computed(() => !props.merged && Boolean(props.subSteps[0]?.revertable));
|
|
83
|
+
/**
|
|
84
|
+
* 合并组展开后的子步渲染顺序:与外层分组列表保持一致——倒序展示(最新的子步在最上方)。
|
|
85
|
+
* 外层 page tab / bucket 都已对 groups 做了 reverse,子步沿用同样的视觉规则更直观。
|
|
86
|
+
* 注意:仅用于渲染,原 `subSteps` 保持时间正序,`headIndexLabel` 等基于首尾索引的展示语义不变。
|
|
87
|
+
*/
|
|
88
|
+
const subStepsDisplay = computed(() => props.subSteps.slice().reverse());
|
|
89
|
+
/**
|
|
90
|
+
* 头部索引展示:
|
|
91
|
+
* - 单步组(merged=false):显示该唯一 step 的编号,如 `#5`;
|
|
92
|
+
* - 合并组:显示组内 step 的编号范围,如 `#3-#7`(首尾相同则退化为 `#5`)。
|
|
93
|
+
*
|
|
94
|
+
* 这里展示的是 step.index + 1(与子步列表 `#{{ s.index + 1 }}` 保持一致),从 1 起编号更符合直觉。
|
|
95
|
+
*/
|
|
96
|
+
const headIndexLabel = computed(() => {
|
|
97
|
+
const list = props.subSteps;
|
|
98
|
+
if (!list.length) return "";
|
|
99
|
+
const first = list[0].index + 1;
|
|
100
|
+
const last = list[list.length - 1].index + 1;
|
|
101
|
+
if (!props.merged || first === last) return `#${first}`;
|
|
102
|
+
return `#${first}-#${last}`;
|
|
103
|
+
});
|
|
104
|
+
const headIndexTitle = computed(() => {
|
|
105
|
+
if (!props.merged) return `历史步骤编号 #${props.subSteps[0]?.index + 1}`;
|
|
106
|
+
return `合并了第 ${props.subSteps[0]?.index + 1} 至第 ${props.subSteps[props.subSteps.length - 1]?.index + 1} 共 ${props.subSteps.length} 条历史步骤`;
|
|
107
|
+
});
|
|
108
|
+
const onDiffClick = (index) => {
|
|
109
|
+
emit("diff-step", index);
|
|
110
|
+
};
|
|
111
|
+
const onRevertClick = (index) => {
|
|
112
|
+
emit("revert-step", index);
|
|
113
|
+
};
|
|
114
|
+
return (_ctx, _cache) => {
|
|
115
|
+
return openBlock(), createElementBlock("li", { class: normalizeClass(["m-editor-history-list-item m-editor-history-list-group", {
|
|
116
|
+
"is-undone": !__props.applied,
|
|
117
|
+
"is-merged": __props.merged,
|
|
118
|
+
"is-current": __props.isCurrent
|
|
119
|
+
}]) }, [createElementVNode("div", {
|
|
120
|
+
class: normalizeClass(["m-editor-history-list-group-head", { "is-clickable": isHeadClickable.value }]),
|
|
121
|
+
title: headTitle.value,
|
|
122
|
+
onClick: onHeadClick
|
|
123
|
+
}, [
|
|
124
|
+
createElementVNode("span", {
|
|
125
|
+
class: "m-editor-history-list-item-index",
|
|
126
|
+
title: headIndexTitle.value
|
|
127
|
+
}, toDisplayString(headIndexLabel.value), 9, _hoisted_2),
|
|
128
|
+
createElementVNode("span", { class: normalizeClass(["m-editor-history-list-item-op", `op-${__props.opType}`]) }, toDisplayString(unref(opLabel)(__props.opType)), 3),
|
|
129
|
+
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", {
|
|
132
|
+
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),
|
|
138
|
+
!__props.merged && headRevertable.value ? (openBlock(), createElementBlock("span", {
|
|
139
|
+
key: 3,
|
|
140
|
+
class: "m-editor-history-list-item-revert",
|
|
141
|
+
title: "将该步骤的修改作为一次新操作反向应用(不影响后续历史)",
|
|
142
|
+
onClick: _cache[1] || (_cache[1] = withModifiers(($event) => onRevertClick(__props.subSteps[0].index), ["stop"]))
|
|
143
|
+
}, "回滚")) : createCommentVNode("v-if", true),
|
|
144
|
+
__props.merged ? (openBlock(), createElementBlock("span", {
|
|
145
|
+
key: 4,
|
|
146
|
+
class: normalizeClass(["m-editor-history-list-group-toggle", { "is-expanded": __props.expanded }])
|
|
147
|
+
}, "▾", 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) => {
|
|
149
|
+
return openBlock(), createElementBlock("li", {
|
|
150
|
+
key: s.index,
|
|
151
|
+
class: normalizeClass({
|
|
152
|
+
"is-undone": !s.applied,
|
|
153
|
+
"is-current": s.isCurrent,
|
|
154
|
+
"is-clickable": !s.isCurrent
|
|
155
|
+
}),
|
|
156
|
+
title: s.isCurrent ? "当前所在记录" : "点击跳转到该记录",
|
|
157
|
+
onClick: ($event) => onSubStepClick(s)
|
|
158
|
+
}, [
|
|
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", {
|
|
163
|
+
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),
|
|
168
|
+
s.revertable ? (openBlock(), createElementBlock("span", {
|
|
169
|
+
key: 2,
|
|
170
|
+
class: "m-editor-history-list-item-revert",
|
|
171
|
+
title: "将该步骤的修改作为一次新操作反向应用(不影响后续历史)",
|
|
172
|
+
onClick: withModifiers(($event) => onRevertClick(s.index), ["stop"])
|
|
173
|
+
}, "回滚", 8, _hoisted_12)) : createCommentVNode("v-if", true)
|
|
174
|
+
], 10, _hoisted_7);
|
|
175
|
+
}), 128))])) : createCommentVNode("v-if", true)], 2);
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
});
|
|
179
|
+
//#endregion
|
|
180
|
+
export { GroupRow_vue_vue_type_script_setup_true_lang_default as default };
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import HistoryDiffDialog_vue_vue_type_script_setup_true_lang_default from "./HistoryDiffDialog.vue_vue_type_script_setup_true_lang.js";
|
|
2
|
+
//#region packages/editor/src/layouts/history-list/HistoryDiffDialog.vue
|
|
3
|
+
var HistoryDiffDialog_default = HistoryDiffDialog_vue_vue_type_script_setup_true_lang_default;
|
|
4
|
+
//#endregion
|
|
5
|
+
export { HistoryDiffDialog_default as default };
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
import CodeEditor_default from "../CodeEditor.js";
|
|
2
|
+
import CompareForm_default from "../../components/CompareForm.js";
|
|
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";
|
|
5
|
+
import { isEqual } from "lodash-es";
|
|
6
|
+
//#region packages/editor/src/layouts/history-list/HistoryDiffDialog.vue?vue&type=script&setup=true&lang.ts
|
|
7
|
+
var _hoisted_1 = {
|
|
8
|
+
key: 0,
|
|
9
|
+
class: "m-editor-history-diff-dialog-body"
|
|
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 = {
|
|
16
|
+
key: 0,
|
|
17
|
+
class: "m-editor-history-diff-dialog-tip"
|
|
18
|
+
};
|
|
19
|
+
var HistoryDiffDialog_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
20
|
+
name: "MEditorHistoryDiffDialog",
|
|
21
|
+
__name: "HistoryDiffDialog",
|
|
22
|
+
props: { extendState: { type: Function } },
|
|
23
|
+
setup(__props, { expose: __expose }) {
|
|
24
|
+
/** 差异对话框的入参 */
|
|
25
|
+
const visible = ref(false);
|
|
26
|
+
const payload = ref(null);
|
|
27
|
+
const mode = ref("before");
|
|
28
|
+
const viewMode = ref("form");
|
|
29
|
+
/**
|
|
30
|
+
* 源码对比始终只读,关闭小地图,强制左右并排(side-by-side)展示。
|
|
31
|
+
*
|
|
32
|
+
* monaco diff 编辑器在宽度低于 `renderSideBySideInlineBreakpoint`(默认 900px)时
|
|
33
|
+
* 会自动退化为 inline(上下/单栏)视图。本弹窗宽度约 900px,去掉内边距后编辑器实际
|
|
34
|
+
* 宽度小于该阈值,会被切到 inline。这里通过 `useInlineViewWhenSpaceIsLimited: false`
|
|
35
|
+
* 关闭该自动降级,确保始终保持左右两栏对比。
|
|
36
|
+
*/
|
|
37
|
+
const codeDiffOptions = {
|
|
38
|
+
readOnly: true,
|
|
39
|
+
tabSize: 2,
|
|
40
|
+
minimap: { enabled: false },
|
|
41
|
+
renderSideBySide: true,
|
|
42
|
+
useInlineViewWhenSpaceIsLimited: false,
|
|
43
|
+
scrollBeyondLastLine: false,
|
|
44
|
+
hideUnchangedRegions: { enabled: true }
|
|
45
|
+
};
|
|
46
|
+
const hasCurrent = computed(() => payload.value?.currentValue !== void 0 && payload.value?.currentValue !== null);
|
|
47
|
+
/** 左侧(旧/参照)值 */
|
|
48
|
+
const leftValue = computed(() => {
|
|
49
|
+
if (!payload.value) return {};
|
|
50
|
+
if (mode.value === "current") return payload.value.value;
|
|
51
|
+
return payload.value.lastValue;
|
|
52
|
+
});
|
|
53
|
+
/** 右侧(新/对比)值 */
|
|
54
|
+
const rightValue = computed(() => {
|
|
55
|
+
if (!payload.value) return {};
|
|
56
|
+
if (mode.value === "current") return payload.value.currentValue || {};
|
|
57
|
+
return payload.value.value;
|
|
58
|
+
});
|
|
59
|
+
const leftLabel = computed(() => mode.value === "current" ? "该步修改后" : "修改前");
|
|
60
|
+
const rightLabel = computed(() => mode.value === "current" ? "当前" : "修改后");
|
|
61
|
+
/** 「与当前对比」模式下,若当前值与该步修改后值相等,则展示提示 */
|
|
62
|
+
const isSameAsCurrent = computed(() => {
|
|
63
|
+
if (mode.value !== "current" || !payload.value) return false;
|
|
64
|
+
return isEqual(payload.value.value, payload.value.currentValue);
|
|
65
|
+
});
|
|
66
|
+
const targetText = computed(() => {
|
|
67
|
+
if (!payload.value) return "";
|
|
68
|
+
const prefix = {
|
|
69
|
+
node: "节点",
|
|
70
|
+
"data-source": "数据源",
|
|
71
|
+
"code-block": "代码块"
|
|
72
|
+
}[payload.value.category] || "";
|
|
73
|
+
const label = payload.value.targetLabel || payload.value.type || "";
|
|
74
|
+
const { id } = payload.value;
|
|
75
|
+
return [prefix, id !== void 0 && id !== "" ? `${label}(${id})` : label].filter(Boolean).join(":");
|
|
76
|
+
});
|
|
77
|
+
const open = (p) => {
|
|
78
|
+
payload.value = p;
|
|
79
|
+
mode.value = "before";
|
|
80
|
+
viewMode.value = "form";
|
|
81
|
+
visible.value = true;
|
|
82
|
+
};
|
|
83
|
+
const close = () => {
|
|
84
|
+
visible.value = false;
|
|
85
|
+
};
|
|
86
|
+
watch(visible, (v) => {
|
|
87
|
+
if (!v) payload.value = null;
|
|
88
|
+
});
|
|
89
|
+
__expose({
|
|
90
|
+
open,
|
|
91
|
+
close
|
|
92
|
+
});
|
|
93
|
+
return (_ctx, _cache) => {
|
|
94
|
+
return openBlock(), createBlock(Teleport, { to: "body" }, [createVNode(unref(TMagicDialog), {
|
|
95
|
+
modelValue: visible.value,
|
|
96
|
+
"onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => visible.value = $event),
|
|
97
|
+
class: "m-editor-history-diff-dialog",
|
|
98
|
+
title: "查看修改差异",
|
|
99
|
+
width: "900px",
|
|
100
|
+
top: "5vh",
|
|
101
|
+
"destroy-on-close": "",
|
|
102
|
+
"append-to-body": ""
|
|
103
|
+
}, {
|
|
104
|
+
footer: withCtx(() => [createVNode(unref(TMagicButton), {
|
|
105
|
+
size: "small",
|
|
106
|
+
onClick: _cache[2] || (_cache[2] = ($event) => visible.value = false)
|
|
107
|
+
}, {
|
|
108
|
+
default: withCtx(() => [..._cache[9] || (_cache[9] = [createTextVNode("关闭", -1)])]),
|
|
109
|
+
_: 1
|
|
110
|
+
})]),
|
|
111
|
+
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), {
|
|
113
|
+
modelValue: viewMode.value,
|
|
114
|
+
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => viewMode.value = $event),
|
|
115
|
+
size: "small",
|
|
116
|
+
class: "m-editor-history-diff-dialog-view"
|
|
117
|
+
}, {
|
|
118
|
+
default: withCtx(() => [createVNode(unref(TMagicRadioButton), { value: "form" }, {
|
|
119
|
+
default: withCtx(() => [..._cache[4] || (_cache[4] = [createTextVNode("表单对比", -1)])]),
|
|
120
|
+
_: 1
|
|
121
|
+
}), createVNode(unref(TMagicRadioButton), { value: "code" }, {
|
|
122
|
+
default: withCtx(() => [..._cache[5] || (_cache[5] = [createTextVNode("源码对比", -1)])]),
|
|
123
|
+
_: 1
|
|
124
|
+
})]),
|
|
125
|
+
_: 1
|
|
126
|
+
}, 8, ["modelValue"]), createVNode(unref(TMagicRadioGroup), {
|
|
127
|
+
modelValue: mode.value,
|
|
128
|
+
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => mode.value = $event),
|
|
129
|
+
size: "small",
|
|
130
|
+
class: "m-editor-history-diff-dialog-mode"
|
|
131
|
+
}, {
|
|
132
|
+
default: withCtx(() => [createVNode(unref(TMagicRadioButton), { value: "before" }, {
|
|
133
|
+
default: withCtx(() => [..._cache[6] || (_cache[6] = [createTextVNode("与修改前对比", -1)])]),
|
|
134
|
+
_: 1
|
|
135
|
+
}), createVNode(unref(TMagicRadioButton), {
|
|
136
|
+
value: "current",
|
|
137
|
+
disabled: !hasCurrent.value
|
|
138
|
+
}, {
|
|
139
|
+
default: withCtx(() => [..._cache[7] || (_cache[7] = [createTextVNode("与当前对比", -1)])]),
|
|
140
|
+
_: 1
|
|
141
|
+
}, 8, ["disabled"])]),
|
|
142
|
+
_: 1
|
|
143
|
+
}, 8, ["modelValue"])])]),
|
|
144
|
+
createElementVNode("div", _hoisted_5, [
|
|
145
|
+
createVNode(unref(TMagicTag), {
|
|
146
|
+
size: "small",
|
|
147
|
+
type: "danger"
|
|
148
|
+
}, {
|
|
149
|
+
default: withCtx(() => [createTextVNode(toDisplayString(leftLabel.value), 1)]),
|
|
150
|
+
_: 1
|
|
151
|
+
}),
|
|
152
|
+
_cache[8] || (_cache[8] = createElementVNode("span", { class: "m-editor-history-diff-dialog-arrow" }, "→", -1)),
|
|
153
|
+
createVNode(unref(TMagicTag), {
|
|
154
|
+
size: "small",
|
|
155
|
+
type: "success"
|
|
156
|
+
}, {
|
|
157
|
+
default: withCtx(() => [createTextVNode(toDisplayString(rightLabel.value), 1)]),
|
|
158
|
+
_: 1
|
|
159
|
+
}),
|
|
160
|
+
mode.value === "current" && isSameAsCurrent.value ? (openBlock(), createElementBlock("span", _hoisted_6, " 当前值与该步修改后一致,无差异 ")) : createCommentVNode("v-if", true)
|
|
161
|
+
]),
|
|
162
|
+
viewMode.value === "form" ? (openBlock(), createBlock(CompareForm_default, {
|
|
163
|
+
key: 0,
|
|
164
|
+
category: payload.value.category,
|
|
165
|
+
type: payload.value.type,
|
|
166
|
+
"data-source-type": payload.value.dataSourceType,
|
|
167
|
+
value: rightValue.value,
|
|
168
|
+
"last-value": leftValue.value,
|
|
169
|
+
"extend-state": __props.extendState,
|
|
170
|
+
height: "70vh"
|
|
171
|
+
}, null, 8, [
|
|
172
|
+
"category",
|
|
173
|
+
"type",
|
|
174
|
+
"data-source-type",
|
|
175
|
+
"value",
|
|
176
|
+
"last-value",
|
|
177
|
+
"extend-state"
|
|
178
|
+
])) : (openBlock(), createBlock(CodeEditor_default, {
|
|
179
|
+
key: 1,
|
|
180
|
+
type: "diff",
|
|
181
|
+
language: "json",
|
|
182
|
+
"init-values": leftValue.value,
|
|
183
|
+
"modified-values": rightValue.value,
|
|
184
|
+
options: codeDiffOptions,
|
|
185
|
+
"disabled-full-screen": "",
|
|
186
|
+
height: "70vh"
|
|
187
|
+
}, null, 8, ["init-values", "modified-values"]))
|
|
188
|
+
])) : createCommentVNode("v-if", true)]),
|
|
189
|
+
_: 1
|
|
190
|
+
}, 8, ["modelValue"])]);
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
});
|
|
194
|
+
//#endregion
|
|
195
|
+
export { HistoryDiffDialog_vue_vue_type_script_setup_true_lang_default as default };
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import HistoryListPanel_vue_vue_type_script_setup_true_lang_default from "./HistoryListPanel.vue_vue_type_script_setup_true_lang.js";
|
|
2
|
+
//#region packages/editor/src/layouts/history-list/HistoryListPanel.vue
|
|
3
|
+
var HistoryListPanel_default = HistoryListPanel_vue_vue_type_script_setup_true_lang_default;
|
|
4
|
+
//#endregion
|
|
5
|
+
export { HistoryListPanel_default as default };
|