@tmagic/editor 1.0.0-rc.3 → 1.0.0-rc.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 (58) hide show
  1. package/coverage/clover.xml +361 -324
  2. package/coverage/coverage-final.json +7 -7
  3. package/coverage/lcov-report/index.html +39 -39
  4. package/coverage/lcov-report/src/Editor.vue.html +1 -1
  5. package/coverage/lcov-report/src/components/ContentMenu.vue.html +11 -11
  6. package/coverage/lcov-report/src/components/Icon.vue.html +2 -2
  7. package/coverage/lcov-report/src/components/ScrollViewer.vue.html +1 -1
  8. package/coverage/lcov-report/src/components/ToolButton.vue.html +25 -25
  9. package/coverage/lcov-report/src/components/index.html +5 -5
  10. package/coverage/lcov-report/src/index.html +1 -1
  11. package/coverage/lcov-report/src/layouts/AddPageBox.vue.html +1 -1
  12. package/coverage/lcov-report/src/layouts/Framework.vue.html +1 -1
  13. package/coverage/lcov-report/src/layouts/NavMenu.vue.html +1 -1
  14. package/coverage/lcov-report/src/layouts/PropsPanel.vue.html +1 -1
  15. package/coverage/lcov-report/src/layouts/Resizer.vue.html +1 -1
  16. package/coverage/lcov-report/src/layouts/index.html +1 -1
  17. package/coverage/lcov-report/src/layouts/sidebar/ComponentListPanel.vue.html +1 -1
  18. package/coverage/lcov-report/src/layouts/sidebar/LayerMenu.vue.html +17 -17
  19. package/coverage/lcov-report/src/layouts/sidebar/LayerPanel.vue.html +1 -1
  20. package/coverage/lcov-report/src/layouts/sidebar/Sidebar.vue.html +1 -1
  21. package/coverage/lcov-report/src/layouts/sidebar/TabPane.vue.html +2 -2
  22. package/coverage/lcov-report/src/layouts/sidebar/index.html +19 -19
  23. package/coverage/lcov-report/src/layouts/workspace/PageBar.vue.html +1 -1
  24. package/coverage/lcov-report/src/layouts/workspace/Stage.vue.html +1 -1
  25. package/coverage/lcov-report/src/layouts/workspace/ViewerMenu.vue.html +69 -33
  26. package/coverage/lcov-report/src/layouts/workspace/Workspace.vue.html +79 -34
  27. package/coverage/lcov-report/src/layouts/workspace/index.html +28 -28
  28. package/coverage/lcov-report/src/services/BaseService.ts.html +2 -2
  29. package/coverage/lcov-report/src/services/componentList.ts.html +1 -1
  30. package/coverage/lcov-report/src/services/editor.ts.html +100 -10
  31. package/coverage/lcov-report/src/services/events.ts.html +1 -1
  32. package/coverage/lcov-report/src/services/history.ts.html +1 -1
  33. package/coverage/lcov-report/src/services/index.html +15 -15
  34. package/coverage/lcov-report/src/services/props.ts.html +1 -1
  35. package/coverage/lcov-report/src/services/ui.ts.html +1 -1
  36. package/coverage/lcov-report/src/type.ts.html +1 -1
  37. package/coverage/lcov-report/src/utils/compose.ts.html +1 -1
  38. package/coverage/lcov-report/src/utils/config.ts.html +1 -1
  39. package/coverage/lcov-report/src/utils/editor.ts.html +1 -1
  40. package/coverage/lcov-report/src/utils/index.html +1 -1
  41. package/coverage/lcov-report/src/utils/index.ts.html +1 -1
  42. package/coverage/lcov-report/src/utils/logger.ts.html +1 -1
  43. package/coverage/lcov-report/src/utils/props.ts.html +1 -1
  44. package/coverage/lcov-report/src/utils/scroll-viewer.ts.html +1 -1
  45. package/coverage/lcov-report/src/utils/undo-redo.ts.html +1 -1
  46. package/coverage/lcov.info +782 -683
  47. package/dist/tmagic-editor.es.js +75 -32
  48. package/dist/tmagic-editor.es.js.map +1 -1
  49. package/dist/tmagic-editor.umd.js +74 -31
  50. package/dist/tmagic-editor.umd.js.map +1 -1
  51. package/dist/types/src/services/BaseService.d.ts +1 -1
  52. package/package.json +7 -7
  53. package/src/components/ContentMenu.vue +1 -1
  54. package/src/layouts/sidebar/TabPane.vue +1 -1
  55. package/src/layouts/workspace/ViewerMenu.vue +14 -2
  56. package/src/layouts/workspace/Workspace.vue +38 -23
  57. package/src/services/BaseService.ts +1 -1
  58. package/src/services/editor.ts +31 -1
