@pixldocs/canvas-renderer 0.5.342 → 0.5.344

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.
@@ -13197,6 +13197,9 @@ const PageCanvas = react.forwardRef(
13197
13197
  fabricCanvas.on("mouse:down:before", (opt) => {
13198
13198
  var _a2, _b2, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m;
13199
13199
  const activeBeforeMouseDown = fabricCanvas.getActiveObject();
13200
+ if (activeBeforeMouseDown instanceof fabric__namespace.ActiveSelection && activeBeforeMouseDown.__pixldocsGroupSelection) {
13201
+ prepareGroupSelectionTransformStart(activeBeforeMouseDown);
13202
+ }
13200
13203
  if (editLockRef.current) {
13201
13204
  const active = fabricCanvas.getActiveObject();
13202
13205
  if (active && (((_a2 = active._ct) == null ? void 0 : _a2.isCropGroup) || active.__cropGroup)) {
@@ -13296,6 +13299,7 @@ const PageCanvas = react.forwardRef(
13296
13299
  restoreGroupSelectionVisualState(selection, parent.id);
13297
13300
  fabricCanvas.setActiveObject(selection);
13298
13301
  selection.setCoords();
13302
+ prepareGroupSelectionTransformStart(selection);
13299
13303
  fabricCanvas._target = selection;
13300
13304
  opt.target = selection;
13301
13305
  pendingGroupPromotionRef.current = { groupId: parent.id, selection };
@@ -13338,6 +13342,7 @@ const PageCanvas = react.forwardRef(
13338
13342
  restoreGroupSelectionVisualState(selection, parent.id);
13339
13343
  fabricCanvas.setActiveObject(selection);
13340
13344
  selection.setCoords();
13345
+ prepareGroupSelectionTransformStart(selection);
13341
13346
  fabricCanvas._target = selection;
13342
13347
  opt.target = selection;
13343
13348
  pendingGroupPromotionRef.current = { groupId: parent.id, selection };
@@ -14895,9 +14900,9 @@ const PageCanvas = react.forwardRef(
14895
14900
  let movedGroupLeft = groupAbs.left;
14896
14901
  let movedGroupTop = groupAbs.top;
14897
14902
  if (activeObj instanceof fabric__namespace.ActiveSelection && (transformStart == null ? void 0 : transformStart.groupId) === groupToMove.id) {
14898
- const selectionRect = activeObj.getBoundingRect();
14899
- movedGroupLeft = transformStart.groupLeft + (selectionRect.left - transformStart.selectionLeft);
14900
- movedGroupTop = transformStart.groupTop + (selectionRect.top - transformStart.selectionTop);
14903
+ const selectionCenter = activeObj.getCenterPoint();
14904
+ movedGroupLeft = transformStart.groupLeft + (selectionCenter.x - transformStart.selectionCenterX);
14905
+ movedGroupTop = transformStart.groupTop + (selectionCenter.y - transformStart.selectionCenterY);
14901
14906
  } else if (activeObj instanceof fabric__namespace.ActiveSelection && firstId && firstObj) {
14902
14907
  const firstNode = findNodeById(pageChildren2, firstId);
14903
14908
  if (firstNode) {
@@ -14937,13 +14942,17 @@ const PageCanvas = react.forwardRef(
14937
14942
  const hadScale = isActiveSelection && activeObj && (hadResizeHandle || Math.abs((activeObj.scaleX ?? 1) - 1) > 0.01 || Math.abs((activeObj.scaleY ?? 1) - 1) > 0.01);
14938
14943
  const startSelAngle = normalizeAngle((transformStart == null ? void 0 : transformStart.selectionAngle) ?? 0);
14939
14944
  const currentSelAngle = isActiveSelection && activeObj ? normalizeAngle(activeObj.angle ?? 0) : 0;
14940
- const angleDelta = shortestAngleDelta(currentSelAngle, startSelAngle);
14945
+ const storedGroupAngle = normalizeAngle(Number(groupToMove.angle ?? 0));
14946
+ const effectiveStartAngle = transformStart ? startSelAngle : storedGroupAngle;
14947
+ const angleDelta = shortestAngleDelta(currentSelAngle, effectiveStartAngle);
14941
14948
  const hadRotation = isActiveSelection && activeObj && angleDelta > 0.01;
14942
14949
  if (activeGroupSelectionId === groupToMove.id && hadRotation && !hadScale && !activeSelectionResizeHandle && activeObj instanceof fabric__namespace.ActiveSelection) {
14943
14950
  const { updateNode: updateNodeStore, commitHistory: commitHistoryStore, getCurrentElements } = useEditorStore.getState();
14944
14951
  const center = activeObj.getCenterPoint();
14945
- const nextAbsLeft = center.x - groupAbs.width / 2;
14946
- const nextAbsTop = center.y - groupAbs.height / 2;
14952
+ const baseCenterX = (transformStart == null ? void 0 : transformStart.selectionCenterX) ?? groupAbs.left + groupAbs.width / 2;
14953
+ const baseCenterY = (transformStart == null ? void 0 : transformStart.selectionCenterY) ?? groupAbs.top + groupAbs.height / 2;
14954
+ const nextAbsLeft = groupAbs.left + (center.x - baseCenterX);
14955
+ const nextAbsTop = groupAbs.top + (center.y - baseCenterY);
14947
14956
  const storePos = absoluteToStorePosition(nextAbsLeft, nextAbsTop, groupToMove.id, pageChildren2);
14948
14957
  updateNodeStore(groupToMove.id, {
14949
14958
  left: storePos.left,
@@ -15649,6 +15658,7 @@ const PageCanvas = react.forwardRef(
15649
15658
  const activeObj = fabricCanvas.getActiveObject();
15650
15659
  if (!(activeObj instanceof fabric__namespace.ActiveSelection)) return;
15651
15660
  if (skipActiveSelectionBakeOnClearRef.current) return;
15661
+ if (activeObj.__pixldocsGroupSelection) return;
15652
15662
  const selectionMatrix = activeObj.calcTransformMatrix();
15653
15663
  for (const obj of deselected) {
15654
15664
  const objId = getObjectId(obj);
@@ -24662,9 +24672,9 @@ function captureFabricCanvasSvgForPdf(fabricInstance, canvasWidth, canvasHeight)
24662
24672
  }
24663
24673
  return svgString;
24664
24674
  }
24665
- const resolvedPackageVersion = "0.5.342";
24675
+ const resolvedPackageVersion = "0.5.344";
24666
24676
  const PACKAGE_VERSION = resolvedPackageVersion;
24667
- const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.342";
24677
+ const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.344";
24668
24678
  const roundParityValue = (value) => {
24669
24679
  if (typeof value !== "number") return value;
24670
24680
  return Number.isFinite(value) ? Number(value.toFixed(3)) : value;
@@ -25478,7 +25488,7 @@ class PixldocsRenderer {
25478
25488
  await this.waitForCanvasScene(container, cloned, i);
25479
25489
  }
25480
25490
  console.log(`[canvas-renderer][pdf-unified] mounted ${cloned.pages.length} page(s), handing off to client exportMultiPagePdf`);
25481
- const { exportMultiPagePdf, preparePagesForExport } = await Promise.resolve().then(() => require("./vectorPdfExport-8iq2cL_r.cjs"));
25491
+ const { exportMultiPagePdf, preparePagesForExport } = await Promise.resolve().then(() => require("./vectorPdfExport-DslpfbFV.cjs"));
25482
25492
  const prepared = preparePagesForExport(
25483
25493
  cloned.pages,
25484
25494
  canvasWidth,
@@ -27798,7 +27808,7 @@ async function prepareLiveCanvasSvgForPdf(rawSvg, pageWidth, pageHeight, pageKey
27798
27808
  if (options == null ? void 0 : options.stripPageBackground) stripRootPageBackgroundFromSvg(svgToDraw);
27799
27809
  sanitizeSvgTreeForPdf(svgToDraw);
27800
27810
  try {
27801
- const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await Promise.resolve().then(() => require("./vectorPdfExport-8iq2cL_r.cjs"));
27811
+ const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await Promise.resolve().then(() => require("./vectorPdfExport-DslpfbFV.cjs"));
27802
27812
  try {
27803
27813
  await logTextMeasurementDiagnostic(svgToDraw);
27804
27814
  } catch {
@@ -28195,4 +28205,4 @@ exports.setAutoShrinkDebug = setAutoShrinkDebug;
28195
28205
  exports.setBundledAssetPrefixes = setBundledAssetPrefixes;
28196
28206
  exports.warmResolvedTemplateForPreview = warmResolvedTemplateForPreview;
28197
28207
  exports.warmTemplateFromForm = warmTemplateFromForm;
28198
- //# sourceMappingURL=index-AFV1WnF5.cjs.map
28208
+ //# sourceMappingURL=index-Byw3hiCQ.cjs.map