includejs
Version:
Resource Loader
1,495 lines (1,408 loc) • 169 kB
JavaScript
// source ./browser/eval.js
function __eval(source, include) {
"use strict";
try {
return eval.call(window, source);
} catch (error) {
error.url = include && include.url;
console.error(error);
}
}
// end:source ./browser/eval.js
// 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_browser_init = {};
var _src_global = {};
var _src_loader_json = {};
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_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 (BROWSER)
_isBrowser = true;
_isNode = false;
//#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_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_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('<include:res:remove> Resource is not in cache', url);
return null;
}
var type = x.type, id = x.id, resource = x.resource;
if (resource == null) {
return null;
}
if (global.io && global.io.File) {
global.io.File.clearCache(resource.url);
}
exports.bin[type][id] = null;
var roots = clearParents(exports.bin, resource);
return {
resource: resource,
parents: roots
};
}
exports.bin_remove = bin_remove;
;
function bin_tryReload(path, callback) {
var result = bin_remove(path);
if (result == null) {
callback(false);
return;
}
var resource = result.resource, parents = result.parents;
if (parents == null || parents.length === 0) {
callback(true);
return;
}
var count = parents.length, imax = count, i = -1;
while (++i < imax) {
bin_load(resource, parents[i]).done(function () {
if (--count === 0) {
callback(true);
}
});
}
}
exports.bin_tryReload = bin_tryReload;
// PRIVATE
function bin_load(resource, parent) {
parent.exports = null;
return parent
.create(resource.type, resource.route, resource.namespace, resource.xpath)
.resource
.on(4, parent.childLoaded);
}
function normalize(url) {
var id = (0, path_1.path_normalize)(url);
var q = id.indexOf('?');
if (q !== -1)
id = id.substring(0, q);
return id.toLowerCase();
}
function find(bins, url) {
if (url == null) {
return null;
}
url = normalize(url);
for (var type in bins) {
var x = findInType(bins, type, url);
if (x != null) {
return x;
}
}
return null;
}
function findInType(bins, type, url) {
if (url == null || type == null) {
return null;
}
var bin = bins[type];
if (url in bin) {
return {
type: type,
id: url,
resource: bin[url]
};
}
url = normalize(url);
for (var id in bin) {
if (endsWith(id, url) || endsWith(url, id)) {
var resource = bin[id];
if (resource == null) {
continue;
}
return {
type: type,
id: id,
resource: resource
};
}
}
}
function endsWith(str, end) {
var sL = str.length;
var eL = end.length;
return sL >= eL && str.indexOf(end) === str.length - end.length;
}
function findParents(bins, resource) {
var arr = [];
for (var type in bins) {
var bin_1 = bins[type];
for (var id in bin_1) {
var res = bin_1[id];
if (res == null) {
continue;
}
var children = res.includes;
if (children == null) {
continue;
}
for (var i = 0; i < children.length; i++) {
var child = children[i];
if (child.resource.url === resource.url) {
arr.push({ resource: res, id: id, type: type });
break;
}
}
}
}
return arr;
}
function clearParents(bins, resource, roots, handled) {
if (roots === void 0) { roots = []; }
if (handled === void 0) { handled = []; }
if (handled.indexOf(resource.url) > -1) {
return roots;
}
var parents = findParents(bins, resource);
if (parents.length === 0) {
roots.push(resource);
return roots;
}
parents.forEach(function (x) {
bins[x.type][x.id] = null;
clearParents(bins, x.resource, roots, handled);
handled.push(x.resource.url);
});
}
;
function __isObj(x) {
return x != null && typeof x === 'object' && x.constructor === Object;
}
if (_src_Bin === module.exports) {
// do nothing if
} else if (__isObj(_src_Bin) && __isObj(module.exports)) {
Object.assign(_src_Bin, module.exports);
} else {
_src_Bin = module.exports;
}
;
}());
// end:source ./ModuleSimplified.js
// source ./ModuleSimplified.js
var _src_Helper;
(function () {
// ensure AMD is not active for the model, so that any UMD exports as commonjs
var define = null;
var exports = _src_Helper != null ? _src_Helper : {};
var module = { exports: exports };
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Helper = void 0;
var Config_1 = _src_Config;
var global_1 = _src_global;
var class_Dfr_1 = _src_utils_class_Dfr;
exports.Helper = {
reportError: function (e) {
console.error('IncludeJS Error:', e, e.message, e.url);
global_1.handler.onerror && global_1.handler.onerror(e);
},
XHR: function (resource, callback) {
var xhr = new global_1.refs.XMLHttpRequest();
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
callback === null || callback === void 0 ? void 0 : callback(resource, xhr.responseText);
}
};
var url = typeof resource === 'object' ? resource.url : resource;
var async = Config_1.cfg.sync === true ? false : true;
if (global_1.isBrowser && Config_1.cfg.version) {
url += (url.indexOf('?') === -1 ? '?' : '&') + 'v=' + Config_1.cfg.version;
}
if (url[0] === '/' && Config_1.cfg.lockedToFolder === true) {
url = url.substring(1);
}
xhr.addEventListener('error', function (err) {
if (typeof resource !== 'string') {
resource.error = err;
}
});
xhr.open('GET', url, async);
xhr.send();
},
XHR_LOAD: function (url, callback) {
var xhr = new global_1.refs.XMLHttpRequest();
var dfr = callback == null
? new class_Dfr_1.class_Dfr()
: null;
xhr.onreadystatechange = function () {
if (xhr.readyState !== 4) {
return;
}
var body = xhr.responseText;
var headers = xhr.getAllResponseHeaders();
var status = xhr.status;
if (status !== 200) {
dfr === null || dfr === void 0 ? void 0 : dfr.resolve({
body: body,
status: status,
headers: headers,
});
callback === null || callback === void 0 ? void 0 : callback(status);
return;
}
dfr === null || dfr === void 0 ? void 0 : dfr.resolve({
body: body,
status: status,
headers: headers,
});
callback === null || callback === void 0 ? void 0 : callback(null, body);
};
xhr.open('GET', url, Config_1.cfg.sync === true ? false : true);
xhr.send();
return dfr;
}
};
;
function __isObj(x) {
return x != null && typeof x === 'object' && x.constructor === Object;
}
if (_src_Helper === module.exports) {
// do nothing if
} else if (__isObj(_src_Helper) && __isObj(module.exports)) {
Object.assign(_src_Helper, module.exports);
} else {
_src_Helper = module.exports;
}
;
}());
// end:source ./ModuleSimplified.js
// source ./ModuleSimplified.js
var _src_PathResolver;
(function () {
// ensure AMD is not active for the model, so that any UMD exports as commonjs
var define = null;
var exports = _src_PathResolver != null ? _src_PathResolver : {};
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.NodeModulePaths = exports.PathResolver = void 0;
var path_1 = _src_utils_path;
var Helper_1 = _src_Helper;
var Type_1 = _src_models_Type;
var Routing_1 = _src_Routing;
var global_1 = _src_global;
exports.PathResolver = {
configMap: function (map) {
for (var key in map) {
var value = map[key];
_map[key] = typeof value === 'string'
? { path: value }
: value;
}
},
configRewrites: function (rewrites) {
for (var key in rewrites) {
_rewrites[key] = rewrites[key];
}
},
configNpm: function (modules) {
modules.forEach(function (name) { return _npm[name] = 1; });
},
configExt: function (config) {
var def = config.def;
var types = config.types;
for (var key in def) {
_ext[key] = def[key];
}
for (var key in types) {
_extTypes[key] = types[key];
}
},
resolveBasic: function (path_, type, parent) {
var path = map(path_).path;
if (type === 'js' && isNodeModuleResolution(path) || path.includes('!')) {
return path;
}
var i = path.indexOf('/');
var namespace = path.substring(0, i);
if (Routing_1.Routes.has(namespace)) {
var template = path.substring(i + 1);
var info = Routing_1.Routes.resolve(namespace, template);
path = info.path;
}
path = (0, path_1.path_resolveUrl)(path, parent);
var rewritten = rewrite(path);
if (rewritten != null) {
path = exports.PathResolver.resolveBasic(rewritten, type, parent);
}
return ensureExtension(path, type);
},
resolveBasicWithData: function (path_, type, parent) {
var _a, _b;
var mapped1 = map(path_);
var path = exports.PathResolver.resolveBasic(path_, type, parent);
var mapped2 = map(path);
var data = {
path: path,
module: (_b = (_a = mapped1 === null || mapped1 === void 0 ? void 0 : mapped1.module) !== null && _a !== void 0 ? _a : mapped2 === null || mapped2 === void 0 ? void 0 : mapped2.module) !== null && _b !== void 0 ? _b : (path.includes('/esm/') ? 'import' : null)
};
return data;
},
isNpm: isNodeModuleResolution,
getType: getTypeForPath,
resolveNpm: function (path_, type, parent, cb) {
var path = map(path_).path;
if ((0, path_1.path_hasExtension)(path)) {
cb(null, path);
return;
}
if (type === 'js') {
if (isNodeModuleResolution(path)) {
var parentsPath = parent && parent.location;
if (!parentsPath || parentsPath === '/') {
parentsPath = (0, path_1.path_resolveCurrent)();
}
nodeModuleResolve(parentsPath, path, cb);
return;
}
}
if ((0, path_1.path_hasExtension)(path) === false) {
path += '.' + _ext[type];
}
cb(null, path);
},
isNodeNative: function