@@ -1,4 +1,4 @@
1
- import { defineComponent, computed, resolveComponent, openBlock, createBlock, normalizeStyle, ref, watchEffect, inject, markRaw, createElementBlock, createVNode, withCtx, withModifiers, createCommentVNode, createTextVNode, toDisplayString, watch, onMounted, onUnmounted, reactive, toRaw, createElementVNode, renderSlot, Fragment, normalizeClass, resolveDynamicComponent, renderList, normalizeProps, mergeProps, getCurrentInstance, nextTick, withDirectives, Teleport, vShow, toHandlers, createSlots, provide } from 'vue';
1
+ import { defineComponent, computed, resolveComponent, openBlock, createBlock, normalizeStyle, ref, watchEffect, inject, markRaw, createElementBlock, createVNode, withCtx, withModifiers, createCommentVNode, createTextVNode, toDisplayString, watch, onMounted, onUnmounted, reactive, toRaw, createElementVNode, renderSlot, Fragment, normalizeClass, resolveDynamicComponent, renderList, normalizeProps, mergeProps, getCurrentInstance, nextTick, Teleport, toHandlers, createSlots, provide } from 'vue';
2
2
  import serialize from 'serialize-javascript';
3
3
  import { Delete, Pointer, Close, Plus, Edit, ArrowDown, Grid, ScaleToOriginal, ZoomOut, ZoomIn, Right, Back, Files, DocumentCopy, Coin, ArrowLeftBold, ArrowRightBold, CaretBottom, Top, Bottom } from '@element-plus/icons';
4
4
  import { throttle, cloneDeep, mergeWith, random } from 'lodash-es';
@@ -945,6 +945,13 @@ class Editor$1 extends BaseService {
945
945
  } else {
946
946
  historyService.empty();
947
947
  }
948
+ if (node?.id) {
949
+ this.get("stage")?.renderer.runtime?.getApp?.()?.emit("editor:select", {
950
+ node,
951
+ page,
952
+ parent
953
+ }, getNodePath(node.id, this.get("root").items));
954
+ }
948
955
  this.emit("select", node);
949
956
  return node;
950
957
  }
@@ -1133,6 +1140,9 @@ class Editor$1 extends BaseService {
1133
1140
  ...position
1134
1141
  };
1135
1142
  }
1143
+ if (isPage(config)) {
1144
+ config.name = generatePageNameByApp(this.get("root"));
1145
+ }
1136
1146
  return await this.add(config);
1137
1147
  }
