@tmagic/stage 1.5.0-beta.9 → 1.5.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.
@@ -43,6 +43,7 @@ const SELECTED_CLASS = "tmagic-stage-selected-area";
43
43
  var AbleActionEventType = /* @__PURE__ */ ((AbleActionEventType2) => {
44
44
  AbleActionEventType2["SELECT_PARENT"] = "select-parent";
45
45
  AbleActionEventType2["REMOVE"] = "remove";
46
+ AbleActionEventType2["RERENDER"] = "rerender";
46
47
  return AbleActionEventType2;
47
48
  })(AbleActionEventType || {});
48
49
  var ContainerHighlightType = /* @__PURE__ */ ((ContainerHighlightType2) => {
@@ -603,21 +604,9 @@ class DragResizeHelper {
603
604
  el.after(ghostEl);
604
605
  return ghostEl;
605
606
  }
606
- setGhostElChildrenId(el) {
607
- for (const child of Array.from(el.children)) {
608
- const el2 = child;
609
- const id = getIdFromEl()(el2);
610
- if (id) {
611
- setIdToEl()(el2, `${GHOST_EL_ID_PREFIX}${id}`);
612
- }
613
- if (child.children.length) {
614
- this.setGhostElChildrenId(child);
615
- }
616
- }
617
- }
618
607
  }
619
608
 
620
- const ableCss = ".moveable-button {\n width: 20px;\n height: 20px;\n background: #4af;\n border-radius: 4px;\n appearance: none;\n border: 0;\n color: white;\n font-size: 12px;\n font-weight: bold;\n margin-left: 2px;\n position: relative;\n}\n.moveable-remove-button:before, .moveable-remove-button:after {\n content: \"\";\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%) rotate(45deg);\n width: 14px;\n height: 2px;\n background: #fff;\n border-radius: 1px;\n cursor: pointer;\n}\n.moveable-remove-button:after {\n transform: translate(-50%, -50%) rotate(-45deg);\n}\n\n.moveable-select-parent-arrow-top-icon {\n transform: rotateZ(-45deg);\n width: 4px;\n height: 4px;\n border-color: #fff;\n border-width: 2px 2px 0 0;\n border-style: solid;\n position: absolute;\n left: 4px;\n top: 4px;\n}\n\n.moveable-select-parent-arrow-body-icon {\n width: 7px;\n height: 11px;\n border-color: #fff;\n border-width: 0 0 2px 2px;\n border-style: solid;\n}\n\n.moveable-drag-area-button {\n cursor: move;\n}\n\n.moveable-drag-area-button .moveable-select-parent-arrow-top-icon {\n width: 2px;\n height: 2px;\n}\n\n.moveable-drag-area-button .moveable-select-parent-arrow-top-icon-top {\n transform: rotateZ(-45deg) translateX(-50%);\n left: 50%;\n top: 3px;\n transform-origin: left;\n}\n\n.moveable-drag-area-button .moveable-select-parent-arrow-top-icon-bottom {\n transform: rotateZ(135deg) translateX(-50%);\n transform-origin: left;\n left: 50%;\n top: auto;\n bottom: 3px;\n}\n\n.moveable-drag-area-button .moveable-select-parent-arrow-top-icon-right {\n transform: rotateZ(45deg) translateY(-50%);\n transform-origin: top;\n right: 3px;\n left: auto;\n top: 50%;\n}\n\n.moveable-drag-area-button .moveable-select-parent-arrow-top-icon-left {\n transform: rotateZ(235deg) translateY(-50%);\n transform-origin: top;\n left: 3px;\n top: 50%;\n}\n\n.moveable-drag-area-button .moveable-select-parent-arrow-body-icon-horizontal {\n width: 2px;\n height: 11px;\n background-color: #fff;\n position: absolute;\n transform: translateX(-50%);\n left: 50%;\n top: 4px;\n}\n\n.moveable-drag-area-button .moveable-select-parent-arrow-body-icon-vertical {\n width: 11px;\n height: 2px;\n background-color: #fff;\n position: absolute;\n transform: translateY(-50%);\n left: 4px;\n top: 50%;;\n}\n\n";
609
+ const ableCss = ".moveable-button {\n width: 20px;\n height: 20px;\n background: #4af;\n border-radius: 4px;\n appearance: none;\n border: 0;\n color: white;\n font-size: 12px;\n font-weight: bold;\n margin-left: 2px;\n position: relative;\n cursor: pointer;\n}\n.moveable-remove-button:before, .moveable-remove-button:after {\n content: \"\";\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%) rotate(45deg);\n width: 14px;\n height: 2px;\n background: #fff;\n border-radius: 1px;\n cursor: pointer;\n}\n.moveable-remove-button:after {\n transform: translate(-50%, -50%) rotate(-45deg);\n}\n\n.moveable-select-parent-arrow-top-icon {\n transform: rotateZ(-45deg);\n width: 4px;\n height: 4px;\n border-color: #fff;\n border-width: 2px 2px 0 0;\n border-style: solid;\n position: absolute;\n left: 4px;\n top: 4px;\n}\n\n.moveable-select-parent-arrow-body-icon {\n width: 7px;\n height: 11px;\n border-color: #fff;\n border-width: 0 0 2px 2px;\n border-style: solid;\n}\n\n.moveable-drag-area-button {\n cursor: move;\n}\n\n.moveable-drag-area-button .moveable-select-parent-arrow-top-icon {\n width: 2px;\n height: 2px;\n}\n\n.moveable-drag-area-button .moveable-select-parent-arrow-top-icon-top {\n transform: rotateZ(-45deg) translateX(-50%);\n left: 50%;\n top: 3px;\n transform-origin: left;\n}\n\n.moveable-drag-area-button .moveable-select-parent-arrow-top-icon-bottom {\n transform: rotateZ(135deg) translateX(-50%);\n transform-origin: left;\n left: 50%;\n top: auto;\n bottom: 3px;\n}\n\n.moveable-drag-area-button .moveable-select-parent-arrow-top-icon-right {\n transform: rotateZ(45deg) translateY(-50%);\n transform-origin: top;\n right: 3px;\n left: auto;\n top: 50%;\n}\n\n.moveable-drag-area-button .moveable-select-parent-arrow-top-icon-left {\n transform: rotateZ(235deg) translateY(-50%);\n transform-origin: top;\n left: 3px;\n top: 50%;\n}\n\n.moveable-drag-area-button .moveable-select-parent-arrow-body-icon-horizontal {\n width: 2px;\n height: 11px;\n background-color: #fff;\n position: absolute;\n transform: translateX(-50%);\n left: 50%;\n top: 4px;\n}\n\n.moveable-drag-area-button .moveable-select-parent-arrow-body-icon-vertical {\n width: 11px;\n height: 2px;\n background-color: #fff;\n position: absolute;\n transform: translateY(-50%);\n left: 4px;\n top: 50%;;\n}\n\n.moveable-rerender-button img {\n position: absolute;\n left: 2px;\n top: 2px;\n}\n";
621
610
 
622
611
  const MoveableActionsAble = (handler, customizedButton = []) => ({
623
612
  name: "actions",
@@ -654,6 +643,21 @@ const MoveableActionsAble = (handler, customizedButton = []) => ({
654
643
  const options = buttonRenderer(React);
655
644
  return React.createElement("button", options.props || {}, ...options.children || []);
656
645
  }),
646
+ React.createElement(
647
+ "button",
648
+ {
649
+ className: "moveable-button moveable-rerender-button",
650
+ title: "重新收集依赖后渲染",
651
+ onClick: () => {
652
+ handler(AbleActionEventType.RERENDER);
653
+ }
654
+ },
655
+ React.createElement("img", {
656
+ src: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGNsYXNzPSJpY29uIGljb24tdGFibGVyIGljb24tdGFibGVyLXJlcGxhY2UiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZT0iI2ZmZmZmZiIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj4KICA8cGF0aCBzdHJva2U9Im5vbmUiIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz4KICA8cmVjdCB4PSIzIiB5PSIzIiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiByeD0iMSIgLz4KICA8cmVjdCB4PSIxNSIgeT0iMTUiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIHJ4PSIxIiAvPgogIDxwYXRoIGQ9Ik0yMSAxMXYtM2EyIDIgMCAwIDAgLTIgLTJoLTZsMyAzbTAgLTZsLTMgMyIgLz4KICA8cGF0aCBkPSJNMyAxM3YzYTIgMiAwIDAgMCAyIDJoNmwtMyAtM20wIDZsMyAtMyIgLz4KPC9zdmc+CgoK",
657
+ width: "16",
658
+ height: "16"
659
+ })
660
+ ),
657
661
  React.createElement(
658
662
  "button",
659
663
  {
@@ -1697,6 +1701,8 @@ class ActionManager extends EventEmitter {
1697
1701
  data: [{ el: drTarget }]
1698
1702
  };
1699
1703
  this.emit("remove", data);
1704
+ }).on(AbleActionEventType.RERENDER, () => {
1705
+ this.emit("rerender");
1700
1706
  }).on("drag-start", (e) => {
1701
1707
  this.emit("drag-start", e);
1702
1708
  });
@@ -2720,6 +2726,8 @@ class StageCore extends EventEmitter$1 {
2720
2726
  this.emit("sort", data);
2721
2727
  }).on("select-parent", () => {
2722
2728
  this.emit("select-parent");
2729
+ }).on("rerender", () => {
2730
+ this.emit("rerender");
2723
2731
  }).on("remove", (data) => {
2724
2732
  this.emit("remove", data);
2725
2733
  });
@@ -39,6 +39,7 @@
39
39
  var AbleActionEventType = /* @__PURE__ */ ((AbleActionEventType2) => {
40
40
  AbleActionEventType2["SELECT_PARENT"] = "select-parent";
41
41
  AbleActionEventType2["REMOVE"] = "remove";
42
+ AbleActionEventType2["RERENDER"] = "rerender";
42
43
  return AbleActionEventType2;
43
44
  })(AbleActionEventType || {});
44
45
  var ContainerHighlightType = /* @__PURE__ */ ((ContainerHighlightType2) => {
@@ -599,21 +600,9 @@
599
600
  el.after(ghostEl);
600
601
  return ghostEl;
601
602
  }
602
- setGhostElChildrenId(el) {
603
- for (const child of Array.from(el.children)) {
604
- const el2 = child;
605
- const id = utils.getIdFromEl()(el2);
606
- if (id) {
607
- utils.setIdToEl()(el2, `${GHOST_EL_ID_PREFIX}${id}`);
608
- }
609
- if (child.children.length) {
610
- this.setGhostElChildrenId(child);
611
- }
612
- }
613
- }
614
603
  }
615
604
 
616
- const ableCss = ".moveable-button {\n width: 20px;\n height: 20px;\n background: #4af;\n border-radius: 4px;\n appearance: none;\n border: 0;\n color: white;\n font-size: 12px;\n font-weight: bold;\n margin-left: 2px;\n position: relative;\n}\n.moveable-remove-button:before, .moveable-remove-button:after {\n content: \"\";\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%) rotate(45deg);\n width: 14px;\n height: 2px;\n background: #fff;\n border-radius: 1px;\n cursor: pointer;\n}\n.moveable-remove-button:after {\n transform: translate(-50%, -50%) rotate(-45deg);\n}\n\n.moveable-select-parent-arrow-top-icon {\n transform: rotateZ(-45deg);\n width: 4px;\n height: 4px;\n border-color: #fff;\n border-width: 2px 2px 0 0;\n border-style: solid;\n position: absolute;\n left: 4px;\n top: 4px;\n}\n\n.moveable-select-parent-arrow-body-icon {\n width: 7px;\n height: 11px;\n border-color: #fff;\n border-width: 0 0 2px 2px;\n border-style: solid;\n}\n\n.moveable-drag-area-button {\n cursor: move;\n}\n\n.moveable-drag-area-button .moveable-select-parent-arrow-top-icon {\n width: 2px;\n height: 2px;\n}\n\n.moveable-drag-area-button .moveable-select-parent-arrow-top-icon-top {\n transform: rotateZ(-45deg) translateX(-50%);\n left: 50%;\n top: 3px;\n transform-origin: left;\n}\n\n.moveable-drag-area-button .moveable-select-parent-arrow-top-icon-bottom {\n transform: rotateZ(135deg) translateX(-50%);\n transform-origin: left;\n left: 50%;\n top: auto;\n bottom: 3px;\n}\n\n.moveable-drag-area-button .moveable-select-parent-arrow-top-icon-right {\n transform: rotateZ(45deg) translateY(-50%);\n transform-origin: top;\n right: 3px;\n left: auto;\n top: 50%;\n}\n\n.moveable-drag-area-button .moveable-select-parent-arrow-top-icon-left {\n transform: rotateZ(235deg) translateY(-50%);\n transform-origin: top;\n left: 3px;\n top: 50%;\n}\n\n.moveable-drag-area-button .moveable-select-parent-arrow-body-icon-horizontal {\n width: 2px;\n height: 11px;\n background-color: #fff;\n position: absolute;\n transform: translateX(-50%);\n left: 50%;\n top: 4px;\n}\n\n.moveable-drag-area-button .moveable-select-parent-arrow-body-icon-vertical {\n width: 11px;\n height: 2px;\n background-color: #fff;\n position: absolute;\n transform: translateY(-50%);\n left: 4px;\n top: 50%;;\n}\n\n";
605
+ const ableCss = ".moveable-button {\n width: 20px;\n height: 20px;\n background: #4af;\n border-radius: 4px;\n appearance: none;\n border: 0;\n color: white;\n font-size: 12px;\n font-weight: bold;\n margin-left: 2px;\n position: relative;\n cursor: pointer;\n}\n.moveable-remove-button:before, .moveable-remove-button:after {\n content: \"\";\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%) rotate(45deg);\n width: 14px;\n height: 2px;\n background: #fff;\n border-radius: 1px;\n cursor: pointer;\n}\n.moveable-remove-button:after {\n transform: translate(-50%, -50%) rotate(-45deg);\n}\n\n.moveable-select-parent-arrow-top-icon {\n transform: rotateZ(-45deg);\n width: 4px;\n height: 4px;\n border-color: #fff;\n border-width: 2px 2px 0 0;\n border-style: solid;\n position: absolute;\n left: 4px;\n top: 4px;\n}\n\n.moveable-select-parent-arrow-body-icon {\n width: 7px;\n height: 11px;\n border-color: #fff;\n border-width: 0 0 2px 2px;\n border-style: solid;\n}\n\n.moveable-drag-area-button {\n cursor: move;\n}\n\n.moveable-drag-area-button .moveable-select-parent-arrow-top-icon {\n width: 2px;\n height: 2px;\n}\n\n.moveable-drag-area-button .moveable-select-parent-arrow-top-icon-top {\n transform: rotateZ(-45deg) translateX(-50%);\n left: 50%;\n top: 3px;\n transform-origin: left;\n}\n\n.moveable-drag-area-button .moveable-select-parent-arrow-top-icon-bottom {\n transform: rotateZ(135deg) translateX(-50%);\n transform-origin: left;\n left: 50%;\n top: auto;\n bottom: 3px;\n}\n\n.moveable-drag-area-button .moveable-select-parent-arrow-top-icon-right {\n transform: rotateZ(45deg) translateY(-50%);\n transform-origin: top;\n right: 3px;\n left: auto;\n top: 50%;\n}\n\n.moveable-drag-area-button .moveable-select-parent-arrow-top-icon-left {\n transform: rotateZ(235deg) translateY(-50%);\n transform-origin: top;\n left: 3px;\n top: 50%;\n}\n\n.moveable-drag-area-button .moveable-select-parent-arrow-body-icon-horizontal {\n width: 2px;\n height: 11px;\n background-color: #fff;\n position: absolute;\n transform: translateX(-50%);\n left: 50%;\n top: 4px;\n}\n\n.moveable-drag-area-button .moveable-select-parent-arrow-body-icon-vertical {\n width: 11px;\n height: 2px;\n background-color: #fff;\n position: absolute;\n transform: translateY(-50%);\n left: 4px;\n top: 50%;;\n}\n\n.moveable-rerender-button img {\n position: absolute;\n left: 2px;\n top: 2px;\n}\n";
617
606
 
618
607
  const MoveableActionsAble = (handler, customizedButton = []) => ({
619
608
  name: "actions",
@@ -650,6 +639,21 @@
650
639
  const options = buttonRenderer(React);
651
640
  return React.createElement("button", options.props || {}, ...options.children || []);
652
641
  }),
642
+ React.createElement(
643
+ "button",
644
+ {
645
+ className: "moveable-button moveable-rerender-button",
646
+ title: "重新收集依赖后渲染",
647
+ onClick: () => {
648
+ handler(AbleActionEventType.RERENDER);
649
+ }
650
+ },
651
+ React.createElement("img", {
652
+ src: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGNsYXNzPSJpY29uIGljb24tdGFibGVyIGljb24tdGFibGVyLXJlcGxhY2UiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZT0iI2ZmZmZmZiIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj4KICA8cGF0aCBzdHJva2U9Im5vbmUiIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz4KICA8cmVjdCB4PSIzIiB5PSIzIiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiByeD0iMSIgLz4KICA8cmVjdCB4PSIxNSIgeT0iMTUiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIHJ4PSIxIiAvPgogIDxwYXRoIGQ9Ik0yMSAxMXYtM2EyIDIgMCAwIDAgLTIgLTJoLTZsMyAzbTAgLTZsLTMgMyIgLz4KICA8cGF0aCBkPSJNMyAxM3YzYTIgMiAwIDAgMCAyIDJoNmwtMyAtM20wIDZsMyAtMyIgLz4KPC9zdmc+CgoK",
653
+ width: "16",
654
+ height: "16"
655
+ })
656
+ ),
653
657
  React.createElement(
654
658
  "button",
655
659
  {
@@ -1693,6 +1697,8 @@
1693
1697
  data: [{ el: drTarget }]
1694
1698
  };
1695
1699
  this.emit("remove", data);
1700
+ }).on(AbleActionEventType.RERENDER, () => {
1701
+ this.emit("rerender");
1696
1702
  }).on("drag-start", (e) => {
1697
1703
  this.emit("drag-start", e);
1698
1704
  });
@@ -2716,6 +2722,8 @@
2716
2722
  this.emit("sort", data);
2717
2723
  }).on("select-parent", () => {
2718
2724
  this.emit("select-parent");
2725
+ }).on("rerender", () => {
2726
+ this.emit("rerender");
2719
2727
  }).on("remove", (data) => {
2720
2728
  this.emit("remove", data);
2721
2729
  });
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.5.0-beta.9",
2
+ "version": "1.5.0",
3
3
  "name": "@tmagic/stage",
