@pixldocs/canvas-renderer 0.5.270 → 0.5.271

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.
@@ -13906,7 +13906,7 @@ const PageCanvas = react.forwardRef(
13906
13906
  });
13907
13907
  let cropGroupSaveTimer = null;
13908
13908
  fabricCanvas.on("object:modified", (e) => {
13909
- var _a2, _b2, _c, _d, _e, _f, _g;
13909
+ var _a2, _b2, _c, _d, _e, _f, _g, _h;
13910
13910
  try {
13911
13911
  dragStarted = false;
13912
13912
  setGuides([]);
@@ -14322,6 +14322,7 @@ const PageCanvas = react.forwardRef(
14322
14322
  drilledGroupIdRef.current = null;
14323
14323
  const groupSelectionId = (isActiveSelection && activeObj instanceof fabric__namespace.ActiveSelection ? activeObj.__pixldocsGroupSelection : void 0) ?? groupToMove.id;
14324
14324
  const targetObjects = isActiveSelection && activeObj instanceof fabric__namespace.ActiveSelection ? activeObj.getObjects() : activeObjects;
14325
+ let preservedGroupMemberIds = targetObjects.map((obj) => getObjectId(obj)).filter((id) => !!id && id !== "__background__");
14325
14326
  if (groupSelectionId && activeObj instanceof fabric__namespace.ActiveSelection) {
14326
14327
  try {
14327
14328
  skipSelectionClearOnDiscardRef.current = true;
@@ -14334,7 +14335,25 @@ const PageCanvas = react.forwardRef(
14334
14335
  }
14335
14336
  } catch {
14336
14337
  }
14337
- const bakedSelection = targetObjects.length > 1 ? new fabric__namespace.ActiveSelection(targetObjects, { canvas: fabricCanvas }) : activeObj;
14338
+ const pageAfterMove = ((_g = useEditorStore.getState().canvas.pages.find((p) => p.id === pageId)) == null ? void 0 : _g.children) ?? [];
14339
+ const groupAfterMove = findNodeById(pageAfterMove, groupToMove.id);
14340
+ const memberIdsAfterMove = groupAfterMove && isGroup(groupAfterMove) ? getAllElementIds(groupAfterMove.children ?? []) : targetObjects.map((obj) => getObjectId(obj)).filter((id) => !!id && id !== "__background__");
14341
+ preservedGroupMemberIds = memberIdsAfterMove;
14342
+ const reselectionObjects = memberIdsAfterMove.map((id) => targetObjects.find((obj) => getObjectId(obj) === id) ?? fabricCanvas.getObjects().find((obj) => getObjectId(obj) === id)).filter((obj) => !!obj);
14343
+ for (const obj of reselectionObjects) {
14344
+ const id = getObjectId(obj);
14345
+ const node = id ? findNodeById(pageAfterMove, id) : null;
14346
+ if (!node) continue;
14347
+ const abs = getAbsoluteBounds(node, pageAfterMove, pageBoundsOptions);
14348
+ const bounds = getNodeBounds(node, pageAfterMove, pageBoundsOptions);
14349
+ if (obj instanceof fabric__namespace.Group && obj.__cropGroup || obj instanceof fabric__namespace.FabricImage && (obj.originX === "center" || obj.originY === "center")) {
14350
+ obj.set({ left: abs.left + Math.max(1, bounds.width) / 2, top: abs.top + Math.max(1, bounds.height) / 2 });
14351
+ } else {
14352
+ obj.set({ left: abs.left, top: abs.top });
14353
+ }
14354
+ obj.setCoords();
14355
+ }
14356
+ const bakedSelection = reselectionObjects.length > 1 ? new fabric__namespace.ActiveSelection(reselectionObjects, { canvas: fabricCanvas }) : activeObj;
14338
14357
  restoreGroupSelectionVisualState(bakedSelection, groupSelectionId);
14339
14358
  fabricCanvas.setActiveObject(bakedSelection);
14340
14359
  bakedSelection.setCoords();
@@ -14342,7 +14361,7 @@ const PageCanvas = react.forwardRef(
14342
14361
  selectElements([groupSelectionId], false, false);
14343
14362
  fabricCanvas.requestRenderAll();
14344
14363
  elementsRef.current = getCurrentElements();
14345
- for (const obj of targetObjects) {
14364
+ for (const obj of targetObjects.length ? targetObjects : activeObjects) {
14346
14365
  const objId = getObjectId(obj);
14347
14366
  if (objId && objId !== "__background__") {
14348
14367
  justModifiedIdsRef.current.add(objId);
@@ -14352,7 +14371,7 @@ const PageCanvas = react.forwardRef(
14352
14371
  setTimeout(() => modifiedIdsThisRound.forEach((id) => justModifiedIdsRef.current.delete(id)), 150);
14353
14372
  groupSelectionTransformStartRef.current = null;
14354
14373
  restorePreservedGroupSelectionSoon({
14355
- memberIds: targetObjects.map((obj) => getObjectId(obj)).filter((id) => !!id && id !== "__background__"),
14374
+ memberIds: preservedGroupMemberIds,
14356
14375
  groupSelectionId
14357
14376
  });
14358
14377
  unlockEditsSoon();
@@ -14616,7 +14635,7 @@ const PageCanvas = react.forwardRef(
14616
14635
  updateElement(objId, elementUpdate, { recordHistory: false, skipLayoutRecalc: true });
14617
14636
  obj.setCoords();
14618
14637
  }
14619
- const pageChildrenForReflow = ((_g = useEditorStore.getState().canvas.pages.find((p) => p.id === pageId)) == null ? void 0 : _g.children) ?? [];
14638
+ const pageChildrenForReflow = ((_h = useEditorStore.getState().canvas.pages.find((p) => p.id === pageId)) == null ? void 0 : _h.children) ?? [];
14620
14639
  const stackGroupsToReflow = /* @__PURE__ */ new Set();
14621
14640
  for (const id of modifiedIdsThisRound) {
14622
14641
  const parent = findParentGroup(pageChildrenForReflow, id);
@@ -23696,9 +23715,9 @@ function captureFabricCanvasSvgForPdf(fabricInstance, canvasWidth, canvasHeight)
23696
23715
  }
23697
23716
  return svgString;
23698
23717
  }
23699
- const resolvedPackageVersion = "0.5.270";
23718
+ const resolvedPackageVersion = "0.5.271";
23700
23719
  const PACKAGE_VERSION = resolvedPackageVersion;
23701
- const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.270";
23720
+ const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.271";
23702
23721
  const roundParityValue = (value) => {
23703
23722
  if (typeof value !== "number") return value;
23704
23723
  return Number.isFinite(value) ? Number(value.toFixed(3)) : value;
@@ -24512,7 +24531,7 @@ class PixldocsRenderer {
24512
24531
  await this.waitForCanvasScene(container, cloned, i);
24513
24532
  }
24514
24533
  console.log(`[canvas-renderer][pdf-unified] mounted ${cloned.pages.length} page(s), handing off to client exportMultiPagePdf`);
24515
- const { exportMultiPagePdf, preparePagesForExport } = await Promise.resolve().then(() => require("./vectorPdfExport-BpHyRyQS.cjs"));
24534
+ const { exportMultiPagePdf, preparePagesForExport } = await Promise.resolve().then(() => require("./vectorPdfExport-DjBUHamz.cjs"));
24516
24535
  const prepared = preparePagesForExport(
24517
24536
  cloned.pages,
24518
24537
  canvasWidth,
@@ -26832,7 +26851,7 @@ async function prepareLiveCanvasSvgForPdf(rawSvg, pageWidth, pageHeight, pageKey
26832
26851
  if (options == null ? void 0 : options.stripPageBackground) stripRootPageBackgroundFromSvg(svgToDraw);
26833
26852
  sanitizeSvgTreeForPdf(svgToDraw);
26834
26853
  try {
26835
- const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await Promise.resolve().then(() => require("./vectorPdfExport-BpHyRyQS.cjs"));
26854
+ const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await Promise.resolve().then(() => require("./vectorPdfExport-DjBUHamz.cjs"));
26836
26855
  try {
26837
26856
  await logTextMeasurementDiagnostic(svgToDraw);
26838
26857
  } catch {
@@ -27229,4 +27248,4 @@ exports.setAutoShrinkDebug = setAutoShrinkDebug;
27229
27248
  exports.setBundledAssetPrefixes = setBundledAssetPrefixes;
27230
27249
  exports.warmResolvedTemplateForPreview = warmResolvedTemplateForPreview;
27231
27250
  exports.warmTemplateFromForm = warmTemplateFromForm;
27232
- //# sourceMappingURL=index-CLq3CdA3.cjs.map
27251
+ //# sourceMappingURL=index-6188mLJ2.cjs.map