1138
1148
  async alignCenter(config2) {
@@ -1142,7 +1152,17 @@ class Editor$1 extends BaseService {
1142
1152
  if (layout === Layout.RELATIVE) {
1143
1153
  return;
1144
1154
  }
1145
- if (parent.style?.width && node.style?.width) {
1155
+ if (!node.style)
1156
+ return;
1157
+ const stage = this.get("stage");
1158
+ const doc = stage?.renderer.contentWindow?.document;
1159
+ if (doc) {
1160
+ const parentEl = doc.getElementById(`${parent.id}`);
1161
+ const el = doc.getElementById(`${node.id}`);
1162
+ if (parentEl && el) {
1163
+ node.style.left = (parentEl.clientWidth - el.clientWidth) / 2;
1164
+ }
1165
+ } else if (parent.style && isNumber(parent.style?.width) && isNumber(node.style?.width)) {
1146
1166
  node.style.left = (parent.style.width - node.style.width) / 2;
1147
1167
  }
1148
1168
  await this.update(node);
@@ -2288,7 +2308,7 @@ const _sfc_main$a = defineComponent({
2288
2308
  function _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) {
2289
2309
  const _component_tool_button = resolveComponent("tool-button");
2290
2310
  const _component_content_menu = resolveComponent("content-menu", true);
2291
- return _ctx.menuData.length ? withDirectives((openBlock(), createElementBlock("div", {
2311
+ return _ctx.menuData.length && _ctx.visible ? (openBlock(), createElementBlock("div", {
2292
2312
  key: 0,
2293
2313
  class: "magic-editor-content-menu",
2294
2314
  ref: "menu",
@@ -2312,9 +2332,7 @@ function _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) {
2312
2332
  "menu-data": _ctx.subMenuData
2313
2333
  }, null, 8, ["menu-data"])
2314
2334
  ]))
2315
- ], 4)), [
2316
- [vShow, _ctx.visible]
2317
- ]) : createCommentVNode("", true);
2335
+ ], 4)) : createCommentVNode("", true);
2318
2336
  }
2319
2337
  var ContentMenu = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["render", _sfc_render$a]]);
2320
2338
 
