37 lines
1.2 KiB
JavaScript
37 lines
1.2 KiB
JavaScript
/**
|
|
* Initializes graphs on the website.
|
|
*
|
|
* @param {Array<[id: string, commands: string[], initializer: (any) => void]>} graphs
|
|
* The graphs to initialize.
|
|
*/
|
|
window.graphs = (graphs) => {
|
|
window.addEventListener(
|
|
"load",
|
|
() =>
|
|
{
|
|
for (let entry of graphs) {
|
|
new GGBApplet(
|
|
{
|
|
height: 250,
|
|
preventFocus: true,
|
|
perspective: "G",
|
|
enableFileFeatures: false,
|
|
appletOnLoad: (api) => {
|
|
for (let command of entry[1]) {
|
|
api.evalCommand(command);
|
|
}
|
|
|
|
for (let object of api.getAllObjectNames()) {
|
|
api.evalCommand(`ShowLabel(${object}, true)`);
|
|
}
|
|
|
|
(entry[2] ?? (() => {}))(api);
|
|
api.evalCommand("ZoomIn()");
|
|
(entry[3] ?? (() => {}))(api);
|
|
},
|
|
...(entry[2] ?? {})
|
|
},
|
|
true).inject(entry[0]);
|
|
}
|
|
});
|
|
}
|