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
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());
|
|
});
|
|
});
|