in ui/src/app/common/components/indigo-components/directives/stoich-table/services/reagents/reagents-calculation.service.js [167:208]
function onEqChanged(row) {
if (!row.eq.value) {
row.eq.value = row.eq.prevValue;
return;
}
// reset volume
if (onEqChangedCanResetVolume(row)) {
row.resetFields([fieldTypes.volume]);
setMolDependingOfLimiting(row, getLimitingRow());
return;
}
if (row.isLimiting()) {
if (row.isMolManuallyEntered() && row.isWeightPresent()) {
var limitingWeight = mathCalculation.computeWeightByEq(
row.weight.value, row.eq.value, row.eq.prevValue
);
row.setComputedWeight(limitingWeight);
}
if (row.isMolPresent()) {
updateRows();
}
} else {
if (row.isWeightPresent()) {
var weight = mathCalculation.computeWeightByEq(row.weight.value, row.eq.value, row.eq.prevValue);
row.setComputedWeight(weight);
}
if (row.isMolPresent()) {
var mol = mathCalculation.computeMolByEq(row.mol.value, row.eq.value, row.eq.prevValue);
row.setComputedMol(mol);
}
row.updateVolume();
}
row.eq.prevValue = row.eq.value;
}