Skip to content

Commit ee82072

Browse files
add TimelinesChart class for solver visualization; export from index.ts
1 parent d4cefdd commit ee82072

File tree

2 files changed

+49
-0
lines changed

2 files changed

+49
-0
lines changed

src/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ import cytoscapePopper, { RefElement } from 'cytoscape-popper';
44
import tippy from 'tippy.js';
55

66
export { solver } from './solver';
7+
export { SolverGraph } from './solver_graph';
8+
export { TimelinesChart } from './solver_timelines';
79

810
function tippyFactory(ref: RefElement, content: HTMLElement) {
911
// Since tippy constructor requires DOM element/elements, create a placeholder

src/solver_timelines.ts

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
import { solver } from "./solver";
2+
import Plotly from 'plotly.js';
3+
4+
export class TimelinesChart implements solver.SolverListener {
5+
6+
private solver: solver.Solver;
7+
private layout = {
8+
autosize: true,
9+
xaxis: { title: 'Time' },
10+
showlegend: false,
11+
shapes: [
12+
{
13+
type: 'line',
14+
x0: 0,
15+
y0: 0,
16+
x1: 0,
17+
y1: 1,
18+
xref: 'x',
19+
yref: 'paper',
20+
line: {
21+
color: 'darkgrey',
22+
width: 2
23+
}
24+
}
25+
]
26+
};
27+
private config = { responsive: true, displaylogo: false };
28+
29+
constructor(solver: solver.Solver) {
30+
this.solver = solver;
31+
this.solver.add_solver_listener(this);
32+
}
33+
34+
init(items: Map<string, solver.values.Value>, atoms: Map<number, solver.values.Atom>, flaws: Map<number, solver.graph.Flaw>, resolvers: Map<number, solver.graph.Resolver>, c_flaw: solver.graph.Flaw | null, c_resolver: solver.graph.Resolver | null): void {
35+
Plotly.react('slv-' + this.solver.get_id() + '-timelines', [], this.layout, this.config);
36+
}
37+
38+
flaw_created(flaw: solver.graph.Flaw): void { }
39+
40+
flaw_cost_changed(flaw: solver.graph.Flaw): void { }
41+
42+
current_flaw(flaw: solver.graph.Flaw): void { }
43+
44+
resolver_created(resolver: solver.graph.Resolver): void { }
45+
46+
current_resolver(resolver: solver.graph.Resolver): void { }
47+
}

0 commit comments

Comments
 (0)