/**=====LICENSE STATEMENT START=====
Translator++
CAT (Computer-Assisted Translation) tools and framework to create quality
translations and localizations efficiently.
Copyright (C) 2018 Dreamsavior<dreamsavior@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
=====LICENSE STATEMENT END=====*/
const thisWorker = new (require("www/js/CommonWorker.js").Worker)();
thisWorker.process = async function(workerData) {
if (workerData.command == "calculateHeights") {
let calculateTableHeight = function(table) {
if (!table) return;
let totalLines = 0;
// Step 1: Find the maximum number of lines in any cell
for (let i = 0; i < table.length; i++) {
if (!table[i]?.length) continue;
let thisLength = 1;
for (let j = 0; j < table[i].length; j++) {
if (!table[i][j]) continue;
const lines = table[i][j].split('\n').length;
if (lines > thisLength) {
thisLength = lines;
}
}
totalLines += thisLength;
}
// Step 2: Calculate the height
if (totalLines < table.length) return table.length;
return totalLines;
}
return(calculateTableHeight(workerData.data));
}
}
thisWorker.init();