4
4
  "type": "module",
5
5
  "main": "dist/tmagic-stage.umd.cjs",
@@ -23,6 +23,7 @@
23
23
  "node": ">=18"
24
24
  },
25
25
  "repository": {
26
+ "directory": "packages/stage",
26
27
  "type": "git",
27
28
  "url": "https://github.com/Tencent/tmagic-editor.git"
28
29
  },
@@ -41,13 +42,13 @@
41
42
  "@types/node": "^18.19.0",
42
43
  "rimraf": "^3.0.2",
43
44
  "sass": "^1.78.0",
44
- "vite": "^5.4.3"
45
+ "vite": "^5.4.10"
45
46
  },
46
47
  "peerDependencies": {
47
48
  "typescript": "*",
48
- "@tmagic/schema": "1.5.0-beta.9",
49
- "@tmagic/core": "1.5.0-beta.9",
50
- "@tmagic/utils": "1.5.0-beta.9"
49
+ "@tmagic/core": "1.5.0",
50
+ "@tmagic/utils": "1.5.0",
51
+ "@tmagic/schema": "1.5.0"
51
52
  },
52
53
  "peerDependenciesMeta": {
53
54
  "typescript": {
@@ -445,6 +445,9 @@ export default class ActionManager extends EventEmitter {
445
445
  };
446
446
  this.emit('remove', data);
447
447
  })
