UNPKG

1.25 kBPlain TextView Raw
1import { PathSegment, TaxonDisplayInfo, NodeIdentifier } from '@/types';
2
3export 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
32export 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 // It should not be counted.
55 toPathElements(): NodeIdentifier[] {
56 return [];
57 }
58}