You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

106 lines
2.7 KiB

var outputs = [];
var simulator = [];
var graph = "";
var textarea = document.getElementById("firstInput");
var editor = CodeMirror.fromTextArea(textarea, {
mode: "text-x/myLanguage",
lineNumbers: true,
autoCloseTags: true,
});
var input2 = document.getElementById("secondInput");
var editor2 = CodeMirror.fromTextArea(input2, {
mode: "text-x/myLanguage",
lineNumbers: true,
});
document.addEventListener("DOMContentLoaded", function () {
//Run function
document.getElementById("runBtn").addEventListener("click", function () {
var input1 = editor.getValue();
console.log("CodeMirror input1:", input1);
var input2 = editor2.getValue();
console.log("Second input:", input2);
if (!input1 || !input2) {
Toastify({
text: "Input fields cannot be empty!",
duration: 3000,
close: true,
gravity: "top",
}).showToast();
} else {
outputFunction(input1, input2);
simulatorFunction(input1, input2);
//graphFunction(input1, input2);
updateTextarea(getActiveTabContent());
// Clear the input fields after execution
document.getElementById("secondInput").value = "";
// Log checked checkbox values
let checked = document.querySelectorAll("input[type='checkbox']:checked");
let checkedValues = Array.from(checked).map((cb) => cb.value);
console.log(checkedValues);
}
});
});
//Functions
function simulatorFunction(input1, input2) {
var result = input1 + input2;
simulator.push(result);
}
function outputFunction(input1, input2) {
var result = input1 + " " + input2;
outputs.push(result);
}
function graphFunction(svg) {
graph = svg;
}
function getActiveTabContent() {
var activeTabId = document.querySelector(".rightNav.active").id;
switch (activeTabId) {
case "output":
return outputs;
case "simulator":
return simulator;
case "graph":
return graph;
default:
return [];
}
}
function updateTextarea(data) {
scrollableOutput.innerHTML = "";
if (data == graph) {
if (data == "") {
scrollableOutput.innerHTML = "";
} else {
scrollableOutput.appendChild(data);
}
} else {
const formattedData = data.join("\r\n").replace(/(\r\n|\r|\n)/g, "<br>");
scrollableOutput.innerHTML = formattedData;
}
}
// Add click event listeners to tab links
document.querySelectorAll(".rightNav").forEach((navLink) => {
navLink.addEventListener("click", function (event) {
event.preventDefault();
document.querySelectorAll(".rightNav").forEach((navLink) => {
navLink.classList.remove("active");
});
this.classList.add("active");
updateTextarea(getActiveTabContent());
});
});