@stemy/ngx-utils 13.6.13 → 13.6.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/ng.mjs +5 -0
- package/esm2020/ngx-utils/components/dynamic-table/dynamic-table.component.mjs +3 -3
- package/fesm2015/stemy-ngx-utils.mjs +2 -2
- package/fesm2015/stemy-ngx-utils.mjs.map +1 -1
- package/fesm2020/stemy-ngx-utils.mjs +2 -2
- package/fesm2020/stemy-ngx-utils.mjs.map +1 -1
- package/package.json +1 -1
- package/bundles/stemy-ngx-utils.umd.js +0 -6380
- package/bundles/stemy-ngx-utils.umd.js.map +0 -1
- package/esm2015/ngx-utils/common-types.js +0 -121
- package/esm2015/ngx-utils/components/dynamic-table/dynamic-table.component.js +0 -139
- package/esm2015/ngx-utils/components/pagination-menu/pagination-menu.component.js +0 -96
- package/esm2015/ngx-utils/components/unordered-list/unordered-list.component.js +0 -51
- package/esm2015/ngx-utils/directives/async-method.base.js +0 -66
- package/esm2015/ngx-utils/directives/async-method.directive.js +0 -17
- package/esm2015/ngx-utils/directives/background.directive.js +0 -51
- package/esm2015/ngx-utils/directives/dynamic-table-template.directive.js +0 -19
- package/esm2015/ngx-utils/directives/global-template.directive.js +0 -27
- package/esm2015/ngx-utils/directives/icon.directive.js +0 -59
- package/esm2015/ngx-utils/directives/ngx-template-outlet.directive.js +0 -88
- package/esm2015/ngx-utils/directives/pagination-item.directive.js +0 -33
- package/esm2015/ngx-utils/directives/pagination.directive.js +0 -76
- package/esm2015/ngx-utils/directives/resource-if.directive.js +0 -51
- package/esm2015/ngx-utils/directives/sticky-class.directive.js +0 -35
- package/esm2015/ngx-utils/directives/sticky.directive.js +0 -48
- package/esm2015/ngx-utils/directives/unordered-list-item.directive.js +0 -70
- package/esm2015/ngx-utils/directives/unordered-list-template.directive.js +0 -26
- package/esm2015/ngx-utils/ngx-utils.module.js +0 -246
- package/esm2015/ngx-utils/pipes/chunk.pipe.js +0 -21
- package/esm2015/ngx-utils/pipes/entries.pipe.js +0 -24
- package/esm2015/ngx-utils/pipes/extra-item-properties.pipe.js +0 -27
- package/esm2015/ngx-utils/pipes/filter.pipe.js +0 -33
- package/esm2015/ngx-utils/pipes/find.pipe.js +0 -25
- package/esm2015/ngx-utils/pipes/format-number.pipe.js +0 -19
- package/esm2015/ngx-utils/pipes/get-offset.pipe.js +0 -13
- package/esm2015/ngx-utils/pipes/get-type.pipe.js +0 -12
- package/esm2015/ngx-utils/pipes/global-template.pipe.js +0 -37
- package/esm2015/ngx-utils/pipes/group-by.pipe.js +0 -23
- package/esm2015/ngx-utils/pipes/is-type.pipe.js +0 -12
- package/esm2015/ngx-utils/pipes/join.pipe.js +0 -15
- package/esm2015/ngx-utils/pipes/keys.pipe.js +0 -18
- package/esm2015/ngx-utils/pipes/map.pipe.js +0 -25
- package/esm2015/ngx-utils/pipes/max.pipe.js +0 -22
- package/esm2015/ngx-utils/pipes/min.pipe.js +0 -22
- package/esm2015/ngx-utils/pipes/pop.pipe.js +0 -12
- package/esm2015/ngx-utils/pipes/reduce.pipe.js +0 -26
- package/esm2015/ngx-utils/pipes/remap.pipe.js +0 -28
- package/esm2015/ngx-utils/pipes/replace.pipe.js +0 -13
- package/esm2015/ngx-utils/pipes/reverse.pipe.js +0 -20
- package/esm2015/ngx-utils/pipes/round.pipe.js +0 -19
- package/esm2015/ngx-utils/pipes/safe-html.pipe.js +0 -32
- package/esm2015/ngx-utils/pipes/shift.pipe.js +0 -12
- package/esm2015/ngx-utils/pipes/split.pipe.js +0 -12
- package/esm2015/ngx-utils/pipes/translate.pipe.js +0 -81
- package/esm2015/ngx-utils/pipes/values.pipe.js +0 -18
- package/esm2015/ngx-utils/plugins/resize-event.plugin.js +0 -56
- package/esm2015/ngx-utils/plugins/scroll-event.plugin.js +0 -36
- package/esm2015/ngx-utils/services/acl.service.js +0 -81
- package/esm2015/ngx-utils/services/api.service.js +0 -39
- package/esm2015/ngx-utils/services/auth.service.js +0 -14
- package/esm2015/ngx-utils/services/base-http.client.js +0 -46
- package/esm2015/ngx-utils/services/base-http.service.js +0 -284
- package/esm2015/ngx-utils/services/config.service.js +0 -137
- package/esm2015/ngx-utils/services/error-handler.service.js +0 -49
- package/esm2015/ngx-utils/services/events.service.js +0 -24
- package/esm2015/ngx-utils/services/formatter.service.js +0 -46
- package/esm2015/ngx-utils/services/global-template.service.js +0 -35
- package/esm2015/ngx-utils/services/icon.service.js +0 -24
- package/esm2015/ngx-utils/services/language.service.js +0 -129
- package/esm2015/ngx-utils/services/open-api.service.js +0 -41
- package/esm2015/ngx-utils/services/promise.service.js +0 -52
- package/esm2015/ngx-utils/services/state.service.js +0 -181
- package/esm2015/ngx-utils/services/static-language.service.js +0 -152
- package/esm2015/ngx-utils/services/storage.service.js +0 -48
- package/esm2015/ngx-utils/services/toaster.service.js +0 -29
- package/esm2015/ngx-utils/services/translated-url.serializer.js +0 -70
- package/esm2015/ngx-utils/services/universal.service.js +0 -78
- package/esm2015/ngx-utils/utils/ajax-request-handler.js +0 -40
- package/esm2015/ngx-utils/utils/array.utils.js +0 -107
- package/esm2015/ngx-utils/utils/auth.guard.js +0 -156
- package/esm2015/ngx-utils/utils/canvas.utils.js +0 -388
- package/esm2015/ngx-utils/utils/date.utils.js +0 -29
- package/esm2015/ngx-utils/utils/file-system.js +0 -25
- package/esm2015/ngx-utils/utils/file.utils.js +0 -90
- package/esm2015/ngx-utils/utils/generic-value.js +0 -20
- package/esm2015/ngx-utils/utils/geometry.js +0 -132
- package/esm2015/ngx-utils/utils/initializer.js +0 -20
- package/esm2015/ngx-utils/utils/loader.utils.js +0 -55
- package/esm2015/ngx-utils/utils/math.utils.js +0 -45
- package/esm2015/ngx-utils/utils/object.utils.js +0 -320
- package/esm2015/ngx-utils/utils/observable.utils.js +0 -63
- package/esm2015/ngx-utils/utils/reflect.utils.js +0 -33
- package/esm2015/ngx-utils/utils/set.utils.js +0 -20
- package/esm2015/ngx-utils/utils/string.utils.js +0 -28
- package/esm2015/ngx-utils/utils/timer.utils.js +0 -52
- package/esm2015/ngx-utils/utils/unique.utils.js +0 -24
- package/esm2015/ngx-utils/utils/vector.js +0 -77
- package/esm2015/public_api.js +0 -89
- package/esm2015/stemy-ngx-utils.js +0 -7
- package/fesm2015/stemy-ngx-utils.js +0 -5060
- package/fesm2015/stemy-ngx-utils.js.map +0 -1
- package/stemy-ngx-utils.metadata.json +0 -1
- package/tools/circular.js +0 -117
- package/tools/circular.js.map +0 -1
- package/tools/config.js +0 -79
- package/tools/config.js.map +0 -1
- package/tools/icons.js +0 -14
- package/tools/icons.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stemy-ngx-utils.umd.js","sources":["../../node_modules/tslib/tslib.es6.js","../../src/ngx-utils/utils/object.utils.ts","../../src/ngx-utils/utils/reflect.utils.ts","../../src/ngx-utils/common-types.ts","../../src/ngx-utils/utils/ajax-request-handler.ts","../../src/ngx-utils/utils/date.utils.ts","../../src/ngx-utils/utils/canvas.utils.ts","../../src/ngx-utils/utils/file.utils.ts","../../src/ngx-utils/utils/generic-value.ts","../../src/ngx-utils/utils/file-system.ts","../../src/ngx-utils/utils/geometry.ts","../../src/ngx-utils/utils/initializer.ts","../../src/ngx-utils/utils/loader.utils.ts","../../src/ngx-utils/utils/math.utils.ts","../../src/ngx-utils/services/universal.service.ts","../../src/ngx-utils/services/state.service.ts","../../src/ngx-utils/utils/auth.guard.ts","../../src/ngx-utils/utils/timer.utils.ts","../../src/ngx-utils/utils/observable.utils.ts","../../src/ngx-utils/utils/string.utils.ts","../../src/ngx-utils/utils/array.utils.ts","../../src/ngx-utils/utils/set.utils.ts","../../src/ngx-utils/utils/unique.utils.ts","../../src/ngx-utils/utils/vector.ts","../../src/ngx-utils/services/acl.service.ts","../../src/ngx-utils/services/base-http.client.ts","../../src/ngx-utils/services/storage.service.ts","../../src/ngx-utils/services/base-http.service.ts","../../src/ngx-utils/services/api.service.ts","../../src/ngx-utils/services/auth.service.ts","../../src/ngx-utils/services/config.service.ts","../../src/ngx-utils/services/error-handler.service.ts","../../src/ngx-utils/services/events.service.ts","../../src/ngx-utils/services/formatter.service.ts","../../src/ngx-utils/services/global-template.service.ts","../../src/ngx-utils/services/icon.service.ts","../../src/ngx-utils/services/static-language.service.ts","../../src/ngx-utils/services/language.service.ts","../../src/ngx-utils/services/open-api.service.ts","../../src/ngx-utils/services/toaster.service.ts","../../src/ngx-utils/services/translated-url.serializer.ts","../../src/ngx-utils/services/promise.service.ts","../../src/ngx-utils/plugins/resize-event.plugin.ts","../../src/ngx-utils/plugins/scroll-event.plugin.ts","../../src/ngx-utils/pipes/chunk.pipe.ts","../../src/ngx-utils/pipes/entries.pipe.ts","../../src/ngx-utils/pipes/extra-item-properties.pipe.ts","../../src/ngx-utils/pipes/filter.pipe.ts","../../src/ngx-utils/pipes/find.pipe.ts","../../src/ngx-utils/pipes/format-number.pipe.ts","../../src/ngx-utils/pipes/get-offset.pipe.ts","../../src/ngx-utils/pipes/get-type.pipe.ts","../../src/ngx-utils/pipes/global-template.pipe.ts","../../src/ngx-utils/pipes/group-by.pipe.ts","../../src/ngx-utils/pipes/is-type.pipe.ts","../../src/ngx-utils/pipes/join.pipe.ts","../../src/ngx-utils/pipes/keys.pipe.ts","../../src/ngx-utils/pipes/map.pipe.ts","../../src/ngx-utils/pipes/max.pipe.ts","../../src/ngx-utils/pipes/min.pipe.ts","../../src/ngx-utils/pipes/pop.pipe.ts","../../src/ngx-utils/pipes/reduce.pipe.ts","../../src/ngx-utils/pipes/remap.pipe.ts","../../src/ngx-utils/pipes/replace.pipe.ts","../../src/ngx-utils/pipes/reverse.pipe.ts","../../src/ngx-utils/pipes/round.pipe.ts","../../src/ngx-utils/pipes/safe-html.pipe.ts","../../src/ngx-utils/pipes/shift.pipe.ts","../../src/ngx-utils/pipes/split.pipe.ts","../../src/ngx-utils/pipes/translate.pipe.ts","../../src/ngx-utils/pipes/values.pipe.ts","../../src/ngx-utils/directives/async-method.base.ts","../../src/ngx-utils/directives/async-method.directive.ts","../../src/ngx-utils/directives/background.directive.ts","../../src/ngx-utils/directives/dynamic-table-template.directive.ts","../../src/ngx-utils/directives/global-template.directive.ts","../../src/ngx-utils/directives/icon.directive.ts","../../src/ngx-utils/directives/ngx-template-outlet.directive.ts","../../src/ngx-utils/directives/pagination.directive.ts","../../src/ngx-utils/directives/pagination-item.directive.ts","../../src/ngx-utils/directives/resource-if.directive.ts","../../src/ngx-utils/directives/sticky.directive.ts","../../src/ngx-utils/directives/sticky-class.directive.ts","../../src/ngx-utils/directives/unordered-list-item.directive.ts","../../src/ngx-utils/directives/unordered-list-template.directive.ts","../../src/ngx-utils/components/unordered-list/unordered-list.component.ts","../../src/ngx-utils/components/dynamic-table/dynamic-table.component.ts","../../src/ngx-utils/components/pagination-menu/pagination-menu.component.ts","../../src/ngx-utils/ngx-utils.module.ts","../../src/stemy-ngx-utils.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n 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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import {ReflectUtils} from \"./reflect.utils\";\r\n\r\nexport type FilterPredicate = (value: any, key?: any, target?: any, source?: any) => boolean;\r\nexport type IterateCallback = (value: any, key?: any) => void;\r\n\r\nexport function defaultPredicate(value: any, key?: any, target?: any, source?: any): boolean {\r\n return true;\r\n}\r\n\r\nexport function shouldCopyDefault(key: any, value: any): boolean {\r\n return true;\r\n}\r\n\r\nconst hasBlob = typeof Blob !== \"undefined\" && !!Blob;\r\nconst hasFile = typeof File !== \"undefined\" && !!File;\r\n\r\nexport class ObjectUtils {\r\n\r\n static compare(a: any, b: any): number {\r\n if ((a === null || b === null) || (typeof a != typeof b)) {\r\n return null;\r\n }\r\n if (typeof a === \"string\") {\r\n return (a).localeCompare(b);\r\n } else {\r\n if (a instanceof Date) {\r\n a = a.getTime();\r\n b = b.getTime();\r\n }\r\n if (a > b) {\r\n return 1;\r\n } else if (a < b) {\r\n return -1;\r\n }\r\n return 0;\r\n }\r\n }\r\n\r\n static getProperties(obj: any): string[] {\r\n if (!ObjectUtils.isObject(obj) && !ObjectUtils.isFunction(obj)) return [];\r\n const props = new Set<string>();\r\n Object.keys(obj).forEach(p => props.add(p));\r\n Object.getOwnPropertyNames(obj).forEach(p => props.add(p));\r\n return Array.from(props);\r\n }\r\n\r\n static equals(a: any, b: any, visited: Set<any> = null): boolean {\r\n visited = visited || new Set();\r\n if (visited.has(a) && visited.has(b)) return true;\r\n if (a === b) return true;\r\n if (a === null || b === null) return false;\r\n if (a !== a && b !== b) return true; // NaN === NaN\r\n const at = typeof a, bt = typeof b;\r\n let length: number, key: any, keySet: any;\r\n if (at == bt && at == \"object\") {\r\n visited.add(a);\r\n visited.add(b);\r\n if (Array.isArray(a)) {\r\n if (!Array.isArray(b)) return false;\r\n if ((length = a.length) == b.length) {\r\n for (key = 0; key < length; key++) {\r\n if (!ObjectUtils.equals(a[key], b[key], visited)) return false;\r\n }\r\n return true;\r\n }\r\n } else {\r\n if (Array.isArray(b)) {\r\n return false;\r\n }\r\n keySet = Object.create(null);\r\n for (key in a) {\r\n if (a.hasOwnProperty(key)) {\r\n if (!ObjectUtils.equals(a[key], b[key], visited)) {\r\n return false;\r\n }\r\n keySet[key] = true;\r\n }\r\n }\r\n for (key in b) {\r\n if (b.hasOwnProperty(key) && !(key in keySet) && typeof b[key] !== \"undefined\") {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n static evaluate(expr: string, context: any = {}, res: any = {}): any {\r\n expr = Object.keys(context).reduce((res, key) => `var ${key} = this['${key}'];\\n${res}`, expr);\r\n const lines = expr.split(\"\\n\");\r\n const lastLine = \"return \" + lines.pop().replace(\"return \", \"\");\r\n lines.push(lastLine);\r\n expr = lines.join(\"\\n\");\r\n let result = null;\r\n try {\r\n result = new Function(expr).call(context);\r\n } catch (e) {\r\n res.exception = e;\r\n console.log(`Failed to parse expression: ${e.message}`, expr, context);\r\n }\r\n res.result = result;\r\n return result;\r\n }\r\n\r\n static empty(obj: any): boolean {\r\n return !obj || Object.keys(obj).length == 0;\r\n }\r\n\r\n static iterate(obj: any, cb: IterateCallback): void {\r\n if (!obj) return;\r\n const keys: any[] = Array.isArray(obj) ? Array.from(obj.keys()) : Object.keys(obj);\r\n keys.forEach(\r\n // @dynamic\r\n key => {\r\n cb(obj[key], key);\r\n }\r\n );\r\n }\r\n\r\n static getValue(obj: any, key: string, defaultValue?: any, treeFallback: boolean = false): any {\r\n key = key || \"\";\r\n const keys = key.split(\".\");\r\n let curKey = \"\";\r\n do {\r\n curKey += keys.shift();\r\n if (ObjectUtils.isDefined(obj) && ObjectUtils.isDefined(obj[curKey]) && (typeof obj[curKey] === \"object\" || !keys.length)) {\r\n obj = obj[curKey];\r\n curKey = \"\";\r\n } else if (!keys.length) {\r\n defaultValue = typeof defaultValue == \"undefined\" ? key.replace(new RegExp(`${curKey}$`), `{${curKey}}`) : defaultValue;\r\n obj = treeFallback ? obj || defaultValue : defaultValue;\r\n } else {\r\n curKey += \".\";\r\n }\r\n } while (keys.length);\r\n return obj;\r\n }\r\n\r\n static mapToPath(target: any, source: any, path: string[]): any {\r\n if (typeof source === \"undefined\") return target;\r\n if (path.length == 0) return source;\r\n const key: any = path.shift();\r\n if (key == \"*\") {\r\n if (ObjectUtils.isArray(source)) {\r\n target = ObjectUtils.isArray(target) ? target : [];\r\n return source.map((item, index) => {\r\n return ObjectUtils.mapToPath(target[index], item, Array.from(path));\r\n });\r\n }\r\n if (ObjectUtils.isObject(source)) {\r\n target = ObjectUtils.isObject(target) ? target : {};\r\n return Object.keys(source).reduce((result, key) => {\r\n result[key] = ObjectUtils.mapToPath(target[key], source[key], Array.from(path));\r\n return result;\r\n }, {});\r\n }\r\n return ObjectUtils.isNullOrUndefined(target) ? null : target;\r\n }\r\n const isArray = ObjectUtils.isArray(target);\r\n target = ObjectUtils.isObject(target) || isArray ? target : {};\r\n target[key] = ObjectUtils.mapToPath(target[key], source, Array.from(path));\r\n return isNaN(key) || isArray ? target : Object.values(target);\r\n }\r\n\r\n static filter(obj: any, predicate: FilterPredicate): any {\r\n return ObjectUtils.copyRecursive(null, obj, predicate || defaultPredicate, new Map());\r\n }\r\n\r\n static copy<T>(obj: T): T {\r\n return ObjectUtils.copyRecursive(null, obj, defaultPredicate, new Map());\r\n }\r\n\r\n static assign<T>(target: T, source: any, predicate?: FilterPredicate): T {\r\n return ObjectUtils.copyRecursive(target, source, predicate || defaultPredicate, new Map());\r\n }\r\n\r\n static getType(obj: any): string {\r\n const regex = new RegExp(\"\\\\s([a-zA-Z]+)\");\r\n const target = !obj ? null : obj.constructor;\r\n const type = !target ? null : Reflect.getMetadata(\"objectType\", target);\r\n return (type || Object.prototype.toString.call(obj).match(regex)[1]).toLowerCase();\r\n }\r\n\r\n static isPrimitive(value: any): boolean {\r\n const type = typeof value;\r\n return value == null || (type !== \"object\" && type !== \"function\");\r\n }\r\n\r\n static isObject(value: any): boolean {\r\n return ObjectUtils.getType(value) === \"object\";\r\n }\r\n\r\n static isDefined(value: any): boolean {\r\n return typeof value !== \"undefined\" && value !== null;\r\n }\r\n\r\n static isNullOrUndefined(value: any): boolean {\r\n return typeof value == \"undefined\" || value == null;\r\n }\r\n\r\n static isString(value: any): value is string {\r\n return typeof value === \"string\";\r\n }\r\n\r\n static isFunction(value: any): value is Function {\r\n return typeof value === \"function\";\r\n }\r\n\r\n static isDate(value: any): value is Date {\r\n return null !== value && !isNaN(value) && \"undefined\" !== typeof value.getDate;\r\n }\r\n\r\n static isBlob(value: any): value is Blob {\r\n return (hasBlob && value instanceof Blob) || (hasFile && value instanceof File);\r\n }\r\n\r\n static isBoolean(value: any): value is boolean {\r\n return typeof(value) == typeof(true);\r\n }\r\n\r\n static isNumber(value: any): value is number {\r\n if (typeof value !== \"number\") return false;\r\n const num = +value;\r\n if ((num - num) !== 0) {\r\n return false;\r\n }\r\n if (num === value) {\r\n return true;\r\n }\r\n }\r\n\r\n static isArray(value: any): value is Array<any> {\r\n return Array.isArray(value);\r\n }\r\n\r\n static isSet(value: any): value is Set<any> {\r\n return value instanceof Set;\r\n }\r\n\r\n static isConstructor(value: any): boolean {\r\n return (value && typeof value === \"function\" && value.prototype && value.prototype.constructor) === value && value.name !== \"Object\";\r\n }\r\n\r\n static checkInterface(obj: any, interFaceObject: any): boolean {\r\n return ObjectUtils.isInterface(obj, interFaceObject);\r\n }\r\n\r\n static isInterface(obj: any, interFaceObject: any): boolean {\r\n if (!obj || typeof obj !== \"object\" || ObjectUtils.isArray(obj) || !ObjectUtils.isObject(interFaceObject)) return false;\r\n const keys = Object.keys(interFaceObject);\r\n for (const key of keys) {\r\n let type = interFaceObject[key] || \"\";\r\n if (type.startsWith(\"*\")) {\r\n type = type.substr(1);\r\n if (obj.hasOwnProperty(key) && ObjectUtils.getType(obj[key]) !== type) return false;\r\n } else if (!obj.hasOwnProperty(key) || ObjectUtils.getType(obj[key]) !== type) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n static pad(obj: any, width: number, chr: string = \"0\"): string {\r\n const str = ObjectUtils.isDefined(obj) ? obj.toString() : \"\";\r\n return str.length >= width ? str : new Array(width - str.length + 1).join(chr) + str;\r\n }\r\n\r\n private static copyRecursive(target: any, source: any, predicate: FilterPredicate, copies: Map<any, any>): any {\r\n if (ObjectUtils.isPrimitive(source) || ObjectUtils.isDate(source) || ObjectUtils.isBlob(source) || ObjectUtils.isFunction(source)) return source;\r\n if (copies.has(source)) return copies.get(source);\r\n if (ObjectUtils.isArray(source)) {\r\n target = ObjectUtils.isArray(target) ? Array.from(target) : [];\r\n copies.set(source, target);\r\n for (let index = 0; index < source.length; index++) {\r\n const item = source[index];\r\n if (!predicate(item, index, target, source)) continue;\r\n if (target.length > index)\r\n target[index] = ObjectUtils.copyRecursive(target[index], item, predicate, copies);\r\n else\r\n target.push(ObjectUtils.copyRecursive(null, item, predicate, copies));\r\n }\r\n return target;\r\n }\r\n\r\n // If object defines __shouldCopy as false, then don't copy it\r\n if (source.__shouldCopy === false) return source;\r\n // Copy object\r\n const shouldCopy = ObjectUtils.isFunction(source.__shouldCopy) ? source.__shouldCopy : shouldCopyDefault;\r\n if (ObjectUtils.isConstructor(source.constructor)) {\r\n if (!target) {\r\n try {\r\n target = new source.constructor();\r\n } catch (e) {\r\n const proto = source.constructor.prototype || source.prototype;\r\n target = Object.create(proto);\r\n }\r\n }\r\n } else {\r\n target = Object.assign({}, target || {});\r\n }\r\n // Set to copies to prevent circular references\r\n copies.set(source, target);\r\n\r\n // Copy map entries\r\n if (target instanceof Map) {\r\n if (source instanceof Map) {\r\n for (const [key, value] of source.entries()) {\r\n if (!predicate(value, key, target, source)) continue;\r\n target.set(key, !shouldCopy(key, value) ? value : ObjectUtils.copyRecursive(target.get(key), value, predicate, copies));\r\n }\r\n }\r\n return target;\r\n }\r\n\r\n // Copy object members\r\n const keys = Object.keys(source);\r\n for (const key of keys) {\r\n if (!predicate(source[key], key, target, source)) continue;\r\n target[key] = !shouldCopy(key, source[key]) ? source[key] : ObjectUtils.copyRecursive(target[key], source[key], predicate, copies);\r\n }\r\n\r\n // Copy object properties\r\n const descriptors = Object.getOwnPropertyDescriptors(source);\r\n for (const key of Object.keys(descriptors)) {\r\n if (keys.indexOf(key) >= 0) continue;\r\n Object.defineProperty(target, key, descriptors[key]);\r\n }\r\n return target;\r\n }\r\n}\r\n","import \"reflect-metadata\";\r\nimport {Injector, TypeProvider} from \"@angular/core\";\r\nimport {IResolveFactory} from \"../common-types\";\r\nimport {ObjectUtils} from \"./object.utils\";\r\n\r\nexport class ReflectUtils {\r\n\r\n static defineMetadata(key: string, data: any, target: any, name?: string): void {\r\n Reflect.defineMetadata(key, data, target, name);\r\n }\r\n\r\n static getMetadata(key: string, target: any, name?: string): any {\r\n return Reflect.getMetadata(key, target, name);\r\n }\r\n\r\n static getOwnMetadata(key: string, target: any, name?: string): any {\r\n return Reflect.getOwnMetadata(key, target, name);\r\n }\r\n\r\n static resolve<T>(obj: IResolveFactory | T, injector: Injector): T {\r\n if (!ObjectUtils.checkInterface(obj, {func: \"function\"})) return <T>obj;\r\n const factory = <IResolveFactory>obj;\r\n let depends: TypeProvider[] = [];\r\n if (factory.type) {\r\n const method = ObjectUtils.getProperties(factory.type).find(function (key) {\r\n return factory.type[key] === factory.func;\r\n });\r\n depends = ReflectUtils.getMetadata(\"factoryDependencies\", factory.type, method) || [];\r\n } else {\r\n depends = ReflectUtils.getMetadata(\"factoryDependencies\", factory.func) || [];\r\n }\r\n const parameters = depends.map(function (dep) {\r\n return injector.get(dep);\r\n }).concat(factory.params);\r\n return factory.func.apply(null, parameters);\r\n }\r\n}\r\n","import {EventEmitter, InjectionToken, Injector, NgZone, Provider, TemplateRef, Type} from \"@angular/core\";\r\nimport {HttpClient, HttpErrorResponse, HttpHeaders} from \"@angular/common/http\";\r\nimport {ActivatedRouteSnapshot, Data, Route, UrlTree} from \"@angular/router\";\r\nimport {Request} from \"express\";\r\nimport {ReflectUtils} from \"./utils/reflect.utils\";\r\nimport {ObjectUtils} from \"./utils/object.utils\";\r\n\r\n// --- Utils\r\nexport interface IResolveFactory {\r\n func: Function;\r\n type?: any;\r\n params?: any[];\r\n}\r\n\r\nexport class CanvasColor {\r\n constructor(public r: number, public g: number, public b: number, public a: number = 255) {\r\n\r\n }\r\n}\r\n\r\n// --- Icon service ---\r\nexport interface IIconService {\r\n isDisabled: boolean;\r\n iconsLoaded: EventEmitter<any>;\r\n getIcon(icon: string, activeIcon: string, active: boolean): Promise<string>;\r\n}\r\n\r\nexport const ICON_SERVICE: InjectionToken<IIconService> = new InjectionToken<IIconService>(\"icon-service\");\r\n\r\n// --- Language service ---\r\nexport interface ITranslation {\r\n lang: string;\r\n translation: string;\r\n}\r\n\r\nexport interface ITranslations {\r\n [key: string]: any;\r\n}\r\n\r\nexport interface ILanguageSetting {\r\n unavailable?: string;\r\n [key: string]: string | boolean | number;\r\n}\r\n\r\nexport interface ILanguageSettings {\r\n languages: string[];\r\n devLanguages: string[];\r\n defaultLanguage: string;\r\n settings?: {[lang: string]: ILanguageSetting};\r\n}\r\n\r\nexport interface ILanguageService {\r\n currentLanguage: string;\r\n editLanguage: string;\r\n disableTranslations: boolean;\r\n defaultLanguage: string;\r\n dictionary: ITranslations;\r\n readonly languages: ReadonlyArray<string>;\r\n readonly httpClient: HttpClient;\r\n replaceLanguages(languages: string[]): void;\r\n addLanguages(languages: string[]): void;\r\n getTranslationSync(key: string, params?: any): string;\r\n getTranslation(key: string, params?: any): Promise<string>;\r\n getTranslations(...keys: string[]): Promise<ITranslations>;\r\n getTranslationFromObject(translations: ITranslations, params?: any, lang?: string): string;\r\n getTranslationFromArray(translations: ITranslation[], params?: any, lang?: string): string;\r\n}\r\n\r\nexport const LANGUAGE_SERVICE: InjectionToken<ILanguageService> = new InjectionToken<ILanguageService>(\"language-service\");\r\n\r\n// --- Auth Service ---\r\nexport interface IAuthService {\r\n isAuthenticated: boolean;\r\n userChanged: EventEmitter<any>;\r\n checkAuthenticated(): Promise<boolean>;\r\n}\r\n\r\nexport type RouteValidator = (auth: IAuthService, route?: IRoute, next?: ActivatedRouteSnapshot) => Promise<boolean>;\r\n\r\nexport interface IRouteData extends Data {\r\n returnState?: string[];\r\n guards?: Array<IResolveFactory | RouteValidator>;\r\n}\r\n\r\nexport interface IRoute extends Route {\r\n data?: IRouteData;\r\n}\r\n\r\nexport const AUTH_SERVICE: InjectionToken<IAuthService> = new InjectionToken<IAuthService>(\"auth-service\");\r\n\r\n// --- Acl Service ---\r\nexport interface IAclComponent {\r\n onUserInitialized(): void;\r\n onUserChanged(): void;\r\n}\r\n\r\nexport interface IRouteStateInfo {\r\n route: IRoute;\r\n guard: any;\r\n dirty: boolean;\r\n first: boolean;\r\n component?: any;\r\n}\r\n\r\n// --- State Service ---\r\nexport type NavigationUrlParam = any[] | string | UrlTree;\r\n\r\n// --- Storage Service ---\r\nexport enum StorageMode {\r\n Local,\r\n Session\r\n}\r\n\r\n// --- Toaster Service ---\r\nexport interface IToasterService {\r\n error(message: string, params?: any, title?: string): void;\r\n info(message: string, params?: any, title?: string): void;\r\n success(message: string, params?: any, title?: string): void;\r\n warning(message: string, params?: any, title?: string): void;\r\n}\r\n\r\nexport const TOASTER_SERVICE: InjectionToken<IToasterService> = new InjectionToken<IToasterService>(\"toaster-service\");\r\n\r\n// --- Promise Service ---\r\n\r\nexport interface IPromiseService {\r\n zone: NgZone;\r\n count: number;\r\n onChanged: EventEmitter<number>;\r\n create<T>(executor: (resolve: (value?: T | PromiseLike<T>) => void, reject: (reason?: any) => void) => void): Promise<T>;\r\n all(promises: Promise<any>[]): Promise<any>;\r\n resolve<T>(value: T | PromiseLike<T>): Promise<T>;\r\n reject<T>(value: T | PromiseLike<T>): Promise<T>;\r\n}\r\n\r\nexport const PROMISE_SERVICE = new InjectionToken<IPromiseService>(\"promise-service\");\r\n\r\n// --- Async method ---\r\nexport interface IAsyncMessage {\r\n message: string;\r\n context?: any;\r\n}\r\n\r\nexport type AsyncMethod = (context?: any) => Promise<IAsyncMessage>;\r\n\r\n// --- Unordered list ---\r\nexport abstract class UnorederedListTemplate extends TemplateRef<any> {\r\n abstract type: string;\r\n abstract selector: string;\r\n}\r\n\r\nexport interface UnorderedListTemplates {\r\n [type: string]: TemplateRef<any>;\r\n}\r\n\r\nexport type UnorderedListStyle = \"table\" | \"list\";\r\n\r\n// --- Ajax request ---\r\nexport interface IAjaxRequestDetails {\r\n request: XMLHttpRequest,\r\n method: string;\r\n url: string;\r\n}\r\n\r\nexport type AjaxRequestCallback = (details: IAjaxRequestDetails, params: any) => void;\r\n\r\n// --- Loader utils ---\r\nexport interface IScriptPromises {\r\n [src: string]: Promise<HTMLScriptElement>;\r\n}\r\nexport interface IStylePromises {\r\n [src: string]: Promise<HTMLLinkElement>;\r\n}\r\n\r\n// --- Observable utils ---\r\nexport interface ISearchObservable {\r\n search: string;\r\n getSearchResults(token: string): Promise<any[]>;\r\n}\r\n\r\n// --- Reflect utils ---\r\nexport function FactoryDependencies(...dependencies: Array<InjectionToken<any> | Provider>): MethodDecorator {\r\n return function (target: any, method: string): void {\r\n ReflectUtils.defineMetadata(\"factoryDependencies\", dependencies, target, method);\r\n };\r\n}\r\n\r\nexport function ObjectType(type: string): ClassDecorator {\r\n return function (target: any): void {\r\n ReflectUtils.defineMetadata(\"objectType\", type, target);\r\n };\r\n}\r\n\r\n// --- Timer utils ---\r\nexport interface ITimer {\r\n id?: any;\r\n func?: Function;\r\n time?: number;\r\n run?: () => void;\r\n set?: (func: Function, time: number) => void;\r\n clear?: () => void;\r\n}\r\n\r\n// --- ExtraItemProperties ---\r\nexport interface IExtraProperties {\r\n [prop: string]: any;\r\n}\r\n\r\n// --- Group by ---\r\nexport interface IGroupMap {\r\n [column: string]: any;\r\n}\r\n\r\n// --- Translate ---\r\nexport type TranslationQuery = string | ITranslations | ITranslation[];\r\n\r\n// --- Pagination ---\r\nexport interface IPageInfo {\r\n text: string;\r\n number: number;\r\n active: boolean;\r\n}\r\n\r\nexport interface IPaginationData {\r\n total: number;\r\n items: any[];\r\n meta?: any;\r\n}\r\n\r\nexport type PaginationDataLoader = (page: number, itemsPerPage: number) => Promise<IPaginationData>;\r\n\r\nexport class PaginationItemContext {\r\n\r\n constructor(public item: any, public parallelItem: any, public count: number, public index: number, public dataIndex: number) {\r\n }\r\n\r\n get first(): boolean {\r\n return this.index === 0;\r\n }\r\n\r\n get last(): boolean {\r\n return this.index === this.count - 1;\r\n }\r\n\r\n get even(): boolean {\r\n return this.index % 2 === 0;\r\n }\r\n\r\n get odd(): boolean {\r\n return !this.even;\r\n }\r\n\r\n // Support for old dynamic table implementation\r\n get row(): any {\r\n console.log(\"DynamicTable row is deprecated use item instead\");\r\n return this.item;\r\n }\r\n\r\n // Support for old dynamic table implementation\r\n get parallelRow(): any {\r\n console.log(\"DynamicTable parallelRow is deprecated use parallelItem instead\");\r\n return this.parallelItem;\r\n }\r\n\r\n filter(filterRx: RegExp): boolean {\r\n const keys = Object.keys(this.item);\r\n for (const key of keys) {\r\n const value = this.item[key];\r\n if (ObjectUtils.isNullOrUndefined(value) || ObjectUtils.isObject(value)) continue;\r\n const testValue = ObjectUtils.isString(value) ? value : value.toString();\r\n if (testValue.match(filterRx)) return true;\r\n }\r\n return false;\r\n }\r\n}\r\n\r\n// --- Http service ---\r\nexport interface IHttpHeaders {\r\n [header: string]: string | string[];\r\n}\r\n\r\nexport interface IHttpParams {\r\n [key: string]: any;\r\n}\r\n\r\nexport interface IRequestOptions {\r\n method?: string;\r\n body?: any;\r\n headers?: IHttpHeaders | HttpHeaders;\r\n originalHeaders?: IHttpHeaders;\r\n params?: IHttpParams;\r\n observe?: \"body\" | \"response\";\r\n reportProgress?: boolean;\r\n responseType?: \"arraybuffer\" | \"blob\" | \"json\" | \"text\";\r\n withCredentials?: boolean;\r\n timeout?: number;\r\n}\r\n\r\nexport interface IIssueContext {\r\n url: string;\r\n}\r\n\r\nexport interface IProgress {\r\n percentage?: number;\r\n loaded?: number;\r\n total?: number;\r\n}\r\n\r\nexport type ProgressListener = (progress: IProgress) => void;\r\n\r\nexport type PromiseExecutor = (resolve: (value?: any | PromiseLike<any>) => void, reject: (reason?: any) => void) => void;\r\n\r\nexport class HttpPromise extends Promise<any> {\r\n\r\n protected rejectHandler: (reason?: HttpErrorResponse) => void;\r\n protected hasRejectHandler: boolean;\r\n protected attachCount: number;\r\n protected runCount: number;\r\n\r\n constructor(rejectHandler: (reason?: HttpErrorResponse) => void, executor: PromiseExecutor) {\r\n super(executor);\r\n this.rejectHandler = rejectHandler;\r\n this.attachCount = 0;\r\n this.runCount = 0;\r\n }\r\n\r\n then<TResult1, TResult2>(onFulfilled?: ((value: any) => (PromiseLike<TResult1> | TResult1)) | null | undefined,\r\n onRejected?: ((reason: HttpErrorResponse) => (PromiseLike<TResult2> | TResult2)) | null | undefined): Promise<TResult1 | TResult2> {\r\n this.attachCount++;\r\n return super.then(value => {\r\n this.runCount++;\r\n return onFulfilled ? onFulfilled(value) : null;\r\n }, (reason: HttpErrorResponse) => {\r\n const result: any = onRejected ? onRejected(reason) : null;\r\n this.hasRejectHandler = this.hasRejectHandler || (onRejected && result !== false);\r\n this.runCount++;\r\n this.rejectHandler(this.runCount == this.attachCount && !this.hasRejectHandler ? reason : null);\r\n return result;\r\n });\r\n }\r\n\r\n catch<TResult = never>(onRejected?: ((reason: HttpErrorResponse) => (PromiseLike<TResult> | TResult)) | null | undefined): Promise<any | TResult> {\r\n return this.then(null, onRejected);\r\n }\r\n}\r\n\r\nexport interface IHttpService {\r\n language: ILanguageService;\r\n url(url: string): string;\r\n makeListParams(page: number, itemsPerPage: number, orderBy?: string, orderDescending?: boolean, filter?: string): IHttpParams;\r\n}\r\n\r\nexport const EXPRESS_REQUEST = new InjectionToken<Request>(\"express-request\");\r\n\r\n// --- Api service ---\r\n\r\nexport interface IApiService extends IHttpService {\r\n cache: any;\r\n client: HttpClient;\r\n get(url: string, options?: IRequestOptions): Promise<any>;\r\n delete(url: string, options?: IRequestOptions): Promise<any>;\r\n post(url: string, body?: any, options?: IRequestOptions): Promise<any>;\r\n put(url: string, body?: any, options?: IRequestOptions): Promise<any>;\r\n patch(url: string, body?: any, options?: IRequestOptions): Promise<any>;\r\n upload(url: string, body: any, listener?: ProgressListener, options?: IRequestOptions): Promise<any>;\r\n list(url: string, params: IHttpParams): Promise<IPaginationData>;\r\n}\r\n\r\nexport const API_SERVICE: InjectionToken<IApiService> = new InjectionToken<IApiService>(\"api-service\");\r\n\r\n// --- OpenApi service ---\r\nexport interface IOpenApiSchemaProperty {\r\n id: string;\r\n type?: string;\r\n format?: string;\r\n column?: boolean;\r\n additionalProperties?: any;\r\n $ref?: string;\r\n items?: IOpenApiSchemaProperty;\r\n enum?: string[];\r\n [key: string]: any;\r\n}\r\n\r\nexport interface IOpenApiSchema {\r\n properties: {\r\n [name: string]: IOpenApiSchemaProperty;\r\n };\r\n required: string[];\r\n}\r\n\r\nexport interface IOpenApiSchemas {\r\n [name: string]: IOpenApiSchema;\r\n}\r\n\r\n// --- Dynamic table ---\r\nexport interface ITableColumns {\r\n [column: string]: string;\r\n}\r\n\r\nexport interface ITableTemplate {\r\n column: string | string[];\r\n pure: boolean;\r\n ref: TemplateRef<any>;\r\n}\r\n\r\nexport interface ITableTemplates {\r\n [column: string]: ITableTemplate;\r\n}\r\n\r\nexport type TableDataLoader = (page: number, rowsPerPage: number, orderBy: string, orderDescending: boolean, filter: string) => Promise<IPaginationData>;\r\n\r\n// --- Resource if ---\r\nexport class ResourceIfContext {\r\n resource: string;\r\n url: string;\r\n}\r\n\r\n// --- ConfigService ---\r\nexport class IConfiguration {\r\n baseUrl?: string;\r\n baseDomain?: string;\r\n translationUrl?: string;\r\n [key: string]: any;\r\n}\r\n\r\nexport interface IConfigService {\r\n config: IConfiguration;\r\n readonly load: () => Promise<IConfiguration>;\r\n readonly rootElement: any;\r\n cloneRootElem(): any;\r\n prepareUrl(url: string, ending: string): string;\r\n getConfigValue(key: string): any;\r\n getQueryParameter(name: string, url?: string): string;\r\n}\r\n\r\nexport const CONFIG_SERVICE = new InjectionToken<IConfigService>(\"config-service\");\r\n\r\nexport const BASE_CONFIG = new InjectionToken<IConfiguration>(\"base-config\");\r\n\r\nexport const SCRIPT_PARAMS = new InjectionToken<any>(\"script-params\");\r\n\r\nexport const ROOT_ELEMENT: InjectionToken<HTMLElement> = new InjectionToken<HTMLElement>(\"app-root-element\");\r\n\r\n// --- Error handler service ---\r\nexport type ErrorHandlerCallback = (error: string) => any;\r\n\r\nexport const ERROR_HANDLER = new InjectionToken<ErrorHandlerCallback>(\"error-handler-callback\");\r\n\r\n// --- Global templates service\r\n\r\nexport type GlobalComponentModifier = (component: any) => any;\r\n\r\nexport interface IGlobalTemplates {\r\n readonly templatesUpdated: EventEmitter<void>;\r\n get(id: string, component?: any): TemplateRef<any>;\r\n add(id: string, template: TemplateRef<any>): void;\r\n remove(id: string): void;\r\n addComponentModifier(id: string, modifier: GlobalComponentModifier): void;\r\n}\r\n\r\nexport const GLOBAL_TEMPLATES = new InjectionToken<ErrorHandlerCallback>(\"global-templates\");\r\n\r\n// --- Module ---\r\nexport type AppInitializerFunc = () => Promise<void> | void;\r\n\r\nexport interface IModuleConfig {\r\n apiService?: Type<IApiService>\r\n authService?: Type<IAuthService>;\r\n iconService?: Type<IIconService>;\r\n languageService?: Type<ILanguageService>;\r\n toasterService?: Type<IToasterService>;\r\n promiseService?: Type<IPromiseService>;\r\n configService?: Type<IConfigService>;\r\n globalTemplates?: Type<IGlobalTemplates>;\r\n initializeApp?: (injector: Injector) => AppInitializerFunc;\r\n}\r\n\r\n// --- Valued promise ---\r\nexport class ValuedPromise<T> extends Promise<T> {\r\n value: T;\r\n}\r\n","import {AjaxRequestCallback, IAjaxRequestDetails} from \"../common-types\";\r\n\r\nexport class AjaxRequestHandler {\r\n\r\n private static isOverridden: boolean = false;\r\n\r\n public params: any;\r\n\r\n constructor(private pattern: RegExp, private callback: AjaxRequestCallback) {\r\n this.params = {};\r\n if (typeof XMLHttpRequest !== \"undefined\" && !AjaxRequestHandler.isOverridden) {\r\n AjaxRequestHandler.isOverridden = true;\r\n const originalOpen = XMLHttpRequest.prototype.open;\r\n XMLHttpRequest.prototype.open = function (method: string, url?: string, async?: boolean, user?: string, password?: string): void {\r\n originalOpen.apply(this, arguments);\r\n window.dispatchEvent(new CustomEvent(\"ajaxRequest\", {\r\n detail: {\r\n request: this,\r\n method: method,\r\n url: url\r\n }\r\n }))\r\n };\r\n }\r\n }\r\n\r\n listen(): AjaxRequestHandler {\r\n if (typeof window === \"undefined\") return this;\r\n window.addEventListener(\"ajaxRequest\", this.listener);\r\n return this;\r\n }\r\n\r\n forget(): AjaxRequestHandler {\r\n if (typeof window === \"undefined\") return;\r\n window.removeEventListener(\"ajaxRequest\", this.listener);\r\n return this;\r\n }\r\n\r\n private listener = (event: CustomEvent): void => {\r\n const details: IAjaxRequestDetails = event.detail;\r\n if (this.pattern.test(details.url)) this.callback(details, this.params);\r\n };\r\n}\r\n","import {DurationInputArg1, DurationInputArg2} from \"moment\";\r\nimport moment from \"moment\";\r\n\r\nexport class DateUtils {\r\n\r\n static isHoliday(date: Date): boolean {\r\n return moment(date).isoWeekday() > 5;\r\n }\r\n\r\n static isBusinessDay(date: Date): boolean {\r\n return moment(date).isoWeekday() < 6;\r\n }\r\n\r\n static add(date: Date, amount?: DurationInputArg1, unit?: DurationInputArg2): Date {\r\n return moment(date).add(amount, unit).toDate();\r\n }\r\n\r\n static businessAdd(date: Date, amount: number, unit?: DurationInputArg2, freeDays: Date[] = []): Date {\r\n const signal = amount < 0 ? -1 : 1;\r\n const freeMoments = freeDays.map(d => moment(d));\r\n let remaining = Math.abs(amount);\r\n let day = date;\r\n while (remaining) {\r\n day = DateUtils.add(day, signal, unit);\r\n if (DateUtils.isBusinessDay(day) && !freeMoments.some(m => m.isSame(day, \"day\"))) {\r\n remaining--;\r\n }\r\n }\r\n return day;\r\n }\r\n\r\n static businessSubtract(date: Date, amount: number, unit?: DurationInputArg2): Date {\r\n return DateUtils.businessAdd(date, -amount, unit);\r\n }\r\n}\r\n","import {CanvasColor} from \"../common-types\";\r\nimport {ObjectUtils} from \"./object.utils\";\r\n\r\ndeclare const netscape: any;\r\n\r\nclass BlurStack {\r\n r: number = 0;\r\n g: number = 0;\r\n b: number = 0;\r\n a: number = 0;\r\n next: BlurStack = null;\r\n}\r\n\r\nconst mul_table = [\r\n 512, 512, 456, 512, 328, 456, 335, 512, 405, 328, 271, 456, 388, 335, 292, 512,\r\n 454, 405, 364, 328, 298, 271, 496, 456, 420, 388, 360, 335, 312, 292, 273, 512,\r\n 482, 454, 428, 405, 383, 364, 345, 328, 312, 298, 284, 271, 259, 496, 475, 456,\r\n 437, 420, 404, 388, 374, 360, 347, 335, 323, 312, 302, 292, 282, 273, 265, 512,\r\n 497, 482, 468, 454, 441, 428, 417, 405, 394, 383, 373, 364, 354, 345, 337, 328,\r\n 320, 312, 305, 298, 291, 284, 278, 271, 265, 259, 507, 496, 485, 475, 465, 456,\r\n 446, 437, 428, 420, 412, 404, 396, 388, 381, 374, 367, 360, 354, 347, 341, 335,\r\n 329, 323, 318, 312, 307, 302, 297, 292, 287, 282, 278, 273, 269, 265, 261, 512,\r\n 505, 497, 489, 482, 475, 468, 461, 454, 447, 441, 435, 428, 422, 417, 411, 405,\r\n 399, 394, 389, 383, 378, 373, 368, 364, 359, 354, 350, 345, 341, 337, 332, 328,\r\n 324, 320, 316, 312, 309, 305, 301, 298, 294, 291, 287, 284, 281, 278, 274, 271,\r\n 268, 265, 262, 259, 257, 507, 501, 496, 491, 485, 480, 475, 470, 465, 460, 456,\r\n 451, 446, 442, 437, 433, 428, 424, 420, 416, 412, 408, 404, 400, 396, 392, 388,\r\n 385, 381, 377, 374, 370, 367, 363, 360, 357, 354, 350, 347, 344, 341, 338, 335,\r\n 332, 329, 326, 323, 320, 318, 315, 312, 310, 307, 304, 302, 299, 297, 294, 292,\r\n 289, 287, 285, 282, 280, 278, 275, 273, 271, 269, 267, 265, 263, 261, 259];\r\n\r\nconst shg_table = [\r\n 9, 11, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 17,\r\n 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19,\r\n 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20,\r\n 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21,\r\n 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,\r\n 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22,\r\n 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,\r\n 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23,\r\n 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,\r\n 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,\r\n 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,\r\n 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\r\n 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\r\n 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\r\n 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\r\n 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24];\r\n\r\nexport class CanvasUtils {\r\n\r\n static manipulatePixels(canvas: HTMLCanvasElement, ctx: CanvasRenderingContext2D, colorTransformer: (color: CanvasColor, greyscale?: number) => CanvasColor): void {\r\n const imgData = ctx.getImageData(0, 0, canvas.width, canvas.height);\r\n const pixels = imgData.data;\r\n for (let i = 0, n = pixels.length; i < n; i += 4) {\r\n const clr = new CanvasColor(pixels[i], pixels[i + 1], pixels[i + 2], pixels[i + 3]);\r\n const greyscale = clr.r * .3 + clr.g * .59 + clr.b * .11;\r\n const color = colorTransformer(clr, greyscale);\r\n pixels[i] = color.r;\r\n pixels[i + 1] = color.g;\r\n pixels[i + 2] = color.b;\r\n pixels[i + 3] = color.a;\r\n }\r\n ctx.putImageData(imgData, 0, 0);\r\n }\r\n\r\n static thresholding(canvas: HTMLCanvasElement, ctx: CanvasRenderingContext2D, threshold: number = 50, colorTransformer: (color: CanvasColor, limit: boolean, greyscale?: number) => CanvasColor): void {\r\n const min = new CanvasColor(0, 0, 0, 255);\r\n const max = new CanvasColor(0, 0, 0, 0);\r\n colorTransformer = ObjectUtils.isFunction(colorTransformer) ? colorTransformer : ((color: CanvasColor, limit: boolean): CanvasColor => {\r\n return limit ? max : min;\r\n });\r\n CanvasUtils.manipulatePixels(canvas, ctx, (color, greyscale) => {\r\n return colorTransformer(color, greyscale > threshold, greyscale);\r\n });\r\n }\r\n\r\n static stackBlur(canvas: HTMLCanvasElement, ctx: CanvasRenderingContext2D, radius: number = 10): void {\r\n if (isNaN(radius) || radius < 1) return;\r\n radius |= 0;\r\n\r\n const top_x = 0;\r\n const top_y = 0;\r\n const width = canvas.width;\r\n const height = canvas.height;\r\n\r\n let imageData = null;\r\n\r\n try {\r\n try {\r\n imageData = ctx.getImageData(top_x, top_y, width, height);\r\n } catch (e) {\r\n\r\n // NOTE: this part is supposedly only needed if you want to work with local files\r\n // so it might be okay to remove the whole try/catch block and just use\r\n // imageData = ctx.getImageData( top_x, top_y, width, height );\r\n try {\r\n netscape.security.PrivilegeManager.enablePrivilege(\"UniversalBrowserRead\");\r\n imageData = ctx.getImageData(top_x, top_y, width, height);\r\n } catch (e) {\r\n alert(\"Cannot access local image\");\r\n throw new Error(\"unable to access local image data: \" + e);\r\n }\r\n }\r\n } catch (e) {\r\n alert(\"Cannot access image\");\r\n throw new Error(\"unable to access image data: \" + e);\r\n }\r\n\r\n const pixels = imageData.data;\r\n\r\n let x, y, i, p, yp, yi, yw, r_sum, g_sum, b_sum, a_sum,\r\n r_out_sum, g_out_sum, b_out_sum, a_out_sum,\r\n r_in_sum, g_in_sum, b_in_sum, a_in_sum,\r\n pr, pg, pb, pa, rbs;\r\n\r\n const div = radius + radius + 1;\r\n const widthMinus1 = width - 1;\r\n const heightMinus1 = height - 1;\r\n const radiusPlus1 = radius + 1;\r\n const sumFactor = radiusPlus1 * (radiusPlus1 + 1) / 2;\r\n\r\n const stackStart = new BlurStack();\r\n let stackEnd = null;\r\n let stack = stackStart;\r\n\r\n for (i = 1; i < div; i++) {\r\n stack = stack.next = new BlurStack();\r\n if (i == radiusPlus1) {\r\n stackEnd = stack;\r\n }\r\n }\r\n stack.next = stackStart;\r\n let stackIn = null;\r\n let stackOut = null;\r\n\r\n yw = yi = 0;\r\n\r\n const mul_sum = mul_table[radius];\r\n const shg_sum = shg_table[radius];\r\n\r\n for (y = 0; y < height; y++) {\r\n r_in_sum = g_in_sum = b_in_sum = a_in_sum = r_sum = g_sum = b_sum = a_sum = 0;\r\n\r\n r_out_sum = radiusPlus1 * (pr = pixels[yi]);\r\n g_out_sum = radiusPlus1 * (pg = pixels[yi + 1]);\r\n b_out_sum = radiusPlus1 * (pb = pixels[yi + 2]);\r\n a_out_sum = radiusPlus1 * (pa = pixels[yi + 3]);\r\n\r\n r_sum += sumFactor * pr;\r\n g_sum += sumFactor * pg;\r\n b_sum += sumFactor * pb;\r\n a_sum += sumFactor * pa;\r\n\r\n stack = stackStart;\r\n\r\n for (i = 0; i < radiusPlus1; i++) {\r\n stack.r = pr;\r\n stack.g = pg;\r\n stack.b = pb;\r\n stack.a = pa;\r\n stack = stack.next;\r\n }\r\n\r\n for (i = 1; i < radiusPlus1; i++) {\r\n p = yi + ((widthMinus1 < i ? widthMinus1 : i) << 2);\r\n r_sum += (stack.r = (pr = pixels[p])) * (rbs = radiusPlus1 - i);\r\n g_sum += (stack.g = (pg = pixels[p + 1])) * rbs;\r\n b_sum += (stack.b = (pb = pixels[p + 2])) * rbs;\r\n a_sum += (stack.a = (pa = pixels[p + 3])) * rbs;\r\n\r\n r_in_sum += pr;\r\n g_in_sum += pg;\r\n b_in_sum += pb;\r\n a_in_sum += pa;\r\n\r\n stack = stack.next;\r\n }\r\n\r\n\r\n stackIn = stackStart;\r\n stackOut = stackEnd;\r\n for (x = 0; x < width; x++) {\r\n pixels[yi + 3] = pa = (a_sum * mul_sum) >> shg_sum;\r\n if (pa != 0) {\r\n pa = 255 / pa;\r\n pixels[yi] = ((r_sum * mul_sum) >> shg_sum) * pa;\r\n pixels[yi + 1] = ((g_sum * mul_sum) >> shg_sum) * pa;\r\n pixels[yi + 2] = ((b_sum * mul_sum) >> shg_sum) * pa;\r\n } else {\r\n pixels[yi] = pixels[yi + 1] = pixels[yi + 2] = 0;\r\n }\r\n\r\n r_sum -= r_out_sum;\r\n g_sum -= g_out_sum;\r\n b_sum -= b_out_sum;\r\n a_sum -= a_out_sum;\r\n\r\n r_out_sum -= stackIn.r;\r\n g_out_sum -= stackIn.g;\r\n b_out_sum -= stackIn.b;\r\n a_out_sum -= stackIn.a;\r\n\r\n p = (yw + ((p = x + radius + 1) < widthMinus1 ? p : widthMinus1)) << 2;\r\n\r\n r_in_sum += (stackIn.r = pixels[p]);\r\n g_in_sum += (stackIn.g = pixels[p + 1]);\r\n b_in_sum += (stackIn.b = pixels[p + 2]);\r\n a_in_sum += (stackIn.a = pixels[p + 3]);\r\n\r\n r_sum += r_in_sum;\r\n g_sum += g_in_sum;\r\n b_sum += b_in_sum;\r\n a_sum += a_in_sum;\r\n\r\n stackIn = stackIn.next;\r\n\r\n r_out_sum += (pr = stackOut.r);\r\n g_out_sum += (pg = stackOut.g);\r\n b_out_sum += (pb = stackOut.b);\r\n a_out_sum += (pa = stackOut.a);\r\n\r\n r_in_sum -= pr;\r\n g_in_sum -= pg;\r\n b_in_sum -= pb;\r\n a_in_sum -= pa;\r\n\r\n stackOut = stackOut.next;\r\n\r\n yi += 4;\r\n }\r\n yw += width;\r\n }\r\n\r\n\r\n for (x = 0; x < width; x++) {\r\n g_in_sum = b_in_sum = a_in_sum = r_in_sum = g_sum = b_sum = a_sum = r_sum = 0;\r\n\r\n yi = x << 2;\r\n r_out_sum = radiusPlus1 * (pr = pixels[yi]);\r\n g_out_sum = radiusPlus1 * (pg = pixels[yi + 1]);\r\n b_out_sum = radiusPlus1 * (pb = pixels[yi + 2]);\r\n a_out_sum = radiusPlus1 * (pa = pixels[yi + 3]);\r\n\r\n r_sum += sumFactor * pr;\r\n g_sum += sumFactor * pg;\r\n b_sum += sumFactor * pb;\r\n a_sum += sumFactor * pa;\r\n\r\n stack = stackStart;\r\n\r\n for (i = 0; i < radiusPlus1; i++) {\r\n stack.r = pr;\r\n stack.g = pg;\r\n stack.b = pb;\r\n stack.a = pa;\r\n stack = stack.next;\r\n }\r\n\r\n yp = width;\r\n\r\n for (i = 1; i <= radius; i++) {\r\n yi = (yp + x) << 2;\r\n\r\n r_sum += (stack.r = (pr = pixels[yi])) * (rbs = radiusPlus1 - i);\r\n g_sum += (stack.g = (pg = pixels[yi + 1])) * rbs;\r\n b_sum += (stack.b = (pb = pixels[yi + 2])) * rbs;\r\n a_sum += (stack.a = (pa = pixels[yi + 3])) * rbs;\r\n\r\n r_in_sum += pr;\r\n g_in_sum += pg;\r\n b_in_sum += pb;\r\n a_in_sum += pa;\r\n\r\n stack = stack.next;\r\n\r\n if (i < heightMinus1) {\r\n yp += width;\r\n }\r\n }\r\n\r\n yi = x;\r\n stackIn = stackStart;\r\n stackOut = stackEnd;\r\n for (y = 0; y < height; y++) {\r\n p = yi << 2;\r\n pixels[p + 3] = pa = (a_sum * mul_sum) >> shg_sum;\r\n if (pa > 0) {\r\n pa = 255 / pa;\r\n pixels[p] = ((r_sum * mul_sum) >> shg_sum) * pa;\r\n pixels[p + 1] = ((g_sum * mul_sum) >> shg_sum) * pa;\r\n pixels[p + 2] = ((b_sum * mul_sum) >> shg_sum) * pa;\r\n } else {\r\n pixels[p] = pixels[p + 1] = pixels[p + 2] = 0;\r\n }\r\n\r\n r_sum -= r_out_sum;\r\n g_sum -= g_out_sum;\r\n b_sum -= b_out_sum;\r\n a_sum -= a_out_sum;\r\n\r\n r_out_sum -= stackIn.r;\r\n g_out_sum -= stackIn.g;\r\n b_out_sum -= stackIn.b;\r\n a_out_sum -= stackIn.a;\r\n\r\n p = (x + (((p = y + radiusPlus1) < heightMinus1 ? p : heightMinus1) * width)) << 2;\r\n\r\n r_sum += (r_in_sum += (stackIn.r = pixels[p]));\r\n g_sum += (g_in_sum += (stackIn.g = pixels[p + 1]));\r\n b_sum += (b_in_sum += (stackIn.b = pixels[p + 2]));\r\n a_sum += (a_in_sum += (stackIn.a = pixels[p + 3]));\r\n\r\n stackIn = stackIn.next;\r\n\r\n r_out_sum += (pr = stackOut.r);\r\n g_out_sum += (pg = stackOut.g);\r\n b_out_sum += (pb = stackOut.b);\r\n a_out_sum += (pa = stackOut.a);\r\n\r\n r_in_sum -= pr;\r\n g_in_sum -= pg;\r\n b_in_sum -= pb;\r\n a_in_sum -= pa;\r\n\r\n stackOut = stackOut.next;\r\n\r\n yi += width;\r\n }\r\n }\r\n\r\n ctx.putImageData(imageData, top_x, top_y);\r\n }\r\n\r\n static measureTextFontSize(maxWidth: number, maxHeight: number, lines: string[], font: string, lineHeightPercent: number = 1.1, canvas?: HTMLCanvasElement): number {\r\n\r\n const startSize: number = maxHeight;\r\n const context: CanvasRenderingContext2D = canvas.getContext(\"2d\");\r\n\r\n if (!canvas) {\r\n canvas = <HTMLCanvasElement>document.createElement(\"canvas\");\r\n document.body.appendChild(canvas);\r\n }\r\n\r\n canvas.width = maxWidth + maxHeight;\r\n canvas.height = maxHeight * 2;\r\n\r\n let fontSize: number = CanvasUtils.halveValidateFontSize(startSize, (size: number) => {\r\n CanvasUtils.setFontProps(context, font, size);\r\n const maxTextLinesWidth = CanvasUtils.getTextWidth(context, lines);\r\n return maxWidth - maxTextLinesWidth;\r\n });\r\n\r\n const bitmapHeight: number = CanvasUtils.getTextBitmapHeight(canvas, context, lines, font, fontSize, lineHeightPercent);\r\n if (bitmapHeight > maxHeight) {\r\n fontSize = CanvasUtils.halveValidateFontSize(fontSize, (size: number) => {\r\n return maxHeight - CanvasUtils.getTextBitmapHeight(canvas, context, lines, font, size, lineHeightPercent);\r\n });\r\n }\r\n\r\n return fontSize;\r\n }\r\n\r\n static drawLines(context: CanvasRenderingContext2D, lines: string[], font: string, size: number, lineHeightPercent: number = 1.1, align: string = \"left\", baseLine: string = \"top\", x: number = 0, y: number = 0): number {\r\n CanvasUtils.setFontProps(context, font, size, align, baseLine);\r\n for (let i: number = 0; i < lines.length; i++) {\r\n const line: string = lines[i];\r\n context.fillText(line, x, y);\r\n if (i < lines.length - 1) {\r\n y += size * lineHeightPercent;\r\n }\r\n }\r\n return y;\r\n }\r\n\r\n static wrapText(context: CanvasRenderingContext2D, text: string, x: number, y: number, maxWidth: number): void {\r\n const words = text.split(\" \");\r\n const lineHeight = context.measureText(\"M\").width * 1.3;\r\n const lines: string[] = [];\r\n let line = \"\";\r\n for (let n = 0; n < words.length; n++) {\r\n const testLine = line + words[n] + \" \";\r\n const metrics = context.measureText(testLine);\r\n const testWidth = metrics.width;\r\n if (testWidth > maxWidth && n > 0) {\r\n lines.push(line);\r\n line = words[n] + \" \";\r\n }\r\n else {\r\n line = testLine;\r\n }\r\n }\r\n lines.push(line);\r\n y -= lineHeight * .5 * lines.length;\r\n lines.forEach(l => {\r\n context.fillText(l, x, y);\r\n y += lineHeight;\r\n });\r\n }\r\n\r\n static setFontProps(context: CanvasRenderingContext2D, font: string, fontSize: number, align: string = \"left\", baseLine: string = \"top\"): void {\r\n context.font = `${fontSize}px ${font}`;\r\n context.textAlign = <any>align;\r\n context.textBaseline = <any>baseLine;\r\n }\r\n\r\n private static getTextWidth(context: CanvasRenderingContext2D, lines: string[]): number {\r\n let maxWidth: number = 0;\r\n for (let i: number = 0; i < lines.length; i++) {\r\n const line: string = lines[i];\r\n maxWidth = Math.max(maxWidth, context.measureText(line).width);\r\n }\r\n return maxWidth;\r\n }\r\n\r\n private static getTextBitmapHeight(canvas: HTMLCanvasElement, context: CanvasRenderingContext2D, lines: string[], font: string, fontSize: number, lineHeightPercent: number): number {\r\n const width: number = canvas.width;\r\n const height: number = canvas.height;\r\n context.clearRect(0, 0, width, height);\r\n\r\n const textY = CanvasUtils.drawLines(context, lines, font, fontSize, lineHeightPercent, \"left\", \"top\", fontSize * .5, fontSize * .5);\r\n const imageData: ImageData = context.getImageData(0, 0, width, height);\r\n\r\n let textHeight: number = 0;\r\n\r\n yLoop:for (let y: number = 0; y < height; y++) {\r\n for (let x: number = 0; x < width; x++) {\r\n const index: number = (x + y * width) * 4;\r\n if (imageData.data[index + 3] > 0) {\r\n textHeight = y + 1;\r\n continue yLoop;\r\n }\r\n }\r\n }\r\n\r\n return Math.max(textHeight, textY + fontSize);\r\n }\r\n\r\n private static halveValidateFontSize(startSize: number, callback: (size: number) => number): number {\r\n let fontSize: number = startSize;\r\n let lastFontSize: number = 0;\r\n let direction: number;\r\n\r\n for (let i: number = 0; i < 20; i++) {\r\n direction = callback(fontSize);\r\n const tempSize: number = fontSize;\r\n if (direction < 0) {\r\n fontSize = fontSize - (Math.abs(fontSize - lastFontSize) / 2);\r\n } else {\r\n fontSize = fontSize + (Math.abs(fontSize - lastFontSize) / 2);\r\n }\r\n lastFontSize = tempSize;\r\n if (Math.abs(fontSize - lastFontSize) < 0.1) {\r\n break;\r\n }\r\n }\r\n fontSize = Math.floor(fontSize);\r\n return fontSize;\r\n }\r\n}\r\n","import {HttpClient} from \"@angular/common/http\";\r\nimport {first} from \"rxjs/operators\";\r\nimport {ObjectUtils} from \"./object.utils\";\r\n\r\ndeclare const saveAs: any;\r\n\r\nexport class FileUtils {\r\n\r\n static getExtension(file: File): string {\r\n return file ? file.name.substr(file.name.lastIndexOf(\".\")).toLowerCase() : null;\r\n }\r\n\r\n static getName(file: File): string {\r\n return file ? file.name.substr(0, file.name.lastIndexOf(\".\")) : null;\r\n }\r\n\r\n static toFile(blob: Blob, fileName: string): File {\r\n const data: any = blob;\r\n data.lastModifiedDate = new Date();\r\n data.name = fileName.split(/\\\\|\\//g).pop();\r\n return <File>data;\r\n }\r\n\r\n static dataToBlob(data: string): Blob {\r\n const parts = data.split(\",\");\r\n const byteString = atob(parts[1]);\r\n const mimeString = parts[0].split(\":\")[1].split(\";\")[0];\r\n\r\n const ab = new ArrayBuffer(byteString.length);\r\n const ia = new Uint8Array(ab);\r\n for (let i = 0; i < byteString.length; i++) {\r\n ia[i] = byteString.charCodeAt(i);\r\n }\r\n\r\n return new Blob([ab], {type: mimeString});\r\n }\r\n\r\n static saveBlob(blob: Blob, fileName: string): void {\r\n if (typeof saveAs == \"undefined\") {\r\n throw Error(\"FileSaver library is not loaded. Please load it: https://www.npmjs.com/package/file-saver\");\r\n }\r\n saveAs(blob, fileName);\r\n }\r\n\r\n static saveJson(json: any, fileName: string): void {\r\n if (!ObjectUtils.isObject(json)) return;\r\n FileUtils.saveBlob(new Blob([JSON.stringify(json, null, 4)]), fileName);\r\n }\r\n\r\n static readFileAsText(file: Blob): Promise<string> {\r\n return FileUtils.readFile(\r\n // @dynamic\r\n reader => reader.readAsText(file)\r\n );\r\n }\r\n\r\n static readFileAsBinaryString(file: Blob): Promise<string> {\r\n return FileUtils.readFile(\r\n // @dynamic\r\n reader => reader.readAsBinaryString(file)\r\n );\r\n }\r\n\r\n static readFileAsDataURL(file: Blob): Promise<string> {\r\n return FileUtils.readFile(\r\n // @dynamic\r\n reader => reader.readAsDataURL(file)\r\n );\r\n }\r\n\r\n static readDataFromUrl(http: HttpClient, url: string): Promise<string> {\r\n return new Promise<string>(\r\n // @dynamic\r\n (resolve, reject) => {\r\n if (!url) {\r\n reject({\r\n message: \"The url is not specified\"\r\n });\r\n return;\r\n }\r\n if ((/^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)$/g).test(url)) {\r\n resolve(url);\r\n return;\r\n }\r\n first()(http.get(url, {\r\n responseType: \"blob\"\r\n })).subscribe((blob: Blob) => {\r\n FileUtils.readFileAsDataURL(blob).then(resolve, reject);\r\n }, reason => {\r\n if (reason.status > 0)\r\n reject(reason);\r\n else\r\n resolve(url);\r\n });\r\n }\r\n );\r\n }\r\n\r\n private static readFile(callback: (reader: FileReader) => void): Promise<string> {\r\n return new Promise<string>(\r\n // @dynamic\r\n (resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.onload = (event: any) => resolve(event.target.result);\r\n reader.onerror = reject;\r\n callback(reader);\r\n }\r\n );\r\n }\r\n}\r\n","import {Subject} from \"rxjs\";\r\n\r\nexport class GenericValue<T> extends Subject<T> {\r\n\r\n get value(): T {\r\n return this._value;\r\n }\r\n\r\n set value(value: T) {\r\n if (value == this._value) return;\r\n this._value = value;\r\n this.next(value);\r\n }\r\n\r\n private _value: T;\r\n\r\n constructor(value: T = null) {\r\n super();\r\n this._value = value;\r\n }\r\n\r\n setJustValue(value: T): void {\r\n this._value = value;\r\n }\r\n}\r\n","export type FileSystemEntryOpenResult = ReadonlyArray<FileSystemEntry> | null;\r\n\r\nexport type FileSystemEntryOpenCb = (data: any, parent: FileSystemEntry) => Promise<FileSystemEntryOpenResult>;\r\n\r\nexport class FileSystemEntry {\r\n\r\n protected result: Promise<FileSystemEntryOpenResult>;\r\n\r\n readonly path: ReadonlyArray<FileSystemEntry>;\r\n readonly level: number;\r\n readonly classes: ReadonlyArray<string>;\r\n\r\n constructor(readonly label: string,\r\n readonly meta: string,\r\n readonly image: string,\r\n readonly data: any,\r\n readonly parent: FileSystemEntry,\r\n protected openCb: FileSystemEntryOpenCb) {\r\n this.path = !parent ? [this] : parent.path.concat([this]);\r\n this.level = this.path.length - 1;\r\n this.classes = this.path\r\n .filter(t => typeof t.data === \"string\" && t.data.length > 0).map(t => t.data)\r\n .concat([`level-${this.level}`]);\r\n }\r\n\r\n open(): Promise<FileSystemEntryOpenResult> {\r\n this.result = this.result || this.openCb(this.data, this);\r\n this.result.then(res => {\r\n if (Array.isArray(res)) return;\r\n this.result = null;\r\n });\r\n return this.result;\r\n }\r\n}\r\n","export interface IShape {\r\n x: number;\r\n y: number;\r\n\r\n distance(shape: IShape): number;\r\n}\r\n\r\nexport class Rect implements IShape {\r\n\r\n get center(): Point {\r\n return new Point(this.x, this.y);\r\n }\r\n\r\n get left(): number {\r\n return this.x - this.width * .5;\r\n }\r\n\r\n get right(): number {\r\n return this.x + this.width * .5;\r\n }\r\n\r\n get bottom(): number {\r\n return this.y - this.height * .5;\r\n }\r\n\r\n get top(): number {\r\n return this.y + this.height * .5;\r\n }\r\n\r\n constructor(readonly x: number, readonly y: number, readonly width: number, readonly height: number, readonly rotation: number = 0) {\r\n\r\n }\r\n\r\n distance(p: Point): number {\r\n p = p.rotateAround(this.center, -this.rotation);\r\n const x = Math.max(this.left - p.x, 0, p.x - this.right);\r\n const y = Math.max(this.bottom - p.y, 0, p.y - this.top);\r\n return Math.sqrt(x*x + y*y);\r\n }\r\n}\r\n\r\nexport class Circle implements IShape {\r\n\r\n get center(): Point {\r\n return new Point(this.x, this.y);\r\n }\r\n\r\n get left(): Point {\r\n return new Point(this.x - this.radius, this.y);\r\n }\r\n\r\n get right(): Point {\r\n return new Point(this.x + this.radius, this.y);\r\n }\r\n\r\n get top(): Point {\r\n return new Point(this.x, this.y + this.radius);\r\n }\r\n\r\n get bottom(): Point {\r\n return new Point(this.x, this.y - this.radius);\r\n }\r\n\r\n get rect(): Rect {\r\n return new Rect(this.x, this.y, this.radius * 2, this.radius * 2);\r\n }\r\n\r\n constructor(readonly x: number, readonly y: number, readonly radius: number) {\r\n\r\n }\r\n\r\n distance(p: Point): number {\r\n return this.center.distance(p) - this.radius;\r\n }\r\n}\r\n\r\nexport class Point implements IShape {\r\n\r\n static Zero: Point = new Point(0, 0);\r\n\r\n get length(): number {\r\n return this.distance(Point.Zero);\r\n }\r\n\r\n get perpendicular(): Point {\r\n return new Point(this.y, -this.x);\r\n }\r\n\r\n constructor(readonly x: number, readonly y: number) {\r\n }\r\n\r\n add(p: Point): Point {\r\n return new Point(this.x + p.x, this.y + p.y);\r\n }\r\n\r\n subtract(p: Point): Point {\r\n return new Point(this.x - p.x, this.y - p.y);\r\n }\r\n\r\n multiply(p: Point | number): Point {\r\n if (p instanceof Point) {\r\n return new Point(this.x * p.x, this.y * p.y);\r\n }\r\n return new Point(this.x * p, this.y * p);\r\n }\r\n\r\n distance(b: Point): number {\r\n const x = b.x - this.x;\r\n const y = b.y - this.y;\r\n return Math.sqrt(x * x + y * y);\r\n }\r\n\r\n lerp(p: Point, ratio: number): Point {\r\n const diff = p.subtract(this);\r\n return this.add(diff.multiply(ratio));\r\n }\r\n\r\n perpendicularTo(p: Point, length: number): Point {\r\n const diff = p.perpendicular.subtract(this.perpendicular);\r\n const ratio = length / diff.length;\r\n const center = this.lerp(p, .5);\r\n return center.add(diff.multiply(ratio));\r\n }\r\n\r\n circleWith(a: Point, b: Point): Circle {\r\n const yDelta_a = b.y - a.y;\r\n const xDelta_a = b.x - a.x;\r\n const yDelta_b = this.y - b.y;\r\n const xDelta_b = this.x - b.x;\r\n\r\n const aSlope = yDelta_a / xDelta_a;\r\n const bSlope = yDelta_b / xDelta_b;\r\n\r\n const x = (aSlope * bSlope * (a.y - this.y) + bSlope * (a.x + b.x) - aSlope * (b.x + this.x)) / (2 * (bSlope - aSlope));\r\n const y = -1 * (x - (a.x + b.x) / 2) / aSlope + (a.y + b.y) / 2;\r\n const center = new Point(x, y);\r\n return new Circle(center.x, center.y, center.distance(this));\r\n }\r\n\r\n tangents(c: Circle): Point[] {\r\n const pd = c.center.subtract(this);\r\n const a = Math.asin(c.radius / pd.length);\r\n const b = Math.atan2(pd.y, pd.x);\r\n // Tangent points\r\n let t = b - a;\r\n const t1 = new Point(c.x + c.radius * Math.sin(t), c.y + c.radius * -Math.cos(t));\r\n t = b + a;\r\n const t2 = new Point(c.x + c.radius * -Math.sin(t), c.y + c.radius * Math.cos(t));\r\n return [t1, t2];\r\n }\r\n\r\n angle(p: Point): number {\r\n const diff = p.subtract(this);\r\n return Math.atan2(diff.y, diff.x) * 180 / Math.PI;\r\n }\r\n\r\n rotateAround(p: Point, angle: number): Point {\r\n const rotation = (p.angle(this) + angle) * Math.PI / 180;\r\n const distance = p.distance(this);\r\n const rotated = new Point(Math.cos(rotation) * distance, Math.sin(rotation) * distance);\r\n return p.add(rotated);\r\n }\r\n}\r\n","import {Invokable} from \"invokable\";\r\n\r\nexport class Initializer<T> {\r\n\r\n private initialized: boolean;\r\n\r\n get isInitialized(): boolean {\r\n return this.initialized;\r\n }\r\n\r\n constructor(private callback: () => T, private shouldInit: boolean = true) {\r\n this.initialized = !this.shouldInit;\r\n // @ts-ignore\r\n return Invokable.create(this);\r\n }\r\n\r\n [Invokable.call](): T {\r\n if (this.initialized) return null;\r\n this.initialized = true;\r\n return this.callback();\r\n }\r\n}\r\n\r\nexport interface Initializer<T> {\r\n (): T;\r\n}\r\n","import {IScriptPromises, IStylePromises} from \"../common-types\";\r\n\r\nexport class LoaderUtils {\r\n\r\n static scriptPromises: IScriptPromises = {};\r\n static stylePromises: IStylePromises = {};\r\n\r\n static loadScript(src: string, async: boolean = false): Promise<HTMLScriptElement> {\r\n this.scriptPromises[src] = this.scriptPromises[src] || new Promise<any>((resolve, reject) => {\r\n // Load script\r\n const script: any = document.createElement(\"script\");\r\n script.type = \"text/javascript\";\r\n script.src = src;\r\n script.async = async;\r\n if (script.readyState) {\r\n // Internet explorer\r\n script.onreadystatechange = () => {\r\n if (script.readyState === \"loaded\" || script.readyState === \"complete\") {\r\n script.onreadystatechange = null;\r\n resolve(script);\r\n }\r\n };\r\n } else {\r\n // Other browsers\r\n script.onload = () => resolve(script);\r\n }\r\n script.onerror = (error: any) => reject(error);\r\n document.body.appendChild(script);\r\n });\r\n return this.scriptPromises[src];\r\n }\r\n\r\n static loadStyle(src: string): Promise<HTMLLinkElement> {\r\n this.stylePromises[src] = this.stylePromises[src] || new Promise<any>((resolve, reject) => {\r\n // Load script\r\n const link: any = document.createElement(\"link\");\r\n link.rel = \"stylesheet\";\r\n link.type = \"text/css\";\r\n link.href = src;\r\n\r\n if (link.readyState) {\r\n // Internet explorer\r\n link.onreadystatechange = () => {\r\n if (link.readyState === \"loaded\" || link.readyState === \"complete\") {\r\n link.onreadystatechange = null;\r\n resolve(link);\r\n }\r\n };\r\n } else {\r\n // Other browsers\r\n link.onload = () => resolve(link);\r\n }\r\n link.onerror = (error: any) => reject(error);\r\n document.body.appendChild(link);\r\n });\r\n return this.stylePromises[src];\r\n }\r\n}\r\n","import {ObjectUtils} from \"./object.utils\";\r\n\r\nexport class MathUtils {\r\n\r\n static readonly EPSILON: number = 1e-9;\r\n\r\n static equal(a: number, b: number, epsilon: number = null): boolean {\r\n epsilon = ObjectUtils.isNumber(epsilon) ? epsilon : MathUtils.EPSILON;\r\n return Math.abs(a - b) < epsilon;\r\n }\r\n\r\n static clamp(value: number, min: number, max: number): number {\r\n return Math.max(Math.min(value, max), min)\r\n }\r\n\r\n static round(value: number, precision: number = 2, divider: number = 1): number {\r\n precision = Math.pow(10, precision);\r\n return Math.round(value * precision / divider) / precision;\r\n }\r\n\r\n static approxIndex(x: number, values: number[], epsilon: number = null): number {\r\n if (!Array.isArray(values) || values.length == 0) {\r\n return -1;\r\n }\r\n let s = 0;\r\n let e = values.length - 1;\r\n while (s <= e) {\r\n const i = Math.floor((s + e) / 2);\r\n const v = values[i];\r\n if (MathUtils.equal(v, x, epsilon)) {\r\n return i;\r\n }\r\n if (v < x) {\r\n s = i + 1;\r\n } else {\r\n e = i - 1;\r\n }\r\n }\r\n const m = Math.max(e, 0);\r\n const a = values[s];\r\n const b = values[m];\r\n return Math.abs(a - x) < Math.abs(b - x) ? s : m;\r\n }\r\n\r\n static approximate(x: number, values: number[], epsilon: number = null): number {\r\n const index = MathUtils.approxIndex(x, values, epsilon);\r\n return values[index] ?? null;\r\n }\r\n}\r\n","import {Inject, Injectable, PLATFORM_ID} from \"@angular/core\";\r\nimport {isPlatformBrowser, isPlatformServer} from \"@angular/common\";\r\nimport {DeviceDetectorService, DeviceInfo} from \"ngx-device-detector\";\r\n\r\n/**\r\n * Use this service to determine which is the current environment\r\n */\r\n@Injectable()\r\nexport class UniversalService {\r\n\r\n get isBrowser(): boolean {\r\n return isPlatformBrowser(this.platformId);\r\n }\r\n\r\n get isServer(): boolean {\r\n return isPlatformServer(this.platformId);\r\n }\r\n\r\n get deviceInfo(): DeviceInfo {\r\n return this.isServer\r\n ? {\r\n userAgent: \"angular-universal\",\r\n os: \"unknown\",\r\n browser: \"node\",\r\n device: \"node\",\r\n os_version: \"unknown\",\r\n browser_version: \"unknown\",\r\n deviceType: \"unknown\",\r\n orientation: \"landscape\"\r\n } as any\r\n : this.dds.getDeviceInfo();\r\n }\r\n\r\n get browserName(): string {\r\n return (this.dds.browser || \"\").toLowerCase();\r\n }\r\n\r\n get browserVersion(): string {\r\n return this.dds.browser_version;\r\n }\r\n\r\n get isExplorer(): boolean {\r\n return this.checkBrowser(\"ie\");\r\n }\r\n\r\n get isEdge(): boolean {\r\n return this.checkBrowser(\"edge\");\r\n }\r\n\r\n get isChrome(): boolean {\r\n return this.checkBrowser(\"chrome\");\r\n }\r\n\r\n get isFirefox(): boolean {\r\n return this.checkBrowser(\"firefox\");\r\n }\r\n\r\n get isSafari(): boolean {\r\n return this.checkBrowser(\"safari\");\r\n }\r\n\r\n get isTablet(): boolean {\r\n return this.dds.isTablet();\r\n }\r\n\r\n get isMobile(): boolean {\r\n return this.dds.isMobile();\r\n }\r\n\r\n get isDesktop(): boolean {\r\n return this.dds.isDesktop();\r\n }\r\n\r\n get isCrawler(): boolean {\r\n return this.crawler;\r\n }\r\n\r\n private readonly crawler: boolean;\r\n\r\n constructor(@Inject(PLATFORM_ID) readonly platformId: string, readonly dds: DeviceDetectorService) {\r\n const info = this.dds.getDeviceInfo();\r\n this.crawler = /(bot|google|baidu|bing|msn|duckduckbot|teoma|slurp|yandex|lighthouse|angular-universal|PTST|PostmanRuntime)/gi.test(info.userAgent);\r\n }\r\n\r\n protected checkBrowser(name: string): boolean {\r\n return this.browserName.includes(name) || false;\r\n }\r\n}\r\n","import {Injectable, Injector, NgZone, Optional} from \"@angular/core\";\r\nimport {\r\n ActivatedRouteSnapshot,\r\n ChildrenOutletContexts,\r\n Data,\r\n Event,\r\n NavigationEnd,\r\n NavigationExtras,\r\n OutletContext,\r\n Params,\r\n Resolve,\r\n Route,\r\n Router,\r\n UrlSegment, UrlSerializer,\r\n UrlTree\r\n} from \"@angular/router\";\r\nimport {BehaviorSubject, Observable, Subscription} from \"rxjs\";\r\nimport {skipWhile} from \"rxjs/operators\";\r\nimport {ObjectUtils} from \"../utils/object.utils\";\r\nimport {IRoute, NavigationUrlParam} from \"../common-types\";\r\nimport {UniversalService} from \"./universal.service\";\r\n\r\nexport const emptySnapshot: ActivatedRouteSnapshot = new ActivatedRouteSnapshot();\r\nexport const emptyData: Data = {id: \"\"};\r\nexport const emptyParams: Params = {};\r\nexport const emptySegments: UrlSegment[] = [];\r\nexport const emptyComponents: any[] = [];\r\n\r\nexport interface IStateInfo {\r\n url: string;\r\n segments: UrlSegment[];\r\n components: any[];\r\n}\r\n\r\n@Injectable()\r\nexport class StateService extends BehaviorSubject<any> {\r\n\r\n readonly globalExtras: NavigationExtras;\r\n\r\n private shot: ActivatedRouteSnapshot;\r\n private comp: any;\r\n private stateInfo: IStateInfo;\r\n private contexts: ChildrenOutletContexts;\r\n\r\n static toPath(route: Route, params: any): string {\r\n let path = route.path || \"\";\r\n ObjectUtils.iterate(params, (value: any, key: string) => {\r\n path = path.replace(`:${key}`, `${value}`);\r\n });\r\n return path;\r\n }\r\n\r\n get component(): any {\r\n return this.comp;\r\n }\r\n\r\n get snapshot(): ActivatedRouteSnapshot {\r\n return this.shot || emptySnapshot;\r\n }\r\n\r\n get route(): IRoute {\r\n return this.snapshot.routeConfig;\r\n }\r\n\r\n get data(): Data {\r\n return this.snapshot.data || emptyData;\r\n }\r\n\r\n get params(): Params {\r\n return this.snapshot.params || emptyParams;\r\n }\r\n\r\n get queryParams(): Params {\r\n return this.snapshot.queryParams || emptyParams;\r\n }\r\n\r\n get url(): string {\r\n return this.stateInfo.url || \"\";\r\n }\r\n\r\n get urlSegments(): UrlSegment[] {\r\n return this.stateInfo.segments || emptySegments;\r\n }\r\n\r\n get components(): any[] {\r\n return this.stateInfo.components || emptyComponents;\r\n }\r\n\r\n get routerConfig(): IRoute[] {\r\n return this.router.config;\r\n }\r\n\r\n constructor(readonly injector: Injector,\r\n readonly zone: NgZone,\r\n readonly universal: UniversalService,\r\n @Optional() readonly router: Router = null) {\r\n super(null);\r\n if (!this.router) return;\r\n this.globalExtras = {\r\n queryParamsHandling: \"merge\"\r\n };\r\n this.router.events.subscribe(this.handleRouterEvent);\r\n this.stateInfo = {\r\n url: \"\",\r\n segments: [],\r\n components: []\r\n };\r\n this.contexts = (<any>router).rootContexts;\r\n }\r\n\r\n async reload(): Promise<any> {\r\n const routerStateSnapshot = this.router.routerState.snapshot;\r\n const resolvers = this.route.resolve || {};\r\n const keys = Object.keys(resolvers);\r\n for (const key of keys) {\r\n const resolver = this.injector.get(resolvers[key]) as Resolve<any>;\r\n let resolved = resolver.resolve(this.snapshot, routerStateSnapshot);\r\n if (resolved instanceof Observable) {\r\n resolved = resolved.toPromise();\r\n }\r\n if (resolved instanceof Promise) {\r\n resolved = await resolved;\r\n }\r\n this.data[key] = resolved;\r\n }\r\n }\r\n\r\n async navigateByUrl(url: string | UrlTree, navigationExtras: NavigationExtras = {}): Promise<boolean> {\r\n return this.navigate(url, navigationExtras);\r\n }\r\n\r\n async navigate(url: NavigationUrlParam, navigationExtras: NavigationExtras = {}): Promise<boolean> {\r\n if (!this.router) return false;\r\n const [tree, extras] = this.createUrlTree(url, navigationExtras);\r\n return this.zone.run(() => {\r\n return this.router.navigateByUrl(tree, extras);\r\n });\r\n }\r\n\r\n async open(url: NavigationUrlParam, target = \"_blank\", navigationExtras: NavigationExtras = {}): Promise<boolean> {\r\n if (!this.router) return false;\r\n const [tree, extras] = this.createUrlTree(url, navigationExtras);\r\n return this.zone.run(() => {\r\n return this.openInNewWindow(tree, target) || this.router.navigateByUrl(tree, extras);\r\n });\r\n }\r\n\r\n subscribeImmediately(next?: (value: ActivatedRouteSnapshot) => void, error?: (error: any) => void, complete?: () => void): Subscription {\r\n return this.pipe(skipWhile(v => v == null)).subscribe(next, error, complete);\r\n }\r\n\r\n protected openInNewWindow(tree: UrlTree, target: string): boolean {\r\n if (!this.universal.isBrowser) return false;\r\n const baseUrl = window.location.href.replace(this.router.url, \"\");\r\n try {\r\n const serialized = this.router.serializeUrl(tree);\r\n const separator = serialized.startsWith(\"/\") ? \"\" : \"/\";\r\n window.open(baseUrl + separator + serialized, target);\r\n return true;\r\n } catch (e) {\r\n console.log(`Can't open new window: ${e}`);\r\n return false;\r\n }\r\n }\r\n\r\n protected createUrlTree(url: NavigationUrlParam, extras?: NavigationExtras): [UrlTree, NavigationExtras] {\r\n if (!this.router) return null;\r\n extras = Object.assign(extras, this.globalExtras, extras || {});\r\n if (ObjectUtils.isArray(url)) {\r\n return [this.router.createUrlTree(url, extras), extras]\r\n }\r\n if (ObjectUtils.isString(url)) {\r\n return [this.router.parseUrl(url), extras];\r\n }\r\n return [url, extras];\r\n }\r\n\r\n protected handleRouterEvent = (event: Event): void => {\r\n if (!(event instanceof NavigationEnd)) return;\r\n const routerStateSnapshot = this.router.routerState.snapshot;\r\n let snapshot = routerStateSnapshot.root;\r\n let context: OutletContext = this.contexts.getContext(\"primary\");\r\n let segments = snapshot.url;\r\n const components: any[] = [];\r\n const snapshots: ActivatedRouteSnapshot[] = [];\r\n while (snapshot) {\r\n snapshots.push(snapshot);\r\n segments = segments.concat(snapshot.url);\r\n if (context) {\r\n if (context.outlet && context.outlet.isActivated)\r\n components.push(context.outlet.component);\r\n context = context.children.getContext(\"primary\");\r\n }\r\n snapshot = snapshot.firstChild;\r\n }\r\n this.comp = components[components.length - 1];\r\n this.shot = snapshots[snapshots.length - 1];\r\n this.stateInfo = {\r\n url: routerStateSnapshot.url,\r\n segments: segments,\r\n components: components\r\n };\r\n this.next(this.shot);\r\n };\r\n}\r\n","import {Inject, Injectable, Injector} from \"@angular/core\";\r\nimport {ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot, UrlSegment} from \"@angular/router\";\r\nimport {AUTH_SERVICE, FactoryDependencies, IAuthService, IRoute, RouteValidator} from \"../common-types\";\r\nimport {ReflectUtils} from \"./reflect.utils\";\r\nimport {ObjectUtils} from \"./object.utils\";\r\nimport {StateService} from \"../services/state.service\";\r\n\r\n@Injectable()\r\nexport class AuthGuard implements CanActivate {\r\n\r\n static guardAuthenticated(auth: IAuthService): Promise<boolean> {\r\n return Promise.resolve(auth.isAuthenticated);\r\n }\r\n\r\n static guardNotAuthenticated(auth: IAuthService): Promise<boolean> {\r\n return Promise.resolve(!auth.isAuthenticated);\r\n }\r\n\r\n static guardNothing(): Promise<boolean> {\r\n return Promise.resolve(true);\r\n }\r\n\r\n @FactoryDependencies(AUTH_SERVICE)\r\n static guardAuthField(auth: IAuthService, expression: string = `auth.isAuthenticated`): RouteValidator {\r\n // @dynamic\r\n const lambda = (): Promise<boolean> => {\r\n return Promise.resolve(ObjectUtils.evaluate(expression, {auth}));\r\n };\r\n return lambda;\r\n }\r\n\r\n @FactoryDependencies(StateService)\r\n static guardStateField(state: StateService, expression: string = `state.data`): RouteValidator {\r\n // @dynamic\r\n const lambda = (): Promise<boolean> => {\r\n return Promise.resolve(ObjectUtils.evaluate(expression, {state}));\r\n };\r\n return lambda;\r\n }\r\n\r\n @FactoryDependencies(AUTH_SERVICE, StateService)\r\n static guardAuthStateField(auth: IAuthService, state: StateService, expression: string = `auth.isAuthenticated`): RouteValidator {\r\n // @dynamic\r\n const lambda = (): Promise<boolean> => {\r\n return Promise.resolve(ObjectUtils.evaluate(expression, {auth, state}));\r\n };\r\n return lambda;\r\n }\r\n\r\n static wildRouteMatch(segments: UrlSegment[]) {\r\n return {consumed: segments};\r\n }\r\n\r\n static noRouteMatch() {\r\n return null;\r\n }\r\n\r\n constructor(@Inject(Injector) readonly injector: Injector,\r\n @Inject(StateService) readonly state: StateService,\r\n @Inject(AUTH_SERVICE) readonly auth: IAuthService) {\r\n }\r\n\r\n checkRouteMenu(route: IRoute): Promise<boolean> {\r\n if (!route.data || !route.data.name) return Promise.resolve(false);\r\n return this.checkRoute(route);\r\n }\r\n\r\n checkRoute(route: IRoute, next?: ActivatedRouteSnapshot): Promise<boolean> {\r\n const routeData = route.data || {};\r\n if (!routeData.guards)\r\n return Promise.resolve(!route.canActivate || this.auth.isAuthenticated);\r\n return new Promise<boolean>(resolve => {\r\n const guards = routeData.guards.map(g => {\r\n const guard = ReflectUtils.resolve<RouteValidator>(g, this.injector);\r\n return guard(this.auth, route, next);\r\n });\r\n Promise.all(guards).then(results => {\r\n resolve(results.indexOf(false) < 0);\r\n });\r\n });\r\n }\r\n\r\n canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise<boolean> {\r\n const route = <IRoute>next.routeConfig;\r\n return new Promise<boolean>(resolve => {\r\n this.auth.checkAuthenticated().then(() => {\r\n this.checkRoute(route, next).then(hasRights => {\r\n resolve(hasRights);\r\n if (!hasRights) {\r\n this.getReturnState(route).then(returnState => {\r\n if (!returnState) return;\r\n this.state.navigate(returnState, {queryParams: next.queryParams});\r\n });\r\n }\r\n });\r\n });\r\n });\r\n }\r\n\r\n getConfig(route: IRoute, config: IRoute[], path: string[]): IRoute[] {\r\n if (!config) return null;\r\n const match = config.findIndex(t => t == route);\r\n if (match >= 0) return config;\r\n for (const subConfig of config) {\r\n if (subConfig.path)\r\n path.push(subConfig.path);\r\n const loadedChildren = (subConfig[\"_loadedConfig\"] || {routes: null}).routes;\r\n const match = this.getConfig(route, subConfig.children || loadedChildren, path);\r\n if (!match) {\r\n if (subConfig.path)\r\n path.length -= 1;\r\n continue;\r\n }\r\n return match;\r\n }\r\n return null;\r\n }\r\n\r\n getReturnState(route: IRoute): Promise<string[]> {\r\n if (!route) return Promise.resolve(null);\r\n if (ObjectUtils.isObject(route.data) && ObjectUtils.isArray(route.data.returnState)) {\r\n return Promise.resolve(route.data.returnState);\r\n }\r\n const path = [];\r\n const config = this.getConfig(route, this.state.routerConfig, path);\r\n return new Promise<string[]>(resolve => {\r\n this.getReturnStateRecursive(config).then(rs => {\r\n if (!ObjectUtils.isArray(rs)) {\r\n resolve(rs);\r\n return;\r\n }\r\n resolve(path.concat(rs));\r\n });\r\n });\r\n }\r\n\r\n private getReturnStateRecursive(config: IRoute[], c: number = 0): Promise<string[]> {\r\n if (!config || c >= config.length) return Promise.resolve(null);\r\n return new Promise<string[]>(resolve => {\r\n const route = config[c];\r\n const check = !route.component ? Promise.resolve(false) : this.checkRoute(route);\r\n check.then(res => {\r\n if (res) {\r\n resolve([route.path]);\r\n return;\r\n }\r\n this.getReturnStateRecursive(config, c + 1).then(resolve);\r\n });\r\n });\r\n }\r\n}\r\n","import {ITimer} from \"../common-types\";\r\nimport {ObjectUtils} from \"./object.utils\";\r\n\r\ntype TimerFunc = (timer: ITimer) => void;\r\n\r\nexport class TimerUtils {\r\n\r\n static createTimeout(func?: Function, time?: number): ITimer {\r\n // @dynamic\r\n const run = (timer: ITimer) => {\r\n timer.clear();\r\n timer.id = setTimeout(() => {\r\n timer.id = null;\r\n timer.func();\r\n }, timer.time);\r\n };\r\n // @dynamic\r\n const clear = (timer: ITimer) => {\r\n if (!timer.id) return;\r\n clearTimeout(timer.id);\r\n timer.id = null;\r\n };\r\n return TimerUtils.createTimer(run, clear, func, time);\r\n }\r\n\r\n static createInterval(func?: Function, time?: number): ITimer {\r\n // @dynamic\r\n const run = (timer: ITimer) => {\r\n timer.clear();\r\n timer.id = setInterval(timer.func, timer.time);\r\n };\r\n // @dynamic\r\n const clear = (timer: ITimer) => {\r\n if (!timer.id) return;\r\n clearInterval(timer.id);\r\n timer.id = null;\r\n };\r\n return TimerUtils.createTimer(run, clear, func, time);\r\n }\r\n\r\n private static createTimer(run: TimerFunc, clear: TimerFunc, func: Function, time: number): ITimer {\r\n const timer: ITimer = {};\r\n const setParams = (func: Function, time: number) => {\r\n timer.func = !ObjectUtils.isFunction(func) ? (() => {}) : func;\r\n timer.time = !ObjectUtils.isNumber(time) ? 100 : time;\r\n };\r\n timer.run = () => run(timer);\r\n timer.clear = () => clear(timer);\r\n timer.set = (func: Function, time: number) => {\r\n setParams(func, time);\r\n timer.run();\r\n };\r\n setParams(func, time);\r\n return timer;\r\n }\r\n}\r\n","import {from, Observable, Subject, Subscription} from \"rxjs\";\r\nimport {mergeMap} from \"rxjs/operators\";\r\n\r\nimport {ISearchObservable} from \"../common-types\";\r\nimport {TimerUtils} from \"./timer.utils\";\r\n\r\nexport interface ISubscriberInfo {\r\n subjects: Observable<any>[];\r\n cb: (ev?: Observable<any>, ...args: any[]) => any;\r\n timeout?: number;\r\n}\r\n\r\nexport class ObservableUtils {\r\n\r\n static toSearch(search: ISearchObservable): Observable<any> {\r\n return mergeMap(\r\n // @dynamic\r\n (token: string) => search.getSearchResults(token)\r\n )(\r\n Observable.create(\r\n // @dynamic\r\n (observer: any) => {\r\n observer.next(search.search);\r\n }\r\n )\r\n );\r\n }\r\n\r\n static multiSubscription(...subscriptions: Subscription[]): Subscription {\r\n // @dynamic\r\n const lambda = () => {\r\n subscriptions.forEach(s => {\r\n s.unsubscribe();\r\n });\r\n };\r\n return new Subscription(lambda);\r\n }\r\n\r\n static subscribe(...subscribers: ISubscriberInfo[]): Subscription {\r\n const subscriptions: Subscription[] = [];\r\n subscribers.forEach(info => {\r\n let alreadyCalled = false;\r\n const timer = info.timeout > 0 ? TimerUtils.createTimeout() : 0;\r\n const cb = timer ? function () {\r\n const args = Array.from(arguments);\r\n timer.set(() => {\r\n info.cb.apply(null, args);\r\n }, info.timeout);\r\n } : info.cb;\r\n info.subjects.forEach(subject => {\r\n const ss = subject.subscribe((value) => {\r\n alreadyCalled = true;\r\n cb.call(null, subject, value);\r\n });\r\n subscriptions.push(ss);\r\n });\r\n if (alreadyCalled) return;\r\n cb();\r\n });\r\n return ObservableUtils.multiSubscription(...subscriptions);\r\n }\r\n\r\n static fromFunction(callbackFunc: () => any): Observable<any> {\r\n let subject: any;\r\n return new Observable<any>((subscriber) => {\r\n if (!subject) {\r\n subject = new Subject();\r\n try {\r\n subject = from(callbackFunc());\r\n } catch (err) {\r\n subject.error(err);\r\n }\r\n }\r\n return subject.subscribe(subscriber);\r\n });\r\n }\r\n}\r\n","export class StringUtils {\r\n\r\n static concat(separator: string, ...strings: string[]): string {\r\n return strings.filter(\r\n // @dynamic\r\n str => !!str\r\n ).join(separator);\r\n }\r\n\r\n static startsWith(str: string, ...starts: string[]): boolean {\r\n for (let i = 0; i < starts.length; i++) {\r\n if (str.startsWith(starts[i])) return true;\r\n }\r\n return false;\r\n }\r\n\r\n static has(str: string, ...parts: string[]): boolean {\r\n for (let i = 0; i < parts.length; i++) {\r\n if (str.indexOf(parts[i]) >= 0) return true;\r\n }\r\n return false;\r\n }\r\n\r\n static lcFirst(str: string): string {\r\n return str ? str.charAt(0).toLowerCase() + str.substring(1) : \"\";\r\n }\r\n\r\n static ucFirst(str: string): string {\r\n return str ? str.charAt(0).toUpperCase() + str.substring(1) : \"\";\r\n }\r\n}\r\n","import {ObjectUtils} from \"./object.utils\";\r\n\r\nexport class ArrayUtils {\r\n\r\n static has(arr: any[], ...items: any[]): boolean {\r\n if (!ObjectUtils.isArray(arr) || !ObjectUtils.isArray(items)) return false;\r\n for (let i = 0; i < items.length; i++) {\r\n if (arr.indexOf(items[i]) >= 0) return true;\r\n }\r\n return false;\r\n }\r\n\r\n static match(arr: any[], str: string): boolean {\r\n if (!ObjectUtils.isArray(arr) || !ObjectUtils.isString(str)) return false;\r\n for (let i = 0; i < arr.length; i++) {\r\n if (arr[i] instanceof RegExp) {\r\n const regex = <RegExp>arr[i];\r\n if (regex.test(str)) return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n static any<T>(arr: T[], cb: (item: T) => boolean): boolean {\r\n if (!ObjectUtils.isArray(arr) || !ObjectUtils.isFunction(cb)) return false;\r\n for (let i = 0; i < arr.length; i++) {\r\n if (cb(arr[i])) return true;\r\n }\r\n return false;\r\n }\r\n\r\n static move<T>(arr: T[], oldIndex: number, newIndex: number): T[] {\r\n if (!ObjectUtils.isArray(arr)) return [];\r\n const length = arr.length;\r\n while (oldIndex < 0) {\r\n oldIndex += length;\r\n }\r\n while (newIndex < 0) {\r\n newIndex += length;\r\n }\r\n if (newIndex >= length) {\r\n let k = newIndex - length + 1;\r\n while (k--) {\r\n arr.push(undefined);\r\n }\r\n }\r\n arr.splice(newIndex, 0, arr.splice(oldIndex, 1)[0]);\r\n return arr;\r\n }\r\n\r\n static reversed(arr: any[]): any[] {\r\n const result = [];\r\n if (!ObjectUtils.isArray(arr)) return result;\r\n for (let i = arr.length - 1; i >= 0; i--) {\r\n result.push(arr[i]);\r\n }\r\n return result;\r\n }\r\n\r\n static min<T>(arr: T[], cb: (item: T, index?: number) => number): T {\r\n if (!ObjectUtils.isArray(arr)) return null;\r\n let min = Number.MAX_SAFE_INTEGER;\r\n let result = null;\r\n for (let i = 0; i < arr.length; i++) {\r\n const current = cb(arr[i], i);\r\n if (current < min || result === null) {\r\n min = current;\r\n result = arr[i];\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n static max<T>(arr: T[], cb: (item: T, index?: number) => number): T {\r\n if (!ObjectUtils.isArray(arr)) return null;\r\n let max = Number.MIN_SAFE_INTEGER;\r\n let result = null;\r\n for (let i = 0; i < arr.length; i++) {\r\n const current = cb(arr[i], i);\r\n if (current > max || result === null) {\r\n max = current;\r\n result = arr[i];\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n static chunk<T>(arr: T[], size: number): Array<T[]> {\r\n if (!ObjectUtils.isArray(arr)) return [];\r\n size = Math.max(1, size);\r\n const result = []\r\n for (let i = 0; i < arr.length; i += size) {\r\n result.push(arr.slice(i, i + size))\r\n }\r\n return result\r\n }\r\n\r\n static unique<T>(arr: T[]): T[] {\r\n if (!ObjectUtils.isArray(arr)) return [];\r\n return arr.filter((value, index, self) => {\r\n return self.indexOf(value) === index;\r\n });\r\n }\r\n}\r\n","import {ObjectUtils} from \"./object.utils\";\r\n\r\nexport class SetUtils {\r\n static equals(set: Set<any>, obj: any): boolean {\r\n if (!ObjectUtils.isSet(set) || !ObjectUtils.isSet(obj))\r\n return false;\r\n if (set.size != obj.size)\r\n return false;\r\n for (const item in set) {\r\n if (!obj.has(item)) return false;\r\n }\r\n return true;\r\n }\r\n\r\n static addArray(set: Set<any>, items: any[]): void {\r\n if (!ObjectUtils.isSet(set) || !ObjectUtils.isArray(items)) return;\r\n items.forEach(i => set.add(i));\r\n }\r\n}\r\n","export class UniqueUtils {\r\n\r\n static uuid(): string {\r\n if (typeof window !== \"undefined\" && typeof window.crypto !== \"undefined\" && typeof window.crypto.getRandomValues !== \"undefined\") {\r\n const buf = new Uint16Array(8);\r\n window.crypto.getRandomValues(buf);\r\n return (this.pad4(buf[0]) + this.pad4(buf[1]) + \"-\" + this.pad4(buf[2]) + \"-\" + this.pad4(buf[3]) + \"-\" + this.pad4(buf[4]) + \"-\" + this.pad4(buf[5]) + this.pad4(buf[6]) + this.pad4(buf[7]));\r\n }\r\n return this.random4() + this.random4() + \"-\" + this.random4() + \"-\" + this.random4() + \"-\" +\r\n this.random4() + \"-\" + this.random4() + this.random4() + this.random4();\r\n }\r\n\r\n private static pad4(num: number): string {\r\n let ret = num.toString(16);\r\n while (ret.length < 4) {\r\n ret = \"0\" + ret;\r\n }\r\n return ret;\r\n }\r\n\r\n private static random4(): string {\r\n return Math.floor((1 + Math.random()) * 0x10000)\r\n .toString(16)\r\n .substring(1);\r\n }\r\n}\r\n","export class Vector {\r\n\r\n get negative(): Vector {\r\n return new Vector(-this.x, -this.y, -this.z);\r\n }\r\n\r\n get length(): number {\r\n return Math.sqrt(this.dot(this));\r\n }\r\n\r\n get unit(): Vector {\r\n return this.divide(this.length);\r\n }\r\n\r\n get min(): number {\r\n return Math.min(Math.min(this.x, this.y), this.z);\r\n }\r\n\r\n get max(): number {\r\n return Math.max(Math.max(this.x, this.y), this.z);\r\n }\r\n\r\n get angles(): any {\r\n return {\r\n theta: Math.atan2(this.z, this.x),\r\n phi: Math.asin(this.y / this.length)\r\n };\r\n }\r\n\r\n constructor(public x: number, public y: number, public z: number) {\r\n }\r\n\r\n add(v: Vector | number): Vector {\r\n if (v instanceof Vector) return new Vector(this.x + v.x, this.y + v.y, this.z + v.z);\r\n else return new Vector(this.x + v, this.y + v, this.z + v);\r\n }\r\n\r\n subtract(v: Vector | number): Vector {\r\n if (v instanceof Vector) return new Vector(this.x - v.x, this.y - v.y, this.z - v.z);\r\n else return new Vector(this.x - v, this.y - v, this.z - v);\r\n }\r\n\r\n multiply(v: Vector | number): Vector {\r\n if (v instanceof Vector) return new Vector(this.x * v.x, this.y * v.y, this.z * v.z);\r\n else return new Vector(this.x * v, this.y * v, this.z * v);\r\n }\r\n\r\n divide(v: Vector | number): Vector {\r\n if (v instanceof Vector) return new Vector(this.x / v.x, this.y / v.y, this.z / v.z);\r\n else return new Vector(this.x / v, this.y / v, this.z / v);\r\n }\r\n\r\n equals(v: Vector): boolean {\r\n return this.x == v.x && this.y == v.y && this.z == v.z;\r\n }\r\n\r\n dot(v: Vector): number {\r\n return this.x * v.x + this.y * v.y + this.z * v.z;\r\n }\r\n\r\n cross(v: Vector): Vector {\r\n return new Vector(\r\n this.y * v.z - this.z * v.y,\r\n this.z * v.x - this.x * v.z,\r\n this.x * v.y - this.y * v.x\r\n );\r\n }\r\n\r\n angleTo(v: Vector): number {\r\n return Math.acos(this.dot(v) / (this.length * v.length));\r\n }\r\n\r\n toArray(n?: number): number[] {\r\n return [this.x, this.y, this.z].slice(0, n || 3);\r\n }\r\n\r\n clone(): Vector {\r\n return new Vector(this.x, this.y, this.z);\r\n }\r\n\r\n init(x: number, y: number, z: number): Vector {\r\n this.x = x;\r\n this.y = y;\r\n this.z = z;\r\n return this;\r\n }\r\n}\r\n","import {Inject, Injectable, Injector, Type} from \"@angular/core\";\r\nimport {StateService} from \"./state.service\";\r\nimport {AUTH_SERVICE, IAclComponent, IAuthService, IRouteStateInfo} from \"../common-types\";\r\nimport {ObjectUtils} from \"../utils/object.utils\";\r\nimport {AuthGuard} from \"../utils/auth.guard\";\r\n\r\nconst emptyGuards: any[] = [];\r\n\r\n@Injectable()\r\nexport class AclService {\r\n\r\n protected components: IRouteStateInfo[];\r\n\r\n constructor(readonly injector: Injector, readonly state: StateService, @Inject(AUTH_SERVICE) readonly auth: IAuthService) {\r\n this.components = [];\r\n this.auth.userChanged.subscribe(() => {\r\n this.components.forEach(t => t.dirty = true);\r\n const info = this.getStateInfo();\r\n const check: Promise<boolean> = info && info.guard instanceof AuthGuard ? info.guard.checkRoute(info.route) : Promise.resolve(true);\r\n check.then(result => {\r\n if (result) {\r\n if (!info || !info.dirty) return;\r\n info.dirty = false;\r\n const component: IAclComponent = info.component;\r\n if (!info.component) return;\r\n if (info.first) {\r\n if (ObjectUtils.isFunction(component.onUserInitialized)) {\r\n component.onUserInitialized();\r\n }\r\n info.first = false;\r\n return;\r\n }\r\n if (ObjectUtils.isFunction(component.onUserChanged)) {\r\n component.onUserChanged();\r\n }\r\n return;\r\n }\r\n (info.guard as AuthGuard).getReturnState(info.route).then(returnState => {\r\n if (!returnState) return;\r\n this.state.navigate(returnState);\r\n });\r\n });\r\n });\r\n this.state.subscribe(() => {\r\n const info = this.getStateInfo();\r\n if (!info?.component) return;\r\n const component: IAclComponent = info.component;\r\n if (ObjectUtils.isFunction(component.onUserInitialized)) {\r\n component.onUserInitialized();\r\n }\r\n });\r\n }\r\n\r\n protected getStateInfo(): IRouteStateInfo {\r\n const route = this.state.route;\r\n if (!route) return null;\r\n let info = this.components.find(t => t.route == this.state.route);\r\n if (!info) {\r\n const guardType: Type<AuthGuard> = (route.canActivate || emptyGuards)[0];\r\n info = {\r\n route: this.state.route,\r\n guard: guardType ? this.injector.get(guardType) : null,\r\n dirty: true,\r\n first: true\r\n };\r\n this.components.push(info);\r\n }\r\n info.component = this.state.component;\r\n return info;\r\n }\r\n}\r\n","import {Injectable} from \"@angular/core\";\r\nimport {HttpClient, HttpHandler, HttpHeaders, HttpParams, HttpUrlEncodingCodec} from \"@angular/common/http\";\r\nimport {IHttpHeaders, IHttpParams} from \"../common-types\";\r\nimport {ObjectUtils} from \"../utils/object.utils\";\r\n\r\n@Injectable()\r\nexport class BaseHttpClient extends HttpClient {\r\n\r\n requestHeaders: IHttpHeaders;\r\n requestParams: IHttpParams;\r\n renewTokenFunc: () => void;\r\n\r\n protected extraRequestParams: IHttpParams;\r\n\r\n constructor(handler: HttpHandler) {\r\n super(handler);\r\n this.requestHeaders = {};\r\n this.requestParams = {};\r\n this.extraRequestParams = {\r\n language: \"en\"\r\n };\r\n }\r\n\r\n makeHeaders(headers?: IHttpHeaders, withCredentials: boolean = true): HttpHeaders {\r\n headers = Object.assign({}, this.requestHeaders, headers);\r\n const authHeader = headers[\"Authorization\"] as string || \"\";\r\n if (!withCredentials && !authHeader.startsWith(\"Bearer\")) {\r\n delete headers[\"Authorization\"];\r\n }\r\n return new HttpHeaders(headers);\r\n }\r\n\r\n makeParams(params?: IHttpParams): HttpParams {\r\n params = Object.assign({}, this.extraRequestParams, this.requestParams, params);\r\n return new HttpParams({\r\n encoder: new HttpUrlEncodingCodec(),\r\n fromObject: Object.keys(params || {}).reduce((result, key) => {\r\n const value = params[key];\r\n result[key] = ObjectUtils.isObject(value) ? JSON.stringify(value) : (ObjectUtils.isNullOrUndefined(value) ? \"\" : value.toString());\r\n return result;\r\n }, {})\r\n });\r\n }\r\n\r\n setExtraRequestParam(name: string, value?: any): void {\r\n if (typeof value == \"undefined\") {\r\n delete this.extraRequestParams[name];\r\n return;\r\n }\r\n this.extraRequestParams[name] = value;\r\n }\r\n}\r\n","import {Injectable} from \"@angular/core\";\r\nimport {StorageMode} from \"../common-types\";\r\nimport {UniversalService} from \"./universal.service\";\r\n\r\n/**\r\n * Use this service instead of Storage to avoid Angular Universal breaks on server environment\r\n */\r\n@Injectable()\r\nexport class StorageService {\r\n\r\n constructor(readonly universal: UniversalService) {\r\n }\r\n\r\n get(key: string, defaultValue?: any, mode: StorageMode = StorageMode.Local): any {\r\n if (!this.universal.isBrowser) return defaultValue;\r\n const storage = mode == StorageMode.Local ? localStorage : sessionStorage;\r\n const item = storage.getItem(key);\r\n if (!item) return defaultValue;\r\n try {\r\n return JSON.parse(item);\r\n } catch (e) {\r\n return item;\r\n }\r\n }\r\n\r\n set(key: string, value: any, mode: StorageMode = StorageMode.Local): void {\r\n if (!this.universal.isBrowser) return;\r\n const storage = mode == StorageMode.Local ? localStorage : sessionStorage;\r\n if (typeof value == \"string\") {\r\n storage.setItem(key, value);\r\n return;\r\n }\r\n storage.setItem(key, JSON.stringify(value));\r\n }\r\n\r\n remove(key: string, mode: StorageMode = StorageMode.Local): void {\r\n if (!this.universal.isBrowser) return;\r\n const storage = mode == StorageMode.Local ? localStorage : sessionStorage;\r\n storage.removeItem(key);\r\n }\r\n}\r\n","import {Inject, Injectable, Optional} from \"@angular/core\";\r\nimport {HttpErrorResponse, HttpEventType, HttpHeaders, HttpParams, HttpResponse} from \"@angular/common/http\";\r\nimport {Request} from \"express\";\r\n\r\nimport {\r\n CONFIG_SERVICE,\r\n EXPRESS_REQUEST,\r\n HttpPromise,\r\n IConfigService,\r\n IHttpHeaders,\r\n IHttpParams,\r\n IHttpService,\r\n IIssueContext,\r\n ILanguageService,\r\n IPaginationData,\r\n IRequestOptions,\r\n IToasterService,\r\n LANGUAGE_SERVICE,\r\n ProgressListener,\r\n TOASTER_SERVICE\r\n} from \"../common-types\";\r\n\r\nimport {ObjectUtils} from \"../utils/object.utils\";\r\nimport {MathUtils} from \"../utils/math.utils\";\r\n\r\nimport {BaseHttpClient} from \"./base-http.client\";\r\nimport {UniversalService} from \"./universal.service\";\r\nimport {StorageService} from \"./storage.service\";\r\nimport {timeout} from \"rxjs/operators\";\r\nimport {TimeoutError} from \"rxjs\";\r\n\r\n@Injectable()\r\nexport class BaseHttpService implements IHttpService {\r\n\r\n protected static failedRequests: Array<() => void> = [];\r\n\r\n get name(): string {\r\n return \"base\";\r\n }\r\n\r\n protected get withCredentials(): boolean {\r\n return true;\r\n }\r\n\r\n requestHeaders: IHttpHeaders;\r\n requestParams: IHttpParams;\r\n cache: any;\r\n\r\n protected static retryFailedRequests(): void {\r\n BaseHttpService.failedRequests.forEach(r => r());\r\n BaseHttpService.failedRequests = [];\r\n }\r\n\r\n get universal(): UniversalService {\r\n return this.storage.universal;\r\n }\r\n\r\n constructor(@Inject(BaseHttpClient) readonly client: BaseHttpClient,\r\n @Inject(StorageService) readonly storage: StorageService,\r\n @Inject(LANGUAGE_SERVICE) readonly language: ILanguageService,\r\n @Inject(TOASTER_SERVICE) readonly toaster: IToasterService,\r\n @Inject(CONFIG_SERVICE) readonly configs: IConfigService,\r\n @Optional() @Inject(EXPRESS_REQUEST) readonly request: Request = null\r\n ) {\r\n this.requestHeaders = {};\r\n this.requestParams = {};\r\n this.cache = {};\r\n }\r\n\r\n url(url: string): string {\r\n return url;\r\n }\r\n\r\n createUrl(url: string, params: IHttpParams): string {\r\n const httpParams = this.client.makeParams(params);\r\n const query = httpParams.keys().map(key => {\r\n return `${key}=${httpParams.get(key)}`;\r\n }).join(\"&\");\r\n return `${this.url(url)}?${query}`;\r\n }\r\n\r\n makeListParams(page: number, itemsPerPage: number, orderBy: string = null, orderDescending: boolean = null, filter: string = null): IHttpParams {\r\n const params: IHttpParams = {\r\n page: (page - 1),\r\n limit: itemsPerPage\r\n };\r\n if (!ObjectUtils.isNullOrUndefined(orderBy) && !ObjectUtils.isNullOrUndefined(orderDescending)) {\r\n params.sort = `${orderDescending ? \"-\" : \"\"}${orderBy}`;\r\n }\r\n if (!ObjectUtils.isNullOrUndefined(filter)) {\r\n params.filter = filter;\r\n }\r\n return params;\r\n }\r\n\r\n protected getPromise(url: string, options?: IRequestOptions, body?: any): HttpPromise {\r\n options = this.makeOptions(options, \"GET\", body);\r\n return this.toPromise(url, options);\r\n }\r\n\r\n protected deletePromise(url: string, options?: IRequestOptions, body?: any): HttpPromise {\r\n options = this.makeOptions(options, \"DELETE\", body);\r\n return this.toPromise(url, options);\r\n }\r\n\r\n protected postPromise(url: string, body?: any, options?: IRequestOptions): HttpPromise {\r\n options = this.makeOptions(options, \"POST\", body);\r\n return this.toPromise(url, options);\r\n }\r\n\r\n protected putPromise(url: string, body?: any, options?: IRequestOptions): HttpPromise {\r\n options = this.makeOptions(options, \"PUT\", body);\r\n return this.toPromise(url, options);\r\n }\r\n\r\n protected patchPromise(url: string, body?: any, options?: IRequestOptions): HttpPromise {\r\n options = this.makeOptions(options, \"PATCH\", body);\r\n return this.toPromise(url, options);\r\n }\r\n\r\n protected uploadPromise(url: string, body: any, listener?: ProgressListener, options?: IRequestOptions): HttpPromise {\r\n const headers: any = {};\r\n if (body instanceof Blob) {\r\n headers[\"Content-Type\"] = \"application/octet-stream\";\r\n }\r\n options = this.makeOptions(Object.assign({\r\n headers: headers,\r\n reportProgress: true\r\n }, options), \"POST\", body);\r\n return this.toPromise(url, options, listener);\r\n }\r\n\r\n protected listPromise(url: string, params: IHttpParams): Promise<IPaginationData> {\r\n return new Promise<IPaginationData>(resolve => {\r\n this.getPromise(url, {params: params}).then(data => {\r\n if (ObjectUtils.isArray(data)) {\r\n resolve({\r\n total: data.length,\r\n items: data,\r\n meta: {}\r\n });\r\n return;\r\n }\r\n resolve({\r\n total: data.meta?.total || data?.total || data.items?.length || 0,\r\n items: data.items || [],\r\n meta: data.meta || {}\r\n });\r\n }, response => {\r\n if (response.status == 0 || response.status == 301) {\r\n resolve({\r\n total: 1,\r\n items: [{\r\n id: null,\r\n label: \"Not implemented.\"\r\n }],\r\n meta: {}\r\n });\r\n return true;\r\n }\r\n resolve({\r\n total: 0,\r\n items: [],\r\n meta: {}\r\n });\r\n return false;\r\n });\r\n });\r\n }\r\n\r\n protected handleUnauthorizedError(absoluteUrl: string, options: IRequestOptions, reject: () => void): void {\r\n reject();\r\n if (BaseHttpService.failedRequests.length > 1) {\r\n return;\r\n }\r\n if (this.universal.isServer) return;\r\n console.log(\"User auth error\", absoluteUrl, options);\r\n }\r\n\r\n protected toastWarning(message: string, issueContext: IIssueContext, reason: any, options: IRequestOptions): void {\r\n this.toaster.warning(message, {issueContext, reason, options});\r\n }\r\n\r\n protected toastError(message: string, issueContext: IIssueContext, reason: any, options: IRequestOptions): void {\r\n this.toaster.warning(message, {issueContext, reason, options});\r\n }\r\n\r\n protected toPromise(url: string, options: IRequestOptions, listener?: ProgressListener): HttpPromise {\r\n const issueContext: IIssueContext = {url: \"\"};\r\n\r\n return new HttpPromise(response => {\r\n if (!response) {\r\n if (this.universal.isServer) return;\r\n console.log(\"You may not need a reject Handler for this request!\", this.name, url, options);\r\n return;\r\n }\r\n const reason = response.error || {};\r\n if (response.status == 0 || response.status == 301) {\r\n this.toastWarning(`${url} endpoint is not implemented! Click here, to quickly create an issue.`, issueContext, reason, options);\r\n return;\r\n }\r\n const regex = /((E11000 duplicate key error collection: (.)+\\.)|(_1 dup key:(.)+))/g;\r\n if (reason.message && regex.test(reason.message)) {\r\n this.toastError(\"message.duplicate-key.error.\" + reason.message.replace(regex, \"\").replace(\" index: \", \"-\"), issueContext, reason, options);\r\n return;\r\n }\r\n this.toastWarning(`${url} endpoint error is not handled properly! Click here, to quickly create an issue.`, issueContext, reason, options);\r\n }, (resolve, reject) => {\r\n this.absoluteUrl(url, options).then(absoluteUrl => {\r\n issueContext.url = absoluteUrl;\r\n const request = this.client.request(options.method, absoluteUrl, options);\r\n const finalRequest = ObjectUtils.isNumber(options.timeout) && options.timeout > 0\r\n ? request.pipe(timeout(options.timeout)) : request;\r\n finalRequest.subscribe((event: any) => {\r\n if (options.reportProgress && event.type === HttpEventType.UploadProgress) {\r\n const progress = {\r\n percentage: MathUtils.round(event.loaded / event.total, 2, 0.01),\r\n loaded: event.loaded,\r\n total: event.total\r\n };\r\n if (listener) {\r\n listener(progress);\r\n }\r\n return;\r\n }\r\n resolve(this.parseResponse(event, url, options));\r\n const headers = options.headers as HttpHeaders;\r\n const authKey = \"Authorization\";\r\n // If we use token auth\r\n if (this.client.renewTokenFunc && headers.has(authKey)) {\r\n const currentTime = new Date().getTime();\r\n const userTokenTime = this.getUserTokenTime() || currentTime;\r\n // And the last request was a long-long time ago\r\n if (currentTime - 600000 > userTokenTime) {\r\n this.client.renewTokenFunc();\r\n }\r\n }\r\n }, (response: HttpErrorResponse | TimeoutError) => {\r\n if (response instanceof TimeoutError || response.status == 0 || response.status == 301) {\r\n reject(response);\r\n return;\r\n }\r\n const headers = options.headers as HttpHeaders;\r\n const authKey = \"Authorization\";\r\n // If an authorization header exists, and we still have an Unauthorized response prompt the user to log in again\r\n if (headers.has(authKey) && response.status == 401) {\r\n const pushed = this.pushFailedRequest(url, options, () => {\r\n options.headers = this.makeHeaders(options.originalHeaders);\r\n this.toPromise(url, options, listener).then(resolve, reject);\r\n });\r\n if (pushed)\r\n this.handleUnauthorizedError(absoluteUrl, options, () => reject(response));\r\n return;\r\n }\r\n reject(response);\r\n });\r\n });\r\n });\r\n }\r\n\r\n protected getUserTokenTime(): number {\r\n return this.storage.get(\"userTokenTime\");\r\n }\r\n\r\n protected pushFailedRequest(url: string, options: IRequestOptions, req: () => void): boolean {\r\n if (url.indexOf(\"tokens\") >= 0) return false;\r\n BaseHttpService.failedRequests.push(req);\r\n return true;\r\n }\r\n\r\n protected checkHeaders(headers: any): boolean {\r\n if (!headers || !headers.cookie || !headers.referer || !headers.host) {\r\n return false;\r\n }\r\n return headers.referer.indexOf(headers.host) >= 0;\r\n }\r\n\r\n protected makeOptions(options?: IRequestOptions, method: string = \"GET\", body?: any): IRequestOptions {\r\n // Set base options\r\n options = options ? {...options} : {};\r\n options.method = method;\r\n options.observe = options.observe || \"body\";\r\n options.originalHeaders = options.originalHeaders || (options.headers as IHttpHeaders) || {};\r\n options.withCredentials = ObjectUtils.isBoolean(options.withCredentials) ? options.withCredentials : this.withCredentials;\r\n options.body = body || {};\r\n // Set cookies from server side request\r\n const headers = !this.request ? null : this.request.headers;\r\n if (this.checkHeaders(headers)) {\r\n options.headers[\"Cookie\"] = headers.cookie;\r\n }\r\n options.headers = this.makeHeaders(options);\r\n options.params = this.makeParams(options);\r\n return options;\r\n }\r\n\r\n protected makeHeaders(options: IRequestOptions): HttpHeaders {\r\n return this.client.makeHeaders(Object.assign({}, this.requestHeaders, options?.headers || {}));\r\n }\r\n\r\n protected makeParams(options: IRequestOptions): HttpParams {\r\n return this.client.makeParams(Object.assign({}, this.requestParams, options?.params || {}));\r\n }\r\n\r\n protected parseResponse(response: any, url: string, options: IRequestOptions): any {\r\n return response;\r\n }\r\n\r\n protected parseUrl(url: string): string {\r\n return this.url(url).replace(/(?:((?!:).\\/)\\/)/g, \"$1\");\r\n }\r\n\r\n protected async absoluteUrl(url: string, options: IRequestOptions): Promise<string> {\r\n return this.parseUrl(url);\r\n }\r\n\r\n protected expressRequestUrl(url: string): string {\r\n const req = this.request;\r\n if (!req || !url || url.startsWith(\"http\") || url.startsWith(\"//\")) return url;\r\n const separator = url.startsWith(\"/\") ? \"\" : \"/\";\r\n return `${req.protocol}://${req.get(\"host\")}${separator}${url}`;\r\n }\r\n}\r\n","import {Injectable} from \"@angular/core\";\r\n\r\nimport {IApiService, IHttpParams, IRequestOptions, ProgressListener} from \"../common-types\";\r\nimport {BaseHttpService} from \"./base-http.service\";\r\nimport {IPaginationData} from \"../common-types\";\r\n\r\n@Injectable()\r\nexport class ApiService extends BaseHttpService implements IApiService {\r\n\r\n get name(): string {\r\n return \"api\";\r\n }\r\n\r\n url(url: string): string {\r\n const baseUrl = this.expressRequestUrl(`/api/${url}`);\r\n if (url == \"api-docs\" || url == \"socket\") {\r\n return baseUrl.replace(\"/api/\", \"/\");\r\n }\r\n return baseUrl;\r\n }\r\n\r\n get(url: string, options?: IRequestOptions, body?: any): Promise<any> {\r\n return this.getPromise(url, options, body);\r\n }\r\n\r\n delete(url: string, options?: IRequestOptions, body?: any): Promise<any> {\r\n return this.deletePromise(url, options, body);\r\n }\r\n\r\n post(url: string, body?: any, options?: IRequestOptions): Promise<any> {\r\n return this.postPromise(url, body, options);\r\n }\r\n\r\n put(url: string, body?: any, options?: IRequestOptions): Promise<any> {\r\n return this.putPromise(url, body, options);\r\n }\r\n\r\n patch(url: string, body?: any, options?: IRequestOptions): Promise<any> {\r\n return this.patchPromise(url, body, options);\r\n }\r\n\r\n upload(url: string, body: any, listener?: ProgressListener, options?: IRequestOptions): Promise<any> {\r\n return this.uploadPromise(url, body, listener, options);\r\n }\r\n\r\n list(url: string, params: IHttpParams): Promise<IPaginationData> {\r\n return this.listPromise(url, params);\r\n }\r\n}\r\n","import {EventEmitter} from \"@angular/core\";\r\nimport {IRoute, IAuthService} from \"../common-types\";\r\n\r\nexport class StaticAuthService implements IAuthService {\r\n\r\n isAuthenticated: boolean = true;\r\n userChanged: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n checkAuthenticated(): Promise<boolean> {\r\n return Promise.resolve(this.isAuthenticated);\r\n }\r\n\r\n getReturnState(route: IRoute): string[] {\r\n return null;\r\n }\r\n}\r\n","import {Inject, Injector, Injectable, Optional, isDevMode} from \"@angular/core\";\r\nimport {HttpClient} from \"@angular/common/http\";\r\nimport {UniversalService} from \"./universal.service\";\r\nimport {BASE_CONFIG, IConfigService, IConfiguration, ROOT_ELEMENT, SCRIPT_PARAMS} from \"../common-types\";\r\n\r\nconst JSON5 = require(\"json5\");\r\n\r\n@Injectable()\r\nexport class ConfigService implements IConfigService {\r\n\r\n protected baseConfig: IConfiguration;\r\n protected loadedConfig: IConfiguration;\r\n protected scriptParameters: any;\r\n protected loader: Promise<IConfiguration>;\r\n protected readonly loaderFunc: () => Promise<IConfiguration>;\r\n\r\n get load(): () => Promise<IConfiguration> {\r\n return this.loaderFunc;\r\n }\r\n\r\n get config(): IConfiguration {\r\n return this.loadedConfig;\r\n }\r\n\r\n get configUrl(): string {\r\n return `${this.loadedConfig.baseUrl}config/config.json`;\r\n }\r\n\r\n constructor(readonly http: HttpClient,\r\n readonly universal: UniversalService,\r\n readonly injector: Injector,\r\n @Inject(ROOT_ELEMENT) readonly rootElement: any,\r\n @Optional() @Inject(BASE_CONFIG) baseConfig: IConfiguration = null,\r\n @Optional() @Inject(SCRIPT_PARAMS) scriptParams: any = null) {\r\n for (const key in []) {\r\n Object.defineProperty(Array.prototype, key, {\r\n enumerable: false\r\n });\r\n }\r\n let baseUrl = \"\";\r\n if (this.universal.isBrowser) {\r\n const currentScript = (document.currentScript as HTMLScriptElement);\r\n if (!!currentScript) {\r\n const scriptSrc = currentScript.src;\r\n const srcParts = scriptSrc.split(\".js\");\r\n baseUrl = scriptSrc.substr(0, srcParts[0].lastIndexOf(\"/\") + 1);\r\n }\r\n }\r\n this.baseConfig = baseConfig || {};\r\n this.loadedConfig = Object.assign(\r\n !baseUrl ? {} : {baseUrl, baseDomain: this.parseDomain(baseUrl)},\r\n this.baseConfig\r\n );\r\n this.scriptParameters = scriptParams || {};\r\n this.loaderFunc = () => {\r\n this.loader = this.loader || new Promise<any>((resolve, reject) => {\r\n this.loadJson().then(config => {\r\n this.loadedConfig = config = Object.assign(this.loadedConfig, config);\r\n this.prepareConfig(config).then(c => {\r\n this.loadedConfig = c;\r\n c.baseUrl = c.baseUrl || \"/\";\r\n resolve(c);\r\n });\r\n }, reject);\r\n });\r\n return this.loader;\r\n };\r\n this.initService();\r\n }\r\n\r\n protected parseDomain(baseUrl: string): string {\r\n try {\r\n const url = new URL(baseUrl);\r\n const port = url.port && url.port !== \"443\" && url.port !== \"80\" ? `:${url.port}` : ``;\r\n return `${url.protocol}//${url.hostname}${port}/`;\r\n } catch {\r\n return \"/\";\r\n }\r\n }\r\n\r\n protected initService(): void {\r\n\r\n }\r\n\r\n protected async loadJson(): Promise<IConfiguration> {\r\n if (this.universal.isServer) {\r\n return Promise.resolve(this.loadedConfig);\r\n }\r\n const configUrl = this.configUrl;\r\n try {\r\n const config5 = await this.http.get(isDevMode() ? `${configUrl}5` : configUrl, {responseType: \"text\"}).toPromise();\r\n return JSON5.parse(config5);\r\n } catch (e) {\r\n try {\r\n const config = await this.http.get(configUrl).toPromise();\r\n console.log(`Can't parse json5 config: ${e}`);\r\n return config;\r\n } catch (e) {\r\n throw new Error(`Config file not found at: ${configUrl}`);\r\n }\r\n }\r\n }\r\n\r\n protected prepareConfig(config: IConfiguration): Promise<IConfiguration> {\r\n return Promise.resolve(config);\r\n }\r\n\r\n cloneRootElem(): any {\r\n if (this.rootElement instanceof HTMLElement) {\r\n const clone = this.rootElement.cloneNode(true) as HTMLElement\r\n const children = Array.from(clone.childNodes);\r\n children.forEach(child => {\r\n if (child instanceof HTMLElement) {\r\n child.remove();\r\n }\r\n });\r\n return clone;\r\n }\r\n return this.rootElement.cloneNode(true);\r\n }\r\n\r\n prepareUrl(url: string, ending: string): string {\r\n const project = !this.loadedConfig ? \"\" : this.loadedConfig.project;\r\n const needsProtocol = url?.startsWith(\"//\") ?? false;\r\n url = !needsProtocol && url?.startsWith(\"/\") ? this.loadedConfig.baseDomain + url.substr(1) : url || \"\";\r\n url = `${url.replace(/\\/+$/, \"\")}${ending}`.replace(\"[project]\", project);\r\n return this.universal.isServer && needsProtocol ? `http:${url}` : url;\r\n }\r\n\r\n getConfigValue(key: string): any {\r\n return this.loadedConfig[key];\r\n }\r\n\r\n getQueryParameter(name: string, url?: string): string {\r\n url = url || (this.universal.isBrowser ? window.location.href : \"\");\r\n name = name.replace(/[\\[\\]]/g, \"\\\\$&\");\r\n const regex = new RegExp(\"[?&]\" + name + \"(=([^&#]*)|&|#|$)\"),\r\n results = regex.exec(url);\r\n if (!results) return null;\r\n if (!results[2]) return \"\";\r\n return decodeURIComponent(results[2].replace(/\\+/g, \" \"));\r\n }\r\n}\r\n","import {ErrorHandler, Injectable, Injector} from \"@angular/core\";\r\nimport {UniversalService} from \"./universal.service\";\r\nimport {ERROR_HANDLER, ErrorHandlerCallback, IToasterService, TOASTER_SERVICE} from \"../common-types\";\r\n\r\n@Injectable()\r\nexport class ErrorHandlerService extends ErrorHandler {\r\n\r\n private toaster: IToasterService;\r\n private universal: UniversalService;\r\n private errorCb: ErrorHandlerCallback;\r\n private readonly errorMap: any;\r\n\r\n constructor(readonly injector: Injector) {\r\n super();\r\n this.errorMap = {};\r\n }\r\n\r\n handleError(error: Error): void {\r\n try {\r\n this.universal = this.universal || this.injector.get(UniversalService);\r\n } catch (e) {\r\n return;\r\n }\r\n const date = new Date();\r\n try {\r\n this.errorCb = this.errorCb || this.injector.get(ERROR_HANDLER);\r\n this.errorCb(`[${date}]: ${error.message}\\n${error.stack}`);\r\n } catch (e) {\r\n if (this.universal.isServer) {\r\n console.error(`[${date}]: ${error.message}\\n${error.stack}`);\r\n return;\r\n }\r\n }\r\n if (this.universal.isServer) return;\r\n const key = typeof btoa !== \"undefined\" ? btoa(unescape(encodeURIComponent(`${error.message} ${error.stack}`))) : error.message;\r\n if (this.errorMap[key] && this.errorMap[key].getTime() > date.getTime() - 5000) return;\r\n this.errorMap[key] = date;\r\n try {\r\n this.toaster = this.toaster || this.injector.get(TOASTER_SERVICE);\r\n this.toaster.error(`[${date}]: ${error.message}\\n${error.stack}`);\r\n } catch (e) {\r\n }\r\n console.error(`[${date}]: ${error.message}\\n${error.stack}`);\r\n }\r\n}\r\n","import {EventEmitter, Injectable} from \"@angular/core\";\r\n\r\n@Injectable()\r\nexport class EventsService {\r\n\r\n readonly eventForwarded: EventEmitter<Event>;\r\n readonly stickyUpdated: EventEmitter<boolean>;\r\n readonly languageChanged: EventEmitter<string>;\r\n\r\n private sticky: boolean;\r\n\r\n public get isSticky(): boolean {\r\n return this.sticky;\r\n }\r\n\r\n constructor() {\r\n this.eventForwarded = new EventEmitter<Event>();\r\n this.stickyUpdated = new EventEmitter<boolean>();\r\n this.languageChanged = new EventEmitter<string>();\r\n this.sticky = false;\r\n }\r\n\r\n event(e: Event): void {\r\n this.eventForwarded.emit(e);\r\n }\r\n\r\n updateSticky(sticky: boolean): void {\r\n this.sticky = sticky;\r\n this.stickyUpdated.emit(sticky);\r\n }\r\n}\r\n","import {Inject, Injectable} from \"@angular/core\";\r\nimport {ILanguageService, LANGUAGE_SERVICE} from \"../common-types\";\r\nimport {ObjectUtils} from \"../utils/object.utils\";\r\nimport {MathUtils} from \"../utils/math.utils\";\r\n\r\n@Injectable()\r\nexport class FormatterService {\r\n\r\n get defaultPrecision(): number {\r\n return 2;\r\n }\r\n\r\n get defaultNumberFormat(): string {\r\n return `num + ' mm'`;\r\n }\r\n\r\n get defaultDivider(): number {\r\n return 1;\r\n }\r\n\r\n constructor(@Inject(LANGUAGE_SERVICE) public language: ILanguageService) {\r\n\r\n }\r\n\r\n roundNumber(value: number, precision?: number, divider?: number): number {\r\n return MathUtils.round(value, this.getPrecision(precision), divider || this.defaultDivider);\r\n }\r\n\r\n formatNumber(value: number | string, format?: string, precision?: number, divider?: number, minDigits?: number): string {\r\n precision = this.getPrecision(precision);\r\n minDigits = minDigits ?? precision;\r\n divider = divider || this.defaultDivider;\r\n const num = ObjectUtils.isNumber(value) ? <number>value : parseFloat(<string>value) || 0;\r\n const str = (num / divider).toLocaleString(this.language.currentLanguage, {\r\n minimumFractionDigits: minDigits,\r\n maximumFractionDigits: precision,\r\n useGrouping: false\r\n });\r\n return ObjectUtils.evaluate(format || this.defaultNumberFormat, {num: str});\r\n }\r\n\r\n formatMillimeter(value: number, precision?: number, divider?: number): string {\r\n return this.formatNumber(value, `num + ' mm'`, precision, divider);\r\n }\r\n\r\n protected getPrecision(precision: number): number {\r\n return ObjectUtils.isNumber(precision) ? precision : this.defaultPrecision;\r\n }\r\n}\r\n","import {EventEmitter, Injectable, TemplateRef} from \"@angular/core\";\r\nimport {ObjectUtils} from \"../utils/object.utils\";\r\nimport {GlobalComponentModifier, IGlobalTemplates} from \"../common-types\";\r\n\r\n@Injectable()\r\nexport class GlobalTemplateService implements IGlobalTemplates {\r\n\r\n readonly templatesUpdated: EventEmitter<void>;\r\n\r\n protected globalTemplates: { [id: string]: TemplateRef<any> };\r\n protected componentModifiers: { [id: string]: GlobalComponentModifier };\r\n\r\n constructor() {\r\n this.templatesUpdated = new EventEmitter<any>();\r\n this.globalTemplates = {};\r\n this.componentModifiers = {};\r\n }\r\n\r\n get(id: string, component?: any): TemplateRef<any> {\r\n const template = this.globalTemplates[id];\r\n if (!template) return undefined;\r\n const modifier = this.componentModifiers[id];\r\n if (ObjectUtils.isFunction(modifier) && component) {\r\n modifier(component);\r\n }\r\n return template;\r\n }\r\n\r\n add(id: string, template: TemplateRef<any>): void {\r\n this.globalTemplates[id] = template;\r\n this.templatesUpdated.emit();\r\n }\r\n\r\n remove(id: string): void {\r\n delete this.globalTemplates[id];\r\n this.templatesUpdated.emit();\r\n }\r\n\r\n addComponentModifier(id: string, modifier: GlobalComponentModifier): void {\r\n this.componentModifiers[id] = modifier;\r\n }\r\n}\r\n","import {EventEmitter, Injectable} from \"@angular/core\";\r\nimport {IIconService} from \"../common-types\";\r\n\r\ndeclare const icons: {\r\n [icon: string]: string;\r\n};\r\n\r\n@Injectable()\r\nexport class IconService implements IIconService {\r\n\r\n get isDisabled(): boolean {\r\n return this.disabled;\r\n }\r\n\r\n set isDisabled(value: boolean) {\r\n this.disabled = value;\r\n this.iconsLoaded.emit();\r\n }\r\n\r\n public readonly iconsLoaded: EventEmitter<any>;\r\n\r\n protected disabled: boolean;\r\n\r\n constructor() {\r\n this.iconsLoaded = new EventEmitter<any>();\r\n this.disabled = false;\r\n }\r\n\r\n getIcon(icon: string, activeIcon: string, active: boolean): Promise<string> {\r\n icon = typeof icons == \"undefined\" ? icon : (icons[icon] || icon);\r\n activeIcon = typeof icons == \"undefined\" ? activeIcon : (icons[activeIcon] || icon);\r\n return Promise.resolve(active ? activeIcon : icon);\r\n }\r\n}\r\n","import {Inject, Injectable} from \"@angular/core\";\r\nimport {\r\n CONFIG_SERVICE,\r\n IConfigService,\r\n IConfiguration,\r\n ILanguageService,\r\n IPromiseService,\r\n ITranslation,\r\n ITranslations,\r\n PROMISE_SERVICE\r\n} from \"../common-types\";\r\nimport {ObjectUtils} from \"../utils/object.utils\";\r\nimport {EventsService} from \"./events.service\";\r\nimport {StorageService} from \"./storage.service\";\r\nimport {UniversalService} from \"./universal.service\";\r\nimport {BaseHttpClient} from \"./base-http.client\";\r\nimport {HttpClient} from \"@angular/common/http\";\r\n\r\n@Injectable()\r\nexport class StaticLanguageService implements ILanguageService {\r\n\r\n get defaultLanguage(): string {\r\n return this.configs.getQueryParameter(\"lang\") || this.storage.get(\"language\", this.getDefaultLanguage());\r\n }\r\n\r\n get dictionary(): ITranslations {\r\n return this.translations[this.currentLanguage] || {};\r\n }\r\n\r\n set dictionary(value: ITranslations) {\r\n this.translations[this.currentLanguage] = value;\r\n }\r\n\r\n get languages(): ReadonlyArray<string> {\r\n return this.languageList;\r\n }\r\n\r\n get currentLanguage(): string {\r\n return this.currentLang || this.defaultLanguage;\r\n }\r\n\r\n set currentLanguage(lang: string) {\r\n this.currentLang = lang;\r\n this.events.languageChanged.emit(lang);\r\n }\r\n\r\n get editLanguage(): string {\r\n return this.editLang || this.currentLanguage;\r\n }\r\n\r\n set editLanguage(lang: string) {\r\n this.editLang = lang || this.currentLanguage;\r\n }\r\n\r\n get disableTranslations(): boolean {\r\n return this.disableTrans;\r\n }\r\n\r\n set disableTranslations(value: boolean) {\r\n this.disableTrans = value;\r\n this.events.languageChanged.emit(this.currentLang);\r\n }\r\n\r\n get httpClient(): HttpClient {\r\n return this.client;\r\n }\r\n\r\n get config(): IConfiguration {\r\n return this.configs.config;\r\n }\r\n\r\n get universal(): UniversalService {\r\n return this.storage.universal;\r\n }\r\n\r\n protected editLang: string;\r\n protected currentLang: string;\r\n protected disableTrans: boolean;\r\n protected languageList: string[];\r\n protected readonly translations: ITranslations;\r\n\r\n constructor(@Inject(EventsService) readonly events: EventsService,\r\n @Inject(StorageService) readonly storage: StorageService,\r\n @Inject(CONFIG_SERVICE) readonly configs: IConfigService,\r\n @Inject(PROMISE_SERVICE) protected promises: IPromiseService,\r\n @Inject(BaseHttpClient) protected client: BaseHttpClient) {\r\n this.editLang = null;\r\n this.currentLang = null;\r\n this.disableTrans = false;\r\n this.languageList = [];\r\n this.translations = {\r\n none: {}\r\n };\r\n this.initService();\r\n }\r\n\r\n protected initService(): void {\r\n\r\n }\r\n\r\n replaceLanguages(languages: string[]): void {\r\n languages = Array.isArray(languages) && languages.length > 0 ? languages : this.languageList;\r\n this.languageList = Array.from(new Set<string>(languages));\r\n this.languageList.forEach(lang => {\r\n this.translations[lang] = this.translations[lang] || {};\r\n });\r\n }\r\n\r\n addLanguages(languages: string[]): void {\r\n if (!Array.isArray(languages) || languages.length == 0) return;\r\n this.replaceLanguages(this.languageList.concat(languages));\r\n }\r\n\r\n getTranslationSync(key: string, params: any = null): string {\r\n const lowerKey = (key || \"\").toLocaleLowerCase();\r\n const translation = this.dictionary[lowerKey] || lowerKey;\r\n return this.interpolate(translation == lowerKey ? key : translation, params);\r\n }\r\n\r\n getTranslation(key: string, params?: any): Promise<string> {\r\n if (!ObjectUtils.isString(key) || !key.length) {\r\n throw new Error(`Parameter \"key\" required`);\r\n }\r\n const translation = ObjectUtils.getValue(this.dictionary, key, key) || key;\r\n return this.promises.resolve(this.interpolate(translation, params));\r\n }\r\n\r\n getTranslations(...keys: string[]): Promise<ITranslations> {\r\n return this.promises.create<ITranslations>(resolve => {\r\n this.promises.all(keys.map(key => this.getTranslation(key))).then(translations => {\r\n resolve(keys.reduce((result, key, i) => {\r\n result[key] = translations[i];\r\n return result;\r\n }, {}));\r\n });\r\n });\r\n }\r\n\r\n getTranslationFromObject(translations: ITranslations, params?: any, lang?: string): string {\r\n lang = lang || this.currentLanguage;\r\n return this.interpolate(translations ? (translations[lang] || \"\") : \"\")\r\n }\r\n\r\n getTranslationFromArray(translations: ITranslation[], params?: any, lang?: string): string {\r\n lang = lang || this.currentLanguage;\r\n const translation = translations ? translations.find(t => t.lang == lang) : null;\r\n return this.interpolate(translation ? translation.translation : \"\", params);\r\n }\r\n\r\n protected interpolate(expr: string | Function, params?: any): string {\r\n if (typeof expr === \"string\") {\r\n return this.interpolateString(expr, params);\r\n }\r\n if (typeof expr === \"function\") {\r\n return expr(params);\r\n }\r\n return expr as string;\r\n }\r\n\r\n protected interpolateString(expr: string, params?: any) {\r\n if (!expr || !params) return expr;\r\n return expr.replace(/{{\\s?([^{}\\s]*)\\s?}}/g, (substring: string, b: string) => {\r\n const r = ObjectUtils.getValue(params, b);\r\n return ObjectUtils.isDefined(r) ? r : substring;\r\n });\r\n }\r\n\r\n protected getDefaultLanguage(): string {\r\n if (!this.universal.isBrowser || typeof window.navigator === \"undefined\") {\r\n return \"de\";\r\n }\r\n let browserLang: string = (window.navigator.languages ? window.navigator.languages[0] : null)\r\n || window.navigator.language || window.navigator[\"browserLanguage\"] || window.navigator[\"userLanguage\"] || null;\r\n if (!browserLang) return browserLang;\r\n\r\n [\"-\", \"_\"].forEach(splitter => {\r\n if (browserLang.indexOf(splitter) >= 0) {\r\n browserLang = browserLang.split(splitter)[0];\r\n }\r\n })\r\n return browserLang;\r\n }\r\n}\r\n","import {Injectable} from \"@angular/core\";\r\nimport {BehaviorSubject, combineLatest, Observable} from \"rxjs\";\r\nimport {map} from \"rxjs/operators\";\r\nimport {ILanguageSetting, ILanguageSettings, ITranslations} from \"../common-types\";\r\nimport {StaticLanguageService} from \"./static-language.service\";\r\n\r\n@Injectable()\r\nexport class LanguageService extends StaticLanguageService {\r\n\r\n protected translationRequests: ITranslations;\r\n protected settingsPromise: Promise<ILanguageSettings>;\r\n protected languageSettings: BehaviorSubject<ILanguageSettings>;\r\n\r\n get currentLanguage(): string {\r\n return this.currentLang || this.defaultLanguage;\r\n }\r\n\r\n set currentLanguage(lang: string) {\r\n this.useLanguage(lang).then(() => {\r\n this.events.languageChanged.emit(lang);\r\n });\r\n }\r\n\r\n get settings(): ILanguageSetting {\r\n const settings = this.languageSettings.value;\r\n return !settings ? {} : settings.settings[this.currentLanguage] || {};\r\n }\r\n\r\n get $settings(): Observable<ILanguageSetting> {\r\n this.loadSettings().then(s => this.languageSettings.next(s));\r\n return combineLatest([this.languageSettings, this.events.languageChanged]).pipe(map(([settings, lang]) => {\r\n return !settings ? {} : settings.settings[lang as string] || {};\r\n }));\r\n }\r\n\r\n protected initService(): void {\r\n this.client.setExtraRequestParam(\"language\", \"de\");\r\n this.translationRequests = {};\r\n this.languageSettings = new BehaviorSubject<ILanguageSettings>(null);\r\n if (this.universal.isServer) return;\r\n window[\"setLanguage\"] = (lang: string) => {\r\n this.currentLanguage = lang;\r\n };\r\n }\r\n\r\n async initFromSettings(): Promise<any> {\r\n const defaultLanguage = this.defaultLanguage;\r\n const settings = await this.loadSettings();\r\n this.languageSettings.next(settings);\r\n const devLanguages = settings.devLanguages || [];\r\n this.languageList = (settings.languages || []).filter(lang => {\r\n const unavailable = settings.settings[lang]?.unavailable;\r\n if (unavailable) {\r\n const parts = unavailable.split(\"/\");\r\n const value = parts[0] || parts[1];\r\n const flags = parts.length > 1 ? parts[parts.length - 1] : \"g\";\r\n if (new RegExp(value, flags).test(this.config.baseDomain)) return false;\r\n }\r\n return devLanguages.indexOf(lang) < 0;\r\n });\r\n if (this.languageList.length === 0) {\r\n this.languageList = [defaultLanguage];\r\n }\r\n const lang = this.languages.indexOf(defaultLanguage) < 0 ? settings.defaultLanguage || this.languageList[0] : defaultLanguage;\r\n await this.useLanguage(lang);\r\n this.events.languageChanged.emit(lang);\r\n }\r\n\r\n async getTranslation(key: string, params: any = null): Promise<string> {\r\n if (!key) return \"\";\r\n try {\r\n const lowerKey = key.toLocaleLowerCase();\r\n const dict = await this.loadDictionary();\r\n if (lowerKey in dict) {\r\n return this.interpolate(dict[lowerKey], params);\r\n }\r\n return this.interpolate(key, params);\r\n } catch (reason) {\r\n console.log(\"ERROR IN TRANSLATIONS\", reason);\r\n return key;\r\n }\r\n }\r\n\r\n protected async useLanguage(lang: string): Promise<ITranslations> {\r\n lang = this.languages.indexOf(lang) < 0 ? this.languages[0] : lang;\r\n this.client.setExtraRequestParam(\"language\", lang);\r\n if (lang == this.currentLang) return this.dictionary;\r\n this.storage.set(\"language\", lang);\r\n this.currentLang = lang;\r\n const dict = await this.loadDictionary();\r\n this.translations[lang] = dict;\r\n return dict;\r\n }\r\n\r\n protected loadDictionary(): Promise<any> {\r\n const lang = this.currentLanguage;\r\n this.translationRequests[lang] = this.translationRequests[lang] || new Promise(resolve => {\r\n this.httpClient.get(`${this.config.translationUrl}${lang}`).toPromise().then(response => {\r\n response = response || {};\r\n resolve(Object.keys(response).reduce((result, key) => {\r\n result[key.toLocaleLowerCase()] = response[key];\r\n return result;\r\n }, {}));\r\n }, () => {\r\n resolve({});\r\n });\r\n });\r\n return this.translationRequests[lang];\r\n }\r\n\r\n protected loadSettings(): Promise<ILanguageSettings> {\r\n this.settingsPromise = this.settingsPromise || (this.client.get(`${this.config.translationUrl}languageSettings`).toPromise())\r\n .then(\r\n (settings: ILanguageSettings) => {\r\n return settings;\r\n }, () => {\r\n return {\r\n languages: [\"de\", \"en\", \"hu\"],\r\n devLanguages: [],\r\n defaultLanguage: \"de\",\r\n settings: {\r\n de: {},\r\n hu: {},\r\n en: {}\r\n }\r\n };\r\n }\r\n );\r\n return this.settingsPromise;\r\n }\r\n}\r\n","import {Inject, Injectable} from \"@angular/core\";\r\nimport {API_SERVICE, IApiService, IOpenApiSchema, IOpenApiSchemas} from \"../common-types\";\r\n\r\n@Injectable()\r\nexport class OpenApiService {\r\n\r\n private schemasPromise: Promise<IOpenApiSchemas>;\r\n\r\n constructor(@Inject(API_SERVICE) readonly api: IApiService) {\r\n\r\n }\r\n\r\n getSchemas(): Promise<IOpenApiSchemas> {\r\n this.schemasPromise = this.schemasPromise || new Promise((resolve => {\r\n this.api.get(\"api-docs\").then(res => {\r\n const schemas: IOpenApiSchemas = res.components?.schemas || res.definitions || {};\r\n Object.values(schemas).forEach(schema => {\r\n Object.keys(schema.properties || {}).forEach(p => {\r\n schema.properties[p].id = p;\r\n });\r\n });\r\n resolve(schemas);\r\n }, () => {\r\n resolve({});\r\n });\r\n }));\r\n return this.schemasPromise;\r\n }\r\n\r\n async getSchema(name: string): Promise<IOpenApiSchema> {\r\n const schemas = await this.getSchemas();\r\n const schema = schemas[name];\r\n if (!schema) return null;\r\n return schemas[name];\r\n }\r\n}\r\n","import {Inject, Injectable} from \"@angular/core\";\r\nimport {ILanguageService, IToasterService, LANGUAGE_SERVICE} from \"../common-types\";\r\n\r\n@Injectable()\r\nexport class ConsoleToasterService implements IToasterService {\r\n\r\n constructor(@Inject(LANGUAGE_SERVICE) private language: ILanguageService) {\r\n\r\n }\r\n\r\n error(message: string, params?: any, title?: string): void {\r\n this.translateMessage(message, params, str => console.log(str, title, \"background: #BD362F; color: #ffffff\"));\r\n }\r\n\r\n info(message: string, params?: any, title?: string): void {\r\n this.translateMessage(message, params, str => console.log(str, title, \"background: #2F96B4; color: #ffffff\"));\r\n }\r\n\r\n success(message: string, params?: any, title?: string): void {\r\n this.translateMessage(message, params, str => console.log(str, title, \"background: #51A351; color: #ffffff\"));\r\n }\r\n\r\n warning(message: string, params?: any, title?: string): void {\r\n this.translateMessage(message, params, str => console.log(str, title, \"background: #F89406; color: #ffffff\"));\r\n }\r\n\r\n private translateMessage(message: string, params: any, callback: (message: string) => void): void {\r\n this.language.getTranslation(message, params).then(callback);\r\n }\r\n}\r\n","import {Inject, Injectable} from \"@angular/core\";\r\nimport {DefaultUrlSerializer, UrlSegment, UrlSegmentGroup, UrlTree} from \"@angular/router\";\r\nimport {ILanguageService, LANGUAGE_SERVICE} from \"../common-types\";\r\n\r\nexport interface IUrlDictionary {\r\n [key: string]: string\r\n}\r\n\r\n@Injectable()\r\nexport class TranslatedUrlSerializer extends DefaultUrlSerializer {\r\n\r\n protected cache: {[lang: string]: IUrlDictionary};\r\n\r\n constructor(@Inject(LANGUAGE_SERVICE) readonly language: ILanguageService) {\r\n super();\r\n this.cache = {};\r\n }\r\n\r\n serialize(tree: UrlTree): string {\r\n const copy = new UrlTree();\r\n const dictionary = this.getDictionary(true);\r\n copy.root = this.modifyTreeRecursive(tree.root, segment => {\r\n segment.path = dictionary[segment.path] || segment.path;\r\n });\r\n copy.queryParams = tree.queryParams;\r\n return super.serialize(copy);\r\n }\r\n\r\n parse(url: string): UrlTree {\r\n const tree = super.parse(url);\r\n const dictionary = this.getDictionary(false);\r\n tree.root = this.modifyTreeRecursive(tree.root, segment => {\r\n segment.path = dictionary[segment.path] || segment.path;\r\n });\r\n return tree;\r\n }\r\n\r\n getDictionary(serialize: boolean): IUrlDictionary {\r\n const method = serialize ? `serialize` : `parse`;\r\n const key = `${this.language.currentLanguage}-${method}`;\r\n if (!this.cache[key]) {\r\n const dict = this.language.dictionary;\r\n this.cache[key] = Object.keys(dict).reduce((res, key) => {\r\n if (!key.startsWith(\"route.\")) return res;\r\n const value = dict[key];\r\n key = key.replace(\"route.\", \"\");\r\n res[serialize ? key : value] = serialize ? value : key;\r\n return res;\r\n }, {});\r\n }\r\n return this.cache[key];\r\n }\r\n\r\n modifyTreeRecursive(segmentGroup: UrlSegmentGroup, cb: (segment: UrlSegment) => void): UrlSegmentGroup {\r\n if (!segmentGroup) return null;\r\n const childrenArr = [];\r\n const children = Object.keys(segmentGroup.children || {}).reduce((res, key) => {\r\n const child = this.modifyTreeRecursive(segmentGroup.children[key], cb);\r\n childrenArr.push(child);\r\n res[key] = child;\r\n return res;\r\n }, {});\r\n const newGroup = new UrlSegmentGroup(segmentGroup.segments.map(s => {\r\n s = new UrlSegment(s.path, Object.assign({}, s.parameters));\r\n cb(s);\r\n return s;\r\n }), children);\r\n childrenArr.forEach(c => {\r\n c.parent = newGroup;\r\n });\r\n return newGroup;\r\n }\r\n}\r\n","import {EventEmitter, Inject, Injectable, NgZone} from \"@angular/core\";\r\nimport {IPromiseService} from \"../common-types\";\r\n\r\n@Injectable()\r\nexport class PromiseService implements IPromiseService {\r\n\r\n get count(): number {\r\n return this.promiseCount;\r\n }\r\n\r\n get onChanged(): EventEmitter<number> {\r\n return this.promiseChanged;\r\n }\r\n\r\n protected promiseCount: number;\r\n protected readonly promiseChanged: EventEmitter<number>;\r\n\r\n constructor(@Inject(NgZone) readonly zone: NgZone) {\r\n this.promiseCount = 0;\r\n this.promiseChanged = new EventEmitter<number>();\r\n }\r\n\r\n create<T>(executor: (resolve: (value?: T | PromiseLike<T>) => void, reject: (reason?: any) => void) => void): Promise<T> {\r\n return this.add(this.zone.runOutsideAngular(() => new Promise<T>(executor)));\r\n }\r\n\r\n all(promises: Promise<any>[]): Promise<any> {\r\n return this.add(this.zone.runOutsideAngular(() => Promise.all(promises)));\r\n }\r\n\r\n resolve<T>(value: T | PromiseLike<T>): Promise<T> {\r\n return this.add(this.zone.runOutsideAngular(() => Promise.resolve(value)));\r\n }\r\n\r\n reject<T>(value: T | PromiseLike<T>): Promise<T> {\r\n return this.add(this.zone.runOutsideAngular(() => Promise.reject(value)));\r\n }\r\n\r\n protected promiseFinished(): void {\r\n if (this.promiseCount == 0) return;\r\n this.promiseCount--;\r\n this.promiseChanged.emit(this.promiseCount);\r\n }\r\n\r\n protected add<T>(promise: Promise<T>): Promise<T> {\r\n this.promiseCount++;\r\n this.promiseChanged.emit(this.promiseCount);\r\n return new Promise<any>((resolve, reject) => {\r\n promise.then(v => {\r\n resolve(v);\r\n this.promiseFinished();\r\n }, r => {\r\n reject(r);\r\n this.promiseFinished();\r\n });\r\n });\r\n }\r\n}\r\n","import {ɵangular_packages_platform_browser_platform_browser_g as EventManagerPlugin} from \"@angular/platform-browser\";\r\nimport {Inject, Injectable} from \"@angular/core\";\r\nimport {DOCUMENT} from \"@angular/common\";\r\nimport { addListener, removeListener } from \"resize-detector\";\r\nimport {StringUtils} from \"../utils/string.utils\";\r\nimport {UniversalService} from \"../services/universal.service\";\r\n\r\nfunction emptyRemove(): void {\r\n\r\n}\r\n\r\nfunction isWindow(el: any): boolean {\r\n return typeof window !== \"undefined\" && el === window;\r\n}\r\n\r\n@Injectable()\r\nexport class ResizeEventPlugin extends EventManagerPlugin {\r\n\r\n private static EVENT_NAME: string = \"resize\";\r\n\r\n constructor(@Inject(DOCUMENT) doc: any, public universal: UniversalService) {\r\n super(doc);\r\n }\r\n\r\n supports(eventName) {\r\n return eventName === ResizeEventPlugin.EVENT_NAME;\r\n }\r\n\r\n addEventListener(element: HTMLElement, eventName: string, handler: Function): Function {\r\n const zone = this.manager.getZone();\r\n return zone.runOutsideAngular(() => {\r\n if (this.universal.isServer) return emptyRemove;\r\n const cb = el => {\r\n zone.run(() => handler(el));\r\n };\r\n if (isWindow(element)) {\r\n element.addEventListener(eventName, cb);\r\n } else {\r\n addListener(element, cb);\r\n }\r\n return () => {\r\n try {\r\n if (isWindow(element)) {\r\n element.removeEventListener(eventName, cb);\r\n } else {\r\n removeListener(element, cb);\r\n }\r\n } catch (e) {\r\n }\r\n }\r\n });\r\n }\r\n}\r\n","import {ɵangular_packages_platform_browser_platform_browser_g as EventManagerPlugin} from \"@angular/platform-browser\";\r\nimport {Inject, Injectable} from \"@angular/core\";\r\nimport {DOCUMENT} from \"@angular/common\";\r\nimport {StringUtils} from \"../utils/string.utils\";\r\nimport {UniversalService} from \"../services/universal.service\";\r\n\r\nexport function emptyRemove(): void {\r\n\r\n}\r\n\r\n@Injectable()\r\nexport class ScrollEventPlugin extends EventManagerPlugin {\r\n\r\n private static EVENT_NAME: string = \"scroll\";\r\n\r\n constructor(@Inject(DOCUMENT) doc: any, private universal: UniversalService) {\r\n super(doc);\r\n }\r\n\r\n supports(eventName) {\r\n return eventName === ScrollEventPlugin.EVENT_NAME;\r\n }\r\n\r\n addEventListener(element: HTMLElement, eventName: string, handler: Function): Function {\r\n const zone = this.manager.getZone();\r\n return zone.runOutsideAngular(() => {\r\n if (this.universal.isServer) return emptyRemove;\r\n const callback = (e: Event) => {\r\n zone.run(() => handler(e));\r\n };\r\n element.addEventListener(eventName, callback);\r\n return () => element.removeEventListener(eventName, callback);\r\n });\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from \"@angular/core\";\r\n\r\n@Pipe({\r\n name: \"chunk\"\r\n})\r\nexport class ChunkPipe implements PipeTransform {\r\n transform(items: any[], count: number): any[] {\r\n const result: any[] = [];\r\n let subResult: any[] = null;\r\n items.forEach((item, index) => {\r\n if (index % count == 0) {\r\n subResult = [];\r\n result.push(subResult);\r\n }\r\n subResult.push(item);\r\n });\r\n return result;\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from \"@angular/core\";\r\nimport {ObjectUtils} from \"../utils/object.utils\";\r\n\r\nexport interface IEntry {\r\n key: string;\r\n value: any;\r\n index: number;\r\n}\r\n\r\nconst emptyEntries: IEntry[] = [];\r\n\r\n@Pipe({\r\n name: \"entries\"\r\n})\r\nexport class EntriesPipe implements PipeTransform {\r\n\r\n transform(value: any): IEntry[] {\r\n if (!value) return emptyEntries;\r\n const entries: IEntry[] = [];\r\n ObjectUtils.iterate(value, (val, key) => {\r\n entries.push({\r\n key: key,\r\n value: val,\r\n index: entries.length\r\n });\r\n });\r\n return entries;\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from \"@angular/core\";\r\nimport {IExtraProperties} from \"../common-types\";\r\nimport {ObjectUtils} from \"../utils/object.utils\";\r\n\r\n@Pipe({\r\n name: \"extraItemProperties\"\r\n})\r\nexport class ExtraItemPropertiesPipe implements PipeTransform {\r\n transform(items: any[], properties: IExtraProperties, params: any = {}): any[] {\r\n const keys = Object.keys(properties);\r\n keys.forEach(key => {\r\n const value = properties[key];\r\n properties[key] = ObjectUtils.isFunction(value) ? value : (item, index, params) => {\r\n return ObjectUtils.evaluate(value, {\r\n item: item,\r\n index: index,\r\n params: params\r\n });\r\n };\r\n });\r\n return (items || []).map((item, index) => keys.reduce((result, key) => {\r\n result[key] = properties[key](item, index, params);\r\n return result;\r\n }, {...item}));\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from \"@angular/core\";\r\nimport {ObjectUtils} from \"../utils/object.utils\";\r\n\r\nexport function defaultFilter() {\r\n return true;\r\n}\r\n\r\n@Pipe({\r\n name: \"filter\"\r\n})\r\nexport class FilterPipe implements PipeTransform {\r\n transform(values: any, filter: any = defaultFilter, params: any = {}): any {\r\n const isObject = ObjectUtils.isObject(values);\r\n if (!isObject && !ObjectUtils.isArray(values)) return [];\r\n const filterFunc = ObjectUtils.isFunction(filter) ? filter : (value, key, params, values) => {\r\n const index = key;\r\n return ObjectUtils.evaluate(filter, {value, key, params, values, index});\r\n };\r\n if (isObject) {\r\n return Object.keys(values).filter(key => {\r\n return filterFunc(values[key], key, params, values);\r\n }).reduce((result, key) => {\r\n result[key] = values[key];\r\n return result;\r\n }, {})\r\n }\r\n return values.filter((value, key) => {\r\n return filterFunc(value, key, params, values);\r\n });\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from \"@angular/core\";\r\nimport {ObjectUtils} from \"../utils/object.utils\";\r\n\r\nexport function defaultFilter() {\r\n return true;\r\n}\r\n\r\n@Pipe({\r\n name: \"find\"\r\n})\r\nexport class FindPipe implements PipeTransform {\r\n transform(values: any[], filter: any = defaultFilter, params?: any): any {\r\n if (!ObjectUtils.isArray(values)) return [];\r\n params = params || {};\r\n if (ObjectUtils.isObject(params)) {\r\n params.values = values;\r\n }\r\n const filterFunc = ObjectUtils.isFunction(filter) ? filter : (value, index, params, values) => {\r\n return ObjectUtils.evaluate(filter, {value, index, params, values});\r\n };\r\n return values.find((value, index) => filterFunc(value, index, params, values));\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from \"@angular/core\";\r\nimport {FormatterService} from \"../services/formatter.service\";\r\n\r\n@Pipe({\r\n name: \"formatNumber\"\r\n})\r\nexport class FormatNumberPipe implements PipeTransform {\r\n\r\n constructor(private formatter: FormatterService) {\r\n }\r\n\r\n transform(value: number, format?: string, precision?: number, divider?: number): string {\r\n return this.formatter.formatNumber(value, format, precision, divider);\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from \"@angular/core\";\r\nimport {ObjectUtils} from \"../utils/object.utils\";\r\n\r\n@Pipe({\r\n name: \"getOffset\"\r\n})\r\nexport class GetOffsetPipe implements PipeTransform {\r\n transform(value: any, offset: any): any {\r\n return value ? (ObjectUtils.isNullOrUndefined(offset) ? value : value[offset]) : null;\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from \"@angular/core\";\r\n\r\n@Pipe({\r\n name: \"getType\"\r\n})\r\nexport class GetTypePipe implements PipeTransform {\r\n transform(value: any): any {\r\n return typeof value;\r\n }\r\n}\r\n","import {Inject, OnDestroy, OnInit, Pipe, PipeTransform, TemplateRef} from \"@angular/core\";\r\nimport {Subscription} from \"rxjs\";\r\nimport {GLOBAL_TEMPLATES, IGlobalTemplates} from \"../common-types\";\r\n\r\n@Pipe({\r\n pure: false,\r\n name: \"globalTemplate\"\r\n})\r\nexport class GlobalTemplatePipe implements PipeTransform, OnInit, OnDestroy {\r\n\r\n protected templatesUpdated: Subscription;\r\n\r\n protected cachedTemplateId: string;\r\n protected cachedTemplate: TemplateRef<any>;\r\n\r\n constructor(@Inject(GLOBAL_TEMPLATES) protected globalTemplates: IGlobalTemplates) {\r\n this.cachedTemplateId = null;\r\n this.cachedTemplate = null;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.templatesUpdated = this.globalTemplates.templatesUpdated.subscribe(() => {\r\n this.cachedTemplate = null;\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.templatesUpdated)\r\n this.templatesUpdated.unsubscribe();\r\n }\r\n\r\n transform(templateId: string, component?: any): TemplateRef<string> {\r\n if (!templateId) return null;\r\n if (this.cachedTemplate === null || this.cachedTemplateId !== templateId) {\r\n this.cachedTemplateId = templateId;\r\n this.cachedTemplate = this.globalTemplates.get(templateId, component);\r\n }\r\n return this.cachedTemplate;\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from \"@angular/core\";\r\nimport {IGroupMap} from \"../common-types\";\r\nimport {ObjectUtils} from \"../utils/object.utils\";\r\n\r\n@Pipe({\r\n name: \"groupBy\"\r\n})\r\nexport class GroupByPipe implements PipeTransform {\r\n\r\n transform(records: any[], column: string, map: IGroupMap = null): any {\r\n const groups = (records || []).reduce((result: any, item: any) => {\r\n const key = ObjectUtils.getValue(item, column) || \"\";\r\n const col = map ? (map[key] || \"\") : key;\r\n const group: any[] = result[col] || [];\r\n group.push(item);\r\n result[col] = group;\r\n return result;\r\n }, {});\r\n return Object.keys(groups).map(key => {\r\n return {group: key, items: groups[key]};\r\n });\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from \"@angular/core\";\r\n\r\n@Pipe({\r\n name: \"isType\"\r\n})\r\nexport class IsTypePipe implements PipeTransform {\r\n transform(value: any, type: string): any {\r\n return (typeof value) === type;\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from \"@angular/core\";\r\nimport {ObjectUtils} from \"../utils/object.utils\";\r\n\r\n@Pipe({\r\n name: \"join\"\r\n})\r\nexport class JoinPipe implements PipeTransform {\r\n\r\n transform(value: any, separator: string = \", \"): string {\r\n return (ObjectUtils.isArray(value))\r\n ? value.join(separator)\r\n : \"\";\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from \"@angular/core\";\r\nimport {ObjectUtils} from \"../utils/object.utils\";\r\n\r\nconst emptyKeys: any[] = [];\r\n\r\n@Pipe({\r\n name: \"keys\"\r\n})\r\nexport class KeysPipe implements PipeTransform {\r\n\r\n transform(value: any): any[] {\r\n if (!value) return emptyKeys;\r\n return ObjectUtils.isArray(value)\r\n ? Array.from(value.keys())\r\n : Object.keys(value);\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from \"@angular/core\";\r\nimport {ObjectUtils} from \"../utils/object.utils\";\r\n\r\nexport function defaultMapper(item) {\r\n return item;\r\n}\r\n\r\n@Pipe({\r\n name: \"map\"\r\n})\r\nexport class MapPipe implements PipeTransform {\r\n transform(values: any[], mapper: any = defaultMapper, params: any = {}): any[] {\r\n if (!ObjectUtils.isArray(values)) return [];\r\n const mapperFunc = ObjectUtils.isFunction(mapper) ? mapper : (value, index, params) => {\r\n return ObjectUtils.evaluate(mapper, {\r\n value: value,\r\n index: index,\r\n params: params\r\n });\r\n };\r\n return values.map((value, index) => mapperFunc(value, index, params));\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from \"@angular/core\";\r\nimport {ObjectUtils} from \"../utils/object.utils\";\r\nimport {ArrayUtils} from \"../utils/array.utils\";\r\n\r\n@Pipe({\r\n name: \"max\"\r\n})\r\nexport class MaxPipe implements PipeTransform {\r\n transform(value: any[], selector: any = null, params: any = {}): number {\r\n selector = selector || (item => <number>item);\r\n const maxSelector: Function = ObjectUtils.isFunction(value) ? value : (item, index, params) => {\r\n return ObjectUtils.evaluate(selector, {\r\n item: item,\r\n index: index,\r\n params: params\r\n });\r\n };\r\n return ArrayUtils.max(value, (item, index) => maxSelector(item, index, params));\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from \"@angular/core\";\r\nimport {ObjectUtils} from \"../utils/object.utils\";\r\nimport {ArrayUtils} from \"../utils/array.utils\";\r\n\r\n@Pipe({\r\n name: \"min\"\r\n})\r\nexport class MinPipe implements PipeTransform {\r\n transform(value: any, selector: any = null, params: any = {}): number {\r\n selector = selector || (item => <number>item);\r\n const minSelector: Function = ObjectUtils.isFunction(value) ? value : (item, index, params) => {\r\n return ObjectUtils.evaluate(selector, {\r\n item: item,\r\n index: index,\r\n params: params\r\n });\r\n };\r\n return ArrayUtils.min(value, (item, index) => minSelector(item, index, params));\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from \"@angular/core\";\r\n\r\n@Pipe({\r\n name: \"pop\"\r\n})\r\nexport class PopPipe implements PipeTransform {\r\n\r\n transform(value: any[]): any {\r\n return !Array.isArray(value) ? null : Array.from(value).pop();\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from \"@angular/core\";\r\nimport {ObjectUtils} from \"../utils/object.utils\";\r\n\r\nexport function defaultReducer(result) {\r\n return result;\r\n}\r\n\r\n@Pipe({\r\n name: \"reduce\"\r\n})\r\nexport class ReducePipe implements PipeTransform {\r\n transform(values: any[], source: any, reducer: any = defaultReducer, params: any = {}): any {\r\n if (!ObjectUtils.isArray(values)) return [];\r\n const mapperFunc = ObjectUtils.isFunction(reducer) ? reducer : (result, value, index, params) => {\r\n return ObjectUtils.evaluate(reducer, {\r\n result: result,\r\n value: value,\r\n index: index,\r\n params: params\r\n });\r\n };\r\n return values.reduce((result, value, index) => mapperFunc(result, value, index, params), source);\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from \"@angular/core\";\r\nimport {ObjectUtils} from \"../utils/object.utils\";\r\n\r\nconst empty: any = {};\r\n\r\n@Pipe({\r\n name: \"remap\"\r\n})\r\nexport class RemapPipe implements PipeTransform {\r\n\r\n transform(map: any, source: any, defaultValue: string = \"key\"): any {\r\n if (!map) return empty;\r\n if (!source) return map;\r\n const remapped = ObjectUtils.filter({map: ObjectUtils.copy(map)}, (value, key, target) => {\r\n if (ObjectUtils.isArray(value) && value.every(ObjectUtils.isString)) {\r\n target[key] = value.reduce((result, k) => {\r\n result[k] = ObjectUtils.getValue(source, k, ObjectUtils.evaluate(defaultValue, {key: k, map: map, source: source}));\r\n return result;\r\n }, {});\r\n return false;\r\n }\r\n return true;\r\n });\r\n return remapped.map;\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from \"@angular/core\";\r\nimport {ObjectUtils} from \"../utils/object.utils\";\r\n\r\n@Pipe({\r\n name: \"replace\"\r\n})\r\nexport class ReplacePipe implements PipeTransform {\r\n transform(value: string, from: string | RegExp, to: string): string {\r\n return ObjectUtils.isDefined(value) ? `${value}`.replace(from, to) : ``;\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from \"@angular/core\";\r\nimport {ObjectUtils} from \"../utils/object.utils\";\r\n\r\nconst emptyArray: any[] = [];\r\n\r\n@Pipe({\r\n name: \"reverse\"\r\n})\r\nexport class ReversePipe implements PipeTransform {\r\n\r\n transform(value: any[]): any[] {\r\n if (!ObjectUtils.isArray(value)) return emptyArray;\r\n const result = [];\r\n for (let i = value.length - 1; i >= 0; i--) {\r\n result.push(value[i]);\r\n }\r\n return result;\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from \"@angular/core\";\r\nimport {FormatterService} from \"../services/formatter.service\";\r\n\r\n@Pipe({\r\n name: \"round\"\r\n})\r\nexport class RoundPipe implements PipeTransform {\r\n\r\n constructor(private formatter: FormatterService) {\r\n }\r\n\r\n transform(value: number, precision: number = 2, divider: number = 1): number {\r\n return this.formatter.roundNumber(value, precision, divider);\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from \"@angular/core\";\r\nimport {DomSanitizer, SafeHtml} from \"@angular/platform-browser\";\r\n\r\n@Pipe({\r\n name: \"safe\"\r\n})\r\nexport class SafeHtmlPipe implements PipeTransform {\r\n\r\n constructor(private sanitizer: DomSanitizer) {\r\n\r\n }\r\n\r\n transform(value: string, type: string = \"html\"): SafeHtml {\r\n switch (type) {\r\n case \"html\":\r\n return this.sanitizer.bypassSecurityTrustHtml(value);\r\n case \"style\":\r\n return this.sanitizer.bypassSecurityTrustStyle(value);\r\n case \"script\":\r\n return this.sanitizer.bypassSecurityTrustScript(value);\r\n case \"url\":\r\n return this.sanitizer.bypassSecurityTrustUrl(value);\r\n case \"resourceUrl\":\r\n return this.sanitizer.bypassSecurityTrustResourceUrl(value);\r\n default:\r\n throw new Error(`SafePipe unable to bypass security for invalid type: ${type}`);\r\n }\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from \"@angular/core\";\r\n\r\n@Pipe({\r\n name: \"shift\"\r\n})\r\nexport class ShiftPipe implements PipeTransform {\r\n\r\n transform(value: any[]): any {\r\n return !Array.isArray(value) ? null : Array.from(value).shift();\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from \"@angular/core\";\r\n\r\n@Pipe({\r\n name: \"split\"\r\n})\r\nexport class SplitPipe implements PipeTransform {\r\n\r\n transform(value: any, separator: string = \".\"): any[] {\r\n return `${value}`.split(separator);\r\n }\r\n}\r\n","import {ChangeDetectorRef, Inject, Injectable, Pipe, PipeTransform} from \"@angular/core\";\r\nimport {ILanguageService, LANGUAGE_SERVICE, TranslationQuery} from \"../common-types\";\r\nimport {ObjectUtils} from \"../utils/object.utils\";\r\n\r\n@Injectable()\r\n@Pipe({\r\n name: \"translate\",\r\n pure: false\r\n})\r\nexport class TranslatePipe implements PipeTransform {\r\n\r\n private lang: string;\r\n private disabled: boolean;\r\n private query: TranslationQuery;\r\n private args: any[];\r\n private params: any;\r\n private lastValue: string;\r\n\r\n get currentLang(): string {\r\n return this.language.currentLanguage\r\n }\r\n\r\n constructor(readonly cdr: ChangeDetectorRef, @Inject(LANGUAGE_SERVICE) readonly language: ILanguageService) {\r\n\r\n }\r\n\r\n transform(query: TranslationQuery, ...args: any[]): string {\r\n if (!query) return \"\";\r\n let dirty = false;\r\n const lang = this.currentLang;\r\n if (this.lang !== lang) {\r\n this.lang = lang;\r\n dirty = true;\r\n }\r\n const disabled = this.language.disableTranslations;\r\n if (this.disabled !== disabled) {\r\n this.disabled = disabled;\r\n dirty = true;\r\n }\r\n if (!ObjectUtils.equals(this.query, query)) {\r\n this.query = query;\r\n dirty = true;\r\n }\r\n if (!ObjectUtils.equals(this.args, args)) {\r\n this.args = args;\r\n this.params = null;\r\n if (ObjectUtils.isDefined(args[0]) && args.length) {\r\n if (typeof args[0] === \"string\" && args[0].length) {\r\n const validArgs: string = args[0]\r\n .replace(/(\\')?([a-zA-Z0-9_]+)(\\')?(\\s)?:/g, `\"$2\":`)\r\n .replace(/:(\\s)?(\\')(.*?)(\\')/g, `:\"$3\"`);\r\n try {\r\n this.params = JSON.parse(validArgs);\r\n } catch (e) {\r\n throw new SyntaxError(`Wrong parameter in TranslatePipe. Expected a valid Object, received: ${args[0]}`);\r\n }\r\n } else if (typeof args[0] === \"object\" && !Array.isArray(args[0])) {\r\n this.params = args[0];\r\n }\r\n }\r\n dirty = true;\r\n }\r\n if (dirty) {\r\n if (typeof query === \"object\") {\r\n this.lastValue = Array.isArray(query) ? this.language.getTranslationFromArray(query, this.params, lang) : this.language.getTranslationFromObject(query, this.params, lang);\r\n return this.lastValue;\r\n }\r\n if (this.disabled) {\r\n this.lastValue = query;\r\n return this.lastValue;\r\n }\r\n this.language.getTranslation(query, this.params).then(value => {\r\n this.lastValue = value;\r\n if (!this.cdr[\"destroyed\"]) {\r\n this.cdr.detectChanges();\r\n }\r\n });\r\n }\r\n return this.lastValue;\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from \"@angular/core\";\r\nimport {ObjectUtils} from \"../utils/object.utils\";\r\n\r\nconst emptyValues: any[] = [];\r\n\r\n@Pipe({\r\n name: \"values\"\r\n})\r\nexport class ValuesPipe implements PipeTransform {\r\n\r\n transform(value: any): any[] {\r\n if (!value) return emptyValues;\r\n return ObjectUtils.isArray(value)\r\n ? value\r\n : Object.keys(value).map(key => value[key]);\r\n }\r\n}\r\n","import {Directive, EventEmitter, HostBinding, HostListener, Inject, Input, Output} from \"@angular/core\";\r\nimport {AsyncMethod, IAsyncMessage, IToasterService, TOASTER_SERVICE} from \"../common-types\";\r\n\r\n@Directive({\r\n selector: \"[_abstract_asyncMethodBase]\"\r\n})\r\nexport class AsyncMethodBase {\r\n\r\n @Input() disabled: boolean;\r\n @Input() context: any;\r\n\r\n @Output() onSuccess: EventEmitter<IAsyncMessage>;\r\n @Output() onError: EventEmitter<IAsyncMessage>;\r\n\r\n protected loading: boolean;\r\n\r\n @HostBinding(\"class.disabled\")\r\n get isDisabled(): boolean {\r\n return this.disabled;\r\n }\r\n\r\n @HostBinding(\"class.loading\")\r\n get isLoading(): boolean {\r\n return this.loading;\r\n }\r\n\r\n constructor(@Inject(TOASTER_SERVICE) readonly toaster: IToasterService) {\r\n this.onSuccess = new EventEmitter<IAsyncMessage>();\r\n this.onError = new EventEmitter<IAsyncMessage>();\r\n }\r\n\r\n protected getMethod(): AsyncMethod {\r\n return null;\r\n }\r\n\r\n @HostListener(\"click\")\r\n click(): void {\r\n if (this.disabled) return;\r\n this.callMethod();\r\n }\r\n\r\n callMethod(): boolean {\r\n if (this.loading) return true;\r\n this.loading = true;\r\n const method = this.getMethod();\r\n const result = !method ? null : method(this.context);\r\n if (!(result instanceof Promise)) {\r\n this.loading = false;\r\n return false;\r\n }\r\n result.then(result => {\r\n this.loading = false;\r\n if (result) {\r\n this.onSuccess.emit(result);\r\n this.toaster.success(result.message, result.context);\r\n }\r\n }, reason => {\r\n if (!reason || !reason.message)\r\n throw new Error(\"Reason must implement IAsyncMessage interface\");\r\n this.loading = false;\r\n this.onError.emit(reason);\r\n this.toaster.error(reason.message, reason.context);\r\n });\r\n return true;\r\n }\r\n}\r\n","import {Directive, Input} from \"@angular/core\";\r\nimport {AsyncMethod} from \"../common-types\";\r\nimport {AsyncMethodBase} from \"./async-method.base\";\r\n\r\n@Directive({\r\n selector: \"[async-method]\",\r\n exportAs: \"async-method\"\r\n})\r\nexport class AsyncMethodDirective extends AsyncMethodBase {\r\n\r\n @Input(\"async-method\") method: AsyncMethod;\r\n\r\n protected getMethod(): AsyncMethod {\r\n return this.method;\r\n }\r\n}\r\n","import {Directive, ElementRef, Input, OnChanges, Renderer2, SimpleChanges} from \"@angular/core\";\r\nimport {HttpClient} from \"@angular/common/http\";\r\nimport {FileUtils} from \"../utils/file.utils\";\r\nimport {UniversalService} from \"../services/universal.service\";\r\n\r\nconst defaultClass = \"default-image\";\r\nconst loadingClass = \"loading-image\";\r\n\r\n@Directive({\r\n selector: \"[background]\"\r\n})\r\nexport class BackgroundDirective implements OnChanges {\r\n\r\n @Input() background: string;\r\n @Input() backgroundSize: string;\r\n\r\n constructor(private http: HttpClient, private element: ElementRef, private renderer: Renderer2, private universal: UniversalService) {\r\n\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.universal.isServer) {\r\n this.setBackground(this.background);\r\n return;\r\n }\r\n this.renderer.removeClass(this.element.nativeElement, defaultClass);\r\n this.renderer.addClass(this.element.nativeElement, loadingClass);\r\n FileUtils.readDataFromUrl(this.http, this.background).then(url => {\r\n this.setBackground(url);\r\n }, () => {\r\n this.renderer.removeClass(this.element.nativeElement, loadingClass);\r\n this.renderer.addClass(this.element.nativeElement, defaultClass);\r\n });\r\n }\r\n\r\n private setBackground(url: string): void {\r\n this.renderer.removeClass(this.element.nativeElement, loadingClass);\r\n this.renderer.setStyle(this.element.nativeElement, \"background-image\", `url('${url}')`);\r\n if (!this.backgroundSize) return;\r\n this.renderer.setStyle(this.element.nativeElement, \"background-size\", this.backgroundSize);\r\n }\r\n}\r\n","import {Directive, Input, TemplateRef} from \"@angular/core\";\r\nimport {ITableTemplate} from \"../common-types\";\r\n\r\n@Directive({\r\n selector: \"ng-template[column]\"\r\n})\r\n\r\nexport class DynamicTableTemplateDirective implements ITableTemplate {\r\n\r\n @Input() column: string | string[];\r\n @Input() pure: boolean;\r\n\r\n constructor(public ref: TemplateRef<any>) {\r\n }\r\n}\r\n","import {Directive, Inject, Input, OnDestroy, OnInit, TemplateRef} from \"@angular/core\";\r\nimport {GLOBAL_TEMPLATES, IGlobalTemplates} from \"../common-types\";\r\n\r\n@Directive({\r\n selector: \"[globalTemplate]\"\r\n})\r\nexport class GlobalTemplateDirective implements OnInit, OnDestroy {\r\n\r\n @Input(\"globalTemplate\") id: string;\r\n\r\n constructor(@Inject(GLOBAL_TEMPLATES) readonly globalTemplates: IGlobalTemplates,\r\n readonly template: TemplateRef<any>) {\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.globalTemplates.add(this.id, this.template);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.globalTemplates.remove(this.id);\r\n }\r\n}\r\n","import {\r\n Directive,\r\n ElementRef,\r\n EventEmitter,\r\n HostBinding,\r\n HostListener,\r\n Inject,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n Renderer2,\r\n SimpleChanges\r\n} from \"@angular/core\";\r\nimport {Subscription} from \"rxjs\";\r\nimport {ICON_SERVICE, IIconService} from \"../common-types\";\r\n\r\n@Directive({\r\n selector: \"[icon]\"\r\n})\r\nexport class IconDirective implements OnChanges, OnInit, OnDestroy {\r\n\r\n @Input() icon: string;\r\n @Input() activeIcon: string;\r\n @Input() active: boolean;\r\n @Output() activeChange: EventEmitter<boolean>;\r\n\r\n @HostBinding(\"class.active\")\r\n get isActive() {\r\n return this.active;\r\n }\r\n\r\n protected iconsLoaded: Subscription;\r\n\r\n constructor(private element: ElementRef, private renderer: Renderer2, @Inject(ICON_SERVICE) private icons: IIconService) {\r\n this.renderer.addClass(this.element.nativeElement, \"svg-icon\");\r\n this.activeChange = new EventEmitter<boolean>();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.iconsLoaded = this.icons.iconsLoaded.subscribe(() => this.changeIcon());\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.iconsLoaded)\r\n this.iconsLoaded.unsubscribe();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.icon) {\r\n this.renderer.removeClass(this.element.nativeElement, `svg-icon-${changes.icon.previousValue}`);\r\n this.renderer.addClass(this.element.nativeElement, `svg-icon-${changes.icon.currentValue}`);\r\n }\r\n this.changeIcon();\r\n }\r\n\r\n @HostListener(\"click\")\r\n click(): void {\r\n this.active = !this.active;\r\n this.activeChange.emit(this.active);\r\n this.changeIcon();\r\n }\r\n\r\n private changeIcon(): void {\r\n this.icons.getIcon(this.icon, this.activeIcon || `${this.icon}-active`, this.active).then(icon => {\r\n if (this.icons.isDisabled) return;\r\n this.element.nativeElement.innerHTML = icon;\r\n });\r\n }\r\n}\r\n","import {\r\n Directive, DoCheck,\r\n EmbeddedViewRef,\r\n Input,\r\n OnChanges,\r\n SimpleChange,\r\n SimpleChanges,\r\n TemplateRef,\r\n ViewContainerRef\r\n} from \"@angular/core\";\r\nimport {ObjectUtils} from \"../utils/object.utils\";\r\n\r\n@Directive({\r\n selector: \"[ngxTemplateOutlet]\"\r\n})\r\nexport class NgxTemplateOutletDirective implements OnChanges, DoCheck {\r\n\r\n private viewRef: EmbeddedViewRef<any>;\r\n\r\n @Input() public context: Object;\r\n @Input() public additionalContext: Object;\r\n @Input() public ngxTemplateOutlet: TemplateRef<any>;\r\n\r\n private static hasContextShapeChanged(ctxChange: SimpleChange): boolean {\r\n const prevCtxKeys = Object.keys(ctxChange.previousValue || {});\r\n const currCtxKeys = Object.keys(ctxChange.currentValue || {});\r\n\r\n if (prevCtxKeys.length === currCtxKeys.length) {\r\n for (const propName of currCtxKeys) {\r\n if (prevCtxKeys.indexOf(propName) === -1) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n constructor(private _viewContainerRef: ViewContainerRef) {}\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n const recreateView = this.shouldRecreateView(changes);\r\n if (recreateView) {\r\n if (this.viewRef)\r\n this._viewContainerRef.remove(this._viewContainerRef.indexOf(this.viewRef));\r\n if (this.ngxTemplateOutlet)\r\n this.viewRef = this._viewContainerRef.createEmbeddedView(this.ngxTemplateOutlet, {});\r\n }\r\n this.ngDoCheck();\r\n }\r\n\r\n ngDoCheck(): void {\r\n if (!this.viewRef) return;\r\n const context = this.viewRef.context;\r\n this.updateExistingContext(this.context, context);\r\n this.updateExistingContext(this.additionalContext, context);\r\n context.$implicit = context;\r\n }\r\n\r\n private shouldRecreateView(changes: SimpleChanges): boolean {\r\n const ctxChange = changes[\"context\"];\r\n const aCtxChange = changes[\"additionalContext\"];\r\n return !!changes[\"ngxTemplateOutlet\"]\r\n || (ctxChange && NgxTemplateOutletDirective.hasContextShapeChanged(ctxChange))\r\n || (aCtxChange && NgxTemplateOutletDirective.hasContextShapeChanged(aCtxChange));\r\n }\r\n\r\n private updateExistingContext(ctx: any, context: any): void {\r\n if (!ctx) return;\r\n let ctxProto = Object.getPrototypeOf(ctx);\r\n if (ctxProto == Object.prototype) {\r\n ctxProto = ctx;\r\n }\r\n const props = Object.getOwnPropertyNames(ctxProto);\r\n for (const propName of props) {\r\n const desc = Object.getOwnPropertyDescriptor(ctxProto, propName);\r\n // Copy if its a getter and it is not $implicit\r\n if (desc.get && propName !== \"$implicit\") {\r\n Object.defineProperty(context, propName, desc);\r\n continue;\r\n }\r\n const func: Function = ObjectUtils.isFunction(desc.value) ? desc.value.bind(ctx) : null;\r\n if (func && func !== ctxProto.constructor) {\r\n context[propName] = func;\r\n }\r\n }\r\n for (const propName of Object.keys(ctx)) {\r\n\r\n const desc = Object.getOwnPropertyDescriptor(ctxProto, propName);\r\n if (desc && desc.get && !desc.set) continue;\r\n context[propName] = ctx[propName];\r\n }\r\n }\r\n}\r\n","import {Directive, EventEmitter, Input, NgZone, OnChanges, Output, SimpleChanges} from \"@angular/core\";\r\nimport {IPaginationData, ITimer, PaginationDataLoader, PaginationItemContext} from \"../common-types\";\r\nimport {TimerUtils} from \"../utils/timer.utils\";\r\n\r\n@Directive({\r\n selector: \"[pagination]\",\r\n exportAs: \"pagination\"\r\n})\r\nexport class PaginationDirective implements OnChanges {\r\n\r\n get total(): number {\r\n return this.data ? this.data.total : 0;\r\n }\r\n\r\n get items(): any[] {\r\n return this.data ? this.data.items : [];\r\n }\r\n\r\n @Input(\"pagination\") loader: PaginationDataLoader;\r\n @Input() page: number;\r\n @Input() itemsPerPage: number;\r\n @Input() updateTime: number;\r\n @Input() waitFor: Promise<any>;\r\n\r\n @Output() pageChange: EventEmitter<number>;\r\n @Output() onRefresh: EventEmitter<PaginationDirective>;\r\n\r\n maxPage: number;\r\n\r\n private data: IPaginationData;\r\n private updateTimer: ITimer;\r\n\r\n constructor(private zone: NgZone) {\r\n this.pageChange = new EventEmitter<number>();\r\n this.onRefresh = new EventEmitter<PaginationDirective>();\r\n this.updateTimer = TimerUtils.createTimeout(() => this.loadData(), this.updateTime);\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (!changes.loader && !changes.itemsPerPage && !changes.page) return;\r\n this.page = isNaN(this.page) || this.page < 1 ? 1 : this.page;\r\n this.itemsPerPage = isNaN(this.itemsPerPage) || this.itemsPerPage < 1 ? 20 : this.itemsPerPage;\r\n this.updateTimer.time = isNaN(this.updateTime) || this.updateTime < 0 ? 100 : this.updateTime;\r\n this.waitFor = this.waitFor || Promise.resolve(true);\r\n this.refresh();\r\n }\r\n\r\n refresh(): void {\r\n this.waitFor.then(() => {\r\n this.updateTimer.run();\r\n });\r\n }\r\n\r\n paginate(page: number): void {\r\n this.page = page;\r\n this.pageChange.emit(page);\r\n this.refresh();\r\n }\r\n\r\n private loadData(): void {\r\n if (!this.loader) return;\r\n this.loader(this.page, this.itemsPerPage).then(data => {\r\n this.maxPage = !data || data.total <= 0 ? 1 : Math.floor((data.total - 1) / this.itemsPerPage) + 1;\r\n this.data = data;\r\n const baseIndex = (this.page - 1) * this.itemsPerPage;\r\n const items = (data.items || []);\r\n data.items = items.map((item, index) => {\r\n const ix = baseIndex + index;\r\n return item instanceof PaginationItemContext\r\n ? item\r\n : new PaginationItemContext(item, items, items.length, index, ix);\r\n });\r\n if (this.page > this.maxPage) {\r\n this.paginate(this.maxPage);\r\n return;\r\n }\r\n this.zone.run(() => this.onRefresh.emit(this));\r\n });\r\n }\r\n}\r\n","import {Directive, OnDestroy, OnInit, TemplateRef, ViewContainerRef} from \"@angular/core\";\r\nimport {Subscription} from \"rxjs\";\r\nimport {PaginationDirective} from \"./pagination.directive\";\r\n\r\n@Directive({\r\n selector: \"[paginationItem]\"\r\n})\r\nexport class PaginationItemDirective implements OnInit, OnDestroy {\r\n\r\n private onRefresh: Subscription;\r\n\r\n constructor(private pagination: PaginationDirective, private viewContainer: ViewContainerRef, private templateRef: TemplateRef<any>) {\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.onRefresh = this.pagination.onRefresh.subscribe(() => this.renderView());\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.onRefresh.unsubscribe();\r\n }\r\n\r\n private renderView(): void {\r\n this.viewContainer.clear();\r\n this.pagination.items.forEach((item: any) => {\r\n item.$implicit = item;\r\n this.viewContainer.createEmbeddedView(this.templateRef, item);\r\n });\r\n }\r\n}\r\n","import {Directive, ViewContainerRef, TemplateRef, Input} from \"@angular/core\";\r\nimport {HttpClient} from \"@angular/common/http\";\r\nimport {ResourceIfContext} from \"../common-types\";\r\nimport {FileUtils} from \"../utils/file.utils\";\r\nimport {UniversalService} from \"../services/universal.service\";\r\n\r\n@Directive({\r\n selector: \"[resourceIf]\",\r\n exportAs: \"resourceIf\"\r\n})\r\nexport class ResourceIfDirective {\r\n\r\n private context: ResourceIfContext;\r\n private resource: string;\r\n\r\n @Input()\r\n set resourceIf(resource: string) {\r\n this.resource = resource;\r\n this.renderView();\r\n }\r\n\r\n get resourceIf(): string {\r\n return this.resource;\r\n }\r\n\r\n get url(): string {\r\n return this.context.url;\r\n }\r\n\r\n constructor(private http: HttpClient, private viewContainer: ViewContainerRef, private templateRef: TemplateRef<any>, private universal: UniversalService) {\r\n this.context = new ResourceIfContext();\r\n }\r\n\r\n private renderView(): void {\r\n this.context = new ResourceIfContext();\r\n this.context.resource = this.resource;\r\n this.viewContainer.clear();\r\n if (this.universal.isBrowser && this.resource) {\r\n FileUtils.readDataFromUrl(this.http, this.resource).then(url => {\r\n this.context.url = url;\r\n this.viewContainer.createEmbeddedView(this.templateRef, this.context);\r\n }, console.log);\r\n }\r\n }\r\n}\r\n","import {ChangeDetectorRef, Directive, ElementRef, HostBinding, HostListener, OnDestroy, OnInit} from \"@angular/core\";\r\nimport {Subscription} from \"rxjs\";\r\nimport {ITimer} from \"../common-types\";\r\nimport {TimerUtils} from \"../utils/timer.utils\";\r\nimport {EventsService} from \"../services/events.service\";\r\n\r\n@Directive({\r\n selector: \"[sticky]\"\r\n})\r\nexport class StickyDirective implements OnInit, OnDestroy {\r\n\r\n @HostBinding(\"class.sticky\") isSticky: boolean;\r\n @HostBinding(\"class.sticky-update\") isUpdating: boolean;\r\n parentElement: HTMLElement;\r\n\r\n private updateTimer: ITimer;\r\n private eventForwarded: Subscription;\r\n\r\n constructor(private cdr: ChangeDetectorRef, private events: EventsService, private element: ElementRef) {\r\n this.parentElement = this.element.nativeElement.parentElement;\r\n this.updateTimer = TimerUtils.createTimeout(() => {\r\n this.isUpdating = false;\r\n this.cdr.detectChanges();\r\n this.events.updateSticky(this.isSticky);\r\n }, 10);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.eventForwarded = this.events.eventForwarded.subscribe((e: Event) => {\r\n if (e && e.type === \"scroll\") this.updateSticky();\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.eventForwarded.unsubscribe();\r\n }\r\n\r\n @HostListener(\"window:resize\")\r\n @HostListener(\"window:scroll\")\r\n updateSticky(): void {\r\n const distanceToTop = this.parentElement.getBoundingClientRect().top;\r\n this.isSticky = distanceToTop < 1;\r\n this.isUpdating = true;\r\n this.cdr.detectChanges();\r\n this.updateTimer.run();\r\n }\r\n}\r\n","import {Directive, ElementRef, Input, OnDestroy, OnInit, Renderer2} from \"@angular/core\";\r\nimport {Subscription} from \"rxjs\";\r\nimport {EventsService} from \"../services/events.service\";\r\n\r\n@Directive({\r\n selector: \"[stickyClass]\"\r\n})\r\nexport class StickyClassDirective implements OnInit, OnDestroy {\r\n\r\n @Input() stickyClass: string;\r\n\r\n private stickyUpdated: Subscription;\r\n\r\n constructor(private events: EventsService, private element: ElementRef, private renderer: Renderer2) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.stickyUpdated = this.events.stickyUpdated.subscribe(() => {\r\n if (this.events.isSticky) {\r\n this.renderer.addClass(this.element.nativeElement, this.stickyClass || \"sticky-sibling\");\r\n return;\r\n }\r\n this.renderer.removeClass(this.element.nativeElement, this.stickyClass || \"sticky-sibling\");\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.stickyUpdated.unsubscribe();\r\n }\r\n}\r\n","import {Directive, ElementRef, Input, OnChanges, Renderer2, SimpleChanges, ViewContainerRef} from \"@angular/core\";\r\nimport {UnorderedListStyle, UnorderedListTemplates, UnorederedListTemplate} from \"../common-types\";\r\nimport {ObjectUtils} from \"../utils/object.utils\";\r\nimport {StringUtils} from \"../utils/string.utils\";\r\n\r\n@Directive({\r\n selector: \"[unorderedListItem]\"\r\n})\r\nexport class UnorderedListItemDirective implements OnChanges {\r\n\r\n @Input(\"unorderedListItem\") item: any;\r\n @Input() type: string;\r\n @Input() data: any;\r\n @Input() keyPrefix: string;\r\n @Input() listStyle: UnorderedListStyle;\r\n @Input() path: string;\r\n @Input() level: number;\r\n @Input() templates: UnorederedListTemplate[];\r\n @Input() defaultTemplates: UnorderedListTemplates;\r\n\r\n isArray: boolean;\r\n isObject: boolean;\r\n valueIsArray: boolean;\r\n valueIsObject: boolean;\r\n valueType: string;\r\n\r\n get elem(): HTMLElement {\r\n return this.elementRef.nativeElement;\r\n }\r\n\r\n constructor(private elementRef: ElementRef, private renderer: Renderer2, private viewContainer: ViewContainerRef) {\r\n\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (!this.templates || !this.defaultTemplates || !this.item) return;\r\n const promise = this.item.value instanceof Promise ? this.item.value : Promise.resolve(this.item.value);\r\n promise.then(value => {\r\n this.item.value = value;\r\n this.path = ObjectUtils.isNullOrUndefined(this.path) ? \"\" : this.path.toString();\r\n this.isArray = ObjectUtils.isArray(this.data);\r\n this.isObject = ObjectUtils.isObject(this.data);\r\n this.valueIsArray = ObjectUtils.isArray(this.item.value);\r\n this.valueIsObject = ObjectUtils.isObject(this.item.value);\r\n this.valueType = ObjectUtils.getType(this.item.value);\r\n const context: any = this;\r\n const template = this.templates.find(t => t.type == this.type && ObjectUtils.evaluate(t.selector, context)) || this.defaultTemplates[this.type];\r\n // Set view\r\n this.viewContainer.clear();\r\n this.viewContainer.createEmbeddedView(template, context);\r\n // Set classes\r\n if (this.type !== \"item\") return;\r\n this.item.classList = [];\r\n this.isClass(\"is-array\", this.valueIsArray);\r\n this.isClass(\"is-object\", this.valueIsObject);\r\n this.isClass(\"is-value\", !this.valueIsObject && !this.valueIsArray);\r\n this.isClass(`type-${this.valueType}`);\r\n this.isClass(`path-${this.path.replace(/\\./g, \"-\")}`);\r\n this.isClass(`key-${this.item.key}`);\r\n }, reason => {\r\n console.log(\"Can't handle promise rejection\", reason);\r\n });\r\n }\r\n\r\n private isClass(className: string, value: boolean = true): void {\r\n if (!value) return;\r\n this.item.classList.push(className);\r\n }\r\n}\r\n","import {Directive, ElementRef, EmbeddedViewRef, Input, TemplateRef} from \"@angular/core\";\r\nimport {UnorederedListTemplate} from \"../common-types\";\r\n\r\n@Directive({\r\n selector: \"ng-template[type][selector]\"\r\n})\r\n\r\nexport class UnorderedListTemplateDirective extends UnorederedListTemplate {\r\n\r\n @Input() type: string;\r\n @Input() selector: string;\r\n\r\n constructor(public elementRef: ElementRef, public templateRef: TemplateRef<any>) {\r\n super();\r\n }\r\n\r\n createEmbeddedView(context: any): EmbeddedViewRef<any> {\r\n return this.templateRef.createEmbeddedView(context);\r\n }\r\n}\r\n","import {\r\n AfterContentInit,\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChildren,\r\n Input,\r\n OnChanges,\r\n QueryList,\r\n SimpleChanges, TemplateRef, ViewChild\r\n} from \"@angular/core\";\r\nimport {UnorderedListStyle, UnorderedListTemplates, UnorederedListTemplate} from \"../../common-types\";\r\nimport {ObjectUtils} from \"../../utils/object.utils\";\r\nimport {UnorderedListTemplateDirective} from \"../../directives/unordered-list-template.directive\";\r\n\r\n@Component({\r\n selector: \"unordered-list\",\r\n templateUrl: \"./unordered-list.component.html\"\r\n})\r\nexport class UnorderedListComponent implements OnChanges, AfterContentInit, AfterViewInit {\r\n\r\n @Input() data: any;\r\n @Input() keyPrefix: string;\r\n @Input() listStyle: UnorderedListStyle;\r\n @Input() path: string;\r\n @Input() level: number;\r\n @Input() templates: UnorederedListTemplate[];\r\n\r\n isArray: boolean;\r\n isObject: boolean;\r\n defaultTemplates: UnorderedListTemplates;\r\n\r\n @ContentChildren(UnorderedListTemplateDirective)\r\n private templateDirectives: QueryList<UnorderedListTemplateDirective>;\r\n\r\n @ViewChild(\"defaultKeyTemplate\")\r\n private defaultKeyTemplate: TemplateRef<any>;\r\n @ViewChild(\"defaultValueTemplate\")\r\n private defaultValueTemplate: TemplateRef<any>;\r\n @ViewChild(\"defaultItemTemplate\")\r\n private defaultItemTemplate: TemplateRef<any>;\r\n\r\n constructor(private cdr: ChangeDetectorRef) {\r\n this.keyPrefix = \"\";\r\n this.listStyle = \"table\";\r\n this.path = \"\";\r\n this.level = 0;\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.isArray = ObjectUtils.isArray(this.data);\r\n this.isObject = ObjectUtils.isObject(this.data);\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n const templates = this.templateDirectives.toArray();\r\n this.templates = this.templates ? this.templates.concat(templates) : templates;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.defaultTemplates = {\r\n key: this.defaultKeyTemplate,\r\n value: this.defaultValueTemplate,\r\n item: this.defaultItemTemplate\r\n };\r\n this.cdr.detectChanges();\r\n }\r\n}\r\n","import {\r\n AfterContentInit, AfterViewInit,\r\n Component,\r\n ContentChild,\r\n ContentChildren,\r\n Input,\r\n OnChanges,\r\n QueryList,\r\n SimpleChanges,\r\n TemplateRef,\r\n ViewChild\r\n} from \"@angular/core\";\r\nimport {\r\n IPaginationData,\r\n ITableColumns,\r\n ITableTemplates,\r\n PaginationItemContext,\r\n TableDataLoader\r\n} from \"../../common-types\";\r\nimport {ObjectUtils} from \"../../utils/object.utils\";\r\nimport {DynamicTableTemplateDirective} from \"../../directives/dynamic-table-template.directive\";\r\nimport {PaginationDirective} from \"../../directives/pagination.directive\";\r\nimport {UniqueUtils} from \"../../utils/unique.utils\";\r\n\r\n@Component({\r\n selector: \"dynamic-table\",\r\n templateUrl: \"./dynamic-table.component.html\",\r\n})\r\nexport class DynamicTableComponent implements AfterContentInit, AfterViewInit, OnChanges {\r\n\r\n @Input() label: string;\r\n @Input() placeholder: string;\r\n @Input() dataLoader: TableDataLoader;\r\n @Input() data: any[];\r\n @Input() parallelData: any[];\r\n @Input() columns: ITableColumns | string[];\r\n @Input() showFilter: boolean;\r\n @Input() itemsPerPage: number;\r\n @Input() updateTime: number;\r\n @Input() maxPages: number;\r\n @Input() directionLinks: boolean;\r\n @Input() boundaryLinks: boolean;\r\n @Input() orderBy: string;\r\n @Input() orderDescending: boolean;\r\n\r\n tableId: string;\r\n templates: ITableTemplates;\r\n filter: string;\r\n orders: ITableColumns;\r\n cols: string[];\r\n\r\n get items(): any[] {\r\n return !this.pagination ? [] : this.pagination.items;\r\n }\r\n\r\n @ContentChild(\"rowTemplate\", {static: true})\r\n rowTemplate: TemplateRef<any>;\r\n\r\n @ContentChild(\"wrapperTemplate\", {static: true})\r\n wrapperTemplate: TemplateRef<any>;\r\n\r\n @ContentChild(\"filterTemplate\", {static: true})\r\n filterTemplate: TemplateRef<any>;\r\n\r\n @ViewChild(\"columnsTemplate\", {static: true})\r\n columnsTemplate: TemplateRef<any>;\r\n\r\n @ViewChild(\"defaultRowTemplate\", {static: true})\r\n defaultRowTemplate: TemplateRef<any>;\r\n\r\n @ViewChild(\"defaultWrapperTemplate\", {static: true})\r\n defaultWrapperTemplate: TemplateRef<any>;\r\n\r\n @ViewChild(\"defaultFilterTemplate\", {static: true})\r\n defaultFilterTemplate: TemplateRef<any>;\r\n\r\n @ViewChild(\"pagination\")\r\n private pagination: PaginationDirective;\r\n\r\n @ContentChildren(DynamicTableTemplateDirective)\r\n private templateDirectives: QueryList<DynamicTableTemplateDirective>;\r\n\r\n private static compare(orderBy: string, a: PaginationItemContext, b: PaginationItemContext): number {\r\n a = a.item ? a.item[orderBy] : null;\r\n b = b.item ? b.item[orderBy] : null;\r\n return ObjectUtils.compare(a, b);\r\n }\r\n\r\n constructor() {\r\n this.dataLoader = this.loadLocalData;\r\n this.placeholder = \"\";\r\n this.tableId = UniqueUtils.uuid();\r\n this.templates = {};\r\n this.filter = \"\";\r\n this.orders = {};\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n this.templates = this.templateDirectives.reduce((result, directive) => {\r\n if (ObjectUtils.isArray(directive.column)) {\r\n directive.column.forEach(column => {\r\n result[column] = directive;\r\n });\r\n return result;\r\n }\r\n if (!ObjectUtils.isString(directive.column) || directive.column.length == 0) return result;\r\n result[directive.column] = directive;\r\n return result;\r\n }, {});\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.rowTemplate = this.rowTemplate || this.defaultRowTemplate;\r\n this.filterTemplate = this.filterTemplate || this.defaultFilterTemplate;\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.columns) {\r\n const columns = changes.columns.currentValue || [];\r\n this.orders = ObjectUtils.isArray(columns) ? columns.reduce((result, column) => {\r\n result[column] = column;\r\n return result;\r\n }, {}) : columns;\r\n this.cols = Object.keys(this.orders);\r\n this.orderBy = this.orderBy in this.orders ? this.orderBy : this.columns[0];\r\n }\r\n if (changes.orderBy && this.orders) {\r\n this.orderBy = this.orderBy in this.orders ? this.orderBy : this.columns[0];\r\n }\r\n if (!changes.data && !changes.parallelData && !changes.itemsPerPage && !changes.orderBy && !changes.orderDescending) return;\r\n this.refresh();\r\n }\r\n\r\n refresh(): void {\r\n if (!this.pagination) return;\r\n this.pagination.refresh();\r\n }\r\n\r\n setFilter(filter: string): void {\r\n this.filter = filter;\r\n this.refresh();\r\n }\r\n\r\n setOrder(column: string): void {\r\n this.orderDescending = column == this.orderBy && !this.orderDescending;\r\n this.orderBy = column;\r\n this.refresh();\r\n }\r\n\r\n loadData = (page: number, itemsPerPage: number): Promise<IPaginationData> => {\r\n const orderBy = this.orders[this.orderBy];\r\n return this.dataLoader(page, itemsPerPage, orderBy, this.orderDescending, this.filter);\r\n };\r\n\r\n private loadLocalData(page: number, rowsPerPage: number, orderBy: string, orderDescending: boolean, filter: string): Promise<IPaginationData> {\r\n if (!this.data) {\r\n return Promise.resolve({\r\n total: 0,\r\n items: []\r\n });\r\n }\r\n const compare: (a: any, b: any) => number = orderDescending\r\n ? (a, b) => DynamicTableComponent.compare(orderBy, b, a)\r\n : (a, b) => DynamicTableComponent.compare(orderBy, a, b);\r\n const from = (page - 1) * rowsPerPage;\r\n const dataLength = this.data.length;\r\n const length = Math.min(rowsPerPage, dataLength - from);\r\n const parallelData = this.parallelData || [];\r\n let data = this.data.map((item, ix) => {\r\n return new PaginationItemContext(item, parallelData[ix] || {}, dataLength, ix, ix);\r\n });\r\n if (ObjectUtils.isString(filter) && filter.length > 0) {\r\n const filterRx = new RegExp(filter, \"gi\");\r\n data = data.filter(c => c.filter(filterRx));\r\n }\r\n const items = orderBy ? data.sort(compare).splice(from, length) : data.splice(from, length);\r\n items.forEach((context, ix) => {\r\n context.index = from + ix;\r\n });\r\n return Promise.resolve({\r\n total: dataLength,\r\n items: items\r\n });\r\n }\r\n}\r\n","import {Component, Inject, Input, OnChanges, OnDestroy, OnInit, SimpleChanges} from \"@angular/core\";\r\nimport {Subscription} from \"rxjs\";\r\nimport {ObjectUtils} from \"../../utils/object.utils\";\r\nimport {StateService} from \"../../services/state.service\";\r\nimport {PaginationDirective} from \"../../directives/pagination.directive\";\r\nimport {ICON_SERVICE, IIconService} from \"../../common-types\";\r\n\r\n@Component({\r\n selector: \"pagination-menu\",\r\n templateUrl: \"./pagination-menu.component.html\"\r\n})\r\nexport class PaginationMenuComponent implements OnInit, OnDestroy, OnChanges {\r\n\r\n @Input() maxSize: number;\r\n @Input() urlParam: string;\r\n @Input() directionLinks: boolean;\r\n @Input() boundaryLinks: boolean;\r\n\r\n pages: number[];\r\n firstLabel: string;\r\n prevLabel: string;\r\n nextLabel: string;\r\n lastLabel: string;\r\n\r\n get hasPrev(): boolean {\r\n return this.pagination.page > 1;\r\n }\r\n\r\n get hasNext(): boolean {\r\n return this.pagination.page < this.pagination.maxPage\r\n }\r\n\r\n private onRefresh: Subscription;\r\n\r\n constructor(public state: StateService, public pagination: PaginationDirective, @Inject(ICON_SERVICE) public icons: IIconService) {\r\n this.maxSize = 5;\r\n this.directionLinks = true;\r\n this.boundaryLinks = true;\r\n this.firstLabel = `<<`;\r\n this.prevLabel = `<`;\r\n this.nextLabel = `>`;\r\n this.lastLabel = `>>`;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.onRefresh = this.pagination.onRefresh.subscribe(() => this.setPages());\r\n this.setIcon(\"firstLabel\", \"first-page\");\r\n this.setIcon(\"prevLabel\", \"prev-page\");\r\n this.setIcon(\"nextLabel\", \"next-page\");\r\n this.setIcon(\"lastLabel\", \"last-page\");\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (!this.onRefresh) return;\r\n this.onRefresh.unsubscribe();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.maxSize = isNaN(this.maxSize) || this.maxSize <= 0 ? 5 : this.maxSize;\r\n this.directionLinks = ObjectUtils.isBoolean(this.directionLinks) ? this.directionLinks : true;\r\n this.boundaryLinks = ObjectUtils.isBoolean(this.boundaryLinks) ? this.boundaryLinks : true;\r\n this.setPages();\r\n }\r\n\r\n paginate(page: number): void {\r\n if (this.pagination.page == page || this.pagination.maxPage < page || page < 1) return;\r\n if (!this.urlParam) {\r\n this.pagination.paginate(page);\r\n return;\r\n }\r\n const params = Object.assign({}, this.state.params);\r\n params[this.urlParam] = page.toString();\r\n const path = StateService.toPath(this.state.route, params);\r\n this.state.navigateByUrl(path);\r\n }\r\n\r\n protected setIcon(labelName: string, icon: string): void {\r\n this.icons.getIcon(icon, icon, false).then(i => {\r\n if (i == icon) return;\r\n this[labelName] = i;\r\n });\r\n }\r\n\r\n protected setPages(): number {\r\n if (!this.pagination) return;\r\n const totalPages = this.pagination.maxPage;\r\n let startPage = Math.max(this.pagination.page - Math.floor(this.maxSize / 2), 1);\r\n let endPage = startPage + this.maxSize - 1;\r\n if (endPage > totalPages) {\r\n endPage = totalPages;\r\n startPage = Math.max(endPage - this.maxSize + 1, 1);\r\n }\r\n const pages: number[] = [];\r\n for (let num = startPage; num <= endPage; num++) {\r\n pages.push(num);\r\n }\r\n this.pages = pages;\r\n }\r\n}\r\n","import {APP_INITIALIZER, ErrorHandler, Inject, Injector, ModuleWithProviders, NgModule} from \"@angular/core\";\r\nimport {EVENT_MANAGER_PLUGINS} from \"@angular/platform-browser\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {FormsModule} from \"@angular/forms\";\r\nimport {UrlSerializer} from \"@angular/router\";\r\nimport {DeviceDetectorService} from \"ngx-device-detector\";\r\n\r\nimport {\r\n API_SERVICE,\r\n AUTH_SERVICE,\r\n CONFIG_SERVICE, GLOBAL_TEMPLATES,\r\n ICON_SERVICE,\r\n IConfigService,\r\n IModuleConfig,\r\n LANGUAGE_SERVICE,\r\n PROMISE_SERVICE, ROOT_ELEMENT,\r\n TOASTER_SERVICE\r\n} from \"./common-types\";\r\n\r\nimport {AuthGuard} from \"./utils/auth.guard\";\r\nimport {AclService} from \"./services/acl.service\";\r\nimport {ApiService} from \"./services/api.service\";\r\nimport {StaticAuthService} from \"./services/auth.service\";\r\nimport {BaseHttpClient} from \"./services/base-http.client\";\r\nimport {BaseHttpService} from \"./services/base-http.service\";\r\nimport {ConfigService} from \"./services/config.service\";\r\nimport {ErrorHandlerService} from \"./services/error-handler.service\";\r\nimport {EventsService} from \"./services/events.service\";\r\nimport {FormatterService} from \"./services/formatter.service\";\r\nimport {GlobalTemplateService} from \"./services/global-template.service\";\r\nimport {IconService} from \"./services/icon.service\";\r\nimport {LanguageService} from \"./services/language.service\";\r\nimport {PromiseService} from \"./services/promise.service\";\r\nimport {OpenApiService} from \"./services/open-api.service\";\r\nimport {StateService} from \"./services/state.service\";\r\nimport {StaticLanguageService} from \"./services/static-language.service\";\r\nimport {StorageService} from \"./services/storage.service\";\r\nimport {ConsoleToasterService} from \"./services/toaster.service\";\r\nimport {TranslatedUrlSerializer} from \"./services/translated-url.serializer\";\r\nimport {UniversalService} from \"./services/universal.service\";\r\nimport {ResizeEventPlugin} from \"./plugins/resize-event.plugin\";\r\nimport {ScrollEventPlugin} from \"./plugins/scroll-event.plugin\";\r\nimport {AsyncMethodBase} from \"./directives/async-method.base\";\r\nimport {AsyncMethodDirective} from \"./directives/async-method.directive\";\r\nimport {BackgroundDirective} from \"./directives/background.directive\";\r\nimport {DynamicTableTemplateDirective} from \"./directives/dynamic-table-template.directive\";\r\nimport {GlobalTemplateDirective} from \"./directives/global-template.directive\";\r\nimport {IconDirective} from \"./directives/icon.directive\";\r\nimport {NgxTemplateOutletDirective} from \"./directives/ngx-template-outlet.directive\";\r\nimport {PaginationDirective} from \"./directives/pagination.directive\";\r\nimport {PaginationItemDirective} from \"./directives/pagination-item.directive\";\r\nimport {ResourceIfDirective} from \"./directives/resource-if.directive\";\r\nimport {StickyDirective} from \"./directives/sticky.directive\";\r\nimport {StickyClassDirective} from \"./directives/sticky-class.directive\";\r\nimport {UnorderedListItemDirective} from \"./directives/unordered-list-item.directive\";\r\nimport {UnorderedListTemplateDirective} from \"./directives/unordered-list-template.directive\";\r\n\r\nimport {ChunkPipe} from \"./pipes/chunk.pipe\";\r\nimport {EntriesPipe} from \"./pipes/entries.pipe\";\r\nimport {ExtraItemPropertiesPipe} from \"./pipes/extra-item-properties.pipe\";\r\nimport {FilterPipe} from \"./pipes/filter.pipe\";\r\nimport {FindPipe} from \"./pipes/find.pipe\";\r\nimport {FormatNumberPipe} from \"./pipes/format-number.pipe\";\r\nimport {GetOffsetPipe} from \"./pipes/get-offset.pipe\";\r\nimport {GetTypePipe} from \"./pipes/get-type.pipe\";\r\nimport {GlobalTemplatePipe} from \"./pipes/global-template.pipe\";\r\nimport {GroupByPipe} from \"./pipes/group-by.pipe\";\r\nimport {IsTypePipe} from \"./pipes/is-type.pipe\";\r\nimport {JoinPipe} from \"./pipes/join.pipe\";\r\nimport {KeysPipe} from \"./pipes/keys.pipe\";\r\nimport {MapPipe} from \"./pipes/map.pipe\";\r\nimport {MaxPipe} from \"./pipes/max.pipe\";\r\nimport {MinPipe} from \"./pipes/min.pipe\";\r\nimport {PopPipe} from \"./pipes/pop.pipe\";\r\nimport {ReducePipe} from \"./pipes/reduce.pipe\";\r\nimport {RemapPipe} from \"./pipes/remap.pipe\";\r\nimport {ReplacePipe} from \"./pipes/replace.pipe\";\r\nimport {ReversePipe} from \"./pipes/reverse.pipe\";\r\nimport {RoundPipe} from \"./pipes/round.pipe\";\r\nimport {SafeHtmlPipe} from \"./pipes/safe-html.pipe\";\r\nimport {ShiftPipe} from \"./pipes/shift.pipe\";\r\nimport {SplitPipe} from \"./pipes/split.pipe\";\r\nimport {TranslatePipe} from \"./pipes/translate.pipe\";\r\nimport {ValuesPipe} from \"./pipes/values.pipe\";\r\n\r\nimport {DynamicTableComponent} from \"./components/dynamic-table/dynamic-table.component\";\r\nimport {PaginationMenuComponent} from \"./components/pagination-menu/pagination-menu.component\";\r\nimport {UnorderedListComponent} from \"./components/unordered-list/unordered-list.component\";\r\n\r\n// --- Pipes ---\r\nexport const pipes = [\r\n ChunkPipe,\r\n EntriesPipe,\r\n ExtraItemPropertiesPipe,\r\n FilterPipe,\r\n FindPipe,\r\n FormatNumberPipe,\r\n GetOffsetPipe,\r\n GetTypePipe,\r\n GlobalTemplatePipe,\r\n GroupByPipe,\r\n IsTypePipe,\r\n JoinPipe,\r\n KeysPipe,\r\n MapPipe,\r\n MaxPipe,\r\n MinPipe,\r\n PopPipe,\r\n ReducePipe,\r\n RemapPipe,\r\n ReplacePipe,\r\n ReversePipe,\r\n RoundPipe,\r\n SafeHtmlPipe,\r\n ShiftPipe,\r\n SplitPipe,\r\n TranslatePipe,\r\n ValuesPipe\r\n];\r\n\r\n// --- Directives ---\r\nexport const directives = [\r\n AsyncMethodBase,\r\n AsyncMethodDirective,\r\n BackgroundDirective,\r\n DynamicTableTemplateDirective,\r\n GlobalTemplateDirective,\r\n IconDirective,\r\n NgxTemplateOutletDirective,\r\n PaginationDirective,\r\n PaginationItemDirective,\r\n ResourceIfDirective,\r\n StickyDirective,\r\n StickyClassDirective,\r\n UnorderedListItemDirective,\r\n UnorderedListTemplateDirective\r\n];\r\n\r\n// --- Components ---\r\nexport const components = [\r\n DynamicTableComponent,\r\n PaginationMenuComponent,\r\n UnorderedListComponent\r\n];\r\n\r\nexport const providers = [\r\n ...pipes,\r\n BaseHttpClient,\r\n BaseHttpService,\r\n AuthGuard,\r\n AclService,\r\n ApiService,\r\n StaticAuthService,\r\n ConfigService,\r\n ErrorHandlerService,\r\n EventsService,\r\n FormatterService,\r\n GlobalTemplateService,\r\n IconService,\r\n LanguageService,\r\n OpenApiService,\r\n PromiseService,\r\n StateService,\r\n StaticLanguageService,\r\n StorageService,\r\n ConsoleToasterService,\r\n TranslatedUrlSerializer,\r\n UniversalService,\r\n DeviceDetectorService,\r\n {\r\n provide: EVENT_MANAGER_PLUGINS,\r\n useClass: ResizeEventPlugin,\r\n multi: true\r\n },\r\n {\r\n provide: EVENT_MANAGER_PLUGINS,\r\n useClass: ScrollEventPlugin,\r\n multi: true\r\n },\r\n {\r\n provide: UrlSerializer,\r\n useExisting: TranslatedUrlSerializer\r\n },\r\n {\r\n provide: ErrorHandler,\r\n useExisting: ErrorHandlerService\r\n }\r\n\r\n];\r\n\r\nexport function loadConfig(config: IConfigService): any {\r\n return config.load;\r\n}\r\n\r\n@NgModule({\r\n declarations: [\r\n ...pipes,\r\n ...directives,\r\n ...components\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule\r\n ],\r\n exports: [\r\n ...pipes,\r\n ...directives,\r\n ...components,\r\n FormsModule\r\n ],\r\n providers: pipes\r\n})\r\nexport class NgxUtilsModule {\r\n static forRoot(config?: IModuleConfig): ModuleWithProviders<NgxUtilsModule> {\r\n return {\r\n ngModule: NgxUtilsModule,\r\n providers: [\r\n ...providers,\r\n {\r\n provide: API_SERVICE,\r\n useExisting: (!config ? null : config.apiService) || ApiService\r\n },\r\n {\r\n provide: AUTH_SERVICE,\r\n useExisting: (!config ? null : config.authService) || StaticAuthService\r\n },\r\n {\r\n provide: ICON_SERVICE,\r\n useExisting: (!config ? null : config.iconService) || IconService\r\n },\r\n {\r\n provide: LANGUAGE_SERVICE,\r\n useExisting: (!config ? null : config.languageService) || StaticLanguageService\r\n },\r\n {\r\n provide: TOASTER_SERVICE,\r\n useExisting: (!config ? null : config.toasterService) || ConsoleToasterService\r\n },\r\n {\r\n provide: PROMISE_SERVICE,\r\n useExisting: (!config ? null : config.promiseService) || PromiseService\r\n },\r\n {\r\n provide: CONFIG_SERVICE,\r\n useExisting: (!config ? null : config.configService) || ConfigService\r\n },\r\n {\r\n provide: GLOBAL_TEMPLATES,\r\n useExisting: (!config ? null : config.globalTemplates) || GlobalTemplateService\r\n },\r\n {\r\n provide: ROOT_ELEMENT,\r\n useValue: null\r\n },\r\n {\r\n provide: APP_INITIALIZER,\r\n useFactory: (!config ? null : config.initializeApp) || loadConfig,\r\n multi: true,\r\n deps: [(!config ? null : config.initializeApp) ? Injector : CONFIG_SERVICE]\r\n }\r\n ]\r\n };\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n\nexport {components as ɵd,directives as ɵc,loadConfig as ɵf,pipes as ɵb,providers as ɵe} from './ngx-utils/ngx-utils.module';\nexport {defaultPredicate as ɵa} from './ngx-utils/utils/object.utils';"],"names":["InjectionToken","StorageMode","TemplateRef","moment","first","Subject","Invokable","isPlatformBrowser","isPlatformServer","Injectable","Inject","PLATFORM_ID","DeviceDetectorService","ActivatedRouteSnapshot","router","NavigationEnd","Observable","skipWhile","BehaviorSubject","Injector","NgZone","Router","Optional","mergeMap","Subscription","from","HttpHeaders","HttpParams","HttpUrlEncodingCodec","HttpClient","HttpHandler","timeout","HttpEventType","TimeoutError","EventEmitter","isDevMode","ErrorHandler","combineLatest","map","UrlTree","UrlSegmentGroup","UrlSegment","DefaultUrlSerializer","emptyRemove","addListener","removeListener","EventManagerPlugin","DOCUMENT","Pipe","defaultFilter","DomSanitizer","ChangeDetectorRef","Directive","Input","Output","HostBinding","HostListener","ElementRef","Renderer2","ViewContainerRef","Component","ContentChildren","ViewChild","ContentChild","EVENT_MANAGER_PLUGINS","UrlSerializer","APP_INITIALIZER","NgModule","CommonModule","FormsModule"],"mappings":"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,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC9E,IAAA,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC9E,IAAA,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC9E,IAAA,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC9E,IAAA,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC9E,IAAA,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC9E,IAAA,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC9E,IAAA,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC9E,IAAA,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC9E,IAAA,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QAC9E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;KAAC,CAAC;IAE/E,IAAM,SAAS,GAAG;IACd,IAAA,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;IAC7D,IAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;IAC9D,IAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;IAC9D,IAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;IAC9D,IAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;IAC9D,IAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;IAC9D,IAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;IAC9D,IAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;IAC9D,IAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;IAC9D,IAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;IAC9D,IAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;IAC9D,IAAA,EAAE,EA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"}
|