@tmagic/editor 1.8.0-manmanyu.8 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/es/Editor.vue_vue_type_script_setup_true_lang.js +22 -13
- package/dist/es/components/CodeBlockEditor.vue_vue_type_script_setup_true_lang.js +10 -5
- package/dist/es/components/CodeParams.vue_vue_type_script_setup_true_lang.js +7 -6
- package/dist/es/components/CompareForm.vue_vue_type_script_setup_true_lang.js +21 -119
- package/dist/es/components/ContentMenu.vue_vue_type_script_setup_true_lang.js +21 -5
- package/dist/es/components/FloatingBox.vue_vue_type_script_setup_true_lang.js +62 -16
- package/dist/es/components/Icon.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/components/Resizer.vue_vue_type_script_setup_true_lang.js +3 -2
- package/dist/es/components/ScrollBar.js +0 -1
- package/dist/es/components/ScrollBar.vue_vue_type_script_setup_true_lang.js +5 -4
- package/dist/es/components/ScrollViewer.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/components/SearchInput.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/components/SplitView.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/components/ToolButton.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/components/Tree.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/components/TreeNode.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/components/ViewForm.js +5 -0
- package/dist/es/components/ViewForm.vue_vue_type_script_setup_true_lang.js +56 -0
- package/dist/es/editorProps.js +7 -1
- package/dist/es/fields/Code.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/fields/CodeLink.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/fields/CodeSelect.vue_vue_type_script_setup_true_lang.js +30 -113
- package/dist/es/fields/CodeSelectCol.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/es/fields/CondOpSelect.vue_vue_type_script_setup_true_lang.js +7 -19
- package/dist/es/fields/DataSourceFieldSelect/FieldSelect.vue_vue_type_script_setup_true_lang.js +7 -6
- package/dist/es/fields/DataSourceFieldSelect/Index.vue_vue_type_script_setup_true_lang.js +4 -2
- package/dist/es/fields/DataSourceFields.vue_vue_type_script_setup_true_lang.js +12 -4
- package/dist/es/fields/DataSourceInput.vue_vue_type_script_setup_true_lang.js +9 -20
- package/dist/es/fields/DataSourceMethodSelect.vue_vue_type_script_setup_true_name_true_lang.js +2 -2
- package/dist/es/fields/DataSourceMethods.vue_vue_type_script_setup_true_lang.js +5 -3
- package/dist/es/fields/DataSourceMocks.vue_vue_type_script_setup_true_lang.js +9 -4
- package/dist/es/fields/DataSourceSelect.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/es/fields/DisplayConds.vue_vue_type_script_setup_true_lang.js +10 -110
- package/dist/es/fields/EventSelect.vue_vue_type_script_setup_true_lang.js +52 -363
- package/dist/es/fields/KeyValue.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/fields/PageFragmentSelect.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/fields/StyleSetter/Index.vue_vue_type_script_setup_true_lang.js +3 -6
- package/dist/es/fields/StyleSetter/components/BackgroundPosition.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/fields/StyleSetter/components/Border.vue_vue_type_script_setup_true_lang.js +4 -35
- package/dist/es/fields/StyleSetter/components/Box.vue_vue_type_script_setup_true_lang.js +3 -3
- package/dist/es/fields/StyleSetter/configs.js +663 -0
- package/dist/es/fields/StyleSetter/icons/align-items/Center.js +1 -1
- package/dist/es/fields/StyleSetter/icons/align-items/FlexEnd.js +1 -1
- package/dist/es/fields/StyleSetter/icons/align-items/FlexStart.js +1 -1
- package/dist/es/fields/StyleSetter/icons/align-items/SpaceAround.js +1 -1
- package/dist/es/fields/StyleSetter/icons/align-items/SpaceBetween.js +1 -1
- package/dist/es/fields/StyleSetter/icons/background-repeat/NoRepeat.js +1 -1
- package/dist/es/fields/StyleSetter/icons/background-repeat/Repeat.js +1 -1
- package/dist/es/fields/StyleSetter/icons/background-repeat/RepeatX.js +1 -1
- package/dist/es/fields/StyleSetter/icons/background-repeat/RepeatY.js +1 -1
- package/dist/es/fields/StyleSetter/icons/display/Block.js +1 -1
- package/dist/es/fields/StyleSetter/icons/display/Flex.js +1 -1
- package/dist/es/fields/StyleSetter/icons/display/Inline.js +1 -1
- package/dist/es/fields/StyleSetter/icons/display/InlineBlock.js +1 -1
- package/dist/es/fields/StyleSetter/icons/display/None.js +1 -1
- package/dist/es/fields/StyleSetter/icons/flex-direction/Column.js +1 -1
- package/dist/es/fields/StyleSetter/icons/flex-direction/ColumnReverse.js +1 -1
- package/dist/es/fields/StyleSetter/icons/flex-direction/Row.js +1 -1
- package/dist/es/fields/StyleSetter/icons/flex-direction/RowReverse.js +1 -1
- package/dist/es/fields/StyleSetter/icons/justify-content/Center.js +1 -1
- package/dist/es/fields/StyleSetter/icons/justify-content/FlexEnd.js +1 -1
- package/dist/es/fields/StyleSetter/icons/justify-content/FlexStart.js +1 -1
- package/dist/es/fields/StyleSetter/icons/justify-content/SpaceAround.js +1 -1
- package/dist/es/fields/StyleSetter/icons/justify-content/SpaceBetween.js +1 -1
- package/dist/es/fields/StyleSetter/icons/text-align/Center.js +1 -1
- package/dist/es/fields/StyleSetter/icons/text-align/Left.js +1 -1
- package/dist/es/fields/StyleSetter/icons/text-align/Right.js +1 -1
- package/dist/es/fields/StyleSetter/pro/Background.vue_vue_type_script_setup_true_lang.js +29 -106
- package/dist/es/fields/StyleSetter/pro/Border.vue_vue_type_script_setup_true_lang.js +8 -11
- package/dist/es/fields/StyleSetter/pro/Font.vue_vue_type_script_setup_true_lang.js +30 -89
- package/dist/es/fields/StyleSetter/pro/Layout.vue_vue_type_script_setup_true_lang.js +29 -297
- package/dist/es/fields/StyleSetter/pro/Position.vue_vue_type_script_setup_true_lang.js +29 -82
- package/dist/es/fields/StyleSetter/pro/Transform.vue_vue_type_script_setup_true_lang.js +8 -24
- package/dist/es/fields/UISelect.js +0 -1
- package/dist/es/fields/UISelect.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/fields/configs/codeSelect.js +98 -0
- package/dist/es/fields/configs/displayConds.js +158 -0
- package/dist/es/fields/configs/eventSelect.js +225 -0
- package/dist/es/fields/configs/stickyAddButton.js +21 -0
- package/dist/es/fields/headless-validation.js +139 -0
- package/dist/es/headless.js +2 -0
- package/dist/es/hooks/use-code-block-edit.js +4 -2
- package/dist/es/hooks/use-compare-form.js +101 -0
- package/dist/es/hooks/use-form-context.js +29 -0
- package/dist/es/hooks/use-stage.js +1 -0
- package/dist/es/icons/CenterIcon.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/icons/CodeIcon.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/icons/DatasourceIcon.js +1 -1
- package/dist/es/icons/FolderMinusIcon.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/index.js +17 -9
- package/dist/es/initService.js +52 -16
- package/dist/es/layouts/AddPageBox.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/layouts/CodeEditor.vue_vue_type_script_setup_true_lang.js +26 -10
- package/dist/es/layouts/Framework.vue_vue_type_script_setup_true_lang.js +11 -8
- package/dist/es/layouts/NavMenu.vue_vue_type_script_setup_true_lang.js +3 -3
- package/dist/es/layouts/NavMenuColumn.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/layouts/history-list/Bucket.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/layouts/history-list/BucketTab.vue_vue_type_script_setup_true_lang.js +8 -5
- package/dist/es/layouts/history-list/GroupRow.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/layouts/history-list/HistoryDiffDialog.vue_vue_type_script_setup_true_lang.js +26 -10
- package/dist/es/layouts/history-list/HistoryListPanel.vue_vue_type_script_setup_true_lang.js +36 -28
- package/dist/es/layouts/history-list/InitialRow.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/layouts/history-list/PageTab.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/layouts/history-list/composables.js +1 -1
- package/dist/es/layouts/history-list/useHistoryList.js +4 -4
- package/dist/es/layouts/history-list/useHistoryRevert.js +38 -33
- package/dist/es/layouts/page-bar/AddButton.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/layouts/page-bar/PageBar.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/layouts/page-bar/PageBarScrollContainer.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/layouts/page-bar/PageList.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/layouts/page-bar/Search.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/es/layouts/props-panel/FormPanel.vue_vue_type_script_setup_true_lang.js +50 -20
- package/dist/es/layouts/props-panel/PropsPanel.vue_vue_type_script_setup_true_lang.js +53 -35
- package/dist/es/layouts/props-panel/use-style-panel.js +3 -2
- package/dist/es/layouts/sidebar/ComponentListPanel.vue_vue_type_script_setup_true_lang.js +3 -3
- package/dist/es/layouts/sidebar/Sidebar.vue_vue_type_script_setup_true_lang.js +21 -36
- package/dist/es/layouts/sidebar/code-block/CodeBlockList.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/layouts/sidebar/code-block/CodeBlockListPanel.vue_vue_type_script_setup_true_lang.js +4 -4
- package/dist/es/layouts/sidebar/code-block/useContentMenu.js +19 -4
- package/dist/es/layouts/sidebar/data-source/DataSourceAddButton.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/layouts/sidebar/data-source/DataSourceConfigPanel.vue_vue_type_script_setup_true_lang.js +9 -4
- package/dist/es/layouts/sidebar/data-source/DataSourceList.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/layouts/sidebar/data-source/DataSourceListPanel.vue_vue_type_script_setup_true_lang.js +4 -4
- package/dist/es/layouts/sidebar/data-source/useContentMenu.js +19 -4
- package/dist/es/layouts/sidebar/layer/LayerMenu.vue_vue_type_script_setup_true_lang.js +3 -3
- package/dist/es/layouts/sidebar/layer/LayerNodeContent.js +5 -0
- package/dist/es/layouts/sidebar/layer/LayerNodeContent.vue_vue_type_script_setup_true_lang.js +46 -0
- package/dist/es/layouts/sidebar/layer/LayerNodeTool.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/layouts/sidebar/layer/LayerPanel.vue_vue_type_script_setup_true_lang.js +6 -4
- package/dist/es/layouts/sidebar/layer/use-click.js +3 -3
- package/dist/es/layouts/sidebar/layer/use-drag.js +11 -10
- package/dist/es/layouts/sidebar/layer/use-node-status.js +2 -2
- package/dist/es/layouts/workspace/Breadcrumb.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/layouts/workspace/Workspace.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/layouts/workspace/viewer/NodeListMenu.vue_vue_type_script_setup_true_lang.js +9 -3
- package/dist/es/layouts/workspace/viewer/Stage.vue_vue_type_script_setup_true_lang.js +55 -9
- package/dist/es/layouts/workspace/viewer/StageOverlay.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/layouts/workspace/viewer/ViewerMenu.vue_vue_type_script_setup_true_lang.js +8 -8
- package/dist/es/plugin.js +35 -23
- package/dist/es/services/codeBlock.js +40 -31
- package/dist/es/services/dataSource.js +46 -34
- package/dist/es/services/dep.js +162 -41
- package/dist/es/services/editor.js +373 -137
- package/dist/es/services/events.js +4 -4
- package/dist/es/services/history.js +275 -392
- package/dist/es/services/keybinding.js +3 -3
- package/dist/es/services/props.js +2 -1
- package/dist/es/services/storage.js +2 -2
- package/dist/es/services/ui.js +7 -2
- package/dist/es/style.css +277 -114
- package/dist/es/utils/code-block.js +14 -7
- package/dist/es/utils/config.js +4 -1
- package/dist/es/utils/const.js +2 -2
- package/dist/es/utils/content-menu.js +2 -2
- package/dist/es/utils/data-source/index.js +34 -12
- package/dist/es/utils/dep/collect-worker-client.js +154 -0
- package/dist/es/utils/dep/idle-task.js +70 -22
- package/dist/es/utils/dep/worker.js +1 -1
- package/dist/es/utils/editor.js +4 -2
- package/dist/es/utils/event.js +135 -0
- package/dist/es/utils/history.js +35 -47
- package/dist/es/utils/monaco-editor.js +22 -6
- package/dist/es/utils/operator.js +2 -2
- package/dist/es/utils/props.js +50 -106
- package/dist/es/utils/type-match-rules.js +356 -0
- package/dist/style.css +277 -114
- package/dist/themes/magic-admin.css +978 -175
- package/dist/tmagic-editor-headless.umd.cjs +10880 -0
- package/dist/tmagic-editor.umd.cjs +13047 -11363
- package/package.json +18 -13
- package/src/Editor.vue +23 -6
- package/src/components/CodeBlockEditor.vue +3 -0
- package/src/components/CodeParams.vue +10 -4
- package/src/components/CompareForm.vue +20 -190
- package/src/components/ContentMenu.vue +34 -6
- package/src/components/FloatingBox.vue +71 -7
- package/src/components/ScrollBar.vue +0 -67
- package/src/components/ViewForm.vue +54 -0
- package/src/editorProps.ts +23 -10
- package/src/fields/Code.vue +1 -1
- package/src/fields/CodeSelect.vue +20 -113
- package/src/fields/CodeSelectCol.vue +1 -1
- package/src/fields/CondOpSelect.vue +5 -26
- package/src/fields/DataSourceFieldSelect/FieldSelect.vue +2 -2
- package/src/fields/DataSourceFieldSelect/Index.vue +4 -1
- package/src/fields/DataSourceFields.vue +5 -1
- package/src/fields/DataSourceInput.vue +10 -28
- package/src/fields/DataSourceMethodSelect.vue +1 -1
- package/src/fields/DataSourceMethods.vue +6 -2
- package/src/fields/DataSourceMocks.vue +3 -0
- package/src/fields/DataSourceSelect.vue +1 -1
- package/src/fields/DisplayConds.vue +17 -139
- package/src/fields/EventSelect.vue +29 -416
- package/src/fields/KeyValue.vue +1 -1
- package/src/fields/StyleSetter/Index.vue +2 -8
- package/src/fields/StyleSetter/components/Border.vue +4 -38
- package/src/fields/StyleSetter/components/Box.vue +1 -1
- package/src/fields/StyleSetter/components/Position.vue +1 -1
- package/src/fields/StyleSetter/configs.ts +690 -0
- package/src/fields/StyleSetter/pro/Background.vue +9 -64
- package/src/fields/StyleSetter/pro/Border.vue +5 -16
- package/src/fields/StyleSetter/pro/Font.vue +11 -71
- package/src/fields/StyleSetter/pro/Layout.vue +10 -230
- package/src/fields/StyleSetter/pro/Position.vue +11 -82
- package/src/fields/StyleSetter/pro/Transform.vue +6 -34
- package/src/fields/UISelect.vue +0 -12
- package/src/fields/configs/codeSelect.ts +127 -0
- package/src/fields/configs/displayConds.ts +184 -0
- package/src/fields/configs/eventSelect.ts +309 -0
- package/src/fields/configs/stickyAddButton.ts +32 -0
- package/src/fields/headless-validation.ts +177 -0
- package/src/headless.ts +33 -0
- package/src/hooks/index.ts +1 -0
- package/src/hooks/use-compare-form.ts +166 -0
- package/src/hooks/use-form-context.ts +56 -0
- package/src/hooks/use-stage.ts +1 -0
- package/src/index.ts +9 -0
- package/src/initService.ts +73 -18
- package/src/layouts/CodeEditor.vue +32 -6
- package/src/layouts/Framework.vue +7 -6
- package/src/layouts/history-list/BucketTab.vue +2 -2
- package/src/layouts/history-list/HistoryDiffDialog.vue +33 -15
- package/src/layouts/history-list/HistoryListPanel.vue +16 -18
- package/src/layouts/history-list/useHistoryRevert.ts +57 -41
- package/src/layouts/props-panel/FormPanel.vue +75 -20
- package/src/layouts/props-panel/PropsPanel.vue +81 -30
- package/src/layouts/props-panel/use-style-panel.ts +4 -3
- package/src/layouts/sidebar/ComponentListPanel.vue +6 -2
- package/src/layouts/sidebar/Sidebar.vue +5 -3
- package/src/layouts/sidebar/code-block/CodeBlockListPanel.vue +5 -2
- package/src/layouts/sidebar/code-block/useContentMenu.ts +14 -2
- package/src/layouts/sidebar/data-source/DataSourceConfigPanel.vue +3 -0
- package/src/layouts/sidebar/data-source/DataSourceListPanel.vue +3 -3
- package/src/layouts/sidebar/data-source/useContentMenu.ts +14 -2
- package/src/layouts/sidebar/layer/LayerMenu.vue +2 -2
- package/src/layouts/sidebar/layer/LayerNodeContent.vue +57 -0
- package/src/layouts/sidebar/layer/LayerPanel.vue +5 -2
- package/src/layouts/sidebar/layer/use-click.ts +3 -3
- package/src/layouts/sidebar/layer/use-node-status.ts +2 -2
- package/src/layouts/workspace/viewer/NodeListMenu.vue +4 -1
- package/src/layouts/workspace/viewer/Stage.vue +80 -10
- package/src/layouts/workspace/viewer/ViewerMenu.vue +7 -7
- package/src/plugin.ts +35 -25
- package/src/services/codeBlock.ts +4 -0
- package/src/services/dataSource.ts +3 -0
- package/src/services/dep.ts +292 -47
- package/src/services/editor.ts +383 -120
- package/src/services/events.ts +8 -7
- package/src/services/history.ts +22 -1
- package/src/services/keybinding.ts +3 -3
- package/src/services/ui.ts +26 -5
- package/src/theme/code-block.scss +0 -37
- package/src/theme/display-conds.scss +4 -0
- package/src/theme/event.scss +25 -33
- package/src/theme/floating-box.scss +9 -1
- package/src/theme/framework.scss +4 -1
- package/src/theme/layer-node-content.scss +14 -0
- package/src/theme/nav-menu.scss +5 -1
- package/src/theme/props-panel.scss +17 -3
- package/src/theme/scroll-bar.scss +64 -0
- package/src/theme/theme.scss +3 -0
- package/src/theme/themes/magic-admin/index.scss +109 -9
- package/src/theme/ui-select.scss +9 -0
- package/src/type.ts +216 -6
- package/src/utils/code-block.ts +1 -0
- package/src/utils/config.ts +9 -1
- package/src/utils/const.ts +3 -3
- package/src/utils/content-menu.ts +2 -2
- package/src/utils/data-source/index.ts +31 -12
- package/src/utils/dep/collect-worker-client.ts +215 -0
- package/src/utils/dep/idle-task.ts +104 -35
- package/src/utils/dep/worker.ts +113 -9
- package/src/utils/event.ts +237 -0
- package/src/utils/index.ts +2 -0
- package/src/utils/monaco-editor.ts +27 -0
- package/src/utils/operator.ts +2 -2
- package/src/utils/props.ts +61 -122
- package/src/utils/type-match-rules.ts +697 -0
- package/types/headless.d.ts +17 -0
- package/types/index.d.ts +1494 -978
- package/src/fields/StyleSetter/icons/align-items/index copy.ts +0 -5
package/dist/es/layouts/history-list/HistoryDiffDialog.vue_vue_type_script_setup_true_lang.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { useServices } from "../../hooks/use-services.js";
|
|
2
1
|
import CodeEditor_default from "../CodeEditor.js";
|
|
3
2
|
import CompareForm_default from "../../components/CompareForm.js";
|
|
4
3
|
import { TMagicButton, TMagicDialog, TMagicRadioButton, TMagicRadioGroup, TMagicTag } from "@tmagic/design";
|
|
@@ -21,14 +20,14 @@ var _hoisted_7 = {
|
|
|
21
20
|
key: 0,
|
|
22
21
|
class: "m-editor-history-diff-dialog-tip"
|
|
23
22
|
};
|
|
24
|
-
var HistoryDiffDialog_vue_vue_type_script_setup_true_lang_default =
|
|
23
|
+
var HistoryDiffDialog_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
25
24
|
name: "MEditorHistoryDiffDialog",
|
|
26
25
|
__name: "HistoryDiffDialog",
|
|
27
26
|
props: {
|
|
28
|
-
services: {
|
|
29
|
-
extendState: {},
|
|
27
|
+
services: {},
|
|
30
28
|
loadConfig: {},
|
|
31
29
|
width: { default: "900px" },
|
|
30
|
+
size: {},
|
|
32
31
|
isConfirm: { type: Boolean },
|
|
33
32
|
onConfirm: {},
|
|
34
33
|
selfDiffFieldTypes: {}
|
|
@@ -65,6 +64,20 @@ var HistoryDiffDialog_vue_vue_type_script_setup_true_lang_default = /* @__PURE__
|
|
|
65
64
|
};
|
|
66
65
|
const dialogTitle = computed(() => props.onConfirm ? "确认回滚" : "查看修改差异");
|
|
67
66
|
const hasCurrent = computed(() => payload.value?.currentValue !== void 0 && payload.value?.currentValue !== null);
|
|
67
|
+
/** 是否存在该步「修改后的值」:不存在(如仅删除)时「与修改前对比」无意义,置灰禁用。 */
|
|
68
|
+
const hasValue = computed(() => payload.value?.value !== void 0 && payload.value?.value !== null);
|
|
69
|
+
/** 指定模式当前是否可用:before 依赖「修改后的值」,current 依赖「当前值」。 */
|
|
70
|
+
const isModeAvailable = (m) => m === "current" ? hasCurrent.value : hasValue.value;
|
|
71
|
+
/**
|
|
72
|
+
* 计算 open 时的初始对比模式:
|
|
73
|
+
* - 调用方通过 payload.mode 指定且该模式可用时,优先使用指定模式;
|
|
74
|
+
* - 否则没有「修改后的值」但有当前值时(「与修改前对比」不可用),默认进入「与当前对比」;
|
|
75
|
+
* - 其余情况默认「与修改前对比」。
|
|
76
|
+
*/
|
|
77
|
+
const resolveInitialMode = (specified) => {
|
|
78
|
+
if (specified && isModeAvailable(specified)) return specified;
|
|
79
|
+
return !hasValue.value && hasCurrent.value ? "current" : "before";
|
|
80
|
+
};
|
|
68
81
|
/** 左侧(旧/参照)值 */
|
|
69
82
|
const leftValue = computed(() => {
|
|
70
83
|
if (!payload.value) return {};
|
|
@@ -107,7 +120,7 @@ var HistoryDiffDialog_vue_vue_type_script_setup_true_lang_default = /* @__PURE__
|
|
|
107
120
|
});
|
|
108
121
|
const open = (p) => {
|
|
109
122
|
payload.value = p;
|
|
110
|
-
mode.value =
|
|
123
|
+
mode.value = resolveInitialMode(p.mode);
|
|
111
124
|
viewMode.value = "form";
|
|
112
125
|
visible.value = true;
|
|
113
126
|
};
|
|
@@ -199,10 +212,13 @@ var HistoryDiffDialog_vue_vue_type_script_setup_true_lang_default = /* @__PURE__
|
|
|
199
212
|
size: "small",
|
|
200
213
|
class: "m-editor-history-diff-dialog-mode"
|
|
201
214
|
}, {
|
|
202
|
-
default: withCtx(() => [createVNode(unref(TMagicRadioButton), {
|
|
215
|
+
default: withCtx(() => [createVNode(unref(TMagicRadioButton), {
|
|
216
|
+
value: "before",
|
|
217
|
+
disabled: !hasValue.value
|
|
218
|
+
}, {
|
|
203
219
|
default: withCtx(() => [..._cache[7] || (_cache[7] = [createTextVNode("与修改前对比", -1)])]),
|
|
204
220
|
_: 1
|
|
205
|
-
}), createVNode(unref(TMagicRadioButton), {
|
|
221
|
+
}, 8, ["disabled"]), createVNode(unref(TMagicRadioButton), {
|
|
206
222
|
value: "current",
|
|
207
223
|
disabled: !hasCurrent.value
|
|
208
224
|
}, {
|
|
@@ -236,10 +252,10 @@ var HistoryDiffDialog_vue_vue_type_script_setup_true_lang_default = /* @__PURE__
|
|
|
236
252
|
"data-source-type": payload.value.dataSourceType,
|
|
237
253
|
value: rightValue.value,
|
|
238
254
|
"last-value": leftValue.value,
|
|
239
|
-
"extend-state": __props.extendState,
|
|
240
255
|
"load-config": __props.loadConfig,
|
|
241
256
|
"self-diff-field-types": __props.selfDiffFieldTypes,
|
|
242
257
|
services: props.services,
|
|
258
|
+
size: props.size,
|
|
243
259
|
height: "70vh"
|
|
244
260
|
}, null, 8, [
|
|
245
261
|
"category",
|
|
@@ -247,10 +263,10 @@ var HistoryDiffDialog_vue_vue_type_script_setup_true_lang_default = /* @__PURE__
|
|
|
247
263
|
"data-source-type",
|
|
248
264
|
"value",
|
|
249
265
|
"last-value",
|
|
250
|
-
"extend-state",
|
|
251
266
|
"load-config",
|
|
252
267
|
"self-diff-field-types",
|
|
253
|
-
"services"
|
|
268
|
+
"services",
|
|
269
|
+
"size"
|
|
254
270
|
])) : (openBlock(), createBlock(CodeEditor_default, {
|
|
255
271
|
key: 2,
|
|
256
272
|
type: "diff",
|
package/dist/es/layouts/history-list/HistoryListPanel.vue_vue_type_script_setup_true_lang.js
CHANGED
|
@@ -10,7 +10,7 @@ import { Fragment, computed, createBlock, createCommentVNode, createElementBlock
|
|
|
10
10
|
import { Clock, Close } from "@element-plus/icons-vue";
|
|
11
11
|
//#region packages/editor/src/layouts/history-list/HistoryListPanel.vue?vue&type=script&setup=true&lang.ts
|
|
12
12
|
var _hoisted_1 = { class: "m-editor-history-list" };
|
|
13
|
-
var HistoryListPanel_vue_vue_type_script_setup_true_lang_default =
|
|
13
|
+
var HistoryListPanel_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
14
14
|
name: "MEditorHistoryListPanel",
|
|
15
15
|
__name: "HistoryListPanel",
|
|
16
16
|
setup(__props) {
|
|
@@ -62,38 +62,40 @@ var HistoryListPanel_vue_vue_type_script_setup_true_lang_default = /* @__PURE__
|
|
|
62
62
|
watch([disabledDataSource, disabledCodeBlock], ([dsDisabled, cbDisabled]) => {
|
|
63
63
|
if (activeTab.value === "data-source" && dsDisabled || activeTab.value === "code-block" && cbDisabled) activeTab.value = "page";
|
|
64
64
|
});
|
|
65
|
-
/**
|
|
66
|
-
* 通过 inject 拿到 Editor 顶层注入的 `extendFormState`,转交给 HistoryDiffDialog
|
|
67
|
-
* 内部的 CompareForm,使差异对比表单的 filterFunction 能拿到完整的业务上下文。
|
|
68
|
-
* 未提供时为 undefined,CompareForm/MForm 会跳过 extendState 处理。
|
|
69
|
-
*/
|
|
70
|
-
const extendFormState = inject("extendFormState", void 0);
|
|
71
65
|
const { expanded, toggleGroup, pageGroups, dataSourceGroups, codeBlockGroups, pageGroupsDisplay, dataSourceGroupsByTarget, codeBlockGroupsByTarget } = useHistoryList();
|
|
72
66
|
/**
|
|
73
67
|
* 当前活动页的「加载/初始」标记记录(设置 root 时生成),透传给 PageTab 的底部初始行展示。
|
|
74
68
|
* 基于 historyService 的 reactive state 派生,活动页切换或标记写入后自动刷新。
|
|
75
69
|
*/
|
|
76
|
-
const pageMarker = computed(() => historyService.
|
|
70
|
+
const pageMarker = computed(() => historyService.getMarker("page", editorService.get("page")?.id));
|
|
71
|
+
/**
|
|
72
|
+
* 各历史类型的展示名称(页面 / 数据源 / 代码块),由 historyService.state.stepNames 配置,
|
|
73
|
+
* 业务方可通过 historyService.setStepName / registerStepType 覆盖。基于 reactive state 派生,配置变更后自动刷新。
|
|
74
|
+
*/
|
|
75
|
+
const pageName = computed(() => historyService.getStepName("page"));
|
|
76
|
+
const dataSourceName = computed(() => historyService.getStepName("dataSource"));
|
|
77
|
+
const codeBlockName = computed(() => historyService.getStepName("codeBlock"));
|
|
77
78
|
/** 代码块 step 仅 update(前后 content 都存在)时可查看差异。 */
|
|
78
79
|
const isStepDiffable = (step) => Boolean(step.diff?.[0]?.oldSchema && step.diff?.[0]?.newSchema);
|
|
79
80
|
/**
|
|
80
81
|
* 数据源 / 代码块两类 bucket 历史的整体渲染配置:把 title / prefix 与各自的描述、
|
|
81
82
|
* 可差异、可回滚判定收敛为单一对象整体注入 BucketTab,组件内部按需读取。
|
|
83
|
+
* title / 描述回退名取自可配置的展示名称,故用 computed 使其随 stepNames 变更刷新。
|
|
82
84
|
*/
|
|
83
|
-
const dataSourceConfig = {
|
|
84
|
-
title:
|
|
85
|
+
const dataSourceConfig = computed(() => ({
|
|
86
|
+
title: dataSourceName.value,
|
|
85
87
|
prefix: "ds",
|
|
86
|
-
describeStep: (step) => describeStep(step, (schema) => schema?.title,
|
|
88
|
+
describeStep: (step) => describeStep(step, (schema) => schema?.title, dataSourceName.value),
|
|
87
89
|
isStepDiffable,
|
|
88
90
|
isStepRevertable: isSingleDiffStepRevertable
|
|
89
|
-
};
|
|
90
|
-
const codeBlockConfig = {
|
|
91
|
-
title:
|
|
91
|
+
}));
|
|
92
|
+
const codeBlockConfig = computed(() => ({
|
|
93
|
+
title: codeBlockName.value,
|
|
92
94
|
prefix: "cb",
|
|
93
|
-
describeStep: (step) => describeStep(step, (content) => content?.name,
|
|
95
|
+
describeStep: (step) => describeStep(step, (content) => content?.name, codeBlockName.value),
|
|
94
96
|
isStepDiffable,
|
|
95
97
|
isStepRevertable: isSingleDiffStepRevertable
|
|
96
|
-
};
|
|
98
|
+
}));
|
|
97
99
|
/** 把"目标 step 索引"翻译成"目标 cursor"(已应用步骤数量)。 */
|
|
98
100
|
const indexToCursor = (index) => index + 1;
|
|
99
101
|
const onPageGoto = (index) => {
|
|
@@ -106,7 +108,7 @@ var HistoryListPanel_vue_vue_type_script_setup_true_lang_default = /* @__PURE__
|
|
|
106
108
|
* - 该 step 涉及的节点都已不存在(如删除记录、被撤销的新增)时给出提示,不做选中。
|
|
107
109
|
*/
|
|
108
110
|
const onPageSelect = async (index) => {
|
|
109
|
-
const step = historyService.
|
|
111
|
+
const step = historyService.getStepList("page", editorService.get("page")?.id)[index]?.step;
|
|
110
112
|
if (!step) return;
|
|
111
113
|
const targetId = (step.diff ?? []).map((item) => item.newSchema?.id ?? item.oldSchema?.id).find((id) => id !== void 0 && id !== null && editorService.getNodeById(id, false));
|
|
112
114
|
if (targetId === void 0 || targetId === null) {
|
|
@@ -141,9 +143,9 @@ var HistoryListPanel_vue_vue_type_script_setup_true_lang_default = /* @__PURE__
|
|
|
141
143
|
/**
|
|
142
144
|
* 「单步回滚」与「查看差异」的完整逻辑收敛到 useHistoryRevert,面板与业务方共用:
|
|
143
145
|
* 二者均由 useHistoryRevert 内部按需动态挂载 HistoryDiffDialog,
|
|
144
|
-
* 业务方亦可直接 import useHistoryRevert(services) 调用,无需自行挂载任何弹窗。
|
|
146
|
+
* 业务方亦可直接 import useHistoryRevert(options, services) 调用,无需自行挂载任何弹窗。
|
|
145
147
|
*/
|
|
146
|
-
const { onPageRevert, onDataSourceRevert, onCodeBlockRevert, onPageDiff, onDataSourceDiff, onCodeBlockDiff } = useHistoryRevert(
|
|
148
|
+
const { onPageRevert, onDataSourceRevert, onCodeBlockRevert, onPageDiff, onDataSourceDiff, onCodeBlockDiff } = useHistoryRevert({}, services);
|
|
147
149
|
/**
|
|
148
150
|
* 把内存中(已清空对应类别后的)历史状态重新写回 IndexedDB,
|
|
149
151
|
* 使本地持久化的那份与内存保持一致——即「连同本地保存的一并删除」。
|
|
@@ -156,19 +158,19 @@ var HistoryListPanel_vue_vue_type_script_setup_true_lang_default = /* @__PURE__
|
|
|
156
158
|
};
|
|
157
159
|
const onPageClear = async () => {
|
|
158
160
|
if (await confirmHistoryAction("确定清空当前页面的历史记录吗?清空后将无法撤销/重做之前的操作,本地保存的记录也会一并删除。")) {
|
|
159
|
-
historyService.
|
|
161
|
+
historyService.clear("page", editorService.get("page")?.id);
|
|
160
162
|
await syncIndexedDB();
|
|
161
163
|
}
|
|
162
164
|
};
|
|
163
165
|
const onDataSourceClear = async () => {
|
|
164
166
|
if (await confirmHistoryAction("确定清空数据源的历史记录吗?清空后将无法撤销/重做之前的操作,本地保存的记录也会一并删除。")) {
|
|
165
|
-
historyService.
|
|
167
|
+
historyService.clear("dataSource");
|
|
166
168
|
await syncIndexedDB();
|
|
167
169
|
}
|
|
168
170
|
};
|
|
169
171
|
const onCodeBlockClear = async () => {
|
|
170
172
|
if (await confirmHistoryAction("确定清空代码块的历史记录吗?清空后将无法撤销/重做之前的操作,本地保存的记录也会一并删除。")) {
|
|
171
|
-
historyService.
|
|
173
|
+
historyService.clear("codeBlock");
|
|
172
174
|
await syncIndexedDB();
|
|
173
175
|
}
|
|
174
176
|
};
|
|
@@ -219,7 +221,8 @@ var HistoryListPanel_vue_vue_type_script_setup_true_lang_default = /* @__PURE__
|
|
|
219
221
|
default: withCtx(() => [
|
|
220
222
|
(openBlock(), createBlock(resolveDynamicComponent(unref(tabPaneComponent)?.component || "el-tab-pane"), normalizeProps(guardReactiveProps(unref(tabPaneComponent)?.props({
|
|
221
223
|
name: "page",
|
|
222
|
-
label:
|
|
224
|
+
label: `${pageName.value} (${unref(pageGroups).length})`,
|
|
225
|
+
lazy: true
|
|
223
226
|
}) || {})), {
|
|
224
227
|
default: withCtx(() => [createVNode(PageTab_default, {
|
|
225
228
|
list: unref(pageGroupsDisplay),
|
|
@@ -244,10 +247,11 @@ var HistoryListPanel_vue_vue_type_script_setup_true_lang_default = /* @__PURE__
|
|
|
244
247
|
}, 16)),
|
|
245
248
|
!disabledDataSource.value ? (openBlock(), createBlock(resolveDynamicComponent(unref(tabPaneComponent)?.component || "el-tab-pane"), normalizeProps(mergeProps({ key: 0 }, unref(tabPaneComponent)?.props({
|
|
246
249
|
name: "data-source",
|
|
247
|
-
label:
|
|
250
|
+
label: `${dataSourceName.value} (${unref(dataSourceGroups).length})`,
|
|
251
|
+
lazy: true
|
|
248
252
|
}) || {})), {
|
|
249
253
|
default: withCtx(() => [createVNode(BucketTab_default, {
|
|
250
|
-
config: dataSourceConfig,
|
|
254
|
+
config: dataSourceConfig.value,
|
|
251
255
|
buckets: unref(dataSourceGroupsByTarget),
|
|
252
256
|
expanded: unref(expanded),
|
|
253
257
|
onToggle: unref(toggleGroup),
|
|
@@ -257,6 +261,7 @@ var HistoryListPanel_vue_vue_type_script_setup_true_lang_default = /* @__PURE__
|
|
|
257
261
|
onRevertStep: unref(onDataSourceRevert),
|
|
258
262
|
onClear: onDataSourceClear
|
|
259
263
|
}, null, 8, [
|
|
264
|
+
"config",
|
|
260
265
|
"buckets",
|
|
261
266
|
"expanded",
|
|
262
267
|
"onToggle",
|
|
@@ -267,10 +272,11 @@ var HistoryListPanel_vue_vue_type_script_setup_true_lang_default = /* @__PURE__
|
|
|
267
272
|
}, 16)) : createCommentVNode("v-if", true),
|
|
268
273
|
!disabledCodeBlock.value ? (openBlock(), createBlock(resolveDynamicComponent(unref(tabPaneComponent)?.component || "el-tab-pane"), normalizeProps(mergeProps({ key: 1 }, unref(tabPaneComponent)?.props({
|
|
269
274
|
name: "code-block",
|
|
270
|
-
label:
|
|
275
|
+
label: `${codeBlockName.value} (${unref(codeBlockGroups).length})`,
|
|
276
|
+
lazy: true
|
|
271
277
|
}) || {})), {
|
|
272
278
|
default: withCtx(() => [createVNode(BucketTab_default, {
|
|
273
|
-
config: codeBlockConfig,
|
|
279
|
+
config: codeBlockConfig.value,
|
|
274
280
|
buckets: unref(codeBlockGroupsByTarget),
|
|
275
281
|
expanded: unref(expanded),
|
|
276
282
|
onToggle: unref(toggleGroup),
|
|
@@ -280,6 +286,7 @@ var HistoryListPanel_vue_vue_type_script_setup_true_lang_default = /* @__PURE__
|
|
|
280
286
|
onRevertStep: unref(onCodeBlockRevert),
|
|
281
287
|
onClear: onCodeBlockClear
|
|
282
288
|
}, null, 8, [
|
|
289
|
+
"config",
|
|
283
290
|
"buckets",
|
|
284
291
|
"expanded",
|
|
285
292
|
"onToggle",
|
|
@@ -291,7 +298,8 @@ var HistoryListPanel_vue_vue_type_script_setup_true_lang_default = /* @__PURE__
|
|
|
291
298
|
(openBlock(true), createElementBlock(Fragment, null, renderList(unref(extraTabs), (tab) => {
|
|
292
299
|
return openBlock(), createBlock(resolveDynamicComponent(unref(tabPaneComponent)?.component || "el-tab-pane"), mergeProps({ key: tab.name }, { ref_for: true }, unref(tabPaneComponent)?.props({
|
|
293
300
|
name: tab.name,
|
|
294
|
-
label: resolveTabLabel(tab)
|
|
301
|
+
label: resolveTabLabel(tab),
|
|
302
|
+
lazy: true
|
|
295
303
|
}) || {}), {
|
|
296
304
|
default: withCtx(() => [(openBlock(), createBlock(resolveDynamicComponent(tab.component), mergeProps({ ref_for: true }, tab.props || {}, toHandlers(tab.listeners || {})), null, 16))]),
|
|
297
305
|
_: 2
|
|
@@ -13,7 +13,7 @@ var _hoisted_4 = {
|
|
|
13
13
|
class: "m-editor-history-list-item-actions"
|
|
14
14
|
};
|
|
15
15
|
var _hoisted_5 = ["title"];
|
|
16
|
-
var InitialRow_vue_vue_type_script_setup_true_lang_default =
|
|
16
|
+
var InitialRow_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
17
17
|
name: "MEditorHistoryListInitialRow",
|
|
18
18
|
__name: "InitialRow",
|
|
19
19
|
props: {
|
|
@@ -13,7 +13,7 @@ var _hoisted_2 = {
|
|
|
13
13
|
class: "m-editor-history-list-toolbar"
|
|
14
14
|
};
|
|
15
15
|
var _hoisted_3 = { class: "m-editor-history-list-ul" };
|
|
16
|
-
var PageTab_vue_vue_type_script_setup_true_lang_default =
|
|
16
|
+
var PageTab_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
17
17
|
name: "MEditorHistoryListPageTab",
|
|
18
18
|
__name: "PageTab",
|
|
19
19
|
props: {
|
|
@@ -181,4 +181,4 @@ var confirmHistoryAction = async (message) => {
|
|
|
181
181
|
}
|
|
182
182
|
};
|
|
183
183
|
//#endregion
|
|
184
|
-
export { confirmHistoryAction, describePageGroup, describePageStep, describeStep, formatHistoryFullTime, formatHistoryTime, isHistoryGroupExpanded, isPageStepRevertable, isSingleDiffStepRevertable, opLabel, sourceLabel, toRowGroup };
|
|
184
|
+
export { confirmHistoryAction, describePageGroup, describePageStep, describeStep, formatHistoryFullTime, formatHistoryTime, groupOperator, groupSource, groupTimestamp, isHistoryGroupExpanded, isPageStepRevertable, isSingleDiffStepRevertable, opLabel, sourceLabel, toRowGroup };
|
|
@@ -10,7 +10,7 @@ import { computed, reactive } from "vue";
|
|
|
10
10
|
* 所有数据基于 historyService 的 reactive state 派生,自动跟随历史变化刷新。
|
|
11
11
|
*/
|
|
12
12
|
var useHistoryList = () => {
|
|
13
|
-
const { historyService } = useServices();
|
|
13
|
+
const { editorService, historyService } = useServices();
|
|
14
14
|
/**
|
|
15
15
|
* 折叠状态:key 形如 `pg-${组内首步 index}` / `ds-${id}-${组内首步 index}` / `cb-${id}-${组内首步 index}`。
|
|
16
16
|
* 用组内首步的稳定 index(而非展示位置)作为 key,确保历史数据更新后已展开的分组状态保持不变。
|
|
@@ -20,9 +20,9 @@ var useHistoryList = () => {
|
|
|
20
20
|
const toggleGroup = (key) => {
|
|
21
21
|
expanded[key] = expanded[key] === false;
|
|
22
22
|
};
|
|
23
|
-
const pageGroups = computed(() => historyService.
|
|
24
|
-
const dataSourceGroups = computed(() => historyService.
|
|
25
|
-
const codeBlockGroups = computed(() => historyService.
|
|
23
|
+
const pageGroups = computed(() => historyService.getHistoryGroups("page", editorService.get("page")?.id));
|
|
24
|
+
const dataSourceGroups = computed(() => historyService.getHistoryGroups("dataSource"));
|
|
25
|
+
const codeBlockGroups = computed(() => historyService.getHistoryGroups("codeBlock"));
|
|
26
26
|
/** 页面 tab 倒序展示(最新一组在最上面)。 */
|
|
27
27
|
const pageGroupsDisplay = computed(() => pageGroups.value.slice().reverse());
|
|
28
28
|
/**
|
|
@@ -43,9 +43,10 @@ var mountHistoryDiffDialog = async (options) => {
|
|
|
43
43
|
const app = createApp(historyDiffDialog, {
|
|
44
44
|
services: options.services,
|
|
45
45
|
isConfirm: options.isConfirm,
|
|
46
|
-
extendState: options.extendState,
|
|
47
46
|
loadConfig: options.loadConfig,
|
|
48
47
|
selfDiffFieldTypes: options.selfDiffFieldTypes,
|
|
48
|
+
width: options.width,
|
|
49
|
+
size: options.size ?? options.services?.uiService?.get("propsPanelSize"),
|
|
49
50
|
onClose: options.onClose
|
|
50
51
|
});
|
|
51
52
|
if (options.appContext) Object.assign(app._context, options.appContext);
|
|
@@ -59,6 +60,7 @@ var mountHistoryDiffDialog = async (options) => {
|
|
|
59
60
|
}, 300);
|
|
60
61
|
};
|
|
61
62
|
return {
|
|
63
|
+
app,
|
|
62
64
|
instance,
|
|
63
65
|
destroy
|
|
64
66
|
};
|
|
@@ -116,15 +118,14 @@ var viewHistoryDiffDialog = async (payload, options) => {
|
|
|
116
118
|
* ```ts
|
|
117
119
|
* import { useHistoryRevert } from '@tmagic/editor';
|
|
118
120
|
*
|
|
119
|
-
* const { onPageRevert, onPageDiff } = useHistoryRevert(editorRef.value); // editorRef.value 即 Editor 暴露的 services
|
|
121
|
+
* const { onPageRevert, onPageDiff } = useHistoryRevert({}, editorRef.value); // editorRef.value 即 Editor 暴露的 services
|
|
120
122
|
* await onPageRevert(index); // 弹出差异 / 二次确认弹窗后回滚
|
|
121
123
|
* onPageDiff(index); // 弹出只读差异弹窗查看前后值差异
|
|
122
124
|
* ```
|
|
123
125
|
*/
|
|
124
|
-
var useHistoryRevert = (
|
|
125
|
-
const { editorService, dataSourceService, codeBlockService, historyService } = services;
|
|
126
|
+
var useHistoryRevert = (options = {}, services) => {
|
|
126
127
|
const appContext = options.appContext ?? getCurrentInstance()?.appContext ?? null;
|
|
127
|
-
const {
|
|
128
|
+
const { dialogWidth } = options;
|
|
128
129
|
/** 目标数据已被删除、无法回滚时的统一提示。 */
|
|
129
130
|
const showRevertTargetMissing = () => {
|
|
130
131
|
tMagicMessage.error("回滚失败:该记录对应的数据已被删除");
|
|
@@ -134,7 +135,7 @@ var useHistoryRevert = (services, options = {}) => {
|
|
|
134
135
|
* 不弹差异弹窗,改用一个普通确认框替代「确定回滚」按钮,避免点击后无任何提示直接执行。
|
|
135
136
|
* 用户取消时返回 false,调用方据此中止回滚。
|
|
136
137
|
*/
|
|
137
|
-
const confirmRevert = () => confirmHistoryAction("
|
|
138
|
+
const confirmRevert = () => confirmHistoryAction("确定回滚该步骤吗?");
|
|
138
139
|
/**
|
|
139
140
|
* 「回滚」统一确认入口:可差异对比的步骤动态挂载 HistoryDiffDialog 走差异确认弹窗,
|
|
140
141
|
* 无法对比的步骤(add / remove / 多节点更新)回退到普通二次确认框。
|
|
@@ -143,30 +144,31 @@ var useHistoryRevert = (services, options = {}) => {
|
|
|
143
144
|
const runRevert = (payload, extra) => {
|
|
144
145
|
if (payload) return confirmRevertWithDiffDialog(payload, {
|
|
145
146
|
appContext,
|
|
146
|
-
extendState,
|
|
147
147
|
services,
|
|
148
|
-
...extra
|
|
148
|
+
...extra,
|
|
149
|
+
width: extra?.width ?? dialogWidth,
|
|
150
|
+
size: extra?.size
|
|
149
151
|
});
|
|
150
152
|
return confirmRevert();
|
|
151
153
|
};
|
|
152
154
|
const buildPageDiffPayload = (index) => buildDiffPayload({
|
|
153
155
|
category: "node",
|
|
154
|
-
groups: () => historyService.
|
|
155
|
-
getCurrent: (id) => editorService.getNodeById(id),
|
|
156
|
+
groups: () => services?.historyService.getHistoryGroups("page", services?.editorService.get("page")?.id) ?? [],
|
|
157
|
+
getCurrent: (id) => services?.editorService.getNodeById(id),
|
|
156
158
|
resolveType: (n, o) => n.type || o.type || "",
|
|
157
159
|
resolveLabel: (n, o) => n.name || o.name || n.type || o.type || ""
|
|
158
160
|
}, index);
|
|
159
161
|
const buildDataSourceDiffPayload = (id, index) => buildDiffPayload({
|
|
160
162
|
category: "data-source",
|
|
161
|
-
groups: () => historyService.
|
|
162
|
-
getCurrent: (id) => dataSourceService.getDataSourceById(`${id}`),
|
|
163
|
+
groups: () => services?.historyService.getHistoryGroups("dataSource") ?? [],
|
|
164
|
+
getCurrent: (id) => services?.dataSourceService.getDataSourceById(`${id}`),
|
|
163
165
|
resolveType: (n, o) => n.type || o.type || "base",
|
|
164
166
|
resolveLabel: (n, o, id) => n.title || o.title || `${id}`
|
|
165
167
|
}, index, id);
|
|
166
168
|
const buildCodeBlockDiffPayload = (id, index) => buildDiffPayload({
|
|
167
169
|
category: "code-block",
|
|
168
|
-
groups: () => historyService.
|
|
169
|
-
getCurrent: (id) => codeBlockService.getCodeContentById(id),
|
|
170
|
+
groups: () => services?.historyService.getHistoryGroups("codeBlock") ?? [],
|
|
171
|
+
getCurrent: (id) => services?.codeBlockService.getCodeContentById(id),
|
|
170
172
|
resolveLabel: (n, o, id) => n.name || o.name || `${id}`
|
|
171
173
|
}, index, id);
|
|
172
174
|
/**
|
|
@@ -176,45 +178,45 @@ var useHistoryRevert = (services, options = {}) => {
|
|
|
176
178
|
* add(回滚即删除)即使目标已不在,也已达成「删除」目的,不视为失败。
|
|
177
179
|
*/
|
|
178
180
|
const isPageRevertTargetMissing = (index) => {
|
|
179
|
-
const step = historyService.
|
|
181
|
+
const step = services?.historyService.getStepList("page", services?.editorService.get("page")?.id)[index]?.step;
|
|
180
182
|
if (!step) return false;
|
|
181
183
|
if (step.opType === "update") return (step.diff ?? []).some((item) => {
|
|
182
184
|
const id = item.newSchema?.id ?? item.oldSchema?.id;
|
|
183
|
-
return id !== void 0 && !editorService.getNodeById(id, false);
|
|
185
|
+
return id !== void 0 && !services?.editorService.getNodeById(id, false);
|
|
184
186
|
});
|
|
185
|
-
if (step.opType === "remove") return (step.diff ?? []).some((item) => item.parentId !== void 0 && !editorService.getNodeById(item.parentId, false));
|
|
187
|
+
if (step.opType === "remove") return (step.diff ?? []).some((item) => item.parentId !== void 0 && !services?.editorService.getNodeById(item.parentId, false));
|
|
186
188
|
return false;
|
|
187
189
|
};
|
|
188
190
|
/** 数据源 update 步骤回滚时,对应数据源必须仍存在(已删除则无处写回旧值)。 */
|
|
189
191
|
const isDataSourceRevertTargetMissing = (id, index) => {
|
|
190
|
-
const step = historyService.
|
|
191
|
-
return Boolean(step?.opType === "update" && !dataSourceService.getDataSourceById(`${id}`));
|
|
192
|
+
const step = services?.historyService.getStepList("dataSource", id)[index]?.step;
|
|
193
|
+
return Boolean(step?.opType === "update" && !services?.dataSourceService.getDataSourceById(`${id}`));
|
|
192
194
|
};
|
|
193
195
|
/** 代码块 update 步骤回滚时,对应代码块必须仍存在(已删除则无处写回旧值)。 */
|
|
194
196
|
const isCodeBlockRevertTargetMissing = (id, index) => {
|
|
195
|
-
const step = historyService.
|
|
196
|
-
return Boolean(step?.opType === "update" && !codeBlockService.getCodeContentById(id));
|
|
197
|
+
const step = services?.historyService.getStepList("codeBlock", id)[index]?.step;
|
|
198
|
+
return Boolean(step?.opType === "update" && !services?.codeBlockService.getCodeContentById(id));
|
|
197
199
|
};
|
|
198
200
|
const onPageRevert = (index) => {
|
|
199
201
|
if (isPageRevertTargetMissing(index)) {
|
|
200
202
|
showRevertTargetMissing();
|
|
201
203
|
return Promise.resolve(null);
|
|
202
204
|
}
|
|
203
|
-
return runRevert(buildPageDiffPayload(index)).then((result) => result ? editorService.revertPageStep(index) : null);
|
|
205
|
+
return runRevert(buildPageDiffPayload(index), {}).then((result) => result ? services?.editorService.revertPageStep(index) : null);
|
|
204
206
|
};
|
|
205
207
|
const onDataSourceRevert = (id, index) => {
|
|
206
208
|
if (isDataSourceRevertTargetMissing(id, index)) {
|
|
207
209
|
showRevertTargetMissing();
|
|
208
210
|
return Promise.resolve(null);
|
|
209
211
|
}
|
|
210
|
-
return runRevert(buildDataSourceDiffPayload(id, index)).then((result) => result ? dataSourceService.revert(id, index) : null);
|
|
212
|
+
return runRevert(buildDataSourceDiffPayload(id, index)).then((result) => result ? services?.dataSourceService.revert(id, index) : null);
|
|
211
213
|
};
|
|
212
214
|
const onCodeBlockRevert = (id, index) => {
|
|
213
215
|
if (isCodeBlockRevertTargetMissing(id, index)) {
|
|
214
216
|
showRevertTargetMissing();
|
|
215
217
|
return Promise.resolve(null);
|
|
216
218
|
}
|
|
217
|
-
return runRevert(buildCodeBlockDiffPayload(id, index)).then((result) => result ? codeBlockService.revert(id, index) : null);
|
|
219
|
+
return runRevert(buildCodeBlockDiffPayload(id, index)).then((result) => result ? services?.codeBlockService.revert(id, index) : null);
|
|
218
220
|
};
|
|
219
221
|
/**
|
|
220
222
|
* 「查看差异」:可差异对比的步骤(单实体 update)动态挂载只读 HistoryDiffDialog 展示前后值差异,
|
|
@@ -224,24 +226,24 @@ var useHistoryRevert = (services, options = {}) => {
|
|
|
224
226
|
const payload = buildPageDiffPayload(index);
|
|
225
227
|
if (payload) return viewHistoryDiffDialog(payload, {
|
|
226
228
|
appContext,
|
|
227
|
-
|
|
228
|
-
|
|
229
|
+
services,
|
|
230
|
+
width: dialogWidth
|
|
229
231
|
});
|
|
230
232
|
};
|
|
231
233
|
const onDataSourceDiff = (id, index) => {
|
|
232
234
|
const payload = buildDataSourceDiffPayload(id, index);
|
|
233
235
|
if (payload) return viewHistoryDiffDialog(payload, {
|
|
234
236
|
appContext,
|
|
235
|
-
|
|
236
|
-
|
|
237
|
+
services,
|
|
238
|
+
width: dialogWidth
|
|
237
239
|
});
|
|
238
240
|
};
|
|
239
241
|
const onCodeBlockDiff = (id, index) => {
|
|
240
242
|
const payload = buildCodeBlockDiffPayload(id, index);
|
|
241
243
|
if (payload) return viewHistoryDiffDialog(payload, {
|
|
242
244
|
appContext,
|
|
243
|
-
|
|
244
|
-
|
|
245
|
+
services,
|
|
246
|
+
width: dialogWidth
|
|
245
247
|
});
|
|
246
248
|
};
|
|
247
249
|
/**
|
|
@@ -267,7 +269,9 @@ var useHistoryRevert = (services, options = {}) => {
|
|
|
267
269
|
}
|
|
268
270
|
if (!await runRevert(revertOptions.diffPayload ?? null, {
|
|
269
271
|
loadConfig: revertOptions.loadConfig,
|
|
270
|
-
selfDiffFieldTypes: revertOptions.selfDiffFieldTypes
|
|
272
|
+
selfDiffFieldTypes: revertOptions.selfDiffFieldTypes,
|
|
273
|
+
width: revertOptions.width,
|
|
274
|
+
size: revertOptions.size
|
|
271
275
|
})) return null;
|
|
272
276
|
return await revertOptions.revert();
|
|
273
277
|
};
|
|
@@ -278,9 +282,10 @@ var useHistoryRevert = (services, options = {}) => {
|
|
|
278
282
|
const viewDiff = (payload, extra) => {
|
|
279
283
|
if (payload) return viewHistoryDiffDialog(payload, {
|
|
280
284
|
appContext,
|
|
281
|
-
extendState,
|
|
282
285
|
services,
|
|
283
|
-
...extra
|
|
286
|
+
...extra,
|
|
287
|
+
width: extra?.width ?? dialogWidth,
|
|
288
|
+
size: extra?.size
|
|
284
289
|
});
|
|
285
290
|
};
|
|
286
291
|
return {
|
|
@@ -16,7 +16,7 @@ var _hoisted_2 = {
|
|
|
16
16
|
key: 1,
|
|
17
17
|
style: { "width": "21px" }
|
|
18
18
|
};
|
|
19
|
-
var AddButton_vue_vue_type_script_setup_true_lang_default =
|
|
19
|
+
var AddButton_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
20
20
|
name: "MEditorPageBarAddButton",
|
|
21
21
|
__name: "AddButton",
|
|
22
22
|
setup(__props) {
|
|
@@ -13,7 +13,7 @@ var _hoisted_1 = { class: "m-editor-page-bar-tabs" };
|
|
|
13
13
|
var _hoisted_2 = ["data-page-id", "onClick"];
|
|
14
14
|
var _hoisted_3 = { class: "m-editor-page-bar-title" };
|
|
15
15
|
var _hoisted_4 = ["title"];
|
|
16
|
-
var PageBar_vue_vue_type_script_setup_true_lang_default =
|
|
16
|
+
var PageBar_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
17
17
|
name: "MEditorPageBar",
|
|
18
18
|
__name: "PageBar",
|
|
19
19
|
props: {
|
package/dist/es/layouts/page-bar/PageBarScrollContainer.vue_vue_type_script_setup_true_lang.js
CHANGED
|
@@ -13,7 +13,7 @@ var _hoisted_2 = {
|
|
|
13
13
|
class: "m-editor-page-bar-items",
|
|
14
14
|
ref: "itemsContainer"
|
|
15
15
|
};
|
|
16
|
-
var PageBarScrollContainer_vue_vue_type_script_setup_true_lang_default =
|
|
16
|
+
var PageBarScrollContainer_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
17
17
|
name: "MEditorPageBarScrollContainer",
|
|
18
18
|
__name: "PageBarScrollContainer",
|
|
19
19
|
props: {
|
|
@@ -11,7 +11,7 @@ var _hoisted_1 = {
|
|
|
11
11
|
};
|
|
12
12
|
var _hoisted_2 = { class: "page-bar-popover-wrapper" };
|
|
13
13
|
var _hoisted_3 = { class: "page-bar-popover-inner" };
|
|
14
|
-
var PageList_vue_vue_type_script_setup_true_lang_default =
|
|
14
|
+
var PageList_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
15
15
|
name: "MEditorPageList",
|
|
16
16
|
__name: "PageList",
|
|
17
17
|
props: { list: {} },
|
|
@@ -5,13 +5,13 @@ import { Teleport, createBlock, createCommentVNode, createElementBlock, createVN
|
|
|
5
5
|
import { Search } from "@element-plus/icons-vue";
|
|
6
6
|
//#region packages/editor/src/layouts/page-bar/Search.vue?vue&type=script&setup=true&lang.ts
|
|
7
7
|
var _hoisted_1 = { class: "m-editor-page-bar-item m-editor-page-bar-item-icon m-editor-page-bar-search" };
|
|
8
|
-
var Search_vue_vue_type_script_setup_true_lang_default =
|
|
8
|
+
var Search_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
9
9
|
__name: "Search",
|
|
10
10
|
props: {
|
|
11
11
|
"query": {},
|
|
12
12
|
"queryModifiers": {}
|
|
13
13
|
},
|
|
14
|
-
emits:
|
|
14
|
+
emits: /*@__PURE__*/ mergeModels(["search"], ["update:query"]),
|
|
15
15
|
setup(__props, { emit: __emit }) {
|
|
16
16
|
const emit = __emit;
|
|
17
17
|
const query = useModel(__props, "query");
|