448
+ .on(AbleActionEventType.RERENDER, () => {
449
+ this.emit('rerender');
450
+ })
448
451
  .on('drag-start', (e: OnDragStart) => {
449
452
  this.emit('drag-start', e);
450
453
  });
@@ -402,18 +402,4 @@ export default class DragResizeHelper {
402
402
 
403
403
  return ghostEl;
404
404
  }
405
-
406
- private setGhostElChildrenId(el: Element): void {
407
- for (const child of Array.from(el.children)) {
408
- const el = child as HTMLElement;
409
- const id = getIdFromEl()(el);
410
- if (id) {
411
- setIdToEl()(el, `${GHOST_EL_ID_PREFIX}${id}`);
412
- }
413
-
414
- if (child.children.length) {
415
- this.setGhostElChildrenId(child);
416
- }
417
- }
418
- }
419
405
  }
@@ -57,6 +57,21 @@ export default (
57
57
  return React.createElement('button', options.props || {}, ...(options.children || []));
58
58
  }),
59
59
 
60
+ React.createElement(
61
+ 'button',
62
+ {
63
+ className: 'moveable-button moveable-rerender-button',
64
+ title: '重新收集依赖后渲染',
65
+ onClick: () => {
66
+ handler(AbleActionEventType.RERENDER);
67
+ },
68
+ },
69
+ React.createElement('img', {
70
+ src: 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGNsYXNzPSJpY29uIGljb24tdGFibGVyIGljb24tdGFibGVyLXJlcGxhY2UiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZT0iI2ZmZmZmZiIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj4KICA8cGF0aCBzdHJva2U9Im5vbmUiIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz4KICA8cmVjdCB4PSIzIiB5PSIzIiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiByeD0iMSIgLz4KICA8cmVjdCB4PSIxNSIgeT0iMTUiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIHJ4PSIxIiAvPgogIDxwYXRoIGQ9Ik0yMSAxMXYtM2EyIDIgMCAwIDAgLTIgLTJoLTZsMyAzbTAgLTZsLTMgMyIgLz4KICA8cGF0aCBkPSJNMyAxM3YzYTIgMiAwIDAgMCAyIDJoNmwtMyAtM20wIDZsMyAtMyIgLz4KPC9zdmc+CgoK',
71
+ width: '16',
72
+ height: '16',
73
+ }),
74
+ ),
60
75
  React.createElement(
61
76
  'button',
62
77
  {
package/src/StageCore.ts CHANGED
@@ -373,6 +373,9 @@ export default class StageCore extends EventEmitter {
373
373
  .on('select-parent', () => {
374
374
  this.emit('select-parent');
375
375
  })
376
+ .on('rerender', () => {
377
+ this.emit('rerender');
378
+ })
376
379
  .on('remove', (data: RemoveEventData) => {
377
380
  this.emit('remove', data);
378
381
  });
package/src/const.ts CHANGED
@@ -77,6 +77,7 @@ export const SELECTED_CLASS = 'tmagic-stage-selected-area';
77
77
  export enum AbleActionEventType {
78
78
  SELECT_PARENT = 'select-parent',
79
79
  REMOVE = 'remove',
80
+ RERENDER = 'rerender',
80
81
  }
81
82
 
82
83
  /** 将组件添加到容器的方式 */
@@ -10,6 +10,7 @@
10
10
  font-weight: bold;
11
11
  margin-left: 2px;
12
12
  position: relative;
13
+ cursor: pointer;
13
14
  }
14
15
  .moveable-remove-button:before, .moveable-remove-button:after {
15
16
  content: "";
@@ -106,3 +107,8 @@
106
107
  top: 50%;;
107
108
  }
108
109
 
110
+ .moveable-rerender-button img {
111
+ position: absolute;
112
+ left: 2px;
113
+ top: 2px;
114
+ }
package/src/types.ts CHANGED
@@ -251,6 +251,7 @@ export interface CoreEvents {
251
251
  update: [data: UpdateEventData];
252
252
  sort: [data: SortEventData];
253
253
  'select-parent': [];
254
+ rerender: [];
254
255
  remove: [data: RemoveEventData];
255
256
  highlight: [highlightEl: HTMLElement];
256
257
  mousemove: [event: MouseEvent];
@@ -283,6 +284,7 @@ export interface ActionManagerEvents {
283
284
  sort: [data: SortEventData];
284
285
  remove: [data: RemoveEventData];
285
286
  select: [selectedEl: HTMLElement | null, event: MouseEvent];
287
+ rerender: [];
286
288
  'select-parent': [];
287
289
  'drag-start': [event: OnDragStart];
288
290
  'multi-update': [data: UpdateEventData];
@@ -297,6 +299,7 @@ export interface DrEvents {
297
299
  'update-moveable': [];
298
300
  [AbleActionEventType.REMOVE]: [];
299
301
  [AbleActionEventType.SELECT_PARENT]: [];
302
+ [AbleActionEventType.RERENDER]: [];
300
303
  'drag-start': [event: OnDragStart];
301
304
  update: [data: UpdateEventData];
302
305
  sort: [data: SortEventData];
package/types/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import * as _tmagic_editor from '@tmagic/editor';
1
2
  import EventEmitter, { EventEmitter as EventEmitter$1 } from 'events';
2
3
  import { OnResizeStart, OnResize, OnDragStart, OnDrag, OnRotateStart, OnRotate, OnScaleStart, OnScale, OnResizeGroupStart, OnResizeGroup, OnDragGroupStart, OnDragGroup, MoveableOptions, Renderer, MoveableManagerInterface } from 'moveable';
3
4
  export * from 'moveable';
@@ -56,7 +57,8 @@ declare enum Mode {
56
57
  declare const SELECTED_CLASS = "tmagic-stage-selected-area";
57
58
  declare enum AbleActionEventType {
58
59
  SELECT_PARENT = "select-parent",
59
- REMOVE = "remove"
60
+ REMOVE = "remove",
61
+ RERENDER = "rerender"
60
62
  }
61
63
  /** 将组件添加到容器的方式 */
62
64
  declare enum ContainerHighlightType {
@@ -151,7 +153,6 @@ declare class DragResizeHelper {
151
153
  * 流式布局把目标节点复制一份进行拖拽,在拖拽结束前不影响页面原布局样式
152
154
  */
153
155
  private generateGhostEl;
154
- private setGhostElChildrenId;
155
156
  }
156
157
 
157
158
  type TargetElement = HTMLElement | SVGElement;
@@ -348,6 +349,7 @@ interface CoreEvents {
348
349
  update: [data: UpdateEventData];
349
350
  sort: [data: SortEventData];
350
351
  'select-parent': [];
352
+ rerender: [];
351
353
  remove: [data: RemoveEventData];
352
354
  highlight: [highlightEl: HTMLElement];
353
355
  mousemove: [event: MouseEvent];
@@ -377,6 +379,7 @@ interface ActionManagerEvents {
377
379
  sort: [data: SortEventData];
378
380
  remove: [data: RemoveEventData];
379
381
  select: [selectedEl: HTMLElement | null, event: MouseEvent];
382
+ rerender: [];
380
383
  'select-parent': [];
381
384
  'drag-start': [event: OnDragStart];
382
385
  'multi-update': [data: UpdateEventData];
@@ -390,6 +393,7 @@ interface DrEvents {
390
393
  'update-moveable': [];
391
394
  [AbleActionEventType.REMOVE]: [];
392
395
  [AbleActionEventType.SELECT_PARENT]: [];
396
+ [AbleActionEventType.RERENDER]: [];
393
397
  'drag-start': [event: OnDragStart];
394
398
  update: [data: UpdateEventData];
395
399
  sort: [data: SortEventData];
@@ -781,7 +785,7 @@ declare class StageCore extends EventEmitter$1 {
781
785
  */
782
786
  delayedMarkContainer(event: MouseEvent, excludeElList?: Element[]): NodeJS.Timeout | undefined;
783
787
  getMoveableOption<K extends keyof MoveableOptions>(key: K): MoveableOptions[K] | undefined;
784
- getDragStatus(): StageDragStatus | undefined;
788
+ getDragStatus(): _tmagic_editor.StageDragStatus | undefined;
785
789
  disableMultiSelect(): void;
786
790
  enableMultiSelect(): void;
787
791
  /**