function onEqChanged()

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