{"version":3,"file":"../js/qmc.common.min.js","sources":["qmc.common.min.js"],"sourcesContent":["var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\n// ReSharper disable InconsistentNaming\nvar QMC;\n(function (QMC) {\n var Common;\n (function (Common) {\n var Constants = /** @class */ (function () {\n function Constants() {\n }\n Constants.FULL_CALENDAR_PREMIUM_LICENSE = '0194430006-fcs-1560406752';\n Constants.DEFAULT_PAGINATION_SIZE = 30;\n Constants.GUID_EMPTY = \"00000000-0000-0000-0000-000000000000\";\n Constants.DEFAULT_NAV_ID = \"be5944c2-2a62-4aef-b747-d298971505e8\";\n Constants.OBJECTTYPE_CLIENT = 140000;\n Constants.OBJECTTYPE_EMPLOYEE = 120000;\n Constants.SHOW_ONLY_ACTIVE_EMPLOYEES_PREDEFINED_SEARCH_ID = \"2c4be6f5-2c40-4c1e-abb0-08334e5178f4\";\n Constants.SHOW_ALL_EMPLOYEES_PREDEFINED_SEARCH_ID = \"1655659a-5e10-4a1f-b6c6-e69cb74b64c7\";\n Constants.DEFAULT_ACTIVITY_ID = \"bcafd3ce-f25c-410a-a623-75c77eb15d5c\";\n Constants.MESSAGE_INBOX_FOLDER_ID = \"fc52cc92-ee6e-48da-b42d-a8111af27686\";\n Constants.MESSAGE_SENT_FOLDER_ID = \"09aa8d37-065f-444a-a9fa-94d59dc2c125\";\n Constants.MESSAGE_RECYCLEBIN_FOLDER_ID = \"5f6720c1-ff53-48aa-bda9-a82c10781fe3\";\n Constants.DEFAULT_CLIENT_PREDEFINED_SEARCH_ID = \"27a653ff-299e-41a4-bc31-973b36ab373e\"; // \"Meine Betreuten\"\n Constants.DEFAULT_COUNTRY_ID = \"e8dfa43c-c3d4-408d-87d8-7bf9ccdb0ab7\"; // Germany\n Constants.DEFAULT_DISEASE_CODE_SCHEMA = \"37783beb-d174-4be4-9394-1ded6328faa4\";\n Constants.DEMAND_MEDICATION = \"0f11f2ef-8d2b-452f-ac2e-632143fec211\";\n Constants.IS_MOBILE = $('body').hasClass('mobile');\n Constants.DELETE_REASON_ID = \"4905ca15-8437-40bf-8875-4c2f2572057c\";\n Constants.EXECUTION_TYPE_SINGLE_ID = \"a1ac6cb3-56a7-454a-a7eb-d9adabf8989d\";\n Constants.EXECUTION_TYPE_MULTIPLE_ID = \"dd8d8de1-b0f3-4fd6-abf0-1cd1cbd2716a\";\n Constants.APPROVAL_PENDING_ID = \"efd58886-58e4-4562-adcb-27e677167767\"; // steht aus\n Constants.APPROVAL_APRROVED_ID = \"a8d072b9-8cdb-4e91-810b-df609c6946c3\"; // genehmigt\n Constants.JOURNAL_COMMENTTYPE_NORMAL = 'b22fa7fc-8d14-4ae1-8483-729c5df12c07';\n Constants.JOURNAL_COMMENTTYPE_WARNING = '7d1d5043-fe48-4b93-be38-c2bfd8e41d08';\n Constants.SIGNATURE_SIGNING_PERSON_CLIENT = 'd69838db-7965-4df9-9723-b6032ab6f2e8';\n Constants.WV_DOCUMENT_RUBRIC = \"02fed28c-33c0-42fe-9b45-d815eb1acccc\";\n Constants.WV_YES = \"6b1eeda2-f346-4366-b5b4-6d3576e35991\";\n Constants.WV_NO = \"a1219cb4-18bb-4232-93ee-44a335d39d9a\";\n Constants.SMARTACTIONCACHE = 'SmartActionCache';\n Constants.FLS_NO_MISCONTACT = 'e7f1e265-8950-4c2a-9a27-4c4d59bd3f35';\n return Constants;\n }());\n Common.Constants = Constants;\n var UserSettingConstantsAndDefaults = /** @class */ (function () {\n function UserSettingConstantsAndDefaults() {\n }\n UserSettingConstantsAndDefaults.SHOWTIMEINSTEADOFDECIMAL = false;\n UserSettingConstantsAndDefaults.SHOULDLOADTABLEDATA_KEY = 'GLOBAL.SHOULDLOADTABLEDATA';\n UserSettingConstantsAndDefaults.SHOULDLOADTABLEDATA = true;\n // AZN\n UserSettingConstantsAndDefaults.SHOWDATETOAZN = false;\n //FLS\n UserSettingConstantsAndDefaults.ALLOWEMPTYREPORTS = false;\n UserSettingConstantsAndDefaults.PLANEDRAWDAYS = 30;\n UserSettingConstantsAndDefaults.PLANEDDAYSFUTURE = 14;\n UserSettingConstantsAndDefaults.SHOWDATETOFLS = false;\n UserSettingConstantsAndDefaults.SHOWMONTHFILTERFLS = true;\n UserSettingConstantsAndDefaults.SIGNATUREHIDEREPORTS = false;\n UserSettingConstantsAndDefaults.SIGNATUREDIRECTSIGN = false;\n UserSettingConstantsAndDefaults.FLSMINUTESTOSIGN = -1;\n UserSettingConstantsAndDefaults.FLSWEEKPLANNERSHOWHOLIDAY = false;\n UserSettingConstantsAndDefaults.FLS_NEUMEHREREBETREUTE_ZEITAUFFAELLEVERTEILEN = true;\n UserSettingConstantsAndDefaults.FLS_NEUMEHREREBETREUTE_ZEITAUFFAELLEVERTEILEN_FIX = false;\n UserSettingConstantsAndDefaults.GC_FLS_NEUMEHREREBETREUTE_ZEITRESETBEIVERTEILUNG = true;\n UserSettingConstantsAndDefaults.DEFAULTFLSCARETYPE = Constants.GUID_EMPTY;\n UserSettingConstantsAndDefaults.DEFAULTFLSCONTACTTYPE = Constants.GUID_EMPTY;\n UserSettingConstantsAndDefaults.DEFAULTSIGNINGPERSON = 'd69838db-7965-4df9-9723-b6032ab6f2e8';\n UserSettingConstantsAndDefaults.DEFAULTSIGNINGREASON = Constants.GUID_EMPTY;\n UserSettingConstantsAndDefaults.FLS_WEEKPLANNER_INCLUDE_FUTURE_CASES = false;\n UserSettingConstantsAndDefaults.FLS_CASE_FILTER_KEY = 'FLS.CASELIST.FILTER';\n UserSettingConstantsAndDefaults.FLS_CASE_FILTER_DEFAULTS = { carerTypeFilterId: Constants.GUID_EMPTY, onlyCurrentCases: true };\n // SECURITY\n UserSettingConstantsAndDefaults.INACTIVITYTIMEOUT = 30;\n // TASK\n UserSettingConstantsAndDefaults.FINISHEDTASKSDAYS = 30;\n UserSettingConstantsAndDefaults.LANDINGPAGE = \"dashboard\";\n UserSettingConstantsAndDefaults.NAVIGATION_DEFAULT_ID = 'be5944c2-2a62-4aef-b747-d298971505e8';\n // ROSTER\n UserSettingConstantsAndDefaults.ASKDROPPEDSERVICE = true;\n //TIME CLOCK\n UserSettingConstantsAndDefaults.INQUIRE_STAMPIN_ON_LOGIN = false;\n UserSettingConstantsAndDefaults.INQUIRE_STAMPOUT_ON_LOGOUT = false;\n //REPORTING\n UserSettingConstantsAndDefaults.DAYSINPAST = 7;\n UserSettingConstantsAndDefaults.SHOWONLYUNFETCHED = false;\n UserSettingConstantsAndDefaults.SERVERJOBTIMERINTERVALLINSEC = 120;\n return UserSettingConstantsAndDefaults;\n }());\n Common.UserSettingConstantsAndDefaults = UserSettingConstantsAndDefaults;\n var LocalStorageConstants = /** @class */ (function () {\n function LocalStorageConstants() {\n }\n // General\n LocalStorageConstants.LAST_LANGUAGE_SELECTION = \"LastLanguageSelection\";\n LocalStorageConstants.USER_MODULE_PERMISSIONS = \"UserModulePermissions\";\n // Fls Documentation\n LocalStorageConstants.FLS_DOCU_LIST_FILTER_DATE_FROM = \"FlsDocuFilterDateFrom\";\n LocalStorageConstants.FLS_DOCU_LIST_FILTER_DATE_TO = \"FlsDocuFilterDateTo\";\n LocalStorageConstants.FLS_DOCU_LIST_HIDE_SIGNATURE = \"FlsDocuHideSignature\";\n LocalStorageConstants.FLS_DOCU_LIST_SHOW_ONLY_OWN_CREATED = \"FlsDocuShowOnlyOwnCreated\";\n LocalStorageConstants.FLS_DOCU_LIST_SHOW_ONLY_OWN_CASES = \"FlsDocuShowOnlyOwnCases\";\n LocalStorageConstants.FLS_PREVIOUS_STATE = \"FlsPreviousState\";\n // Fls Summary\n LocalStorageConstants.FLS_SUMMARY_ORDER_ASCENDING = \"FlsSummaryOrderAscending\";\n LocalStorageConstants.FLS_SUMMARY_LAST_SEARCH = \"FlsSummaryLastSearch\";\n // Internal messages\n LocalStorageConstants.MSG_LIST_FILTER_DATE_FROM = \"MsgFilterDateFrom\";\n LocalStorageConstants.MSG_LIST_FILTER_DATE_TO = \"MsgFilterDateTo\";\n // Journal\n LocalStorageConstants.JOURNAL_FILTER_DISPLAY_DATE = \"JournalFilterDisplayDate\";\n LocalStorageConstants.JOURNAL_LAST_SELECTED_ID = \"JournalLastSelectedId\";\n LocalStorageConstants.JOURNAL_FILTER_PRIORITY_WV_ID = \"JournalFilterPriorityWvId\";\n LocalStorageConstants.JOURNAL_FILTER_LIVING_AREA_WV_ID = \"JournalFilterLivingAreaWvId\";\n LocalStorageConstants.JOURNAL_FILTER_COMMENT = \"JournalfFilterComment\";\n LocalStorageConstants.JOURNAL_FILTER_AUTHOR = \"JournalfFilterAuthor\";\n LocalStorageConstants.JOURNAL_FILTER_MARKINGS = \"JournalfFilterMarking\";\n LocalStorageConstants.JOURNAL_FILTER_PARTICIPANT = \"JournalfFilterParticipant\";\n LocalStorageConstants.JOURNAL_FILTER_COMMENTS = \"JournalfFilterCommentsDescending\";\n LocalStorageConstants.JOURNAL_USE_CURRENT_DATE = \"False\";\n // Task\n LocalStorageConstants.TASK_LIST_HIDE_FINISHED = \"TaskListHideFinished\";\n // Appointment\n LocalStorageConstants.APPOINTMENT_TYPES_TO_SHOW = \"AppointmentTypesToShow\";\n // Organisation\n LocalStorageConstants.ORGANISATION_LAST_SELECTED_ID = \"OrganisationLastSelectedId\";\n //Client Cover Pake\n LocalStorageConstants.CLIENT_COVER = \"ClientCover\";\n //AZN\n LocalStorageConstants.AZN_PREVIOUS_STATE = \"AznPreviousState\";\n //Weekplanner\n LocalStorageConstants.WEEKPLANNER_SCROLLPOSITION = \"WeekplannerScrollPosition\";\n return LocalStorageConstants;\n }());\n Common.LocalStorageConstants = LocalStorageConstants;\n })(Common = QMC.Common || (QMC.Common = {}));\n})(QMC || (QMC = {}));\n// ReSharper restore InconsistentNaming\nvar QMC;\n(function (QMC) {\n var Common;\n (function (Common) {\n ;\n })(Common = QMC.Common || (QMC.Common = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Common;\n (function (Common) {\n var HttpBaseProvider = /** @class */ (function () {\n function HttpBaseProvider() {\n }\n HttpBaseProvider.configureHttpProvider = function ($httpProvider) {\n // initialize get if not there\n if (!$httpProvider.defaults.headers.get) {\n $httpProvider.defaults.headers.get = {};\n }\n // disable IE ajax request caching\n $httpProvider.defaults.headers.get['If-Modified-Since'] = 'Mon, 26 Jul 1997 05:00:00 GMT';\n // extra\n $httpProvider.defaults.headers.get['Cache-Control'] = 'no-cache';\n $httpProvider.defaults.headers.get['Pragma'] = 'no-cache';\n };\n return HttpBaseProvider;\n }());\n Common.HttpBaseProvider = HttpBaseProvider;\n })(Common = QMC.Common || (QMC.Common = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Common;\n (function (Common) {\n var Resolve = /** @class */ (function () {\n function Resolve() {\n console.log('RESOLVE');\n return;\n }\n return Resolve;\n }());\n Common.Resolve = Resolve;\n })(Common = QMC.Common || (QMC.Common = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Common;\n (function (Common) {\n var BaseService = /** @class */ (function () {\n /**\n * Creates an instance of BaseService.\n * @param {ng.IHttpService} $http\n * @param {ng.IQService} $q\n *\n * @memberOf BaseService\n */\n function BaseService($http, $q) {\n var _a, _b;\n this.$http = $http;\n this.$q = $q;\n this.MAX_RETRIES = (_b = (_a = $('#session').data()) === null || _a === void 0 ? void 0 : _a.retries) !== null && _b !== void 0 ? _b : 5;\n this.loggingOut = false;\n this.isLoggedIn = false;\n this.isRefreshing = false;\n var data = $('#session').data();\n this.apiData = { url: data.api, key: data.apiKey, refresh: data.apiRefreshKey };\n if (!sessionStorage.getItem(\"started\")) {\n sessionStorage.clear();\n this.setApiData(this.apiData.key, this.apiData.refresh);\n sessionStorage.setItem(\"started\", \"true\");\n }\n this.webClientBasePath = data.baseUrl;\n this.loggingOut = false;\n }\n /**\n *\n *\n * @private\n * @param {any} response\n * @param {any} status\n * @returns\n *\n * @memberOf BaseService\n */\n BaseService.prototype.notification = function (response, status) {\n if (!this.isLoggedIn || this.loggingOut)\n return;\n console.warn(\"Error\", response);\n if (response.data == null && status !== 401) {\n this.displayNotifications([\"Ein Kommunikationsfehler ist aufgetreten\"], \"Fehler\", \"warning\", \"qm-icon-error\");\n }\n var data = response.data;\n if (data == (null || undefined))\n return;\n if (data.hasOwnProperty(\"globalErrors\")) {\n this.displayNotifications(this.formatErrors(response, data.globalErrors), \"Fehler\", \"warning\", \"qm-icon-error\");\n }\n if (data.hasOwnProperty(\"fieldErrors\")) {\n this.displayNotifications(this.formatErrors(response, data.fieldErrors), \"Hinweis\", \"warning\", \"qm-icon-information\");\n }\n if (data.hasOwnProperty(\"GlobalErrors\")) {\n this.displayNotifications(this.formatErrors(response, data.GlobalErrors), \"Fehler\", \"warning\", \"qm-icon-error\");\n }\n if (data.hasOwnProperty(\"FieldErrors\")) {\n this.displayNotifications(this.formatErrors(response, data.FieldErrors), \"Hinweis\", \"warning\", \"qm-icon-information\");\n }\n };\n BaseService.prototype.formatErrors = function (response, errorList) {\n var result = [];\n if (!response || !errorList)\n return [];\n for (var pro in errorList) {\n if (typeof errorList[pro] === 'object') {\n result = result.concat(errorList[pro]);\n }\n }\n for (var _i = 0, errorList_1 = errorList; _i < errorList_1.length; _i++) {\n var element = errorList_1[_i];\n result.push(response.statusText + \": \" + element);\n }\n return result;\n };\n /**\n * displayNotifications\n *\n * @private\n * @param {any} arr\n * @param {any} title\n * @param {any} type\n * @param {any} icon\n *\n * @memberOf BaseService\n */\n BaseService.prototype.displayNotifications = function (arr, title, type, icon) {\n var $qui = new qmwcUI();\n if (arr !== null) {\n for (var _i = 0, arr_1 = arr; _i < arr_1.length; _i++) {\n var element = arr_1[_i];\n console.log(element);\n var message = element.replace('Bad Request: ', '');\n var errorNote = {\n message: message,\n title: title,\n icon: icon,\n status: type,\n timer: 10000\n };\n $qui.notify(errorNote);\n }\n }\n };\n BaseService.prototype.api = function () {\n return this.apiData;\n };\n BaseService.prototype.logout = function (noReturn) {\n if (noReturn === void 0) { noReturn = false; }\n if (this.loggingOut || window.clientExchange)\n return;\n var hash = \"\";\n if (location.hash.length > 1 && !noReturn)\n hash = location.hash.substr(2);\n this.loggingOut = true;\n var url = this.webClientBasePath + \"Logout?returnUrl=\" + hash;\n var dbConnection = $('#session').data().dbConnection;\n if (url.indexOf('dbConnectionString') < 0 && dbConnection)\n url = url + (url.indexOf('?') ? '&' : '?') + 'dbConnectionString=' + dbConnection;\n sessionStorage.clear();\n location.href = url;\n document.getElementById(\"load-placeholder\").removeAttribute(\"style\");\n document.getElementById(\"wrapper\").setAttribute(\"style\", \"display: none;\");\n };\n BaseService.prototype.get = function (path, params, successDataManipulation) {\n if (params === void 0) { params = {}; }\n return this.performGetRequest(false, path, params, successDataManipulation);\n };\n BaseService.prototype.getPagination = function (path, params, successDataManipulation) {\n if (params === void 0) { params = {}; }\n return this.performGetRequest(false, path, params, successDataManipulation);\n };\n BaseService.prototype.getItem = function (path, params, successDataManipulation) {\n if (params === void 0) { params = {}; }\n return this.performGetRequest(false, path, params, successDataManipulation);\n };\n BaseService.prototype.cachedGetItem = function (path, params, successDataManipulation) {\n if (params === void 0) { params = {}; }\n return this.performGetRequest(true, path, params, successDataManipulation);\n };\n ;\n BaseService.prototype.uncachedGet = function (path, params, successDataManipulation) {\n if (params === void 0) { params = {}; }\n return this.performGetRequest(false, path, params, successDataManipulation);\n };\n BaseService.prototype.cachedGet = function (path, params, successDataManipulation) {\n if (params === void 0) { params = {}; }\n return this.performGetRequest(true, path, params, successDataManipulation);\n };\n BaseService.prototype.performGetRequest = function (cached, path, params, successDataManipulation, retries, deferred) {\n var _this = this;\n if (params === void 0) { params = {}; }\n if (retries === void 0) { retries = 1; }\n if (deferred === void 0) { deferred = this.$q.defer(); }\n var token = this.getAccessToken();\n if (this.loggingOut) {\n deferred.reject(\"logging out\");\n return deferred.promise;\n }\n if (this.isRefreshing) {\n setTimeout(function () {\n deferred.promise = _this.performGetRequest(cached, path, params, successDataManipulation);\n }, this.getMissedCallCounter() * 250);\n }\n else {\n this.$http({\n url: this.apiData.url + path,\n method: 'GET',\n cache: cached,\n headers: { 'Authorization': \"Bearer \" + token },\n params: params\n }).then(function (response) {\n if (response.status === 944) {\n _this.setMissedCallCounter(999);\n _this.logout();\n return;\n }\n if (response.status === 401) {\n _this.tryRefresh();\n deferred.promise = _this.performGetRequest(cached, path, params, successDataManipulation);\n return;\n }\n if (successDataManipulation)\n response.data = successDataManipulation(response.data);\n deferred.resolve(response.data);\n _this.isLoggedIn = true;\n if (path.indexOf('languages') === -1 && !_this.loggingOut) {\n document.getElementById(\"wrapper\").removeAttribute(\"style\");\n document.getElementById(\"load-placeholder\").setAttribute(\"style\", \"display: none;\");\n }\n }).catch(function (response) {\n console.log(\"error in base service:\", response);\n if (response.status === 944) {\n _this.setMissedCallCounter(999);\n _this.logout();\n return;\n }\n if (response.status === 401) {\n _this.tryRefresh();\n deferred.promise = _this.performGetRequest(cached, path, params, successDataManipulation);\n }\n if (retries < _this.MAX_RETRIES)\n _this.performGetRequest(cached, path, params, successDataManipulation, retries + 1, deferred);\n else {\n _this.notification(response, response.status);\n deferred.reject(response.data == (null || undefined || \"\") ? response.status : response.data);\n }\n });\n }\n return deferred.promise;\n };\n BaseService.prototype.post = function (path, object, retries, deferred) {\n var _this = this;\n if (retries === void 0) { retries = 1; }\n if (deferred === void 0) { deferred = this.$q.defer(); }\n var token = this.getAccessToken();\n if (this.loggingOut) {\n deferred.reject(\"logging out\");\n return deferred.promise;\n }\n if (this.isRefreshing) {\n setTimeout(function () {\n deferred.promise = _this.post(path, object);\n }, this.getMissedCallCounter() * 250);\n }\n else {\n this.$http({\n url: this.apiData.url + path,\n method: 'POST',\n headers: { 'Authorization': \"Bearer \" + token },\n data: object\n }).then(function (response) {\n if (response.status === 201 || response.status === 200) {\n deferred.resolve(response.data);\n }\n else {\n console.log(\"status code:\", response.status);\n if (response.status === 401) {\n _this.tryRefresh();\n deferred.promise = _this.post(path, object);\n return;\n }\n if (response.status === 944) {\n _this.setMissedCallCounter(999);\n _this.logout();\n }\n deferred.reject(response.data);\n }\n }).catch(function (response) {\n if (response.status === 401) {\n _this.tryRefresh();\n deferred.promise = _this.delete(path);\n return;\n }\n if (response.status === 944) {\n _this.setMissedCallCounter(999);\n _this.logout();\n }\n // Retrying non GET requests is disabled for now. According to DA-4572\n //if (retries < this.MAX_RETRIES)\n //\tthis.post(path, object, retries + 1, deferred)\n //else {\n _this.notification(response, response.status);\n deferred.reject(response.data);\n //}\n });\n }\n return deferred.promise;\n };\n BaseService.prototype.put = function (path, object) {\n return this.putParameter(path, null, object);\n };\n BaseService.prototype.putParameter = function (path, params, object, retries, deferred) {\n var _this = this;\n if (params === void 0) { params = {}; }\n if (retries === void 0) { retries = 1; }\n if (deferred === void 0) { deferred = this.$q.defer(); }\n var token = this.getAccessToken();\n if (this.loggingOut) {\n deferred.reject(\"logging out\");\n return deferred.promise;\n }\n if (this.isRefreshing) {\n setTimeout(function () {\n deferred.promise = _this.putParameter(path, params, object);\n }, this.getMissedCallCounter() * 250);\n }\n else {\n this.$http({\n url: this.apiData.url + path,\n method: 'PUT',\n headers: { 'Authorization': \"Bearer \" + token },\n data: object,\n params: params\n }).then(function (response) {\n if (response.status === 200) {\n deferred.resolve(response.data);\n }\n else {\n if (response.status === 401) {\n _this.tryRefresh();\n deferred.promise = _this.put(path, params);\n return;\n }\n if (response.status === 944) {\n _this.setMissedCallCounter(999);\n _this.logout();\n }\n deferred.reject(response.data);\n }\n }).catch(function (response) {\n if (response.status === 401) {\n _this.tryRefresh();\n deferred.promise = _this.delete(path);\n return;\n }\n if (response.status === 944) {\n _this.setMissedCallCounter(999);\n _this.logout();\n }\n // Retrying non GET requests is disabled for now. According to DA-4572\n //if (retries < this.MAX_RETRIES)\n //\tthis.putParameter(path, params, object, retries + 1, deferred)\n //else {\n _this.notification(response, response.status);\n deferred.reject(response.data);\n //}\n });\n }\n return deferred.promise;\n };\n BaseService.prototype.delete = function (path, retries, deferred) {\n var _this = this;\n if (retries === void 0) { retries = 1; }\n if (deferred === void 0) { deferred = this.$q.defer(); }\n if (this.loggingOut) {\n deferred.reject(\"logging out\");\n return deferred.promise;\n }\n if (this.isRefreshing) {\n setTimeout(function () {\n deferred.promise = _this.delete(path);\n }, this.getMissedCallCounter() * 250);\n }\n else {\n var token = this.getAccessToken();\n this.$http({\n url: this.apiData.url + path,\n method: 'DELETE',\n headers: { 'Authorization': \"Bearer \" + token }\n }).then(function (response) {\n if (response.status === 200) {\n deferred.resolve(response.data);\n }\n else {\n if (response.status === 401) {\n _this.tryRefresh();\n deferred.promise = _this.delete(path);\n return;\n }\n if (response.status === 944) {\n _this.setMissedCallCounter(999);\n _this.logout();\n }\n deferred.reject(response.data);\n }\n }).catch(function (response) {\n if (response.status === 401) {\n _this.tryRefresh();\n deferred.promise = _this.delete(path);\n return;\n }\n if (response.status === 944) {\n _this.setMissedCallCounter(999);\n _this.logout();\n }\n // Retrying non GET requests is disabled for now. According to DA-4572\n //if (retries < this.MAX_RETRIES)\n //\tthis.delete(path, retries + 1, deferred);\n //else {\n _this.notification(response, response.status);\n deferred.reject(response.data);\n //}\n });\n }\n return deferred.promise;\n };\n BaseService.prototype.renewToken = function () {\n var _this = this;\n var deferred = this.$q.defer();\n var token = this.getRefreshToken();\n if (!(token === null || token === void 0 ? void 0 : token.length))\n deferred.reject();\n if (this.isRefreshing || window.clientExchange) {\n deferred.resolve(\"\");\n return deferred.promise;\n }\n this.isRefreshing = true;\n this.$http({\n url: this.apiData.url + \"/session\",\n method: 'PUT',\n data: '{refreshToken: \"' + token + '\"}'\n }).then(function (response) {\n if (response.status === 200 && response.data.accessToken && response.data.refreshToken) {\n _this.setApiData(response.data.accessToken, response.data.refreshToken);\n deferred.resolve({ accessKey: response.data.accessToken, refreshKey: response.data.refreshToken });\n }\n else {\n deferred.resolve(\"ERROR\");\n sessionStorage.clear();\n _this.logout();\n }\n _this.isRefreshing = false;\n }).catch(function () {\n sessionStorage.clear();\n deferred.resolve(\"ERROR\");\n _this.isRefreshing = false;\n _this.logout();\n });\n return deferred.promise;\n };\n BaseService.prototype.setApiData = function (accessToken, refreshToken) {\n sessionStorage.setItem('accessToken', accessToken);\n sessionStorage.setItem('refreshToken', refreshToken);\n document.getElementById(\"session\").setAttribute(\"data-api-key\", accessToken);\n document.getElementById(\"session\").setAttribute(\"data-api-refresh-key\", refreshToken);\n this.apiData.refresh = refreshToken;\n this.apiData.key = accessToken;\n };\n BaseService.prototype.getRefreshToken = function () {\n var result = sessionStorage.getItem(\"refreshToken\");\n if (result == null || result.trim() === \"\" || result.trim() === 'error=\"invalid_token\"') {\n result = $('#session').data().apiKey;\n }\n return result;\n };\n BaseService.prototype.getAccessToken = function () {\n var result = sessionStorage.getItem(\"accessToken\");\n if (result == null || result.trim() === \"\" || result.trim() === 'error=\"invalid_token\"') {\n result = $('#session').data().apiRefreshKey;\n }\n return result;\n };\n BaseService.prototype.getResourceList = function (searchString, onlyActive) {\n if (searchString === void 0) { searchString = \"\"; }\n if (onlyActive === void 0) { onlyActive = true; }\n return this.get('/Resource', { searchString: searchString, onlyActive: onlyActive }, function (data) {\n return data;\n });\n };\n BaseService.prototype.getInstituteList = function (searchString, onlyActive) {\n if (searchString === void 0) { searchString = \"\"; }\n if (onlyActive === void 0) { onlyActive = true; }\n return this.get('/Institute', { searchString: searchString, onlyActive: onlyActive }, function (data) {\n return data;\n });\n };\n BaseService.prototype.tryRefresh = function () {\n //const token = this.getRefreshToken();\n //if (!token || token === '') return; //only perform token refresh if we got a refresh token\n var _this = this;\n this.setMissedCallCounter(this.getMissedCallCounter() + 1);\n if (this.getMissedCallCounter() >= 20) {\n this.setMissedCallCounter(0);\n this.logout();\n }\n if (!this.isRefreshing) {\n this.renewToken().then(function (response) {\n _this.setMissedCallCounter(0);\n if (response === \"ERROR\") {\n _this.logout();\n }\n });\n }\n };\n BaseService.prototype.getMissedCallCounter = function () {\n var value = sessionStorage.getItem(\"missedCallCounter\");\n if (value === undefined || value === null)\n value = \"0\";\n return parseInt(value);\n };\n BaseService.prototype.setMissedCallCounter = function (value) {\n sessionStorage.setItem(\"missedCallCounter\", value.toString());\n };\n BaseService.prototype.getVehicleList = function (searchString) {\n if (searchString === void 0) { searchString = \"\"; }\n return this.get('/Resource/Vehicle', { listSearch: searchString }, function (data) {\n return data;\n });\n };\n BaseService.$inject = ['$http', '$q'];\n return BaseService;\n }());\n Common.BaseService = BaseService;\n })(Common = QMC.Common || (QMC.Common = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Common;\n (function (Common) {\n var UserInterface = /** @class */ (function () {\n /**\n * Creates an instance of UserInterface.\n *\n * @memberOf UserInterface\n */\n function UserInterface() {\n this.successNote = {\n message: \"Eintrag wurde gespeichert!\",\n title: \"Erfolgreich\",\n icon: \"qm-icon-information\",\n status: \"default\",\n timer: 3500\n };\n this.deleteNote = {\n message: \"Eintrag wurde gelöscht!\",\n title: \"Erfolgreich\",\n icon: \"qm-icon-delete\",\n status: \"warning\",\n timer: 3500\n };\n this.deleteNotes = {\n message: \"Einträge wurden gelöscht!\",\n title: \"Erfolgreich\",\n icon: \"qm-icon-delete\",\n status: \"warning\",\n timer: 3500\n };\n this.downloadNote = {\n message: \"Download wird vorbereitet!\",\n title: \"Bitte warten\",\n icon: \"qm-icon-information\",\n status: \"default\",\n timer: 3500\n };\n this.promptOptions = {\n delete: {\n title: \"Termine\",\n icon: \"qm-icon-calendar_7\",\n text: 'Wollen Sie den Eintrag wirklich löschen?'\n },\n updateCalendar: {\n title: \"Serientermin\",\n icon: \"qm-icon-calendar_7\",\n text: 'Serientermin bearbeiten',\n fields: [{ select: [\"a\", \"b\"] }]\n }\n };\n }\n /**\n *\n *\n * @protected\n * @returns {boolean}\n *\n * @memberOf UserInterface\n */\n UserInterface.prototype.isMobile = function () { return QMC.Common.Constants.IS_MOBILE; };\n ;\n /**\n * Returns a qmc calendar event which can be shown in the calendar\n * @param appointment The appointment object\n */\n UserInterface.prototype.createCalendarEvent = function (appointment, randomId, typeDefaults) {\n if (randomId === void 0) { randomId = null; }\n if (typeDefaults === void 0) { typeDefaults = []; }\n var event = {};\n event.id = appointment.objectId;\n event.objectId = appointment.objectId;\n event.dateFrom = moment(appointment.dateFrom).format('YYYY-MM-DD');\n event.mid = appointment.mainAppointmentId;\n event.title = appointment.title;\n event.description = appointment.description;\n event.start = moment(appointment.dateFrom);\n event.end = moment(appointment.dateTo);\n event.participantObjectId = appointment.participantObjectId;\n event.allDay = appointment.isAllDay;\n event.isFinished = appointment.isFinished;\n event.isPrivate = appointment.isPrivate;\n event.isRecurring = appointment.isRecurring;\n event.recurrenceSettings = appointment.recurrenceSettings;\n event.isTypeAppointment = appointment.isTypeAppointment;\n event.isTypeFlsDocumentation = appointment.isTypeFlsDocumentation;\n event.appointmentType = appointment.appointmentTypeId;\n event.mainAppointmentId = appointment.mainAppointmentId;\n event.isTypeTask = appointment.isTypeTask;\n event.editable = false;\n event.color = appointment.colorHtml;\n event.className = \"col-\" + appointment.colorHtml.replace('#', '');\n event.iconCode = \"\";\n event.textColor = this.getTextColor(appointment.colorHtml);\n event.permissions = appointment.permissions;\n event.permFlag = appointment.permFlag;\n if (event.isFinished)\n event.iconCode += \" \";\n if (event.isPrivate)\n event.iconCode += \" \";\n if (event.isRecurring)\n event.iconCode += \" \";\n if (event.isDeleted)\n event.iconCode += \" \";\n if (appointment.appointmentTypeId === 401000)\n event.editable = true;\n if (appointment.appointmentTypeId === 401008)\n event.iconCode += \" \";\n if (randomId)\n event.id = randomId;\n if (typeDefaults.length > 0) {\n var defaultColor = typeDefaults.filter(function (x) { return x.typeId == appointment.appointmentTypeId; })[0];\n if (defaultColor) {\n event.borderColor = defaultColor.colorHtml;\n event.backgroundColor = appointment.colorHtml;\n }\n }\n return event;\n };\n UserInterface.prototype.getTextColor = function (color) {\n var r = parseInt('0x' + color.substr(1, 2));\n var g = parseInt('0x' + color.substr(3, 2));\n var b = parseInt('0x' + color.substr(5, 2));\n var hsp = (r * 299 + g * 587 + b * 114) / 1000;\n // Using the HSP value, determine whether the color is light or dark\n if (hsp > 123) {\n //light color, return black\n return '#000000';\n }\n else {\n //dark color return white\n return '#FFFFFF';\n }\n };\n /**\n * Select value text pair from a dataSet\n *\n * @param {*} dataSet\n * @param {*} filters\n * @returns {Common.ISelectListItem[]}\n *\n * @memberOf UserInterface\n */\n UserInterface.prototype.select = function (dataSet, filters) {\n var filterChache = filters.text.split(',');\n var options = dataSet.map(function (obj) {\n if (filterChache.length > 1)\n return {\n text: obj[filterChache[0]] + ', ' + obj[filterChache[0]],\n value: obj[filters.value]\n };\n return {\n text: obj[filters.text],\n value: obj[filters.value]\n };\n });\n return options;\n };\n /**\n * Notification\n *\n * @param {any} note\n *\n * @memberOf UserInterface\n */\n UserInterface.prototype.notify = function (note, message) {\n var timestamp = new Date().getTime();\n var randomNum = timestamp + Math.floor((Math.random() * 1000) + 1);\n var _timer = 1500, _overlay = 0;\n if (note.hasOwnProperty(\"timer\"))\n _timer = note.timer;\n if (note.hasOwnProperty(\"overlay\"))\n _overlay = note.overlay;\n setTimeout(showNotify, _overlay);\n setTimeout(hideNotify, _timer);\n function showNotify() {\n $(\"#qm-notification\")\n .prepend(\"
\");\n setTimeout(function () {\n if (QMC.Common.Constants.IS_MOBILE)\n $(\"#notify-\" + randomNum).css(\"margin-left\", \"220px\");\n }, 200);\n $(\"#notify-\" + randomNum).click(function () {\n $(this).addClass(\"slideOutUp\");\n var modal = this;\n setTimeout(function () {\n $(modal).remove();\n }, 800);\n });\n }\n function hideNotify() {\n $(\"#notify-\" + randomNum).addClass(\"slideOutUp\");\n setTimeout(function () {\n $(\"#notify-\" + randomNum).remove();\n }, 800);\n }\n };\n /**\n * Add time to date\n *\n * @param {Date} date\n * @param {Date} time\n * @returns {Date}\n *\n * @memberOf UserInterface\n */\n UserInterface.prototype.addTimeToDate = function (date, time) {\n date = moment(date).toDate();\n time = moment(time).toDate();\n date.setHours(time.getHours());\n date.setMinutes(time.getMinutes());\n return moment(date).toDate();\n };\n /**\n * get the duration between two dates in hours\n *\n * @param {Date} start\n * @param {Date} end\n * @returns {number}\n *\n * @memberOf UserInterface\n */\n UserInterface.prototype.getDurationInHours = function (start, end) {\n /**\n * Updated Version\n */\n // var duration = moment.duration(moment(end).diff(moment(start)));\n // return duration.asHours();\n var a = moment(start).year(1).month(1).day(1);\n var b = moment(end).year(1).month(1).day(1);\n var duration = moment.duration(b.diff(a));\n return duration.asHours();\n };\n /**\n * get the duration between two dates in days\n *\n * @param {Date} start\n * @param {Date} end\n * @returns {number}\n *\n * @memberOf UserInterface\n */\n UserInterface.prototype.getDurationInDays = function (start, end) {\n var a = moment(start).hours(0).minute(0).seconds(0);\n var b = moment(end).hours(0).minute(0).seconds(0);\n var duration = moment.duration(b.diff(a));\n return duration.asDays();\n };\n /**\n * round time by a given part\n *\n * @param {Date} time\n * @param {number} part\n * @returns {Date}\n *\n * @memberOf UserInterface\n */\n UserInterface.prototype.roundTime = function (time, part) {\n var rounded = Math.round(moment(time).minute() / part) * part;\n var d = new Date(time);\n d.setMinutes(rounded);\n d.setSeconds(0);\n return d;\n };\n UserInterface.prototype.getDisplayedPropertiesFromSchema = function (schema) {\n var result = [];\n for (var prop in schema.table) {\n result.push(schema.table[prop].label);\n }\n return result.filter(function (x) { return x; }); //Get rid of invalid values (just to be sure)\n };\n return UserInterface;\n }());\n Common.UserInterface = UserInterface;\n })(Common = QMC.Common || (QMC.Common = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Common;\n (function (Common) {\n var Filter = /** @class */ (function () {\n function Filter() {\n }\n Filter.Humanize = function (userService) {\n var settingName = 'HUMANIZETIME';\n var getNavigatorLanguage = function () { var _a; return ((_a = navigator.languages) === null || _a === void 0 ? void 0 : _a.length) ? navigator.languages[0] : navigator.userLanguage || navigator.language || navigator.browserLanguage || 'de'; };\n console.log(\"LANG\", getNavigatorLanguage());\n moment.locale(getNavigatorLanguage());\n function createString(date, setting) {\n if (setting < 0)\n return moment(date).format('DD.MM.YYYY HH:mm');\n else if (setting === 0)\n return moment(date).fromNow();\n else {\n if (moment(date).isBefore(moment().add(-setting, 'h')))\n return moment(date).format('DD.MM.YYYY HH:mm');\n return moment(date).fromNow();\n }\n }\n filterStub.$stateful = true;\n function filterStub(date) {\n var fromStorage = sessionStorage.getItem(settingName);\n if (!fromStorage) {\n sessionStorage.setItem(settingName, 'loading');\n userService.getUserSettings([settingName]).then(function (data) {\n var value = parseInt(data[0].value && data[0].value.length > 0 ? data[0].value : '24');\n sessionStorage.setItem(settingName, value + '');\n return '';\n });\n return '';\n }\n else if (fromStorage === 'loading') {\n return '';\n }\n return createString(date, parseInt(fromStorage));\n }\n return filterStub;\n };\n Filter.NotEmpty = function () {\n return function (string) {\n if (string == null)\n return;\n return string.length === 0 ? \"-\" : string;\n };\n };\n Filter.FullNameFormat = function () {\n return function (string) {\n if (typeof string != 'string')\n return string;\n if (string.indexOf(',') > 1)\n return string.split(',')[1] + \" \" + string.split(',')[0];\n return string;\n };\n };\n Filter.Shortner = function () {\n return function (string) {\n if (string.length > 20)\n return string.substring(0, 8) + \"...\" + string.substring(string.length - 8, string.length);\n else\n return string;\n };\n };\n Filter.Html = function ($sce) {\n return function (val) {\n return $sce.trustAsHtml(val);\n };\n };\n Filter.DisplayFormat = function ($sce) {\n return function (item, format) {\n if (item == undefined)\n return;\n switch (format) {\n case 'heading': return item;\n case 'boolean': return item ? \"Ja\" : \"Nein\"; // ICONS\n case 'number': return item.toString(); // try it\n case 'string': return item;\n case 'date': return moment(item).format('DD.MM.YYYY');\n case 'multiple':\n var html = \"