{"version":3,"sources":["l.js"],"names":["window","undefined","isA","a","b","Array","appendElmt","type","attrs","cb","i","e","D","createElement","readyState","onreadystatechange","onload","header","appendChild","document","getElementsByTagName","length","scriptStr","documentElement","aliases","scripts","scriptTag","script","innerHTML","replace","ljs","urlParse","url","parts","u","_","m","f","checkLoaded","src","match","loader","errorHandlers","loadjs","onError","l","ocb","loaded","onerror","c","parentNode","error","currentTarget","removeChild","rel","href","id","loadcss","load","argv","argc","apply","addAliases","arguments","links","Function","args","push","slice","call","_aliases","getAttribute"],"mappings":"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","file":"../l.min.js","sourcesContent":["/*\r\n lsj v0.2.2\r\n https://github.com/malko/l.js\r\n*/\r\n\r\n(function (window, undefined) {\r\n /*\r\n * script for js/css parallel loading with dependancies management\r\n * @author Jonathan Gotti < jgotti at jgotti dot net >\r\n * @contributors ivanrey, AlexGal0\r\n * @licence dual licence mit / gpl\r\n * @since 2012-04-12\r\n * @todo add prefetching using text/cache for js files\r\n * @changelog\r\n * - 2023-02-28 - add support for module type thanks to PR#21 by AlexGal0\r\n * - 2019-01-17 - add support for error handlers + bugFix on multiple inclusion of filled script tag fix issues #15 and #17\r\n * - 2016-08-22 - remove global eval and fix issue #13\r\n * - 2014-06-26 - bugfix in css loaded check when hashbang is used\r\n * - 2014-05-25 - fallback support rewrite + null id bug correction + minification work\r\n * - 2014-05-21 - add cdn fallback support with hashbang url\r\n * - 2014-05-22 - add support for relative paths for stylesheets in checkLoaded\r\n * - 2014-05-21 - add support for relative paths for scripts in checkLoaded\r\n * - 2013-01-25 - add parrallel loading inside single load call\r\n * - 2012-06-29 - some minifier optimisations\r\n * - 2012-04-20 - now sharp part of url will be used as tag id\r\n * - add options for checking already loaded scripts at load time\r\n * - 2012-04-19 - add addAliases method\r\n * @note coding style is implied by the target usage of this script not my habbits\r\n */\r\n var isA = function (a, b) {\r\n return a instanceof (b || Array);\r\n },\r\n //-- some minifier optimisation\r\n D = document,\r\n getElementsByTagName = 'getElementsByTagName',\r\n length = 'length',\r\n readyState = 'readyState',\r\n onreadystatechange = 'onreadystatechange',\r\n scriptStr = 'script',\r\n header = D[getElementsByTagName]('head')[0] || D.documentElement,\r\n aliases = {},\r\n //-- get the current script tag for further evaluation of it's eventual content\r\n scripts = D[getElementsByTagName](scriptStr),\r\n scriptTag = scripts[scripts[length] - 1],\r\n script = scriptTag.innerHTML.replace(/^\\s+|\\s+$/g, ''),\r\n appendElmt = function (type, attrs, cb) {\r\n var e = D.createElement(type),\r\n i;\r\n if (cb) {\r\n //-- this is not intended to be used for link\r\n if (e[readyState]) {\r\n e[onreadystatechange] = function () {\r\n if (e[readyState] === 'loaded' || e[readyState] === 'complete') {\r\n e[onreadystatechange] = null;\r\n cb();\r\n }\r\n };\r\n } else {\r\n e.onload = cb;\r\n }\r\n }\r\n for (i in attrs) {\r\n attrs[i] && (e[i] = attrs[i]);\r\n }\r\n header.appendChild(e);\r\n // return e; // unused at this time so drop it\r\n };\r\n //avoid multiple inclusion to override current loader but allow tag content evaluation\r\n if (!window.ljs) {\r\n var checkLoaded = scriptTag.src.match(/checkLoaded/) ? 1 : 0,\r\n //-- keep trace of header as we will make multiple access to it\r\n urlParse = function (url) {\r\n var parts = {}; // u => url, i => id, f => fallback, m => is a module\r\n parts.u = url.replace(\r\n /(^module:)|#(=)?([^#]*)?/g,\r\n function (_, m, f, i) {\r\n parts[m ? 'm' : f ? 'f' : 'i'] = !!m || i;\r\n return '';\r\n }\r\n );\r\n return parts;\r\n },\r\n load = function (loader, url, cb) {\r\n if (aliases && aliases[url]) {\r\n var args = aliases[url].slice(0);\r\n isA(args) || (args = [args]);\r\n cb && args.push(cb);\r\n return loader.load.apply(loader, args);\r\n }\r\n if (isA(url)) {\r\n // parallelized request\r\n for (var l = url[length]; l--; ) {\r\n loader.load(url[l]);\r\n }\r\n cb && url.push(cb); // relaunch the dependancie queue\r\n return loader.load.apply(loader, url);\r\n }\r\n if (url.match(/\\.css\\b/)) {\r\n return loader.loadcss(url, cb);\r\n }\r\n return loader.loadjs(url, cb);\r\n },\r\n loaded = {}, // will handle already loaded urls\r\n errorHandlers = [],\r\n loader = {\r\n aliases: aliases,\r\n loadjs: function (url, cb) {\r\n var parts = urlParse(url);\r\n var onError = function (url) {\r\n for (var i = 0, l = errorHandlers.length; i < l; i++) {\r\n errorHandlers[i](url);\r\n }\r\n };\r\n var type = parts.m ? 'module' : 'text/javascript';\r\n url = parts.u;\r\n if (loaded[url] === true) {\r\n // already loaded exec cb if any\r\n cb && cb();\r\n return loader;\r\n } else if (loaded[url] !== undefined) {\r\n // already asked for loading we append callback if any else return\r\n if (cb) {\r\n loaded[url] = (function (ocb, cb) {\r\n return function () {\r\n ocb && ocb();\r\n cb && cb();\r\n };\r\n })(loaded[url], cb);\r\n }\r\n return loader;\r\n }\r\n // first time we ask this script\r\n loaded[url] = (function (cb) {\r\n return function () {\r\n loaded[url] = true;\r\n cb && cb();\r\n };\r\n })(cb);\r\n cb = function () {\r\n loaded[url]();\r\n };\r\n\r\n appendElmt(\r\n scriptStr,\r\n {\r\n type: type,\r\n src: url,\r\n id: parts.i,\r\n onerror: function (error) {\r\n onError(url);\r\n var c = error.currentTarget;\r\n c.parentNode.removeChild(c);\r\n appendElmt(\r\n scriptStr,\r\n {\r\n type: type,\r\n src: parts.f,\r\n id: parts.i,\r\n onerror: function () {\r\n onError(parts.f);\r\n },\r\n },\r\n cb\r\n );\r\n },\r\n },\r\n cb\r\n );\r\n return loader;\r\n },\r\n loadcss: function (url, cb) {\r\n var parts = urlParse(url);\r\n url = parts.u;\r\n loaded[url] ||\r\n appendElmt('link', {\r\n type: 'text/css',\r\n rel: 'stylesheet',\r\n href: url,\r\n id: parts.i,\r\n });\r\n loaded[url] = true;\r\n cb && cb();\r\n return loader;\r\n },\r\n load: function () {\r\n var argv = arguments,\r\n argc = argv[length];\r\n if (argc === 1 && isA(argv[0], Function)) {\r\n argv[0]();\r\n return loader;\r\n }\r\n load(\r\n loader,\r\n argv[0],\r\n argc <= 1\r\n ? undefined\r\n : function () {\r\n loader.load.apply(loader, [].slice.call(argv, 1));\r\n }\r\n );\r\n return loader;\r\n },\r\n addAliases: function (_aliases) {\r\n for (var i in _aliases) {\r\n aliases[i] = isA(_aliases[i]) ? _aliases[i].slice(0) : _aliases[i];\r\n }\r\n return loader;\r\n },\r\n onError: function (cb) {\r\n errorHandlers.push(cb);\r\n return loader;\r\n },\r\n };\r\n if (checkLoaded) {\r\n var i, l, links, url;\r\n for (i = 0, l = scripts[length]; i < l; i++) {\r\n (url = scripts[i].getAttribute('src')) &&\r\n (loaded[url.replace(/#.*$/, '')] = true);\r\n }\r\n links = D[getElementsByTagName]('link');\r\n for (i = 0, l = links[length]; i < l; i++) {\r\n (links[i].rel === 'stylesheet' || links[i].type === 'text/css') &&\r\n (loaded[links[i].getAttribute('href').replace(/#.*$/, '')] = true);\r\n }\r\n }\r\n //export ljs\r\n window.ljs = loader;\r\n // eval inside tag code if any\r\n }\r\n // eval script tag content if needed\r\n scriptTag.src && script && appendElmt(scriptStr, { innerHTML: script });\r\n})(window);\r\n"]}