54 lines
1.8 KiB
JavaScript
54 lines
1.8 KiB
JavaScript
import { loadConfiguration } from "./configuration.js";
|
|
import { initializeDialogs } from "./dialogs.js";
|
|
import { addEventToButton, addEventToInput, debounce, getElements } from "./dom-utils.js";
|
|
import { awaitEvent, emitEvent, listenTo } from "./events.js";
|
|
import { loadExampleFile, showOpenFileDialog } from "./files.js";
|
|
import { initializePlanner } from "./planner.js";
|
|
import { initializeMenuResizing } from "./resize-menus.js";
|
|
import { getState, setState, STATE } from "./state.js";
|
|
import { initializeTooltips } from "./tooltip.js";
|
|
import { initializeMenuBar } from "./menu-bar.js";
|
|
|
|
window.addEventListener("load", () => {
|
|
emitEvent("setup-start");
|
|
|
|
getElements("state", "*").forEach(e => {
|
|
e.classList.add("hidden");
|
|
if (e.dataset.state === getState()) {
|
|
e.classList.remove("hidden");
|
|
}
|
|
});
|
|
|
|
addEventToInput("configuration", "input", loadConfiguration);
|
|
addEventToButton("load-configuration", "click", loadConfiguration);
|
|
addEventToInput("block-filter", "input", debounce(e => {
|
|
emitEvent("block-picker:filter", e.target.value);
|
|
}));
|
|
addEventToButton("open-file", "click", showOpenFileDialog);
|
|
|
|
listenTo("state", () => {
|
|
console.log("State changed", getState());
|
|
getElements("state", "*").forEach(e => {
|
|
e.classList.add("hidden");
|
|
if (e.dataset.state === getState()) {
|
|
e.classList.remove("hidden");
|
|
}
|
|
});
|
|
});
|
|
|
|
listenTo("config:end", () => setState(STATE.planning));
|
|
|
|
initializePlanner();
|
|
initializeMenuResizing();
|
|
initializeTooltips();
|
|
initializeMenuBar();
|
|
initializeDialogs();
|
|
|
|
emitEvent("setup-end");
|
|
|
|
void loadConfiguration("catastrophe");
|
|
|
|
awaitEvent("config:end").then(() => loadExampleFile("tiny reactor"));
|
|
// awaitEvent("config:end").then(() => loadExampleFile("multi-reactor"));
|
|
});
|