_computeCachedSettings(settings) {
        const settingsMap = settings.reduce((map, {key, value}) => ({...map, [key]: value}), {});

        return settings.map((setting) => {
            return {
                ...setting,
                // If a setting is not visible, set the value to HIDDEN_SETTING_VALUE so that it is not exposed in the cache
                // (meaning it also won't be exposed in the theme when rendering)
                value: setting.visibility && nql(setting.visibility).queryJSON(settingsMap) === false
                    ? HIDDEN_SETTING_VALUE
                    : setting.value
            };
        });
    }
Compute the settings to cache, taking into account visibility rules

@param {Object[]} settings - list of setting objects
@returns {Object[]} - list of setting objects with visibility rules applied
@private