1 | import { PathSegment, TaxonDisplayInfo, NodeIdentifier } from '@/types';
|
2 |
|
3 | export class DefinedPathSegment implements PathSegment {
|
4 | isVisible: boolean;
|
5 | nodeId: NodeIdentifier;
|
6 | content: string;
|
7 |
|
8 | constructor(id: NodeIdentifier, content: string) {
|
9 | this.isVisible = true;
|
10 | this.nodeId = id;
|
11 | this.content = content;
|
12 | }
|
13 |
|
14 | toTaxonDisplayInfo(level: number): TaxonDisplayInfo {
|
15 | return {
|
16 | level: level,
|
17 | value: this.content,
|
18 | isVisible: this.isVisible
|
19 | }
|
20 | }
|
21 |
|
22 |
|
23 | hasDefiniteValue(): boolean {
|
24 | return true;
|
25 | }
|
26 |
|
27 | toPathElements(): NodeIdentifier[] {
|
28 | return [this.nodeId]
|
29 | }
|
30 | }
|
31 |
|
32 | export class TentativePathSegment implements PathSegment {
|
33 | isVisible: boolean;
|
34 |
|
35 | constructor() {
|
36 | this.isVisible = true;
|
37 | }
|
38 |
|
39 | hasDefiniteValue(): boolean {
|
40 | return false;
|
41 | }
|
42 |
|
43 | toTaxonDisplayInfo(level: number): TaxonDisplayInfo {
|
44 | if (level < 1)
|
45 | throw new Error("level must be 1-based");
|
46 |
|
47 | return {
|
48 | level: level,
|
49 | value: "",
|
50 | isVisible: this.isVisible
|
51 | }
|
52 | }
|
53 |
|
54 |
|
55 | toPathElements(): NodeIdentifier[] {
|
56 | return [];
|
57 | }
|
58 | }
|