Your IP : 192.168.165.1


Current Path : C:/Users/Mahmood/Desktop/moodle/lib/amd/build/
Upload File :
Current File : C:/Users/Mahmood/Desktop/moodle/lib/amd/build/str.min.js.map

{"version":3,"sources":["../src/str.js"],"names":["promiseCache","get_string","key","component","param","lang","get_strings","then","results","requests","requestData","pageLang","attr","replace","getCacheKey","stringPromises","map","request","cacheKey","buildReturn","promise","M","str","Promise","resolve","util","cached","LocalStorage","get","reject","push","methodname","args","stringid","stringparams","done","set","fail","length","Ajax","call","cfg","langrev","$","when","apply","strings","cache_strings","defaultLang","forEach","value","join","Deferred"],"mappings":"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","sourcesContent":["// This file is part of Moodle - http://moodle.org/\n//\n// Moodle is free software: you can redistribute it and/or modify\n// it under the terms of the GNU General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// Moodle is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n// GNU General Public License for more details.\n//\n// You should have received a copy of the GNU General Public License\n// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.\n\n/**\n * Fetch and render language strings.\n * Hooks into the old M.str global - but can also fetch missing strings on the fly.\n *\n * @module     core/str\n * @class      str\n * @package    core\n * @copyright  2015 Damyon Wiese <damyon@moodle.com>\n * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n * @since      2.9\n */\nimport $ from 'jquery';\nimport Ajax from 'core/ajax';\nimport LocalStorage from 'core/localstorage';\n\n// Module cache for the promises so that we don't make multiple\n// unnecessary requests.\nlet promiseCache = [];\n\n/**\n * Return a promise object that will be resolved into a string eventually (maybe immediately).\n *\n * @method get_string\n * @param {string} key The language string key\n * @param {string} component The language string component\n * @param {string} param The param for variable expansion in the string.\n * @param {string} lang The users language - if not passed it is deduced.\n * @return {Promise}\n */\nexport const get_string = (key, component, param, lang) => {\n    return get_strings([{key, component, param, lang}])\n        .then(results => results[0]);\n};\n\n/**\n * Make a batch request to load a set of strings\n *\n * @method get_strings\n * @param {Object[]} requests Array of { key: key, component: component, param: param, lang: lang };\n *                                      See get_string for more info on these args.\n * @return {Promise}\n */\nexport const get_strings = (requests) => {\n    let requestData = [];\n    const pageLang = $('html').attr('lang').replace(/-/g, '_');\n    // Helper function to construct the cache key.\n    const getCacheKey = ({key, component, lang = pageLang}) => {\n        if (!component) {\n            component = 'core';\n        }\n        return `core_str/${key}/${component}/${lang}`;\n    };\n\n    const stringPromises = requests.map((request) => {\n        const cacheKey = getCacheKey(request);\n        const {component, key, param, lang = pageLang} = request;\n        // Helper function to add the promise to cache.\n        const buildReturn = (promise) => {\n            // Make sure the promise cache contains our promise.\n            promiseCache[cacheKey] = promise;\n            return promise;\n        };\n\n        // Check if we can serve the string straight from M.str.\n        if (component in M.str && key in M.str[component]) {\n            return buildReturn(new Promise((resolve) => {\n                resolve(M.util.get_string(key, component, param, lang));\n            }));\n        }\n\n        // Check if the string is in the browser's local storage.\n        const cached = LocalStorage.get(cacheKey);\n        if (cached) {\n            M.str[component] = {...M.str[component], [key]: cached};\n            return buildReturn(new Promise((resolve) => {\n                resolve(M.util.get_string(key, component, param, lang));\n            }));\n        }\n\n        // Check if we've already loaded this string from the server.\n        if (cacheKey in promiseCache) {\n            return buildReturn(promiseCache[cacheKey]).then(() => {\n                return M.util.get_string(key, component, param, lang);\n            });\n        } else {\n            // We're going to have to ask the server for the string so\n            // add this string to the list of requests to be sent.\n            return buildReturn(new Promise((resolve, reject) => {\n                requestData.push({\n                    methodname: 'core_get_string',\n                    args: {\n                        stringid: key,\n                        stringparams: [],\n                        component,\n                        lang,\n                    },\n                    done: (str) => {\n                        // When we get the response from the server\n                        // we should update M.str and the browser's\n                        // local storage before resolving this promise.\n                        M.str[component] = {...M.str[component], [key]: str};\n                        LocalStorage.set(cacheKey, str);\n                        resolve(M.util.get_string(key, component, param, lang));\n                    },\n                    fail: reject\n                });\n            }));\n        }\n    });\n\n    if (requestData.length) {\n        // If we need to load any strings from the server then send\n        // off the request.\n        Ajax.call(requestData, true, false, false, 0, M.cfg.langrev);\n    }\n\n    // We need to use jQuery here because some calling code uses the\n    // .done handler instead of the .then handler.\n    return $.when.apply($, stringPromises)\n        .then((...strings) => strings);\n};\n\n/**\n * Add a list of strings to the caches.\n *\n * @method cache_strings\n * @param {Object[]} strings Array of { key: key, component: component, lang: lang, value: value }\n */\nexport const cache_strings = (strings) => {\n    const defaultLang = $('html').attr('lang').replace(/-/g, '_');\n\n    strings.forEach(({key, component, value, lang = defaultLang}) => {\n        const cacheKey = ['core_str', key, component, lang].join('/');\n\n        // Check M.str caching.\n        if (!(component in M.str) || !(key in M.str[component])) {\n            if (!(component in M.str)) {\n                M.str[component] = {};\n            }\n\n            M.str[component][key] = value;\n        }\n\n        // Check local storage.\n        if (!LocalStorage.get(cacheKey)) {\n            LocalStorage.set(cacheKey, value);\n        }\n\n        // Check the promises cache.\n        if (!(cacheKey in promiseCache)) {\n            promiseCache[cacheKey] = $.Deferred().resolve(value).promise();\n        }\n    });\n};\n"],"file":"str.min.js"}