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/utils.min.js.map

{"version":3,"sources":["../src/utils.js"],"names":["throttle","func","wait","onCooldown","runAgain","run","args","apply","setTimeout","recurse","debounce","timeout","clearTimeout"],"mappings":"mJAkCwB,QAAXA,CAAAA,QAAW,CAACC,CAAD,CAAOC,CAAP,CAAgB,IAChCC,CAAAA,CAAU,GADsB,CAEhCC,CAAQ,CAAG,IAFqB,CAG9BC,CAAG,CAAG,UAAkB,4BAANC,CAAM,uBAANA,CAAM,iBAC1B,GAAiB,IAAb,GAAAF,CAAJ,CAAuB,CAEnBA,CAAQ,GACX,CAHD,IAGO,CAGHA,CAAQ,GACX,CAED,GAAID,CAAJ,CAAgB,CAEZ,MACH,CAEDF,CAAI,CAACM,KAAL,CAAW,IAAX,CAAiBD,CAAjB,EACAH,CAAU,GAAV,CAEAK,UAAU,CAAC,UAAM,CACb,GAAMC,CAAAA,CAAO,CAAGL,CAAhB,CACAD,CAAU,GAAV,CACAC,CAAQ,CAAG,IAAX,CAEA,GAAIK,CAAJ,CAAa,CACTJ,CAAG,CAACC,CAAD,CACN,CACJ,CARS,CAQPJ,CARO,CASb,CA9BmC,CAgCpC,MAAOG,CAAAA,CACV,C,YAWuB,QAAXK,CAAAA,QAAW,CAACT,CAAD,CAAOC,CAAP,CAAgB,CACpC,GAAIS,CAAAA,CAAO,CAAG,IAAd,CACA,MAAO,WAAkB,mCAANL,CAAM,uBAANA,CAAM,iBACrBM,YAAY,CAACD,CAAD,CAAZ,CACAA,CAAO,CAAGH,UAAU,CAAC,UAAM,CACvBP,CAAI,CAACM,KAAL,CAAW,CAAX,CAAiBD,CAAjB,CACH,CAFmB,CAEjBJ,CAFiB,CAGvB,CACJ,C","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 * Utility functions.\n *\n * @copyright  2019 Ryan Wyllie <ryan@moodle.com>\n * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\n\n /**\n  * Create a wrapper function to throttle the execution of the given\n  * function to at most once every specified period.\n  *\n  * If the function is attempted to be executed while it's in cooldown\n  * (during the wait period) then it'll immediately execute again as\n  * soon as the cooldown is over.\n  *\n  * @param {Function} func The function to throttle\n  * @param {Number} wait The number of milliseconds to wait between executions\n  * @return {Function}\n  */\nexport const throttle = (func, wait) => {\n    let onCooldown = false;\n    let runAgain = null;\n    const run = function(...args) {\n        if (runAgain === null) {\n            // This is the first time the function has been called.\n            runAgain = false;\n        } else {\n            // This function has been called a second time during the wait period\n            // so re-run it once the wait period is over.\n            runAgain = true;\n        }\n\n        if (onCooldown) {\n            // Function has already run for this wait period.\n            return;\n        }\n\n        func.apply(this, args);\n        onCooldown = true;\n\n        setTimeout(() => {\n            const recurse = runAgain;\n            onCooldown = false;\n            runAgain = null;\n\n            if (recurse) {\n                run(args);\n            }\n        }, wait);\n    };\n\n    return run;\n};\n\n/**\n  * Create a wrapper function to debounce the execution of the given\n  * function. Each attempt to execute the function will reset the cooldown\n  * period.\n  *\n  * @param {Function} func The function to debounce\n  * @param {Number} wait The number of milliseconds to wait after the final attempt to execute\n  * @return {Function}\n  */\nexport const debounce = (func, wait) => {\n    let timeout = null;\n    return function(...args) {\n        clearTimeout(timeout);\n        timeout = setTimeout(() => {\n            func.apply(this, args);\n        }, wait);\n    };\n};\n"],"file":"utils.min.js"}