const dTerminalUid = "80ec5991-5ff4-4ea4-a9d5-ba5e6f739a97";
const clkTerminalUid = "ecf35b59-e7ea-46fe-ac20-ebde6fae181b";
const qTerminalUid = "105cd71f-23ea-4f9c-afaf-9f5a68853135";
const notQTerminalUid = "00e14027-b5d8-4e47-8618-1255f77403bd";
const dTerminal = flux.getNodeById(dTerminalUid, "elementTerminal")!;
const clkTerminal = flux.getNodeById(clkTerminalUid, "elementTerminal")!;
const qTerminal = flux.getNodeById(qTerminalUid, "elementTerminal")!;
const notQTerminal = flux.getNodeById(notQTerminalUid, "elementTerminal")!;
let prevClk = 0;
const maybeHighVoltage = Number(flux.properties.find((prop) => prop.name === "High Voltage")!.value);
const highVoltage = isNaN(maybeHighVoltage) ? 5 : maybeHighVoltage;
flux.on("beforeStep", () => {
let qVoltage: number | undefined;
// If clock went high last step, we want to set Q = D
if (clkTerminal.voltage >= highVoltage) {
if (prevClk === 0) {
qVoltage = dTerminal.voltage;
}
prevClk = 1;
} else {