static _calculateDecimalPlacesOnUpdate(settings, currentSettings = null) {
        // Check the `decimalPlaces*` options and output any warnings as needed, before modifying those options
        this._validateDecimalPlacesRawValue(settings);

        // Update phase
        if (AutoNumericHelper.isNull(currentSettings)) {
            AutoNumericHelper.throwError(`When updating the settings, the previous ones should be passed as an argument.`);
        }

        const decimalPlacesInOptions = 'decimalPlaces' in settings;
        if (!(decimalPlacesInOptions ||
                'decimalPlacesRawValue' in settings ||
                'decimalPlacesShownOnFocus' in settings ||
                'decimalPlacesShownOnBlur' in settings ||
                'rawValueDivisor' in settings)) {
            // Do Nothing if no decimal places-related options are modified
            return;
        }

        // Overwrite the `decimalPlaces*` values if the `decimalPlaces*` options are not set in the `settings`
        if (decimalPlacesInOptions) {
            if (!('decimalPlacesShownOnFocus' in settings) ||
                settings.decimalPlacesShownOnFocus === AutoNumeric.options.decimalPlacesShownOnFocus.useDefault)  {
                settings.decimalPlacesShownOnFocus = settings.decimalPlaces;
            }

            if (!('decimalPlacesShownOnBlur' in settings) ||
                settings.decimalPlacesShownOnBlur === AutoNumeric.options.decimalPlacesShownOnBlur.useDefault)  {
                settings.decimalPlacesShownOnBlur = settings.decimalPlaces;
            }

            if (!('decimalPlacesRawValue' in settings) ||
                settings.decimalPlacesRawValue === AutoNumeric.options.decimalPlacesRawValue.useDefault)  {
                settings.decimalPlacesRawValue = settings.decimalPlaces;
            }
        } else {
            if (AutoNumericHelper.isUndefined(settings.decimalPlacesShownOnFocus)) {
                settings.decimalPlacesShownOnFocus = currentSettings.decimalPlacesShownOnFocus;
            }

            if (AutoNumericHelper.isUndefined(settings.decimalPlacesShownOnBlur)) {
                settings.decimalPlacesShownOnBlur = currentSettings.decimalPlacesShownOnBlur;
            }
        }

        // Add the additional decimal places to the raw value
        let additionalDecimalPlacesRawValue = 0;
        if (settings.rawValueDivisor && settings.rawValueDivisor !== AutoNumeric.options.rawValueDivisor.none) {
            additionalDecimalPlacesRawValue = String(settings.rawValueDivisor).length - 1; // i.e. Dividing by '100' adds 2 decimal places to the needed precision
            if (additionalDecimalPlacesRawValue < 0) {
                additionalDecimalPlacesRawValue = 0;
            }
        }

        if (!settings.decimalPlaces && !settings.decimalPlacesRawValue) {
            settings.decimalPlacesRawValue = Math.max(
                Math.max(settings.decimalPlacesShownOnBlur, settings.decimalPlacesShownOnFocus) + additionalDecimalPlacesRawValue,
                Number(currentSettings.originalDecimalPlacesRawValue) + additionalDecimalPlacesRawValue,
            );
        } else {
            settings.decimalPlacesRawValue = Math.max(
                Math.max(settings.decimalPlacesShownOnBlur, settings.decimalPlacesShownOnFocus) + additionalDecimalPlacesRawValue,
                Number(settings.decimalPlacesRawValue) + additionalDecimalPlacesRawValue,
            );
        }
    }
Recalculate the number de decimal places to be used by the AutoNumeric object, for each of its state, and for its formatted and raw value.
By default, the `rawValue` precision is the same as the formatted value one.

This method is close to the one called during initialization, `_calculateDecimalPlacesOnInit()`, but with slight difference so that the `decimalPlaces*` options are correctly updated as needed.

This methods set the following options accordingly to their own value and the mandatory `decimalPlaces` option:
- decimalPlacesRawValue     (nullable)
- decimalPlacesShownOnBlur  (nullable)
- decimalPlacesShownOnFocus (nullable)

Note: the `decimalPlaces` option is only used here and only serve to define those three previous options value.
AutoNumeric will then *only* use `decimalPlacesRawValue`, `decimalPlacesShownOnBlur` and `decimalPlacesShownOnFocus` from there.

This methods directly modifies the `settings` object passed as a parameter.

@param {object} settings This is an object with the new settings to use.
@param {object} currentSettings This is the current settings (`this.settings`) used by the element.
@private