Individual rotate

This commit is contained in:
shamoon 2025-07-01 14:39:24 -07:00
parent 3dece8f872
commit 8ee8f2d4c5
No known key found for this signature in database
3 changed files with 18 additions and 4 deletions

View File

@ -29,6 +29,14 @@
@for (p of pages; track p.page; let i = $index) { @for (p of pages; track p.page; let i = $index) {
<div class="page-item rounded p-2" cdkDrag (click)="toggleSelection(i)" [class.selected]="p.selected"> <div class="page-item rounded p-2" cdkDrag (click)="toggleSelection(i)" [class.selected]="p.selected">
<div class="btn-toolbar hover-actions z-10"> <div class="btn-toolbar hover-actions z-10">
<div class="btn-group me-2">
<button class="btn btn-sm btn-dark" (click)="rotate(i); $event.stopPropagation()">
<i-bs name="arrow-counterclockwise"></i-bs>
</button>
<button class="btn btn-sm btn-dark" (click)="rotate(i); $event.stopPropagation()">
<i-bs name="arrow-clockwise"></i-bs>
</button>
</div>
<div class="btn-group"> <div class="btn-group">
<button class="btn btn-sm btn-dark text-danger" (click)="remove(i); $event.stopPropagation()"> <button class="btn btn-sm btn-dark text-danger" (click)="remove(i); $event.stopPropagation()">
<i-bs name="trash"></i-bs> <i-bs name="trash"></i-bs>

View File

@ -38,5 +38,7 @@ describe('PDFEditorComponent', () => {
component.pages.push({ page: 2, rotate: 0, splitAfter: false }) component.pages.push({ page: 2, rotate: 0, splitAfter: false })
component.drop({ previousIndex: 0, currentIndex: 1 } as any) component.drop({ previousIndex: 0, currentIndex: 1 } as any)
expect(component.pages[0].page).toBe(2) expect(component.pages[0].page).toBe(2)
component.rotate(0)
expect(component.pages[0].rotate).toBe(90)
}) })
}) })

View File

@ -54,6 +54,14 @@ export class PDFEditorComponent extends ConfirmDialogComponent {
})) }))
} }
toggleSelection(i: number) {
this.pages[i].selected = !this.pages[i].selected
}
rotate(i: number) {
this.pages[i].rotate = (this.pages[i].rotate + 90) % 360
}
rotateSelected(dir: number) { rotateSelected(dir: number) {
for (let p of this.pages) { for (let p of this.pages) {
if (p.selected) { if (p.selected) {
@ -70,10 +78,6 @@ export class PDFEditorComponent extends ConfirmDialogComponent {
this.pages[i].splitAfter = !this.pages[i].splitAfter this.pages[i].splitAfter = !this.pages[i].splitAfter
} }
toggleSelection(i: number) {
this.pages[i].selected = !this.pages[i].selected
}
selectAll() { selectAll() {
this.pages.forEach((p) => (p.selected = true)) this.pages.forEach((p) => (p.selected = true))
} }