@@ -2614,7 +2632,7 @@ const _sfc_main$7 = defineComponent({
2614
2632
  components: { MIcon },
2615
2633
  props: {
2616
2634
  data: {
2617
- type: Object
2635
+ type: [Object, String]
2618
2636
  }
2619
2637
  },
2620
2638
  setup(props) {
@@ -3217,8 +3235,17 @@ const _sfc_main$3 = defineComponent({
3217
3235
  text: "\u7C98\u8D34",
3218
3236
  display: () => canPaste.value,
3219
3237
  handler: () => {
3220
- const top = menu.value?.$el.offsetTop || 0;
3221
- const left = menu.value?.$el.offsetLeft || 0;
3238
+ const stage = editorService?.get("stage");
3239
+ const rect = menu.value?.$el.getBoundingClientRect();
3240
+ const parentRect = stage?.container?.getBoundingClientRect();
3241
+ let left = (rect?.left || 0) - (parentRect?.left || 0);
3242
+ let top = (rect?.top || 0) - (parentRect?.top || 0);
3243
+ if (node.value?.items && stage) {
3244
+ const parentEl = stage.renderer.contentWindow?.document.getElementById(`${node.value.id}`);
3245
+ const parentElRect = parentEl?.getBoundingClientRect();
3246
+ left = left - (parentElRect?.left || 0);
3247
+ top = top - (parentElRect?.top || 0);
3248
+ }
3222
3249
  editorService?.paste({ left, top });
3223
3250
  }
3224
3251
  },
@@ -3515,10 +3542,7 @@ const _sfc_main$1 = defineComponent({
3515
3542
  keycon = new KeyController(workspace.value);
3516
3543
  const isMac = /mac os x/.test(navigator.userAgent.toLowerCase());
3517
3544
  const ctrl = isMac ? "meta" : "ctrl";
3518
- keycon.keydown((e) => {
3519
- console.log(e);
3520
- e.inputEvent.preventDefault();
3521
- }).keyup("delete", (e) => {
3545
+ keycon.keyup("delete", (e) => {
3522
3546
  e.inputEvent.preventDefault();
3523
3547
  if (!node.value || isPage(node.value))
3524
3548
  return;
@@ -3528,46 +3552,65 @@ const _sfc_main$1 = defineComponent({
3528
3552
  if (!node.value || isPage(node.value))
3529
3553
  return;
3530
3554
  services?.editorService.remove(node.value);
3531
- }).keydown([ctrl, "c"], () => {
3555
+ }).keydown([ctrl, "c"], (e) => {
3556
+ e.inputEvent.preventDefault();
3532
3557
  node.value && services?.editorService.copy(node.value);
3533
- }).keydown([ctrl, "v"], () => {
3558
+ }).keydown([ctrl, "v"], (e) => {
3559
+ e.inputEvent.preventDefault();
3534
3560
  node.value && services?.editorService.paste();
3535
- }).keydown([ctrl, "x"], () => {
3561
+ }).keydown([ctrl, "x"], (e) => {
3562
+ e.inputEvent.preventDefault();
3536
3563
  if (!node.value || isPage(node.value))
3537
3564
  return;
3538
3565
  services?.editorService.copy(node.value);
3539
3566
  services?.editorService.remove(node.value);
3540
- }).keydown([ctrl, "z"], () => {
3567
+ }).keydown([ctrl, "z"], (e) => {
3568
+ e.inputEvent.preventDefault();
3541
3569
  services?.editorService.undo();
3542
- }).keydown([ctrl, "shift", "z"], () => {
3570
+ }).keydown([ctrl, "shift", "z"], (e) => {
3571
+ e.inputEvent.preventDefault();
3543
3572
  services?.editorService.redo();
3544
- }).keydown("up", () => {
3573
+ }).keydown("up", (e) => {
3574
+ e.inputEvent.preventDefault();
3545
3575
  services?.editorService.move(0, -1);
3546
- }).keydown("down", () => {
3576
+ }).keydown("down", (e) => {
3577
+ e.inputEvent.preventDefault();
3547
3578
  services?.editorService.move(0, 1);
3548
- }).keydown("left", () => {
3579
+ }).keydown("left", (e) => {
3580
+ e.inputEvent.preventDefault();
3549
3581
  services?.editorService.move(-1, 0);
3550
- }).keydown("right", () => {
3582
+ }).keydown("right", (e) => {
3583
+ e.inputEvent.preventDefault();
3551
3584
  services?.editorService.move(1, 0);
3552
- }).keydown([ctrl, "up"], () => {
3585
+ }).keydown([ctrl, "up"], (e) => {
3586
+ e.inputEvent.preventDefault();
3553
3587
  services?.editorService.move(0, -10);
3554
- }).keydown([ctrl, "down"], () => {
3588
+ }).keydown([ctrl, "down"], (e) => {
3589
+ e.inputEvent.preventDefault();
3555
3590
  services?.editorService.move(0, 10);
3556
- }).keydown([ctrl, "left"], () => {
3591
+ }).keydown([ctrl, "left"], (e) => {
3592
+ e.inputEvent.preventDefault();
3557
3593
  services?.editorService.move(-10, 0);
3558
- }).keydown([ctrl, "right"], () => {
3594
+ }).keydown([ctrl, "right"], (e) => {
3595
+ e.inputEvent.preventDefault();
3559
3596
  services?.editorService.move(10, 0);
3560
- }).keydown("tab", () => {
3597
+ }).keydown("tab", (e) => {
3598
+ e.inputEvent.preventDefault();
3561
3599
  services?.editorService.selectNextNode();
3562
- }).keydown([ctrl, "tab"], () => {
3600
+ }).keydown([ctrl, "tab"], (e) => {
3601
+ e.inputEvent.preventDefault();
3563
3602
  services?.editorService.selectNextPage();
3564
- }).keydown([ctrl, "="], () => {
3603
+ }).keydown([ctrl, "="], (e) => {
3604
+ e.inputEvent.preventDefault();
3565
3605
  services?.uiService.zoom(0.1);
3566
- }).keydown([ctrl, "numpadplus"], () => {
3606
+ }).keydown([ctrl, "numpadplus"], (e) => {
3607
+ e.inputEvent.preventDefault();
3567
3608
  services?.uiService.zoom(0.1);
3568
- }).keydown([ctrl, "-"], () => {
3609
+ }).keydown([ctrl, "-"], (e) => {
3610
+ e.inputEvent.preventDefault();
3569
3611
  services?.uiService.zoom(-0.1);
3570
- }).keydown([ctrl, "numpad-"], () => {
3612
+ }).keydown([ctrl, "numpad-"], (e) => {
3613
+ e.inputEvent.preventDefault();
3571
3614
  services?.uiService.zoom(-0.1);
3572
3615
  });
3573
3616
  });