| 594 | } |
| 595 | |
| 596 | function applyPreviewElementTransform(div, el, isSelected) { |
| 597 | const rot = Number(el.rotation) || 0; |
| 598 | if (el.type === "line") { |
| 599 | const base = Math.atan2(el.h, el.w) * (180 / Math.PI); |
| 600 | div.style.transformOrigin = "0 50%"; |
| 601 | const parts = [`rotate(${base + rot}deg)`]; |
| 602 | if (isSelected) parts.push("scale(1.01)"); |
| 603 | div.style.transform = parts.join(" "); |
| 604 | return; |
| 605 | } |
| 606 | div.style.transformOrigin = "50% 50%"; |
| 607 | const parts = []; |
| 608 | if (rot) parts.push(`rotate(${rot}deg)`); |
| 609 | if (isSelected) parts.push("scale(1.01)"); |
| 610 | div.style.transform = parts.length ? parts.join(" ") : ""; |
| 611 | } |
| 612 | |
| 613 | function zoomToSelection() { |
| 614 | const ids = selectedIds && selectedIds.size ? Array.from(selectedIds) : (selectedId ? [selectedId] : []); |