UNPKG

includejs

Version:
1,510 lines (1,428 loc) 184 kB
// source ./umd/umd.js (function (root, factory) { 'use strict'; var _global, _module; _global = typeof window === 'undefined' ? global : window; if (root != null && root !== _global && root.exports) { _module = root; } if (_module == null) { _module = typeof module === 'undefined' ? { exports: {} } : module; } factory(_global, _module, _module.exports, _global.document); if (typeof include !== 'undefined' && typeof include.js === 'function') { include.exports = _module.exports; // allow only one `include` per application return; } _global.include = _module.exports.include; _global.includeLib = _module.exports.includeLib; }(this, function (global, module, exports, document) { 'use strict'; var CURRENT_MODULE = module; var _src_Bin = {}; var _src_Config = {}; var _src_CustomLoader = {}; var _src_Events = {}; var _src_Helper = {}; var _src_Include = {}; var _src_IncludeDeferred = {}; var _src_LazyModule = {}; var _src_PathResolver = {}; var _src_Resource = {}; var _src_Routing = {}; var _src_ScriptStack = {}; var _src_global = {}; var _src_loader_load = {}; var _src_loader_mask = {}; var _src_models_State = {}; var _src_models_Type = {}; var _src_modules_amd = {}; var _src_modules_common = {}; var _src_node_PatchEval = {}; var _src_node_PatchResource = {}; var _src_node_PatchXhr = {}; var _src_node_eval = {}; var _src_node_export = {}; var _src_node_utils_file = {}; var _src_utils_array = {}; var _src_utils_class_Dfr = {}; var _src_utils_fn = {}; var _src_utils_object = {}; var _src_utils_path = {}; var _src_utils_res = {}; var _src_utils_tree = {}; var _src_worker_WorkerClient = {}; var _src_worker_WorkerLoader = {}; // source ./ModuleSimplified.js var _src_global; (function () { // ensure AMD is not active for the model, so that any UMD exports as commonjs var define = null; var exports = _src_global != null ? _src_global : {}; var module = { exports: exports }; "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.noConflict = exports.include = exports.document = exports.module = exports.global = exports.handler = exports.refs = exports.isWeb = exports.isNode = exports.isBrowser = exports.__require = exports.emptyResponse = exports.IncludeLib = exports.loadBags = void 0; var _global = typeof global === 'undefined' ? null : global; exports.global = _global; var _module = typeof module === 'undefined' ? null : module; exports.module = _module; var _document = typeof document === 'undefined' ? null : document; exports.document = _document; var _require = typeof require === 'undefined' ? null : require; var _include = global === null || global === void 0 ? void 0 : global.include; exports.include = _include; exports.loadBags = [ _document ]; exports.IncludeLib = { loadBags: exports.loadBags, }; exports.emptyResponse = { load: {} }; exports.__require = { nativeRequire: _require, includeRequire: null }; var _isBrowser = false, _isNode = false; //#if (NODE) _isBrowser = false; _isNode = true; //#endif exports.isBrowser = _isBrowser; exports.isNode = _isNode; exports.isWeb = !!(typeof location !== 'undefined' && location.protocol && /^https?:/.test(location.protocol)); exports.refs = { XMLHttpRequest: global.XMLHttpRequest, evaluate: typeof __eval !== 'undefined' ? __eval : null }; exports.handler = { onerror: null }; var __noConflict = { require: _global.require, module: _global.module, include: _global.include, exports: _global.exports }; function noConflict() { for (var key in __noConflict) { try { _global[key] = __noConflict[key]; } catch (error) { } } } exports.noConflict = noConflict; ; function __isObj(x) { return x != null && typeof x === 'object' && x.constructor === Object; } if (_src_global === module.exports) { // do nothing if } else if (__isObj(_src_global) && __isObj(module.exports)) { Object.assign(_src_global, module.exports); } else { _src_global = module.exports; } ; }()); // end:source ./ModuleSimplified.js // source ./ModuleSimplified.js var _src_utils_path; (function () { // ensure AMD is not active for the model, so that any UMD exports as commonjs var define = null; var exports = _src_utils_path != null ? _src_utils_path : {}; var module = { exports: exports }; "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.path_combine = exports.path_isRelative = exports.path_resolveUrl = exports.path_toLocalFile = exports.path_win32Normalize = exports.path_normalize = exports.path_resolveCurrent = exports.path_resolveBase = exports.path_getExtension = exports.path_hasExtension = exports.path_getFile = exports.path_cdUp = exports.path_getDir = void 0; var Config_1 = _src_Config; var global_1 = _src_global; var reg_hasProtocol = /^[\w\-]{2,}:\/\//i; var reg_hasExt = /\.(?<extension>[\w]{1,})($|\?|#)/; function path_getDir(path) { return path.substring(0, path.lastIndexOf('/') + 1); } exports.path_getDir = path_getDir; function path_cdUp(dirpath) { return dirpath.replace(/[^\/]+\/?$/, ''); } exports.path_cdUp = path_cdUp; function path_getFile(path) { path = path .replace('file://', '') .replace(/\\/g, '/') .replace(/\?[^\n]+$/, ''); if (/^\/\w+:\/[^\/]/i.test(path)) { // win32 drive return path.substring(1); } return path; } exports.path_getFile = path_getFile; function path_hasExtension(path) { return reg_hasExt.test(path); } exports.path_hasExtension = path_hasExtension; function path_getExtension(path) { var _a; var match = reg_hasExt.exec(path); return (_a = match === null || match === void 0 ? void 0 : match.groups) === null || _a === void 0 ? void 0 : _a.extension; } exports.path_getExtension = path_getExtension; function path_resolveBase() { //#if (NODE) if (global_1.isNode) { return path_win32Normalize(process.cwd() + '/'); } //#endif var doc = global_1.document; var origin = global_1.document.location.origin; var path = Config_1.cfg.base || '/'; if (!Config_1.cfg.base && Config_1.cfg.lockedToFolder) { path = doc.location.pathname; if (/\.[a-z]{1,5}$/i.test(path)) { path = path.replace(/[^\\/]+$/i, ''); } } return path_combine(origin, path, '/'); } exports.path_resolveBase = path_resolveBase; function path_resolveCurrent() { if (global_1.document == null) { return global_1.global.module == null ? '' : path_win32Normalize(process.cwd() + '/'); } var scripts = global_1.document.getElementsByTagName('script'); var last = scripts[scripts.length - 1]; var url = (last && last.getAttribute('src')) || ''; if (url[0] === '/') { return url; } var location = window.location.pathname.replace(/\/[^\/]+\.\w+$/, ''); if (location[location.length - 1] !== '/') { location += '/'; } return location + url; } exports.path_resolveCurrent = path_resolveCurrent; function path_normalize(path) { var path_ = path .replace(/\\/g, '/') // remove double slashes, but not near protocol .replace(/([^:\/])\/{2,}/g, '$1/'); // use triple slashes by file protocol if (/^file:\/\/[^\/]/.test(path_)) { path_ = path_.replace('file://', 'file:///'); } return path_; } exports.path_normalize = path_normalize; function path_win32Normalize(path) { path = path_normalize(path); if (path.substring(0, 5) === 'file:') { return path; } return path_combine('file:///', path); } exports.path_win32Normalize = path_win32Normalize; function path_toLocalFile(path) { //#if (NODE) if (global_1.isNode) { if (path.startsWith('file:')) { path = path.replace(/^file:\/+/, ''); if (/^\w{1,3}:/.test(path) === false) { path = '/' + path; } return path; } return path_combine(process.cwd(), path); } //#endif return path; } exports.path_toLocalFile = path_toLocalFile; function path_resolveUrl(url, parent) { url = path_normalize(url); if (reg_hasProtocol.test(url)) { return Path.collapse(url); } if (url.substring(0, 2) === './') { url = url.substring(2); } if (url[0] === '/' && parent != null && parent.base != null) { url = path_combine(parent.base, url); if (reg_hasProtocol.test(url)) { return Path.collapse(url); } } if (url[0] === '/' && Config_1.cfg.path && url.indexOf(Config_1.cfg.path) !== 0) { url = path_combine(Config_1.cfg.path, url); if (reg_hasProtocol.test(url)) { return Path.collapse(url); } } if (url[0] !== '/') { if (parent != null && parent.location != null) { url = path_combine(parent.location, url); } else { var current = path_resolveCurrent(); var dir = path_getDir(current); url = path_combine(dir, url); } } if (url[0] !== '/' && reg_hasProtocol.test(url) === false) { url = '/' + url; } return Path.collapse(url); } exports.path_resolveUrl = path_resolveUrl; function path_isRelative(path) { var c = path.charCodeAt(0); switch (c) { case 46: /* . */ return true; case 47: // / return false; } return reg_hasProtocol.test(path) === false; } exports.path_isRelative = path_isRelative; function path_combine() { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } var out = ''; var imax = args.length; var i = -1; while (++i < imax) { var x = args[i]; if (!x) { continue; } x = path_normalize(x); if (out === '') { out = x; continue; } if (out[out.length - 1] !== '/') { out += '/'; } if (x[0] === '/') { x = x.substring(1); } out += x; } return out; } exports.path_combine = path_combine; var Path; (function (Path) { var rgx_host = /^\w+:\/\/[^\/]+\//; var rgx_subFolder = /\/?([^\/]+\/)\.\.\//; var rgx_dottedFolder = /\/\.\.\//; function collapse(url) { var host = rgx_host.exec(url); if (host) { url = url.replace(host[0], ''); } var path = url; do { url = path; path = path.replace(rgx_subFolder, '/'); } while (path !== url); path = path.replace(/\/\.\//g, '/'); if (host) { return host[0] + path; } return path; } Path.collapse = collapse; })(Path || (Path = {})); ; function __isObj(x) { return x != null && typeof x === 'object' && x.constructor === Object; } if (_src_utils_path === module.exports) { // do nothing if } else if (__isObj(_src_utils_path) && __isObj(module.exports)) { Object.assign(_src_utils_path, module.exports); } else { _src_utils_path = module.exports; } ; }()); // end:source ./ModuleSimplified.js // source ./ModuleSimplified.js var _src_models_Type; (function () { // ensure AMD is not active for the model, so that any UMD exports as commonjs var define = null; var exports = _src_models_Type != null ? _src_models_Type : {}; var module = { exports: exports }; "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ResourceType = void 0; var ResourceType; (function (ResourceType) { ResourceType["Js"] = "js"; ResourceType["Css"] = "css"; ResourceType["Load"] = "load"; ResourceType["Ajax"] = "ajax"; ResourceType["Embed"] = "embed"; ResourceType["Lazy"] = "lazy"; ResourceType["Mask"] = "mask"; })(ResourceType = exports.ResourceType || (exports.ResourceType = {})); ; function __isObj(x) { return x != null && typeof x === 'object' && x.constructor === Object; } if (_src_models_Type === module.exports) { // do nothing if } else if (__isObj(_src_models_Type) && __isObj(module.exports)) { Object.assign(_src_models_Type, module.exports); } else { _src_models_Type = module.exports; } ; }()); // end:source ./ModuleSimplified.js // source ./ModuleSimplified.js var _src_utils_array; (function () { // ensure AMD is not active for the model, so that any UMD exports as commonjs var define = null; var exports = _src_utils_array != null ? _src_utils_array : {}; var module = { exports: exports }; "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.arr_indexOf = exports.arr_ensure = exports.arr_invoke = void 0; function arr_invoke(arr, args, ctx) { if (arr == null || arr instanceof Array === false) { return; } for (var i = 0, length = arr.length; i < length; i++) { if (typeof arr[i] !== 'function') { continue; } if (args == null) { arr[i].call(ctx); } else { arr[i].apply(ctx, args); } } } exports.arr_invoke = arr_invoke; function arr_ensure(obj, xpath) { if (!xpath) { return obj; } var arr = xpath.split('.'), imax = arr.length - 1, i = 0, key; for (; i < imax; i++) { key = arr[i]; obj = obj[key] || (obj[key] = {}); } key = arr[imax]; return obj[key] || (obj[key] = []); } exports.arr_ensure = arr_ensure; function arr_indexOf(arr, fn) { if (arr == null) return -1; var imax = arr.length, i = -1; while (++i < imax) { if (fn(arr[i], i)) return i; } return -1; } exports.arr_indexOf = arr_indexOf; ; function __isObj(x) { return x != null && typeof x === 'object' && x.constructor === Object; } if (_src_utils_array === module.exports) { // do nothing if } else if (__isObj(_src_utils_array) && __isObj(module.exports)) { Object.assign(_src_utils_array, module.exports); } else { _src_utils_array = module.exports; } ; }()); // end:source ./ModuleSimplified.js // source ./ModuleSimplified.js var _src_utils_fn; (function () { // ensure AMD is not active for the model, so that any UMD exports as commonjs var define = null; var exports = _src_utils_fn != null ? _src_utils_fn : {}; var module = { exports: exports }; "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.fn_doNothing = exports.fn_proxy = void 0; function fn_proxy(fn, ctx) { return function () { fn.apply(ctx, arguments); }; } exports.fn_proxy = fn_proxy; function fn_doNothing(fn) { typeof fn === 'function' && fn(); } exports.fn_doNothing = fn_doNothing; ; function __isObj(x) { return x != null && typeof x === 'object' && x.constructor === Object; } if (_src_utils_fn === module.exports) { // do nothing if } else if (__isObj(_src_utils_fn) && __isObj(module.exports)) { Object.assign(_src_utils_fn, module.exports); } else { _src_utils_fn = module.exports; } ; }()); // end:source ./ModuleSimplified.js // source ./ModuleSimplified.js var _src_Events; (function () { // ensure AMD is not active for the model, so that any UMD exports as commonjs var define = null; var exports = _src_Events != null ? _src_Events : {}; var module = { exports: exports }; "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Events = void 0; var array_1 = _src_utils_array; var fn_1 = _src_utils_fn; var readycollection = []; var supports = typeof document !== 'undefined' && typeof window !== 'undefined'; function onReady() { exports.Events.ready = fn_1.fn_doNothing; if (readycollection.length === 0) { return; } (0, array_1.arr_invoke)(readycollection); readycollection.length = 0; } function bind() { if ('onreadystatechange' in document) { document.onreadystatechange = function () { if (/complete|interactive/g.test(document.readyState) === false) { return; } onReady(); }; } else if (document.addEventListener) { document.addEventListener('DOMContentLoaded', onReady); } else { window.onload = onReady; } } if (supports) { bind(); } exports.Events = { ready: function (callback) { if (supports === false) { callback(); return; } readycollection.unshift(callback); } }; ; function __isObj(x) { return x != null && typeof x === 'object' && x.constructor === Object; } if (_src_Events === module.exports) { // do nothing if } else if (__isObj(_src_Events) && __isObj(module.exports)) { Object.assign(_src_Events, module.exports); } else { _src_Events = module.exports; } ; }()); // end:source ./ModuleSimplified.js // source ./ModuleSimplified.js var _src_Routing; (function () { // ensure AMD is not active for the model, so that any UMD exports as commonjs var define = null; var exports = _src_Routing != null ? _src_Routing : {}; var module = { exports: exports }; "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.RoutesLib = exports.Routes = exports.RoutesCtor = void 0; var path_1 = _src_utils_path; var RoutesCtor = /** @class */ (function () { function RoutesCtor() { this.routes = {}; } RoutesCtor.prototype.has = function (namespace) { return this.routes[namespace] != null; }; /** * @param route {String} = Example: '.reference/libjs/{0}/{1}.js' */ RoutesCtor.prototype.register = function (namespace, route) { if (namespace.endsWith('/*')) { // like TS paths, '@foo/*': [ 'foo/ts/*' ] var ns = namespace.replace('/*', ''); var path = typeof route === 'string' ? route : route[0]; this.register(ns, path.replace('*', '{0}')); return; } if (typeof route === 'string') { if ((0, path_1.path_isRelative)(route)) { var location = (0, path_1.path_getDir)((0, path_1.path_resolveCurrent)()); if ((0, path_1.path_isRelative)(location)) { location = '/' + location; } route = location + route; } if (route[0] === '/') { var base = (0, path_1.path_resolveBase)(); route = (0, path_1.path_combine)(base, route); } } this.routes[namespace] = route instanceof Array ? route : route.split(/[\{\}]/g); }; /** * @param {String} template = Example: 'scroller/scroller.min?ui=black' */ RoutesCtor.prototype.resolve = function (namespace, template) { var questionMark = template.indexOf('?'), aliasIndex = template.indexOf('::'), alias, query = ''; if (aliasIndex !== -1) { alias = template.substring(aliasIndex + 2); template = template.substring(0, aliasIndex); } if (questionMark !== -1) { query = template.substring(questionMark); template = template.substring(0, questionMark); } var slugs = template.split('/'); var route = this.routes[namespace]; if (route == null) { return { path: slugs.join('/') + query, params: null, alias: alias }; } var path = route[0]; for (var i = 1; i < route.length; i++) { if (i % 2 === 0) { path += route[i]; } else { /** if template provides less "breadcrumbs" than needed - * take always the last one for failed peaces */ var index = parseFloat(route[i]); if (index > slugs.length - 1) { index = slugs.length - 1; } path += slugs[index]; if (i === route.length - 2) { for (index++; index < slugs.length; index++) { path += '/' + slugs[index]; } } } } return { path: path + query, params: null, alias: alias }; }; /** * @arg includeData : * 1. string - URL to resource * 2. array - URLs to resources * 3. object - {route: x} - route defines the route template to resource, * it must be set before in include.cfg. * example: * include.cfg('net','scripts/net/{name}.js') * include.js({net: 'downloader'}) // -> will load scipts/net/downloader.js * @arg namespace - route in case of resource url template, or namespace in case of LazyModule * * @arg fn - callback function, which receives namespace|route, url to resource and ?id in case of not relative url * @arg xpath - xpath string of a lazy object 'object.sub.and.othersub'; */ RoutesCtor.prototype.each = function (type, includeData, fn, namespace, xpath) { if (includeData == null) { return; } if (type === 'lazy' && xpath == null) { var obj = includeData; for (var key_1 in obj) { this.each(type, obj[key_1], fn, null, key_1); } return; } if (includeData instanceof Array) { for (var i = 0; i < includeData.length; i++) { this.each(type, includeData[i], fn, namespace, xpath); } return; } if (typeof includeData === 'object') { for (var key in includeData) { this.each(type, includeData[key], fn, key, xpath); } return; } if (typeof includeData === 'string') { var x = this.resolve(namespace, includeData); if (namespace) { namespace += '.' + includeData; } fn(namespace, x, xpath); return; } console.error('Include Package is invalid', arguments); }; RoutesCtor.prototype.getRoutes = function () { return this.routes; }; RoutesCtor.prototype.parseAlias = function (route) { var path = route.path, result = regexpAlias.exec(path); return result && result[1]; }; return RoutesCtor; }()); exports.RoutesCtor = RoutesCtor; exports.Routes = new RoutesCtor(); function RoutesLib() { return new RoutesCtor(); } exports.RoutesLib = RoutesLib; ; var regexpAlias = /([^\\\/]+)\.\w+$/; ; function __isObj(x) { return x != null && typeof x === 'object' && x.constructor === Object; } if (_src_Routing === module.exports) { // do nothing if } else if (__isObj(_src_Routing) && __isObj(module.exports)) { Object.assign(_src_Routing, module.exports); } else { _src_Routing = module.exports; } ; }()); // end:source ./ModuleSimplified.js // source ./ModuleSimplified.js var _src_utils_object; (function () { // ensure AMD is not active for the model, so that any UMD exports as commonjs var define = null; var exports = _src_utils_object != null ? _src_utils_object : {}; var module = { exports: exports }; "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.obj_setProperty = exports.obj_getProperty = exports.obj_inherit = void 0; function obj_inherit(target /* source, ..*/) { if (typeof target === 'function') { target = target.prototype; } var i = 1, imax = arguments.length, source, key; for (; i < imax; i++) { source = typeof arguments[i] === 'function' ? arguments[i].prototype : arguments[i]; for (key in source) { target[key] = source[key]; } } return target; } exports.obj_inherit = obj_inherit; ; function obj_getProperty(obj, property) { var chain = property.split('.'), length = chain.length, i = 0; for (; i < length; i++) { if (obj == null) return null; obj = obj[chain[i]]; } return obj; } exports.obj_getProperty = obj_getProperty; ; function obj_setProperty(obj, property, value) { var chain = property.split('.'), imax = chain.length - 1, i = -1, key; while (++i < imax) { key = chain[i]; if (obj[key] == null) obj[key] = {}; obj = obj[key]; } obj[chain[i]] = value; } exports.obj_setProperty = obj_setProperty; ; ; function __isObj(x) { return x != null && typeof x === 'object' && x.constructor === Object; } if (_src_utils_object === module.exports) { // do nothing if } else if (__isObj(_src_utils_object) && __isObj(module.exports)) { Object.assign(_src_utils_object, module.exports); } else { _src_utils_object = module.exports; } ; }()); // end:source ./ModuleSimplified.js // source ./ModuleSimplified.js var _src_utils_tree; (function () { // ensure AMD is not active for the model, so that any UMD exports as commonjs var define = null; var exports = _src_utils_tree != null ? _src_utils_tree : {}; var module = { exports: exports }; "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.tree_resolveUsage = void 0; var object_1 = _src_utils_object; var Routing_1 = _src_Routing; function tree_resolveUsage(resource, usage, next) { var use = [], imax = usage.length, i = -1, obj, path, name, index, parent; while (++i < imax) { name = path = usage[i]; index = path.indexOf('.'); if (index !== -1) { name = path.substring(0, index); path = path.substring(index + 1); } parent = use_resolveParent(name, resource.parent, resource); if (parent == null) return null; if (parent.state !== 4) { resource.state = 3; parent.on(4, next, parent, 'push'); return null; } obj = parent.exports; if (name !== path) obj = (0, object_1.obj_getProperty)(obj, path); // if DEBUG (typeof obj === 'object' && obj == null) && console.warn('<include:use> Used resource has no exports', name, resource.url); // endif use[i] = obj; } return use; } exports.tree_resolveUsage = tree_resolveUsage; ; function use_resolveParent(name, resource, initiator) { if (resource == null) { // if DEBUG console.warn('<include> Usage Not Found:', name); console.warn('- Ensure to have it included before with the correct alias'); console.warn('- Initiator Stacktrace:'); var arr = [], res = initiator; while (res != null) { arr.push(res.url); res = res.parent; } console.warn(arr.join('\n')); // endif return null; } var includes = resource.includes, i = -1, imax = includes.length, include, exports, alias; while (++i < imax) { include = includes[i]; alias = include.route.alias || Routing_1.Routes.parseAlias(include.route); if (alias === name) return include.resource; } return use_resolveParent(name, resource.parent, initiator); } ; function __isObj(x) { return x != null && typeof x === 'object' && x.constructor === Object; } if (_src_utils_tree === module.exports) { // do nothing if } else if (__isObj(_src_utils_tree) && __isObj(module.exports)) { Object.assign(_src_utils_tree, module.exports); } else { _src_utils_tree = module.exports; } ; }()); // end:source ./ModuleSimplified.js // source ./ModuleSimplified.js var _src_models_State; (function () { // ensure AMD is not active for the model, so that any UMD exports as commonjs var define = null; var exports = _src_models_State != null ? _src_models_State : {}; var module = { exports: exports }; "use strict"; /** * STATES: * 0: Resource Created * 1: Loading * 2: Loaded - Evaluating * 2.5: Paused - Evaluating paused * 3: Evaluated - Childs Loading * 4: Childs Loaded - Completed */ Object.defineProperty(exports, "__esModule", { value: true }); exports.State = void 0; var State; (function (State) { State[State["Unknown"] = -1] = "Unknown"; State[State["Created"] = 0] = "Created"; State[State["Loading"] = 1] = "Loading"; State[State["Evaluating"] = 2] = "Evaluating"; State[State["Paused"] = 2.5] = "Paused"; State[State["Evaluated"] = 3] = "Evaluated"; State[State["AllCompleted"] = 4] = "AllCompleted"; })(State = exports.State || (exports.State = {})); ; function __isObj(x) { return x != null && typeof x === 'object' && x.constructor === Object; } if (_src_models_State === module.exports) { // do nothing if } else if (__isObj(_src_models_State) && __isObj(module.exports)) { Object.assign(_src_models_State, module.exports); } else { _src_models_State = module.exports; } ; }()); // end:source ./ModuleSimplified.js // source ./ModuleSimplified.js var _src_utils_class_Dfr; (function () { // ensure AMD is not active for the model, so that any UMD exports as commonjs var define = null; var exports = _src_utils_class_Dfr != null ? _src_utils_class_Dfr : {}; var module = { exports: exports }; "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isDeferred = exports.class_Dfr = void 0; var class_Dfr = /** @class */ (function () { function class_Dfr() { this._isAsync = true; this._done = null; this._fail = null; this._always = null; this._resolved = null; this._rejected = null; } class_Dfr.prototype.defer = function () { this._rejected = null; this._resolved = null; return this; }; class_Dfr.prototype.isResolved = function () { return this._resolved != null; }; class_Dfr.prototype.isRejected = function () { return this._rejected != null; }; class_Dfr.prototype.isBusy = function () { return this._resolved == null && this._rejected == null; }; class_Dfr.prototype.resolve = function (value) { var args = []; for (var _i = 1; _i < arguments.length; _i++) { args[_i - 1] = arguments[_i]; } var done = this._done, always = this._always; this._resolved = arguments; dfr_clearListeners(this); arr_callOnce(done, this, arguments); arr_callOnce(always, this, [this]); return this; }; class_Dfr.prototype.reject = function (error) { var args = []; for (var _i = 1; _i < arguments.length; _i++) { args[_i - 1] = arguments[_i]; } var fail = this._fail, always = this._always; this._rejected = arguments; dfr_clearListeners(this); arr_callOnce(fail, this, arguments); arr_callOnce(always, this, [this]); return this; }; class_Dfr.prototype.then = function (filterSuccess, filterError) { var dfr = new class_Dfr(); var done_ = filterSuccess, fail_ = filterError; this .done(delegate(dfr, 'resolve', done_)) .fail(delegate(dfr, 'reject', fail_)); return dfr; }; class_Dfr.prototype.done = function (callback) { if (this._rejected != null) { return this; } return dfr_bind(this, this._resolved, this._done || (this._done = []), callback); }; class_Dfr.prototype.fail = function (callback) { if (this._resolved != null) { return this; } return dfr_bind(this, this._rejected, this._fail || (this._fail = []), callback); }; class_Dfr.prototype.always = function (callback) { return dfr_bind(this, this._rejected || this._resolved, this._always || (this._always = []), callback); }; class_Dfr.prototype.pipe = function (mix /* ..methods */) { var dfr; if (typeof mix === 'function') { dfr = new class_Dfr(); var done_ = mix, fail_ = arguments.length > 1 ? arguments[1] : null; this .done(delegate(dfr, 'resolve', done_)) .fail(delegate(dfr, 'reject', fail_)); return dfr; } dfr = mix; var imax = arguments.length, done = imax === 1, fail = imax === 1, i = 0, x; while (++i < imax) { x = arguments[i]; switch (x) { case 'done': done = true; break; case 'fail': fail = true; break; default: console.error('Unsupported pipe channel', arguments[i]); break; } } done && this.done(delegate(dfr, 'resolve')); fail && this.fail(delegate(dfr, 'reject')); function pipe(dfr, method) { return function () { dfr[method].apply(dfr, arguments); }; } return this; }; class_Dfr.prototype.pipeCallback = function () { var self = this; return function (error) { var args = []; for (var _i = 1; _i < arguments.length; _i++) { args[_i - 1] = arguments[_i]; } if (error != null) { self.reject(error); return; } self.resolve.apply(self, args); }; }; class_Dfr.prototype.catch = function (cb) { return this.fail(cb); }; class_Dfr.prototype.finally = function (cb) { return this.always(cb); }; class_Dfr.resolve = function () { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } var dfr = new class_Dfr(); return dfr.resolve.apply(dfr, args); }; class_Dfr.reject = function (error) { var dfr = new class_Dfr(); return dfr.reject(error); }; return class_Dfr; }()); exports.class_Dfr = class_Dfr; ; // PRIVATE function delegate(dfr, name, fn) { return function () { if (fn != null) { var override = fn.apply(this, arguments); if (override != null && override !== dfr) { if (isDeferred(override)) { override.then(delegate(dfr, 'resolve'), delegate(dfr, 'reject')); return; } dfr[name](override); return; } } dfr[name].apply(dfr, arguments); }; } function dfr_bind(dfr, arguments_, listeners, callback) { if (callback == null) return dfr; if (arguments_ != null) callback.apply(dfr, arguments_); else listeners.push(callback); return dfr; } function dfr_clearListeners(dfr) { dfr._done = null; dfr._fail = null; dfr._always = null; } function arr_callOnce(arr, ctx, args) { if (arr == null) return; var imax = arr.length, i = -1, fn; while (++i < imax) { fn = arr[i]; if (fn) { fn.apply(ctx, args); } } arr.length = 0; } function isDeferred(x) { return x != null && typeof x === 'object' && typeof x.then === 'function'; } exports.isDeferred = isDeferred; ; function __isObj(x) { return x != null && typeof x === 'object' && x.constructor === Object; } if (_src_utils_class_Dfr === module.exports) { // do nothing if } else if (__isObj(_src_utils_class_Dfr) && __isObj(module.exports)) { Object.assign(_src_utils_class_Dfr, module.exports); } else { _src_utils_class_Dfr = module.exports; } ; }()); // end:source ./ModuleSimplified.js // source ./ModuleSimplified.js var _src_IncludeDeferred; (function () { // ensure AMD is not active for the model, so that any UMD exports as commonjs var define = null; var exports = _src_IncludeDeferred != null ? _src_IncludeDeferred : {}; var module = { exports: exports }; "use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; Object.defineProperty(exports, "__esModule", { value: true }); exports.IncludeDeferred = void 0; var Events_1 = _src_Events; var Routing_1 = _src_Routing; var Config_1 = _src_Config; var global_1 = _src_global; var tree_1 = _src_utils_tree; var State_1 = _src_models_State; var Type_1 = _src_models_Type; var class_Dfr_1 = _src_utils_class_Dfr; var IncludeDeferred = /** @class */ (function () { function IncludeDeferred() { this.callbacks = []; this.state = State_1.State.Unknown; this.response = null; this.includes = []; // Array: exports this._use = null; // Array: names this._usage = null; } IncludeDeferred.prototype.on = function (state, callback, sender, mutator) { if (sender === void 0) { sender = null; } if (this === sender && this.state === State_1.State.Unknown) { callback(this); return this; } // this === sender in case when script loads additional // resources and there are already parents listeners if (mutator == null) { mutator = (this.state < State_1.State.Evaluated || this === sender) ? 'unshift' : 'push'; } state <= this.state ? callback(this) : this.callbacks[mutator]({ state: state, callback: callback }); return this; }; IncludeDeferred.prototype.hasPendingChildren = function () { return false; }; IncludeDeferred.prototype.readystatechanged = function (state) { if (this.state < state) { this.state = state; } if (this.state === State_1.State.Evaluated) { if (this.hasPendingChildren()) { return; } this.state = State_1.State.AllCompleted; } var currentState = this.state, cbs = this.callbacks, imax = cbs.length, i = -1; if (imax === 0) { return; } while (++i < imax) { var x = cbs[i]; if (x == null || x.state > this.state) { continue; } cbs.splice(i, 1); imax--; i--; x.callback(this); if (this.state < currentState) { break; } } }; /** assets loaded and DomContentLoaded */ IncludeDeferred.prototype.ready = function (callback) { var _this = this; return this.on(State_1.State.AllCompleted, function () { Events_1.Events.ready(function () { return _this.resolve(callback); }); }, this); }; /** assets loaded */ IncludeDeferred.prototype.done = function (callback) { var _this = this; return this.on(State_1.State.AllCompleted, function () { return _this.resolve(callback); }, this); }; IncludeDeferred.prototype.then = function (onComplete, onError) { this.done(onComplete); }; IncludeDeferred.prototype.resolve = function (callback) { return __awaiter(this, void 0, void 0, function () { var includes, length, i, x, resource, route, type, _a, alias, responseObj, exp, response, before; var _this = this; return __generator(this, function (_b) { switch (_b.label) { case 0: includes = this.includes; length = includes == null ? 0 : includes.length; if (!(length > 0)) return [3 /*break*/, 7]; i = 0; _b.label = 1; case 1: if (!(i < length)) return [3 /*break*/, 7]; x = includes[i]; resource = x.resource; route = x.route; type = resource.type; _a = type; switch (_a) { case 'js': return [3 /*break*/, 2]; case 'load': return [3 /*break*/, 2]; case 'ajax': return [3 /*break*/, 2]; case 'mask': return [3 /*break*/, 2]; case 'embed': return [3 /*break*/, 2]; } return [3 /*break*/, 6]; case 2: alias = route.alias || Routing_1.Routes.parseAlias(route); responseObj = type === 'js' ? (this.response) : (this.response[type] || (this.response[type] = {})); if (!(alias != null)) return [3 /*break*/, 5]; exp = resource.exports; if (Config_1.cfg.es6Exports && (exp != null && typeof exp === 'object')) { exp = exp.default || exp; } if (!(0, class_Dfr_1.isDeferred)(exp)) return [3 /*break*/, 4]; return [4 /*yield*/, exp]; case 3: exp = _b.sent(); _b.label = 4; case 4: responseObj[alias] = exp; return [3 /*break*/, 6]; case 5: console.warn('<includejs> Alias is undefined', resource); return [3 /*break*/, 6]; case 6: i++; return [3 /*break*/, 1]; case 7: response = this.response || global_1.emptyResponse; if (this._use == null && this._usage != null) { this._use = (0, tree_1.tree_resolveUsage)(this, this._usage, function () { _this.state = State_1.State.AllCompleted; _this.resolve(callback); _this.readystatechanged(State_1.State.AllCompleted); }); if (this.state < State_1.State.AllCompleted) return [2 /*return*/]; } if (this._use) { callback.apply(null, [response].concat(this._use)); return [2 /*return*/]; } before = null; if (this.type === Type_1.ResourceType.Js) { before = global.include; global.include = this; } callback(response); if (before != null && global.include === this) { global.include = before; } return [2 /*return*/]; } }); }); }; return IncludeDeferred; }()); exports.IncludeDeferred = IncludeDeferred; ; ; function __isObj(x) { return x != null && typeof x === 'object' && x.constructor === Object; } if (_src_IncludeDeferred === module.exports) { // do nothing if } else if (__isObj(_src_IncludeDeferred) && __isObj(module.exports)) { Object.assign(_src_IncludeDeferred, module.exports); } else { _src_IncludeDeferred = module.exports; } ; }()); // end:source ./ModuleSimplified.js // source ./ModuleSimplified.js var _src_Bin; (function () { // ensure AMD is not active for the model, so that any UMD exports as commonjs var define = null; var exports = _src_Bin != null ? _src_Bin : {}; var module = { exports: exports }; "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.bin_tryReload = exports.bin_remove = exports.bin_removeDelegate = exports.bin = exports.Bin = void 0; var path_1 = _src_utils_path; var Config_1 = _src_Config; exports.Bin = { add: function (type, id, resource) { exports.bin[type][normalize(id)] = resource; }, find: function (url) { var x = find(exports.bin, url); return x && x.resource || null; }, remove: function (url) { while (true) { // clear if has multiple types var x = find(exports.bin, url); if (x == null) break; exports.bin[x.type][x.id] = null; } }, get: function (type, url) { var x = findInType(exports.bin, type, url); if (x == null) { x = find(exports.bin, url); } return x && x.resource || null; } }; exports.bin = { js: {}, css: {}, load: {}, ajax: {}, embed: {}, mask: {} }; function bin_removeDelegate(url) { // use timeout as sys-file-change event is called twice var timeout; return function () { if (timeout) { clearTimeout(timeout); } timeout = setTimeout(function () { bin_tryReload(url, function () { Config_1.cfg.autoreload && Config_1.cfg.autoreload.fileChanged(url, 'include'); }); }, 150); }; } exports.bin_removeDelegate = bin_removeDelegate; ; function bin_remove(url) { var x = find(exports.bin, url); if (x == null) { console.warn('<