Skip to content

Commit 29e9882

Browse files
committed
pan/zoom support for svg tree
1 parent 9e7ecc4 commit 29e9882

6 files changed

Lines changed: 17 additions & 6 deletions

File tree

frontend/angular.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
],
4848
"scripts": [],
4949
"server": "src/main.server.ts",
50-
"prerender": true,
50+
"prerender": false,
5151
"ssr": false,
5252
"baseHref": "/"
5353
},

frontend/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
"colors": "^1.4.0",
3838
"express": "^4.18.2",
3939
"rxjs": "~7.8.0",
40+
"svg-pan-zoom": "bumbu/svg-pan-zoom",
4041
"tslib": "^2.3.0",
4142
"zone.js": "~0.15.1"
4243
},
@@ -57,4 +58,4 @@
5758
"ng-extract-i18n-merge": "^2.12.0",
5859
"typescript": "~5.8.3"
5960
}
60-
}
61+
}

frontend/src/app/annotate/annotate.component.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,6 @@ export class AnnotateComponent implements OnInit {
5050
}
5151

5252
startParse() {
53-
// hardcoded data for now
5453
let input: ParseInput = {
5554
premises: this.problem?.problem?.premises!,
5655
hypothesis: this.problem?.problem?.hypothesis!,

frontend/src/app/annotate/parse-tree/parse-svg.component.svg

Lines changed: 1 addition & 1 deletion
Loading

frontend/src/app/annotate/parse-tree/parse-svg.component.ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
import { Component, ChangeDetectorRef, Input} from '@angular/core';
1+
import { Component, ChangeDetectorRef, ElementRef, Input, ViewChild, afterNextRender} from '@angular/core';
22
import { CommonModule } from "@angular/common";
33
import { Subject } from "rxjs";
44
import { Dimensions } from '@/types';
55
import { ParseTree } from './parse-tree.component';
6+
import svgPanZoom from 'svg-pan-zoom';
67

78
@Component({
89
selector: "la-parse-svg",
@@ -11,11 +12,17 @@ import { ParseTree } from './parse-tree.component';
1112
templateUrl: "./parse-svg.component.svg",
1213
})
1314
export class ParseSVG {
15+
@ViewChild('svg')
16+
svg?: ElementRef<SVGSVGElement>;
1417

1518
treeDimensions$ = new Subject<Dimensions>();
1619
treeDimensions: Dimensions = {width:0, height: 0};
1720

18-
constructor(private cdref: ChangeDetectorRef) {}
21+
constructor(private cdref: ChangeDetectorRef) {
22+
afterNextRender(() => {
23+
svgPanZoom(this.svg!.nativeElement);
24+
});
25+
}
1926

2027
onTreeSize(size: Dimensions) {
2128
this.treeDimensions = size;

frontend/yarn.lock

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6764,6 +6764,10 @@ supports-preserve-symlinks-flag@^1.0.0:
67646764
resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
67656765
integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
67666766

6767+
svg-pan-zoom@bumbu/svg-pan-zoom:
6768+
version "3.6.2"
6769+
resolved "https://codeload.github.com/bumbu/svg-pan-zoom/tar.gz/aaa68d186abab5d782191b66d2582592fe5d3c13"
6770+
67676771
symbol-observable@4.0.0:
67686772
version "4.0.0"
67696773
resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-4.0.0.tgz#5b425f192279e87f2f9b937ac8540d1984b39205"

0 commit comments

Comments
 (0)