{"version":3,"file":"loglevel.min.js","sources":["https:\/\/lms.spbstu.ru\/lib\/amd\/src\/loglevel.js"],"sourcesContent":["\/\/ Copyright (c) 2013 Tim Perry\n\/\/\n\/\/ Permission is hereby granted, free of charge, to any person\n\/\/ obtaining a copy of this software and associated documentation\n\/\/ files (the \"Software\"), to deal in the Software without\n\/\/ restriction, including without limitation the rights to use,\n\/\/ copy, modify, merge, publish, distribute, sublicense, and\/or sell\n\/\/ copies of the Software, and to permit persons to whom the\n\/\/ Software is furnished to do so, subject to the following\n\/\/ conditions:\n\/\/\n\/\/ The above copyright notice and this permission notice shall be\n\/\/ included in all copies or substantial portions of the Software.\n\/\/\n\/\/ THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n\/\/ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\n\/\/ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n\/\/ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n\/\/ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n\/\/ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n\/\/ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n\/\/ OTHER DEALINGS IN THE SOFTWARE.\n\n\/\/ Description of import into Moodle:\n\/\/ Download from https:\/\/github.com\/pimterry\/loglevel\/tree\/master\/dist\n\/\/ Copy loglevel.js into lib\/amd\/src\/ in Moodle folder.\n\/\/ Add the license as a comment to the file and these instructions.\n\n\/*! loglevel - v1.6.6 - https:\/\/github.com\/pimterry\/loglevel - (c) 2019 Tim Perry - licensed MIT *\/\n(function (root, definition) {\n \"use strict\";\n if (typeof define === 'function' && define.amd) {\n define(definition);\n } else if (typeof module === 'object' && module.exports) {\n module.exports = definition();\n } else {\n root.log = definition();\n }\n}(this, function () {\n \"use strict\";\n\n \/\/ Slightly dubious tricks to cut down minimized file size\n var noop = function() {};\n var undefinedType = \"undefined\";\n var isIE = (typeof window !== undefinedType) && (\n \/Trident\\\/|MSIE \/.test(window.navigator.userAgent)\n );\n\n var logMethods = [\n \"trace\",\n \"debug\",\n \"info\",\n \"warn\",\n \"error\"\n ];\n\n \/\/ Cross-browser bind equivalent that works at least back to IE6\n function bindMethod(obj, methodName) {\n var method = obj[methodName];\n if (typeof method.bind === 'function') {\n return method.bind(obj);\n } else {\n try {\n return Function.prototype.bind.call(method, obj);\n } catch (e) {\n \/\/ Missing bind shim or IE8 + Modernizr, fallback to wrapping\n return function() {\n return Function.prototype.apply.apply(method, [obj, arguments]);\n };\n }\n }\n }\n\n \/\/ Trace() doesn't print the message in IE, so for that case we need to wrap it\n function traceForIE() {\n if (console.log) {\n if (console.log.apply) {\n console.log.apply(console, arguments);\n } else {\n \/\/ In old IE, native console methods themselves don't have apply().\n Function.prototype.apply.apply(console.log, [console, arguments]);\n }\n }\n if (console.trace) console.trace();\n }\n\n \/\/ Build the best logging method possible for this env\n \/\/ Wherever possible we want to bind, not wrap, to preserve stack traces\n function realMethod(methodName) {\n if (methodName === 'debug') {\n methodName = 'log';\n }\n\n if (typeof console === undefinedType) {\n return false; \/\/ No method possible, for now - fixed later by enableLoggingWhenConsoleArrives\n } else if (methodName === 'trace' && isIE) {\n return traceForIE;\n } else if (console[methodName] !== undefined) {\n return bindMethod(console, methodName);\n } else if (console.log !== undefined) {\n return bindMethod(console, 'log');\n } else {\n return noop;\n }\n }\n\n \/\/ These private functions always need `this` to be set properly\n\n function replaceLoggingMethods(level, loggerName) {\n \/*jshint validthis:true *\/\n for (var i = 0; i < logMethods.length; i++) {\n var methodName = logMethods[i];\n this[methodName] = (i < level) ?\n noop :\n this.methodFactory(methodName, level, loggerName);\n }\n\n \/\/ Define log.log as an alias for log.debug\n this.log = this.debug;\n }\n\n \/\/ In old IE versions, the console isn't present until you first open it.\n \/\/ We build realMethod() replacements here that regenerate logging methods\n function enableLoggingWhenConsoleArrives(methodName, level, loggerName) {\n return function () {\n if (typeof console !== undefinedType) {\n replaceLoggingMethods.call(this, level, loggerName);\n this[methodName].apply(this, arguments);\n }\n };\n }\n\n \/\/ By default, we use closely bound real methods wherever possible, and\n \/\/ otherwise we wait for a console to appear, and then try again.\n function defaultMethodFactory(methodName, level, loggerName) {\n \/*jshint validthis:true *\/\n return realMethod(methodName) ||\n enableLoggingWhenConsoleArrives.apply(this, arguments);\n }\n\n function Logger(name, defaultLevel, factory) {\n var self = this;\n var currentLevel;\n var storageKey = \"loglevel\";\n if (name) {\n storageKey += \":\" + name;\n }\n\n function persistLevelIfPossible(levelNum) {\n var levelName = (logMethods[levelNum] || 'silent').toUpperCase();\n\n if (typeof window === undefinedType) return;\n\n \/\/ Use localStorage if available\n try {\n window.localStorage[storageKey] = levelName;\n return;\n } catch (ignore) {}\n\n \/\/ Use session cookie as fallback\n try {\n window.document.cookie =\n encodeURIComponent(storageKey) + \"=\" + levelName + \";\";\n } catch (ignore) {}\n }\n\n function getPersistedLevel() {\n var storedLevel;\n\n if (typeof window === undefinedType) return;\n\n try {\n storedLevel = window.localStorage[storageKey];\n } catch (ignore) {}\n\n \/\/ Fallback to cookies if local storage gives us nothing\n if (typeof storedLevel === undefinedType) {\n try {\n var cookie = window.document.cookie;\n var location = cookie.indexOf(\n encodeURIComponent(storageKey) + \"=\");\n if (location !== -1) {\n storedLevel = \/^([^;]+)\/.exec(cookie.slice(location))[1];\n }\n } catch (ignore) {}\n }\n\n \/\/ If the stored level is not valid, treat it as if nothing was stored.\n if (self.levels[storedLevel] === undefined) {\n storedLevel = undefined;\n }\n\n return storedLevel;\n }\n\n \/*\n *\n * Public logger API - see https:\/\/github.com\/pimterry\/loglevel for details\n *\n *\/\n\n self.name = name;\n\n self.levels = { \"TRACE\": 0, \"DEBUG\": 1, \"INFO\": 2, \"WARN\": 3,\n \"ERROR\": 4, \"SILENT\": 5};\n\n self.methodFactory = factory || defaultMethodFactory;\n\n self.getLevel = function () {\n return currentLevel;\n };\n\n self.setLevel = function (level, persist) {\n if (typeof level === \"string\" && self.levels[level.toUpperCase()] !== undefined) {\n level = self.levels[level.toUpperCase()];\n }\n if (typeof level === \"number\" && level >= 0 && level <= self.levels.SILENT) {\n currentLevel = level;\n if (persist !== false) { \/\/ defaults to true\n persistLevelIfPossible(level);\n }\n replaceLoggingMethods.call(self, level, name);\n if (typeof console === undefinedType && level < self.levels.SILENT) {\n return \"No console available for logging\";\n }\n } else {\n throw \"log.setLevel() called with invalid level: \" + level;\n }\n };\n\n self.setDefaultLevel = function (level) {\n if (!getPersistedLevel()) {\n self.setLevel(level, false);\n }\n };\n\n self.enableAll = function(persist) {\n self.setLevel(self.levels.TRACE, persist);\n };\n\n self.disableAll = function(persist) {\n self.setLevel(self.levels.SILENT, persist);\n };\n\n \/\/ Initialize with the right level\n var initialLevel = getPersistedLevel();\n if (initialLevel == null) {\n initialLevel = defaultLevel == null ? \"WARN\" : defaultLevel;\n }\n self.setLevel(initialLevel, false);\n }\n\n \/*\n *\n * Top-level API\n *\n *\/\n\n var defaultLogger = new Logger();\n\n var _loggersByName = {};\n defaultLogger.getLogger = function getLogger(name) {\n if (typeof name !== \"string\" || name === \"\") {\n throw new TypeError(\"You must supply a name when creating a logger.\");\n }\n\n var logger = _loggersByName[name];\n if (!logger) {\n logger = _loggersByName[name] = new Logger(\n name, defaultLogger.getLevel(), defaultLogger.methodFactory);\n }\n return logger;\n };\n\n \/\/ Grab the current global log variable in case of overwrite\n var _log = (typeof window !== undefinedType) ? window.log : undefined;\n defaultLogger.noConflict = function() {\n if (typeof window !== undefinedType &&\n window.log === defaultLogger) {\n window.log = _log;\n }\n\n return defaultLogger;\n };\n\n defaultLogger.getLoggers = function getLoggers() {\n return _loggersByName;\n };\n\n return defaultLogger;\n}));\n"],"names":["root","definition","this","noop","isIE","window","test","navigator","userAgent","logMethods","bindMethod","obj","methodName","method","bind","Function","prototype","call","e","apply","arguments","traceForIE","console","log","trace","realMethod","undefined","replaceLoggingMethods","level","loggerName","i","length","methodFactory","debug","enableLoggingWhenConsoleArrives","defaultMethodFactory","Logger","name","defaultLevel","factory","currentLevel","self","storageKey","getPersistedLevel","storedLevel","localStorage","ignore","_typeof","cookie","document","location","indexOf","encodeURIComponent","exec","slice","levels","getLevel","setLevel","persist","toUpperCase","SILENT","levelNum","levelName","persistLevelIfPossible","setDefaultLevel","enableAll","TRACE","disableAll","initialLevel","defaultLogger","_loggersByName","getLogger","TypeError","logger","_log","noConflict","getLoggers","define","amd","module","exports"],"mappings":"0QA6BC,IAAUA,KAAMC,WAAND,KASTE,OATeD,WAST,eAIAE,KAAO,aAEPC,KADgB,mCACDC,2BAAAA,UACf,kBAAkBC,KAAKD,OAAOE,UAAUC,WAGxCC,WAAa,CACb,QACA,QACA,OACA,OACA,kBAIKC,WAAWC,IAAKC,gBACjBC,OAASF,IAAIC,eACU,mBAAhBC,OAAOC,YACPD,OAAOC,KAAKH,gBAGRI,SAASC,UAAUF,KAAKG,KAAKJ,OAAQF,KAC9C,MAAOO,UAEE,kBACIH,SAASC,UAAUG,MAAMA,MAAMN,OAAQ,CAACF,IAAKS,uBAO3DC,aACDC,QAAQC,MACJD,QAAQC,IAAIJ,MACZG,QAAQC,IAAIJ,MAAMG,QAASF,WAG3BL,SAASC,UAAUG,MAAMA,MAAMG,QAAQC,IAAK,CAACD,QAASF,aAG1DE,QAAQE,OAAOF,QAAQE,iBAKtBC,WAAWb,kBACG,UAAfA,aACAA,WAAa,OA\/CD,mCAkDLU,4BAAAA,YAEe,UAAfV,YAA0BR,KAC1BiB,gBACwBK,IAAxBJ,QAAQV,YACRF,WAAWY,QAASV,iBACJc,IAAhBJ,QAAQC,IACRb,WAAWY,QAAS,OAEpBnB,eAMNwB,sBAAsBC,MAAOC,gBAE7B,IAAIC,EAAI,EAAGA,EAAIrB,WAAWsB,OAAQD,IAAK,KACpClB,WAAaH,WAAWqB,QACvBlB,YAAekB,EAAIF,MACpBzB,KACAD,KAAK8B,cAAcpB,WAAYgB,MAAOC,iBAIzCN,IAAMrB,KAAK+B,eAKXC,gCAAgCtB,WAAYgB,MAAOC,mBACjD,WAjFS,mCAkFDP,4BAAAA,YACPK,sBAAsBV,KAAKf,KAAM0B,MAAOC,iBACnCjB,YAAYO,MAAMjB,KAAMkB,sBAOhCe,qBAAqBvB,WAAYgB,MAAOC,mBAEtCJ,WAAWb,aACXsB,gCAAgCf,MAAMjB,KAAMkB,oBAG9CgB,OAAOC,KAAMC,aAAcC,aAE9BC,aADAC,KAAOvC,KAEPwC,WAAa,oBAuBRC,wBACDC,eA5HU,mCA8HHvC,2BAAAA,cAGPuC,YAAcvC,OAAOwC,aAAaH,YACpC,MAAOI,YAlIK,cAqIVC,QAAOH,qBAECI,OAAS3C,OAAO4C,SAASD,OACzBE,SAAWF,OAAOG,QAClBC,mBAAmBV,YAAc,MACnB,IAAdQ,WACAN,YAAc,WAAWS,KAAKL,OAAOM,MAAMJ,WAAW,IAE5D,MAAOJ,qBAIoBpB,IAA7Be,KAAKc,OAAOX,eACZA,iBAAclB,GAGXkB,aAhDPP,OACFK,YAAc,IAAML,MAwDtBI,KAAKJ,KAAOA,KAEZI,KAAKc,OAAS,OAAW,QAAY,OAAW,OAAW,QAC9C,SAAa,GAE1Bd,KAAKT,cAAgBO,SAAWJ,qBAEhCM,KAAKe,SAAW,kBACLhB,cAGXC,KAAKgB,SAAW,SAAU7B,MAAO8B,YACR,iBAAV9B,YAA2DF,IAArCe,KAAKc,OAAO3B,MAAM+B,iBAC\/C\/B,MAAQa,KAAKc,OAAO3B,MAAM+B,kBAET,iBAAV\/B,OAAsBA,OAAS,GAAKA,OAASa,KAAKc,OAAOK,aAU1D,6CAA+ChC,SATrDY,aAAeZ,OACC,IAAZ8B,kBAtEoBG,cACxBC,WAAarD,WAAWoD,WAAa,UAAUF,iBA1GrC,mCA4GHtD,2BAAAA,0BAIPA,OAAOwC,aAAaH,YAAcoB,WAEpC,MAAOhB,aAILzC,OAAO4C,SAASD,OACdI,mBAAmBV,YAAc,IAAMoB,UAAY,IACvD,MAAOhB,WAwDDiB,CAAuBnC,OAE3BD,sBAAsBV,KAAKwB,KAAMb,MAAOS,MAlL9B,mCAmLCf,4BAAAA,WAA6BM,MAAQa,KAAKc,OAAOK,aACjD,oCAOnBnB,KAAKuB,gBAAkB,SAAUpC,OACxBe,qBACDF,KAAKgB,SAAS7B,OAAO,IAI7Ba,KAAKwB,UAAY,SAASP,SACtBjB,KAAKgB,SAAShB,KAAKc,OAAOW,MAAOR,UAGrCjB,KAAK0B,WAAa,SAAST,SACvBjB,KAAKgB,SAAShB,KAAKc,OAAOK,OAAQF,cAIlCU,aAAezB,oBACC,MAAhByB,eACAA,aAA+B,MAAhB9B,aAAuB,OAASA,cAEnDG,KAAKgB,SAASW,cAAc,OAS1BC,cAAgB,IAAIjC,OAEpBkC,eAAiB,GACrBD,cAAcE,UAAY,SAAmBlC,SACrB,iBAATA,MAA8B,KAATA,WACxB,IAAImC,UAAU,sDAGlBC,OAASH,eAAejC,aACvBoC,SACHA,OAASH,eAAejC,MAAQ,IAAID,OAClCC,KAAMgC,cAAcb,WAAYa,cAAcrC,gBAE3CyC,YAIPC,KAxOgB,mCAwODrE,2BAAAA,SAA4BA,OAAOkB,SAAMG,SAC5D2C,cAAcM,WAAa,iBAzOP,mCA0OLtE,2BAAAA,UACJA,OAAOkB,MAAQ8C,gBAClBhE,OAAOkB,IAAMmD,MAGVL,eAGXA,cAAcO,WAAa,kBAChBN,gBAGJD,eAlQe,mBAAXQ,QAAyBA,OAAOC,IACvCD,uBAAO5E,YACkB,gCAAX8E,2BAAAA,UAAuBA,OAAOC,QAC5CD,OAAOC,QAAU\/E,aAEjBD,KAAKuB,IAAMtB"}