@tmagic/editor 1.8.0-beta.3 → 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.
- package/dist/es/components/CompareForm.vue_vue_type_script_setup_true_lang.js +15 -1
- package/dist/es/hooks/use-code-block-edit.js +6 -3
- package/dist/es/hooks/use-data-source-edit.js +5 -2
- package/dist/es/hooks/use-stage.js +6 -3
- package/dist/es/layouts/NavMenu.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 +6 -2
- package/dist/es/layouts/history-list/BucketTab.vue_vue_type_script_setup_true_lang.js +3 -0
- package/dist/es/layouts/history-list/GroupRow.vue_vue_type_script_setup_true_lang.js +42 -29
- package/dist/es/layouts/history-list/HistoryDiffDialog.vue_vue_type_script_setup_true_lang.js +4 -2
- package/dist/es/layouts/history-list/HistoryListPanel.vue_vue_type_script_setup_true_lang.js +5 -1
- package/dist/es/layouts/history-list/PageTab.vue_vue_type_script_setup_true_lang.js +5 -2
- package/dist/es/layouts/history-list/composables.js +53 -1
- package/dist/es/layouts/props-panel/PropsPanel.vue_vue_type_script_setup_true_lang.js +5 -1
- package/dist/es/layouts/sidebar/ComponentListPanel.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/layouts/sidebar/code-block/CodeBlockList.vue_vue_type_script_setup_true_lang.js +3 -3
- package/dist/es/layouts/sidebar/code-block/CodeBlockListPanel.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/layouts/sidebar/code-block/useContentMenu.js +1 -1
- package/dist/es/layouts/sidebar/data-source/DataSourceListPanel.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/layouts/sidebar/data-source/useContentMenu.js +1 -1
- package/dist/es/layouts/sidebar/layer/LayerMenu.vue_vue_type_script_setup_true_lang.js +5 -5
- package/dist/es/layouts/sidebar/layer/LayerNodeTool.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/layouts/workspace/viewer/Stage.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/services/codeBlock.js +25 -10
- package/dist/es/services/dataSource.js +24 -10
- package/dist/es/services/editor.js +98 -46
- package/dist/es/services/history.js +2 -0
- package/dist/es/services/keybinding.js +3 -3
- package/dist/es/style.css +16 -4
- package/dist/es/utils/content-menu.js +17 -9
- package/dist/style.css +16 -4
- package/dist/tmagic-editor.umd.cjs +343 -144
- package/package.json +7 -7
- package/src/components/CompareForm.vue +19 -1
- package/src/hooks/use-code-block-edit.ts +4 -3
- package/src/hooks/use-data-source-edit.ts +2 -2
- package/src/hooks/use-stage.ts +3 -3
- package/src/layouts/NavMenu.vue +1 -1
- package/src/layouts/history-list/Bucket.vue +6 -2
- package/src/layouts/history-list/BucketTab.vue +3 -0
- package/src/layouts/history-list/GroupRow.vue +20 -3
- package/src/layouts/history-list/HistoryDiffDialog.vue +2 -1
- package/src/layouts/history-list/HistoryListPanel.vue +4 -0
- package/src/layouts/history-list/PageTab.vue +5 -1
- package/src/layouts/history-list/composables.ts +60 -0
- package/src/layouts/props-panel/PropsPanel.vue +5 -1
- package/src/layouts/sidebar/ComponentListPanel.vue +9 -5
- package/src/layouts/sidebar/code-block/CodeBlockList.vue +5 -5
- package/src/layouts/sidebar/code-block/CodeBlockListPanel.vue +1 -1
- package/src/layouts/sidebar/code-block/useContentMenu.ts +1 -1
- package/src/layouts/sidebar/data-source/DataSourceListPanel.vue +1 -1
- package/src/layouts/sidebar/data-source/useContentMenu.ts +1 -1
- package/src/layouts/sidebar/layer/LayerMenu.vue +19 -11
- package/src/layouts/sidebar/layer/LayerNodeTool.vue +7 -4
- package/src/layouts/workspace/viewer/Stage.vue +1 -1
- package/src/layouts/workspace/viewer/ViewerMenu.vue +8 -8
- package/src/services/codeBlock.ts +33 -9
- package/src/services/dataSource.ts +30 -8
- package/src/services/editor.ts +111 -34
- package/src/services/history.ts +7 -0
- package/src/services/keybinding.ts +3 -3
- package/src/theme/history-list-panel.scss +15 -1
- package/src/theme/props-panel.scss +3 -3
- package/src/type.ts +58 -2
- package/src/utils/content-menu.ts +18 -9
- package/types/index.d.ts +96 -25
|
@@ -4,7 +4,12 @@ import { NodeType, cloneDeep } from "@tmagic/core";
|
|
|
4
4
|
import { computed, markRaw } from "vue";
|
|
5
5
|
import { CopyDocument, Delete, DocumentCopy } from "@element-plus/icons-vue";
|
|
6
6
|
//#region packages/editor/src/utils/content-menu.ts
|
|
7
|
-
|
|
7
|
+
/**
|
|
8
|
+
* 共享的右键菜单项构造器(画布 ViewerMenu 与图层树 LayerMenu 共用)。
|
|
9
|
+
* `historySource` 用于标记本次操作的途径,调用方按所在面板传入:
|
|
10
|
+
* 画布传 `'stage-contextmenu'`,树形面板传 `'tree-contextmenu'`。
|
|
11
|
+
*/
|
|
12
|
+
var useDeleteMenu = (historySource) => ({
|
|
8
13
|
type: "button",
|
|
9
14
|
text: "删除",
|
|
10
15
|
icon: Delete,
|
|
@@ -14,7 +19,7 @@ var useDeleteMenu = () => ({
|
|
|
14
19
|
},
|
|
15
20
|
handler: ({ editorService }) => {
|
|
16
21
|
const nodes = editorService.get("nodes");
|
|
17
|
-
nodes && editorService.remove(nodes);
|
|
22
|
+
nodes && editorService.remove(nodes, { historySource });
|
|
18
23
|
}
|
|
19
24
|
});
|
|
20
25
|
var useCopyMenu = () => ({
|
|
@@ -26,7 +31,7 @@ var useCopyMenu = () => ({
|
|
|
26
31
|
nodes && editorService?.copy(nodes);
|
|
27
32
|
}
|
|
28
33
|
});
|
|
29
|
-
var usePasteMenu = (menu) => ({
|
|
34
|
+
var usePasteMenu = (historySource, menu) => ({
|
|
30
35
|
type: "button",
|
|
31
36
|
text: "粘贴",
|
|
32
37
|
icon: markRaw(DocumentCopy),
|
|
@@ -43,17 +48,20 @@ var usePasteMenu = (menu) => ({
|
|
|
43
48
|
editorService.paste({
|
|
44
49
|
left: initialLeft,
|
|
45
50
|
top: initialTop
|
|
46
|
-
});
|
|
47
|
-
} else editorService.paste();
|
|
51
|
+
}, void 0, { historySource });
|
|
52
|
+
} else editorService.paste(void 0, void 0, { historySource });
|
|
48
53
|
}
|
|
49
54
|
});
|
|
50
|
-
var moveTo = async (id, { editorService }) => {
|
|
55
|
+
var moveTo = async (id, { editorService }, historySource) => {
|
|
51
56
|
const nodes = editorService.get("nodes") || [];
|
|
52
57
|
const parent = editorService.getNodeById(id);
|
|
53
58
|
if (!parent || nodes.length === 0) return;
|
|
54
|
-
await editorService.moveToContainer(cloneDeep(nodes), parent.id, {
|
|
59
|
+
await editorService.moveToContainer(cloneDeep(nodes), parent.id, {
|
|
60
|
+
doNotSwitchPage: true,
|
|
61
|
+
historySource
|
|
62
|
+
});
|
|
55
63
|
};
|
|
56
|
-
var useMoveToMenu = ({ editorService }) => {
|
|
64
|
+
var useMoveToMenu = ({ editorService }, historySource) => {
|
|
57
65
|
return {
|
|
58
66
|
type: "button",
|
|
59
67
|
text: "移动至",
|
|
@@ -66,7 +74,7 @@ var useMoveToMenu = ({ editorService }) => {
|
|
|
66
74
|
text: `${page.name}(${page.id})`,
|
|
67
75
|
type: "button",
|
|
68
76
|
handler: (services) => {
|
|
69
|
-
moveTo(page.id, services);
|
|
77
|
+
moveTo(page.id, services, historySource);
|
|
70
78
|
}
|
|
71
79
|
}))
|
|
72
80
|
};
|
package/dist/style.css
CHANGED
|
@@ -592,7 +592,7 @@ fieldset.m-fieldset .m-form-tip {
|
|
|
592
592
|
position: absolute;
|
|
593
593
|
top: 4px;
|
|
594
594
|
right: 4px;
|
|
595
|
-
z-index:
|
|
595
|
+
z-index: 2;
|
|
596
596
|
display: flex;
|
|
597
597
|
align-items: center;
|
|
598
598
|
height: 40px;
|
|
@@ -804,6 +804,18 @@ fieldset.m-fieldset .m-form-tip {
|
|
|
804
804
|
text-overflow: ellipsis;
|
|
805
805
|
white-space: nowrap;
|
|
806
806
|
}
|
|
807
|
+
.m-editor-history-list-popover .m-editor-history-list-item-source {
|
|
808
|
+
flex: 0 0 auto;
|
|
809
|
+
padding: 0 6px;
|
|
810
|
+
border: 1px solid #dcdfe6;
|
|
811
|
+
border-radius: 8px;
|
|
812
|
+
font-size: 10px;
|
|
813
|
+
line-height: 14px;
|
|
814
|
+
color: #909399;
|
|
815
|
+
background-color: #f4f4f5;
|
|
816
|
+
white-space: nowrap;
|
|
817
|
+
font-weight: 400;
|
|
818
|
+
}
|
|
807
819
|
.m-editor-history-list-popover .m-editor-history-list-item-merge {
|
|
808
820
|
flex: 0 0 auto;
|
|
809
821
|
padding: 0 8px;
|
|
@@ -1452,7 +1464,7 @@ fieldset.m-fieldset .m-form-tip {
|
|
|
1452
1464
|
position: absolute;
|
|
1453
1465
|
right: 15px;
|
|
1454
1466
|
bottom: 15px;
|
|
1455
|
-
z-index:
|
|
1467
|
+
z-index: 32;
|
|
1456
1468
|
opacity: 0.5;
|
|
1457
1469
|
}
|
|
1458
1470
|
.m-editor-props-panel .m-editor-props-panel-src-icon:hover {
|
|
@@ -1462,7 +1474,7 @@ fieldset.m-fieldset .m-form-tip {
|
|
|
1462
1474
|
position: absolute;
|
|
1463
1475
|
right: 15px;
|
|
1464
1476
|
bottom: 60px;
|
|
1465
|
-
z-index:
|
|
1477
|
+
z-index: 31;
|
|
1466
1478
|
opacity: 0.5;
|
|
1467
1479
|
}
|
|
1468
1480
|
.m-editor-props-panel .m-editor-props-panel-style-icon:hover {
|
|
@@ -1472,7 +1484,7 @@ fieldset.m-fieldset .m-form-tip {
|
|
|
1472
1484
|
position: absolute;
|
|
1473
1485
|
left: 0;
|
|
1474
1486
|
top: 0;
|
|
1475
|
-
z-index:
|
|
1487
|
+
z-index: 31;
|
|
1476
1488
|
}
|
|
1477
1489
|
.m-editor-props-panel .m-editor-resizer {
|
|
1478
1490
|
position: absolute;
|