@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.
Files changed (66) hide show
  1. package/dist/es/components/CompareForm.vue_vue_type_script_setup_true_lang.js +15 -1
  2. package/dist/es/hooks/use-code-block-edit.js +6 -3
  3. package/dist/es/hooks/use-data-source-edit.js +5 -2
  4. package/dist/es/hooks/use-stage.js +6 -3
  5. package/dist/es/layouts/NavMenu.vue_vue_type_script_setup_true_lang.js +1 -1
  6. package/dist/es/layouts/history-list/Bucket.vue_vue_type_script_setup_true_lang.js +6 -2
  7. package/dist/es/layouts/history-list/BucketTab.vue_vue_type_script_setup_true_lang.js +3 -0
  8. package/dist/es/layouts/history-list/GroupRow.vue_vue_type_script_setup_true_lang.js +42 -29
  9. package/dist/es/layouts/history-list/HistoryDiffDialog.vue_vue_type_script_setup_true_lang.js +4 -2
  10. package/dist/es/layouts/history-list/HistoryListPanel.vue_vue_type_script_setup_true_lang.js +5 -1
  11. package/dist/es/layouts/history-list/PageTab.vue_vue_type_script_setup_true_lang.js +5 -2
  12. package/dist/es/layouts/history-list/composables.js +53 -1
  13. package/dist/es/layouts/props-panel/PropsPanel.vue_vue_type_script_setup_true_lang.js +5 -1
  14. package/dist/es/layouts/sidebar/ComponentListPanel.vue_vue_type_script_setup_true_lang.js +1 -1
  15. package/dist/es/layouts/sidebar/code-block/CodeBlockList.vue_vue_type_script_setup_true_lang.js +3 -3
  16. package/dist/es/layouts/sidebar/code-block/CodeBlockListPanel.vue_vue_type_script_setup_true_lang.js +1 -1
  17. package/dist/es/layouts/sidebar/code-block/useContentMenu.js +1 -1
  18. package/dist/es/layouts/sidebar/data-source/DataSourceListPanel.vue_vue_type_script_setup_true_lang.js +1 -1
  19. package/dist/es/layouts/sidebar/data-source/useContentMenu.js +1 -1
  20. package/dist/es/layouts/sidebar/layer/LayerMenu.vue_vue_type_script_setup_true_lang.js +5 -5
  21. package/dist/es/layouts/sidebar/layer/LayerNodeTool.vue_vue_type_script_setup_true_lang.js +1 -1
  22. package/dist/es/layouts/workspace/viewer/Stage.vue_vue_type_script_setup_true_lang.js +1 -1
  23. package/dist/es/layouts/workspace/viewer/ViewerMenu.vue_vue_type_script_setup_true_lang.js +8 -8
  24. package/dist/es/services/codeBlock.js +25 -10
  25. package/dist/es/services/dataSource.js +24 -10
  26. package/dist/es/services/editor.js +98 -46
  27. package/dist/es/services/history.js +2 -0
  28. package/dist/es/services/keybinding.js +3 -3
  29. package/dist/es/style.css +16 -4
  30. package/dist/es/utils/content-menu.js +17 -9
  31. package/dist/style.css +16 -4
  32. package/dist/tmagic-editor.umd.cjs +343 -144
  33. package/package.json +7 -7
  34. package/src/components/CompareForm.vue +19 -1
  35. package/src/hooks/use-code-block-edit.ts +4 -3
  36. package/src/hooks/use-data-source-edit.ts +2 -2
  37. package/src/hooks/use-stage.ts +3 -3
  38. package/src/layouts/NavMenu.vue +1 -1
  39. package/src/layouts/history-list/Bucket.vue +6 -2
  40. package/src/layouts/history-list/BucketTab.vue +3 -0
  41. package/src/layouts/history-list/GroupRow.vue +20 -3
  42. package/src/layouts/history-list/HistoryDiffDialog.vue +2 -1
  43. package/src/layouts/history-list/HistoryListPanel.vue +4 -0
  44. package/src/layouts/history-list/PageTab.vue +5 -1
  45. package/src/layouts/history-list/composables.ts +60 -0
  46. package/src/layouts/props-panel/PropsPanel.vue +5 -1
  47. package/src/layouts/sidebar/ComponentListPanel.vue +9 -5
  48. package/src/layouts/sidebar/code-block/CodeBlockList.vue +5 -5
  49. package/src/layouts/sidebar/code-block/CodeBlockListPanel.vue +1 -1
  50. package/src/layouts/sidebar/code-block/useContentMenu.ts +1 -1
  51. package/src/layouts/sidebar/data-source/DataSourceListPanel.vue +1 -1
  52. package/src/layouts/sidebar/data-source/useContentMenu.ts +1 -1
  53. package/src/layouts/sidebar/layer/LayerMenu.vue +19 -11
  54. package/src/layouts/sidebar/layer/LayerNodeTool.vue +7 -4
  55. package/src/layouts/workspace/viewer/Stage.vue +1 -1
  56. package/src/layouts/workspace/viewer/ViewerMenu.vue +8 -8
  57. package/src/services/codeBlock.ts +33 -9
  58. package/src/services/dataSource.ts +30 -8
  59. package/src/services/editor.ts +111 -34
  60. package/src/services/history.ts +7 -0
  61. package/src/services/keybinding.ts +3 -3
  62. package/src/theme/history-list-panel.scss +15 -1
  63. package/src/theme/props-panel.scss +3 -3
  64. package/src/type.ts +58 -2
  65. package/src/utils/content-menu.ts +18 -9
  66. 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
- var useDeleteMenu = () => ({
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, { doNotSwitchPage: true });
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: 1;
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: 30;
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: 30;
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: 10;
1487
+ z-index: 31;
1476
1488
  }
1477
1489
  .m-editor-props-panel .m-editor-resizer {
1478
1490
  position: absolute;