@lenne.tech/ng-base 0.3.8 → 0.3.9

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.
@@ -1 +1 @@
1
- {"version":3,"file":"lenne.tech-ng-base-src-lib-base.umd.js","sources":["../../../projects/ng-base/src/lib/base/interfaces/base-module-config.interface.ts","../../../node_modules/tslib/tslib.es6.js","../../../projects/ng-base/src/lib/base/services/storage.service.ts","../../../projects/ng-base/src/lib/base/services/auth.service.ts","../../../projects/ng-base/src/lib/base/factories/apollo-options.factory.ts","../../../projects/ng-base/src/lib/base/directives/context-menu.directive.ts","../../../projects/ng-base/src/lib/base/directives/lazy-load.directive.ts","../../../projects/ng-base/src/lib/base/classes/helper.class.ts","../../../projects/ng-base/src/lib/base/services/image.service.ts","../../../projects/ng-base/src/lib/base/directives/match-height.directive.ts","../../../projects/ng-base/src/lib/base/directives/resizable.directive.ts","../../../projects/ng-base/src/lib/base/pipes/ellipses.pipe.ts","../../../projects/ng-base/src/lib/base/pipes/safe-html.pipe.ts","../../../projects/ng-base/src/lib/base/base.module.ts","../../../projects/ng-base/src/lib/base/classes/standard.class.ts","../../../projects/ng-base/src/lib/base/classes/basic-user.class.ts","../../../projects/ng-base/src/lib/base/classes/graphql-enum.class.ts","../../../projects/ng-base/src/lib/base/classes/graphql-type.class.ts","../../../projects/ng-base/src/lib/base/classes/graphql-meta.class.ts","../../../projects/ng-base/src/lib/base/guards/auth.guard.ts","../../../projects/ng-base/src/lib/base/guards/can-deactivate.guard.ts","../../../projects/ng-base/src/lib/base/guards/logout.guard.ts","../../../projects/ng-base/src/lib/base/enums/comparison-operator.enum.ts","../../../projects/ng-base/src/lib/base/enums/graphql-request-type.enum.ts","../../../projects/ng-base/src/lib/base/enums/logical-operator.enum.ts","../../../projects/ng-base/src/lib/base/enums/sort-order.enum.ts","../../../projects/ng-base/src/lib/base/services/fullscreen.service.ts","../../../projects/ng-base/src/lib/base/services/graphql-meta.service.ts","../../../projects/ng-base/src/lib/base/services/graphql.service.ts","../../../projects/ng-base/src/lib/base/services/loader.service.ts","../../../projects/ng-base/src/lib/base/services/graphql-plus.service.ts","../../../projects/ng-base/src/lib/base/services/scroll.service.ts","../../../projects/ng-base/src/lib/base/services/seo.service.ts","../../../projects/ng-base/src/lib/base/validators/must-match.validator.ts","../../../projects/ng-base/src/lib/base/public-api.ts","../../../projects/ng-base/src/lib/base/lenne.tech-ng-base-src-lib-base.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { StorageType } from '../types/storage.type';\n\n/**\n * Configuration for base module\n */\nexport interface BaseModuleConfig {\n /**\n * URL to server API\n * Default: 'localhost:3000'\n */\n apiUrl?: string;\n\n /**\n * Websocket URL to server API\n */\n wsUrl?: string;\n\n /**\n * Default redirect URL for AuthGuard\n * Default: '/auth'\n */\n authGuardRedirectUrl?: string;\n\n /**\n * Whether logging is enabled or not\n */\n logging?: false;\n\n /**\n * Version of the App (for storage handling)\n * Default: null\n */\n version?: string;\n\n /**\n * Prefix of the App (for storage handling)\n * Default: null\n */\n prefix?: string;\n\n /**\n * Scroll detection offset for ScrollService\n * Should be >= scrollOffset\n * Default: 200\n */\n scrollDetectionOffset?: number;\n\n /**\n * Scroll offset for ScrollService\n * Default: 100\n */\n scrollOffset?: number;\n\n /**\n * Sampling rate for scroll done detection\n * Default: 100\n */\n scrollSamplingRate?: number;\n\n /**\n * Type of storage: 'session' or 'local'\n * Default: 'local'\n */\n storageType?: StorageType;\n}\n\nexport const BASE_MODULE_CONFIG = new InjectionToken('BASE_MODULE_CONFIG');\n","/*! *****************************************************************************\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, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\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, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\nimport { BASE_MODULE_CONFIG, BaseModuleConfig } from '../interfaces/base-module-config.interface';\n\n/**\n * Storage service for local data storage\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class StorageService {\n /**\n * Storage\n */\n protected storage: any = null;\n\n /**\n * Prefix for storage keys\n */\n protected prefix = '';\n\n /**\n * Initializations\n */\n constructor(@Inject(BASE_MODULE_CONFIG) private moduleConfig: BaseModuleConfig) {\n // Set storage\n const type = moduleConfig.storageType ? moduleConfig.storageType : 'local';\n if (window[type + 'Storage']) {\n this.storage = window[type + 'Storage'];\n }\n\n // Set prefix\n this.prefix = '';\n if (moduleConfig.prefix) {\n this.prefix += moduleConfig.prefix + '_';\n }\n if (moduleConfig.version) {\n this.prefix += moduleConfig.version + '_';\n }\n }\n\n /**\n * Save itemKeys\n *\n * If you want to save one item, use itemKeys and value parameters like these:\n * save('KEY_OF_THE_ITEM', ITEM)\n *\n * If you want to save multiple items, use itemKeys only (value parameter will be ignored):\n * save({'KEY_OF_ITEM_1': ITEM_1, 'KEY_OF_ITEM_2': ITEM_2, ...})\n */\n public save(itemKeys: string | { [key: string]: any }, value?: any): boolean {\n // Check local storage\n if (!this.storage) {\n return false;\n }\n\n // Check item keys and value\n if (\n !itemKeys ||\n (typeof itemKeys === 'object' && !Object.keys(itemKeys).length) ||\n (typeof itemKeys === 'string' && value === undefined)\n ) {\n return false;\n }\n\n if (typeof itemKeys === 'object') {\n for (const [itemKey, itemValue] of Object.entries(itemKeys)) {\n this.storage.setItem(this.prefix + itemKey, JSON.stringify(itemValue));\n }\n return true;\n }\n\n this.storage.setItem(this.prefix + itemKeys, JSON.stringify(value));\n return true;\n }\n\n /**\n * Load items via key(s)\n */\n public load(itemKeys: string | string[]): any {\n // Check local storage\n if (!this.storage) {\n return;\n }\n\n // Check item keys\n if (!itemKeys || (Array.isArray(itemKeys) && !itemKeys.length)) {\n return null;\n }\n\n if (Array.isArray(itemKeys)) {\n const back = {};\n itemKeys.forEach((itemKey) => {\n const loadedItem = this.storage.getItem(this.prefix + itemKey);\n if (loadedItem) {\n back[itemKey] = JSON.parse(loadedItem);\n } else {\n back[itemKey] = null;\n }\n });\n return back;\n }\n\n let value = this.storage.getItem(this.prefix + itemKeys);\n if (value) {\n value = JSON.parse(value);\n }\n\n return value;\n }\n\n /**\n * Remove item from storage\n *\n * @param itemKeys keys or key to remove\n */\n public remove(itemKeys: string | string[]): boolean {\n // Check local storage\n if (!this.storage) {\n return false;\n }\n\n if (Array.isArray(itemKeys)) {\n itemKeys.forEach((key) => {\n this.storage.removeItem(this.prefix + key);\n });\n return true;\n }\n\n this.storage.removeItem(this.prefix + itemKeys);\n return true;\n }\n\n /**\n * Clear local storage\n */\n public reset(): void {\n this.storage.clear();\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { BASE_MODULE_CONFIG, BaseModuleConfig } from '../interfaces/base-module-config.interface';\nimport { BasicUser } from '../classes/basic-user.class';\nimport { StorageService } from './storage.service';\n\n/**\n * Authentication service\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthService {\n\n // Subjects\n private _currentUser: BehaviorSubject<BasicUser> = new BehaviorSubject<BasicUser>(null);\n private _token: BehaviorSubject<string> = new BehaviorSubject<string>(null);\n\n /**\n * Constructor\n */\n constructor(@Inject(BASE_MODULE_CONFIG) private moduleConfig: BaseModuleConfig, private storageService: StorageService) {\n this.token = this.storageService.load('token') as string;\n this.currentUser = this.storageService.load('currentUser') as BasicUser;\n }\n\n /**\n * Logout\n */\n public logout() {\n this.storageService.remove(['token', 'currentUser']);\n this.currentUser = null;\n this.token = null;\n }\n\n // #################################################################\n // Current User\n // #################################################################\n\n get currentUser(): BasicUser {\n return this._currentUser.value;\n }\n\n set currentUser(user: BasicUser) {\n this._currentUser.next(user);\n this.storageService.save('currentUser', user);\n }\n\n get currentUserObservable(): Observable<BasicUser> {\n return this._currentUser.asObservable();\n }\n\n // #################################################################\n // Token\n // #################################################################\n\n\n get token(): string {\n return this._token.value;\n }\n\n set token(token: string) {\n this._token.next(token);\n this.storageService.save('token', token);\n }\n\n get tokenObservable(): Observable<string> {\n return this._token.asObservable();\n }\n}\n","import { HttpLink } from 'apollo-angular/http';\nimport { BaseModuleConfig } from '../interfaces/base-module-config.interface';\nimport { AuthService } from '../services/auth.service';\nimport { ApolloLink, concat, split } from '@apollo/client/core';\nimport { InMemoryCache } from '@apollo/client/cache';\nimport { WebSocketLink } from '@apollo/client/link/ws';\nimport { getMainDefinition } from '@apollo/client/utilities';\n\n/**\n * Factory for apollo-angular options\n */\nexport function apolloOptionsFactory(baseModuleConfig: BaseModuleConfig, httpLink: HttpLink, authService: AuthService) {\n const links = [];\n const defaultUrl = 'api.' + window.location.href + '/graphql';\n\n const http = httpLink.create({\n uri: baseModuleConfig.apiUrl ? baseModuleConfig.apiUrl : 'https://' + defaultUrl,\n });\n\n const authMiddleware = new ApolloLink((operation, forward) => {\n const headers: any = {};\n if (localStorage) {\n const token = authService.token || null;\n if (token) {\n headers.Authorization = 'Bearer ' + token;\n }\n operation.setContext(() => ({ headers }));\n }\n return forward(operation);\n });\n\n if (baseModuleConfig.wsUrl) {\n let wsClient;\n\n if (localStorage) {\n const token = authService.token || null;\n wsClient = new WebSocketLink({\n uri: baseModuleConfig.wsUrl,\n options: {\n reconnect: true,\n connectionParams: {\n authToken: token,\n },\n },\n });\n } else {\n wsClient = new WebSocketLink({\n uri: baseModuleConfig.wsUrl,\n options: {\n reconnect: true,\n },\n });\n }\n\n // using the ability to split links, you can send data to each link\n // depending on what kind of operation is being sent\n links.push(\n split(\n // split based on operation type\n ({ query }) => {\n // @ts-ignore\n const { kind, operation } = getMainDefinition(query);\n return kind === 'OperationDefinition' && operation === 'subscription';\n },\n wsClient,\n concat(authMiddleware, http)\n )\n );\n } else {\n links.push(http);\n links.push(authMiddleware);\n }\n\n return {\n link: ApolloLink.from(links),\n cache: new InMemoryCache(),\n defaultOptions: {\n query: {\n fetchPolicy: 'network-only',\n },\n },\n };\n}\n","import { Directive, ElementRef, Input, OnInit, Output } from '@angular/core';\n\n/**\n * Directive vor context menu\n * See https://stackblitz.com/edit/angular-custom-context-menu\n */\n@Directive({\n selector: '[ltContextMenu]',\n exportAs: 'contextMenuData',\n})\nexport class ContextMenuDirective implements OnInit {\n @Input() contextMenuData?: any;\n @Input() ltContextMenu: HTMLElement;\n @Input() xGap = 0;\n @Input() yGap = 0;\n @Input() overflowSpace = 10;\n @Input() selectors = '*';\n @Output() clickedElement: Element = null;\n previousDisplayStatus: string = null;\n\n constructor(private el: ElementRef) {}\n\n ngOnInit() {\n if (this.ltContextMenu) {\n this.previousDisplayStatus = this.ltContextMenu.style.display;\n }\n\n // Add a click listener to the window,\n // so that we can close the context menu on left click\n window.addEventListener('click', () => {\n this.showContextMenu(null, false);\n });\n\n // Close context menu when escape is pressed\n window.addEventListener('keydown', (e) => {\n if (e.code === 'Escape') {\n this.showContextMenu(null, false);\n }\n });\n\n // Add an event listener to listen to the 'contextmenu' event\n this.el.nativeElement.addEventListener('contextmenu', (e) => {\n // Prevent the default context menu to popup\n if (e.preventDefault) {\n e.preventDefault();\n }\n // Shows our own context menu\n this.showContextMenu(e, true);\n });\n }\n\n // Shows or hides our custom context menu, which is specified as a input\n showContextMenu(event, show: boolean) {\n const cm = this.ltContextMenu;\n if (cm) {\n // Try to open context menu\n if (show && event && event instanceof MouseEvent) {\n // Get valid clicked structureElement\n const clickedElement = (event?.target as HTMLElement)?.closest(this.selectors);\n if (clickedElement) {\n // Set clicked structureElement\n this.clickedElement = clickedElement;\n\n setTimeout(() => {\n // Set display status\n cm.style.display = 'block';\n\n // Calculate top position\n let top = event.y + this.yGap;\n if (top + cm.offsetHeight + 10 > document.documentElement.clientHeight) {\n top = document.documentElement.clientHeight - cm.offsetHeight - this.overflowSpace;\n }\n\n // Calculate left position\n let left = event.x + this.xGap;\n if (left + cm.offsetWidth + 10 > document.documentElement.clientWidth) {\n left = document.documentElement.clientWidth - cm.offsetWidth - this.overflowSpace;\n }\n\n // Set position\n cm.style.top = top + 'px';\n cm.style.left = left + 'px';\n\n // Show\n cm.style.opacity = '1.0';\n cm.style['pointer-events'] = 'auto';\n }, 1);\n\n return;\n }\n }\n\n // Close context menu\n this.clickedElement = null;\n if (this.previousDisplayStatus) {\n cm.style.display = this.previousDisplayStatus;\n }\n cm.style.opacity = '0.01';\n cm.style['pointer-events'] = 'none';\n }\n }\n}\n","import { AfterViewInit, Directive, ElementRef, HostBinding, Input } from '@angular/core';\n\n/**\n * Directive for lazy loading images\n */\n@Directive({\n selector: 'img[ltLazyLoad]',\n})\nexport class LazyLoadDirective implements AfterViewInit {\n @HostBinding('attr.src') srcAttr = null;\n @Input() src: string;\n\n constructor(private el: ElementRef) {}\n\n ngAfterViewInit() {\n this.canLazyLoad() ? this.lazyLoadImage() : this.loadImage();\n }\n\n private canLazyLoad() {\n return window && 'IntersectionObserver' in window;\n }\n\n private lazyLoadImage() {\n const obs = new IntersectionObserver((entries) => {\n entries.forEach(({isIntersecting}) => {\n if (isIntersecting) {\n this.loadImage();\n obs.unobserve(this.el.nativeElement);\n }\n });\n });\n obs.observe(this.el.nativeElement);\n }\n\n private loadImage() {\n this.srcAttr = this.src;\n }\n}\n","import { Standard } from './standard.class';\n\n/**\n * Helper class\n */\nexport class Helper {\n /**\n * Simple filter function for plain objects\n */\n static filter<T = { [key: string]: any }>(objects: T[], filter: { [key: string]: any }): T[] {\n return (objects?.filter((element) => {\n for (const [key, value] of Object.entries(filter)) {\n if (Array.isArray(element[key])) {\n for (const item of element[key]) {\n if (!element[key].includs(value)) {\n return false;\n }\n }\n } else if (element[key] !== value) {\n return false;\n }\n }\n return true;\n }) || []) as any[];\n }\n\n /**\n * Convert to a url/uri conform string\n * Only:\n * - lower case\n * - chars, numbers and hyphens\n */\n static urlString(str: any, options: { allowAll?: boolean } = {}): string {\n // Config\n const config = {\n allowAll: false,\n ...options,\n };\n\n // To string\n str = str + '';\n\n // Trim\n str = str.trim();\n\n // Lower case\n str = str.toLowerCase();\n\n if (!config.allowAll) {\n // Replace spaces\n str = str.trim().replace(/\\s+/g, '-');\n\n // Replace some special chars\n str = str.replace('ä', 'ae');\n str = str.replace('ö', 'oe');\n str = str.replace('ü', 'ue');\n str = str.replace('ß', 'ss');\n\n // Remove other special chars\n str = str.replace(/[^a-zA-Z0-9-]/g, '');\n }\n\n // Return url conform string\n return encodeURI(str);\n }\n\n /**\n * Simple map function\n */\n public static map<T = { [key: string]: any }>(\n source: Partial<T> | { [key: string]: any },\n target: T,\n options: { funcAllowed?: boolean; dateStringToDate?: boolean | string[] } = {}\n ): T {\n // Set config\n const config = {\n funcAllowed: false,\n dateStringToDate: true,\n ...options,\n };\n\n // Check source\n if (!source || typeof source !== 'object' || Array.isArray(source)) {\n return target;\n }\n\n // Update properties\n for (const key of Object.keys(target)) {\n if (source[key] !== undefined && (config.funcAllowed || typeof (source[key] !== 'function'))) {\n if (typeof source[key] === 'string' && config.dateStringToDate) {\n if (Array.isArray(config.dateStringToDate)) {\n if (config.dateStringToDate.includes(key)) {\n target[key] = Helper.parseDate(source[key]);\n }\n } else {\n target[key] = Helper.parseDate(source[key]);\n }\n } else {\n target[key] = source[key];\n }\n }\n }\n\n // Return target\n return target;\n }\n\n /**\n * Create Object or Objects of specified type with specified data\n */\n public static maps<T extends Standard>(\n data: Partial<T> | Partial<T>[] | { [key: string]: any } | { [key: string]: any }[],\n targetClass: new (...args: any[]) => T\n ): T[] {\n // Check data\n if (!data || typeof data !== 'object') {\n return undefined;\n }\n\n // Check array\n if (!Array.isArray(data)) {\n data = [data];\n }\n\n // Map\n return (data as any).map((item: any) => {\n return (targetClass as any).map(item);\n });\n }\n\n /**\n * Get plain parameter\n */\n public static getPlainParameter(parameter: string) {\n if (!parameter) {\n return parameter;\n }\n return parameter?.split('?')?.shift()?.split('#')?.shift();\n }\n\n /**\n * Get ID of an url parameter\n */\n public static getParameterId(parameter: string) {\n if (!parameter) {\n return parameter;\n }\n return Helper.getPlainParameter(parameter)?.split('-').pop();\n }\n\n /**\n * Delay\n */\n public static delay(ms: number) {\n const promise = new Promise((resolve) => setTimeout(resolve, ms));\n return promise;\n }\n\n /**\n * Deep freeze\n * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze#What_is_shallow_freeze\n */\n public static deepFreeze(object: any, preparedObjects = []) {\n // Prevent infinit regress\n if (preparedObjects.includes(object as never)) {\n return object;\n }\n preparedObjects.push(object as never);\n\n // Retrieve the property names defined on object\n const propNames = Object.getOwnPropertyNames(object);\n\n // Freeze properties before freezing self\n for (const name of propNames) {\n const value = object[name];\n\n if (value && typeof value === 'object') {\n Helper.deepFreeze(value, preparedObjects);\n }\n }\n\n return Object.freeze(object);\n }\n\n /**\n * Generates an unique identifier with 24 characters\n */\n public static getUID(): string {\n let dt = new Date().getTime();\n const uuid = 'xxxxxxxxxxxxxxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n // eslint-disable-next-line no-bitwise\n const r = (dt + Math.random() * 16) % 16 | 0;\n dt = Math.floor(dt / 16);\n // eslint-disable-next-line no-bitwise\n return (c === 'x' ? r : (r & 0x3) | 0x8).toString(16);\n });\n return uuid;\n }\n\n /**\n * Parse date string to date object\n */\n public static parseDate(dateString: string) {\n const reISO = /^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}(?:\\.\\d*))(?:Z|(\\+|-)([\\d|:]*))?$/;\n const reMsAjax = /^\\/Date\\((d|-|.*)\\)[\\/|\\\\]$/;\n if (typeof dateString === 'string') {\n const isoExec = reISO.exec(dateString);\n if (isoExec) {\n return new Date(dateString);\n }\n const msAjaxExec = reMsAjax.exec(dateString);\n if (msAjaxExec) {\n const cleaned = msAjaxExec[1].split(/[-+,.]/);\n return new Date(cleaned[0] ? +cleaned[0] : 0 - +cleaned[1]);\n }\n }\n return dateString;\n }\n\n /**\n * Get browser name and version\n */\n public static getBrowser() {\n const userAgent = navigator.userAgent;\n let data = userAgent.match(/(opera|chrome|safari|firefox|msie|trident(?=\\/))\\/?\\s*(\\d+)/i) || [];\n let version;\n if (/trident/i.test(data[1])) {\n version = /\\brv[ :]+(\\d+)/g.exec(userAgent) || [];\n return { name: 'IE', version: version[1] || '' };\n }\n if (data[1] === 'Chrome') {\n version = userAgent.match(/\\bOPR|Edge\\/(\\d+)/);\n if (version != null) {\n return { name: 'Opera', version: version[1] };\n }\n }\n data = data[2] ? [data[1], data[2]] : [navigator.appName, navigator.appVersion, '-?'];\n version = userAgent.match(/version\\/(\\d+)/i);\n if (version !== null) {\n data.splice(1, 1, version[1]);\n }\n return {\n name: data[0],\n version: data[1],\n };\n }\n\n /**\n * Whether first parameter is a deep subset of second parameter\n * Hint: functions will be ignored\n */\n static isSubset(a: any, b: any) {\n // Equal\n if (a === b) {\n return true;\n }\n\n // Different type\n if (typeof a !== typeof b) {\n return false;\n }\n\n // Process array\n if (Array.isArray(a)) {\n for (const [key, value] of Object.entries(a)) {\n if (Helper.isSubset(value, b[key])) {\n return false;\n }\n }\n return true;\n }\n\n // Process object\n if (typeof a === 'object') {\n const plain = JSON.parse(JSON.stringify(a));\n for (const [key, value] of Object.entries(plain)) {\n if (Helper.isSubset(value, b[key])) {\n return false;\n }\n }\n return true;\n }\n\n // Else\n return true;\n }\n\n /**\n * Whether parameters are equal (have equal properties)\n * Hint: functions will be ignored\n */\n static isEqual(a: any, b: any) {\n return Helper.isSubset(a, b) && Helper.isSubset(b, a);\n }\n\n /**\n * First level difference of two objects\n * Hint: functions will be ignored and when an array or an object is different the hole array or object will used as property value\n *\n * @returns Record<string, any> Object with properties from first object\n */\n static getDiff(a: Record<string, any>, b: Record<string, any>, clone: boolean = true) {\n const result = {};\n let firstObject = a;\n if (clone) {\n firstObject = JSON.parse(JSON.stringify(a));\n }\n for (const [key, value] of Object.entries(firstObject)) {\n if (!Helper.isSubset(value, b[key])) {\n result[key] = value;\n }\n }\n return result;\n }\n\n /**\n * Check if propertie is type of HTMLCollection or NodeList\n * See https://stackoverflow.com/a/7238344\n *\n * @param nodes\n */\n static isNodeList(nodes) {\n try {\n const stringRepr = Object.prototype.toString.call(nodes);\n return (\n typeof nodes === 'object' &&\n /^\\[object (HTMLCollection|NodeList|Object)\\]$/.test(stringRepr) &&\n typeof nodes.length === 'number' &&\n (nodes.length === 0 || (typeof nodes[0] === 'object' && nodes[0].nodeType > 0))\n );\n } catch (e) {\n return false;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Helper } from '../classes/helper.class';\n\n/**\n * Image service\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class ImageService {\n /**\n * Preaload images (for lazy handling)\n *\n * @param options\n * @protected\n */\n public preLoadImages(options?: {\n doneFunction?: () => Promise<any> | any | void;\n elements?:\n | Element\n | Element[]\n | HTMLCollectionOf<Element>\n | Node\n | NodeList\n | Document\n | HTMLElement\n | HTMLElement[];\n regExp?: RegExp;\n }): Promise<any> {\n // Init configuration\n const config = {\n doneFunnction: undefined,\n elements: document,\n regExp: undefined,\n ...options,\n };\n\n return new Promise((resolve) => {\n // Convert element(s) into array\n if (!Array.isArray(config.elements)) {\n // NodeList or HTMLCollection\n if (Helper.isNodeList(config.elements)) {\n config.elements = Array.from(config.elements as HTMLCollection | NodeList) as Element[];\n }\n\n // Single element\n else {\n config.elements = [config.elements] as Element[];\n }\n }\n\n // Init loading\n const promises = [];\n\n // Get all images\n let images: HTMLImageElement[] = [];\n config.elements.forEach((element) => {\n images = images.concat(Array.from(element.getElementsByTagName('img')));\n });\n\n // Prepare images\n for (let image of images) {\n const src = image.getAttribute('src');\n\n // Check if changes are necessary and possible\n if (\n (image.complete && image.naturalHeight !== 0) || // already laoded\n !src || // Image has no src\n config.regExp?.test(src) // Test if src matches regular expression\n ) {\n continue;\n }\n\n // Replace lazy loading image with immediately loading image\n if (image.getAttribute('loading') === 'lazy') {\n const newImage = document.createElement('img');\n Array.from(image.attributes).forEach((attr) => {\n if (attr.name !== 'loading' && attr.name !== 'src') {\n newImage.setAttribute(attr.name, attr.value);\n }\n });\n image.replaceWith(newImage);\n image = newImage;\n }\n\n // Wait for laoding\n promises.push(this.loadImage(image, src));\n }\n\n // Wait until all images loaded\n Promise.all(promises)\n .catch((e) => console.error('Error during image loading', e))\n .finally(async () => {\n // Return result\n let result;\n if (config.doneFunnction) {\n result = await config.doneFunction();\n }\n resolve(result);\n });\n });\n }\n\n /**\n * Load image for image element\n *\n * @param imageElement\n * @param src\n * @protected\n */\n public async loadImage(imageElement: HTMLImageElement, src?: string) {\n src = src || imageElement.src;\n return new Promise((resolve, reject) => {\n imageElement.onload = () => resolve(imageElement);\n imageElement.onerror = reject;\n imageElement.src = src;\n });\n }\n}\n","import { Directive, ElementRef, HostListener, Inject, Input, OnInit, PLATFORM_ID } from '@angular/core';\nimport { ImageService } from '../services/image.service';\nimport { isPlatformBrowser } from '@angular/common';\n\n/**\n * Set same height (maximum) to different elements\n */\n@Directive({\n selector: '[ltMatchHeight]',\n})\nexport class MatchHeightDirective implements OnInit {\n // class name to match height\n @Input()\n ltMatchHeight: string | string[];\n\n // Replace lazy loading images with immediate loading images\n @Input()\n loadImages = true;\n\n // Wether current platform is a browser\n readonly isBrowser: boolean;\n\n constructor(protected el: ElementRef, protected imageService: ImageService, @Inject(PLATFORM_ID) platformId: string) {\n this.isBrowser = isPlatformBrowser(platformId);\n }\n\n @HostListener('window:resize')\n onResize() {\n this.matchHeight(this.el.nativeElement, this.ltMatchHeight);\n }\n\n ngOnInit() {\n this.matchHeight(this.el.nativeElement, this.ltMatchHeight);\n }\n\n async matchHeight(parent: HTMLElement, target: string | string[]) {\n if (!parent) {\n return;\n }\n\n let classNames;\n if (!Array.isArray(target)) {\n classNames = [target];\n } else {\n classNames = target;\n }\n\n for (const className of classNames) {\n // find all child structureElements with the selected class name\n const children = parent.getElementsByClassName(className);\n\n if (!children || children.length < 2) {\n continue;\n }\n\n // Load images of children\n if (this.loadImages) {\n await this.imageService.preLoadImages({ elements: children });\n }\n\n // reset all children height\n Array.from(children).forEach((element: HTMLElement) => {\n element.style.height = 'initial';\n });\n\n // get all the child structureElements heights\n const itemHeights = Array.from(children).map((element) => {\n if (element.getBoundingClientRect) {\n return element.getBoundingClientRect().height;\n }\n return 0;\n });\n\n // find out the tallest one\n const maxHeight = itemHeights.reduce((prev, curr) => (curr > prev ? curr : prev), 0);\n\n // update the child structureElements height to the tallest one\n Array.from(children).forEach((element: HTMLElement) => (element.style.height = `${maxHeight}px`));\n }\n }\n}\n","import { Directive, ElementRef, Input, OnInit } from '@angular/core';\n\n/**\n * Reszise detection\n * (inpsired by: https://stackblitz.com/edit/angular-resizable)\n */\n@Directive({\n selector: '[ltResizable]',\n})\nexport class ResizableDirective implements OnInit {\n @Input() resizableGrabWidth = 8;\n @Input() resizableMinWidth = 10;\n\n dragging = false;\n\n constructor(private el: ElementRef) {}\n\n ngOnInit(): void {\n this.addListenerToDocument();\n this.addListenerToElement();\n }\n\n mouseMoveG(evt) {\n if (!this.dragging) {\n return;\n }\n this.newWidth(evt.clientX - this.el.nativeElement.offsetLeft);\n evt.stopPropagation();\n }\n\n newWidth(wid) {\n const result = Math.max(this.resizableMinWidth, wid);\n this.el.nativeElement.style.width = result + 'px';\n }\n\n mouseDown(evt) {\n if (this.inDragRegion(evt)) {\n this.dragging = true;\n this.preventGlobalMouseEvents();\n evt.stopPropagation();\n }\n }\n\n restoreGlobalMouseEvents() {\n document.body.style['pointer-events'] = 'auto';\n }\n\n mouseUpG(evt: Event) {\n if (!this.dragging) {\n return;\n }\n this.restoreGlobalMouseEvents();\n this.dragging = false;\n evt.stopPropagation();\n }\n\n mouseMove(evt) {\n if (this.inDragRegion(evt) || this.dragging) {\n this.el.nativeElement.style.cursor = 'col-resize';\n } else {\n this.el.nativeElement.style.cursor = 'default';\n }\n }\n\n preventGlobalMouseEvents() {\n document.body.style['pointer-events'] = 'none';\n }\n\n inDragRegion(evt) {\n return this.el.nativeElement.clientWidth - evt.clientX + this.el.nativeElement.offsetLeft < this.resizableGrabWidth;\n }\n\n private addListenerToDocument() {\n document.addEventListener(\n 'mousemove',\n (e) => {\n this.mouseMoveG(e);\n },\n true\n );\n\n document.addEventListener(\n 'mouseup',\n (e) => {\n this.mouseUpG(e);\n },\n true\n );\n }\n\n private addListenerToElement() {\n this.el.nativeElement.addEventListener(\n 'mousedown',\n (e) => {\n this.mouseDown(e);\n },\n true\n );\n\n this.el.nativeElement.addEventListener(\n 'mousemove',\n (e) => {\n this.mouseMove(e);\n },\n true\n );\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n/**\n * Truncate string with ellipses\n */\n@Pipe({\n name: 'ltEllipses',\n})\nexport class EllipsesPipe implements PipeTransform {\n transform(value: string, limit: number): string {\n if (!value) {\n return null;\n }\n\n return value.length > limit ? value.substring(0, limit) + '...' : value;\n }\n}\n","import { DomSanitizer } from '@angular/platform-browser';\nimport { Pipe, PipeTransform } from '@angular/core';\n\n/**\n * Declarate html as safe\n */\n@Pipe({name: 'ltSafeHtml'})\nexport class SafeHtmlPipe implements PipeTransform {\n constructor(private sanitized: DomSanitizer) {}\n\n transform(value) {\n return this.sanitized.bypassSecurityTrustHtml(value);\n }\n}\n","import { APOLLO_OPTIONS } from 'apollo-angular';\nimport { HttpLink } from 'apollo-angular/http';\nimport { ModuleWithProviders, NgModule, Provider } from '@angular/core';\nimport { AuthService } from './services/auth.service';\nimport { BASE_MODULE_CONFIG, BaseModuleConfig } from './interfaces/base-module-config.interface';\nimport { apolloOptionsFactory } from './factories/apollo-options.factory';\nimport { ContextMenuDirective } from './directives/context-menu.directive';\nimport { LazyLoadDirective } from './directives/lazy-load.directive';\nimport { MatchHeightDirective } from './directives/match-height.directive';\nimport { ResizableDirective } from './directives/resizable.directive';\nimport { EllipsesPipe } from './pipes/ellipses.pipe';\nimport { SafeHtmlPipe } from './pipes/safe-html.pipe';\n\n// Imported and exported elements\nconst elements = [\n // Directives\n ContextMenuDirective,\n LazyLoadDirective,\n MatchHeightDirective,\n ResizableDirective,\n\n // Pipes\n EllipsesPipe,\n SafeHtmlPipe,\n];\n\n/**\n * Base module\n */\n@NgModule({\n declarations: elements,\n exports: elements,\n})\nexport class BaseModule {\n /**\n * Set configuration of base module in root module of the app\n */\n static forRoot(baseModuleConfig: BaseModuleConfig = {}): ModuleWithProviders<BaseModule> {\n // Default config\n const config = {\n apiUrl: 'localhost:3000',\n authGuardRedirectUrl: '/auth',\n logging: false,\n version: null,\n prefix: null,\n scrollDetectionOffset: 200,\n scrollOffset: 100,\n storageType: 'local',\n ...baseModuleConfig,\n };\n\n // Prepare providers\n const providers: Provider[] = [\n {\n provide: BASE_MODULE_CONFIG,\n useValue: baseModuleConfig,\n },\n ];\n\n // Add apollo features if API URL is set\n if (baseModuleConfig.apiUrl) {\n providers.push({\n provide: APOLLO_OPTIONS,\n useFactory: apolloOptionsFactory,\n deps: [BASE_MODULE_CONFIG, HttpLink, AuthService],\n });\n } else if (config.logging) {\n console.log('apiUrl is missing, ApolloLink is not initialized');\n }\n\n // Return root module\n return {\n ngModule: BaseModule,\n providers,\n };\n }\n}\n","import { Helper } from './helper.class';\n\n/**\n * Standard class\n * Other classes should extend the Standard class, if they offer own functions\n * If the extended class uses object properties with own map functions, it should implement its own map function\n */\nexport class Standard {\n /**\n * Static map method\n */\n public static map<T extends Standard>(\n this: new (...args: any[]) => T,\n data: Partial<T> | { [key: string]: any },\n item: T = new this()\n ): T {\n return (item as any).map(data);\n }\n\n /**\n * Map data into an object\n */\n public map(data: Partial<this> | { [key: string]: any }): this {\n return Helper.map(data, this);\n }\n\n /**\n * Clone object (and map additional data)\n */\n public clone(mapData?: Partial<this> | { [key: string]: any }): this {\n const current = JSON.parse(JSON.stringify(this));\n if (mapData) {\n Object.assign(current, mapData);\n }\n return new (this as any).constructor().map(current);\n }\n\n /**\n * Compare this with another object\n * Hint: functions will be ignored and when an array or an object is different the hole array or object will used as property value\n *\n * @return Record<string, any> with properties of this object which are different\n */\n public getDiff(compare: Record<string, any>, clone: boolean = true) {\n return Helper.getDiff(this, compare, clone);\n }\n}\n","import { Standard } from './standard.class';\nimport { Helper } from './helper.class';\n\n/**\n * User class\n */\nexport class BasicUser extends Standard {\n id: string = undefined;\n email: string = undefined;\n firstName: string = undefined;\n lastName: string = undefined;\n roles: string[] = [];\n username: string = undefined;\n\n // ===================================================================================================================\n // Methods\n // ===================================================================================================================\n\n /**\n * Mapping\n */\n public map(data: Partial<this> | { [key: string]: any }): this {\n Helper.map(data, this);\n return this;\n }\n\n /**\n * Checks whether the user has at least one of the required roles\n */\n public hasRole(roles: string | string[]) {\n if (typeof roles === 'string') {\n roles = [roles];\n }\n if (!this.roles || this.roles.length < 1) {\n return false;\n }\n return !roles || roles.length < 1 ? true : this.roles.some((role) => roles.includes(role));\n }\n\n /**\n * Checks whether the user has all required roles\n */\n public hasAllRoles(roles: string | string[]) {\n if (typeof roles === 'string') {\n roles = [roles];\n }\n if (!this.roles || this.roles.length < 1) {\n return false;\n }\n return !roles ? true : roles.every((role) => this.roles.includes(role));\n }\n}\n","/**\n * GraphQL enum\n */\nexport class GraphQLEnum {\n value: string;\n\n constructor(value) {\n this.value = value;\n }\n}\n","import { Standard } from './standard.class';\n\n/**\n * GraphQL type\n */\nexport class GraphQLType extends Standard {\n type = '';\n isEnum = false;\n validEnums: string[] = [];\n}\n","import { GraphQLSchema } from 'graphql';\nimport { Maybe } from 'graphql/jsutils/Maybe';\nimport { GraphQLNamedType } from 'graphql/type/definition';\nimport { GraphQLRequestType } from '../enums/graphql-request-type.enum';\nimport { Helper } from './helper.class';\nimport { GraphQLType } from './graphql-type.class';\nimport { IGraphQLTypeCollection } from '../interfaces/graphql-type-collection.interface';\n\n/**\n * GraphQL meta\n */\nexport class GraphQLMeta {\n // Frozen caches\n protected args: Record<string, any> = {};\n protected fields: Record<string, any> = {};\n\n /**\n * Integrate schema\n */\n constructor(protected schema: GraphQLSchema) {\n if (!schema) {\n throw Error('Missing schema');\n }\n }\n\n /**\n * Get arguments of GraphQL function\n */\n getArgs(\n functionName: string,\n options: { cache?: boolean; freeze?: boolean; type?: GraphQLRequestType } = {}\n ): IGraphQLTypeCollection {\n const {cache, freeze, type} = {\n cache: true,\n freeze: true,\n type: undefined,\n ...options,\n };\n\n // Get cache\n if (cache && freeze) {\n const args = this.args[functionName + type];\n if (args) {\n return args;\n }\n }\n\n const func = this.getFunction(functionName, {type});\n const result = {};\n if (func?.args) {\n func.args.forEach((item) => {\n result[item.name] = this.getDeepType(item.type);\n });\n }\n\n // Set cache\n if (freeze) {\n this.args[functionName + type] = Helper.deepFreeze(result);\n }\n\n return result;\n }\n\n /**\n * Get fields of GraphQL function\n */\n getFields(\n functionName: string,\n options: { cache?: boolean; freeze?: boolean; type?: GraphQLRequestType } = {}\n ): IGraphQLTypeCollection {\n const {cache, freeze, type} = {\n cache: true,\n freeze: true,\n type: undefined,\n ...options,\n };\n\n // Get cache\n if (cache && freeze) {\n const args = this.fields[functionName + type];\n if (args) {\n return args;\n }\n }\n\n const func = this.getFunction(functionName, options);\n const result: IGraphQLTypeCollection = this.getDeepType(func.type) as IGraphQLTypeCollection;\n\n // Set cache\n if (freeze) {\n this.fields[functionName + type] = Helper.deepFreeze(result);\n }\n\n return result;\n }\n\n /**\n * Get GraphQL function\n */\n protected getFunction(name: string, options: { type?: GraphQLRequestType } = {}): Record<string, any> {\n // Set config\n const config = {\n ...options,\n };\n\n // Init possible functions\n let functions = {};\n\n // If function type is set\n if (config.type) {\n const graphQLType = config.type.charAt(0).toUpperCase() + config.type.slice(1);\n const type = this.schema.getType(graphQLType);\n if (type) {\n functions = (type as any).getFields();\n }\n }\n\n // If function type is not set\n else {\n ['Subscription', 'Mutation', 'Query'].forEach((item) => {\n const type: any = this.schema.getType(item);\n if (type) {\n functions = {\n ...functions,\n ...(type.getFields() || {}),\n };\n }\n });\n }\n\n // Get function via name\n return functions[name];\n }\n\n /**\n * Get type\n */\n protected getType(name: string): Maybe<GraphQLNamedType> {\n return this.schema.getType(name);\n }\n\n /**\n * Get deep type data\n */\n protected getDeepType(type: any, prepared: WeakMap<any, any> = new WeakMap()): IGraphQLTypeCollection | GraphQLType {\n // Check type\n if (!type) {\n return type;\n }\n\n // Infinite regress protection\n const preparedObject = {};\n\n // Check prepared\n if (typeof type === 'object') {\n const preparedType = prepared.get(type);\n if (preparedType) {\n return preparedType;\n }\n\n // Set prepared\n prepared.set(type, preparedObject);\n }\n\n // Search deeper\n if (type.ofType) {\n const ofTypeResult = this.getDeepType(type.ofType, prepared);\n Object.assign(preparedObject, ofTypeResult);\n return ofTypeResult;\n }\n\n // Process fields\n if (type._fields) {\n const result = {};\n for (const [key, value] of Object.entries(type._fields)) {\n result[key] = this.getDeepType(value, prepared);\n }\n Object.assign(preparedObject, result);\n return result;\n }\n\n // Get type name\n if (type.type) {\n const typeResult = this.getDeepType(type.type, prepared);\n Object.assign(preparedObject, typeResult);\n return typeResult;\n }\n\n // Initialize GraphQLType\n const graphqlType = GraphQLType.map({\n type: type.name,\n });\n\n // Set enum values\n if (!!type._values) {\n graphqlType.isEnum = true;\n for (const [key, value] of Object.entries(type._nameLookup)) {\n if (!(value as any).isDeprecated) {\n graphqlType.validEnums.push(key);\n }\n }\n }\n\n // Finish\n prepared.set(type, graphqlType);\n return graphqlType;\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, CanActivateChild, Router, RouterStateSnapshot } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { AuthService } from '../services/auth.service';\nimport { BASE_MODULE_CONFIG, BaseModuleConfig } from '../interfaces/base-module-config.interface';\n\n/**\n * Authentication guard\n */\n@Injectable()\nexport class AuthGuard implements CanActivate, CanActivateChild {\n\n /**\n * Imports\n */\n constructor(\n private router: Router,\n private authService: AuthService,\n @Inject(BASE_MODULE_CONFIG) private moduleConfig: BaseModuleConfig\n ) {}\n\n /**\n * Can activate main route\n */\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> {\n return new Observable((subscriber) => {\n let allowed = false;\n const opposite = route?.data?.opposite ? route?.data?.opposite : false;\n const redirectUrl = route?.data?.redirectUrl ? route.data.redirectUrl : this.moduleConfig.authGuardRedirectUrl;\n\n if (this.authService.token && !opposite) {\n if (route.data.allowedRole) {\n const user = this.authService.currentUser;\n allowed = user?.roles?.includes(route.data.allowedRole);\n } else {\n allowed = true;\n }\n } else if (!this.authService.token && opposite) {\n allowed = true;\n }\n\n if (!allowed) {\n this.router.navigate([redirectUrl]);\n }\n\n subscriber.next(allowed);\n subscriber.complete();\n });\n }\n\n /**\n * Can activate child route\n */\n canActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> {\n return this.canActivate(route, state);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { CanDeactivate } from '@angular/router';\nimport { ICanComponentDeactivate } from '../interfaces/can-component-deactivate.interface';\n\n/**\n * Guard to check if a component can be deactivated\n */\n@Injectable()\nexport class CanDeactivateGuard implements CanDeactivate<ICanComponentDeactivate> {\n canDeactivate(component: ICanComponentDeactivate) {\n return component.canDeactivate ? component.canDeactivate() : true;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, CanActivateChild, Router, RouterStateSnapshot } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { AuthService } from '../services/auth.service';\n\n/**\n * Logout guard\n */\n@Injectable()\nexport class LogoutGuard implements CanActivate, CanActivateChild {\n constructor(private router: Router, private authService: AuthService) {}\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> {\n return new Observable((subscriber) => {\n if (this.authService.token) {\n this.authService.logout();\n }\n\n subscriber.next(true);\n subscriber.complete();\n });\n }\n\n canActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> {\n return this.canActivate(route, state);\n }\n}\n","/**\n * Comparison operator enum\n */\nexport enum ComparisonOperatorEnum {\n EQ = 'EQ',\n GT = 'GT',\n GTE = 'GTE',\n IN = 'IN',\n LT = 'LT',\n LTE = 'LTE',\n NE = 'NE',\n NIN = 'NIN',\n REGEX = 'REGEX',\n}\n","/**\n * GraphQL request type enum\n */\nexport enum GraphQLRequestType {\n QUERY = 'query',\n MUTATION = 'mutation',\n SUBSCRIPTION = 'subscription',\n}\n","/**\n * Logical operator enum\n */\nexport enum LogicalOperatorEnum {\n AND = 'AND',\n NOR = 'NOR',\n OR = 'OR',\n}\n","export enum SortOrderEnum {\n ASC = 'ASC',\n DESC = 'DESC',\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n/**\n * Fullscreen service\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class FullscreenService {\n private _isFullscreenActive: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n\n constructor() {\n this.listenToFullscreenEvent();\n }\n\n get fullscreenState(): boolean {\n return this._isFullscreenActive.value;\n }\n\n get fullscreenStateAsObservable(): Observable<boolean> {\n return this._isFullscreenActive.asObservable();\n }\n\n public toggleFullscreen() {\n const elem = document.documentElement;\n if (!this._isFullscreenActive.value) {\n elem.requestFullscreen();\n this._isFullscreenActive.next(true);\n } else {\n document.exitFullscreen();\n this._isFullscreenActive.next(false);\n }\n }\n\n /**\n * Event Listener for fullscreen toggle\n */\n private listenToFullscreenEvent() {\n document.addEventListener('fullscreenchange', () => {\n if (document.fullscreenElement) {\n this._isFullscreenActive.next(true);\n } else {\n this._isFullscreenActive.next(false);\n }\n });\n }\n}\n","import { Apollo, gql } from 'apollo-angular';\nimport { Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { buildClientSchema, getIntrospectionQuery, GraphQLSchema, IntrospectionQuery } from 'graphql';\nimport { map } from 'rxjs/operators';\nimport { GraphQLMeta } from '../classes/graphql-meta.class';\nimport { Helper } from '../classes/helper.class';\n\n/**\n * GraphQL meta service\n *\n * For collecting meta information of the GraphQL API\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class GraphQLMetaService {\n\n // Caches\n protected _frozenSchema: GraphQLSchema;\n protected _frozenSchemaObservable: Observable<GraphQLSchema>;\n protected _meta: GraphQLMeta;\n protected _metaObservable: Observable<GraphQLMeta>;\n protected _schemaObservable: Observable<GraphQLSchema>;\n\n // Private caches\n private _introspectionQuery: IntrospectionQuery;\n\n /**\n * Include services\n */\n constructor(protected apollo: Apollo) {}\n\n /**\n * Getter of introspectionQuery\n */\n get introspectionQuery(): IntrospectionQuery {\n return JSON.parse(JSON.stringify(this._introspectionQuery));\n }\n\n /**\n * Get schema for API\n * See https://www.apollographql.com/blog/three-ways-to-represent-your-graphql-schema-a41f4175100d\n */\n public getSchema(options: { cache?: boolean; freeze?: boolean } = {}): Observable<GraphQLSchema> {\n // Get configurations\n const config = {\n cache: true,\n freeze: true,\n ...options,\n };\n\n // Use caching\n if (config.cache) {\n if (config.freeze && this._frozenSchema) {\n return of(this._frozenSchema);\n }\n if (this._introspectionQuery) {\n return of(buildClientSchema(this.introspectionQuery));\n }\n if (config.freeze && this._frozenSchemaObservable) {\n return this._frozenSchemaObservable;\n } else if (!config.freeze && this._schemaObservable) {\n return this._schemaObservable;\n }\n }\n\n // Request schema from server\n const observable = this.apollo\n .query({\n query: gql(getIntrospectionQuery({descriptions: false})),\n })\n .pipe(\n map((schema: any) => {\n // Cache introspectionQuery\n this._introspectionQuery = schema.data;\n\n // Convert schema to GraphQLSchema\n this._frozenSchema = Helper.deepFreeze(buildClientSchema(this.introspectionQuery));\n\n // Return GraphQLSchema\n if (config.freeze) {\n return this._frozenSchema;\n }\n return buildClientSchema(schema.data);\n })\n );\n\n // Set observables\n if (config.freeze) {\n this._frozenSchemaObservable = observable;\n } else {\n this._schemaObservable = observable;\n }\n\n // Return result\n return observable;\n }\n\n /**\n * Get meta for API\n * See https://www.apollographql.com/blog/three-ways-to-represent-your-graphql-schema-a41f4175100d\n */\n public getMeta(options: { cache?: boolean; log?: boolean } = {}): Observable<GraphQLMeta> {\n // Get configurations\n const config = {\n cache: true,\n log: false,\n ...options,\n };\n\n // Use caching\n if (config.cache) {\n if (this._meta) {\n return of(this._meta);\n } else if (this._metaObservable) {\n return this._metaObservable;\n }\n }\n\n // Request schema from server\n const observable = this.getSchema(options).pipe(\n map((schema: any) => {\n // Log\n if (config.log) {\n console.log({schema});\n }\n\n this._meta = new GraphQLMeta(schema);\n return this._meta;\n })\n );\n\n // Set observables\n this._metaObservable = observable;\n\n // Return result\n return observable;\n }\n}\n","import { Apollo, gql } from 'apollo-angular';\nimport { Injectable } from '@angular/core';\nimport { IGraphQLOptions } from '../interfaces/graphql-options.interface';\nimport { GraphQLRequestType } from '../enums/graphql-request-type.enum';\nimport { Observable, throwError } from 'rxjs';\nimport { GraphQLMetaService } from './graphql-meta.service';\nimport { GraphQLEnum } from '../classes/graphql-enum.class';\nimport { GraphQLType } from '../classes/graphql-type.class';\nimport { IGraphQLTypeCollection } from '../interfaces/graphql-type-collection.interface';\n\n/**\n * GraphQL service\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class GraphQLService {\n /**\n * Include services\n */\n constructor(protected apollo: Apollo, protected graphQLMetaService: GraphQLMetaService) {}\n\n /**\n * GraphQL request\n */\n public graphQl(graphql: string, options: IGraphQLOptions = {}): Observable<any> {\n // Check arguments\n if (!graphql) {\n throwError('Missing graphql argument');\n }\n\n // Get config\n const config = {\n arguments: null,\n fields: null,\n log: false,\n model: null,\n type: GraphQLRequestType.QUERY,\n ...options,\n };\n\n // Convert class to Object for arguments\n if (typeof config.arguments === 'function') {\n config.arguments = new config.arguments();\n }\n\n // Convert class to Object for fields\n if (typeof config.fields === 'function') {\n config.fields = new config.fields();\n }\n\n // Log\n if (config.log) {\n console.log({ config });\n }\n\n // Send request\n return new Observable((subscriber) => {\n // Get meta\n this.graphQLMetaService.getMeta({ log: config.log }).subscribe((meta) => {\n // Prepare fields\n let fields;\n let allowedFields;\n\n // Log meta\n if (config.log) {\n console.log({ meta });\n }\n\n if (config.fields) {\n allowedFields = meta.getFields(graphql, { type: config.type });\n\n // Log meta\n if (config.log) {\n console.log({ allowedFields });\n }\n\n const fieldsData = this.prepareFields(config.fields, {\n allowed: allowedFields,\n });\n\n // Log fields data\n if (config.log) {\n fieldsData.usedFields.sort();\n fieldsData.schemaFields.sort();\n const filtered = fieldsData.schemaFields.filter((field) => !fieldsData.usedFields.includes(field));\n const unused = this.graphQLTypeCollectionToStringArray(allowedFields).filter(\n (field) => !fieldsData.usedFields.includes(field)\n );\n console.log({ fieldsData, filtered, unused });\n }\n\n fields = fieldsData.fieldsString;\n }\n\n if (fields && !fields.startsWith('{')) {\n fields = '{' + fields + '\\n}';\n }\n\n // Log fields\n if (config.log) {\n console.log({ fields });\n }\n\n // Get allowed args\n const allowedArgs = meta.getArgs(graphql, { type: config.type });\n\n // Log allowed args\n if (config.log) {\n console.log({ allowedArgs });\n }\n\n const argsData = this.prepareArguments(config.arguments, {\n allowed: allowedArgs,\n });\n\n // Log args data\n if (config.log) {\n argsData.usedArgs.sort();\n argsData.schemaArgs.sort();\n const filtered = argsData.schemaArgs.filter((field) => !argsData.usedArgs.includes(field));\n const unused = this.graphQLTypeCollectionToStringArray(allowedArgs)\n .sort()\n .filter((field) => !argsData.usedArgs.includes(field));\n console.log({ argsData, filtered, unused });\n }\n\n const args = argsData?.argsString || '';\n\n // Log\n if (config.log) {\n console.log({ graphQL: graphql, args, fields, type: config.type });\n }\n\n // Prepare request\n const documentNode = fields\n ? gql(config.type + '{\\n' + graphql + args + fields + '\\n}')\n : gql(config.type + '{\\n' + graphql + args + '\\n}');\n\n // Log\n if (config.log) {\n console.log({ documentNode });\n }\n\n const request: any = {};\n request[config.type] = documentNode;\n\n // Log\n if (config.log) {\n console.log({ request });\n }\n\n let func;\n if (config.type === GraphQLRequestType.MUTATION) {\n func = 'mutate';\n request[config.type] = documentNode;\n } else if (config.type === GraphQLRequestType.SUBSCRIPTION) {\n func = 'subscribe';\n request.query = documentNode;\n } else {\n func = config.type;\n request[config.type] = documentNode;\n }\n\n (this.apollo as any)[func](request).subscribe(\n (result: any) => {\n const data = result?.data?.[graphql] !== undefined ? result.data[graphql] : result;\n\n // Direct data\n if (!config.model) {\n subscriber.next(data);\n }\n\n // Map data as array\n else if (Array.isArray(data)) {\n subscriber.next(\n data.map((item) => {\n return config.model.map(item);\n })\n );\n }\n\n // Map data\n else {\n subscriber.next(config.model.map(data));\n }\n\n if (config.type !== GraphQLRequestType.SUBSCRIPTION) {\n // Done\n subscriber.complete();\n }\n },\n (error: any) => {\n subscriber.error(error);\n subscriber.complete();\n }\n );\n });\n });\n }\n\n /**\n * Get fields / args from IGraphQLTypeCollection\n */\n protected graphQLTypeCollectionToStringArray(\n collection: IGraphQLTypeCollection,\n current = '',\n result = [],\n cacheNode = []\n ) {\n if (collection) {\n if (collection instanceof GraphQLType) {\n result.push(current);\n } else {\n if (current?.includes('.')) {\n cacheNode.push(current.split('.')[1]);\n } else if (current) {\n cacheNode.push(current);\n }\n for (const key of Object.keys(collection)) {\n if (current === key || cacheNode.includes(key)) {\n continue;\n }\n this.graphQLTypeCollectionToStringArray(\n collection[key] as IGraphQLTypeCollection,\n current ? current + '.' + key : key,\n result,\n cacheNode\n );\n }\n }\n }\n return result;\n }\n\n /**\n * Prepare arguments for GraphQL request\n */\n protected prepareArguments(\n args: any,\n options: {\n allowed?: any;\n level?: number;\n parent?: string;\n schemaArgs?: string[];\n usedArgs?: string[];\n } = {}\n ): { argsString: string; schemaArgs: string[]; usedArgs: string[] } {\n // Init config variables\n const { allowed, level, parent, schemaArgs, usedArgs } = {\n allowed: null,\n level: 1,\n parent: '',\n schemaArgs: [],\n usedArgs: [],\n ...options,\n };\n\n // Check args\n if (args === undefined || args === null) {\n return { argsString: '', schemaArgs, usedArgs };\n }\n\n // Init args\n const result = [];\n\n // Process array\n if (Array.isArray(args)) {\n const allowedKeys = allowed ? Object.keys(allowed) : null;\n for (const item of args) {\n let key = null;\n if (allowed) {\n if (allowed.length < 1) {\n break;\n }\n key = allowedKeys?.shift();\n }\n\n // Process value\n result.push(\n this.prepareArguments(item, {\n allowed: key ? allowed[key] : null,\n level: level + 1,\n parent: parent + key + '.',\n schemaArgs,\n usedArgs,\n }).argsString\n );\n }\n\n // Encapsulation of the array result\n if (result.length) {\n // Complete result, encapsulated via round brackets\n if (level === 1) {\n return { argsString: '(' + result.join(', ') + ')', schemaArgs, usedArgs };\n }\n\n // Deeper result part, encapsulated via square brackets\n else {\n return { argsString: '[' + result.join(', ') + ']', schemaArgs, usedArgs };\n }\n }\n }\n\n // Process object\n else if (typeof args === 'object') {\n // Check object is empty\n if (args && Object.keys(args).length === 0 && Object.getPrototypeOf(args) === Object.prototype) {\n return { argsString: '{}', schemaArgs, usedArgs };\n }\n // Process all object entries\n for (const [key, value] of Object.entries(args)) {\n // Init data for current entry\n const currentKey = parent + key;\n schemaArgs.push(currentKey);\n\n // If the allowed key handling is enabled and the current key is not included in the list of allowed keys,\n // the current key will be skipped\n if (allowed && !allowed[key]) {\n continue;\n }\n\n // Skip value if not exists\n if (value === undefined || value === null) {\n continue;\n }\n\n // Add current key to metadata\n usedArgs.push(currentKey);\n\n // Process GraphQLEnum\n if (value instanceof GraphQLEnum) {\n result.push(key + ':' + value.value);\n continue;\n }\n\n // Process array\n else if (Array.isArray(value)) {\n result.push(\n key +\n ': [' +\n value.map(\n (item) =>\n this.prepareArguments(item, {\n allowed: allowed[key],\n level: level + 1,\n parent: currentKey + '.',\n schemaArgs,\n usedArgs,\n }).argsString\n ) +\n ']'\n );\n continue;\n }\n\n // Prepare additional result string\n let additionalResult = key + ': ';\n\n // Value is a date object\n if (typeof value === 'object' && Object.prototype.toString.call(value) === '[object Date]') {\n additionalResult += `\"\"\"${(value as Date).toString()}\"\"\"`;\n }\n\n // Value is a string\n else if (typeof value === 'string') {\n // Enum (doesn't need quotation marks)\n if (allowed[key].isEnum) {\n additionalResult += value;\n }\n\n // String\n else {\n additionalResult += `\"\"\"${value.replace(/\"/g, '\\\\\"')}\"\"\"`;\n }\n }\n\n // Value is a simple boolean or a number\n else if (typeof value === 'boolean' || typeof value === 'number') {\n additionalResult += value;\n }\n\n // Others\n else {\n additionalResult += this.prepareArguments(value, {\n allowed: allowed[key],\n level: level + 1,\n parent: currentKey + '.',\n schemaArgs,\n usedArgs,\n }).argsString;\n }\n\n // Push deeper part into result array\n result.push(additionalResult);\n }\n\n // Encapsulation of the object result\n if (result.length) {\n // Complete result, encapsulated via round brackets\n if (level === 1) {\n return { argsString: '(' + result.join(', ') + ')', schemaArgs, usedArgs };\n }\n\n // Deeper result part, encapsulated via curly brackets\n else {\n return { argsString: '{' + result.join(', ') + '}', schemaArgs, usedArgs };\n }\n }\n }\n\n // Prepare and process other / unknown values as JSON\n else {\n return { argsString: JSON.stringify(args), schemaArgs, usedArgs };\n }\n }\n\n /**\n * Prepare fields for GraphQL request\n */\n protected prepareFields(\n fields: any,\n options: {\n allowed?: any;\n schemaFields?: string[];\n usedFields?: string[];\n parent?: string;\n spaces?: number;\n tab?: number;\n } = {}\n ): { schemaFields: string[]; fieldsString: string; usedFields: string[] } {\n // Config\n const { allowed, parent, schemaFields, spaces, tab, usedFields } = {\n allowed: null,\n parent: '',\n schemaFields: [],\n spaces: 2,\n tab: 1,\n usedFields: [],\n ...options,\n };\n\n // Init fields string\n let fieldsString = '';\n\n // Check fields\n if (!fields) {\n return { fieldsString, schemaFields, usedFields };\n }\n\n // Process string\n if (typeof fields === 'string') {\n if (\n allowed &&\n ((typeof allowed === 'string' && allowed !== fields) || (typeof allowed === 'object' && !allowed[fields]))\n ) {\n return { fieldsString, schemaFields, usedFields };\n }\n return { fieldsString: '\\n' + ' '.repeat(spaces).repeat(tab) + fields, schemaFields, usedFields };\n }\n\n // Process array\n else if (Array.isArray(fields)) {\n for (const item of fields) {\n if (typeof item === 'object') {\n fieldsString =\n fieldsString +\n this.prepareFields(item, {\n allowed,\n parent,\n spaces,\n schemaFields,\n tab: tab + 1,\n usedFields,\n }).fieldsString;\n continue;\n }\n const currentPath = parent + item;\n schemaFields.push(currentPath);\n if (allowed && !allowed?.[item]) {\n continue;\n }\n usedFields.push(currentPath);\n fieldsString =\n fieldsString +\n this.prepareFields(item, {\n allowed:\n typeof allowed?.[item] === 'object' && !(allowed?.[item] instanceof GraphQLType) ? allowed?.[item] : item,\n parent: currentPath + '.',\n spaces,\n schemaFields,\n tab: tab + 1,\n usedFields,\n }).fieldsString;\n }\n }\n\n // Process object\n else if (typeof fields === 'object') {\n for (const [key, val] of Object.entries(fields)) {\n const currentPath = parent + key;\n schemaFields.push(currentPath);\n if (allowed && !allowed[key]) {\n continue;\n }\n usedFields.push(currentPath);\n if (typeof val !== 'object' || !Object.keys(val).length) {\n fieldsString = fieldsString + '\\n' + ' '.repeat(spaces).repeat(tab) + key;\n } else {\n fieldsString =\n fieldsString +\n '\\n' +\n ' '.repeat(spaces).repeat(tab) +\n key +\n ' ' +\n '{' +\n this.prepareFields(val, {\n allowed:\n typeof allowed?.[key] === 'object' && !(allowed?.[key] instanceof GraphQLType) ? allowed?.[key] : key,\n parent: currentPath + '.',\n spaces,\n schemaFields,\n tab: tab + 1,\n usedFields,\n }).fieldsString +\n '\\n' +\n ' '.repeat(spaces).repeat(tab) +\n '}';\n }\n }\n }\n\n // Return result\n return { fieldsString, schemaFields, usedFields };\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n/**\n * Loader service for loading indication\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class LoaderService {\n public isLoading = new BehaviorSubject(false);\n\n public start(): void {\n this.isLoading.next(true);\n }\n\n public stop(): void {\n this.isLoading.next(false);\n }\n\n public getAsObservable(): Observable<boolean> {\n return this.isLoading.asObservable();\n }\n}\n","import { Apollo } from 'apollo-angular';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { GraphQLService } from './graphql.service';\nimport { GraphQLMetaService } from './graphql-meta.service';\nimport { IGraphQLPlusOptions } from '../interfaces/graphql-plus-options.interfacen';\nimport { LoaderService } from './loader.service';\nimport { GraphQLRequestType } from '../enums/graphql-request-type.enum';\n\n/**\n * GraphQL plus service, for extra error handling and loading indication\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class GraphQLPlusService extends GraphQLService {\n /**\n * Include services\n */\n constructor(\n protected apollo: Apollo,\n protected graphqlMetaService: GraphQLMetaService,\n protected loaderService: LoaderService\n ) {\n super(apollo, graphqlMetaService);\n }\n\n public graphQl(graphql: string, options: IGraphQLPlusOptions = {}): Observable<any> {\n this.handleLoader('start', options);\n\n return new Observable((subscriber) => {\n super.graphQl(graphql, options).subscribe(\n (response) => {\n if (response && response.errors) {\n this.handleError(response.errors, options.excludedErrors);\n subscriber.error(response);\n this.handleLoader('stop', options);\n subscriber.complete();\n }\n\n subscriber.next(response);\n this.handleLoader('stop', options);\n if (options.type !== GraphQLRequestType.SUBSCRIPTION) {\n subscriber.complete();\n }\n },\n (error) => {\n if (!options.ignoreErrors) {\n this.handleError(error, options.excludedErrors);\n }\n subscriber.error(error);\n this.handleLoader('stop', options);\n subscriber.complete();\n }\n );\n });\n }\n\n handleLoader(state: 'start' | 'stop', options: IGraphQLPlusOptions): void {\n if (options.loading) {\n if (state === 'start') {\n this.loaderService.start();\n } else if (state === 'stop') {\n this.loaderService.stop();\n }\n }\n }\n\n handleError(error: Error, excludedErrors: any = null): void {\n if (excludedErrors) {\n if (Array.isArray(excludedErrors)) {\n excludedErrors.forEach((excludedError) => {\n if (error.message.includes(excludedError.toLowerCase())) {\n return;\n }\n });\n } else if (error.message.toLowerCase().includes(excludedErrors?.toLowerCase())) {\n return;\n }\n }\n\n this.displayError(error);\n }\n\n displayError(error: any): void {\n console.error(error);\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { BASE_MODULE_CONFIG, BaseModuleConfig } from '../interfaces/base-module-config.interface';\nimport { ImageService } from './image.service';\n\n/**\n * Scroll service for autoscroll to specific fragments\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class ScrollService {\n /**\n * Current scroll promise\n *\n * @protected\n */\n protected scrollPromise: Promise<void>;\n\n /**\n * Resolve function of current scroll promise\n *\n * @protected\n */\n protected scrollPromiseResolve: (value: void | PromiseLike<void>) => void;\n\n /**\n * Is a scroll listener set\n *\n * @protected\n */\n protected scrollListener = false;\n\n /**\n * Current scroll timer;\n *\n * @protected\n */\n protected scrollTimer = -1;\n\n /**\n * Scroll offset\n */\n protected readonly scrollOffset: number;\n\n /**\n * Detection offset\n * Should be >= scrollOffset\n */\n protected readonly detectionOffset: number;\n\n /**\n * Sampling rate for scroll done detection\n */\n protected readonly scrollSamplingRate: number;\n\n /**\n * Initializer\n */\n constructor(\n protected router: Router,\n @Inject(BASE_MODULE_CONFIG) protected moduleConfig: BaseModuleConfig,\n protected imageService: ImageService\n ) {\n const config = {\n scrollDetectionOffset: 200,\n scrollOffset: 100,\n scrollSamplingRate: 100,\n ...moduleConfig,\n };\n\n this.detectionOffset = config.scrollDetectionOffset;\n this.scrollOffset = config.scrollOffset;\n this.scrollSamplingRate = config.scrollSamplingRate;\n }\n\n /**\n * Scroll to structureElement with specific ID\n */\n async scrollTo(\n id: string,\n options: {\n checkUrl?: boolean;\n loadImagesBefore?: boolean;\n resetStyles?: boolean;\n setOverflow?: boolean;\n stopPropagation?: boolean;\n } = {}\n ) {\n // Prepare config\n const config = {\n checkUrl: false,\n loadImagesBefore: true,\n resetStyles: false,\n setOverflow: true,\n stopPropagation: true,\n ...options,\n };\n\n // Check current URL\n if (config.checkUrl && this.router.url !== '/' && !this.router.url.startsWith('/#')) {\n await this.router.navigate(['/'], { fragment: id });\n return !config.stopPropagation;\n }\n\n // Check if target element exits\n const el = document.getElementById(id);\n if (!el) {\n console.error('Missing scroll element with ID:', id);\n return !config.stopPropagation;\n }\n\n // Check if body overflow is visible\n // This is necessary for scroll handling\n const body = document.querySelector('body');\n let undoOverflowChanges = false;\n const scrollBodyStyles = JSON.parse(JSON.stringify(window.getComputedStyle(body)));\n if (config.setOverflow && (scrollBodyStyles.overflowX !== 'visible' || scrollBodyStyles.overflowY !== 'visible')) {\n // Set body overflow to visible\n console.warn('Style of body element for overflowX and overflowY will be set to \"visible\" for scrolling!');\n body.style.overflowX = 'visible';\n body.style.overflowY = 'visible';\n undoOverflowChanges = true;\n }\n\n // Load images before scrolling (once)\n if (config.loadImagesBefore) {\n await this.imageService.preLoadImages();\n }\n\n // Get get bounding rect of target element\n const cords = el.getBoundingClientRect();\n\n // Scroll to element\n window.scrollBy({ top: cords.top - this.scrollOffset, behavior: 'smooth' });\n await this.scrollDone({\n doneFunction: () => {\n // Undo changes\n if (undoOverflowChanges && config.resetStyles) {\n body.style.overflowX = scrollBodyStyles.overflowX;\n body.style.overflowY = scrollBodyStyles.overflowY;\n console.warn('Original style of body element for overflowX and overflowY is set.');\n }\n },\n });\n\n // Return stop propagation configuration\n return !config.stopPropagation;\n }\n\n /**\n * Get last active structureElement\n */\n getLastActiveElement(list?): string {\n const currentScrollPosition = window.scrollY;\n const elementsWithId = document.querySelectorAll('[id]');\n let lastId = null;\n let lastPosition = 0 - this.detectionOffset - 1;\n elementsWithId.forEach((element) => {\n const cords = element.getBoundingClientRect();\n const top = cords.top + window.pageYOffset - this.detectionOffset;\n if (\n (!list || !list.length || list.includes(element.id)) && // In list\n top < currentScrollPosition && // In active area\n lastPosition < top // Higher than the last one\n ) {\n lastId = element.id;\n lastPosition = top;\n }\n });\n return lastId;\n }\n\n /**\n * Check if ID is active\n */\n isActive(id, list?, isFirst?) {\n const lastActiveElement = this.getLastActiveElement(list);\n return id === lastActiveElement || (lastActiveElement === null && isFirst);\n }\n\n /**\n * Scroll done promise\n */\n public async scrollDone(options: { doneFunction?: () => any | void } = {}): Promise<any> {\n // Init configuration\n const config = {\n doneFunction: undefined,\n ...options,\n };\n\n // Wait for scroll done\n await this.scrollDoneDetection();\n\n // Get result\n if (config.doneFunction) {\n return config.doneFunction();\n }\n }\n\n /**\n * Scroll done detecton\n *\n * @protected\n */\n protected scrollDoneDetection(): Promise<void> {\n // Return current scroll promise (Singelton)\n if (this.scrollPromise) {\n return this.scrollPromise;\n }\n\n // Create current scroll promise\n this.scrollPromise = new Promise((resolve) => {\n this.scrollPromiseResolve = resolve;\n if (this.scrollTimer !== -1) {\n window.clearTimeout(this.scrollTimer);\n }\n this.scrollTimer = window.setTimeout(() => {\n window.removeEventListener('scroll', this.scrollDoneDetection.bind(this));\n this.scrollPromise = undefined;\n resolve();\n }, this.scrollSamplingRate);\n });\n\n // Lisitening to scroll event;\n window.addEventListener('scroll', this.scrollDoneDetection.bind(this));\n\n // Return promise\n return this.scrollPromise;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Meta, Title } from '@angular/platform-browser';\n\ninterface SEOData {\n title: string;\n description: string;\n image?: string;\n url?: string;\n keywords?: string;\n}\n\n/**\n * SEO service for setting HTML meta data\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SEOService {\n constructor(private titleService: Title, private metaTagService: Meta) {}\n\n public initPageForSEO(input: SEOData) {\n this.setGeneralData(input);\n this.setTwitterData(input);\n this.setTwitterData(input);\n this.setFacebookData(input);\n\n if (input.keywords) {\n this.setPageKeywords(input.keywords);\n }\n }\n\n /**\n * Set general metadata\n *\n * @param data\n * @private\n */\n private setGeneralData(data: SEOData) {\n this.titleService.setTitle(data.title);\n this.metaTagService.updateTag({ name: 'description', content: data.description });\n }\n\n /**\n * Set metadata for twitter\n *\n * @param data\n * @private\n */\n private setTwitterData(data: SEOData) {\n this.metaTagService.updateTag({ name: 'twitter:title', content: data.title });\n this.metaTagService.updateTag({ name: 'twitter:description', content: data.description });\n this.metaTagService.updateTag({\n property: 'twitter:url',\n content: data.url ? data.url : window.location.href,\n });\n\n if (data.image) {\n this.metaTagService.updateTag({\n property: 'twitter:image',\n content: data.image,\n });\n\n this.metaTagService.updateTag({\n property: 'twitter:card',\n content: 'summary_large_image',\n });\n }\n }\n\n /**\n * Set metadata for facebook\n *\n * @param data\n * @private\n */\n private setFacebookData(data: SEOData) {\n this.metaTagService.updateTag({ property: 'og:title', content: data.title });\n this.metaTagService.updateTag({ property: 'og:description', content: data.description });\n this.metaTagService.updateTag({\n property: 'og:type',\n content: 'website',\n });\n this.metaTagService.updateTag({\n property: 'og:url',\n content: data.url ? data.url : window.location.href,\n });\n\n if (data.image) {\n this.metaTagService.updateTag({\n property: 'og:image',\n content: data.image,\n });\n }\n }\n\n /**\n * Set page keywords\n *\n * @param keywords\n * @private\n */\n private setPageKeywords(keywords: string) {\n this.metaTagService.updateTag({ name: 'keywords', content: keywords });\n }\n}\n","import { FormGroup } from '@angular/forms';\n\n/**\n * Custom validator to check that two fields match\n * (inspirated by https://jasonwatmore.com/post/2018/11/07/angular-7-reactive-forms-validation-example)\n */\nexport function MustMatch(controlName: string, matchingControlName: string) {\n return (formGroup: FormGroup) => {\n const control = formGroup.controls[controlName];\n const matchingControl = formGroup.controls[matchingControlName];\n\n if (matchingControl.errors && !matchingControl.errors.mustMatch) {\n // return if another validator has already found an error on the matchingControl\n return;\n }\n\n // set error on matchingControl if validation fails\n if (control.value !== matchingControl.value) {\n matchingControl.setErrors({ mustMatch: true });\n } else {\n matchingControl.setErrors(null);\n }\n };\n}\n","/**\n * Exports for public API\n */\n\n// Module\nexport * from './base.module';\n\n// Classes\nexport * from './classes/basic-user.class';\nexport * from './classes/graphql-enum.class';\nexport * from './classes/graphql-meta.class';\nexport * from './classes/graphql-type.class';\nexport * from './classes/helper.class';\nexport * from './classes/standard.class';\n\n// Directives\nexport * from './directives/context-menu.directive';\nexport * from './directives/lazy-load.directive';\nexport * from './directives/match-height.directive';\nexport * from './directives/resizable.directive';\n\n// Factories\nexport * from './factories/apollo-options.factory';\n\n// Guards\nexport * from './guards/auth.guard';\nexport * from './guards/can-deactivate.guard';\nexport * from './guards/logout.guard';\n\n// Enums\nexport * from './enums/comparison-operator.enum';\nexport * from './enums/graphql-request-type.enum';\nexport * from './enums/logical-operator.enum';\nexport * from './enums/sort-order.enum';\n\n// Interfaces\nexport * from './interfaces/base-module-config.interface';\nexport * from './interfaces/can-component-deactivate.interface';\nexport * from './interfaces/combined-filter-input.interface';\nexport * from './interfaces/field.interface';\nexport * from './interfaces/field-object.interface';\nexport * from './interfaces/filter-input.interface';\nexport * from './interfaces/graphql-options.interface';\nexport * from './interfaces/graphql-plus-options.interfacen';\nexport * from './interfaces/graphql-type-collection.interface';\nexport * from './interfaces/single-filter-input.interface';\nexport * from './interfaces/sort-input.interface';\nexport * from './interfaces/find-args.interface';\n\n// Pipes\nexport * from './pipes/ellipses.pipe';\nexport * from './pipes/safe-html.pipe';\n\n// Services\nexport * from './services/auth.service';\nexport * from './services/fullscreen.service';\nexport * from './services/graphql.service';\nexport * from './services/graphql-meta.service';\nexport * from './services/graphql-plus.service';\nexport * from './services/image.service';\nexport * from './services/loader.service';\nexport * from './services/scroll.service';\nexport * from './services/seo.service';\nexport * from './services/storage.service';\n\n// Types\nexport * from './types/storage.type';\n\n// Validators\nexport * from './validators/must-match.validator';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["InjectionToken","Injectable","Inject","BehaviorSubject","ApolloLink","WebSocketLink","split","getMainDefinition","concat","InMemoryCache","Directive","ElementRef","Input","Output","HostBinding","isPlatformBrowser","PLATFORM_ID","HostListener","Pipe","DomSanitizer","APOLLO_OPTIONS","HttpLink","NgModule","Observable","Router","ComparisonOperatorEnum","GraphQLRequestType","LogicalOperatorEnum","SortOrderEnum","of","buildClientSchema","gql","getIntrospectionQuery","map","Apollo","throwError","Title","Meta"],"mappings":"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"}
1
+ {"version":3,"file":"lenne.tech-ng-base-src-lib-base.umd.js","sources":["../../../projects/ng-base/src/lib/base/interfaces/base-module-config.interface.ts","../../../node_modules/tslib/tslib.es6.js","../../../projects/ng-base/src/lib/base/services/storage.service.ts","../../../projects/ng-base/src/lib/base/services/auth.service.ts","../../../projects/ng-base/src/lib/base/factories/apollo-options.factory.ts","../../../projects/ng-base/src/lib/base/directives/context-menu.directive.ts","../../../projects/ng-base/src/lib/base/directives/lazy-load.directive.ts","../../../projects/ng-base/src/lib/base/classes/helper.class.ts","../../../projects/ng-base/src/lib/base/services/image.service.ts","../../../projects/ng-base/src/lib/base/directives/match-height.directive.ts","../../../projects/ng-base/src/lib/base/directives/resizable.directive.ts","../../../projects/ng-base/src/lib/base/pipes/ellipses.pipe.ts","../../../projects/ng-base/src/lib/base/pipes/safe-html.pipe.ts","../../../projects/ng-base/src/lib/base/base.module.ts","../../../projects/ng-base/src/lib/base/classes/standard.class.ts","../../../projects/ng-base/src/lib/base/classes/basic-user.class.ts","../../../projects/ng-base/src/lib/base/classes/graphql-enum.class.ts","../../../projects/ng-base/src/lib/base/classes/graphql-type.class.ts","../../../projects/ng-base/src/lib/base/classes/graphql-meta.class.ts","../../../projects/ng-base/src/lib/base/guards/auth.guard.ts","../../../projects/ng-base/src/lib/base/guards/can-deactivate.guard.ts","../../../projects/ng-base/src/lib/base/guards/logout.guard.ts","../../../projects/ng-base/src/lib/base/enums/comparison-operator.enum.ts","../../../projects/ng-base/src/lib/base/enums/graphql-request-type.enum.ts","../../../projects/ng-base/src/lib/base/enums/logical-operator.enum.ts","../../../projects/ng-base/src/lib/base/enums/sort-order.enum.ts","../../../projects/ng-base/src/lib/base/services/fullscreen.service.ts","../../../projects/ng-base/src/lib/base/services/graphql-meta.service.ts","../../../projects/ng-base/src/lib/base/services/graphql.service.ts","../../../projects/ng-base/src/lib/base/services/loader.service.ts","../../../projects/ng-base/src/lib/base/services/graphql-plus.service.ts","../../../projects/ng-base/src/lib/base/services/scroll.service.ts","../../../projects/ng-base/src/lib/base/services/seo.service.ts","../../../projects/ng-base/src/lib/base/validators/must-match.validator.ts","../../../projects/ng-base/src/lib/base/public-api.ts","../../../projects/ng-base/src/lib/base/lenne.tech-ng-base-src-lib-base.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { StorageType } from '../types/storage.type';\n\n/**\n * Configuration for base module\n */\nexport interface BaseModuleConfig {\n /**\n * URL to server API\n * Default: 'localhost:3000'\n */\n apiUrl?: string;\n\n /**\n * Websocket URL to server API\n */\n wsUrl?: string;\n\n /**\n * Default redirect URL for AuthGuard\n * Default: '/auth'\n */\n authGuardRedirectUrl?: string;\n\n /**\n * Whether logging is enabled or not\n */\n logging?: false;\n\n /**\n * Version of the App (for storage handling)\n * Default: null\n */\n version?: string;\n\n /**\n * Prefix of the App (for storage handling)\n * Default: null\n */\n prefix?: string;\n\n /**\n * Scroll detection offset for ScrollService\n * Should be >= scrollOffset\n * Default: 200\n */\n scrollDetectionOffset?: number;\n\n /**\n * Scroll offset for ScrollService\n * Default: 100\n */\n scrollOffset?: number;\n\n /**\n * Sampling rate for scroll done detection\n * Default: 100\n */\n scrollSamplingRate?: number;\n\n /**\n * Type of storage: 'session' or 'local'\n * Default: 'local'\n */\n storageType?: StorageType;\n}\n\nexport const BASE_MODULE_CONFIG = new InjectionToken('BASE_MODULE_CONFIG');\n","/*! *****************************************************************************\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, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\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, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\nimport { BASE_MODULE_CONFIG, BaseModuleConfig } from '../interfaces/base-module-config.interface';\n\n/**\n * Storage service for local data storage\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class StorageService {\n /**\n * Storage\n */\n protected storage: any = null;\n\n /**\n * Prefix for storage keys\n */\n protected prefix = '';\n\n /**\n * Initializations\n */\n constructor(@Inject(BASE_MODULE_CONFIG) private moduleConfig: BaseModuleConfig) {\n // Set storage\n const type = moduleConfig.storageType ? moduleConfig.storageType : 'local';\n if (window[type + 'Storage']) {\n this.storage = window[type + 'Storage'];\n }\n\n // Set prefix\n this.prefix = '';\n if (moduleConfig.prefix) {\n this.prefix += moduleConfig.prefix + '_';\n }\n if (moduleConfig.version) {\n this.prefix += moduleConfig.version + '_';\n }\n }\n\n /**\n * Save itemKeys\n *\n * If you want to save one item, use itemKeys and value parameters like these:\n * save('KEY_OF_THE_ITEM', ITEM)\n *\n * If you want to save multiple items, use itemKeys only (value parameter will be ignored):\n * save({'KEY_OF_ITEM_1': ITEM_1, 'KEY_OF_ITEM_2': ITEM_2, ...})\n */\n public save(itemKeys: string | { [key: string]: any }, value?: any): boolean {\n // Check local storage\n if (!this.storage) {\n return false;\n }\n\n // Check item keys and value\n if (\n !itemKeys ||\n (typeof itemKeys === 'object' && !Object.keys(itemKeys).length) ||\n (typeof itemKeys === 'string' && value === undefined)\n ) {\n return false;\n }\n\n if (typeof itemKeys === 'object') {\n for (const [itemKey, itemValue] of Object.entries(itemKeys)) {\n this.storage.setItem(this.prefix + itemKey, JSON.stringify(itemValue));\n }\n return true;\n }\n\n this.storage.setItem(this.prefix + itemKeys, JSON.stringify(value));\n return true;\n }\n\n /**\n * Load items via key(s)\n */\n public load(itemKeys: string | string[]): any {\n // Check local storage\n if (!this.storage) {\n return;\n }\n\n // Check item keys\n if (!itemKeys || (Array.isArray(itemKeys) && !itemKeys.length)) {\n return null;\n }\n\n if (Array.isArray(itemKeys)) {\n const back = {};\n itemKeys.forEach((itemKey) => {\n const loadedItem = this.storage.getItem(this.prefix + itemKey);\n if (loadedItem) {\n back[itemKey] = JSON.parse(loadedItem);\n } else {\n back[itemKey] = null;\n }\n });\n return back;\n }\n\n let value = this.storage.getItem(this.prefix + itemKeys);\n if (value) {\n value = JSON.parse(value);\n }\n\n return value;\n }\n\n /**\n * Remove item from storage\n *\n * @param itemKeys keys or key to remove\n */\n public remove(itemKeys: string | string[]): boolean {\n // Check local storage\n if (!this.storage) {\n return false;\n }\n\n if (Array.isArray(itemKeys)) {\n itemKeys.forEach((key) => {\n this.storage.removeItem(this.prefix + key);\n });\n return true;\n }\n\n this.storage.removeItem(this.prefix + itemKeys);\n return true;\n }\n\n /**\n * Clear local storage\n */\n public reset(): void {\n this.storage.clear();\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { BASE_MODULE_CONFIG, BaseModuleConfig } from '../interfaces/base-module-config.interface';\nimport { BasicUser } from '../classes/basic-user.class';\nimport { StorageService } from './storage.service';\n\n/**\n * Authentication service\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthService {\n\n // Subjects\n private _currentUser: BehaviorSubject<BasicUser> = new BehaviorSubject<BasicUser>(null);\n private _token: BehaviorSubject<string> = new BehaviorSubject<string>(null);\n\n /**\n * Constructor\n */\n constructor(@Inject(BASE_MODULE_CONFIG) private moduleConfig: BaseModuleConfig, private storageService: StorageService) {\n this.token = this.storageService.load('token') as string;\n this.currentUser = this.storageService.load('currentUser') as BasicUser;\n }\n\n /**\n * Logout\n */\n public logout() {\n this.storageService.remove(['token', 'currentUser']);\n this.currentUser = null;\n this.token = null;\n }\n\n // #################################################################\n // Current User\n // #################################################################\n\n get currentUser(): BasicUser {\n return this._currentUser.value;\n }\n\n set currentUser(user: BasicUser) {\n this._currentUser.next(user);\n this.storageService.save('currentUser', user);\n }\n\n get currentUserObservable(): Observable<BasicUser> {\n return this._currentUser.asObservable();\n }\n\n // #################################################################\n // Token\n // #################################################################\n\n\n get token(): string {\n return this._token.value;\n }\n\n set token(token: string) {\n this._token.next(token);\n this.storageService.save('token', token);\n }\n\n get tokenObservable(): Observable<string> {\n return this._token.asObservable();\n }\n}\n","import { HttpLink } from 'apollo-angular/http';\nimport { BaseModuleConfig } from '../interfaces/base-module-config.interface';\nimport { AuthService } from '../services/auth.service';\nimport { ApolloLink, concat, split } from '@apollo/client/core';\nimport { InMemoryCache } from '@apollo/client/cache';\nimport { WebSocketLink } from '@apollo/client/link/ws';\nimport { getMainDefinition } from '@apollo/client/utilities';\n\n/**\n * Factory for apollo-angular options\n */\nexport function apolloOptionsFactory(baseModuleConfig: BaseModuleConfig, httpLink: HttpLink, authService: AuthService) {\n const links = [];\n const defaultUrl = 'api.' + window.location.href + '/graphql';\n\n const http = httpLink.create({\n uri: baseModuleConfig.apiUrl ? baseModuleConfig.apiUrl : 'https://' + defaultUrl,\n });\n\n const authMiddleware = new ApolloLink((operation, forward) => {\n const headers: any = {};\n if (localStorage) {\n const token = authService.token || null;\n if (token) {\n headers.Authorization = 'Bearer ' + token;\n }\n operation.setContext(() => ({ headers }));\n }\n return forward(operation);\n });\n\n if (baseModuleConfig.wsUrl) {\n let wsClient;\n\n if (localStorage) {\n const token = authService.token || null;\n wsClient = new WebSocketLink({\n uri: baseModuleConfig.wsUrl,\n options: {\n reconnect: true,\n connectionParams: {\n Authorization: token,\n },\n },\n });\n } else {\n wsClient = new WebSocketLink({\n uri: baseModuleConfig.wsUrl,\n options: {\n reconnect: true,\n },\n });\n }\n\n // using the ability to split links, you can send data to each link\n // depending on what kind of operation is being sent\n links.push(\n split(\n // split based on operation type\n ({ query }) => {\n // @ts-ignore\n const { kind, operation } = getMainDefinition(query);\n return kind === 'OperationDefinition' && operation === 'subscription';\n },\n wsClient,\n concat(authMiddleware, http)\n )\n );\n } else {\n links.push(http);\n links.push(authMiddleware);\n }\n\n return {\n link: ApolloLink.from(links),\n cache: new InMemoryCache(),\n defaultOptions: {\n query: {\n fetchPolicy: 'network-only',\n },\n },\n };\n}\n","import { Directive, ElementRef, Input, OnInit, Output } from '@angular/core';\n\n/**\n * Directive vor context menu\n * See https://stackblitz.com/edit/angular-custom-context-menu\n */\n@Directive({\n selector: '[ltContextMenu]',\n exportAs: 'contextMenuData',\n})\nexport class ContextMenuDirective implements OnInit {\n @Input() contextMenuData?: any;\n @Input() ltContextMenu: HTMLElement;\n @Input() xGap = 0;\n @Input() yGap = 0;\n @Input() overflowSpace = 10;\n @Input() selectors = '*';\n @Output() clickedElement: Element = null;\n previousDisplayStatus: string = null;\n\n constructor(private el: ElementRef) {}\n\n ngOnInit() {\n if (this.ltContextMenu) {\n this.previousDisplayStatus = this.ltContextMenu.style.display;\n }\n\n // Add a click listener to the window,\n // so that we can close the context menu on left click\n window.addEventListener('click', () => {\n this.showContextMenu(null, false);\n });\n\n // Close context menu when escape is pressed\n window.addEventListener('keydown', (e) => {\n if (e.code === 'Escape') {\n this.showContextMenu(null, false);\n }\n });\n\n // Add an event listener to listen to the 'contextmenu' event\n this.el.nativeElement.addEventListener('contextmenu', (e) => {\n // Prevent the default context menu to popup\n if (e.preventDefault) {\n e.preventDefault();\n }\n // Shows our own context menu\n this.showContextMenu(e, true);\n });\n }\n\n // Shows or hides our custom context menu, which is specified as a input\n showContextMenu(event, show: boolean) {\n const cm = this.ltContextMenu;\n if (cm) {\n // Try to open context menu\n if (show && event && event instanceof MouseEvent) {\n // Get valid clicked structureElement\n const clickedElement = (event?.target as HTMLElement)?.closest(this.selectors);\n if (clickedElement) {\n // Set clicked structureElement\n this.clickedElement = clickedElement;\n\n setTimeout(() => {\n // Set display status\n cm.style.display = 'block';\n\n // Calculate top position\n let top = event.y + this.yGap;\n if (top + cm.offsetHeight + 10 > document.documentElement.clientHeight) {\n top = document.documentElement.clientHeight - cm.offsetHeight - this.overflowSpace;\n }\n\n // Calculate left position\n let left = event.x + this.xGap;\n if (left + cm.offsetWidth + 10 > document.documentElement.clientWidth) {\n left = document.documentElement.clientWidth - cm.offsetWidth - this.overflowSpace;\n }\n\n // Set position\n cm.style.top = top + 'px';\n cm.style.left = left + 'px';\n\n // Show\n cm.style.opacity = '1.0';\n cm.style['pointer-events'] = 'auto';\n }, 1);\n\n return;\n }\n }\n\n // Close context menu\n this.clickedElement = null;\n if (this.previousDisplayStatus) {\n cm.style.display = this.previousDisplayStatus;\n }\n cm.style.opacity = '0.01';\n cm.style['pointer-events'] = 'none';\n }\n }\n}\n","import { AfterViewInit, Directive, ElementRef, HostBinding, Input } from '@angular/core';\n\n/**\n * Directive for lazy loading images\n */\n@Directive({\n selector: 'img[ltLazyLoad]',\n})\nexport class LazyLoadDirective implements AfterViewInit {\n @HostBinding('attr.src') srcAttr = null;\n @Input() src: string;\n\n constructor(private el: ElementRef) {}\n\n ngAfterViewInit() {\n this.canLazyLoad() ? this.lazyLoadImage() : this.loadImage();\n }\n\n private canLazyLoad() {\n return window && 'IntersectionObserver' in window;\n }\n\n private lazyLoadImage() {\n const obs = new IntersectionObserver((entries) => {\n entries.forEach(({isIntersecting}) => {\n if (isIntersecting) {\n this.loadImage();\n obs.unobserve(this.el.nativeElement);\n }\n });\n });\n obs.observe(this.el.nativeElement);\n }\n\n private loadImage() {\n this.srcAttr = this.src;\n }\n}\n","import { Standard } from './standard.class';\n\n/**\n * Helper class\n */\nexport class Helper {\n /**\n * Simple filter function for plain objects\n */\n static filter<T = { [key: string]: any }>(objects: T[], filter: { [key: string]: any }): T[] {\n return (objects?.filter((element) => {\n for (const [key, value] of Object.entries(filter)) {\n if (Array.isArray(element[key])) {\n for (const item of element[key]) {\n if (!element[key].includs(value)) {\n return false;\n }\n }\n } else if (element[key] !== value) {\n return false;\n }\n }\n return true;\n }) || []) as any[];\n }\n\n /**\n * Convert to a url/uri conform string\n * Only:\n * - lower case\n * - chars, numbers and hyphens\n */\n static urlString(str: any, options: { allowAll?: boolean } = {}): string {\n // Config\n const config = {\n allowAll: false,\n ...options,\n };\n\n // To string\n str = str + '';\n\n // Trim\n str = str.trim();\n\n // Lower case\n str = str.toLowerCase();\n\n if (!config.allowAll) {\n // Replace spaces\n str = str.trim().replace(/\\s+/g, '-');\n\n // Replace some special chars\n str = str.replace('ä', 'ae');\n str = str.replace('ö', 'oe');\n str = str.replace('ü', 'ue');\n str = str.replace('ß', 'ss');\n\n // Remove other special chars\n str = str.replace(/[^a-zA-Z0-9-]/g, '');\n }\n\n // Return url conform string\n return encodeURI(str);\n }\n\n /**\n * Simple map function\n */\n public static map<T = { [key: string]: any }>(\n source: Partial<T> | { [key: string]: any },\n target: T,\n options: { funcAllowed?: boolean; dateStringToDate?: boolean | string[] } = {}\n ): T {\n // Set config\n const config = {\n funcAllowed: false,\n dateStringToDate: true,\n ...options,\n };\n\n // Check source\n if (!source || typeof source !== 'object' || Array.isArray(source)) {\n return target;\n }\n\n // Update properties\n for (const key of Object.keys(target)) {\n if (source[key] !== undefined && (config.funcAllowed || typeof (source[key] !== 'function'))) {\n if (typeof source[key] === 'string' && config.dateStringToDate) {\n if (Array.isArray(config.dateStringToDate)) {\n if (config.dateStringToDate.includes(key)) {\n target[key] = Helper.parseDate(source[key]);\n }\n } else {\n target[key] = Helper.parseDate(source[key]);\n }\n } else {\n target[key] = source[key];\n }\n }\n }\n\n // Return target\n return target;\n }\n\n /**\n * Create Object or Objects of specified type with specified data\n */\n public static maps<T extends Standard>(\n data: Partial<T> | Partial<T>[] | { [key: string]: any } | { [key: string]: any }[],\n targetClass: new (...args: any[]) => T\n ): T[] {\n // Check data\n if (!data || typeof data !== 'object') {\n return undefined;\n }\n\n // Check array\n if (!Array.isArray(data)) {\n data = [data];\n }\n\n // Map\n return (data as any).map((item: any) => {\n return (targetClass as any).map(item);\n });\n }\n\n /**\n * Get plain parameter\n */\n public static getPlainParameter(parameter: string) {\n if (!parameter) {\n return parameter;\n }\n return parameter?.split('?')?.shift()?.split('#')?.shift();\n }\n\n /**\n * Get ID of an url parameter\n */\n public static getParameterId(parameter: string) {\n if (!parameter) {\n return parameter;\n }\n return Helper.getPlainParameter(parameter)?.split('-').pop();\n }\n\n /**\n * Delay\n */\n public static delay(ms: number) {\n const promise = new Promise((resolve) => setTimeout(resolve, ms));\n return promise;\n }\n\n /**\n * Deep freeze\n * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze#What_is_shallow_freeze\n */\n public static deepFreeze(object: any, preparedObjects = []) {\n // Prevent infinit regress\n if (preparedObjects.includes(object as never)) {\n return object;\n }\n preparedObjects.push(object as never);\n\n // Retrieve the property names defined on object\n const propNames = Object.getOwnPropertyNames(object);\n\n // Freeze properties before freezing self\n for (const name of propNames) {\n const value = object[name];\n\n if (value && typeof value === 'object') {\n Helper.deepFreeze(value, preparedObjects);\n }\n }\n\n return Object.freeze(object);\n }\n\n /**\n * Generates an unique identifier with 24 characters\n */\n public static getUID(): string {\n let dt = new Date().getTime();\n const uuid = 'xxxxxxxxxxxxxxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n // eslint-disable-next-line no-bitwise\n const r = (dt + Math.random() * 16) % 16 | 0;\n dt = Math.floor(dt / 16);\n // eslint-disable-next-line no-bitwise\n return (c === 'x' ? r : (r & 0x3) | 0x8).toString(16);\n });\n return uuid;\n }\n\n /**\n * Parse date string to date object\n */\n public static parseDate(dateString: string) {\n const reISO = /^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}(?:\\.\\d*))(?:Z|(\\+|-)([\\d|:]*))?$/;\n const reMsAjax = /^\\/Date\\((d|-|.*)\\)[\\/|\\\\]$/;\n if (typeof dateString === 'string') {\n const isoExec = reISO.exec(dateString);\n if (isoExec) {\n return new Date(dateString);\n }\n const msAjaxExec = reMsAjax.exec(dateString);\n if (msAjaxExec) {\n const cleaned = msAjaxExec[1].split(/[-+,.]/);\n return new Date(cleaned[0] ? +cleaned[0] : 0 - +cleaned[1]);\n }\n }\n return dateString;\n }\n\n /**\n * Get browser name and version\n */\n public static getBrowser() {\n const userAgent = navigator.userAgent;\n let data = userAgent.match(/(opera|chrome|safari|firefox|msie|trident(?=\\/))\\/?\\s*(\\d+)/i) || [];\n let version;\n if (/trident/i.test(data[1])) {\n version = /\\brv[ :]+(\\d+)/g.exec(userAgent) || [];\n return { name: 'IE', version: version[1] || '' };\n }\n if (data[1] === 'Chrome') {\n version = userAgent.match(/\\bOPR|Edge\\/(\\d+)/);\n if (version != null) {\n return { name: 'Opera', version: version[1] };\n }\n }\n data = data[2] ? [data[1], data[2]] : [navigator.appName, navigator.appVersion, '-?'];\n version = userAgent.match(/version\\/(\\d+)/i);\n if (version !== null) {\n data.splice(1, 1, version[1]);\n }\n return {\n name: data[0],\n version: data[1],\n };\n }\n\n /**\n * Whether first parameter is a deep subset of second parameter\n * Hint: functions will be ignored\n */\n static isSubset(a: any, b: any) {\n // Equal\n if (a === b) {\n return true;\n }\n\n // Different type\n if (typeof a !== typeof b) {\n return false;\n }\n\n // Process array\n if (Array.isArray(a)) {\n for (const [key, value] of Object.entries(a)) {\n if (Helper.isSubset(value, b[key])) {\n return false;\n }\n }\n return true;\n }\n\n // Process object\n if (typeof a === 'object') {\n const plain = JSON.parse(JSON.stringify(a));\n for (const [key, value] of Object.entries(plain)) {\n if (Helper.isSubset(value, b[key])) {\n return false;\n }\n }\n return true;\n }\n\n // Else\n return true;\n }\n\n /**\n * Whether parameters are equal (have equal properties)\n * Hint: functions will be ignored\n */\n static isEqual(a: any, b: any) {\n return Helper.isSubset(a, b) && Helper.isSubset(b, a);\n }\n\n /**\n * First level difference of two objects\n * Hint: functions will be ignored and when an array or an object is different the hole array or object will used as property value\n *\n * @returns Record<string, any> Object with properties from first object\n */\n static getDiff(a: Record<string, any>, b: Record<string, any>, clone: boolean = true) {\n const result = {};\n let firstObject = a;\n if (clone) {\n firstObject = JSON.parse(JSON.stringify(a));\n }\n for (const [key, value] of Object.entries(firstObject)) {\n if (!Helper.isSubset(value, b[key])) {\n result[key] = value;\n }\n }\n return result;\n }\n\n /**\n * Check if propertie is type of HTMLCollection or NodeList\n * See https://stackoverflow.com/a/7238344\n *\n * @param nodes\n */\n static isNodeList(nodes) {\n try {\n const stringRepr = Object.prototype.toString.call(nodes);\n return (\n typeof nodes === 'object' &&\n /^\\[object (HTMLCollection|NodeList|Object)\\]$/.test(stringRepr) &&\n typeof nodes.length === 'number' &&\n (nodes.length === 0 || (typeof nodes[0] === 'object' && nodes[0].nodeType > 0))\n );\n } catch (e) {\n return false;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Helper } from '../classes/helper.class';\n\n/**\n * Image service\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class ImageService {\n /**\n * Preaload images (for lazy handling)\n *\n * @param options\n * @protected\n */\n public preLoadImages(options?: {\n doneFunction?: () => Promise<any> | any | void;\n elements?:\n | Element\n | Element[]\n | HTMLCollectionOf<Element>\n | Node\n | NodeList\n | Document\n | HTMLElement\n | HTMLElement[];\n regExp?: RegExp;\n }): Promise<any> {\n // Init configuration\n const config = {\n doneFunnction: undefined,\n elements: document,\n regExp: undefined,\n ...options,\n };\n\n return new Promise((resolve) => {\n // Convert element(s) into array\n if (!Array.isArray(config.elements)) {\n // NodeList or HTMLCollection\n if (Helper.isNodeList(config.elements)) {\n config.elements = Array.from(config.elements as HTMLCollection | NodeList) as Element[];\n }\n\n // Single element\n else {\n config.elements = [config.elements] as Element[];\n }\n }\n\n // Init loading\n const promises = [];\n\n // Get all images\n let images: HTMLImageElement[] = [];\n config.elements.forEach((element) => {\n images = images.concat(Array.from(element.getElementsByTagName('img')));\n });\n\n // Prepare images\n for (let image of images) {\n const src = image.getAttribute('src');\n\n // Check if changes are necessary and possible\n if (\n (image.complete && image.naturalHeight !== 0) || // already laoded\n !src || // Image has no src\n config.regExp?.test(src) // Test if src matches regular expression\n ) {\n continue;\n }\n\n // Replace lazy loading image with immediately loading image\n if (image.getAttribute('loading') === 'lazy') {\n const newImage = document.createElement('img');\n Array.from(image.attributes).forEach((attr) => {\n if (attr.name !== 'loading' && attr.name !== 'src') {\n newImage.setAttribute(attr.name, attr.value);\n }\n });\n image.replaceWith(newImage);\n image = newImage;\n }\n\n // Wait for laoding\n promises.push(this.loadImage(image, src));\n }\n\n // Wait until all images loaded\n Promise.all(promises)\n .catch((e) => console.error('Error during image loading', e))\n .finally(async () => {\n // Return result\n let result;\n if (config.doneFunnction) {\n result = await config.doneFunction();\n }\n resolve(result);\n });\n });\n }\n\n /**\n * Load image for image element\n *\n * @param imageElement\n * @param src\n * @protected\n */\n public async loadImage(imageElement: HTMLImageElement, src?: string) {\n src = src || imageElement.src;\n return new Promise((resolve, reject) => {\n imageElement.onload = () => resolve(imageElement);\n imageElement.onerror = reject;\n imageElement.src = src;\n });\n }\n}\n","import { Directive, ElementRef, HostListener, Inject, Input, OnInit, PLATFORM_ID } from '@angular/core';\nimport { ImageService } from '../services/image.service';\nimport { isPlatformBrowser } from '@angular/common';\n\n/**\n * Set same height (maximum) to different elements\n */\n@Directive({\n selector: '[ltMatchHeight]',\n})\nexport class MatchHeightDirective implements OnInit {\n // class name to match height\n @Input()\n ltMatchHeight: string | string[];\n\n // Replace lazy loading images with immediate loading images\n @Input()\n loadImages = true;\n\n // Wether current platform is a browser\n readonly isBrowser: boolean;\n\n constructor(protected el: ElementRef, protected imageService: ImageService, @Inject(PLATFORM_ID) platformId: string) {\n this.isBrowser = isPlatformBrowser(platformId);\n }\n\n @HostListener('window:resize')\n onResize() {\n this.matchHeight(this.el.nativeElement, this.ltMatchHeight);\n }\n\n ngOnInit() {\n this.matchHeight(this.el.nativeElement, this.ltMatchHeight);\n }\n\n async matchHeight(parent: HTMLElement, target: string | string[]) {\n if (!parent) {\n return;\n }\n\n let classNames;\n if (!Array.isArray(target)) {\n classNames = [target];\n } else {\n classNames = target;\n }\n\n for (const className of classNames) {\n // find all child structureElements with the selected class name\n const children = parent.getElementsByClassName(className);\n\n if (!children || children.length < 2) {\n continue;\n }\n\n // Load images of children\n if (this.loadImages) {\n await this.imageService.preLoadImages({ elements: children });\n }\n\n // reset all children height\n Array.from(children).forEach((element: HTMLElement) => {\n element.style.height = 'initial';\n });\n\n // get all the child structureElements heights\n const itemHeights = Array.from(children).map((element) => {\n if (element.getBoundingClientRect) {\n return element.getBoundingClientRect().height;\n }\n return 0;\n });\n\n // find out the tallest one\n const maxHeight = itemHeights.reduce((prev, curr) => (curr > prev ? curr : prev), 0);\n\n // update the child structureElements height to the tallest one\n Array.from(children).forEach((element: HTMLElement) => (element.style.height = `${maxHeight}px`));\n }\n }\n}\n","import { Directive, ElementRef, Input, OnInit } from '@angular/core';\n\n/**\n * Reszise detection\n * (inpsired by: https://stackblitz.com/edit/angular-resizable)\n */\n@Directive({\n selector: '[ltResizable]',\n})\nexport class ResizableDirective implements OnInit {\n @Input() resizableGrabWidth = 8;\n @Input() resizableMinWidth = 10;\n\n dragging = false;\n\n constructor(private el: ElementRef) {}\n\n ngOnInit(): void {\n this.addListenerToDocument();\n this.addListenerToElement();\n }\n\n mouseMoveG(evt) {\n if (!this.dragging) {\n return;\n }\n this.newWidth(evt.clientX - this.el.nativeElement.offsetLeft);\n evt.stopPropagation();\n }\n\n newWidth(wid) {\n const result = Math.max(this.resizableMinWidth, wid);\n this.el.nativeElement.style.width = result + 'px';\n }\n\n mouseDown(evt) {\n if (this.inDragRegion(evt)) {\n this.dragging = true;\n this.preventGlobalMouseEvents();\n evt.stopPropagation();\n }\n }\n\n restoreGlobalMouseEvents() {\n document.body.style['pointer-events'] = 'auto';\n }\n\n mouseUpG(evt: Event) {\n if (!this.dragging) {\n return;\n }\n this.restoreGlobalMouseEvents();\n this.dragging = false;\n evt.stopPropagation();\n }\n\n mouseMove(evt) {\n if (this.inDragRegion(evt) || this.dragging) {\n this.el.nativeElement.style.cursor = 'col-resize';\n } else {\n this.el.nativeElement.style.cursor = 'default';\n }\n }\n\n preventGlobalMouseEvents() {\n document.body.style['pointer-events'] = 'none';\n }\n\n inDragRegion(evt) {\n return this.el.nativeElement.clientWidth - evt.clientX + this.el.nativeElement.offsetLeft < this.resizableGrabWidth;\n }\n\n private addListenerToDocument() {\n document.addEventListener(\n 'mousemove',\n (e) => {\n this.mouseMoveG(e);\n },\n true\n );\n\n document.addEventListener(\n 'mouseup',\n (e) => {\n this.mouseUpG(e);\n },\n true\n );\n }\n\n private addListenerToElement() {\n this.el.nativeElement.addEventListener(\n 'mousedown',\n (e) => {\n this.mouseDown(e);\n },\n true\n );\n\n this.el.nativeElement.addEventListener(\n 'mousemove',\n (e) => {\n this.mouseMove(e);\n },\n true\n );\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n/**\n * Truncate string with ellipses\n */\n@Pipe({\n name: 'ltEllipses',\n})\nexport class EllipsesPipe implements PipeTransform {\n transform(value: string, limit: number): string {\n if (!value) {\n return null;\n }\n\n return value.length > limit ? value.substring(0, limit) + '...' : value;\n }\n}\n","import { DomSanitizer } from '@angular/platform-browser';\nimport { Pipe, PipeTransform } from '@angular/core';\n\n/**\n * Declarate html as safe\n */\n@Pipe({name: 'ltSafeHtml'})\nexport class SafeHtmlPipe implements PipeTransform {\n constructor(private sanitized: DomSanitizer) {}\n\n transform(value) {\n return this.sanitized.bypassSecurityTrustHtml(value);\n }\n}\n","import { APOLLO_OPTIONS } from 'apollo-angular';\nimport { HttpLink } from 'apollo-angular/http';\nimport { ModuleWithProviders, NgModule, Provider } from '@angular/core';\nimport { AuthService } from './services/auth.service';\nimport { BASE_MODULE_CONFIG, BaseModuleConfig } from './interfaces/base-module-config.interface';\nimport { apolloOptionsFactory } from './factories/apollo-options.factory';\nimport { ContextMenuDirective } from './directives/context-menu.directive';\nimport { LazyLoadDirective } from './directives/lazy-load.directive';\nimport { MatchHeightDirective } from './directives/match-height.directive';\nimport { ResizableDirective } from './directives/resizable.directive';\nimport { EllipsesPipe } from './pipes/ellipses.pipe';\nimport { SafeHtmlPipe } from './pipes/safe-html.pipe';\n\n// Imported and exported elements\nconst elements = [\n // Directives\n ContextMenuDirective,\n LazyLoadDirective,\n MatchHeightDirective,\n ResizableDirective,\n\n // Pipes\n EllipsesPipe,\n SafeHtmlPipe,\n];\n\n/**\n * Base module\n */\n@NgModule({\n declarations: elements,\n exports: elements,\n})\nexport class BaseModule {\n /**\n * Set configuration of base module in root module of the app\n */\n static forRoot(baseModuleConfig: BaseModuleConfig = {}): ModuleWithProviders<BaseModule> {\n // Default config\n const config = {\n apiUrl: 'localhost:3000',\n authGuardRedirectUrl: '/auth',\n logging: false,\n version: null,\n prefix: null,\n scrollDetectionOffset: 200,\n scrollOffset: 100,\n storageType: 'local',\n ...baseModuleConfig,\n };\n\n // Prepare providers\n const providers: Provider[] = [\n {\n provide: BASE_MODULE_CONFIG,\n useValue: baseModuleConfig,\n },\n ];\n\n // Add apollo features if API URL is set\n if (baseModuleConfig.apiUrl) {\n providers.push({\n provide: APOLLO_OPTIONS,\n useFactory: apolloOptionsFactory,\n deps: [BASE_MODULE_CONFIG, HttpLink, AuthService],\n });\n } else if (config.logging) {\n console.log('apiUrl is missing, ApolloLink is not initialized');\n }\n\n // Return root module\n return {\n ngModule: BaseModule,\n providers,\n };\n }\n}\n","import { Helper } from './helper.class';\n\n/**\n * Standard class\n * Other classes should extend the Standard class, if they offer own functions\n * If the extended class uses object properties with own map functions, it should implement its own map function\n */\nexport class Standard {\n /**\n * Static map method\n */\n public static map<T extends Standard>(\n this: new (...args: any[]) => T,\n data: Partial<T> | { [key: string]: any },\n item: T = new this()\n ): T {\n return (item as any).map(data);\n }\n\n /**\n * Map data into an object\n */\n public map(data: Partial<this> | { [key: string]: any }): this {\n return Helper.map(data, this);\n }\n\n /**\n * Clone object (and map additional data)\n */\n public clone(mapData?: Partial<this> | { [key: string]: any }): this {\n const current = JSON.parse(JSON.stringify(this));\n if (mapData) {\n Object.assign(current, mapData);\n }\n return new (this as any).constructor().map(current);\n }\n\n /**\n * Compare this with another object\n * Hint: functions will be ignored and when an array or an object is different the hole array or object will used as property value\n *\n * @return Record<string, any> with properties of this object which are different\n */\n public getDiff(compare: Record<string, any>, clone: boolean = true) {\n return Helper.getDiff(this, compare, clone);\n }\n}\n","import { Standard } from './standard.class';\nimport { Helper } from './helper.class';\n\n/**\n * User class\n */\nexport class BasicUser extends Standard {\n id: string = undefined;\n email: string = undefined;\n firstName: string = undefined;\n lastName: string = undefined;\n roles: string[] = [];\n username: string = undefined;\n\n // ===================================================================================================================\n // Methods\n // ===================================================================================================================\n\n /**\n * Mapping\n */\n public map(data: Partial<this> | { [key: string]: any }): this {\n Helper.map(data, this);\n return this;\n }\n\n /**\n * Checks whether the user has at least one of the required roles\n */\n public hasRole(roles: string | string[]) {\n if (typeof roles === 'string') {\n roles = [roles];\n }\n if (!this.roles || this.roles.length < 1) {\n return false;\n }\n return !roles || roles.length < 1 ? true : this.roles.some((role) => roles.includes(role));\n }\n\n /**\n * Checks whether the user has all required roles\n */\n public hasAllRoles(roles: string | string[]) {\n if (typeof roles === 'string') {\n roles = [roles];\n }\n if (!this.roles || this.roles.length < 1) {\n return false;\n }\n return !roles ? true : roles.every((role) => this.roles.includes(role));\n }\n}\n","/**\n * GraphQL enum\n */\nexport class GraphQLEnum {\n value: string;\n\n constructor(value) {\n this.value = value;\n }\n}\n","import { Standard } from './standard.class';\n\n/**\n * GraphQL type\n */\nexport class GraphQLType extends Standard {\n type = '';\n isEnum = false;\n validEnums: string[] = [];\n}\n","import { GraphQLSchema } from 'graphql';\nimport { Maybe } from 'graphql/jsutils/Maybe';\nimport { GraphQLNamedType } from 'graphql/type/definition';\nimport { GraphQLRequestType } from '../enums/graphql-request-type.enum';\nimport { Helper } from './helper.class';\nimport { GraphQLType } from './graphql-type.class';\nimport { IGraphQLTypeCollection } from '../interfaces/graphql-type-collection.interface';\n\n/**\n * GraphQL meta\n */\nexport class GraphQLMeta {\n // Frozen caches\n protected args: Record<string, any> = {};\n protected fields: Record<string, any> = {};\n\n /**\n * Integrate schema\n */\n constructor(protected schema: GraphQLSchema) {\n if (!schema) {\n throw Error('Missing schema');\n }\n }\n\n /**\n * Get arguments of GraphQL function\n */\n getArgs(\n functionName: string,\n options: { cache?: boolean; freeze?: boolean; type?: GraphQLRequestType } = {}\n ): IGraphQLTypeCollection {\n const {cache, freeze, type} = {\n cache: true,\n freeze: true,\n type: undefined,\n ...options,\n };\n\n // Get cache\n if (cache && freeze) {\n const args = this.args[functionName + type];\n if (args) {\n return args;\n }\n }\n\n const func = this.getFunction(functionName, {type});\n const result = {};\n if (func?.args) {\n func.args.forEach((item) => {\n result[item.name] = this.getDeepType(item.type);\n });\n }\n\n // Set cache\n if (freeze) {\n this.args[functionName + type] = Helper.deepFreeze(result);\n }\n\n return result;\n }\n\n /**\n * Get fields of GraphQL function\n */\n getFields(\n functionName: string,\n options: { cache?: boolean; freeze?: boolean; type?: GraphQLRequestType } = {}\n ): IGraphQLTypeCollection {\n const {cache, freeze, type} = {\n cache: true,\n freeze: true,\n type: undefined,\n ...options,\n };\n\n // Get cache\n if (cache && freeze) {\n const args = this.fields[functionName + type];\n if (args) {\n return args;\n }\n }\n\n const func = this.getFunction(functionName, options);\n const result: IGraphQLTypeCollection = this.getDeepType(func.type) as IGraphQLTypeCollection;\n\n // Set cache\n if (freeze) {\n this.fields[functionName + type] = Helper.deepFreeze(result);\n }\n\n return result;\n }\n\n /**\n * Get GraphQL function\n */\n protected getFunction(name: string, options: { type?: GraphQLRequestType } = {}): Record<string, any> {\n // Set config\n const config = {\n ...options,\n };\n\n // Init possible functions\n let functions = {};\n\n // If function type is set\n if (config.type) {\n const graphQLType = config.type.charAt(0).toUpperCase() + config.type.slice(1);\n const type = this.schema.getType(graphQLType);\n if (type) {\n functions = (type as any).getFields();\n }\n }\n\n // If function type is not set\n else {\n ['Subscription', 'Mutation', 'Query'].forEach((item) => {\n const type: any = this.schema.getType(item);\n if (type) {\n functions = {\n ...functions,\n ...(type.getFields() || {}),\n };\n }\n });\n }\n\n // Get function via name\n return functions[name];\n }\n\n /**\n * Get type\n */\n protected getType(name: string): Maybe<GraphQLNamedType> {\n return this.schema.getType(name);\n }\n\n /**\n * Get deep type data\n */\n protected getDeepType(type: any, prepared: WeakMap<any, any> = new WeakMap()): IGraphQLTypeCollection | GraphQLType {\n // Check type\n if (!type) {\n return type;\n }\n\n // Infinite regress protection\n const preparedObject = {};\n\n // Check prepared\n if (typeof type === 'object') {\n const preparedType = prepared.get(type);\n if (preparedType) {\n return preparedType;\n }\n\n // Set prepared\n prepared.set(type, preparedObject);\n }\n\n // Search deeper\n if (type.ofType) {\n const ofTypeResult = this.getDeepType(type.ofType, prepared);\n Object.assign(preparedObject, ofTypeResult);\n return ofTypeResult;\n }\n\n // Process fields\n if (type._fields) {\n const result = {};\n for (const [key, value] of Object.entries(type._fields)) {\n result[key] = this.getDeepType(value, prepared);\n }\n Object.assign(preparedObject, result);\n return result;\n }\n\n // Get type name\n if (type.type) {\n const typeResult = this.getDeepType(type.type, prepared);\n Object.assign(preparedObject, typeResult);\n return typeResult;\n }\n\n // Initialize GraphQLType\n const graphqlType = GraphQLType.map({\n type: type.name,\n });\n\n // Set enum values\n if (!!type._values) {\n graphqlType.isEnum = true;\n for (const [key, value] of Object.entries(type._nameLookup)) {\n if (!(value as any).isDeprecated) {\n graphqlType.validEnums.push(key);\n }\n }\n }\n\n // Finish\n prepared.set(type, graphqlType);\n return graphqlType;\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, CanActivateChild, Router, RouterStateSnapshot } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { AuthService } from '../services/auth.service';\nimport { BASE_MODULE_CONFIG, BaseModuleConfig } from '../interfaces/base-module-config.interface';\n\n/**\n * Authentication guard\n */\n@Injectable()\nexport class AuthGuard implements CanActivate, CanActivateChild {\n\n /**\n * Imports\n */\n constructor(\n private router: Router,\n private authService: AuthService,\n @Inject(BASE_MODULE_CONFIG) private moduleConfig: BaseModuleConfig\n ) {}\n\n /**\n * Can activate main route\n */\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> {\n return new Observable((subscriber) => {\n let allowed = false;\n const opposite = route?.data?.opposite ? route?.data?.opposite : false;\n const redirectUrl = route?.data?.redirectUrl ? route.data.redirectUrl : this.moduleConfig.authGuardRedirectUrl;\n\n if (this.authService.token && !opposite) {\n if (route.data.allowedRole) {\n const user = this.authService.currentUser;\n allowed = user?.roles?.includes(route.data.allowedRole);\n } else {\n allowed = true;\n }\n } else if (!this.authService.token && opposite) {\n allowed = true;\n }\n\n if (!allowed) {\n this.router.navigate([redirectUrl]);\n }\n\n subscriber.next(allowed);\n subscriber.complete();\n });\n }\n\n /**\n * Can activate child route\n */\n canActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> {\n return this.canActivate(route, state);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { CanDeactivate } from '@angular/router';\nimport { ICanComponentDeactivate } from '../interfaces/can-component-deactivate.interface';\n\n/**\n * Guard to check if a component can be deactivated\n */\n@Injectable()\nexport class CanDeactivateGuard implements CanDeactivate<ICanComponentDeactivate> {\n canDeactivate(component: ICanComponentDeactivate) {\n return component.canDeactivate ? component.canDeactivate() : true;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, CanActivateChild, Router, RouterStateSnapshot } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { AuthService } from '../services/auth.service';\n\n/**\n * Logout guard\n */\n@Injectable()\nexport class LogoutGuard implements CanActivate, CanActivateChild {\n constructor(private router: Router, private authService: AuthService) {}\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> {\n return new Observable((subscriber) => {\n if (this.authService.token) {\n this.authService.logout();\n }\n\n subscriber.next(true);\n subscriber.complete();\n });\n }\n\n canActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> {\n return this.canActivate(route, state);\n }\n}\n","/**\n * Comparison operator enum\n */\nexport enum ComparisonOperatorEnum {\n EQ = 'EQ',\n GT = 'GT',\n GTE = 'GTE',\n IN = 'IN',\n LT = 'LT',\n LTE = 'LTE',\n NE = 'NE',\n NIN = 'NIN',\n REGEX = 'REGEX',\n}\n","/**\n * GraphQL request type enum\n */\nexport enum GraphQLRequestType {\n QUERY = 'query',\n MUTATION = 'mutation',\n SUBSCRIPTION = 'subscription',\n}\n","/**\n * Logical operator enum\n */\nexport enum LogicalOperatorEnum {\n AND = 'AND',\n NOR = 'NOR',\n OR = 'OR',\n}\n","export enum SortOrderEnum {\n ASC = 'ASC',\n DESC = 'DESC',\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n/**\n * Fullscreen service\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class FullscreenService {\n private _isFullscreenActive: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n\n constructor() {\n this.listenToFullscreenEvent();\n }\n\n get fullscreenState(): boolean {\n return this._isFullscreenActive.value;\n }\n\n get fullscreenStateAsObservable(): Observable<boolean> {\n return this._isFullscreenActive.asObservable();\n }\n\n public toggleFullscreen() {\n const elem = document.documentElement;\n if (!this._isFullscreenActive.value) {\n elem.requestFullscreen();\n this._isFullscreenActive.next(true);\n } else {\n document.exitFullscreen();\n this._isFullscreenActive.next(false);\n }\n }\n\n /**\n * Event Listener for fullscreen toggle\n */\n private listenToFullscreenEvent() {\n document.addEventListener('fullscreenchange', () => {\n if (document.fullscreenElement) {\n this._isFullscreenActive.next(true);\n } else {\n this._isFullscreenActive.next(false);\n }\n });\n }\n}\n","import { Apollo, gql } from 'apollo-angular';\nimport { Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { buildClientSchema, getIntrospectionQuery, GraphQLSchema, IntrospectionQuery } from 'graphql';\nimport { map } from 'rxjs/operators';\nimport { GraphQLMeta } from '../classes/graphql-meta.class';\nimport { Helper } from '../classes/helper.class';\n\n/**\n * GraphQL meta service\n *\n * For collecting meta information of the GraphQL API\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class GraphQLMetaService {\n\n // Caches\n protected _frozenSchema: GraphQLSchema;\n protected _frozenSchemaObservable: Observable<GraphQLSchema>;\n protected _meta: GraphQLMeta;\n protected _metaObservable: Observable<GraphQLMeta>;\n protected _schemaObservable: Observable<GraphQLSchema>;\n\n // Private caches\n private _introspectionQuery: IntrospectionQuery;\n\n /**\n * Include services\n */\n constructor(protected apollo: Apollo) {}\n\n /**\n * Getter of introspectionQuery\n */\n get introspectionQuery(): IntrospectionQuery {\n return JSON.parse(JSON.stringify(this._introspectionQuery));\n }\n\n /**\n * Get schema for API\n * See https://www.apollographql.com/blog/three-ways-to-represent-your-graphql-schema-a41f4175100d\n */\n public getSchema(options: { cache?: boolean; freeze?: boolean } = {}): Observable<GraphQLSchema> {\n // Get configurations\n const config = {\n cache: true,\n freeze: true,\n ...options,\n };\n\n // Use caching\n if (config.cache) {\n if (config.freeze && this._frozenSchema) {\n return of(this._frozenSchema);\n }\n if (this._introspectionQuery) {\n return of(buildClientSchema(this.introspectionQuery));\n }\n if (config.freeze && this._frozenSchemaObservable) {\n return this._frozenSchemaObservable;\n } else if (!config.freeze && this._schemaObservable) {\n return this._schemaObservable;\n }\n }\n\n // Request schema from server\n const observable = this.apollo\n .query({\n query: gql(getIntrospectionQuery({descriptions: false})),\n })\n .pipe(\n map((schema: any) => {\n // Cache introspectionQuery\n this._introspectionQuery = schema.data;\n\n // Convert schema to GraphQLSchema\n this._frozenSchema = Helper.deepFreeze(buildClientSchema(this.introspectionQuery));\n\n // Return GraphQLSchema\n if (config.freeze) {\n return this._frozenSchema;\n }\n return buildClientSchema(schema.data);\n })\n );\n\n // Set observables\n if (config.freeze) {\n this._frozenSchemaObservable = observable;\n } else {\n this._schemaObservable = observable;\n }\n\n // Return result\n return observable;\n }\n\n /**\n * Get meta for API\n * See https://www.apollographql.com/blog/three-ways-to-represent-your-graphql-schema-a41f4175100d\n */\n public getMeta(options: { cache?: boolean; log?: boolean } = {}): Observable<GraphQLMeta> {\n // Get configurations\n const config = {\n cache: true,\n log: false,\n ...options,\n };\n\n // Use caching\n if (config.cache) {\n if (this._meta) {\n return of(this._meta);\n } else if (this._metaObservable) {\n return this._metaObservable;\n }\n }\n\n // Request schema from server\n const observable = this.getSchema(options).pipe(\n map((schema: any) => {\n // Log\n if (config.log) {\n console.log({schema});\n }\n\n this._meta = new GraphQLMeta(schema);\n return this._meta;\n })\n );\n\n // Set observables\n this._metaObservable = observable;\n\n // Return result\n return observable;\n }\n}\n","import { Apollo, gql } from 'apollo-angular';\nimport { Injectable } from '@angular/core';\nimport { IGraphQLOptions } from '../interfaces/graphql-options.interface';\nimport { GraphQLRequestType } from '../enums/graphql-request-type.enum';\nimport { Observable, throwError } from 'rxjs';\nimport { GraphQLMetaService } from './graphql-meta.service';\nimport { GraphQLEnum } from '../classes/graphql-enum.class';\nimport { GraphQLType } from '../classes/graphql-type.class';\nimport { IGraphQLTypeCollection } from '../interfaces/graphql-type-collection.interface';\n\n/**\n * GraphQL service\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class GraphQLService {\n /**\n * Include services\n */\n constructor(protected apollo: Apollo, protected graphQLMetaService: GraphQLMetaService) {}\n\n /**\n * GraphQL request\n */\n public graphQl(graphql: string, options: IGraphQLOptions = {}): Observable<any> {\n // Check arguments\n if (!graphql) {\n throwError('Missing graphql argument');\n }\n\n // Get config\n const config = {\n arguments: null,\n fields: null,\n log: false,\n model: null,\n type: GraphQLRequestType.QUERY,\n ...options,\n };\n\n // Convert class to Object for arguments\n if (typeof config.arguments === 'function') {\n config.arguments = new config.arguments();\n }\n\n // Convert class to Object for fields\n if (typeof config.fields === 'function') {\n config.fields = new config.fields();\n }\n\n // Log\n if (config.log) {\n console.log({ config });\n }\n\n // Send request\n return new Observable((subscriber) => {\n // Get meta\n this.graphQLMetaService.getMeta({ log: config.log }).subscribe((meta) => {\n // Prepare fields\n let fields;\n let allowedFields;\n\n // Log meta\n if (config.log) {\n console.log({ meta });\n }\n\n if (config.fields) {\n allowedFields = meta.getFields(graphql, { type: config.type });\n\n // Log meta\n if (config.log) {\n console.log({ allowedFields });\n }\n\n const fieldsData = this.prepareFields(config.fields, {\n allowed: allowedFields,\n });\n\n // Log fields data\n if (config.log) {\n fieldsData.usedFields.sort();\n fieldsData.schemaFields.sort();\n const filtered = fieldsData.schemaFields.filter((field) => !fieldsData.usedFields.includes(field));\n const unused = this.graphQLTypeCollectionToStringArray(allowedFields).filter(\n (field) => !fieldsData.usedFields.includes(field)\n );\n console.log({ fieldsData, filtered, unused });\n }\n\n fields = fieldsData.fieldsString;\n }\n\n if (fields && !fields.startsWith('{')) {\n fields = '{' + fields + '\\n}';\n }\n\n // Log fields\n if (config.log) {\n console.log({ fields });\n }\n\n // Get allowed args\n const allowedArgs = meta.getArgs(graphql, { type: config.type });\n\n // Log allowed args\n if (config.log) {\n console.log({ allowedArgs });\n }\n\n const argsData = this.prepareArguments(config.arguments, {\n allowed: allowedArgs,\n });\n\n // Log args data\n if (config.log) {\n argsData.usedArgs.sort();\n argsData.schemaArgs.sort();\n const filtered = argsData.schemaArgs.filter((field) => !argsData.usedArgs.includes(field));\n const unused = this.graphQLTypeCollectionToStringArray(allowedArgs)\n .sort()\n .filter((field) => !argsData.usedArgs.includes(field));\n console.log({ argsData, filtered, unused });\n }\n\n const args = argsData?.argsString || '';\n\n // Log\n if (config.log) {\n console.log({ graphQL: graphql, args, fields, type: config.type });\n }\n\n // Prepare request\n const documentNode = fields\n ? gql(config.type + '{\\n' + graphql + args + fields + '\\n}')\n : gql(config.type + '{\\n' + graphql + args + '\\n}');\n\n // Log\n if (config.log) {\n console.log({ documentNode });\n }\n\n const request: any = {};\n request[config.type] = documentNode;\n\n // Log\n if (config.log) {\n console.log({ request });\n }\n\n let func;\n if (config.type === GraphQLRequestType.MUTATION) {\n func = 'mutate';\n request[config.type] = documentNode;\n } else if (config.type === GraphQLRequestType.SUBSCRIPTION) {\n func = 'subscribe';\n request.query = documentNode;\n } else {\n func = config.type;\n request[config.type] = documentNode;\n }\n\n (this.apollo as any)[func](request).subscribe(\n (result: any) => {\n const data = result?.data?.[graphql] !== undefined ? result.data[graphql] : result;\n\n // Direct data\n if (!config.model) {\n subscriber.next(data);\n }\n\n // Map data as array\n else if (Array.isArray(data)) {\n subscriber.next(\n data.map((item) => {\n return config.model.map(item);\n })\n );\n }\n\n // Map data\n else {\n subscriber.next(config.model.map(data));\n }\n\n if (config.type !== GraphQLRequestType.SUBSCRIPTION) {\n // Done\n subscriber.complete();\n }\n },\n (error: any) => {\n subscriber.error(error);\n subscriber.complete();\n }\n );\n });\n });\n }\n\n /**\n * Get fields / args from IGraphQLTypeCollection\n */\n protected graphQLTypeCollectionToStringArray(\n collection: IGraphQLTypeCollection,\n current = '',\n result = [],\n cacheNode = []\n ) {\n if (collection) {\n if (collection instanceof GraphQLType) {\n result.push(current);\n } else {\n if (current?.includes('.')) {\n cacheNode.push(current.split('.')[1]);\n } else if (current) {\n cacheNode.push(current);\n }\n for (const key of Object.keys(collection)) {\n if (current === key || cacheNode.includes(key)) {\n continue;\n }\n this.graphQLTypeCollectionToStringArray(\n collection[key] as IGraphQLTypeCollection,\n current ? current + '.' + key : key,\n result,\n cacheNode\n );\n }\n }\n }\n return result;\n }\n\n /**\n * Prepare arguments for GraphQL request\n */\n protected prepareArguments(\n args: any,\n options: {\n allowed?: any;\n level?: number;\n parent?: string;\n schemaArgs?: string[];\n usedArgs?: string[];\n } = {}\n ): { argsString: string; schemaArgs: string[]; usedArgs: string[] } {\n // Init config variables\n const { allowed, level, parent, schemaArgs, usedArgs } = {\n allowed: null,\n level: 1,\n parent: '',\n schemaArgs: [],\n usedArgs: [],\n ...options,\n };\n\n // Check args\n if (args === undefined || args === null) {\n return { argsString: '', schemaArgs, usedArgs };\n }\n\n // Init args\n const result = [];\n\n // Process array\n if (Array.isArray(args)) {\n const allowedKeys = allowed ? Object.keys(allowed) : null;\n for (const item of args) {\n let key = null;\n if (allowed) {\n if (allowed.length < 1) {\n break;\n }\n key = allowedKeys?.shift();\n }\n\n // Process value\n result.push(\n this.prepareArguments(item, {\n allowed: key ? allowed[key] : null,\n level: level + 1,\n parent: parent + key + '.',\n schemaArgs,\n usedArgs,\n }).argsString\n );\n }\n\n // Encapsulation of the array result\n if (result.length) {\n // Complete result, encapsulated via round brackets\n if (level === 1) {\n return { argsString: '(' + result.join(', ') + ')', schemaArgs, usedArgs };\n }\n\n // Deeper result part, encapsulated via square brackets\n else {\n return { argsString: '[' + result.join(', ') + ']', schemaArgs, usedArgs };\n }\n }\n }\n\n // Process object\n else if (typeof args === 'object') {\n // Check object is empty\n if (args && Object.keys(args).length === 0 && Object.getPrototypeOf(args) === Object.prototype) {\n return { argsString: '{}', schemaArgs, usedArgs };\n }\n // Process all object entries\n for (const [key, value] of Object.entries(args)) {\n // Init data for current entry\n const currentKey = parent + key;\n schemaArgs.push(currentKey);\n\n // If the allowed key handling is enabled and the current key is not included in the list of allowed keys,\n // the current key will be skipped\n if (allowed && !allowed[key]) {\n continue;\n }\n\n // Skip value if not exists\n if (value === undefined || value === null) {\n continue;\n }\n\n // Add current key to metadata\n usedArgs.push(currentKey);\n\n // Process GraphQLEnum\n if (value instanceof GraphQLEnum) {\n result.push(key + ':' + value.value);\n continue;\n }\n\n // Process array\n else if (Array.isArray(value)) {\n result.push(\n key +\n ': [' +\n value.map(\n (item) =>\n this.prepareArguments(item, {\n allowed: allowed[key],\n level: level + 1,\n parent: currentKey + '.',\n schemaArgs,\n usedArgs,\n }).argsString\n ) +\n ']'\n );\n continue;\n }\n\n // Prepare additional result string\n let additionalResult = key + ': ';\n\n // Value is a date object\n if (typeof value === 'object' && Object.prototype.toString.call(value) === '[object Date]') {\n additionalResult += `\"\"\"${(value as Date).toString()}\"\"\"`;\n }\n\n // Value is a string\n else if (typeof value === 'string') {\n // Enum (doesn't need quotation marks)\n if (allowed[key].isEnum) {\n additionalResult += value;\n }\n\n // String\n else {\n additionalResult += `\"\"\"${value.replace(/\"/g, '\\\\\"')}\"\"\"`;\n }\n }\n\n // Value is a simple boolean or a number\n else if (typeof value === 'boolean' || typeof value === 'number') {\n additionalResult += value;\n }\n\n // Others\n else {\n additionalResult += this.prepareArguments(value, {\n allowed: allowed[key],\n level: level + 1,\n parent: currentKey + '.',\n schemaArgs,\n usedArgs,\n }).argsString;\n }\n\n // Push deeper part into result array\n result.push(additionalResult);\n }\n\n // Encapsulation of the object result\n if (result.length) {\n // Complete result, encapsulated via round brackets\n if (level === 1) {\n return { argsString: '(' + result.join(', ') + ')', schemaArgs, usedArgs };\n }\n\n // Deeper result part, encapsulated via curly brackets\n else {\n return { argsString: '{' + result.join(', ') + '}', schemaArgs, usedArgs };\n }\n }\n }\n\n // Prepare and process other / unknown values as JSON\n else {\n return { argsString: JSON.stringify(args), schemaArgs, usedArgs };\n }\n }\n\n /**\n * Prepare fields for GraphQL request\n */\n protected prepareFields(\n fields: any,\n options: {\n allowed?: any;\n schemaFields?: string[];\n usedFields?: string[];\n parent?: string;\n spaces?: number;\n tab?: number;\n } = {}\n ): { schemaFields: string[]; fieldsString: string; usedFields: string[] } {\n // Config\n const { allowed, parent, schemaFields, spaces, tab, usedFields } = {\n allowed: null,\n parent: '',\n schemaFields: [],\n spaces: 2,\n tab: 1,\n usedFields: [],\n ...options,\n };\n\n // Init fields string\n let fieldsString = '';\n\n // Check fields\n if (!fields) {\n return { fieldsString, schemaFields, usedFields };\n }\n\n // Process string\n if (typeof fields === 'string') {\n if (\n allowed &&\n ((typeof allowed === 'string' && allowed !== fields) || (typeof allowed === 'object' && !allowed[fields]))\n ) {\n return { fieldsString, schemaFields, usedFields };\n }\n return { fieldsString: '\\n' + ' '.repeat(spaces).repeat(tab) + fields, schemaFields, usedFields };\n }\n\n // Process array\n else if (Array.isArray(fields)) {\n for (const item of fields) {\n if (typeof item === 'object') {\n fieldsString =\n fieldsString +\n this.prepareFields(item, {\n allowed,\n parent,\n spaces,\n schemaFields,\n tab: tab + 1,\n usedFields,\n }).fieldsString;\n continue;\n }\n const currentPath = parent + item;\n schemaFields.push(currentPath);\n if (allowed && !allowed?.[item]) {\n continue;\n }\n usedFields.push(currentPath);\n fieldsString =\n fieldsString +\n this.prepareFields(item, {\n allowed:\n typeof allowed?.[item] === 'object' && !(allowed?.[item] instanceof GraphQLType) ? allowed?.[item] : item,\n parent: currentPath + '.',\n spaces,\n schemaFields,\n tab: tab + 1,\n usedFields,\n }).fieldsString;\n }\n }\n\n // Process object\n else if (typeof fields === 'object') {\n for (const [key, val] of Object.entries(fields)) {\n const currentPath = parent + key;\n schemaFields.push(currentPath);\n if (allowed && !allowed[key]) {\n continue;\n }\n usedFields.push(currentPath);\n if (typeof val !== 'object' || !Object.keys(val).length) {\n fieldsString = fieldsString + '\\n' + ' '.repeat(spaces).repeat(tab) + key;\n } else {\n fieldsString =\n fieldsString +\n '\\n' +\n ' '.repeat(spaces).repeat(tab) +\n key +\n ' ' +\n '{' +\n this.prepareFields(val, {\n allowed:\n typeof allowed?.[key] === 'object' && !(allowed?.[key] instanceof GraphQLType) ? allowed?.[key] : key,\n parent: currentPath + '.',\n spaces,\n schemaFields,\n tab: tab + 1,\n usedFields,\n }).fieldsString +\n '\\n' +\n ' '.repeat(spaces).repeat(tab) +\n '}';\n }\n }\n }\n\n // Return result\n return { fieldsString, schemaFields, usedFields };\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n/**\n * Loader service for loading indication\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class LoaderService {\n public isLoading = new BehaviorSubject(false);\n\n public start(): void {\n this.isLoading.next(true);\n }\n\n public stop(): void {\n this.isLoading.next(false);\n }\n\n public getAsObservable(): Observable<boolean> {\n return this.isLoading.asObservable();\n }\n}\n","import { Apollo } from 'apollo-angular';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { GraphQLService } from './graphql.service';\nimport { GraphQLMetaService } from './graphql-meta.service';\nimport { IGraphQLPlusOptions } from '../interfaces/graphql-plus-options.interfacen';\nimport { LoaderService } from './loader.service';\nimport { GraphQLRequestType } from '../enums/graphql-request-type.enum';\n\n/**\n * GraphQL plus service, for extra error handling and loading indication\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class GraphQLPlusService extends GraphQLService {\n /**\n * Include services\n */\n constructor(\n protected apollo: Apollo,\n protected graphqlMetaService: GraphQLMetaService,\n protected loaderService: LoaderService\n ) {\n super(apollo, graphqlMetaService);\n }\n\n public graphQl(graphql: string, options: IGraphQLPlusOptions = {}): Observable<any> {\n this.handleLoader('start', options);\n\n return new Observable((subscriber) => {\n super.graphQl(graphql, options).subscribe(\n (response) => {\n if (response && response.errors) {\n this.handleError(response.errors, options.excludedErrors);\n subscriber.error(response);\n this.handleLoader('stop', options);\n subscriber.complete();\n }\n\n subscriber.next(response);\n this.handleLoader('stop', options);\n if (options.type !== GraphQLRequestType.SUBSCRIPTION) {\n subscriber.complete();\n }\n },\n (error) => {\n if (!options.ignoreErrors) {\n this.handleError(error, options.excludedErrors);\n }\n subscriber.error(error);\n this.handleLoader('stop', options);\n subscriber.complete();\n }\n );\n });\n }\n\n handleLoader(state: 'start' | 'stop', options: IGraphQLPlusOptions): void {\n if (options.loading) {\n if (state === 'start') {\n this.loaderService.start();\n } else if (state === 'stop') {\n this.loaderService.stop();\n }\n }\n }\n\n handleError(error: Error, excludedErrors: any = null): void {\n if (excludedErrors) {\n if (Array.isArray(excludedErrors)) {\n excludedErrors.forEach((excludedError) => {\n if (error.message.includes(excludedError.toLowerCase())) {\n return;\n }\n });\n } else if (error.message.toLowerCase().includes(excludedErrors?.toLowerCase())) {\n return;\n }\n }\n\n this.displayError(error);\n }\n\n displayError(error: any): void {\n console.error(error);\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { BASE_MODULE_CONFIG, BaseModuleConfig } from '../interfaces/base-module-config.interface';\nimport { ImageService } from './image.service';\n\n/**\n * Scroll service for autoscroll to specific fragments\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class ScrollService {\n /**\n * Current scroll promise\n *\n * @protected\n */\n protected scrollPromise: Promise<void>;\n\n /**\n * Resolve function of current scroll promise\n *\n * @protected\n */\n protected scrollPromiseResolve: (value: void | PromiseLike<void>) => void;\n\n /**\n * Is a scroll listener set\n *\n * @protected\n */\n protected scrollListener = false;\n\n /**\n * Current scroll timer;\n *\n * @protected\n */\n protected scrollTimer = -1;\n\n /**\n * Scroll offset\n */\n protected readonly scrollOffset: number;\n\n /**\n * Detection offset\n * Should be >= scrollOffset\n */\n protected readonly detectionOffset: number;\n\n /**\n * Sampling rate for scroll done detection\n */\n protected readonly scrollSamplingRate: number;\n\n /**\n * Initializer\n */\n constructor(\n protected router: Router,\n @Inject(BASE_MODULE_CONFIG) protected moduleConfig: BaseModuleConfig,\n protected imageService: ImageService\n ) {\n const config = {\n scrollDetectionOffset: 200,\n scrollOffset: 100,\n scrollSamplingRate: 100,\n ...moduleConfig,\n };\n\n this.detectionOffset = config.scrollDetectionOffset;\n this.scrollOffset = config.scrollOffset;\n this.scrollSamplingRate = config.scrollSamplingRate;\n }\n\n /**\n * Scroll to structureElement with specific ID\n */\n async scrollTo(\n id: string,\n options: {\n checkUrl?: boolean;\n loadImagesBefore?: boolean;\n resetStyles?: boolean;\n setOverflow?: boolean;\n stopPropagation?: boolean;\n } = {}\n ) {\n // Prepare config\n const config = {\n checkUrl: false,\n loadImagesBefore: true,\n resetStyles: false,\n setOverflow: true,\n stopPropagation: true,\n ...options,\n };\n\n // Check current URL\n if (config.checkUrl && this.router.url !== '/' && !this.router.url.startsWith('/#')) {\n await this.router.navigate(['/'], { fragment: id });\n return !config.stopPropagation;\n }\n\n // Check if target element exits\n const el = document.getElementById(id);\n if (!el) {\n console.error('Missing scroll element with ID:', id);\n return !config.stopPropagation;\n }\n\n // Check if body overflow is visible\n // This is necessary for scroll handling\n const body = document.querySelector('body');\n let undoOverflowChanges = false;\n const scrollBodyStyles = JSON.parse(JSON.stringify(window.getComputedStyle(body)));\n if (config.setOverflow && (scrollBodyStyles.overflowX !== 'visible' || scrollBodyStyles.overflowY !== 'visible')) {\n // Set body overflow to visible\n console.warn('Style of body element for overflowX and overflowY will be set to \"visible\" for scrolling!');\n body.style.overflowX = 'visible';\n body.style.overflowY = 'visible';\n undoOverflowChanges = true;\n }\n\n // Load images before scrolling (once)\n if (config.loadImagesBefore) {\n await this.imageService.preLoadImages();\n }\n\n // Get get bounding rect of target element\n const cords = el.getBoundingClientRect();\n\n // Scroll to element\n window.scrollBy({ top: cords.top - this.scrollOffset, behavior: 'smooth' });\n await this.scrollDone({\n doneFunction: () => {\n // Undo changes\n if (undoOverflowChanges && config.resetStyles) {\n body.style.overflowX = scrollBodyStyles.overflowX;\n body.style.overflowY = scrollBodyStyles.overflowY;\n console.warn('Original style of body element for overflowX and overflowY is set.');\n }\n },\n });\n\n // Return stop propagation configuration\n return !config.stopPropagation;\n }\n\n /**\n * Get last active structureElement\n */\n getLastActiveElement(list?): string {\n const currentScrollPosition = window.scrollY;\n const elementsWithId = document.querySelectorAll('[id]');\n let lastId = null;\n let lastPosition = 0 - this.detectionOffset - 1;\n elementsWithId.forEach((element) => {\n const cords = element.getBoundingClientRect();\n const top = cords.top + window.pageYOffset - this.detectionOffset;\n if (\n (!list || !list.length || list.includes(element.id)) && // In list\n top < currentScrollPosition && // In active area\n lastPosition < top // Higher than the last one\n ) {\n lastId = element.id;\n lastPosition = top;\n }\n });\n return lastId;\n }\n\n /**\n * Check if ID is active\n */\n isActive(id, list?, isFirst?) {\n const lastActiveElement = this.getLastActiveElement(list);\n return id === lastActiveElement || (lastActiveElement === null && isFirst);\n }\n\n /**\n * Scroll done promise\n */\n public async scrollDone(options: { doneFunction?: () => any | void } = {}): Promise<any> {\n // Init configuration\n const config = {\n doneFunction: undefined,\n ...options,\n };\n\n // Wait for scroll done\n await this.scrollDoneDetection();\n\n // Get result\n if (config.doneFunction) {\n return config.doneFunction();\n }\n }\n\n /**\n * Scroll done detecton\n *\n * @protected\n */\n protected scrollDoneDetection(): Promise<void> {\n // Return current scroll promise (Singelton)\n if (this.scrollPromise) {\n return this.scrollPromise;\n }\n\n // Create current scroll promise\n this.scrollPromise = new Promise((resolve) => {\n this.scrollPromiseResolve = resolve;\n if (this.scrollTimer !== -1) {\n window.clearTimeout(this.scrollTimer);\n }\n this.scrollTimer = window.setTimeout(() => {\n window.removeEventListener('scroll', this.scrollDoneDetection.bind(this));\n this.scrollPromise = undefined;\n resolve();\n }, this.scrollSamplingRate);\n });\n\n // Lisitening to scroll event;\n window.addEventListener('scroll', this.scrollDoneDetection.bind(this));\n\n // Return promise\n return this.scrollPromise;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Meta, Title } from '@angular/platform-browser';\n\ninterface SEOData {\n title: string;\n description: string;\n image?: string;\n url?: string;\n keywords?: string;\n}\n\n/**\n * SEO service for setting HTML meta data\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SEOService {\n constructor(private titleService: Title, private metaTagService: Meta) {}\n\n public initPageForSEO(input: SEOData) {\n this.setGeneralData(input);\n this.setTwitterData(input);\n this.setTwitterData(input);\n this.setFacebookData(input);\n\n if (input.keywords) {\n this.setPageKeywords(input.keywords);\n }\n }\n\n /**\n * Set general metadata\n *\n * @param data\n * @private\n */\n private setGeneralData(data: SEOData) {\n this.titleService.setTitle(data.title);\n this.metaTagService.updateTag({ name: 'description', content: data.description });\n }\n\n /**\n * Set metadata for twitter\n *\n * @param data\n * @private\n */\n private setTwitterData(data: SEOData) {\n this.metaTagService.updateTag({ name: 'twitter:title', content: data.title });\n this.metaTagService.updateTag({ name: 'twitter:description', content: data.description });\n this.metaTagService.updateTag({\n property: 'twitter:url',\n content: data.url ? data.url : window.location.href,\n });\n\n if (data.image) {\n this.metaTagService.updateTag({\n property: 'twitter:image',\n content: data.image,\n });\n\n this.metaTagService.updateTag({\n property: 'twitter:card',\n content: 'summary_large_image',\n });\n }\n }\n\n /**\n * Set metadata for facebook\n *\n * @param data\n * @private\n */\n private setFacebookData(data: SEOData) {\n this.metaTagService.updateTag({ property: 'og:title', content: data.title });\n this.metaTagService.updateTag({ property: 'og:description', content: data.description });\n this.metaTagService.updateTag({\n property: 'og:type',\n content: 'website',\n });\n this.metaTagService.updateTag({\n property: 'og:url',\n content: data.url ? data.url : window.location.href,\n });\n\n if (data.image) {\n this.metaTagService.updateTag({\n property: 'og:image',\n content: data.image,\n });\n }\n }\n\n /**\n * Set page keywords\n *\n * @param keywords\n * @private\n */\n private setPageKeywords(keywords: string) {\n this.metaTagService.updateTag({ name: 'keywords', content: keywords });\n }\n}\n","import { FormGroup } from '@angular/forms';\n\n/**\n * Custom validator to check that two fields match\n * (inspirated by https://jasonwatmore.com/post/2018/11/07/angular-7-reactive-forms-validation-example)\n */\nexport function MustMatch(controlName: string, matchingControlName: string) {\n return (formGroup: FormGroup) => {\n const control = formGroup.controls[controlName];\n const matchingControl = formGroup.controls[matchingControlName];\n\n if (matchingControl.errors && !matchingControl.errors.mustMatch) {\n // return if another validator has already found an error on the matchingControl\n return;\n }\n\n // set error on matchingControl if validation fails\n if (control.value !== matchingControl.value) {\n matchingControl.setErrors({ mustMatch: true });\n } else {\n matchingControl.setErrors(null);\n }\n };\n}\n","/**\n * Exports for public API\n */\n\n// Module\nexport * from './base.module';\n\n// Classes\nexport * from './classes/basic-user.class';\nexport * from './classes/graphql-enum.class';\nexport * from './classes/graphql-meta.class';\nexport * from './classes/graphql-type.class';\nexport * from './classes/helper.class';\nexport * from './classes/standard.class';\n\n// Directives\nexport * from './directives/context-menu.directive';\nexport * from './directives/lazy-load.directive';\nexport * from './directives/match-height.directive';\nexport * from './directives/resizable.directive';\n\n// Factories\nexport * from './factories/apollo-options.factory';\n\n// Guards\nexport * from './guards/auth.guard';\nexport * from './guards/can-deactivate.guard';\nexport * from './guards/logout.guard';\n\n// Enums\nexport * from './enums/comparison-operator.enum';\nexport * from './enums/graphql-request-type.enum';\nexport * from './enums/logical-operator.enum';\nexport * from './enums/sort-order.enum';\n\n// Interfaces\nexport * from './interfaces/base-module-config.interface';\nexport * from './interfaces/can-component-deactivate.interface';\nexport * from './interfaces/combined-filter-input.interface';\nexport * from './interfaces/field.interface';\nexport * from './interfaces/field-object.interface';\nexport * from './interfaces/filter-input.interface';\nexport * from './interfaces/graphql-options.interface';\nexport * from './interfaces/graphql-plus-options.interfacen';\nexport * from './interfaces/graphql-type-collection.interface';\nexport * from './interfaces/single-filter-input.interface';\nexport * from './interfaces/sort-input.interface';\nexport * from './interfaces/find-args.interface';\n\n// Pipes\nexport * from './pipes/ellipses.pipe';\nexport * from './pipes/safe-html.pipe';\n\n// Services\nexport * from './services/auth.service';\nexport * from './services/fullscreen.service';\nexport * from './services/graphql.service';\nexport * from './services/graphql-meta.service';\nexport * from './services/graphql-plus.service';\nexport * from './services/image.service';\nexport * from './services/loader.service';\nexport * from './services/scroll.service';\nexport * from './services/seo.service';\nexport * from './services/storage.service';\n\n// Types\nexport * from './types/storage.type';\n\n// Validators\nexport * from './validators/must-match.validator';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["InjectionToken","Injectable","Inject","BehaviorSubject","ApolloLink","WebSocketLink","split","getMainDefinition","concat","InMemoryCache","Directive","ElementRef","Input","Output","HostBinding","isPlatformBrowser","PLATFORM_ID","HostListener","Pipe","DomSanitizer","APOLLO_OPTIONS","HttpLink","NgModule","Observable","Router","ComparisonOperatorEnum","GraphQLRequestType","LogicalOperatorEnum","SortOrderEnum","of","buildClientSchema","gql","getIntrospectionQuery","map","Apollo","throwError","Title","Meta"],"mappings":"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"}