ta-bu-ta read-param 2
·
3 mins read
·
edit
result
26c12.html
<div id="container"><div>
<script src="26b39.js"></script>
<script src="26b41.js"></script>
<script src="26b43.js"></script>
<script src="26b10.js"></script>
<script src="26b12.js"></script>
<script>
// Define global variables
let vecA = null, vecB = null, resu = null;
// Instantiate containers, output textarea, and buttons
const cnt = getContainer("container");
const inTxa = createTextarea("text-input");
const outTxa = createTextarea("text-output");
const btnDiv = createDiv("button-container");
const cvBtn = createButton("cv-button", "Clear vars");
const ciBtn = createButton("ci-button", "Clear input");
const coBtn = createButton("co-button", "Clear output");
const deBtn = createButton("de-button", "Default");
const rpBtn = createButton("rp-button", "Read params");
const adBtn = createButton("mu-button", "Add vectors");
const dtBtn = createButton("mu-button", "Dot vectors");
// Append textarea to container
cnt.append(inTxa);
cnt.append(btnDiv);
cnt.append(outTxa);
btnDiv.append(cvBtn);
btnDiv.append(ciBtn);
btnDiv.append(coBtn);
btnDiv.append(deBtn);
btnDiv.append(rpBtn);
btnDiv.append(adBtn);
btnDiv.append(dtBtn);
// Change elements flex value
changeElementsFlex(
["text-input", "3"],
["button-container", "3"] ,
["text-output", "3"],
);
// Bind consolex output to textarea and set EOL character
consolex.setOutput(outTxa);
consolex.setEOL("");
// Set onclick event to each button
ciBtn.addEventListener("click", () => {
clearTextarea("text-input");
});
coBtn.addEventListener("click", () => {
clearTextarea("text-output");
});
deBtn.addEventListener("click", () => {
inTxa.value = "# params";
inTxa.value += "\n" + "VECA 1,3,6";
inTxa.value += "\n" + "VECB 1,-2,1";
});
rpBtn.addEventListener("click", () => {
let key, line;
key = "VECA";
line = readLineFromTextarea("text-input", key);
console.log(line);
if(line == null) {
outTxa.value += key + "=" + resu + "\n";
} else {
vecA = convertLineToParams(line, "array-float");
outTxa.value += key + "=" + vecA + "\n";
}
key = "VECB";
line = readLineFromTextarea("text-input", key);
console.log(line);
if(line == null) {
outTxa.value += key + "=" + resu + "\n";
} else {
vecB = convertLineToParams(line, "array-float");
outTxa.value += key + "=" + vecB + "\n";
}
});
cvBtn.addEventListener("click", () => {
vecA = null;
vecB = null;
resu = null;
});
adBtn.addEventListener("click", () => {
if(vecA == null || vecB == null) {
outTxa.value += "RESU=" + resu + "\n";
return;
}
resu = [0, 0, 0];
resu[0] = vecA[0] + vecB[0];
resu[1] = vecA[1] + vecB[1];
resu[2] = vecA[2] + vecB[2];
outTxa.value += "RESU=" + resu + "\n";
});
dtBtn.addEventListener("click", () => {
if(vecA == null || vecB == null) {
outTxa.value += "RESU=" + resu + "\n";
return;
}
resu = 0;
resu += vecA[0] * vecB[0];
resu += vecA[1] * vecB[1];
resu += vecA[2] * vecB[2];
outTxa.value += "RESU=" + resu + "\n";
});
</script>
26c12.js
/**
* 26c12.js
* Helper functions for butiran-x/26c12 note.
*
* Author: Sparisoma Viridi (https://github.com/dudung)
* Created: 2026-03-03
*
* Exports:
* - convertLineToParams(id, key)
*/
/**
* Converts a line (string) read from a textarea element into parameter value(s).
*
* @param {string} line - The line to convert.
* @param {"string" | "int" | "float" | "array-float"} type - The expected parameter type.
* @returns {string | number | number[]} The parsed parameter value(s) based on the specified type.
*
* @example
* const value = convertLineToParams("10.5 20.3", "array-float");
*/
function convertLineToParams(line, type="string") {
let param = null;
if(type == "int") {
param = parseInt(line);
} else if(type == "float") {
param = parseFloat(line);
} else if(type == "array-float") {
param = [];
let arr = line.split(",");
for(a of arr) {
param.push(parseFloat(a));
}
} else {
param = line;
}
return param;
}
// marker: 26c12.js
(() => {
console.log("[marker] 26c12.js loaded");
})();