import {get_strings} from 'core/str';

/**
 * Load the translation of strings from a strings object
 * @param {Object} strings The map of strings
 * @returns {Object} The map with strings loaded in
 */
export function load_strings(strings){
    for(let idx in strings){
        let stringkeys = [];
        for(const handle in  strings[idx]){
            const key = strings[idx][handle];
            let parts = key.split("$");
            let identifier = parts[0];
            let component = (parts.length > 1)?parts[1]:'local_treestudyplan';
            stringkeys.push({ key: identifier, component: component});
        }
        get_strings(stringkeys).then(function(str){
            let i = 0;
            for(const key in strings[idx]){
                strings[idx][key] = str[i];
                i++;
            }
        });
    }

    return strings;
}

/**
 * Load the translation of strings from a strings object based on keys
 * Used for loading values for a drop down menu or the like
 * @param {Object} string_keys The map of stringkeys
 * @returns {Object} The map with strings loaded in
 */
export function load_stringkeys(string_keys){
    for(let idx in string_keys){
        // Get text strings for condition settings
        let stringkeys = [];
        for(const i in  string_keys[idx]){
            const key = string_keys[idx][i].textkey;
            let parts = key.split("$");
            let identifier = parts[0];
            let component = (parts.length > 1)?parts[1]:'local_treestudyplan';
            stringkeys.push({ key: identifier, component: component});
        }
        get_strings(stringkeys).then(function(strings){
            for(const i in strings) {
                const s = strings[i];
                const l = string_keys[idx][i];
                l.text = s;
            }
        });
    }
    return string_keys;
}

