/
app.js
153 lines (145 loc) · 5.71 KB
/
app.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
/*global document:false window:false */
/*eslint-disable react/no-multi-comp */
import React from "react";
import ReactDOM from "react-dom";
import { keys } from "lodash";
import AccessibilityDemo from "./components/accessibility-demo";
import AreaDemo from "./components/victory-area-demo";
import AxisDemo from "./components/victory-axis-demo";
import BarDemo from "./components/victory-bar-demo";
import ChartDemo from "./components/victory-chart-demo";
import LineDemo from "./components/victory-line-demo";
import HistogramDemo from "./components/victory-histogram-demo";
import ScatterDemo from "./components/victory-scatter-demo";
import ErrorBarDemo from "./components/victory-errorbar-demo";
import BoxplotDemo from "./components/victory-box-plot-demo";
import CandlestickDemo from "./components/victory-candlestick-demo";
import EventsDemo from "./components/events-demo";
import GroupDemo from "./components/group-demo";
import VoronoiDemo from "./components/victory-voronoi-demo";
import TooltipDemo from "./components/victory-tooltip-demo";
import ZoomContainerDemo from "./components/victory-zoom-container-demo";
import VoronoiContainerDemo from "./components/victory-voronoi-container-demo";
import CursorContainerDemo from "./components/victory-cursor-container-demo";
import CreateContainerDemo from "./components/create-container-demo";
import BrushContainerDemo from "./components/victory-brush-container-demo";
import AnimationDemo from "./components/animation-demo";
import SelectionDemo from "./components/selection-demo";
import PolarDemo from "./components/victory-polar-chart-demo";
import ImmutableDemo from "./components/immutable-demo";
import ExternalEventsDemo from "./components/external-events-demo";
import VictoryBrushLineDemo from "./components/victory-brush-line-demo";
import PerformanceDemo from "./components/performance";
import DebugDemo from "./components/debug-demo";
import VictoryLabelDemo from "./components/victory-label-demo";
import VictoryLegendDemo from "./components/victory-legend-demo";
import VictoryPieDemo from "./components/victory-pie-demo";
import VictoryDemo from "./components/victory-demo";
import HorizontalDemo from "./components/horizontal-demo";
import DraggableDemo from "./components/draggable-demo";
import OuiaDemo from "./components/ouia-demo";
const MAP = {
"/accessibility": { component: AccessibilityDemo, name: "AccessibilityDemo" },
"/axis": { component: AxisDemo, name: "AxisDemo" },
"/area": { component: AreaDemo, name: "AreaDemo" },
"/bar": { component: BarDemo, name: "BarDemo" },
"/chart": { component: ChartDemo, name: "ChartDemo" },
"/line": { component: LineDemo, name: "LineDemo" },
"/histogram": { component: HistogramDemo, name: "HistogramDemo" },
"/scatter": { component: ScatterDemo, name: "ScatterDemo" },
"/errorbar": { component: ErrorBarDemo, name: "ErrorBarDemo" },
"/candlestick": { component: CandlestickDemo, name: "CandlestickDemo" },
"/boxplot": { component: BoxplotDemo, name: "BoxplotDemo" },
"/events": { component: EventsDemo, name: "EventsDemo" },
"/group": { component: GroupDemo, name: "GroupDemo" },
"/voronoi": { component: VoronoiDemo, name: "VoronoiDemo" },
"/tooltip": { component: TooltipDemo, name: "TooltipDemo" },
"/zoom-container": {
component: ZoomContainerDemo,
name: "ZoomContainerDemo"
},
"/voronoi-container": {
component: VoronoiContainerDemo,
name: "VoronoiContainerDemo"
},
"/cursor-container": {
component: CursorContainerDemo,
name: "CursorContainerDemo"
},
"/brush-container": {
component: BrushContainerDemo,
name: "BrushContainerDemo"
},
"/animation": { component: AnimationDemo, name: "AnimationDemo" },
"/selection-container": { component: SelectionDemo, name: "SelectionDemo" },
"/create-container": {
component: CreateContainerDemo,
name: "CreateContainerDemo"
},
"/polar": { component: PolarDemo, name: "PolarDemo" },
"/immutable": { component: ImmutableDemo, name: "ImmutableDemo" },
"/external-events": {
component: ExternalEventsDemo,
name: "ExternalEventsDemo"
},
"/victory-brush-line": {
component: VictoryBrushLineDemo,
name: "BrushLineDemo"
},
"/performance": { component: PerformanceDemo, name: "PerformanceDemo" },
"/debug": { component: DebugDemo, name: "DebugDemo" },
"/label": { component: VictoryLabelDemo, name: "LabelDemo" },
"/legend": { component: VictoryLegendDemo, name: "LegendDemo" },
"/pie": { component: VictoryPieDemo, name: "PieDemo" },
"/victory": { component: VictoryDemo, name: "VictoryDemo" },
"/horizontal": { component: HorizontalDemo, name: "HorizontalDemo" },
"/draggable": { component: DraggableDemo, name: "DraggableDemo" },
"/ouia": { component: OuiaDemo, name: "OuiaDemo" }
};
class Home extends React.Component {
render() {
return <h1>Pick A Demo</h1>;
}
}
class App extends React.Component {
constructor() {
super();
this.state = {
route: window.location.hash.substr(1)
};
}
componentDidMount() {
window.addEventListener("hashchange", () => {
this.setState({
route: window.location.hash.substr(1)
});
});
}
getDemo() {
const item = MAP[this.state.route] || {};
return item.component || Home;
}
render() {
const Child = this.getDemo();
const routes = keys(MAP);
return (
<div>
<h1>Demos</h1>
<ul>
{routes.map((route, index) => {
const item = MAP[route] || {};
return (
<li key={index}>
<a href={`#${route}`}>{item.name}</a>
</li>
);
})}
</ul>
<React.StrictMode>
<Child />
</React.StrictMode>
</div>
);
}
}
ReactDOM.render(<App />, document.getElementById("content"));