@versa_ai/vmml-editor 1.0.56 → 1.0.57

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.
@@ -1,5 +1,5 @@
1
1
 
2
- > @versa_ai/vmml-editor@1.0.56 build D:\code\work\vmml-player\packages\editor
2
+ > @versa_ai/vmml-editor@1.0.57 build D:\code\work\vmml-player\packages\editor
3
3
  > tsup
4
4
 
5
5
  CLI Building entry: src/index.tsx
@@ -124,12 +124,12 @@ More info and automated migrator: https://sass-lang.com/d/slash-div [35
124
124
 
125
125
 
126
126
 
127
- CJS dist\index.js 122.51 KB
128
- CJS dist\index.js.map 235.18 KB
129
- CJS ⚡️ Build success in 803ms
130
- ESM dist\index.mjs 120.64 KB
131
- ESM dist\index.mjs.map 234.88 KB
132
- ESM ⚡️ Build success in 804ms
133
- DTS ⚡️ Build success in 1791ms
127
+ CJS dist\index.js 123.55 KB
128
+ CJS dist\index.js.map 237.48 KB
129
+ CJS ⚡️ Build success in 779ms
130
+ ESM dist\index.mjs 121.66 KB
131
+ ESM dist\index.mjs.map 237.17 KB
132
+ ESM ⚡️ Build success in 780ms
133
+ DTS ⚡️ Build success in 1976ms
134
134
  DTS dist\index.d.ts 158.00 B
135
135
  DTS dist\index.d.mts 158.00 B
package/dist/index.js CHANGED
@@ -1033,7 +1033,7 @@ function usePeekControl(canvas, hideConfig) {
1033
1033
  return canvas;
1034
1034
  }
1035
1035
  var EditorCanvas = react.forwardRef(
1036
- ({ previewState, showCanvas, canvasSize, enterPreview, intoTextEdit, frame, vmml, dragState, initFcObjs, editClips = [], onVideoChange, isBatchModify, hideConfig, textWarapCenter, updateVmml }, ref) => {
1036
+ ({ lockInBounds, previewState, showCanvas, canvasSize, enterPreview, intoTextEdit, frame, vmml, dragState, initFcObjs, editClips = [], onVideoChange, isBatchModify, hideConfig, textWarapCenter, updateVmml }, ref) => {
1037
1037
  const [fc, setFc] = react.useState(null);
1038
1038
  const [history, setHistory] = react.useState(null);
1039
1039
  const [canvasReady, setCanvasReady] = react.useState(false);
@@ -1043,6 +1043,7 @@ var EditorCanvas = react.forwardRef(
1043
1043
  const heightScaleRef = react.useRef(1);
1044
1044
  const widthScaleRef = react.useRef(1);
1045
1045
  const fontCacheRef = react.useRef(/* @__PURE__ */ new Map());
1046
+ const lockInBoundsRef = react.useRef(lockInBounds);
1046
1047
  const initCanvas = () => {
1047
1048
  const canvas = new fabric.fabric.Canvas("canvas", {
1048
1049
  width: canvasSize.width,
@@ -1114,9 +1115,27 @@ var EditorCanvas = react.forwardRef(
1114
1115
  vmmlConverterRef.current.changeMute(clipData);
1115
1116
  });
1116
1117
  canvas.on("object:textEdit", (e) => {
1118
+ console.log("1111111111");
1117
1119
  const active = canvas.getActiveObject();
1118
1120
  handleIntoTextMenu(active, canvas);
1119
1121
  });
1122
+ canvas.on("object:moving", (e) => {
1123
+ if (!lockInBoundsRef.current) return;
1124
+ const obj = e.target;
1125
+ const canvasWidth = canvas.getWidth();
1126
+ const canvasHeight = canvas.getHeight();
1127
+ let left = obj.left;
1128
+ let top = obj.top;
1129
+ let w = obj.width;
1130
+ let h = obj.height;
1131
+ const paddingX = 15;
1132
+ const paddingY = 10;
1133
+ if (left <= w / 2 - paddingX) left = w / 2 - paddingX;
1134
+ if (left >= canvasWidth - (w / 2 - paddingX - 2.5)) left = canvasWidth - (w / 2 - paddingX - 2.5);
1135
+ if (top <= (h - paddingY) / 2) top = (h - paddingY) / 2;
1136
+ if (top >= canvasHeight - (h - paddingY) / 2) top = canvasHeight - (h - paddingY) / 2;
1137
+ obj.set({ left, top }).setCoords();
1138
+ });
1120
1139
  };
1121
1140
  const imitateDBclick = (active, canvas) => {
1122
1141
  active.isSelected++;
@@ -1278,7 +1297,9 @@ var EditorCanvas = react.forwardRef(
1278
1297
  top,
1279
1298
  angle: posParam.rotationZ,
1280
1299
  originX: "center",
1300
+ // 圆点:中心点
1281
1301
  originY: "center",
1302
+ // 圆点:中心点
1282
1303
  clipData: {
1283
1304
  id: clip.id,
1284
1305
  isMute: null,
@@ -1712,6 +1733,9 @@ var EditorCanvas = react.forwardRef(
1712
1733
  }
1713
1734
  }
1714
1735
  }, [fc]);
1736
+ react.useEffect(() => {
1737
+ lockInBoundsRef.current = lockInBounds;
1738
+ }, [lockInBounds]);
1715
1739
  const getCanvasCtx = () => {
1716
1740
  return fc;
1717
1741
  };
@@ -2512,6 +2536,7 @@ var EditorFn = ({
2512
2536
  textWarapCenter = false,
2513
2537
  backgroundColor = "#000",
2514
2538
  existenceBorderRadio = true,
2539
+ lockInBounds = false,
2515
2540
  hideConfig = { hideDelete: false, hideEdit: false, hideMute: false, hideVolume: false }
2516
2541
  // { hideDelete: false, hideEdit: false, hideMute: false, hideVolume: false }
2517
2542
  }, ref) => {
@@ -3006,6 +3031,7 @@ var EditorFn = ({
3006
3031
  /* @__PURE__ */ jsxRuntime.jsx(
3007
3032
  EditorCanvas_default,
3008
3033
  {
3034
+ lockInBounds,
3009
3035
  ref: canvasRef,
3010
3036
  previewState,
3011
3037
  showCanvas,