{"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(\"
\" + note.title + \"\" + note.message + \"
\");\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 = \"\");\n case 'description': return $sce.trustAsHtml(item);\n default: return item;\n }\n };\n };\n Filter.StartFrom = function () {\n return function (input, start) {\n if (input == (null || undefined) || start == (null || undefined))\n return [];\n start = +start; //parse to int\n return input.slice(start);\n };\n };\n return Filter;\n }());\n Common.Filter = Filter;\n })(Common = QMC.Common || (QMC.Common = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n /**\n * Registers an angular controller\n * @param moduleName The name of the angular module\n * @param controllerName The name of the controller\n */\n function Controller(moduleName, controllerName) {\n return function decoratorFactory(target, decoratedPropertyName) {\n angular\n .module(moduleName)\n .controller(controllerName, target);\n };\n }\n QMC.Controller = Controller;\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n /**\n * Creates the directive factory function and sets the dependencies of the directive and registers the directive\n * @param moduleName The name of the angular module\n * @param directiveName The name of the service\n * @param dependencies The dependencies of the directive\n */\n function Directive(moduleName, directiveName, dependencies) {\n if (dependencies === void 0) { dependencies = []; }\n return function decoratorFactory(target, decoratedPropertyName) {\n // Create directive\n var directive = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return (function (classConstructor, args, ctor) {\n ctor.prototype = classConstructor.prototype;\n var child = new ctor;\n var result = classConstructor.apply(child, args);\n return typeof result === \"object\" ? result : child;\n })(target, args, function () {\n return null;\n });\n };\n // Dependency injection\n directive.$inject = dependencies;\n // Angular registration\n angular\n .module(moduleName)\n .directive(directiveName, directive);\n };\n }\n QMC.Directive = Directive;\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n /**\n * Injects this class with the given dependencies\n * @param dependencies The dependencies of this class\n */\n function Inject() {\n var dependencies = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n dependencies[_i] = arguments[_i];\n }\n return function decoratorFactory(target, decoratedPropertyName) {\n var $inject = target.$inject = [];\n $inject = $inject.concat(dependencies);\n target.prototype.$inject = $inject;\n target.$inject = $inject;\n };\n }\n QMC.Inject = Inject;\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n /**\n * Registers an angular service\n * @param moduleName The name of the angular module\n * @param serviceName The name of the service\n */\n function Service(moduleName, serviceName) {\n return function decoratorFactory(target, decoratedPropertyName) {\n angular\n .module(moduleName)\n .service(serviceName, target);\n };\n }\n QMC.Service = Service;\n})(QMC || (QMC = {}));\n(function () {\n sessionStorage.clear();\n angular.element(document).ready(function () {\n angular.bootstrap(document, ['QMC']);\n });\n function config($locationProvider, $stateProvider, $urlRouterProvider, qmcBase, $httpProvider, $sceDelegateProvider, $qProvider) {\n $httpProvider.defaults.cache = true;\n $urlRouterProvider.when('', '/');\n $urlRouterProvider.when('/ambulant', '/');\n $locationProvider.hashPrefix('');\n $locationProvider.html5Mode({\n enabled: false,\n requireBase: false\n });\n $sceDelegateProvider.resourceUrlWhitelist([\n 'self',\n 'http://service.daarwin.de/**',\n 'https://service.daarwin.de/**',\n 'http://localhost:4200/*'\n ]);\n //$qProvider.errorOnUnhandledRejections(false);\n // $compileProvider.debugInfoEnabled(false);\n $stateProvider\n .state('dashboard', {\n url: '/',\n templateUrl: qmcBase + '/Dashboard',\n controller: 'HomeController',\n controllerAs: 'vm',\n resolve: {\n data: [function () {\n console.log('Current State: Dashboard');\n }]\n }\n }).state('changelog', {\n url: '/changelog',\n templateUrl: qmcBase + '/Changelog/Index',\n controller: 'ChangelogController',\n controllerAs: 'vm',\n resolve: {\n data: [function () {\n console.log('Current State: Changelog');\n }]\n }\n }).state('license', {\n url: '/license',\n templateUrl: qmcBase + '/License/Index',\n controller: 'HomeController',\n controllerAs: 'vm',\n resolve: {\n data: [function () {\n console.log('Current State: License');\n }]\n }\n });\n $stateProvider\n .state('404', {\n url: '/404',\n templateUrl: qmcBase + '/error/404',\n controller: 'HomeController',\n controllerAs: 'vm',\n resolve: {\n data: [function () {\n console.warn('Current State: Page not Found');\n }]\n }\n });\n $stateProvider\n .state('changePassword', {\n url: '/user/changepassword',\n templateUrl: qmcBase + '/ChangePassword',\n controller: 'ChangePasswordController',\n controllerAs: 'vm',\n resolve: {\n data: [function () {\n console.warn('Current State: change password');\n }]\n }\n }).state('settings', {\n url: '/user/settings',\n templateUrl: qmcBase + '/Settings',\n controller: 'UserSettingsController',\n controllerAs: 'vm',\n resolve: {\n data: [function () {\n console.warn('Current State: User Settings');\n }]\n }\n }).state('globalsettings', {\n url: '/user/globalsettings',\n templateUrl: qmcBase + '/GlobalSettings',\n controller: 'UserGlobalSettingsController',\n controllerAs: 'vm',\n resolve: {\n data: [function () {\n console.warn('Current State: User Global Settings');\n }]\n }\n }).state('navconfiguration', {\n url: '/navconfiguration',\n templateUrl: qmcBase + '/NavConfiguration',\n controller: 'NavConfigurationController',\n controllerAs: 'vm',\n resolve: {\n data: [function () {\n console.warn('Current State: User Global Settings');\n }]\n }\n });\n }\n // Init Empty Modules\n var baseUrl = $('#session').data().baseUrl;\n angular\n .module('QMC.Common', [])\n .constant('qmcBase', baseUrl.substring(0, baseUrl.length - 1))\n .run(['QmcLanguageService', function (qmcLanguageService) {\n qmcLanguageService.loadLanguageTags();\n }]);\n angular.module('QMC.Documents', []);\n angular.module('QMC.Directives', []);\n angular.module('QMC.Input', []);\n angular.module('QMC.Udf', []);\n angular.module('QMC.Aufgaben', []);\n angular.module('QMC.Arbeitszeitnachweis', ['ui.router']);\n angular.module('QMC.Klient', ['ui.router']);\n angular.module('QMC.Medikamente', ['ui.router']);\n angular.module('QMC.Fachleistung', ['ui.router', 'QMC.Klient', 'QMC.Home']);\n angular.module('QMC', ['ui.router', 'ui.router.state.events', 'ngMessages', 'ui.select', 'ngSanitize', 'qmc-ui', 'QMC.Common', 'QMC.Home', 'QMC.Documents', 'QMC.Directives', 'QMC.Input', 'QMC.Udf', 'QMC.Arbeitszeitnachweis',\n 'QMC.Aufgaben', 'QMC.ClientInformation', 'QMC.Fachleistung', 'QMC.Holiday', 'QMC.Klient', 'QMC.Medikamente', 'QMC.Nachrichten', 'QMC.Reporting', 'QMC.Stammdaten', 'QMC.Tagebuch',\n 'QMC.Termin', 'QMC.Roster', 'QMC.Employee'])\n .filter(\"humanize\", ['UserService', QMC.Common.Filter.Humanize])\n .filter(\"displayFormat\", ['$sce', QMC.Common.Filter.DisplayFormat])\n .filter(\"notEmpty\", QMC.Common.Filter.NotEmpty)\n .filter(\"shortner\", QMC.Common.Filter.Shortner)\n .filter(\"unsafeHtml\", ['$sce', QMC.Common.Filter.Html])\n .filter(\"fullNameFormat\", QMC.Common.Filter.FullNameFormat)\n .filter(\"startFrom\", QMC.Common.Filter.StartFrom)\n .config(config)\n .run(['$rootScope', '$state', 'UserService', function ($rootScope, $state, userService) {\n var rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)[^>]*)\\/>/gi;\n jQuery.htmlPrefilter = function (html) {\n return html.replace(rxhtmlTag, \"<$1>\");\n };\n if (location.href.indexOf(\"hideNav=true\") > 0) {\n $('body').addClass('hideNav');\n }\n else {\n $('body').removeClass('hideNav');\n }\n userService.updateSession();\n $rootScope.$on('$stateChangeStart', function (event, toState, toParams, fromState, fromParams) {\n if (!$state.history)\n $state.history = [];\n if (fromState.name && fromState.name.length > 0)\n $state.history.unshift({\n name: fromState.name,\n url: fromState.url,\n params: fromParams\n });\n $state.history = $state.history.slice(0, 5); // limit to last 5 entries\n });\n }]);\n config.$inject = ['$locationProvider', '$stateProvider', '$urlRouterProvider', 'qmcBase', '$httpProvider', '$sceDelegateProvider', '$qProvider'];\n angular.module('QMC.Common')\n .config(['$httpProvider', QMC.Common.HttpBaseProvider.configureHttpProvider]);\n})();\nvar QMC;\n(function (QMC) {\n var Common;\n (function (Common) {\n var QmcLanguageService = /** @class */ (function (_super) {\n __extends(QmcLanguageService, _super);\n function QmcLanguageService($http, $q) {\n var _this = _super.call(this, $http, $q) || this;\n _this.$http = $http;\n _this.$q = $q;\n _this.isDebug = false;\n _this.languageTags = [];\n var ele = angular.element('#session');\n _this.languageId = ele.data('user-language-id');\n try {\n _this.isDebug = ele.data('debug').toLowerCase() === 'true';\n }\n catch (e) {\n _this.isDebug = false;\n console.log(e);\n }\n ;\n _this.loadLanguageTags();\n return _this;\n }\n QmcLanguageService.prototype.loadLanguageTags = function () {\n var _this = this;\n var ele = angular.element('#session');\n this.languageId = ele.data('user-language-id');\n this.isDebug = ele.data('debug');\n if (!this.languageId || this.isLoading)\n return;\n this.isLoading = true;\n _super.prototype.getItem.call(this, \"/languages/\" + this.languageId + \"/tags\", { fromTag: 20000000, toTag: 29999999, asDict: true, dbConnectionString: ele.data('db-connection') })\n .then(function (data) {\n _this.languageTags = data.languageTags;\n }).finally(function () {\n _this.isLoading = false;\n if (_this.timeout)\n clearTimeout(_this.timeout);\n _this.timeout = setTimeout(function () { _this.loadLanguageTags(); }, _this.languageTags && Object.keys(_this.languageTags).length === 0 ? 1200000 : 60000 * 15);\n });\n };\n QmcLanguageService.prototype.translate = function (tag, defaultValue) {\n if (defaultValue === void 0) { defaultValue = ''; }\n if (!this.languageTags) {\n this.loadLanguageTags();\n }\n var value = this.languageTags[tag];\n if (value && value.length > 0) {\n return value;\n }\n return defaultValue;\n //return this.isDebug ? `*JD* ${defaultValue}` : defaultValue;\n };\n QmcLanguageService.prototype.getLanguages = function () {\n return this.get('/Languages', {}, function (data) {\n return data;\n });\n };\n QmcLanguageService.prototype.getCurrentLanguageId = function () {\n return this.languageId;\n };\n QmcLanguageService.prototype.setLanguageTag = function (tag, data) {\n if (tag === void 0) { tag = 0; }\n return this.putParameter('/Languages/' + tag, { languageId: this.languageId }, '\"' + data + '\"').then(function (data) {\n return data;\n });\n };\n QmcLanguageService = __decorate([\n QMC.Inject('$http', '$q'),\n QMC.Service('QMC.Common', 'QmcLanguageService')\n ], QmcLanguageService);\n return QmcLanguageService;\n }(Common.BaseService));\n Common.QmcLanguageService = QmcLanguageService;\n })(Common = QMC.Common || (QMC.Common = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Common;\n (function (Common) {\n var QmcMediaService = /** @class */ (function (_super) {\n __extends(QmcMediaService, _super);\n function QmcMediaService($http, $q) {\n var _this = _super.call(this, $http, $q) || this;\n _this.$http = $http;\n _this.$q = $q;\n return _this;\n }\n QmcMediaService.prototype.convertToHtml = function (base64, sourceType) {\n return this.post('/Media/Converter/ToHtml', { base64: base64, sourceType: sourceType }).then(function (data) {\n return data;\n });\n };\n QmcMediaService.prototype.convertToPdf = function (base64, sourceType) {\n return this.post('/Media/Converter/ToPdf', { base64: base64, sourceType: sourceType }).then(function (data) {\n return data;\n });\n };\n QmcMediaService.prototype.getTextBlocks = function () {\n return _super.prototype.get.call(this, \"/TextBlock\", {}, function (data) {\n return data;\n });\n };\n QmcMediaService.prototype.getTextTemplates = function () {\n return _super.prototype.get.call(this, \"/TextTemplate\", {}, function (data) {\n return data;\n });\n };\n QmcMediaService.prototype.getTextTemplateContent = function (id) {\n return _super.prototype.getItem.call(this, \"/TextTemplate/\" + id, {}, function (data) {\n return data;\n });\n };\n QmcMediaService.prototype.getMediaFile = function (id, mediaType) {\n return _super.prototype.getItem.call(this, \"/Document/Media/\" + id, { mediaType: mediaType }, function (data) {\n return data;\n });\n };\n QmcMediaService.prototype.getMediaThumbnail = function (id, mediaType, maxSize) {\n if (maxSize === void 0) { maxSize = 50; }\n return _super.prototype.getItem.call(this, \"/Document/Media/\" + id, { mediaType: mediaType, maxSize: maxSize }, function (data) {\n return data;\n });\n };\n QmcMediaService.prototype.getMediaAttachement = function (documentId, attachmentId) {\n return _super.prototype.getItem.call(this, \"/Document/Media/\" + documentId + \"/\" + attachmentId, {}, function (data) {\n return data;\n });\n };\n QmcMediaService.prototype.postMediaAttachement = function (data) {\n return _super.prototype.post.call(this, \"/Document/Media\", data).then(function (data) {\n return data;\n });\n };\n QmcMediaService.prototype.deleteMediaAttachementDirect = function (attachmentId) {\n return _super.prototype.delete.call(this, \"/Document/Media/\" + attachmentId).then(function (data) {\n return data;\n });\n };\n QmcMediaService.prototype.deleteMediaAttachement = function (documentId, attachmentId) {\n return _super.prototype.delete.call(this, \"/Document/Media/\" + documentId + \"/\" + attachmentId).then(function (data) {\n return data;\n });\n };\n QmcMediaService = __decorate([\n QMC.Inject('$http', '$q'),\n QMC.Service('QMC.Common', 'QmcMediaService')\n ], QmcMediaService);\n return QmcMediaService;\n }(Common.BaseService));\n Common.QmcMediaService = QmcMediaService;\n })(Common = QMC.Common || (QMC.Common = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Common;\n (function (Common) {\n var QmcPermissionService = /** @class */ (function (_super) {\n __extends(QmcPermissionService, _super);\n //private permissionCache: { objectType: number, timestamp: number, result: IPermission[] | 'loading' }[] = [];\n function QmcPermissionService($http, $q) {\n var _this = _super.call(this, $http, $q) || this;\n _this.$http = $http;\n _this.$q = $q;\n _this.cacheTTL = 1000 * 60 * 1; // 1minutes\n _this.permissionCache = {};\n return _this;\n }\n ;\n QmcPermissionService.prototype.getCachedValue = function (objectType) {\n var _this = this;\n var cache = this.permissionCache[objectType];\n if (cache === 'loading')\n return new Promise(function (resolve, reject) {\n setTimeout(function () { return __awaiter(_this, void 0, void 0, function () {\n var result;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.getCachedValue(objectType)];\n case 1:\n result = _a.sent();\n if (result)\n resolve(result);\n else\n reject();\n return [2 /*return*/];\n }\n });\n }); }, 250);\n });\n // if no cache or cache exceedded TTL, rturn it\n else if (!cache || new Date().getTime() - this.cacheTTL > cache.timestamp) {\n delete this.permissionCache[objectType];\n return Promise.reject();\n }\n ;\n return Promise.resolve(cache.result);\n };\n QmcPermissionService.prototype.setCachedValue = function (objectType, value) {\n var cache = this.permissionCache[objectType];\n if (value.length === 1 && cache !== 'loading' && (cache === null || cache === void 0 ? void 0 : cache.result.length) > 1) {\n var temp = value[0];\n value = cache.result;\n value[0] = temp;\n }\n this.permissionCache[objectType] = { timestamp: new Date().getTime(), result: value };\n };\n /**\n * Gets the permissions by object type.\n * @param objectType The object type to get the permissions for (e.g. 140000 for client).\n */\n QmcPermissionService.prototype.getPermissionsByObjectType = function (objectType, force) {\n var _this = this;\n if (force === void 0) { force = false; }\n var getAction = function () {\n _this.permissionCache[objectType] = 'loading';\n return _this.get('/Permission', { objectType: objectType }, function (data) {\n _this.setCachedValue(objectType, data);\n return data;\n });\n };\n if (force)\n return getAction();\n return this.getCachedValue(objectType)\n .then(function (result) { return Promise.resolve(result); })\n .catch(getAction);\n };\n /**\n * Gets the permissions by object types.\n * @param objectType The object type to get the permissions for (e.g. 140000 for client).\n */\n QmcPermissionService.prototype.getPermissionsByObjectTypes = function (objectTypes, force) {\n var _this = this;\n if (force === void 0) { force = false; }\n var getAction = function () {\n objectTypes.forEach(function (x) { return _this.permissionCache[x] = 'loading'; });\n return _this.get('/Permission/Multiple', { objectTypes: objectTypes }, function (data) {\n data.forEach(function (x) { return _this.setCachedValue(x.objectType, [x]); });\n return data;\n });\n };\n if (force)\n return getAction();\n return Promise.all(objectTypes.map(function (x) { return _this.getCachedValue(x); }))\n .then(function (all) { return all.map(function (x) { return x[0]; }); })\n .catch(getAction);\n };\n /** Gets the permissions for Media / Documents.\n * @param objectTypeBase The object type to get the permissions OBJEKTTYPE_DOCUMENT.\n * @param wvTypeId The wv subtyp.\n * @param folderCategoryId The Document Category for which we get the permission\n */\n QmcPermissionService.prototype.getMediaPermissions = function (objectTypeBase, wvTypeId, folderCategoryId) {\n return this.get('/Permission/Media', { objectTypeBase: objectTypeBase, wvTypeId: wvTypeId, folderCategoryId: folderCategoryId }, function (data) {\n return data;\n });\n };\n /**\n * Gets the permissions for a dataset.\n * @param objectId The objectId of the dataset to get the permissions for.\n * @param objectType The object type to get the permissions for (e.g. 140000 for client).\n */\n QmcPermissionService.prototype.getPermissionsForDataset = function (objectId, objectType) {\n return this.get('/Permission/DataSet', { objectId: objectId, objectType: objectType }, function (data) {\n return data;\n });\n };\n /**\n * Gets the permissions for a specific user related to a specific type.\n * @param userId The userId to get the permissions for.\n * @param objectType The object type to get the permissions for (e.g. 140000 for client).\n */\n QmcPermissionService.prototype.getPermissionsForGivenUserAndObjectType = function (userId, objectType) {\n return this.get('/Permission/ObjectInAllowedNewPermsList', { userId: userId, objectType: objectType }, function (data) {\n return data;\n });\n };\n QmcPermissionService.prototype.getLicense = function () {\n return _super.prototype.get.call(this, '/Navigation/License', {}).then(function (data) {\n return data;\n });\n };\n QmcPermissionService = __decorate([\n QMC.Inject('$http', '$q'),\n QMC.Service('QMC.Common', 'QmcPermissionService')\n ], QmcPermissionService);\n return QmcPermissionService;\n }(Common.BaseService));\n Common.QmcPermissionService = QmcPermissionService;\n })(Common = QMC.Common || (QMC.Common = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Common;\n (function (Common) {\n var QmcMarkItemService = /** @class */ (function (_super) {\n __extends(QmcMarkItemService, _super);\n function QmcMarkItemService($http, $q) {\n var _this = _super.call(this, $http, $q) || this;\n _this.$http = $http;\n _this.$q = $q;\n return _this;\n }\n QmcMarkItemService.prototype.getMarkItems = function () {\n return this.getItem('/MarkItem/', {}, function (data) {\n return data;\n });\n };\n QmcMarkItemService.prototype.getSelectedMarkItems = function (parentObjectId, parentObjectType) {\n return this.getItem('/SelectedMarkItem/' + parentObjectId + '/' + parentObjectType, {}, function (data) {\n return data;\n });\n };\n QmcMarkItemService.prototype.checkIfItemsAreMarked = function (parentObjectIds, parentObjectType) {\n return this.getItem('/SelectedMarkItem/CheckIfMarked/' + parentObjectType, { parentObjectIds: parentObjectIds }, function (data) {\n return data;\n });\n };\n QmcMarkItemService.prototype.putSelectedMarkItems = function (data) {\n return this.put('/SelectedMarkItem/', data).then(function (data) {\n return data;\n });\n };\n QmcMarkItemService = __decorate([\n QMC.Inject('$http', '$q'),\n QMC.Service('QMC.Common', 'QmcMarkItemService')\n ], QmcMarkItemService);\n return QmcMarkItemService;\n }(Common.BaseService));\n Common.QmcMarkItemService = QmcMarkItemService;\n })(Common = QMC.Common || (QMC.Common = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Common;\n (function (Common) {\n var QmcIdentityService = /** @class */ (function (_super) {\n __extends(QmcIdentityService, _super);\n function QmcIdentityService($http, $q) {\n var _this = _super.call(this, $http, $q) || this;\n _this.$http = $http;\n _this.$q = $q;\n return _this;\n }\n /**\n * Gets the claims of the currently logged in user.\n */\n QmcIdentityService.prototype.getIdentity = function () {\n return this.getItem('/Identity', {}, function (data) {\n return data;\n });\n };\n QmcIdentityService.prototype.setSecretToken = function () {\n var deferred = this.$q.defer();\n this.$http({\n url: this.apiData.url + '/TokenExchange',\n method: 'POST',\n data: { access: this.getAccessToken(), refresh: this.getRefreshToken() }\n }).then(function (response) {\n if (response.status === 201 || response.status === 200)\n deferred.resolve(response.data);\n else\n deferred.reject(response.data);\n }).catch(function (response) {\n deferred.reject(response.data);\n });\n return deferred.promise.then(function (data) { return data; });\n };\n QmcIdentityService.prototype.getSecretToken = function (id) {\n var deferred = this.$q.defer();\n this.$http({\n url: this.apiData.url + '/TokenExchange/' + id,\n method: 'GET'\n }).then(function (response) {\n if (response.status === 200)\n deferred.resolve(response.data);\n else\n deferred.reject(response.data);\n }).catch(function (response) {\n deferred.reject(response.data);\n });\n return deferred.promise.then(function (data) { return data; });\n };\n QmcIdentityService = __decorate([\n QMC.Inject('$http', '$q'),\n QMC.Service('QMC.Common', 'QmcIdentityService')\n ], QmcIdentityService);\n return QmcIdentityService;\n }(Common.BaseService));\n Common.QmcIdentityService = QmcIdentityService;\n })(Common = QMC.Common || (QMC.Common = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Common;\n (function (Common) {\n angular.module('QMC.Common').directive('qmLicense', ['QmcPermissionService', '$qui', function (permissionService, $qui) {\n return {\n restrict: 'E',\n templateUrl: './License/Directive',\n transclude: true,\n scope: {\n granted: '=?',\n key: '@?',\n route: '@?',\n loading: '=?'\n },\n link: function (scope) {\n function checkLicenseByRoute(route) {\n var _a, _b;\n var license = getLicense();\n return (_b = (_a = license.filter(function (x) { return x.url.toLowerCase() === route.toLowerCase(); })[0]) === null || _a === void 0 ? void 0 : _a.granted) !== null && _b !== void 0 ? _b : false;\n }\n function checkLicenseByKey(key) {\n var _a, _b;\n var license = getLicense();\n return (_b = (_a = license.filter(function (x) { return x.license.toLowerCase() === key.toLowerCase(); })[0]) === null || _a === void 0 ? void 0 : _a.granted) !== null && _b !== void 0 ? _b : false;\n }\n function getLicense() {\n var license = window.license;\n if (license === 'loading')\n return [];\n if (!license || !Array.isArray(license)) {\n window.license = 'loading';\n permissionService.getLicense().then(function (data) {\n window.license = data;\n scope.loading = false;\n });\n return [];\n }\n scope.loading = false;\n return license;\n }\n function checkLicense() {\n if (!scope.key && !scope.route) {\n scope.loading = false;\n scope.granted = false;\n }\n scope.granted = scope.key ? checkLicenseByKey(scope.key) : scope.route ? checkLicenseByRoute(scope.route) : false;\n $qui.scopeApply(scope);\n if (scope.loading) {\n setTimeout(function () { checkLicense(); }, 200);\n }\n }\n scope.loading = true;\n checkLicense();\n }\n };\n }\n ]);\n })(Common = QMC.Common || (QMC.Common = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Common;\n (function (Common) {\n var QmcPrivateContentService = /** @class */ (function (_super) {\n __extends(QmcPrivateContentService, _super);\n function QmcPrivateContentService($http, $q) {\n var _this = _super.call(this, $http, $q) || this;\n _this.$http = $http;\n _this.$q = $q;\n return _this;\n }\n /**\n * Gets a single private content.\n * @param objectType The parent object to get the content for (e.g. fls-docu).\n * @param referenceObjectId The reference to get the content for (e.g. client).\n */\n QmcPrivateContentService.prototype.getPrivateContent = function (parentId, referenceObjectId) {\n return this.getItem('/PrivateContent/' + parentId + '/' + referenceObjectId, {}, function (data) {\n return data;\n });\n };\n QmcPrivateContentService.prototype.putPrivateContent = function (parentId, referenceObjectId, data) {\n return this.put('/PrivateContent/' + parentId + '/' + referenceObjectId, data).then(function (data) {\n return data;\n });\n };\n QmcPrivateContentService.prototype.postPrivateContent = function (data) {\n return this.post('/PrivateContent/', data).then(function (data) {\n return data;\n });\n };\n QmcPrivateContentService = __decorate([\n QMC.Inject('$http', '$q'),\n QMC.Service('QMC.Common', 'QmcPrivateContentService')\n ], QmcPrivateContentService);\n return QmcPrivateContentService;\n }(Common.BaseService));\n Common.QmcPrivateContentService = QmcPrivateContentService;\n })(Common = QMC.Common || (QMC.Common = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Common;\n (function (Common) {\n var Utilities = /** @class */ (function () {\n function Utilities() {\n }\n Utilities.confirm = function (obj, cb, prompt, staticBD) {\n if (prompt === void 0) { prompt = '#prompt'; }\n if (staticBD === void 0) { staticBD = false; }\n $(prompt).modal({ backdrop: staticBD ? 'static' : true, keyboard: false });\n obj.callback = function (bool) {\n cb(bool);\n };\n };\n Utilities.arraysEqual = function (_arr1, _arr2) {\n if (!Array.isArray(_arr1) || !Array.isArray(_arr2) || _arr1.length !== _arr2.length)\n return false;\n var arr1 = _arr1.concat().sort();\n var arr2 = _arr2.concat().sort();\n for (var i = 0; i < arr1.length; i++) {\n if (arr1[i] !== arr2[i])\n return false;\n }\n return true;\n };\n return Utilities;\n }());\n Common.Utilities = Utilities;\n })(Common = QMC.Common || (QMC.Common = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Common;\n (function (Common) {\n /**\n * Smart action keyword check class\n *\n * @export\n * @class SmartAction\n */\n var SmartAction = /** @class */ (function () {\n function SmartAction(permissionService, userService, clientService, lng, $scope) {\n var _this = this;\n this.clientService = clientService;\n this.lng = lng;\n this.$scope = $scope;\n this.keyWords = [];\n this.keyWordGroups = [\"impfung\", \"arzt\", \"krankheit\", \"termin\", \"abwesenheit\", \"nachricht\", \"aufgabe\", \"dokument\", \"kassenbuch\", \"kontaktperson\"];\n this.activeKeys = {};\n this.ignoredKeys = [];\n this.loading = true;\n if (!permissionService || !clientService || !lng)\n return;\n var cache = sessionStorage.getItem(Common.Constants.SMARTACTIONCACHE);\n this.cacheObject = cache && cache.length > 0 ? JSON.parse(cache) : {};\n // nothing cached and not already loading, completely rebuild\n if (!this.cacheObject.permissions) {\n this.cacheObject.permissions = { loading: true };\n sessionStorage.setItem(Common.Constants.SMARTACTIONCACHE, JSON.stringify(this.cacheObject));\n if (!window.license || window.license === 'loading')\n permissionService.getLicense().then(function (license) {\n window.license = license !== null && license !== void 0 ? license : []; //since we already got it, might as well set it in windowstore. might reduce waittime later\n _this.createKeyWords(permissionService, userService);\n });\n else\n this.createKeyWords(permissionService, userService);\n }\n // data is already beeing loaded, wait for it\n else if (this.cacheObject.permissions && this.cacheObject.permissions.loading) {\n this.waitForPermissionCache();\n }\n // data is already present, use it\n else {\n this.keyWords = this.cacheObject.keyWords;\n this.loading = false;\n }\n // init person lists needed by several SAs\n // loading int\n this.cacheObject.clientList = { loading: true };\n this.cacheObject.employeeList = { loading: true };\n sessionStorage.setItem(Common.Constants.SMARTACTIONCACHE, JSON.stringify(this.cacheObject));\n // clientlist\n this.clientService.getClientPersonList(\"\", true).then(function (data) {\n _this.cacheObject.clientList = data.map(function (x) { return ({ value: x.objectId, text: x.displayTitle }); });\n sessionStorage.setItem(Common.Constants.SMARTACTIONCACHE, JSON.stringify(_this.cacheObject));\n });\n // employeelist\n this.clientService.getEmployeeList().then(function (data) {\n _this.cacheObject.employeeList = data.map(function (x) { return ({ value: x.objectId, text: x.displayTitle }); });\n sessionStorage.setItem(Common.Constants.SMARTACTIONCACHE, JSON.stringify(_this.cacheObject));\n });\n // personlists\n this.clientService.getAllPersonLists().then(function (data) {\n _this.cacheObject.personLists = data.map(function (x) { return ({ value: x.objectId, text: x.name + ' (' + _this.lng.translate(20000292, 'Verteiler') + ')' }); });\n sessionStorage.setItem(Common.Constants.SMARTACTIONCACHE, JSON.stringify(_this.cacheObject));\n });\n this.resetSmartAction();\n }\n SmartAction.prototype.resetSmartAction = function () {\n this.ignoredKeys = [];\n for (var _i = 0, _a = this.keyWordGroups; _i < _a.length; _i++) {\n var keyword = _a[_i];\n this.activeKeys[keyword] = [];\n }\n if (this.$scope && !this.$scope.$$phase)\n this.$scope.$apply();\n };\n SmartAction.prototype.checkKeyWord = function (searchContent) {\n var _this = this;\n if (this.loading) {\n setTimeout(function () {\n _this.checkKeyWord(searchContent);\n }, 500);\n return;\n }\n searchContent = searchContent.toLowerCase();\n for (var i = 0; i < this.keyWordGroups.length; i++) {\n if (!this.keyWords[i])\n continue;\n for (var j = 0; j < this.keyWords[i].length; j++) {\n if (searchContent.search(this.keyWords[i][j]) !== -1 && this.keyWords[i][j] !== '' && this.ignoredKeys.indexOf(this.keyWords[i][j]) === -1) {\n if (!this.activeKeys[this.keyWordGroups[i]].includes(this.keyWords[i][j])) {\n this.activeKeys[this.keyWordGroups[i]].push(this.keyWords[i][j]);\n if (this.$scope && !this.$scope.$$phase)\n this.$scope.$apply();\n // do this second scope apply to make absolutly sure changes get triggered 'immediatly'\n setTimeout(function () {\n if (_this.$scope && !_this.$scope.$$phase)\n _this.$scope.$apply();\n }, 250);\n }\n }\n }\n }\n };\n SmartAction.prototype.createKeyWords = function (permissionService, userService) {\n var _this = this;\n var keyWords = [];\n permissionService.getPermissionsByObjectTypes([140005, 140003, 140002, 400000, 140033, 750001, 840501, 140032, 330003, 140006]).then(function (perms) {\n if (perms[0].new)\n keyWords[0] = [\"impfung\", \"impfen\"];\n if (perms[1].new)\n keyWords[1] = [\"arzt\", \"doktor\"];\n if (perms[2].new)\n keyWords[2] = [\"krank\", \"krankheit\", \"grippe\", \"fieber\"];\n if (perms[3].new)\n keyWords[3] = [\"termin\", \"verabredung\", \"meeting\"];\n if (perms[4].new)\n keyWords[4] = [\"abwesend\", \"abwesenheit\"];\n if (perms[5].new)\n keyWords[5] = [\"nachricht\", \"mail\", \"meldung\"];\n if (perms[6].new)\n keyWords[6] = [\"aufgabe\", \"task\"];\n if (perms[7].new)\n keyWords[7] = [\"dokument\", \"datei\"];\n if (perms[8].new && window.license.some(function (x) { return x.license === 'KASSENBUCH' && x.granted; }))\n keyWords[8] = [\"kassenbuch\"];\n if (perms[9].new)\n keyWords[9] = [\"kontakt\", \"kontaktperson\"];\n if (userService) {\n userService.getUserSettings([\n \"SMARTACTIONS.VACCINATION\",\n \"SMARTACTIONS.DOCVISIT\",\n \"SMARTACTIONS.DISEASE\",\n \"SMARTACTIONS.APPOINTMENT\",\n \"SMARTACTIONS.ABSENTEEISM\",\n \"SMARTACTIONS.INTERNALMESSAGE\",\n \"SMARTACTIONS.TASK\",\n \"SMARTACTIONS.DOCUMENT\",\n \"SMARTACTIONS.ACCOUNTINGBOOK\",\n \"SMARTACTIONS.CONTACTPERSON\",\n ]).then(function (data) {\n for (var i = 0; i < keyWords.length; i++) {\n _this.addKeywords(i, keyWords, data);\n }\n _this.keyWords = keyWords;\n _this.loading = false;\n _this.savePermissionCache({\n 140005: perms[0],\n 140003: perms[1],\n 140002: perms[2],\n 400000: perms[3],\n 140033: perms[4],\n 750001: perms[5],\n 840501: perms[6],\n 140032: perms[7],\n 330003: perms[8],\n 140006: perms[9]\n }, keyWords);\n });\n }\n else {\n _this.keyWords = keyWords;\n _this.loading = false;\n _this.savePermissionCache({\n 140005: perms[0],\n 140003: perms[1],\n 140002: perms[2],\n 400000: perms[3],\n 140033: perms[4],\n 750001: perms[5],\n 840501: perms[6],\n 140032: perms[7],\n 330003: perms[8],\n 140006: perms[9]\n }, keyWords);\n }\n });\n };\n SmartAction.prototype.addKeywords = function (index, keyWords, data) {\n if (!data[index] || !keyWords[index])\n return;\n if (data[index].value === \"\")\n keyWords[index] = undefined;\n else {\n keyWords[index] = [];\n data[index].value.split(\";\").forEach(function (item) { return keyWords[index].push(item.toLowerCase().trim()); });\n }\n };\n SmartAction.prototype.savePermissionCache = function (permissions, keyWords) {\n var cache = sessionStorage.getItem(Common.Constants.SMARTACTIONCACHE);\n var cacheObject = cache && cache.length > 0 ? JSON.parse(cache) : {};\n cacheObject.permissions = permissions;\n cacheObject.keyWords = keyWords;\n sessionStorage.setItem(Common.Constants.SMARTACTIONCACHE, JSON.stringify(cacheObject));\n };\n SmartAction.prototype.waitForPermissionCache = function () {\n var _this = this;\n var cacheObject = JSON.parse(sessionStorage.getItem(Common.Constants.SMARTACTIONCACHE));\n if (cacheObject.permissions.loading) {\n setTimeout(function () { _this.waitForPermissionCache(); }, 250);\n return;\n }\n this.keyWords = cacheObject.keyWords;\n this.loading = false;\n };\n return SmartAction;\n }());\n Common.SmartAction = SmartAction;\n })(Common = QMC.Common || (QMC.Common = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Common;\n (function (Common) {\n var QmcWvService = /** @class */ (function (_super) {\n __extends(QmcWvService, _super);\n function QmcWvService($http, $q) {\n var _this = _super.call(this, $http, $q) || this;\n _this.$http = $http;\n _this.$q = $q;\n return _this;\n }\n QmcWvService.prototype.getWvList = function (wvId) {\n return this.get(\"/WV/\" + wvId, {}, function (data) {\n return data;\n });\n };\n QmcWvService.prototype.getWv = function (wvId, itemId) {\n return this.getItem(\"/WV/\" + wvId + \"/\" + itemId, {}, function (data) {\n return data;\n });\n };\n QmcWvService.prototype.putWv = function (wvId, itemId, data) {\n return this.put(\"/WV/\" + wvId + \"/\" + itemId, data).then(function (data) {\n return data;\n });\n };\n QmcWvService.prototype.postWv = function (wvId, data) {\n return this.post(\"/WV/\" + wvId, data).then(function (data) {\n return data;\n });\n };\n QmcWvService.prototype.deleteWv = function (wvId, itemId) {\n return this.delete(\"/WV/\" + wvId + \"/\" + itemId).then(function (data) {\n return data;\n });\n };\n /************** SUB WV **************/\n QmcWvService.prototype.getSubWvList = function (subWvId, wvId) {\n return this.get(\"/SubWV/\" + subWvId + \"/\" + wvId, {}, function (data) {\n return data;\n });\n };\n QmcWvService.prototype.getSubWv = function (subWvId, wvId, itemId) {\n return this.getItem(\"/SubWV/\" + subWvId + \"/\" + wvId + \"/\" + itemId, {}, function (data) {\n return data;\n });\n };\n QmcWvService.prototype.putSubWv = function (subWvId, wvId, itemId, data) {\n return this.put(\"/SubWV/\" + subWvId + \"/\" + wvId + \"/\" + itemId, data).then(function (data) {\n return data;\n });\n };\n QmcWvService.prototype.postSubWv = function (subWvId, wvId, data) {\n return this.post(\"/SubWV/\" + subWvId + \"/\" + wvId, data).then(function (data) {\n return data;\n });\n };\n QmcWvService.prototype.deleteSubWv = function (subWvId, wvId, itemId) {\n return this.delete(\"/SubWV/\" + subWvId + \"/\" + wvId + \"/\" + itemId).then(function (data) {\n return data;\n });\n };\n QmcWvService.prototype.getSubWvListForParent = function (subWvId, wvId) {\n return this.get(\"/SubWV/ForParent/\" + wvId + \"/\" + subWvId, {}, function (data) {\n return data;\n });\n };\n QmcWvService = __decorate([\n QMC.Inject('$http', '$q'),\n QMC.Service('QMC.Common', 'QmcWvService')\n ], QmcWvService);\n return QmcWvService;\n }(Common.BaseService));\n Common.QmcWvService = QmcWvService;\n })(Common = QMC.Common || (QMC.Common = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Common;\n (function (Common) {\n /**\n * Stammdaten Detail UserInterface class\n *\n * @export\n * @class UserInterface\n * @extends {Common.UserInterface}\n */\n var DetailUI = /** @class */ (function (_super) {\n __extends(DetailUI, _super);\n function DetailUI() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.smartAufgabeForm = {\n form: [\n {\n label: \"Aufgabe\",\n placeholder: \"\",\n type: \"String\",\n lngTag: \"20014007\",\n required: true,\n model: \"taskName\",\n validate: {\n message: \"Bitte die Aufgabe angeben.\",\n messageTag: 20014008\n },\n style: {\n icon: \"qm-icon-check\",\n class: \"col-xs-12\"\n }\n },\n {\n label: \"Kategorie\",\n placeholder: \"Kategorie auswählen\",\n type: \"Select\",\n lngTag: \"20000137\",\n dataSource: \"getCategoryList\",\n model: \"categoryId\",\n style: {\n class: \"col-md-6 col-xs-12\"\n }\n },\n {\n label: \"Priorität\",\n placeholder: \"Priorität auswählen\",\n type: \"Select\",\n lngTag: \"20014013\",\n dataSource: \"getPriorityList\",\n model: \"priorityId\",\n id: \"priorityList\",\n style: {\n class: \"col-md-6 col-xs-12\"\n }\n },\n {\n placeholder: \"Erledigungstyp auswählen ...\",\n label: \"Erledigungstyp\",\n type: \"Select\",\n lngTag: \"20014014\",\n dataSource: \"getExecutionTypeList\",\n model: \"executionTypeId\",\n id: \"executionTypeList\",\n required: true,\n validate: {\n message: \"Bitte Erledigungstyp angeben.\",\n messageTag: 20014021\n },\n style: {\n class: \"col-md-6 col-xs-12\"\n }\n },\n {\n label: \"Erledigungsfrist\",\n placeholder: \"zu erledigen bis\",\n type: \"Date\",\n model: \"dateToFinishTill\",\n startDate: new Date(),\n lngTag: \"20014005\",\n style: {\n icon: \"fa fa-font\",\n class: \"col-md-6 col-xs-12\"\n }\n },\n {\n label: \"Termin(e) verwenden\",\n type: \"Checkbox\",\n model: \"isAppointment\",\n id: \"isAppointment\",\n lngTag: \"20014030\",\n style: {\n class: \"col-md-6 col-xs-12\"\n }\n },\n {\n label: \"Teilnehmer (Mitarbeiter)\",\n placeholder: \"Mitarbeiter auswählen\",\n type: \"Select2\",\n lngTag: \"20014010\",\n dataSource: \"getParticipantsList\",\n multiple: true,\n id: \"participantsTypeList\",\n model: \"participants\",\n style: {\n class: \"col-xs-12\"\n }\n },\n {\n label: \"Beschreibung\",\n placeholder: \"Beschreibung eingeben ...\",\n type: \"Summernote\",\n maxLength: -1,\n lngTag: \"20014019\",\n model: \"taskDescription\",\n style: {\n icon: \"qm-icon-note_text\",\n class: \"colm-md-6 col-xs-12\"\n }\n }\n ],\n actions: {\n put: \"putAufgabe\",\n post: \"addAufgabe\",\n }\n };\n _this.smartContactpersonForm = {\n form: [\n {\n placeholder: \"Klient auswählen\",\n label: \"Klient\",\n type: \"Select\",\n lngTag: 20017049,\n required: true,\n id: \"selectedClientIds\",\n dataSource: \"getClientList\",\n model: \"parentObjectId\",\n style: {\n class: \"col-xs-12\",\n },\n validate: {\n message: \"Bitte einen Klienten angeben.\",\n messageTag: 21003000\n }\n },\n {\n placeholder: \"Kontaktpersonart auswählen\",\n label: \"Kontaktpersonart\",\n type: \"Select\",\n lngTag: 20004003,\n required: true,\n dataSource: \"getContactPersonTypeList\",\n model: \"contactPersonTypeId\",\n style: {\n class: \"col-md-6 col-xs-12\",\n },\n validate: {\n message: \"Bitte die Art auswählen!\"\n }\n }, {\n placeholder: \"Anrede auswählen\",\n label: \"Anrede\",\n type: \"Select\",\n lngTag: 20004005,\n dataSource: \"getSalutationList\",\n model: \"salutationId\",\n style: {\n class: \"col-md-6 col-xs-12\",\n },\n validate: {\n message: \"Bitte die Anrede auswählen!\"\n }\n }, {\n placeholder: \"Titel auswählen\",\n label: \"Titel\",\n type: \"Select\",\n lngTag: 21002024,\n dataSource: \"getTitleList\",\n model: \"titleId\",\n style: {\n class: \"col-md-6 col-xs-12\"\n },\n }, {\n type: \"hr\"\n }, {\n placeholder: \"Vorname\",\n label: \"Vorname\",\n type: \"String\",\n lngTag: 20000057,\n model: \"forename\",\n validate: {\n message: \"Bitte den Vornamen angeben\",\n messageTag: 20003510,\n },\n style: {\n icon: \"fa fa-font\",\n class: \"col-md-6 col-xs-12\"\n }\n }, {\n placeholder: \"Nachname\",\n label: \"Nachname\",\n type: \"String\",\n lngTag: 20000058,\n required: true,\n model: \"name\",\n validate: {\n message: \"Bitte den Nachnamen angeben\",\n messageTag: 20003510,\n },\n style: {\n icon: \"fa fa-font\",\n class: \"col-md-6 col-xs-12\"\n }\n }, {\n placeholder: \"Geburtsdatum\",\n label: \"Geburtsdatum\",\n type: \"Date\",\n lngTag: 21002004,\n model: \"birthday\",\n validate: {\n message: \"Bitte das Geburtsdatum angeben\",\n messageTag: 21003020,\n },\n style: {\n icon: \"fa fa-font\",\n class: \"col-md-6 col-xs-12\"\n }\n }, {\n placeholder: {\n dateFrom: \"Gültig von\",\n dateTo: \"Gültig bis\"\n },\n label: {\n dateFrom: \"Gültig von\",\n dateTo: \"Gültig bis\"\n },\n type: \"DateRange\",\n model: {\n dateFrom: \"dateFrom\",\n dateTo: \"dateTo\"\n },\n style: {\n class: \"col-xs-12\"\n },\n config: {\n displayDateTo: true\n }\n }, {\n placeholder: \"Bemerkung eintragen ...\",\n label: \"Bemerkung\",\n type: \"Textarea\",\n maxLength: -1,\n model: \"comment\",\n lngTag: 20000049,\n style: {\n icon: \"qm-icon-note_text\",\n class: \"col-xs-12 col-md-12\"\n }\n }, {\n label: \"Kontaktsperre\",\n type: \"Checkbox\",\n model: \"isContactBan\",\n lngTag: 20004512,\n id: \"isContactBan\",\n style: {\n class: \"medium\"\n }\n }\n ],\n actions: {\n post: \"addContactperson\",\n put: \"putContactperson\"\n }\n };\n _this.smartAppointmentForm = {\n form: [{\n label: \"Betreff\",\n placeholder: \"Betreff\",\n type: \"String\",\n model: \"title\",\n required: true,\n validate: {\n message: \"Bitte den Betreff angeben.\",\n messageTag: 20018024\n },\n style: {\n class: \"col-xs-12\",\n icon: \"fa fa-font\"\n }\n },\n {\n type: \"Select2\",\n label: \"Teilnehmer (Klienten)\",\n placeholder: \"Klient auswählen\",\n model: \"participants\",\n id: \"selectedClientIds\",\n dataSource: \"getClientList\",\n multiple: true,\n style: {\n class: \"col-xs-12\"\n }\n },\n {\n label: \"Teilnehmer (Mitarbeiter)\",\n placeholder: \"Mitarbeiter auswählen\",\n type: \"Select2\",\n id: \"selectedEmployeeIds\",\n dataSource: \"getEmployeeList\",\n model: \"selectedEmployeeIds\",\n multiple: true,\n style: {\n class: \"col-xs-12\"\n }\n },\n {\n type: \"hr\"\n }, {\n placeholder: {\n dateFrom: \"Datum von\",\n dateTo: \"Datum bis\",\n },\n type: \"DateRange\",\n lngTag: \"20000130\",\n model: {\n dateFrom: \"dateFrom\",\n dateTo: \"dateTo\"\n },\n label: {\n dateFrom: \"Datum von\",\n dateTo: \"Datum bis\"\n },\n style: {\n class: \"col-xs-12\"\n },\n config: {\n displayTime: true,\n displayDateTo: true,\n disableTime: \"isAllDay\"\n }\n },\n {\n placeholder: \"Ort\",\n label: \"Ort\",\n type: \"String\",\n model: \"location\",\n style: {\n class: \"col-xs-12\",\n icon: \"qm-icon-fa fa-map-marker\"\n }\n },\n {\n label: \"Bemerkung\",\n placeholder: \"Bemerkung eingeben ...\",\n type: \"Textarea\",\n maxLength: -1,\n lngTag: \"20000049\",\n model: \"description\",\n style: {\n icon: \"qm-icon-note_text\",\n class: \"colm-md-6 col-xs-12\"\n }\n },\n {\n label: \"Privat\",\n type: \"Checkbox\",\n lngTag: 20018014,\n model: \"isPrivate\",\n id: \"isPrivate\",\n style: {\n class: \"col-md-4 col-xs-6\"\n }\n },\n {\n label: \"Erledigt\",\n type: \"Checkbox\",\n lngTag: 20000120,\n model: \"isFinished\",\n id: \"isFinished\",\n style: {\n class: \"col-md-4 col-xs-6\"\n }\n },\n {\n label: \"Ganztägig\",\n type: \"Checkbox\",\n lngTag: 20018016,\n model: \"isAllDay\",\n id: \"isAllDay\",\n style: {\n class: \"col-md-4 col-xs-6\"\n }\n },],\n actions: {\n put: \"putAppointment\",\n post: \"addAppointment\"\n }\n };\n _this.smartAbsenteeismForm = {\n form: [{\n label: \"Teilnehmer (Klienten)\",\n placeholder: \"Klienten auswählen\",\n type: \"Select2\",\n id: \"selectedClientIds\",\n dataSource: \"getClientList\",\n model: \"participants\",\n multiple: true,\n style: {\n class: \"col-xs-12\"\n }\n }, {\n placeholder: \"Abwesenheitsgrund\",\n label: \"Abwesenheitsgrund\",\n type: \"Select\",\n lngTag: 21008001,\n dataSource: \"getWvList\",\n model: \"absenteeismReasonId\",\n required: true,\n validate: {\n message: \"Bitte einen Grund auswählen.\",\n messageTag: 21008002\n },\n style: {\n class: \"col-md-6 col-xs-12\",\n }\n }, {\n type: \"hr\"\n }, {\n placeholder: {\n dateFrom: \"Datum von\",\n dateTo: \"Datum bis\"\n },\n label: {\n dateFrom: \"Datum von\",\n dateTo: \"Datum bis\"\n },\n type: \"DateRange\",\n model: {\n dateFrom: \"dateFrom\",\n dateTo: \"dateTo\"\n },\n style: {\n class: \"col-xs-12\"\n },\n config: {\n displayTime: true,\n disableTime: false,\n displayDateTo: true\n }\n }, {\n placeholder: \"Bemerkung eintragen ...\",\n label: \"Bemerkung\",\n type: \"Textarea\",\n maxLength: -1,\n model: \"comment\",\n lngTag: 20000049,\n style: {\n icon: \"qm-icon-note_text\",\n class: \"col-xs-12\",\n }\n },],\n actions: {\n put: \"putAbsenteeism\",\n post: \"addAbsenteeism\"\n }\n };\n _this.smartDiseaseForm = {\n form: [{\n label: \"Teilnehmer (Klienten)\",\n placeholder: \"Klienten auswählen\",\n type: \"Select2\",\n id: \"selectedClientIds\",\n dataSource: \"getClientList\",\n model: \"participants\",\n multiple: true,\n style: {\n class: \"col-xs-12\"\n }\n }, {\n placeholder: {\n dateFrom: \"Datum von\",\n dateTo: \"Datum bis\",\n },\n label: {\n dateFrom: \"Datum von\",\n dateTo: \"Datum bis\",\n },\n type: \"DateRange\",\n lngTag: 20000130,\n model: {\n dateFrom: \"dateFrom\",\n dateTo: \"dateTo\"\n },\n style: {\n class: \"col-xs-12\"\n },\n config: {\n displayDateTo: true\n }\n }, {\n placeholder: \"Codeschema\",\n label: \"Codeschema\",\n type: \"Select2\",\n dataSource: \"getDiseaseWvList\",\n model: \"diseaseCodeSchemaId\",\n lngTag: 20007002,\n required: true,\n validate: {\n message: \"Bitte das Codeschema angeben.\",\n messageTag: 21003005\n },\n style: {\n class: \"col-md-6 col-xs-12\",\n }\n }, {\n placeholder: \"Krankheit\",\n label: \"Krankheit\",\n type: \"Autocomplete\",\n model: \"diseaseName\",\n lngTag: 20001049,\n required: true,\n id: \"liveDiseases\",\n validate: {\n message: \"Bitte die Krankheit angeben.\"\n },\n style: {\n class: \"col-md-6 col-xs-12\",\n icon: \"fa fa-globe\"\n }\n }, {\n placeholder: \"Bemerkung eintragen ...\",\n label: \"Bemerkung\",\n type: \"Textarea\",\n maxLength: -1,\n model: \"comment\",\n lngTag: 20000049,\n style: {\n icon: \"qm-icon-note_text\",\n class: \"col-xs-12 col-md-12\",\n }\n },],\n actions: {\n put: \"putDisease\",\n post: \"addDisease\",\n }\n };\n _this.smartDocVisitForm = {\n form: [{\n label: \"Teilnehmer (Klienten)\",\n placeholder: \"Klienten auswählen\",\n type: \"Select2\",\n multiple: true,\n id: \"selectedClientIds\",\n dataSource: \"getClientList\",\n model: \"participants\",\n style: {\n class: \"col-xs-12\"\n }\n }, {\n placeholder: \"Datum\",\n label: \"Datum\",\n type: \"Date\",\n model: \"date\",\n lngTag: 20000045,\n required: true,\n style: {\n class: \"col-md-6 col-xs-12\",\n }\n }, {\n placeholder: \"Uhrzeit\",\n label: \"Uhrzeit\",\n type: \"Time\",\n lngTag: 20000046,\n model: \"time\",\n style: {\n class: \"col-md-6 col-xs-12\",\n },\n }, {\n type: \"hr\"\n }, {\n placeholder: \"Arzt/Med. Organisation\",\n label: \"Arzt/Med. Organisation\",\n type: \"Select2\",\n lngTag: 20010502,\n dataSource: \"getDoctors\",\n model: \"treaterId\",\n style: {\n class: \"col-md-12 col-xs-12\",\n },\n }, {\n placeholder: \"Diagnose\",\n label: \"Diagnose\",\n type: \"Textarea\",\n maxLength: -1,\n lngTag: 20010503,\n model: \"diagnose\",\n style: {\n class: \"col-md-12 col-xs-12\",\n icon: \"fa fa-user-md\"\n },\n },],\n actions: {\n put: \"putDocVisit\",\n post: \"addDocVisit\"\n }\n };\n _this.smartVaccinationForm = {\n form: [{\n label: \"Teilnehmer (Klienten)\",\n placeholder: \"Klienten auswählen\",\n type: \"Select2\",\n id: \"selectedClientIds\",\n dataSource: \"getClientList\",\n model: \"participants\",\n multiple: true,\n style: {\n class: \"col-xs-12\"\n }\n }, {\n placeholder: {\n dateFrom: \"Datum\",\n dateTo: \"Folgetermin\"\n },\n label: {\n dateFrom: \"Datum\",\n dateTo: \"Folgetermin\"\n },\n type: \"DateRange\",\n lngTag: 20000130,\n model: {\n dateFrom: \"date\",\n dateTo: \"dateFollowupAppointment\"\n },\n style: {\n class: \"col-xs-12\"\n },\n config: {\n displayDateTo: true\n }\n }, {\n type: \"hr\"\n }, {\n placeholder: \"Arzt auswählen\",\n label: \"Arzt\",\n type: \"Select2\",\n lngTag: 20010502,\n dataSource: \"getDoctors\",\n model: \"doctorId\",\n required: true,\n validate: {\n message: \"Bitte den Arzt angeben.\",\n messageTag: 21003014\n },\n style: {\n class: \"col-md-6 col-xs-12\",\n }\n }, {\n placeholder: \"Krankheit auswählen\",\n label: \"Krankheit\",\n type: \"Select2\",\n dataSource: \"getDiseases\",\n model: \"diseaseId\",\n lngTag: 20001049,\n required: true,\n id: \"disease\",\n validate: {\n message: \"Bitte eine Krankheit angeben\",\n messageTag: 21003006\n },\n style: {\n class: \"col-md-6 col-xs-12\",\n },\n }, {\n placeholder: \"Impfstoff Handelsname\",\n label: \"Impfstoff\",\n type: \"String\",\n lngTag: 20009512,\n model: \"caption\",\n style: {\n class: \"col-md-6 col-xs-12\",\n icon: \"fa fa-stethoscope\"\n },\n }, {\n placeholder: \"Chargen-Nr\",\n label: \"Chargen-Nr\",\n type: \"String\",\n model: \"batchNumber\",\n lngTag: 20009507,\n style: {\n class: \"col-md-6 col-xs-12\",\n icon: \"fa fa-hashtag\"\n },\n }, {\n placeholder: \"Bemerkung eintragen\",\n label: \"Bemerkung\",\n type: \"Textarea\",\n maxLength: -1,\n lngTag: 20000049,\n model: \"comment\",\n style: {\n icon: \"qm-icon-note_text\",\n class: \"colm-md-6 col-xs-12\",\n }\n },],\n actions: {\n put: \"putVaccination\",\n post: \"addVaccination\"\n }\n };\n return _this;\n }\n return DetailUI;\n }(Common.UserInterface));\n Common.DetailUI = DetailUI;\n })(Common = QMC.Common || (QMC.Common = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Common;\n (function (Common) {\n var DokumentDirectiveController = /** @class */ (function () {\n function DokumentDirectiveController(scope, $qui, $state, stammdatenService, clientService, lng, permissionService) {\n var _this = this;\n this.scope = scope;\n this.$qui = $qui;\n this.$state = $state;\n this.stammdatenService = stammdatenService;\n this.clientService = clientService;\n this.lng = lng;\n this.permissionService = permissionService;\n this.ui = new Common.DetailUI();\n this.clientList = [];\n this.participants = [];\n this.fileObject = {\n id: null,\n objectId: null,\n base64String: null,\n date: null,\n documentId: null,\n fileName: null\n };\n this.files = [];\n this.formState = 'new';\n this.loading = {\n client: true,\n wv: true\n };\n this.waitForPermissionCache();\n //right now the smartFormAktion for Documents is working only for clients\n this.objectType = 140032;\n this.parentObjectType = 140000;\n this.scope.$watch('vm.qmParticipants', function (val) {\n if (!val)\n val = [];\n var clientsList = [];\n _this.participants = [];\n if (val.length > 1) {\n for (var i = 0; i < val.length; i++) {\n if (val[i].objType) {\n if (val[i].objType === 140000) {\n clientsList.push(val[i].value);\n }\n }\n }\n _this.participants = clientsList;\n }\n else {\n _this.participants = val;\n }\n _this.clientID = _this.participants.length === 1 ? _this.participants[_this.participants.length - 1] : null;\n }, true);\n this.scope.$watch('vm.loading', function () {\n if (!_this.loading.wv && !_this.loading.client) {\n _this.$qui.functionWaiter(\"createForm\", _this);\n }\n }, true);\n }\n DokumentDirectiveController.prototype.showStructure = function (id) {\n return id && id !== Common.Constants.GUID_EMPTY;\n };\n DokumentDirectiveController.prototype.waitForPermissionCache = function () {\n var _this = this;\n var cache = sessionStorage.getItem(Common.Constants.SMARTACTIONCACHE);\n var cacheObject = cache && cache.length > 0 ? JSON.parse(cache) : {};\n if (cacheObject.permissions && cacheObject.permissions[140032]) {\n this.new = cacheObject.permissions[140032].new;\n if (this.new)\n this.getData();\n }\n else {\n setTimeout(function () { _this.waitForPermissionCache(); });\n return;\n }\n };\n DokumentDirectiveController.prototype.getData = function () {\n this.waitForClientListCache();\n };\n DokumentDirectiveController.prototype.waitForClientListCache = function () {\n var _this = this;\n var cache = sessionStorage.getItem(Common.Constants.SMARTACTIONCACHE);\n var cacheObject = JSON.parse(cache);\n if (!cacheObject.clientList || cacheObject.clientList.loading) {\n setTimeout(function () { _this.waitForClientListCache(); }, 250);\n }\n else {\n this.clientList = cacheObject.clientList.concat(this.clientList);\n this.loading.client = false;\n }\n };\n DokumentDirectiveController.prototype.getClientList = function () {\n return this.clientList;\n };\n DokumentDirectiveController = __decorate([\n QMC.Controller('QMC.Common', 'DokumentDirectiveController'),\n QMC.Inject('$scope', '$qui', '$state', \"StammdatenService\", \"KlientService\", \"QmcLanguageService\", \"QmcPermissionService\")\n ], DokumentDirectiveController);\n return DokumentDirectiveController;\n }());\n var DokumentDirective = /** @class */ (function () {\n function DokumentDirective() {\n this.restrict = 'E';\n this.replace = true;\n this.templateUrl = \"./Templates/Smart/Dokument\";\n this.scope = {\n qmParticipants: '='\n };\n this.controllerAs = 'vm';\n this.controller = 'DokumentDirectiveController';\n this.bindToController = true;\n }\n DokumentDirective = __decorate([\n QMC.Directive('QMC.Common', 'qmFormQuickDokument', [\"StammdatenService\", \"QmcLanguageService\", \"QmcPermissionService\"])\n ], DokumentDirective);\n return DokumentDirective;\n }());\n Common.DokumentDirective = DokumentDirective;\n })(Common = QMC.Common || (QMC.Common = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Common;\n (function (Common) {\n var KassenbuchController = /** @class */ (function () {\n function KassenbuchController(scope, $qui, userService, stammdatenService, clientService, lng, permissionService) {\n var _this = this;\n this.scope = scope;\n this.$qui = $qui;\n this.userService = userService;\n this.stammdatenService = stammdatenService;\n this.clientService = clientService;\n this.lng = lng;\n this.permissionService = permissionService;\n this.ui = new Common.DetailUI();\n this.clientList = [];\n this.accountingBookList = [];\n this.depositList = [];\n this.voucherTypeList = [];\n this.depositTypeList = [];\n this.formState = 'new';\n this.waitForPermissionCache();\n this.initForm();\n this.stammdatenService.getAccountingBookReferences().then(function (data) {\n var values = data.map(function (x) { return ({ value: x.objectId, text: x.displayTitle, group: x.objectTypeCaption }); });\n values.sort(function (a, b) { return (a.text.toLocaleLowerCase() > b.text.toLocaleLowerCase()) ? 1 : ((b.text.toLocaleLowerCase() > a.text.toLocaleLowerCase()) ? -1 : 0); });\n values.sort(function (a, b) { return (a.group.toLocaleLowerCase() > b.group.toLocaleLowerCase()) ? 1 : ((b.group.toLocaleLowerCase() > a.group.toLocaleLowerCase()) ? -1 : 0); });\n _this.references = values;\n });\n this.scope.$watch('vm.qmParticipants', function (val) {\n if (!val)\n val = [];\n var clientsList = [];\n if (val.length > 1) {\n for (var i = 0; i < val.length; i++) {\n if (val[i].objType) {\n if (val[i].objType === 140000) {\n clientsList.push(val[i].value);\n }\n }\n }\n _this.form.participants = clientsList;\n }\n else {\n _this.form.participants = val;\n }\n _this.form.clientId = _this.form.participants[_this.form.participants.length - 1];\n }, true);\n this.scope.$watch('vm.form.clientId', function (newValue, oldValue) {\n if (newValue === oldValue || !newValue)\n return;\n if (newValue.value)\n _this.form.clientId = newValue.value;\n if (!_this.clientList.some(function (x) { return x.value === _this.form.clientId; }))\n _this.form.clientId = oldValue;\n if (_this.form.clientId !== null && _this.form.clientId !== undefined)\n _this.getAccountingBookList();\n });\n this.scope.$watch('vm.form.accountingBookId', function () {\n if (_this.form.accountingBookId !== null && _this.form.accountingBookId !== undefined) {\n for (var i = 0; i <= _this.accountingBookList.length; i++) {\n if (_this.accountingBookList[i].value === _this.form.accountingBookId) {\n _this.form.currency = _this.accountingBookList[i].currency;\n break;\n }\n }\n }\n });\n }\n KassenbuchController.prototype.waitForPermissionCache = function () {\n var _this = this;\n var cache = sessionStorage.getItem(Common.Constants.SMARTACTIONCACHE);\n var cacheObject = cache && cache.length > 0 ? JSON.parse(cache) : {};\n if (cacheObject.permissions && cacheObject.permissions[330003]) {\n this.new = cacheObject.permissions[330003].new;\n if (this.new)\n this.getData();\n }\n else {\n setTimeout(function () { _this.waitForPermissionCache(); });\n return;\n }\n };\n KassenbuchController.prototype.getData = function () {\n var _this = this;\n this.waitForClientListCache();\n this.stammdatenService.getAccountingBookWv().then(function (datawvList) {\n _this.form.clientId = _this.form.participants[0];\n _this.wvList = datawvList;\n _this.userService.getUserSettings([\"KLIENT.BELEGNUMMER_BUCHUNGSKREIS\", \"KASSENBUCH.BELEGNUMMERGENERIEREN.KLIENT\", \"KASSENBUCH.ShowFiBuDataInSearchDialog\"], false).then(function (data) {\n _this.generateVoucherNrPossible = (data[0].value.toLowerCase() !== \"\" && data[0].value.toLowerCase() !== Common.Constants.GUID_EMPTY);\n _this.generateVoucherNrPreselection = data[1].value.toLowerCase() === \"true\";\n _this.form.createVoucherNr = _this.generateVoucherNrPreselection;\n _this.form.generateVoucherNrPossible = _this.generateVoucherNrPossible;\n _this.getDepositList();\n _this.getDepositTypeList();\n _this.getVoucherTypeList();\n });\n });\n };\n KassenbuchController.prototype.waitForClientListCache = function () {\n var _this = this;\n var cache = sessionStorage.getItem(Common.Constants.SMARTACTIONCACHE);\n var cacheObject = JSON.parse(cache);\n if (!cacheObject.clientList || cacheObject.clientList.loading) {\n setTimeout(function () { _this.waitForClientListCache(); }, 250);\n }\n else {\n this.clientList = cacheObject.clientList.concat(this.clientList);\n }\n };\n KassenbuchController.prototype.initForm = function () {\n this.form = {\n id: null,\n objectId: null,\n clientId: null,\n accountingBookId: null,\n parentObjectId: null,\n isDeposit: false,\n voucherTypeId: null,\n createVoucherNr: false,\n generateVoucherNrPossible: false,\n voucherNr: null,\n voucherText: null,\n amount: null,\n currency: null,\n comment: null,\n date: new Date(),\n participants: [],\n version: null\n };\n };\n KassenbuchController.prototype.checkCanSave = function () {\n var canSave = (this.form.client !== null) && (this.form.accountingBookId !== null) &&\n (this.form.isDeposit !== null) && (this.form.voucherTypeId !== null) && (this.form.date !== null) &&\n (this.form.voucherText !== null) && (this.form.amount !== null);\n return canSave;\n };\n KassenbuchController.prototype.getClientList = function () {\n return this.clientList;\n };\n KassenbuchController.prototype.getAccountingBookList = function () {\n var _this = this;\n if (this.form.clientId !== '') {\n this.stammdatenService.getAccountingBookList(this.form.clientId).then(function (dataAccountingBookList) {\n _this.accountingBookList = dataAccountingBookList.map(function (obj) {\n return {\n value: obj.id,\n text: obj.caption,\n currency: obj.currency\n };\n });\n });\n }\n return this.accountingBookList;\n };\n KassenbuchController.prototype.getDepositList = function () {\n this.depositList = [{\n value: true,\n text: \"Einnahme\"\n }, {\n value: false,\n text: \"Ausgabe\"\n }];\n };\n KassenbuchController.prototype.getVoucherTypeList = function () {\n this.voucherTypeList = this.wvList.paymentVoucherTypeWvList.map(function (obj) {\n return {\n value: obj.id,\n text: obj.name,\n isFix: obj.isFix,\n };\n });\n };\n KassenbuchController.prototype.getDepositTypeList = function () {\n this.depositTypeList = this.wvList.depositVoucherTypeWvList.map(function (obj) {\n return {\n value: obj.id,\n text: obj.name,\n isFix: obj.isFix\n };\n });\n };\n KassenbuchController.prototype.addAccountingBookEntry = function () {\n var _this = this;\n this.form.amount = parseFloat(this.form.amount.toString().replace(',', '.'));\n this.stammdatenService.postAccountingBookEntry(this.form).then(function () {\n _this.initForm();\n $('div.additional-field-dynamic.kassenbuch').fadeOut(\"slow\").addClass(\"deactivated\");\n });\n };\n KassenbuchController.prototype.putAccountingBookEntry = function (form) {\n if (form) {\n $('div.additional-field-dynamic.kassenbuch').fadeOut(\"slow\").addClass(\"deactivated\");\n }\n };\n KassenbuchController = __decorate([\n QMC.Controller('QMC.Common', 'KassenbuchDirectiveController'),\n QMC.Inject('$scope', '$qui', \"UserService\", \"StammdatenService\", \"KlientService\", \"QmcLanguageService\", \"QmcPermissionService\")\n ], KassenbuchController);\n return KassenbuchController;\n }());\n var KassenbuchDirective = /** @class */ (function () {\n function KassenbuchDirective() {\n this.restrict = 'E';\n this.replace = true;\n this.templateUrl = \"./Templates/Smart/Kassenbuch\";\n this.scope = {\n qmParticipants: '='\n };\n this.controllerAs = 'vm';\n this.controller = 'KassenbuchDirectiveController';\n this.bindToController = true;\n }\n KassenbuchDirective = __decorate([\n QMC.Directive('QMC.Common', 'qmFormQuickKassenbuch', [\"UserService\", \"StammdatenService\", \"QmcLanguageService\", \"QmcPermissionService\"])\n ], KassenbuchDirective);\n return KassenbuchDirective;\n }());\n Common.KassenbuchDirective = KassenbuchDirective;\n })(Common = QMC.Common || (QMC.Common = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Common;\n (function (Common) {\n var ContactpersonController = /** @class */ (function () {\n function ContactpersonController(scope, $qui, stammdatenService, clientService, lng, permissionService) {\n var _this = this;\n this.scope = scope;\n this.$qui = $qui;\n this.stammdatenService = stammdatenService;\n this.clientService = clientService;\n this.lng = lng;\n this.permissionService = permissionService;\n this.ui = new Common.DetailUI();\n this.clientList = [];\n this.formState = 'new';\n this.loading = {\n client: true,\n wv: true\n };\n this.waitForPermissionCache();\n this.initForm();\n this.scope.$watch('vm.qmParticipants', function (val) {\n if (!val)\n val = [];\n var clientsList = [];\n if (val.length > 1) {\n for (var i = 0; i < val.length; i++) {\n if (val[i].objType) {\n if (val[i].objType === 140000) {\n clientsList.push(val[i].value);\n }\n }\n }\n _this.form.participants = clientsList;\n }\n else {\n _this.form.participants = val;\n }\n _this.form.parentObjectId = _this.form.participants[_this.form.participants.length - 1];\n }, true);\n this.scope.$watch('vm.loading', function () {\n if (!_this.loading.wv && !_this.loading.client) {\n _this.$qui.functionWaiter(\"createForm\", _this);\n }\n }, true);\n }\n ContactpersonController.prototype.waitForPermissionCache = function () {\n var _this = this;\n var cache = sessionStorage.getItem(Common.Constants.SMARTACTIONCACHE);\n var cacheObject = cache && cache.length > 0 ? JSON.parse(cache) : {};\n if (cacheObject.permissions && cacheObject.permissions[140006]) {\n this.new = cacheObject.permissions[140006].new;\n if (this.new)\n this.getData();\n }\n else {\n setTimeout(function () { _this.waitForPermissionCache(); });\n return;\n }\n };\n ContactpersonController.prototype.getData = function () {\n var _this = this;\n this.waitForClientListCache();\n this.stammdatenService.getContactPersonWvList().then(function (datawvList) {\n _this.wvList = datawvList;\n _this.loading.wv = false;\n });\n };\n ContactpersonController.prototype.waitForClientListCache = function () {\n var _this = this;\n var cache = sessionStorage.getItem(Common.Constants.SMARTACTIONCACHE);\n var cacheObject = JSON.parse(cache);\n if (!cacheObject.clientList || cacheObject.clientList.loading) {\n setTimeout(function () { _this.waitForClientListCache(); }, 250);\n }\n else {\n this.clientList = cacheObject.clientList;\n this.loading.client = false;\n }\n };\n ContactpersonController.prototype.initForm = function () {\n this.form = {\n id: null,\n objectId: null,\n parentObjectId: null,\n contactPersonTypeId: null,\n salutationId: null,\n titleId: null,\n forename: null,\n name: null,\n birthday: new Date(),\n dateFrom: new Date(),\n dateTo: new Date(),\n comment: null,\n isContactBan: false,\n participants: []\n };\n };\n ContactpersonController.prototype.getClientList = function () {\n return this.clientList;\n };\n ContactpersonController.prototype.getContactPersonTypeList = function () {\n return this.wvList.contactPersonTypeWvList.map(function (obj) {\n return {\n value: obj.id,\n text: obj.name,\n isFix: obj.isFix,\n };\n });\n };\n ContactpersonController.prototype.getSalutationList = function () {\n var _this = this;\n if (this.wvList === undefined) {\n return this.stammdatenService.getContactPersonWvList().then(function (data) {\n _this.wvList = data;\n return _this.wvList.salutationWvList.map(function (obj) {\n return {\n value: obj.id,\n text: obj.name,\n isFix: obj.isFix\n };\n });\n });\n }\n else\n return this.wvList.salutationWvList.map(function (obj) {\n return {\n value: obj.id,\n text: obj.name,\n isFix: obj.isFix\n };\n });\n };\n ContactpersonController.prototype.getTitleList = function () {\n var _this = this;\n if (this.wvList === undefined) {\n return this.stammdatenService.getContactPersonWvList().then(function (data) {\n _this.wvList = data;\n return _this.wvList.titleWvList.map(function (obj) {\n return {\n value: obj.id,\n text: obj.name,\n isFix: obj.isFix\n };\n });\n });\n }\n else\n return this.wvList.titleWvList.map(function (obj) { return ({\n value: obj.id,\n text: obj.name,\n isFix: obj.isFix\n }); });\n };\n ContactpersonController.prototype.addContactperson = function (form) {\n this.stammdatenService.postContactPerson(this.form).then(function () {\n $('div.additional-field-dynamic.kontaktperson').fadeOut(\"slow\").addClass(\"deactivated\");\n });\n };\n ContactpersonController.prototype.putContactperson = function (form) {\n if (form) {\n $('div.additional-field-dynamic.kontaktperson').fadeOut(\"slow\").addClass(\"deactivated\");\n }\n };\n ContactpersonController = __decorate([\n QMC.Controller('QMC.Common', 'ContactpersonDirectiveController'),\n QMC.Inject('$scope', '$qui', \"StammdatenService\", \"KlientService\", \"QmcLanguageService\", \"QmcPermissionService\")\n ], ContactpersonController);\n return ContactpersonController;\n }());\n var ContactpersonDirective = /** @class */ (function () {\n function ContactpersonDirective() {\n this.restrict = 'E';\n this.replace = true;\n this.templateUrl = \"./Templates/Smart/Contactperson\";\n this.scope = {\n qmParticipants: '='\n };\n this.controllerAs = 'vm';\n this.controller = 'ContactpersonDirectiveController';\n this.bindToController = true;\n }\n ContactpersonDirective = __decorate([\n QMC.Directive('QMC.Common', 'qmFormQuickContactperson', [\"StammdatenService\", \"QmcLanguageService\", \"QmcPermissionService\"])\n ], ContactpersonDirective);\n return ContactpersonDirective;\n }());\n Common.ContactpersonDirective = ContactpersonDirective;\n })(Common = QMC.Common || (QMC.Common = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Common;\n (function (Common) {\n var AufgabeDirectiveController = /** @class */ (function () {\n function AufgabeDirectiveController(scope, $qui, taskService, stammdatenService, clientService, lng, permissionService) {\n var _this = this;\n this.scope = scope;\n this.$qui = $qui;\n this.taskService = taskService;\n this.stammdatenService = stammdatenService;\n this.clientService = clientService;\n this.lng = lng;\n this.permissionService = permissionService;\n this.ui = new Common.DetailUI();\n this.participants = [];\n this.formState = 'new';\n this.loading = {\n employee: true,\n personList: true,\n wv: true\n };\n this.waitForPermissionCache();\n this.initForm();\n this.scope.$watch('vm.qmParticipants', function (val) {\n if (!val)\n val = [];\n var employeesList = [];\n for (var i = 0; i < val.length; i++) {\n if (val[i].objType) {\n if (val[i].objType === 120000) {\n employeesList.push(val[i].value);\n }\n }\n }\n _this.form.participants = employeesList;\n _this.form.participants.push($('#session').data().personId);\n });\n this.scope.$watch('vm.loading', function () {\n if (!_this.loading.wv && !_this.loading.employee && !_this.loading.personList) {\n _this.$qui.functionWaiter(\"createForm\", _this);\n }\n }, true);\n }\n AufgabeDirectiveController.prototype.waitForPermissionCache = function () {\n var _this = this;\n var cache = sessionStorage.getItem(Common.Constants.SMARTACTIONCACHE);\n var cacheObject = cache && cache.length > 0 ? JSON.parse(cache) : {};\n if (cacheObject.permissions && cacheObject.permissions[840501]) {\n this.new = cacheObject.permissions[840501].new;\n if (this.new)\n this.getData();\n }\n else {\n setTimeout(function () { _this.waitForPermissionCache(); });\n return;\n }\n };\n AufgabeDirectiveController.prototype.getData = function () {\n var _this = this;\n this.waitForPersonListsCache();\n this.waitForEmployeeListCache();\n this.taskService.getTaskWv().then(function (dataTaskWv) {\n _this.wv = dataTaskWv;\n _this.loading.wv = false;\n });\n };\n AufgabeDirectiveController.prototype.waitForEmployeeListCache = function () {\n var _this = this;\n var cacheObject = JSON.parse(sessionStorage.getItem(Common.Constants.SMARTACTIONCACHE));\n if (!cacheObject.employeeList || cacheObject.employeeList.loading) {\n setTimeout(function () { _this.waitForEmployeeListCache(); }, 250);\n }\n else {\n this.participants = cacheObject.employeeList.concat(this.participants);\n this.loading.employee = false;\n }\n };\n AufgabeDirectiveController.prototype.waitForPersonListsCache = function () {\n var _this = this;\n var cacheObject = JSON.parse(sessionStorage.getItem(Common.Constants.SMARTACTIONCACHE));\n if (!cacheObject.personLists || cacheObject.personLists.loading) {\n setTimeout(function () { _this.waitForPersonListsCache(); }, 250);\n }\n else {\n this.participants = this.participants.concat(cacheObject.personLists);\n this.loading.personList = false;\n }\n };\n AufgabeDirectiveController.prototype.initForm = function () {\n this.form = {\n id: null,\n objectId: null,\n parentObjectId: null,\n taskName: null,\n categoryId: null,\n priorityId: null,\n executionTypeId: null,\n dateToFinishTill: new Date(),\n isAppointment: false,\n participants: [],\n taskDescription: null\n };\n };\n AufgabeDirectiveController.prototype.getParticipantsList = function () {\n return this.participants;\n };\n AufgabeDirectiveController.prototype.getCategoryList = function () {\n return this.wv.categoryWvList.map(function (obj) {\n return {\n value: obj.objectId,\n text: obj.name\n };\n });\n };\n AufgabeDirectiveController.prototype.getPriorityList = function () {\n return this.wv.priorityWvList.map(function (obj) {\n return {\n value: obj.objectId,\n text: obj.name\n };\n });\n };\n AufgabeDirectiveController.prototype.getExecutionTypeList = function () {\n return this.wv.executionTypeWvList.map(function (obj) {\n return {\n value: obj.objectId,\n text: obj.name,\n isFix: obj.isFix,\n };\n });\n };\n AufgabeDirectiveController.prototype.addAufgabe = function (form) {\n this.taskService.postTask(form).then(function () {\n $('div.additional-field-dynamic.aufgabe').fadeOut(\"slow\").addClass(\"deactivated\");\n });\n };\n AufgabeDirectiveController.prototype.putAufgabe = function (form) {\n if (form) {\n this.taskService.putTask(form.objectId, form).then(function () {\n $('div.additional-field-dynamic.aufgabe').fadeOut(\"slow\").addClass(\"deactivated\");\n });\n }\n };\n AufgabeDirectiveController = __decorate([\n QMC.Controller('QMC.Common', 'AufgabeDirectiveController'),\n QMC.Inject('$scope', '$qui', \"AufgabenService\", \"StammdatenService\", \"KlientService\", \"QmcLanguageService\", \"QmcPermissionService\")\n ], AufgabeDirectiveController);\n return AufgabeDirectiveController;\n }());\n var AufgabeDirective = /** @class */ (function () {\n function AufgabeDirective() {\n this.restrict = 'E';\n this.replace = true;\n this.templateUrl = \"./Templates/Smart/Aufgabe\";\n this.scope = {\n qmParticipants: '='\n };\n this.controllerAs = 'vm';\n this.controller = 'AufgabeDirectiveController';\n this.bindToController = true;\n }\n AufgabeDirective = __decorate([\n QMC.Directive('QMC.Common', 'qmFormQuickAufgabe', [\"AufgabenService\", \"StammdatenService\", \"QmcLanguageService\", \"QmcPermissionService\"])\n ], AufgabeDirective);\n return AufgabeDirective;\n }());\n Common.AufgabeDirective = AufgabeDirective;\n })(Common = QMC.Common || (QMC.Common = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Common;\n (function (Common) {\n var AppointmentDirectiveController = /** @class */ (function () {\n function AppointmentDirectiveController(scope, $qui, terminService, stammdatenService, clientService, lng, permissionService) {\n var _this = this;\n this.scope = scope;\n this.$qui = $qui;\n this.terminService = terminService;\n this.stammdatenService = stammdatenService;\n this.clientService = clientService;\n this.lng = lng;\n this.permissionService = permissionService;\n this.ui = new Common.DetailUI();\n this.clientList = [];\n this.employeeList = [];\n this.formState = 'new';\n this.loading = {\n client: true,\n employee: true\n };\n this.waitForPermissionCache();\n this.initForm();\n this.scope.$watch('vm.qmParticipants', function (val) {\n if (!val)\n val = [];\n var clientsList = [];\n var employeesList = [];\n for (var i = 0; i < val.length; i++) {\n if (val[i].objType) {\n if (val[i].objType === 120000) {\n employeesList.push(val[i].value);\n }\n else {\n clientsList.push(val[i].value);\n }\n }\n else {\n clientsList.push(val[i]);\n }\n }\n _this.form.participants = clientsList;\n _this.form.selectedEmployeeIds = employeesList;\n }, true);\n this.scope.$watch('vm.loading', function () {\n if (!_this.loading.client && !_this.loading.employee) {\n _this.$qui.functionWaiter(\"createForm\", _this);\n }\n }, true);\n }\n AppointmentDirectiveController.prototype.waitForPermissionCache = function () {\n var _this = this;\n var cache = sessionStorage.getItem(Common.Constants.SMARTACTIONCACHE);\n var cacheObject = cache && cache.length > 0 ? JSON.parse(cache) : {};\n if (cacheObject.permissions && cacheObject.permissions[400000]) {\n this.new = cacheObject.permissions[400000].new;\n if (this.new)\n this.getData();\n }\n else {\n setTimeout(function () { _this.waitForPermissionCache(); });\n return;\n }\n };\n AppointmentDirectiveController.prototype.getData = function () {\n this.waitForClientListCache();\n this.waitForEmployeeListCache();\n };\n AppointmentDirectiveController.prototype.waitForClientListCache = function () {\n var _this = this;\n var cache = sessionStorage.getItem(Common.Constants.SMARTACTIONCACHE);\n var cacheObject = JSON.parse(cache);\n if (!cacheObject.clientList || cacheObject.clientList.loading) {\n setTimeout(function () { _this.waitForClientListCache(); }, 250);\n }\n else {\n this.clientList = cacheObject.clientList;\n this.loading.client = false;\n }\n };\n AppointmentDirectiveController.prototype.waitForEmployeeListCache = function () {\n var _this = this;\n var cache = sessionStorage.getItem(Common.Constants.SMARTACTIONCACHE);\n var cacheObject = JSON.parse(cache);\n if (!cacheObject.employeeList || cacheObject.employeeList.loading) {\n setTimeout(function () { _this.waitForEmployeeListCache(); }, 250);\n }\n else {\n this.employeeList = cacheObject.employeeList;\n this.loading.employee = false;\n }\n };\n AppointmentDirectiveController.prototype.initForm = function () {\n this.form = {\n id: null,\n objectId: null,\n parentObjectId: null,\n title: null,\n participants: [],\n selectedEmployeeIds: [],\n participantIds: [],\n dateTo: new Date(),\n dateFrom: new Date(),\n location: null,\n description: null,\n isPrivate: false,\n isFinished: false,\n isAllDay: false,\n version: null\n };\n };\n AppointmentDirectiveController.prototype.getClientList = function () {\n return this.clientList;\n };\n AppointmentDirectiveController.prototype.getEmployeeList = function () {\n return this.employeeList;\n };\n AppointmentDirectiveController.prototype.addAppointment = function (form) {\n if (form.selectedEmployeeIds !== undefined)\n form.participantIds = form.selectedEmployeeIds.concat(form.participants);\n else if (form.participants !== undefined)\n form.participantIds = form.participants;\n this.terminService.postAppointment(form).then(function () {\n $('div.additional-field-dynamic.termin').fadeOut(\"slow\").addClass(\"deactivated\");\n });\n };\n AppointmentDirectiveController.prototype.putAppointment = function (form) {\n if (form) {\n if (form.selectedEmployeeIds !== undefined)\n form.participantIds = form.selectedEmployeeIds.concat(form.participants);\n else if (form.participants !== undefined)\n form.participantIds = form.participants;\n this.terminService.putAppointment(false, form.objectId, form.dateFrom, false, form).then(function () {\n $('div.additional-field-dynamic.termin').fadeOut(\"slow\").addClass(\"deactivated\");\n });\n }\n };\n AppointmentDirectiveController = __decorate([\n QMC.Controller('QMC.Common', 'AppointmentDirectiveController'),\n QMC.Inject('$scope', '$qui', \"TerminService\", \"StammdatenService\", \"KlientService\", \"QmcLanguageService\", \"QmcPermissionService\")\n ], AppointmentDirectiveController);\n return AppointmentDirectiveController;\n }());\n var AppointmentDirective = /** @class */ (function () {\n function AppointmentDirective() {\n this.restrict = 'E';\n this.replace = true;\n this.templateUrl = \"./Templates/Smart/Appointment\";\n this.scope = {\n qmParticipants: '='\n };\n this.controllerAs = 'vm';\n this.controller = 'AppointmentDirectiveController';\n this.bindToController = true;\n }\n AppointmentDirective = __decorate([\n QMC.Directive('QMC.Common', 'qmFormQuickAppointment', [\"TerminService\", \"StammdatenService\", \"QmcLanguageService\", \"QmcPermissionService\"])\n ], AppointmentDirective);\n return AppointmentDirective;\n }());\n Common.AppointmentDirective = AppointmentDirective;\n })(Common = QMC.Common || (QMC.Common = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Common;\n (function (Common) {\n var AbsenteeismDirectiveController = /** @class */ (function () {\n function AbsenteeismDirectiveController(scope, $qui, stammdatenService, clientService, lng, permissionService) {\n var _this = this;\n this.scope = scope;\n this.$qui = $qui;\n this.stammdatenService = stammdatenService;\n this.clientService = clientService;\n this.lng = lng;\n this.permissionService = permissionService;\n this.ui = new Common.DetailUI();\n this.wvList = [];\n this.clientList = [];\n this.formState = 'new';\n this.loading = {\n employee: true,\n client: true,\n wv: true\n };\n this.waitForPermissionCache();\n this.initForm();\n this.scope.$watch('vm.qmParticipants', function (val) {\n if (!val)\n val = [];\n var clientsList = [];\n for (var i = 0; i < val.length; i++) {\n if (val[i].objType) {\n if (val[i].objType === 140000) {\n clientsList.push(val[i].value);\n }\n }\n else {\n clientsList.push(val[i]);\n }\n }\n _this.form.participants = clientsList;\n }, true);\n this.scope.$watch('vm.loading', function () {\n if (!_this.loading.wv && !_this.loading.client && !_this.loading.employee) {\n _this.$qui.functionWaiter(\"createForm\", _this);\n }\n }, true);\n }\n AbsenteeismDirectiveController.prototype.waitForPermissionCache = function () {\n var _this = this;\n var cache = sessionStorage.getItem(Common.Constants.SMARTACTIONCACHE);\n var cacheObject = cache && cache.length > 0 ? JSON.parse(cache) : {};\n if (cacheObject.permissions && cacheObject.permissions[140033]) {\n this.new = cacheObject.permissions[140033].new;\n if (this.new)\n this.getData();\n }\n else {\n setTimeout(function () { _this.waitForPermissionCache(); });\n return;\n }\n };\n AbsenteeismDirectiveController.prototype.getData = function () {\n var _this = this;\n this.waitForClientListCache();\n this.waitForEmployeeListCache();\n this.stammdatenService.getAbsenteeismWv().then(function (data) {\n _this.wvList = _this.ui.select(data.absenteeismReasonWvList, { value: 'objectId', text: 'name' });\n _this.loading.wv = false;\n });\n };\n AbsenteeismDirectiveController.prototype.waitForClientListCache = function () {\n var _this = this;\n var cache = sessionStorage.getItem(Common.Constants.SMARTACTIONCACHE);\n var cacheObject = JSON.parse(cache);\n if (!cacheObject.clientList || cacheObject.clientList.loading) {\n setTimeout(function () { _this.waitForClientListCache(); }, 250);\n }\n else {\n this.clientList = cacheObject.clientList.concat(this.clientList);\n this.loading.client = false;\n }\n };\n AbsenteeismDirectiveController.prototype.waitForEmployeeListCache = function () {\n var _this = this;\n var cache = sessionStorage.getItem(Common.Constants.SMARTACTIONCACHE);\n var cacheObject = JSON.parse(cache);\n if (!cacheObject.employeeList || cacheObject.employeeList.loading) {\n setTimeout(function () { _this.waitForEmployeeListCache(); }, 250);\n }\n else {\n this.clientList = this.clientList.concat(cacheObject.employeeList);\n this.loading.employee = false;\n }\n };\n AbsenteeismDirectiveController.prototype.initForm = function () {\n this.form = {\n id: null,\n participants: [],\n objectId: null,\n dateTo: new Date(),\n dateFrom: new Date(),\n absenteeismReasonId: null,\n parentObjectId: null,\n comment: null\n };\n };\n AbsenteeismDirectiveController.prototype.getWvList = function () {\n return this.wvList;\n };\n AbsenteeismDirectiveController.prototype.getClientList = function () {\n return this.clientList;\n };\n AbsenteeismDirectiveController.prototype.addAbsenteeism = function (form) {\n for (var i = 0; i < form.participants.length; i++) {\n var data = jQuery.extend(true, {}, form);\n data.parentObjectId = form.participants[i];\n this.stammdatenService.postAbsenteeism(data);\n }\n $('div.additional-field-dynamic.abwesenheit').fadeOut(\"slow\").addClass(\"deactivated\");\n };\n ;\n AbsenteeismDirectiveController = __decorate([\n QMC.Controller('QMC.Common', 'AbsenteeismDirectiveController'),\n QMC.Inject('$scope', '$qui', \"StammdatenService\", \"KlientService\", \"QmcLanguageService\", \"QmcPermissionService\")\n ], AbsenteeismDirectiveController);\n return AbsenteeismDirectiveController;\n }());\n var AbsenteeismDirective = /** @class */ (function () {\n function AbsenteeismDirective() {\n this.restrict = 'E';\n this.replace = true;\n this.templateUrl = \"./Templates/Smart/Away\";\n this.scope = {\n qmParticipants: '='\n };\n this.controllerAs = 'vm';\n this.controller = 'AbsenteeismDirectiveController';\n this.bindToController = true;\n }\n AbsenteeismDirective = __decorate([\n QMC.Directive('QMC.Common', 'qmFormQuickAway', [\"StammdatenService\", \"QmcLanguageService\", \"QmcPermissionService\"])\n ], AbsenteeismDirective);\n return AbsenteeismDirective;\n }());\n Common.AbsenteeismDirective = AbsenteeismDirective;\n })(Common = QMC.Common || (QMC.Common = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Common;\n (function (Common) {\n var DiseaseDirectiveController = /** @class */ (function () {\n function DiseaseDirectiveController(scope, $qui, stammdatenService, clientService, lng, permissionService) {\n var _this = this;\n this.scope = scope;\n this.$qui = $qui;\n this.stammdatenService = stammdatenService;\n this.clientService = clientService;\n this.lng = lng;\n this.permissionService = permissionService;\n this.ui = new Common.DetailUI();\n this.formState = 'new';\n this.diseases = [];\n this.wvList = [];\n this.clientList = [];\n this.loading = {\n client: true,\n wv: true\n };\n this.waitForPermissionCache();\n this.initForm();\n this.scope.$watch('vm.qmParticipants', function (val) {\n if (!val)\n val = [];\n var clientsList = [];\n for (var i = 0; i < val.length; i++) {\n if (val[i].objType) {\n if (val[i].objType === 140000) {\n clientsList.push(val[i].value);\n }\n }\n else {\n clientsList.push(val[i]);\n }\n }\n _this.form.participants = clientsList;\n }, true);\n this.scope.$watch('vm.loading', function () {\n if (!_this.loading.wv && !_this.loading.client) {\n _this.$qui.functionWaiter(\"createForm\", _this);\n }\n }, true);\n }\n DiseaseDirectiveController.prototype.waitForPermissionCache = function () {\n var _this = this;\n var cache = sessionStorage.getItem(Common.Constants.SMARTACTIONCACHE);\n var cacheObject = cache && cache.length > 0 ? JSON.parse(cache) : {};\n if (cacheObject.permissions && cacheObject.permissions[140002]) {\n this.new = cacheObject.permissions[140002].new;\n if (this.new)\n this.getData();\n }\n else {\n setTimeout(function () { _this.waitForPermissionCache(); });\n return;\n }\n };\n DiseaseDirectiveController.prototype.getData = function () {\n var _this = this;\n this.waitForClientListCache();\n this.stammdatenService.getDiseaseWvList().then(function (data) {\n _this.wvList = _this.ui.select(data.diseaseCodeSchemaWvList, { value: 'id', text: 'name' });\n _this.loading.wv = false;\n setTimeout(function () {\n _this.events();\n }, 500);\n });\n };\n DiseaseDirectiveController.prototype.waitForClientListCache = function () {\n var _this = this;\n var cache = sessionStorage.getItem(Common.Constants.SMARTACTIONCACHE);\n var cacheObject = JSON.parse(cache);\n if (!cacheObject.clientList || cacheObject.clientList.loading) {\n setTimeout(function () { _this.waitForClientListCache(); }, 250);\n }\n else {\n this.clientList = cacheObject.clientList;\n this.loading.client = false;\n }\n };\n DiseaseDirectiveController.prototype.events = function () {\n var vm = this;\n $('#liveDiseases .typeahead').typeahead({\n source: function (query, process) {\n vm.stammdatenService.getDiseasesBySearchText(vm.form.diseaseCodeSchemaId, query).then(function (data) {\n vm.diseases = data.items;\n process(data.items.map(function (obj) {\n return obj.name;\n }));\n });\n },\n updater: function (item) {\n /* Find the id to the selected text */\n for (var i = 0; i < vm.diseases.length; i++) {\n if (vm.diseases[i].name === item)\n vm.form.diseaseId = vm.diseases[i].id;\n }\n return item;\n }\n });\n };\n DiseaseDirectiveController.prototype.initForm = function () {\n this.form = {\n id: null,\n objectId: null,\n comment: null,\n dateFrom: new Date(),\n dateTo: null,\n diseaseCodeSchemaId: QMC.Common.Constants.DEFAULT_DISEASE_CODE_SCHEMA,\n diseaseId: null,\n parentObjectId: null\n };\n };\n DiseaseDirectiveController.prototype.getDiseaseWvList = function () {\n return this.wvList;\n };\n DiseaseDirectiveController.prototype.getClientList = function () {\n return this.clientList;\n };\n DiseaseDirectiveController.prototype.addDisease = function (form) {\n for (var i = 0; i < form.participants.length; i++) {\n var data = jQuery.extend(true, {}, form);\n data.parentObjectId = form.participants[i];\n this.stammdatenService.postDisease(data);\n }\n $('div.additional-field-dynamic.krankheit').fadeOut(\"slow\").addClass(\"deactivated\");\n };\n ;\n DiseaseDirectiveController = __decorate([\n QMC.Controller('QMC.Common', 'DiseaseDirectiveController'),\n QMC.Inject('$scope', '$qui', \"StammdatenService\", \"KlientService\", \"QmcLanguageService\", \"QmcPermissionService\")\n ], DiseaseDirectiveController);\n return DiseaseDirectiveController;\n }());\n var DiseaseDirective = /** @class */ (function () {\n function DiseaseDirective() {\n this.restrict = 'E';\n this.replace = true;\n this.templateUrl = \"./Templates/Smart/Disease\";\n this.scope = {\n qmParticipants: '='\n };\n this.controllerAs = 'vm';\n this.controller = 'DiseaseDirectiveController';\n this.bindToController = true;\n }\n DiseaseDirective = __decorate([\n QMC.Directive('QMC.Common', 'qmFormQuickSick', [\"StammdatenService\", \"QmcLanguageService\", \"QmcPermissionService\"])\n ], DiseaseDirective);\n return DiseaseDirective;\n }());\n Common.DiseaseDirective = DiseaseDirective;\n })(Common = QMC.Common || (QMC.Common = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Common;\n (function (Common) {\n var DocVisitDirectiveController = /** @class */ (function () {\n function DocVisitDirectiveController(scope, $qui, stammdatenService, clientService, lng, permissionService) {\n var _this = this;\n this.scope = scope;\n this.$qui = $qui;\n this.stammdatenService = stammdatenService;\n this.clientService = clientService;\n this.lng = lng;\n this.permissionService = permissionService;\n this.ui = new Common.DetailUI();\n this.formState = 'new';\n this.diseases = [];\n this.doctors = [];\n this.medOrgas = [];\n this.clientList = [];\n this.loading = {\n client: true,\n employee: false,\n //employee: true,\n wv: true\n };\n this.waitForPermissionCache();\n this.initForm();\n this.scope.$watch('vm.qmParticipants', function (val) {\n if (!val)\n val = [];\n var clientsList = [];\n for (var i = 0; i < val.length; i++) {\n if (val[i].objType) {\n if (val[i].objType === 140000) {\n clientsList.push(val[i].value);\n }\n }\n else {\n clientsList.push(val[i]);\n }\n }\n _this.form.participants = clientsList;\n }, true);\n this.scope.$watch('vm.loading', function () {\n if (!_this.loading.wv && !_this.loading.client && !_this.loading.employee) {\n _this.$qui.functionWaiter(\"createForm\", _this);\n }\n }, true);\n }\n DocVisitDirectiveController.prototype.waitForPermissionCache = function () {\n var _this = this;\n var cache = sessionStorage.getItem(Common.Constants.SMARTACTIONCACHE);\n var cacheObject = cache && cache.length > 0 ? JSON.parse(cache) : {};\n if (cacheObject.permissions && cacheObject.permissions[140003]) {\n this.new = cacheObject.permissions[140003].new;\n if (this.new)\n this.getData();\n }\n else {\n setTimeout(function () { _this.waitForPermissionCache(); });\n return;\n }\n };\n DocVisitDirectiveController.prototype.getData = function () {\n var _this = this;\n this.waitForClientListCache();\n //this.waitForEmployeeListCache();\n this.stammdatenService.getDoctorList().then(function (data) {\n _this.doctors = _this.ui.select(data, { value: 'id', text: 'displayTitle', group: _this.lng.translate(20010508, 'Arzt') });\n _this.stammdatenService.getMedicalOrganisationList().then(function (data) {\n _this.medOrgas = _this.ui.select(data, { value: 'id', text: 'name', group: _this.lng.translate(20023005, 'Medizinische Organisation') });\n _this.loading.wv = false;\n });\n });\n };\n DocVisitDirectiveController.prototype.waitForClientListCache = function () {\n var _this = this;\n var cache = sessionStorage.getItem(Common.Constants.SMARTACTIONCACHE);\n var cacheObject = JSON.parse(cache);\n if (!cacheObject.clientList || cacheObject.clientList.loading) {\n setTimeout(function () { _this.waitForClientListCache(); }, 250);\n }\n else {\n this.clientList = cacheObject.clientList.concat(this.clientList);\n this.loading.client = false;\n }\n };\n //private waitForEmployeeListCache() {\n // const cache = sessionStorage.getItem(Common.Constants.SMARTACTIONCACHE);\n // const cacheObject = JSON.parse(cache);\n // if (!cacheObject.employeeList || cacheObject.employeeList.loading) {\n // setTimeout(() => { this.waitForEmployeeListCache() }, 250);\n // } else {\n // this.clientList = this.clientList.concat(cacheObject.employeeList);\n // this.loading.employee = false;\n // }\n //}\n DocVisitDirectiveController.prototype.initForm = function () {\n this.form = {\n id: null,\n objectId: null,\n date: new Date(),\n time: new Date(),\n participants: [],\n doctorId: null,\n diagnose: null,\n discipline: null,\n forename: null,\n name: null,\n parentObjectId: null\n };\n };\n DocVisitDirectiveController.prototype.getDoctors = function () {\n return this.doctors.concat(this.medOrgas);\n };\n DocVisitDirectiveController.prototype.getClientList = function () {\n return this.clientList;\n };\n DocVisitDirectiveController.prototype.addDocVisit = function (form) {\n for (var i = 0; i < form.participants.length; i++) {\n var data = jQuery.extend(true, {}, form);\n data.parentObjectId = form.participants[i];\n data.treaterObjectType = this.getTreaterObjectType(form.treaterId);\n this.stammdatenService.postDoctorsVisit(data).then(function () {\n });\n }\n $('div.additional-field-dynamic.arzt').fadeOut(\"slow\").addClass(\"deactivated\");\n };\n ;\n DocVisitDirectiveController.prototype.getTreaterObjectType = function (treaterId) {\n if (this.doctors.some(function (x) { return x.value === treaterId; }))\n return 110000;\n if (this.medOrgas.some(function (x) { return x.value === treaterId; }))\n return 310000;\n return 0;\n };\n DocVisitDirectiveController = __decorate([\n QMC.Controller('QMC.Common', 'DocVisitDirectiveController'),\n QMC.Inject('$scope', '$qui', \"StammdatenService\", \"KlientService\", \"QmcLanguageService\", \"QmcPermissionService\")\n ], DocVisitDirectiveController);\n return DocVisitDirectiveController;\n }());\n var DocvisitDirective = /** @class */ (function () {\n function DocvisitDirective() {\n this.restrict = 'E';\n this.replace = true;\n this.templateUrl = \"./Templates/Smart/Docvisit\";\n this.scope = {\n qmParticipants: '='\n };\n this.controllerAs = 'vm';\n this.controller = 'DocVisitDirectiveController';\n this.bindToController = true;\n }\n DocvisitDirective = __decorate([\n QMC.Directive('QMC.Common', 'qmFormQuickDoctor', [\"StammdatenService\", \"QmcLanguageService\", \"QmcPermissionService\"])\n ], DocvisitDirective);\n return DocvisitDirective;\n }());\n Common.DocvisitDirective = DocvisitDirective;\n })(Common = QMC.Common || (QMC.Common = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Common;\n (function (Common) {\n var VaccinationDirectiveController = /** @class */ (function () {\n function VaccinationDirectiveController(scope, $qui, $q, stammdatenService, clientService, lng, permissionService) {\n var _this = this;\n this.scope = scope;\n this.$qui = $qui;\n this.$q = $q;\n this.stammdatenService = stammdatenService;\n this.clientService = clientService;\n this.lng = lng;\n this.permissionService = permissionService;\n this.ui = new Common.DetailUI();\n this.formState = 'new';\n this.diseases = [];\n this.wvList = [];\n this.clientList = [];\n this.doctors = [];\n this.loading = {\n client: true,\n wv: true\n };\n this.waitForPermissionCache();\n this.initForm();\n this.scope.$watch('vm.qmParticipants', function (val) {\n if (!val)\n val = [];\n var clientsList = [];\n for (var i = 0; i < val.length; i++) {\n if (val[i].objType) {\n if (val[i].objType === 140000) {\n clientsList.push(val[i].value);\n }\n }\n else {\n clientsList.push(val[i]);\n }\n }\n _this.form.participants = clientsList;\n }, true);\n this.scope.$watch('vm.loading', function () {\n if (!_this.loading.wv && !_this.loading.client) {\n _this.$qui.functionWaiter(\"createForm\", _this);\n }\n }, true);\n }\n VaccinationDirectiveController.prototype.waitForPermissionCache = function () {\n var _this = this;\n var cache = sessionStorage.getItem(Common.Constants.SMARTACTIONCACHE);\n var cacheObject = cache && cache.length > 0 ? JSON.parse(cache) : {};\n if (cacheObject.permissions && cacheObject.permissions[140005]) {\n this.new = cacheObject.permissions[140005].new;\n if (this.new)\n this.getData();\n }\n else {\n setTimeout(function () { _this.waitForPermissionCache(); });\n return;\n }\n };\n VaccinationDirectiveController.prototype.getData = function () {\n var _this = this;\n this.waitForClientListCache();\n this.stammdatenService.getVaccinationWv().then(function (data) {\n _this.wvList = _this.ui.select(data.diseaseVaccinationWvList, { value: 'id', text: 'name' });\n _this.stammdatenService.getDoctorList().then(function (data) {\n _this.doctors = _this.ui.select(data, { value: 'id', text: 'displayTitle' });\n _this.loading.wv = false;\n });\n });\n };\n VaccinationDirectiveController.prototype.waitForClientListCache = function () {\n var _this = this;\n var cache = sessionStorage.getItem(Common.Constants.SMARTACTIONCACHE);\n var cacheObject = JSON.parse(cache);\n if (!cacheObject.clientList || cacheObject.clientList.loading) {\n setTimeout(function () { _this.waitForClientListCache(); }, 250);\n }\n else {\n this.clientList = cacheObject.clientList.concat(this.clientList);\n this.loading.client = false;\n }\n };\n VaccinationDirectiveController.prototype.initForm = function () {\n this.form = {\n id: null,\n objectId: null,\n parentObjectId: null,\n participants: [],\n date: new Date(),\n dateFollowupAppointment: null,\n caption: null,\n comment: null,\n batchNumber: null,\n diseaseId: null,\n doctorId: null\n };\n };\n VaccinationDirectiveController.prototype.getDiseases = function () {\n return this.wvList;\n };\n VaccinationDirectiveController.prototype.getClientList = function () {\n return this.clientList;\n };\n VaccinationDirectiveController.prototype.getDoctors = function () {\n return this.doctors;\n };\n VaccinationDirectiveController.prototype.addVaccination = function (form) {\n for (var i = 0; i < form.participants.length; i++) {\n var data = jQuery.extend(true, {}, form);\n data.parentObjectId = form.participants[i];\n this.stammdatenService.postVaccination(data);\n }\n $('div.additional-field-dynamic.impfung').fadeOut(\"slow\").addClass(\"deactivated\");\n };\n ;\n VaccinationDirectiveController = __decorate([\n QMC.Controller('QMC.Common', 'VaccinationDirectiveController'),\n QMC.Inject('$scope', '$qui', \"$q\", \"StammdatenService\", \"KlientService\", \"QmcLanguageService\", \"QmcPermissionService\")\n ], VaccinationDirectiveController);\n return VaccinationDirectiveController;\n }());\n var VaccinationDirective = /** @class */ (function () {\n function VaccinationDirective() {\n this.restrict = 'E';\n this.replace = true;\n this.templateUrl = \"./Templates/Smart/Vaccination\";\n this.scope = {\n qmParticipants: '='\n };\n this.controllerAs = 'vm';\n this.controller = 'VaccinationDirectiveController';\n this.bindToController = true;\n }\n VaccinationDirective = __decorate([\n QMC.Directive('QMC.Common', 'qmFormQuickImmunization', [\"StammdatenService\", \"QmcLanguageService\", \"QmcPermissionService\"])\n ], VaccinationDirective);\n return VaccinationDirective;\n }());\n Common.VaccinationDirective = VaccinationDirective;\n })(Common = QMC.Common || (QMC.Common = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Directives;\n (function (Directives) {\n var ContingentDirective = /** @class */ (function () {\n function ContingentDirective(flsService, userService, $qui) {\n var _this = this;\n this.flsService = flsService;\n this.userService = userService;\n this.$qui = $qui;\n this.restrict = 'EA';\n this.replace = true;\n this.scope = {\n qmOpen: '=',\n qmCase: '=',\n qmDate: '='\n };\n this.templateUrl = 'Templates/Contingent';\n this.link = function (scope, element, attrs) {\n var _a, _b;\n scope.id = 'qmContingent_' + ((_b = (_a = scope.qmCase) === null || _a === void 0 ? void 0 : _a.objectId) !== null && _b !== void 0 ? _b : Math.random().toString(36).substr(2, 9));\n scope.dontShowIndirect = window.dontShowIndirectContingent;\n if (scope.dontShowIndirect === undefined) {\n _this.userService.getUserSettings([\"FLS.CONTINGENT.DONTSHOWINDRECT\",]).then(function (data) {\n scope.dontShowIndirect = $.grep(data, function (e) { return e.key === \"FLS.CONTINGENT.DONTSHOWINDRECT\"; })[0].value.toLowerCase() === \"true\";\n window.dontShowIndirectContingent = scope.dontShowIndirect;\n });\n }\n scope.qmOpen = function () {\n if (!scope.qmCase)\n return;\n scope.date = scope.qmDate ? angular.copy(scope.qmDate) : moment().startOf('day').toDate();\n $('#' + scope.id).modal('show');\n _this.$qui.scopeApply(scope);\n };\n scope.$watch('date', function (newVal, oldVal) {\n if (JSON.stringify(newVal) === JSON.stringify(oldVal) || !newVal)\n return;\n scope.load = true;\n _this.flsService.getContingent(scope.qmCase.objectId, scope.date).then(function (data) {\n scope.contingent = data;\n }).finally(function () {\n scope.load = false;\n });\n });\n scope.$watch('qmCase', function (newVal, oldVal) {\n if (JSON.stringify(newVal) === JSON.stringify(oldVal))\n return;\n scope.date = undefined;\n scope.contingent = undefined;\n });\n scope.showTargetDetails = function (contingent) {\n return !scope.dontShowIndirect && contingent.targetedAmounts.direct && contingent.targetedAmounts.indirect;\n };\n };\n }\n ContingentDirective = __decorate([\n QMC.Directive('QMC.Directives', 'qmContingent', ['FachleistungService', 'UserService', '$qui'])\n ], ContingentDirective);\n return ContingentDirective;\n }());\n Directives.ContingentDirective = ContingentDirective;\n })(Directives = QMC.Directives || (QMC.Directives = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Directives;\n (function (Directives) {\n var IncludeDirective = /** @class */ (function () {\n function IncludeDirective($qui, $timeout, identityService) {\n var _this = this;\n this.$qui = $qui;\n this.$timeout = $timeout;\n this.identityService = identityService;\n this.restrict = 'EA';\n this.replace = true;\n this.scope = {\n qmPath: '=',\n qmId: '@',\n qmHeaderName: '@',\n qmParams: '='\n };\n this.templateUrl = 'Templates/Include';\n this.link = function (scope, element, attrs) {\n var secret = '';\n var frame = null;\n var iFrame = null;\n if (scope.qmId === (null || undefined))\n scope.qmId = '_' + Math.random().toString(36).substring(2, 11);\n if (scope.qmHeaderName === (null || undefined))\n scope.qmHeaderName = 'header';\n var ceBaseUrl = $('#session').data().ceUrl;\n if (!ceBaseUrl || ceBaseUrl.length === 0) {\n element.innerHtml = \"No exchange client url supplied\";\n return;\n }\n _this.identityService.setSecretToken().then(function (data) {\n console.warn('got token token', data);\n secret = data;\n createIFrame();\n });\n scope.$watch('qmPath', function () {\n createIFrame();\n });\n _this.$timeout(function () {\n frame = $('#' + scope.qmId);\n createIFrame();\n });\n var createIFrame = function () {\n scope.loading = true;\n if (frame === null || scope.qmPath === '' || secret === '')\n return;\n frame.remove('#' + scope.qmId + '_frame');\n iFrame = document.createElement('iframe');\n var color = '';\n var colors = window.bodyColorClasses.split(' ');\n for (var i = 0; i < colors.length; i++) {\n if (document.body.classList.contains(colors[i])) {\n color = colors[i];\n break;\n }\n }\n iFrame.src = (scope.qmPath.startsWith('http') ? '' : ceBaseUrl) + scope.qmPath\n + '?secret=' + secret\n + '&color=' + color\n + '&oldClientUrl=' + location.origin + location.pathname\n + '&dbConnection=' + $('#session').data().dbConnection\n + '&' + new URLSearchParams(scope.qmParams).toString();\n iFrame.style = 'width: 100%; height: 100%; border:0px;';\n iFrame.id = scope.qmId + '_frame';\n iFrame.sandbox = 'allow-downloads allow-forms allow-modals allow-orientation-lock allow-pointer-lock allow-popups allow-popups-to-escape-sandbox allow-presentation allow-same-origin allow-scripts allow-top-navigation allow-top-navigation-by-user-activation';\n frame.append(iFrame);\n resize();\n document.getElementById(scope.qmId + '_frame').addEventListener('load', function (e) {\n scope.loading = false;\n _this.$qui.scopeApply(_this);\n });\n };\n var resize = function () {\n if (iFrame === null)\n return;\n var isMobile = $('body').hasClass('mobile');\n iFrame.style.height = 0 + \"px\";\n var headerHeight = document.getElementById(scope.qmHeaderName) ? $('#' + scope.qmHeaderName).height() : 0;\n if (isMobile) {\n iFrame.style.height = Math.floor(window.innerHeight - 60 - $('#version-footer').height()) + \"px\";\n }\n else {\n iFrame.style.height = Math.floor($('#page-wrapper').height() - headerHeight - $('#version-footer').height()) - 65 + \"px\";\n }\n };\n createIFrame();\n window.onresize = function () { resize(); };\n };\n }\n IncludeDirective = __decorate([\n QMC.Directive('QMC.Directives', 'qmInclude', ['$qui', '$timeout', 'QmcIdentityService'])\n ], IncludeDirective);\n return IncludeDirective;\n }());\n Directives.IncludeDirective = IncludeDirective;\n })(Directives = QMC.Directives || (QMC.Directives = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Directives;\n (function (Directives) {\n var MarkItemDirective = /** @class */ (function () {\n function MarkItemDirective(markItemService, userService) {\n var _this = this;\n this.markItemService = markItemService;\n this.userService = userService;\n this.scope = {\n saveMarkItem: '@',\n qmBtnCircle: '=',\n qmParentObjectIds: '=?',\n qmParentObjectId: '=?',\n qmParentObjectType: '@',\n markItems: '@',\n selectedMarkItems: '='\n };\n this.restrict = 'EA';\n this.templateUrl = 'Templates/MarkItem';\n this.link = function (scope) {\n //first try to get the selectedMarkItems, for not showing validation error\n scope.loadElements = function () {\n if (scope.qmParentObjectIds == undefined || scope.qmParentObjectIds == null || scope.qmParentObjectIds.length == 0) {\n scope.qmParentObjectIds = [];\n scope.qmParentObjectIds.push(scope.qmParentObjectId);\n }\n _this.markItemService.getMarkItems().then(function (data) {\n scope.markItems = data;\n _this.markItemService.getSelectedMarkItems(scope.qmParentObjectIds[0], scope.qmParentObjectType).then(function (data) {\n scope.selectedMarkItems = data;\n for (var i = 0; i < scope.markItems.length; i++) {\n scope.markItems[i].isSelected = false;\n for (var j = 0; j < scope.selectedMarkItems.length; j++) {\n if (scope.markItems[i].id === scope.selectedMarkItems[j].markItemId) {\n scope.markItems[i].isSelected = true;\n if (scope.enableReason) {\n scope.markItems[i].reason = scope.selectedMarkItems[j].reason;\n }\n }\n }\n }\n });\n });\n };\n _this.userService.getUserSettings(['MARKIEREN.GRUND'], false).then(function (data) {\n scope.enableReason = data[0].value.toLowerCase() === 'true';\n scope.loadElements();\n });\n scope.initModal = function () {\n scope.loadElements();\n };\n scope.saveSelectedMarkItems = function () {\n scope.selectedMarkItems = [];\n for (var j = 0; j < scope.qmParentObjectIds.length; j++) {\n var data = {\n parentObjectId: scope.qmParentObjectIds[j],\n parentObjectType: parseInt(scope.qmParentObjectType),\n markItems: [],\n id: null,\n objectId: null\n };\n for (var i = 0; i < scope.markItems.length; i++) {\n if (scope.markItems[i].isSelected) {\n data.markItems.push({ key: scope.markItems[i].id, value: scope.enableReason && scope.markItems[i].reason && scope.markItems[i].reason.length > 0 ? scope.markItems[i].reason : '' });\n scope.selectedMarkItems.push({ key: scope.markItems[i].id, value: scope.enableReason && scope.markItems[i].reason && scope.markItems[i].reason.length > 0 ? scope.markItems[i].reason : '' });\n }\n }\n _this.markItemService.putSelectedMarkItems(data);\n }\n };\n };\n }\n MarkItemDirective = __decorate([\n QMC.Directive('QMC.Directives', 'qmMarkItem', ['QmcMarkItemService', 'UserService'])\n ], MarkItemDirective);\n return MarkItemDirective;\n }());\n Directives.MarkItemDirective = MarkItemDirective;\n })(Directives = QMC.Directives || (QMC.Directives = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Directives;\n (function (Directives) {\n var MaximizeModalButton = /** @class */ (function () {\n function MaximizeModalButton() {\n this.isMax = false;\n }\n MaximizeModalButton.prototype.toggle = function (buttonElement) {\n $(buttonElement).parents().find('.modal-dialog').toggleClass('modal-fullscreen');\n this.isMax = !this.isMax;\n };\n return MaximizeModalButton;\n }());\n angular.module('QMC.Directives').component('qmMaximizeModalButton', {\n controller: [MaximizeModalButton],\n controllerAs: 'vm',\n replace: true,\n template: '' +\n ' ' +\n ' ' +\n ''\n });\n })(Directives = QMC.Directives || (QMC.Directives = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Directives;\n (function (Directives) {\n var PrivateContent = /** @class */ (function () {\n function PrivateContent(privateContentService, permissionService, $qui) {\n var _this = this;\n this.privateContentService = privateContentService;\n this.permissionService = permissionService;\n this.$qui = $qui;\n this.scope = {\n savePrivateContent: '@',\n qmReference: '=',\n qmParent: '=',\n qmObjectType: '=',\n qmFloating: '=',\n qmMuted: '='\n };\n this.restrict = 'EA';\n this.templateUrl = 'Templates/PrivateContent';\n this.link = function (scope) {\n _this.getPermission(scope);\n scope.newPC = true;\n scope.sn = { comment: '' };\n scope.init = false;\n scope.openModal = function () {\n scope.loading = true;\n $(\"#privateContentModal\" + scope.qmParent).modal(\"show\");\n _this.privateContentService.getPrivateContent(scope.qmParent, scope.qmReference).then(function (data) {\n if (data !== null) {\n scope.newPC = false;\n scope.sn.comment = data.comment;\n }\n else {\n scope.newPC = true;\n scope.sn.comment = '';\n }\n scope.loading = false;\n if (!scope.init) {\n scope.init = true;\n }\n });\n };\n scope.save = function () {\n document.getElementById(\"pcSaveBtn\").focus();\n scope.loading = true;\n if (scope.newPC) {\n _this.privateContentService.postPrivateContent({\n referenceObjectId: scope.qmReference,\n parentObjectId: scope.qmParent,\n parentObjectType: scope.qmObjectType,\n comment: scope.sn.comment,\n id: null,\n objectId: null\n }).then(function (response) {\n $(\"#privateContentModal\" + scope.qmParent).modal(\"hide\");\n }).finally(function () {\n scope.loading = false;\n });\n }\n // recycle an existing pc\n else {\n _this.privateContentService.putPrivateContent(scope.qmParent, scope.qmReference, {\n comment: scope.sn.comment,\n id: null,\n objectId: null\n }).then(function (response) {\n $(\"#privateContentModal\" + scope.qmParent).modal(\"hide\");\n }).finally(function () {\n scope.loading = false;\n });\n }\n };\n };\n }\n PrivateContent.prototype.getPermission = function (scope) {\n var _this = this;\n var storagePermission = sessionStorage.getItem(\"privateContentPermission\");\n if (storagePermission && storagePermission !== '') {\n var data = JSON.parse(storagePermission);\n if (Date.now() - this.$qui.createDateFromString(data.timeStamp) < 5 * 60 * 1000) { // only if permission is max 5 minutes old\n scope.delete = data.delete && data.moduleAccess;\n scope.new = data.new && data.moduleAccess;\n scope.modify = data.modify && data.moduleAccess;\n scope.view = data.view && data.moduleAccess;\n }\n else {\n //getPermission();\n this.$qui.cachePrivateContentPermission(this.permissionService);\n setTimeout(function () { _this.getPermission(scope); }, 500);\n }\n }\n else {\n //getPermission();\n this.$qui.cachePrivateContentPermission(this.permissionService);\n setTimeout(function () { _this.getPermission(scope); }, 500);\n }\n };\n ;\n PrivateContent = __decorate([\n QMC.Directive('QMC.Directives', 'qmPrivateContent', ['QmcPrivateContentService', 'QmcPermissionService', '$qui'])\n ], PrivateContent);\n return PrivateContent;\n }());\n Directives.PrivateContent = PrivateContent;\n })(Directives = QMC.Directives || (QMC.Directives = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Directives;\n (function (Directives) {\n var SurveyDirective = /** @class */ (function () {\n function SurveyDirective(userService) {\n var _this = this;\n this.userService = userService;\n this.restrict = 'EA';\n this.replace = true;\n this.scope = {};\n this.templateUrl = 'Templates/Survey';\n this.link = function (scope) {\n _this.userService.getSurvey().then(function (data) {\n scope.survey = data;\n if (data) {\n setTimeout(function () { return $('#surveyModal').modal('show'); }, 5000); //delay show of modal to prevent automatic close on app init\n }\n });\n scope.closeSurvey = function (dismissSurvey, performed) {\n if (performed === void 0) { performed = false; }\n if (dismissSurvey)\n _this.userService.dismissSurvey(scope.survey.surveyId, performed);\n $('#surveyModal').modal('hide');\n };\n scope.participateInSurvey = function () {\n scope.closeSurvey(true, true);\n window.open(scope.survey.link, '_blank').focus();\n };\n };\n }\n SurveyDirective = __decorate([\n QMC.Directive('QMC.Directives', 'qmSurvey', ['UserService'])\n ], SurveyDirective);\n return SurveyDirective;\n }());\n Directives.SurveyDirective = SurveyDirective;\n })(Directives = QMC.Directives || (QMC.Directives = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Udf;\n (function (Udf) {\n var UdfContainer = /** @class */ (function () {\n function UdfContainer() {\n this.show = false;\n }\n UdfContainer.prototype.allDataValid = function () {\n var _a, _b, _c;\n return (((_a = this.data) === null || _a === void 0 ? void 0 : _a.definitionId) && this.data.definitionId !== QMC.Common.Constants.GUID_EMPTY && ((_b = this.data) === null || _b === void 0 ? void 0 : _b.definitionObjectType) &&\n this.data.referenceId && this.data.referenceId !== QMC.Common.Constants.GUID_EMPTY && ((_c = this.data) === null || _c === void 0 ? void 0 : _c.referenceObjectType) &&\n this.data.type >= 0 && this.data.type <= 5);\n };\n return UdfContainer;\n }());\n angular.module('QMC.Udf').component('qmUdfContainer', {\n templateUrl: 'UserDefinedFields/Container',\n controller: [UdfContainer],\n controllerAs: 'vm',\n bindings: {\n data: '=',\n save: '=?',\n hideSaveButton: '=?',\n isTouched: '=?',\n isValid: '=?',\n disabled: '=?'\n }\n });\n })(Udf = QMC.Udf || (QMC.Udf = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Udf;\n (function (Udf) {\n var FormDirective = /** @class */ (function () {\n function FormDirective(scope, $qui, udfService) {\n var _this = this;\n this.scope = scope;\n this.$qui = $qui;\n this.udfService = udfService;\n this.rows = [];\n this.id = '_' + Math.random().toString(36).substring(2, 11);\n this.wvDsData = {};\n this.timeValues = {};\n this.formWatcher = [];\n this.isTouched = false;\n this.touchWatcher = [];\n this.$postLink = function () {\n if (!_this.reference || !_this.definition) {\n console.warn('UDF-Form: reference, defintion or udf not set!', _this.reference, _this.definition, _this.udf);\n return;\n }\n _this.init();\n _this.events();\n _this.reset = function () { _this.createRowsFromUdf(); };\n };\n this.$onDestroy = function () {\n _this.clearFormWatcher();\n };\n }\n FormDirective.prototype.init = function () {\n this.createRowsFromUdf();\n this.loadWvAndDataSourcesFromUdf();\n };\n FormDirective.prototype.events = function () {\n var _this = this;\n this.scope.$watch('vm.udf', function (newVal, oldVal) {\n if (JSON.stringify(newVal) === JSON.stringify(oldVal))\n return;\n _this.init();\n }, true);\n this.isTouched = false;\n this.touchWatcher.forEach(function (watcher) { return watcher(); });\n this.touchWatcher = [];\n for (var i = 0; i < this.udf.fields.length; i++) {\n this.touchWatcher.push(this.scope.$watch(\"vm.udf.fields[\" + i + \"].values\", function (newVal, oldVal) {\n if (JSON.stringify(newVal) !== JSON.stringify(oldVal))\n _this.isTouched = true;\n }, true));\n }\n };\n FormDirective.prototype.createRowsFromUdf = function () {\n var _this = this;\n var _a, _b, _c, _d;\n this.isTouched = false;\n this.rows = [];\n (_a = this.udf) === null || _a === void 0 ? void 0 : _a.fields.sort(function (x, y) { return x.column - y.column; }).forEach(function (field) {\n //convert dates\n if ((field.fieldType === 10 || field.fieldType === 12) && field.values.length)\n field.values[0] = _this.$qui.createDateFromString(field.values[0]);\n var row = _this.rows.find(function (x) { return x.row === field.row; });\n if (!row) {\n row = { row: field.row, fields: [field] };\n _this.rows.push(row);\n }\n else {\n row.fields.push(field);\n }\n });\n this.rows = this.rows.sort(function (a, b) { return a.row - b.row; });\n var maxColumns = Math.max.apply(Math, (_d = (_c = (_b = this.udf) === null || _b === void 0 ? void 0 : _b.fields) === null || _c === void 0 ? void 0 : _c.map(function (x) { return x.column; })) !== null && _d !== void 0 ? _d : [0]);\n // per row fillup missing columns with blanks\n this.rows.forEach(function (row) {\n var _loop_2 = function (i) {\n if (!row.fields.find(function (x) { return x.column == i; }))\n row.fields.push({\n values: [],\n wvId: QMC.Common.Constants.GUID_EMPTY,\n fieldType: -1,\n caption: '',\n isRequired: false,\n row: row.row,\n column: i,\n id: null,\n objectId: null\n });\n };\n for (var i = 0; i <= maxColumns; i++) {\n _loop_2(i);\n }\n row.fields = row.fields.sort(function (a, b) { return a.column - b.column; });\n });\n this.clearFormWatcher();\n var _loop_1 = function (i) {\n var field = this_1.udf.fields[i];\n if (field.values && [40, 50, 60, 70].includes(field.fieldType)) { // ensure format of values for wvs and dss\n field.values = field.values.map(function (x) { return (x === null || x === void 0 ? void 0 : x.toLocaleLowerCase) ? x.toLocaleLowerCase() : x; });\n }\n if (this_1.udf.fields[i].fieldType !== 12)\n return \"continue\";\n this_1.timeValues[field.objectId] = angular.copy(field.values[0]);\n this_1.formWatcher.push(this_1.scope.$watch(\"vm.timeValues['\" + field.objectId + \"']\", function (newVal, oldVal) {\n _this.handleDateTimeWatch(field, newVal, oldVal);\n }));\n this_1.formWatcher.push(this_1.scope.$watch(\"vm.udf.fields[\" + i + \"].values[0]\", function (newVal, oldVal) {\n _this.handleDateTimeWatch(field, newVal, oldVal);\n }));\n };\n var this_1 = this;\n //workaround for datetime: store time in seperate object, indexed by field id. Watch said objects property and actual value to keep both in sync\n for (var i = 0; i < this.udf.fields.length; i++) {\n _loop_1(i);\n }\n };\n FormDirective.prototype.handleDateTimeWatch = function (field, newVal, oldVal) {\n if (JSON.stringify(newVal) === JSON.stringify(oldVal))\n return;\n if (!newVal) {\n field.values = [];\n return;\n }\n field.values[0] = this.$qui.addTimeToDate(field.values[0], this.timeValues[field.objectId]);\n };\n FormDirective.prototype.loadWvAndDataSourcesFromUdf = function () {\n var _this = this;\n this.udf.fields.forEach(function (field) {\n if (!field.wvId || _this.wvDsData[field.wvId])\n return;\n _this.wvDsData[field.wvId] = [];\n if (field.fieldType === 40 || field.fieldType === 60)\n _this.udfService.getWv(field.wvId).then(function (data) { return _this.wvDsData[field.wvId] = data.map(function (x) { return ({ text: x.name, value: x.objectId }); }); });\n if (field.fieldType === 50 || field.fieldType === 70)\n _this.udfService.getDs(field.wvId).then(function (data) { return _this.wvDsData[field.wvId] = data.map(function (x) { return ({ text: x.caption, value: x.objectId }); }); });\n });\n };\n FormDirective.prototype.clearFormWatcher = function () {\n this.formWatcher.forEach(function (x) { return x(); });\n this.formWatcher = [];\n };\n return FormDirective;\n }());\n angular.module('QMC.Udf').component('qmUdfForm', {\n templateUrl: 'UserDefinedFields/Form',\n controller: ['$scope', '$qui', 'QmcUdfService', FormDirective],\n controllerAs: 'vm',\n bindings: {\n reference: '=',\n definition: '=',\n disabled: '=?',\n isValid: '=?',\n udf: '=',\n reset: '=?',\n isTouched: '=?'\n }\n });\n })(Udf = QMC.Udf || (QMC.Udf = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Udf;\n (function (Udf) {\n var MediaDirective = /** @class */ (function () {\n function MediaDirective($qui, scope, udfService, mediaService, lng, stammdatenService) {\n var _this = this;\n this.$qui = $qui;\n this.scope = scope;\n this.udfService = udfService;\n this.mediaService = mediaService;\n this.lng = lng;\n this.stammdatenService = stammdatenService;\n this.files = [];\n this.id = '_' + Math.random().toString(36).substring(2, 11);\n this.promptOptions = {\n title: '',\n yesNo: true,\n icon: \"qm-icon-garbage_can\",\n text: this.lng.translate(20000290, 'Wollen Sie den Eintrag wirklich löschen?'),\n itemText: ''\n };\n this.$postLink = function () {\n _this.loadMedia();\n _this.events();\n };\n }\n MediaDirective.prototype.events = function () {\n var _this = this;\n this.scope.$watch('vm.field', function (newVal, oldVal) {\n if (JSON.stringify(newVal) === JSON.stringify(oldVal))\n return;\n _this.loadMedia();\n }, true);\n this.scope.$watch('vm.newForm.file', function (newVal, oldVal) {\n var _a;\n if (JSON.stringify(newVal) === JSON.stringify(oldVal))\n return;\n var file = _this.newForm.file[_this.newForm.file.length - 1];\n if (!file)\n return;\n _this.newForm.caption = file.name.substring(0, (_a = file.name.lastIndexOf('.')) !== null && _a !== void 0 ? _a : file.name.length);\n }, true);\n };\n MediaDirective.prototype.loadMedia = function () {\n return __awaiter(this, void 0, void 0, function () {\n var mediaId;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!!this.field.values.length) return [3 /*break*/, 2];\n this.loading = true;\n return [4 /*yield*/, this.createMedia()];\n case 1:\n mediaId = _a.sent();\n if (mediaId) {\n this.field.values.push(mediaId);\n this.error = undefined;\n }\n else {\n this.error = 'Media could not be initialized';\n return [2 /*return*/];\n }\n _a.label = 2;\n case 2:\n this.loading = true;\n this.udfService.getUserDefinedFieldMedia(this.field.values[0])\n .then(function (data) {\n _this.files = data;\n _this.files.forEach(function (file) {\n //load thumbnails for fotos\n if (file.mediaType === 1) {\n _this.mediaService.getMediaThumbnail(file.objectId, file.mediaType).then(function (data) {\n file.thumbnail = data.base64.length ? 'data:' + data.mimeType + ';base64,' + data.base64 : '';\n });\n }\n });\n })\n .catch(function () { return _this.files = []; })\n .finally(function () { return _this.loading = false; });\n return [2 /*return*/];\n }\n });\n });\n };\n MediaDirective.prototype.createMedia = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n return [2 /*return*/, new Promise(function (resolve, reject) {\n _this.stammdatenService.postNewDocument({\n isMainDataSet: 0,\n itemOrder: 0,\n objectType: _this.definition.objectType,\n parentObjectId: QMC.Common.Constants.GUID_EMPTY,\n parentObjectType: _this.definition.objectType,\n date: moment().startOf('day').toDate(),\n title: _this.field.caption,\n subtitle: _this.lng.translate(20036008, \"über Flexfelder verbunden\"),\n isPrivate: false,\n documentTypeId: _this.field.fieldType === 80 ? 'e95b9228-1626-4eb3-a54c-b2b6ec7524f2' : 'd5b77c29-bd93-46f9-b1ec-322caf68292d',\n mediaType: _this.field.fieldType === 80 ? 1 : 2,\n mainCategoryId: QMC.Common.Constants.GUID_EMPTY,\n subCategoryId: QMC.Common.Constants.GUID_EMPTY,\n comment: ''\n }).then(function (data) {\n var mediaId = data[0].value.createdObjectId;\n return resolve(mediaId);\n }).catch(function () {\n return reject(new Error('Could not create media'));\n });\n })];\n });\n });\n };\n MediaDirective.prototype.getIcon = function (file) {\n var _a, _b, _c;\n var extension = (_c = (_b = (_a = file === null || file === void 0 ? void 0 : file.fileName) === null || _a === void 0 ? void 0 : _a.substring(file.fileName.lastIndexOf('.') + 1)) === null || _b === void 0 ? void 0 : _b.toLowerCase()) !== null && _c !== void 0 ? _c : '';\n switch (extension) {\n case 'png':\n case 'jpg':\n case 'jpeg':\n case 'svg':\n case 'bmp':\n case 'gif':\n return 'image-o';\n case 'mov':\n case 'webm':\n case 'mpeg':\n case 'mkv':\n case 'mp4':\n return 'video-o';\n case 'zip':\n case '7z':\n case 'pkg':\n case 'dmg':\n case 'tar':\n case 'gz':\n return 'archive-o';\n case 'pdf':\n return 'pdf-o';\n case 'doc':\n case 'docx':\n return 'word-o';\n case 'ppt':\n case 'pptx':\n return 'powerpoint-o';\n case 'text':\n case 'txt':\n return 'text-o';\n case 'xls':\n case 'xlsx':\n return 'excel-o';\n default: return 'o';\n }\n };\n MediaDirective.prototype.getFileExtension = function (file) {\n var _a, _b, _c;\n return (_c = (_b = (_a = file === null || file === void 0 ? void 0 : file.fileName) === null || _a === void 0 ? void 0 : _a.substring(file.fileName.lastIndexOf('.') + 1)) === null || _b === void 0 ? void 0 : _b.toLowerCase()) !== null && _c !== void 0 ? _c : '';\n };\n MediaDirective.prototype.getAcceptedFileTypes = function () {\n if (this.field.fieldType === 80)\n return 'image/*';\n return '.doc,.docx,.xls,.xlsx,.pdf,.txt';\n };\n MediaDirective.prototype.openFile = function (file) {\n var _this = this;\n this.selectedFile = file;\n $(\"#previewModal\" + this.id).modal('show');\n this.loadingPreview = true;\n this.mediaService.getMediaFile(file.objectId, file.mediaType)\n .then(function (data) { return _this.selectedFile.base64 = data.base64; })\n .catch(function () { return _this.selectedFile.base64 = ''; })\n .finally(function () { return _this.loadingPreview = false; });\n };\n MediaDirective.prototype.deleteFile = function (file) {\n var _this = this;\n this.promptOptions = __assign(__assign({}, this.promptOptions), { title: this.field.caption, itemText: file.fileName });\n QMC.Common.Utilities.confirm(this.promptOptions, function (data) {\n if (data) {\n _this.loadingPreview = true;\n _this.loading = true;\n _this.mediaService.deleteMediaAttachementDirect(file.objectId)\n .then(function () { return $(\"#previewModal\" + _this.id).modal('hide'); })\n .finally(function () {\n _this.loadingPreview = false;\n _this.loadMedia();\n });\n }\n }, \"#prompt\" + this.id);\n };\n MediaDirective.prototype.openNewFile = function () {\n this.newForm = {\n caption: '',\n file: []\n };\n $(\"#newModal\" + this.id).modal('show');\n };\n MediaDirective.prototype.uploadFile = function () {\n var _this = this;\n var file = this.newForm.file[this.newForm.file.length - 1];\n if (!file)\n return;\n this.loadingNew = true;\n this.mediaService.postMediaAttachement({\n documentId: this.field.values[0],\n base64String: file.base64,\n date: new Date(),\n fileName: file.name,\n caption: this.newForm.caption,\n mediaType: this.field.fieldType === 80 ? 1 : 2 // if we have image type udf, set type 1 (foto), else type 2 (dokument)\n })\n .then(function () { return $(\"#newModal\" + _this.id).modal('hide'); })\n .finally(function () {\n _this.loadMedia();\n _this.loadingNew = false;\n });\n };\n return MediaDirective;\n }());\n angular.module('QMC.Udf').component('qmUdfMedia', {\n templateUrl: 'UserDefinedFields/Media',\n controller: ['$qui', '$scope', 'QmcUdfService', 'QmcMediaService', 'QmcLanguageService', 'StammdatenService', MediaDirective],\n controllerAs: 'vm',\n bindings: {\n field: '=',\n qmDisabled: '=?',\n definition: '='\n }\n });\n })(Udf = QMC.Udf || (QMC.Udf = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Udf;\n (function (Udf) {\n var SaveButtonDirective = /** @class */ (function () {\n function SaveButtonDirective($qui, $scope) {\n var _this = this;\n this.$qui = $qui;\n this.$scope = $scope;\n this.id = '_' + Math.random().toString(36).substring(2, 11);\n this.$postLink = function () {\n $(document).scroll(function () {\n _this.checkViewport();\n });\n setInterval(function () {\n _this.checkViewport();\n }, 1000);\n };\n }\n SaveButtonDirective.prototype.checkViewport = function () {\n var element = document.getElementById(this.id);\n if (!element)\n return;\n var rect = document.getElementById(this.id).getBoundingClientRect();\n if (rect.top >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight)) {\n $(\"#\" + this.id + \"_float\").fadeOut();\n }\n else {\n $(\"#\" + this.id + \"_float\").fadeIn();\n }\n this.$qui.scopeApply(this.$scope);\n };\n return SaveButtonDirective;\n }());\n angular.module('QMC.Udf').component('qmUdfSaveButton', {\n controller: ['$qui', '$scope', SaveButtonDirective],\n controllerAs: 'vm',\n bindings: {\n disabled: '=',\n hide: '=',\n callback: '='\n },\n templateUrl: 'UserDefinedFields/Save_Button'\n });\n })(Udf = QMC.Udf || (QMC.Udf = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Udf;\n (function (Udf) {\n var StandardDirective = /** @class */ (function () {\n function StandardDirective($qui, scope, udfService, permissionService) {\n var _this = this;\n this.$qui = $qui;\n this.scope = scope;\n this.udfService = udfService;\n this.permissionService = permissionService;\n this.permissions = {\n view: false,\n new: false,\n modify: false,\n delete: false\n };\n this.$postLink = function () {\n if (!_this.reference || !_this.definition) {\n console.warn('UDF: reference or defintion not set!', _this.reference, _this.definition);\n return;\n }\n _this.loading = true;\n _this.loadPermissions();\n _this.init();\n _this.events();\n _this.save = function (showNotification) {\n if (showNotification === void 0) { showNotification = true; }\n // nothing to save, yield\n if (!_this.udf.fields.length || !_this.isTouched || !_this.isValid)\n return Promise.resolve(true);\n var saveObject = {\n values: {},\n udfId: _this.udf.udfId\n };\n _this.udf.fields.forEach(function (field) {\n saveObject.values[field.objectId] = field.values;\n });\n _this.loading = true;\n return _this.udfService.updateUserDefinedField(_this.reference.objectType, _this.reference.id, _this.definition.objectType, _this.definition.id, saveObject, _this.timeframe).then(function () {\n if (showNotification)\n _this.$qui.notify(_this.$qui.successNote);\n _this.isTouched = false;\n return true;\n }).catch(function (e) {\n console.error('Error saving udf', e);\n return false;\n }).finally(function () {\n _this.init();\n });\n };\n };\n }\n StandardDirective.prototype.init = function () {\n var _this = this;\n this.loading = true;\n this.udfService.getUserDefinedField(this.reference.objectType, this.reference.id, this.definition.objectType, this.definition.id, this.timeframe).then(function (data) {\n _this.udf = data[0];\n }).finally(function () {\n _this.loading = false;\n setTimeout(function () { return _this.isTouched = false; });\n });\n };\n StandardDirective.prototype.events = function () {\n var _this = this;\n var initCheckFunc = function (newVal, oldVal) {\n if (JSON.stringify(newVal) === JSON.stringify(oldVal))\n return;\n if (!_this.reference || !_this.definition) {\n console.warn('UDF: reference or defintion not set!', _this.reference, _this.definition);\n return;\n }\n _this.init();\n };\n this.scope.$watch('vm.reference', function (newVal, oldVal) { return initCheckFunc(newVal, oldVal); }, true);\n this.scope.$watch('vm.definition', function (newVal, oldVal) { return initCheckFunc(newVal, oldVal); }, true);\n this.scope.$watch('vm.timeframe', function (newVal, oldVal) { return initCheckFunc(newVal, oldVal); });\n this.scope.$watch('vm.definition.objectType', function (newVal, oldVal) {\n if (newVal === oldVal)\n return;\n _this.loadPermissions();\n });\n this.scope.$watch('vm.permissionObjectType', function (newVal, oldVal) {\n if (newVal === oldVal)\n return;\n _this.loadPermissions();\n });\n };\n StandardDirective.prototype.loadPermissions = function () {\n var _this = this;\n var _a;\n this.permissionService.getPermissionsByObjectTypes([(_a = this.permissionObjectType) !== null && _a !== void 0 ? _a : this.definition.objectType]).then(function (data) {\n _this.permissions = data[0];\n }).catch(function () { return _this.permissions = { view: false, modify: false, new: false, delete: false }; });\n };\n return StandardDirective;\n }());\n angular.module('QMC.Udf').component('qmUdfStandard', {\n templateUrl: 'UserDefinedFields/Standard',\n controller: ['$qui', '$scope', 'QmcUdfService', 'QmcPermissionService', StandardDirective],\n controllerAs: 'vm',\n bindings: {\n reference: '=',\n definition: '=',\n timeframe: '=?',\n permissionObjectType: '=?',\n save: '=?',\n hideSaveButton: '=?',\n isTouched: '=?',\n isValid: '=?',\n disabled: '=?'\n }\n });\n })(Udf = QMC.Udf || (QMC.Udf = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Udf;\n (function (Udf) {\n var SingletimeDirective = /** @class */ (function () {\n function SingletimeDirective(scope, $qui, udfService, lng, permissionService) {\n var _this = this;\n this.scope = scope;\n this.$qui = $qui;\n this.udfService = udfService;\n this.lng = lng;\n this.permissionService = permissionService;\n this.permissions = {\n view: false,\n new: false,\n modify: false,\n delete: false\n };\n this.id = '_' + Math.random().toString(36).substring(2, 11);\n this.formState = 'new';\n this.definitionValues = [];\n this.promptOptions = {\n title: this.lng.translate(20036006, 'Einzelzeitraum'),\n yesNo: true,\n icon: \"qm-icon-form\",\n text: this.lng.translate(20000290, \"Wollen Sie den Eintrag wirklich löschen?\")\n };\n this.ui = new Udf.UdfUi(this.lng);\n this.$postLink = function () {\n if (!_this.reference || !_this.definition) {\n console.warn('UDF: reference or defintion not set!', _this.reference, _this.definition);\n return;\n }\n _this.loading = true;\n _this.getDefinition();\n _this.permissionService.getPermissionsByObjectTypes([_this.definition.objectType]).then(function (data) {\n _this.permissions = data[0];\n _this.events();\n _this.init();\n }).catch(function (e) {\n console.error('Error loading udf permission', e);\n _this.loading = false;\n });\n };\n }\n SingletimeDirective.prototype.init = function () {\n this.getUdfData();\n };\n SingletimeDirective.prototype.addSingletime = function () {\n this.form = {\n //fields: angular.copy(this.definitionValues.filter(x => ![80,81,82].includes(x.fieldType))), // media is not support on creation at the moment\n fields: angular.copy(this.definitionValues),\n id: null,\n objectId: null,\n udfId: null,\n dateFrom: new Date()\n };\n this.formState = 'new';\n this.openFormModal();\n };\n SingletimeDirective.prototype.openSingletime = function (udf) {\n this.form = angular.copy(udf);\n this.formState = 'edit';\n this.openFormModal();\n };\n SingletimeDirective.prototype.openFormModal = function () {\n $(\"#singletime-form-modal\" + this.id).modal('show');\n this.$qui.functionWaiter(\"initForm\", this);\n };\n SingletimeDirective.prototype.createSingletime = function () {\n var _this = this;\n this.loading = true;\n this.udfService.createSingletime(this.reference.objectType, this.reference.id, this.definition.objectType, this.definition.id, { dateFrom: this.form.dateFrom, dateTo: this.form.dateTo }).then(function (data) {\n _this.form.udfId = data.createdObjectId;\n _this.updateSingletime();\n }).catch(function (e) {\n console.error('Error creating singletime', e);\n _this.loading = false;\n _this.init();\n });\n };\n SingletimeDirective.prototype.updateSingletime = function () {\n var _this = this;\n var saveObject = {\n values: {},\n udfId: this.form.udfId,\n dateFrom: this.form.dateFrom,\n dateTo: this.form.dateTo\n };\n this.form.fields.forEach(function (field) {\n saveObject.values[field.objectId] = field.values;\n });\n this.loading = true;\n this.udfService.updateUserDefinedField(this.reference.objectType, this.reference.id, this.definition.objectType, this.definition.id, saveObject).then(function () {\n _this.$qui.notify(_this.$qui.successNote);\n }).catch(function (e) {\n console.error('Error saving udf', e);\n }).finally(function () {\n _this.init();\n $(\"#singletime-form-modal\" + _this.id).modal('hide');\n });\n };\n SingletimeDirective.prototype.deleteSingletime = function (udf) {\n var _this = this;\n this.promptOptions.itemText = this.createDateString(udf.dateFrom, udf.dateTo);\n QMC.Common.Utilities.confirm(this.promptOptions, function (data) {\n if (!data)\n return;\n _this.loading = true;\n _this.udfService.deleteSingletime(_this.reference.objectType, _this.reference.id, _this.definition.objectType, _this.definition.id, udf.udfId).finally(function () { return _this.init(); });\n }, \"#udf-singletime-delete-prompt-\" + this.id);\n };\n SingletimeDirective.prototype.isValidDate = function (date) {\n return moment(date).isValid();\n };\n SingletimeDirective.prototype.events = function () {\n var _this = this;\n this.scope.$watch('vm.defintion', function (newVal, oldVal) {\n if (newVal !== oldVal)\n _this.getDefinition();\n }, true);\n };\n SingletimeDirective.prototype.getDefinition = function () {\n var _this = this;\n this.udfService.getUserDefinedFieldDefintion(this.definition.objectType, this.definition.id).then(function (data) {\n _this.definitionValues = data;\n }).catch(function () { return _this.definitionValues = []; });\n };\n SingletimeDirective.prototype.getUdfData = function () {\n var _this = this;\n this.loading = true;\n this.udfService.getUserDefinedField(this.reference.objectType, this.reference.id, this.definition.objectType, this.definition.id, null, false).then(function (data) {\n data.forEach(function (x) {\n if (x.dateFrom)\n x.dateFrom = _this.$qui.createDateFromString(x.dateFrom);\n if (x.dateTo)\n x.dateTo = _this.$qui.createDateFromString(x.dateTo);\n });\n _this.udfs = data.sort(function (a, b) { var _a, _b, _c, _d; return (_d = (_b = (_a = b.dateFrom) === null || _a === void 0 ? void 0 : _a.getTime()) !== null && _b !== void 0 ? _b : 0 - ((_c = a.dateFrom) === null || _c === void 0 ? void 0 : _c.getTime())) !== null && _d !== void 0 ? _d : 0; });\n }).finally(function () {\n _this.loading = false;\n });\n };\n SingletimeDirective.prototype.createDateString = function (dateFrom, dateTo) {\n return this.ui.createDateString(dateFrom, dateTo);\n };\n return SingletimeDirective;\n }());\n angular.module('QMC.Udf').component('qmUdfSingletime', {\n templateUrl: 'UserDefinedFields/Singletime',\n controller: ['$scope', '$qui', 'QmcUdfService', 'QmcLanguageService', 'QmcPermissionService', SingletimeDirective],\n controllerAs: 'vm',\n bindings: {\n reference: '=',\n definition: '=',\n disabled: '=?'\n }\n });\n })(Udf = QMC.Udf || (QMC.Udf = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Udf;\n (function (Udf) {\n var TabDirective = /** @class */ (function () {\n function TabDirective(scope, $qui, udfService, lng, $timeout) {\n var _this = this;\n this.scope = scope;\n this.$qui = $qui;\n this.udfService = udfService;\n this.lng = lng;\n this.$timeout = $timeout;\n this.id = '_' + Math.random().toString(36).substring(2, 11);\n this.saveFunctions = {};\n this.permissions = {\n view: false,\n new: false,\n modify: false,\n delete: false\n };\n this.tabs = [];\n this.touched = [];\n this.valid = [];\n this.$postLink = function () {\n if (!_this.reference || !_this.definition) {\n console.warn('UDF: reference or defintion not set!', _this.reference, _this.definition);\n return;\n }\n _this.events();\n _this.init();\n _this.saveAll = function (showNotification) {\n if (showNotification === void 0) { showNotification = true; }\n var promises = [];\n for (var key in _this.saveFunctions) {\n promises.push(_this.saveFunctions[key](false));\n }\n ;\n return new Promise(function (resolve, reject) {\n Promise.all(promises).then(function (saveResults) {\n if (saveResults.some(function (x) { return !x; }))\n _this.$qui.notify({\n message: _this.lng.translate(20002062, \"Es konnten nicht alle Einträge gespeichert werden!\"),\n title: _this.lng.translate(20002015, \"Fehler\"),\n icon: \"qm-icon-delete\",\n status: \"warning\",\n timer: 3500\n });\n else if (showNotification)\n _this.$qui.notify(_this.$qui.successNote);\n resolve();\n }).catch(reject);\n });\n };\n _this.scope.$watch('vm.touched', function () { _this.isTouched = _this.touched.reduce(function (prev, curr) { return prev || curr; }, false); }, true);\n _this.scope.$watch('vm.valid', function () { _this.isValid = _this.valid.reduce(function (prev, curr) { return prev && curr; }, true); }, true);\n };\n }\n TabDirective.prototype.events = function () {\n var _this = this;\n this.scope.$watch('vm.definition.objectType', function (newVal, oldVal) {\n if (newVal === oldVal)\n return;\n if (!newVal)\n _this.tabs = [];\n else\n _this.init();\n });\n };\n TabDirective.prototype.init = function () {\n var _this = this;\n this.loading = true;\n this.udfService.getTabs(this.definition.objectType).then(function (data) {\n _this.tabs = data;\n if (_this.tabs.length) {\n _this.$timeout(function () { return _this.$qui.waitForEl(\"#udf-tab-0-button\" + _this.id, function () { document.getElementById(\"udf-tab-0-button\" + _this.id).click(); }); });\n }\n }).catch(function (e) {\n console.error('Error getting tabs', e);\n _this.tabs = [];\n }).finally(function () { return _this.loading = false; });\n };\n return TabDirective;\n }());\n angular.module('QMC.Udf').component('qmUdfTab', {\n templateUrl: 'UserDefinedFields/Tab',\n controller: ['$scope', '$qui', 'QmcUdfService', 'QmcLanguageService', '$timeout', TabDirective],\n controllerAs: 'vm',\n bindings: {\n reference: '=',\n definition: '=',\n timeframe: '=?',\n permissionObjectType: '=?',\n saveAll: '=?',\n hideSaveButton: '=?',\n isTouched: '=?',\n isValid: '=?',\n disabled: '=?'\n }\n });\n })(Udf = QMC.Udf || (QMC.Udf = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Udf;\n (function (Udf) {\n var TabSingletimeDirective = /** @class */ (function () {\n function TabSingletimeDirective(scope, $qui, udfService, lng, permissionService, $timeout) {\n var _this = this;\n this.scope = scope;\n this.$qui = $qui;\n this.udfService = udfService;\n this.lng = lng;\n this.permissionService = permissionService;\n this.$timeout = $timeout;\n this.permissions = {\n view: false,\n new: false,\n modify: false,\n delete: false\n };\n this.id = '_' + Math.random().toString(36).substring(2, 11);\n this.ui = new Udf.UdfUi(this.lng);\n this.timeframeForm = {\n state: 'new',\n validation: {\n isLoading: false,\n warnings: [],\n errors: []\n }\n };\n this.promptOptions = {\n title: this.lng.translate(20036006, 'Einzelzeitraum'),\n yesNo: true,\n icon: \"qm-icon-form\",\n text: this.lng.translate(20000290, \"Wollen Sie den Eintrag wirklich löschen?\")\n };\n this.$postLink = function () {\n if (!_this.reference || !_this.definition) {\n console.warn('UDF: reference or defintion not set!', _this.reference, _this.definition);\n return;\n }\n _this.permissionService.getPermissionsByObjectTypes([_this.definition.objectType]).then(function (data) {\n _this.permissions = data[0];\n _this.events();\n _this.init();\n }).catch(function (e) {\n console.error('Error loading udf permission', e);\n _this.loading = false;\n });\n };\n }\n TabSingletimeDirective.prototype.events = function () {\n var _this = this;\n this.scope.$watch('vm.timeframeForm.form', function (newVal, oldVal) {\n if (JSON.stringify(newVal) === JSON.stringify(oldVal))\n return;\n _this.timeframeForm.validation = {\n isLoading: true,\n warnings: [],\n errors: []\n };\n _this.udfService.valiadateTimeframe(_this.definition.objectType, _this.timeframeForm.form).then(function (data) {\n _this.timeframeForm.validation.errors = data.errors;\n _this.timeframeForm.validation.warnings = data.warnings;\n }).catch(function (e) {\n console.error('Error validating udf-timeframe', e);\n _this.timeframeForm.validation.errors = [_this.lng.translate(21003023, 'Der Datensatz konnte nicht erfolgreich validiert werden.')];\n }).finally(function () { return _this.timeframeForm.validation.isLoading = false; });\n }, true);\n };\n TabSingletimeDirective.prototype.init = function () {\n this.getUdfData();\n };\n TabSingletimeDirective.prototype.getUdfData = function () {\n var _this = this;\n this.loading = true;\n this.udfService.getUserDefinedField(this.reference.objectType, this.reference.id, this.definition.objectType, this.definition.id, null, false).then(function (data) {\n data.forEach(function (x) {\n if (x.dateFrom)\n x.dateFrom = _this.$qui.createDateFromString(x.dateFrom);\n if (x.dateTo)\n x.dateTo = _this.$qui.createDateFromString(x.dateTo);\n });\n _this.udfs = data;\n }).finally(function () {\n _this.loading = false;\n });\n };\n TabSingletimeDirective.prototype.addSingletime = function () {\n this.timeframeForm.form = {\n id: null,\n objectId: null,\n dateFrom: new Date(),\n referenceId: this.reference.id\n };\n this.timeframeForm.state = 'new';\n $(\"#tabTimeframeModal-\" + this.id).modal('show');\n this.$qui.functionWaiter(\"ui.createForm\", this);\n };\n TabSingletimeDirective.prototype.createTimeframe = function () {\n var _this = this;\n this.loading = true;\n this.udfService.createTabSingletime(this.reference.objectType, this.reference.id, this.definition.objectType, this.definition.id, { dateFrom: this.timeframeForm.form.dateFrom, dateTo: this.timeframeForm.form.dateTo }).then(function () {\n _this.getUdfData();\n _this.$qui.notify(_this.$qui.successNote);\n }).catch(function (e) {\n console.error('Error creating singletime', e);\n _this.loading = false;\n _this.init();\n });\n };\n TabSingletimeDirective.prototype.deleteSingletime = function (udf) {\n var _this = this;\n this.promptOptions.itemText = this.createDateString(udf.dateFrom, udf.dateTo);\n QMC.Common.Utilities.confirm(this.promptOptions, function (data) {\n if (!data)\n return;\n _this.loading = true;\n _this.udfService.deleteTabSingletime(_this.reference.objectType, _this.reference.id, _this.definition.objectType, _this.definition.id, udf.timeFrameId).finally(function () { return _this.init(); });\n $(\"#tab-singletime-form-modal-\" + _this.id).modal('hide');\n }, \"#udf-tab-singletime-delete-prompt-\" + this.id);\n };\n TabSingletimeDirective.prototype.openSingletime = function (udf) {\n var _this = this;\n $(\"#tab-singletime-form-modal-\" + this.id).modal('show');\n this.selectedUdf = undefined;\n this.$timeout(function () {\n _this.selectedUdf = udf;\n });\n this.timeframeForm.form = {\n dateFrom: udf.dateFrom,\n dateTo: udf.dateTo,\n referenceId: this.reference.id,\n id: null,\n objectId: null\n };\n };\n TabSingletimeDirective.prototype.createDateString = function (dateFrom, dateTo) {\n return this.ui.createDateString(dateFrom, dateTo);\n };\n TabSingletimeDirective.prototype.save = function (showNotification) {\n if (showNotification === void 0) { showNotification = true; }\n this.loading = true;\n this.saveTabs(showNotification);\n $(\"#tab-singletime-form-modal-\" + this.id).modal('hide');\n this.init();\n };\n return TabSingletimeDirective;\n }());\n angular.module('QMC.Udf').component('qmUdfTabSingletime', {\n templateUrl: 'UserDefinedFields/Tab_Singletime',\n controller: ['$scope', '$qui', 'QmcUdfService', 'QmcLanguageService', 'QmcPermissionService', '$timeout', TabSingletimeDirective],\n controllerAs: 'vm',\n bindings: {\n reference: '=',\n definition: '=',\n save: '=',\n disabled: '=?'\n }\n });\n })(Udf = QMC.Udf || (QMC.Udf = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Udf;\n (function (Udf) {\n var TabTimeframeDirective = /** @class */ (function () {\n function TabTimeframeDirective(scope, $qui, udfService, lng) {\n var _this = this;\n this.scope = scope;\n this.$qui = $qui;\n this.udfService = udfService;\n this.lng = lng;\n this.id = '_' + Math.random().toString(36).substring(2, 11);\n this.timeframes = [];\n this.timeframesMap = [];\n this.timeframeForm = { state: 'new' };\n this.promptOptions = {\n title: this.lng.translate(20036003, 'Zeitraum'),\n yesNo: true,\n icon: \"qm-icon-form\",\n text: this.lng.translate(20000290, \"Wollen Sie den Eintrag wirklich löschen?\")\n };\n this.timeframeValidation = {\n isLoading: false,\n errors: [],\n warnings: []\n };\n this.ui = new Udf.UdfUi(this.lng);\n this.$postLink = function () {\n if (!_this.reference || !_this.definition) {\n console.warn('UDF: reference or defintion not set!', _this.reference, _this.definition);\n return;\n }\n _this.loading = true;\n _this.events();\n _this.init();\n };\n }\n TabTimeframeDirective.prototype.init = function () {\n var _this = this;\n this.loading = true;\n this.udfService.getTimeframes(this.definition.objectType, this.reference.id).then(function (data) {\n var _a;\n // sort timeframes by date and crete an appropriate object for the select\n data.forEach(function (x) {\n x.dateFrom = _this.$qui.createDateFromString(x.dateFrom);\n if (x.dateTo)\n x.dateTo = _this.$qui.createDateFromString(x.dateTo);\n });\n _this.timeframes = data;\n _this.timeframesMap = data.sort(function (a, b) { return b.dateFrom.getTime() - a.dateFrom.getTime(); }).map(function (x) { return ({ text: _this.ui.createDateString(x.dateFrom, x.dateTo), value: x.objectId }); });\n //if current timeframeId is not in the list of timeframes, select the first (most recent) one\n if (!_this.timeframesMap.some(function (x) { return x.value === _this.timeframeId; }))\n _this.timeframeIdSelect = (_a = _this.timeframesMap[0]) === null || _a === void 0 ? void 0 : _a.value;\n }).finally(function () {\n _this.loading = false;\n });\n };\n TabTimeframeDirective.prototype.events = function () {\n var _this = this;\n this.scope.$watch('vm.timeframeIdSelect', function (newVal, oldVal) {\n if (JSON.stringify(newVal) === JSON.stringify(oldVal))\n return;\n var action = function () {\n _this.timeframeId = newVal;\n };\n if (!oldVal || !_this.isTouched || !_this.hideSaveButton)\n action();\n else if (!_this.isValid) {\n _this.promptOptions.itemText = '';\n _this.promptOptions.text = _this.lng.translate(20002063, \"Die eingegebenen Daten sind nicht valide und können nicht gespeichert werden. Möchten Sie die Eingaben anpassen?\");\n QMC.Common.Utilities.confirm(_this.promptOptions, function (data) {\n if (!data)\n action();\n else\n _this.timeframeIdSelect = oldVal;\n $(\"#udf-tab-timeframe-prompt-\" + _this.id).modal('hide');\n }, \"#udf-tab-timeframe-prompt-\" + _this.id, true);\n }\n else {\n _this.promptOptions.itemText = '';\n _this.promptOptions.text = _this.lng.translate(20002064, \"Es gibt nicht gespeicherte Änderungen. Möchten Sie diese vor dem Zeitraumwechsel speichern?\");\n QMC.Common.Utilities.confirm(_this.promptOptions, function (data) {\n if (data) {\n _this.save().then(action);\n }\n else {\n action();\n }\n }, \"#udf-tab-timeframe-prompt-\" + _this.id);\n }\n });\n this.scope.$watch('vm.timeframeForm.form', function (newVal, oldVal) {\n if (JSON.stringify(newVal) === JSON.stringify(oldVal))\n return;\n _this.timeframeValidation = {\n isLoading: true,\n warnings: [],\n errors: []\n };\n _this.udfService.valiadateTimeframe(_this.definition.objectType, _this.timeframeForm.form).then(function (data) {\n _this.timeframeValidation.errors = data.errors;\n _this.timeframeValidation.warnings = data.warnings;\n }).catch(function (e) {\n console.error('Error validating udf-timeframe', e);\n _this.timeframeValidation.errors = [_this.lng.translate(21003023, 'Der Datensatz konnte nicht erfolgreich validiert werden.')];\n }).finally(function () { return _this.timeframeValidation.isLoading = false; });\n }, true);\n };\n TabTimeframeDirective.prototype.addTimeframe = function () {\n this.timeframeForm.form = {\n id: null,\n objectId: null,\n dateFrom: new Date(),\n referenceId: this.reference.id\n };\n this.timeframeForm.state = 'new';\n $(\"#timeframeModal_\" + this.id).modal('show');\n this.$qui.functionWaiter(\"ui.createForm\", this);\n };\n TabTimeframeDirective.prototype.openTimeframe = function (id) {\n this.timeframeForm.form = this.timeframes.find(function (x) { return x.objectId === id; });\n this.timeframeForm.state = 'edit';\n $(\"#timeframeModal_\" + this.id).modal('show');\n this.$qui.functionWaiter(\"ui.createForm\", this);\n };\n TabTimeframeDirective.prototype.deleteTimeframe = function (id) {\n var _this = this;\n var item = this.timeframesMap.find(function (x) { return x.value === id; });\n if (!item)\n return;\n this.promptOptions.itemText = item.text;\n this.promptOptions.text = this.lng.translate(20000290, \"Wollen Sie den Eintrag wirklich löschen?\");\n QMC.Common.Utilities.confirm(this.promptOptions, function (data) {\n if (!data)\n return;\n _this.loading = true;\n _this.udfService.deleteTimeframe(_this.definition.objectType, id, _this.reference.id).catch(function (e) {\n console.error('Error deleting timeframe', e);\n }).finally(function () {\n _this.init();\n });\n }, \"#udf-tab-timeframe-prompt-\" + this.id);\n };\n TabTimeframeDirective.prototype.createTimeframe = function (form) {\n var _this = this;\n this.udfService.createTimeframe(this.definition.objectType, form).then(function (data) { return _this.timeframeIdSelect = data.createdObjectId; }).then(function () {\n _this.$qui.notify(_this.$qui.successNote);\n }).finally(function () {\n _this.init();\n });\n };\n TabTimeframeDirective.prototype.updateTimeframe = function (form) {\n var _this = this;\n this.udfService.updateTimeframe(this.definition.objectType, form.objectId, form).then(function () {\n // workarround to update select components display\n var tempId = _this.timeframeId;\n _this.timeframeId = undefined;\n _this.$qui.scopeApply(_this.scope);\n _this.$qui.notify(_this.$qui.successNote);\n setTimeout(function () { return _this.timeframeId = tempId; }, 250);\n }).finally(function () {\n _this.init();\n });\n };\n return TabTimeframeDirective;\n }());\n angular.module('QMC.Udf').component('qmUdfTabTimeframe', {\n templateUrl: 'UserDefinedFields/Tab_Timeframe',\n controller: ['$scope', '$qui', 'QmcUdfService', 'QmcLanguageService', TabTimeframeDirective],\n controllerAs: 'vm',\n bindings: {\n reference: '=',\n definition: '=',\n save: '=?',\n hideSaveButton: '=?',\n isTouched: '=?',\n isValid: '=?',\n disabled: '=?'\n }\n });\n })(Udf = QMC.Udf || (QMC.Udf = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Udf;\n (function (Udf) {\n var TimeframeDirective = /** @class */ (function () {\n function TimeframeDirective(scope, $qui, udfService, lng, permissionService) {\n var _this = this;\n this.scope = scope;\n this.$qui = $qui;\n this.udfService = udfService;\n this.lng = lng;\n this.permissionService = permissionService;\n this.id = '_' + Math.random().toString(36).substring(2, 11);\n this.permissions = {\n view: false,\n new: false,\n modify: false,\n delete: false\n };\n this.timeframes = [];\n this.timeframesMap = [];\n this.timeframeForm = { state: 'new' };\n this.promptOptions = {\n title: this.lng.translate(20036003, 'Zeitraum'),\n yesNo: true,\n icon: \"qm-icon-form\",\n text: this.lng.translate(20000290, \"Wollen Sie den Eintrag wirklich löschen?\")\n };\n this.timeframeValidation = {\n isLoading: false,\n errors: [],\n warnings: []\n };\n this.ui = new Udf.UdfUi(this.lng);\n this.$postLink = function () {\n if (!_this.reference || !_this.definition) {\n console.warn('UDF: reference or defintion not set!', _this.reference, _this.definition);\n return;\n }\n _this.loading = true;\n _this.permissionService.getPermissionsByObjectTypes([_this.definition.objectType]).then(function (data) {\n _this.permissions = data[0];\n _this.events();\n _this.init();\n _this.save = function (showNotification, timeframeId) {\n if (showNotification === void 0) { showNotification = true; }\n if (!_this.udf)\n return;\n var saveObject = {\n udfId: _this.udf.udfId,\n dateFrom: _this.udf.dateFrom,\n dateTo: _this.udf.dateTo,\n values: {}\n };\n _this.udf.fields.forEach(function (field) {\n saveObject.values[field.objectId] = field.values;\n });\n _this.loading = true;\n return _this.udfService.updateUserDefinedField(_this.reference.objectType, _this.reference.id, _this.definition.objectType, _this.definition.id, saveObject, timeframeId !== null && timeframeId !== void 0 ? timeframeId : _this.timeframeId).then(function () {\n if (showNotification)\n _this.$qui.notify(_this.$qui.successNote);\n return true;\n }).catch(function (e) {\n console.error('Error saving udf', e);\n return false;\n }).finally(function () {\n _this.getUdfData();\n });\n };\n }).catch(function (e) {\n console.error('Error loading udf', e);\n _this.loading = false;\n });\n };\n }\n TimeframeDirective.prototype.init = function () {\n var _this = this;\n this.loading = true;\n this.udfService.getTimeframes(this.definition.objectType).then(function (data) {\n var _a;\n // sort timeframes by date and crete an appropriate object for the select\n data.forEach(function (x) {\n x.dateFrom = _this.$qui.createDateFromString(x.dateFrom);\n if (x.dateTo)\n x.dateTo = _this.$qui.createDateFromString(x.dateTo);\n });\n _this.timeframes = data;\n _this.timeframesMap = data.sort(function (a, b) { return b.dateFrom.getTime() - a.dateFrom.getTime(); }).map(function (x) { return ({ text: _this.ui.createDateString(x.dateFrom, x.dateTo), value: x.objectId }); });\n //if current timeframeId is not in the list of timeframes, select the first (most recent) one\n if (!_this.timeframesMap.some(function (x) { return x.value === _this.timeframeId; }))\n _this.timeframeId = (_a = _this.timeframesMap[0]) === null || _a === void 0 ? void 0 : _a.value;\n if (!_this.timeframeId || _this.timeframeId === QMC.Common.Constants.GUID_EMPTY)\n _this.isValid = true;\n }).finally(function () {\n _this.loading = false;\n });\n this.$qui.functionWaiter(\"ui.createForm\", this);\n };\n TimeframeDirective.prototype.events = function () {\n var _this = this;\n this.scope.$watch('vm.timeframeId', function (newVal, oldVal) {\n if (JSON.stringify(newVal) === JSON.stringify(oldVal))\n return;\n var action = function () {\n if (_this.timeframeId)\n _this.getUdfData();\n else\n _this.udf = undefined;\n };\n if (!oldVal || !_this.isTouched || !_this.hideSaveButton)\n action();\n else if (!_this.isValid) {\n _this.promptOptions.itemText = '';\n _this.promptOptions.text = _this.lng.translate(20002063, \"Die eingegebenen Daten sind nicht valide und können nicht gespeichert werden. Möchten Sie die Eingaben anpassen?\");\n QMC.Common.Utilities.confirm(_this.promptOptions, function (data) {\n if (!data)\n action();\n else\n _this.timeframeId = oldVal;\n $(\"#udf-timeframe-prompt-\" + _this.id).modal('hide');\n }, \"#udf-timeframe-prompt-\" + _this.id, true);\n }\n else {\n _this.promptOptions.itemText = '';\n _this.promptOptions.text = _this.lng.translate(20002064, \"Es gibt nicht gespeicherte Änderungen. Möchten Sie diese vor dem Zeitraumwechsel speichern?\");\n QMC.Common.Utilities.confirm(_this.promptOptions, function (data) {\n if (data) {\n _this.save(true, oldVal).then(action);\n }\n else {\n action();\n }\n }, \"#udf-timeframe-prompt-\" + _this.id);\n }\n });\n this.scope.$watch('vm.timeframeForm.form', function (newVal, oldVal) {\n if (JSON.stringify(newVal) === JSON.stringify(oldVal))\n return;\n _this.timeframeValidation = {\n isLoading: true,\n warnings: [],\n errors: []\n };\n _this.udfService.valiadateTimeframe(_this.definition.objectType, _this.timeframeForm.form).then(function (data) {\n _this.timeframeValidation.errors = data.errors;\n _this.timeframeValidation.warnings = data.warnings;\n }).catch(function (e) {\n console.error('Error validating udf-timeframe', e);\n _this.timeframeValidation.errors = [_this.lng.translate(21003023, 'Der Datensatz konnte nicht erfolgreich validiert werden.')];\n }).finally(function () { return _this.timeframeValidation.isLoading = false; });\n }, true);\n };\n TimeframeDirective.prototype.getUdfData = function () {\n var _this = this;\n this.loading = true;\n this.udfService.getUserDefinedField(this.reference.objectType, this.reference.id, this.definition.objectType, this.definition.id, this.timeframeId).then(function (data) {\n _this.udf = data[0];\n }).finally(function () {\n _this.loading = false;\n });\n };\n TimeframeDirective.prototype.addTimeframe = function () {\n this.timeframeForm.form = {\n id: null,\n objectId: null,\n dateFrom: new Date()\n };\n this.timeframeForm.state = 'new';\n $(\"#timeframeModal_\" + this.id).modal('show');\n this.$qui.functionWaiter(\"ui.createForm\", this);\n };\n TimeframeDirective.prototype.openTimeframe = function (id) {\n this.timeframeForm.form = this.timeframes.find(function (x) { return x.objectId === id; });\n this.timeframeForm.state = 'edit';\n $(\"#timeframeModal_\" + this.id).modal('show');\n this.$qui.functionWaiter(\"ui.createForm\", this);\n };\n TimeframeDirective.prototype.deleteTimeframe = function (id) {\n var _this = this;\n var item = this.timeframesMap.find(function (x) { return x.value === id; });\n if (!item)\n return;\n this.promptOptions.itemText = item.text;\n this.promptOptions.text = this.lng.translate(20000290, \"Wollen Sie den Eintrag wirklich löschen?\");\n QMC.Common.Utilities.confirm(this.promptOptions, function (data) {\n if (!data)\n return;\n _this.loading = true;\n _this.udfService.deleteTimeframe(_this.definition.objectType, id).catch(function (e) {\n console.error('Error deleting timeframe', e);\n }).finally(function () {\n _this.init();\n });\n }, \"#udf-timeframe-prompt-\" + this.id);\n };\n TimeframeDirective.prototype.createTimeframe = function (form) {\n var _this = this;\n this.udfService.createTimeframe(this.definition.objectType, form).then(function (data) { return _this.timeframeId = data.createdObjectId; }).then(function () {\n _this.$qui.notify(_this.$qui.successNote);\n }).finally(function () {\n _this.init();\n });\n };\n TimeframeDirective.prototype.updateTimeframe = function (form) {\n var _this = this;\n this.udfService.updateTimeframe(this.definition.objectType, form.objectId, form).then(function () {\n // workarround to update select components display\n var tempId = _this.timeframeId;\n _this.timeframeId = undefined;\n _this.$qui.notify(_this.$qui.successNote);\n setTimeout(function () { return _this.timeframeId = tempId; }, 250);\n }).finally(function () {\n _this.init();\n });\n };\n return TimeframeDirective;\n }());\n angular.module('QMC.Udf').component('qmUdfTimeframe', {\n templateUrl: 'UserDefinedFields/Timeframe',\n controller: ['$scope', '$qui', 'QmcUdfService', 'QmcLanguageService', 'QmcPermissionService', TimeframeDirective],\n controllerAs: 'vm',\n bindings: {\n reference: '=',\n definition: '=',\n save: '=?',\n hideSaveButton: '=?',\n isTouched: '=?',\n isValid: '=?',\n disabled: '=?'\n }\n });\n })(Udf = QMC.Udf || (QMC.Udf = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Udf;\n (function (Udf) {\n var ValueDisplayDirective = /** @class */ (function () {\n function ValueDisplayDirective(scope, $qui, lng, udfService) {\n var _this = this;\n this.scope = scope;\n this.$qui = $qui;\n this.lng = lng;\n this.udfService = udfService;\n this.value = '';\n this.wv = [];\n this.$postLink = function () {\n _this.scope.$watch('vm.field.wvId', function () {\n if (_this.field.fieldType === 40 || _this.field.fieldType === 60) { //wv\n _this.udfService.getWv(_this.field.wvId).then(function (data) {\n return _this.wv = data.map(function (x) { return ({ text: x.name, value: x.id }); });\n }).catch(function () { return _this.wv = []; }).finally(function () { return _this.value = _this.getValueString(); });\n }\n if (_this.field.fieldType === 50 || _this.field.fieldType === 70) { //ds\n _this.udfService.getDs(_this.field.wvId).then(function (data) {\n return _this.wv = data.map(function (x) { return ({ text: x.caption, value: x.id }); });\n }).catch(function () { return _this.wv = []; }).finally(function () { return _this.value = _this.getValueString(); });\n }\n });\n _this.scope.$watch('vm.field.values', function (newVal, oldVal) {\n if (JSON.stringify(newVal) === JSON.stringify(oldVal))\n return;\n _this.getValue();\n }, true);\n _this.getValue();\n };\n }\n ValueDisplayDirective.prototype.getValue = function () {\n var _this = this;\n this.value = this.getValueString();\n // for media display the names of the files\n if ([80, 81, 82].includes(this.field.fieldType)) {\n this.value = '';\n if (this.field.values[0]) {\n this.udfService.getUserDefinedFieldMedia(this.field.values[0]).then(function (data) {\n _this.value = data.map(function (x) { return x.caption; }).join(', ');\n });\n }\n }\n };\n ValueDisplayDirective.prototype.getValueString = function () {\n var _this = this;\n var result = '';\n switch (this.field.fieldType) {\n case 1: // decimal\n result = this.$qui.qmcRounding(this.field.values[0]);\n break;\n case 2: // bool\n result = this.field.values[0] ? '✔' : '';\n break;\n case 10: // date\n result = this.field.values[0] ? moment(this.field.values[0]).format('DD.MM.YYYY') : '';\n break;\n case 12: // datetime\n result = this.field.values[0] ? moment(this.field.values[0]).format('DD.MM.YYYY HH:mm') : '';\n break;\n case 15: // headline\n case 16: // seperator\n break;\n case 40: // WV\n case 60: // WV mutli\n case 50: // DS\n case 70: // DS multi\n var captions_1 = [];\n this.field.values.forEach(function (id) { var _a, _b; return captions_1.push((_b = (_a = _this.wv.find(function (x) { return x.value === id; })) === null || _a === void 0 ? void 0 : _a.text) !== null && _b !== void 0 ? _b : ''); });\n result = captions_1.join('; ');\n break;\n default:\n result = this.field.values[0];\n break;\n }\n return result;\n };\n return ValueDisplayDirective;\n }());\n angular.module('QMC.Udf').component('qmUdfValue', {\n controller: ['$scope', '$qui', 'QmcLanguageService', 'QmcUdfService', ValueDisplayDirective],\n controllerAs: 'vm',\n bindings: {\n field: '=',\n },\n template: '\\\r\n\t\t\t{{vm.field.caption}}\\\r\n\t\t\t{{vm.value}}\\\r\n\t\t',\n });\n })(Udf = QMC.Udf || (QMC.Udf = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Udf;\n (function (Udf) {\n var UserDefinedFieldContainerType;\n (function (UserDefinedFieldContainerType) {\n UserDefinedFieldContainerType[UserDefinedFieldContainerType[\"Unsupported\"] = -1] = \"Unsupported\";\n UserDefinedFieldContainerType[UserDefinedFieldContainerType[\"Standard\"] = 0] = \"Standard\";\n UserDefinedFieldContainerType[UserDefinedFieldContainerType[\"Timeframe\"] = 1] = \"Timeframe\";\n UserDefinedFieldContainerType[UserDefinedFieldContainerType[\"SingleTimeframe\"] = 2] = \"SingleTimeframe\";\n UserDefinedFieldContainerType[UserDefinedFieldContainerType[\"Tab\"] = 3] = \"Tab\";\n UserDefinedFieldContainerType[UserDefinedFieldContainerType[\"TabWithTimeFrame\"] = 4] = \"TabWithTimeFrame\";\n UserDefinedFieldContainerType[UserDefinedFieldContainerType[\"TabWithSingleTimeframe\"] = 5] = \"TabWithSingleTimeframe\";\n })(UserDefinedFieldContainerType || (UserDefinedFieldContainerType = {}));\n })(Udf = QMC.Udf || (QMC.Udf = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Udf;\n (function (Udf) {\n var QmcUdfService = /** @class */ (function (_super) {\n __extends(QmcUdfService, _super);\n function QmcUdfService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.cache = {\n wv: {},\n wvTimestamp: {},\n ds: {},\n dsTimestamp: {},\n container: {},\n containerTimestamp: {}\n };\n _this.modulePath = '/UserDefinedFields';\n return _this;\n }\n ///////////////// BASE /////////////////\n QmcUdfService.prototype.timestampExceedsThreshold = function (date, threshold) {\n var now = new Date();\n threshold = threshold !== null && threshold !== void 0 ? threshold : 5 * 60 * 1000; // 5min\n return (now.getTime() - date.getTime()) > threshold;\n };\n QmcUdfService.prototype.getWv = function (id) {\n var _this = this;\n var cache = this.cache.wv[id];\n if (cache) {\n var deferred_1 = this.$q.defer();\n if (cache === 'loading') {\n setTimeout(function () { return deferred_1.resolve(_this.getWv(id)); }, 100);\n return deferred_1.promise;\n }\n else if (!this.timestampExceedsThreshold(this.cache.wvTimestamp[id])) {\n deferred_1.resolve(cache);\n return deferred_1.promise;\n }\n }\n this.cache.wv[id] = 'loading';\n return _super.prototype.get.call(this, \"/WV/\" + id, {}, function (data) {\n data.forEach(function (x) {\n x.id = x.id.toLocaleLowerCase();\n x.objectId = x.objectId.toLocaleLowerCase();\n });\n _this.cache.wv[id] = data;\n _this.cache.wvTimestamp[id] = new Date();\n return data;\n });\n };\n QmcUdfService.prototype.getDs = function (id) {\n var _this = this;\n var cache = this.cache.ds[id];\n if (cache) {\n var deferred_2 = this.$q.defer();\n if (cache === 'loading') {\n setTimeout(function () { return deferred_2.resolve(_this.getDs(id)); }, 100);\n return deferred_2.promise;\n }\n else if (!this.timestampExceedsThreshold(this.cache.dsTimestamp[id])) {\n deferred_2.resolve(cache);\n return deferred_2.promise;\n }\n }\n this.cache.ds[id] = 'loading';\n return _super.prototype.get.call(this, \"/DataSource/\" + id, {}, function (data) {\n data.forEach(function (x) {\n x.id = x.id.toLocaleLowerCase();\n x.objectId = x.objectId.toLocaleLowerCase();\n });\n _this.cache.ds[id] = data;\n _this.cache.dsTimestamp[id] = new Date();\n return data;\n });\n };\n ///////////////// Standard /////////////////\n QmcUdfService.prototype.getUserDefinedFieldDefintion = function (definitionObjectType, definitionId) {\n return _super.prototype.get.call(this, \"/\" + this.modulePath + \"/\" + definitionObjectType + \"/\" + definitionId, {}, function (data) {\n return data;\n });\n };\n QmcUdfService.prototype.getUserDefinedFields = function (referenceObjectType) {\n var _this = this;\n var cache = this.cache.container[referenceObjectType];\n if (cache) {\n var deferred_3 = this.$q.defer();\n if (cache === 'loading') {\n setTimeout(function () { return deferred_3.resolve(_this.getUserDefinedFields(referenceObjectType)); }, 100);\n return deferred_3.promise;\n }\n // threshold is 1min\n else if (!this.timestampExceedsThreshold(this.cache.containerTimestamp[referenceObjectType], 60000)) {\n deferred_3.resolve(cache);\n return deferred_3.promise;\n }\n }\n this.cache.container[referenceObjectType] = 'loading';\n return _super.prototype.get.call(this, \"/\" + this.modulePath + \"/\" + referenceObjectType, {}, function (data) {\n _this.cache.container[referenceObjectType] = data;\n _this.cache.containerTimestamp[referenceObjectType] = new Date();\n return data;\n });\n };\n QmcUdfService.prototype.getUserDefinedField = function (referenceObjectType, referenceId, definitionObjectType, definitionId, timeframe, createDefaults) {\n return _super.prototype.get.call(this, \"/\" + this.modulePath + \"/\" + referenceObjectType + \"/\" + referenceId + \"/\" + definitionObjectType + \"/\" + definitionId, { timeframe: timeframe, createDefaults: createDefaults }, function (data) {\n return data;\n });\n };\n QmcUdfService.prototype.updateUserDefinedField = function (referenceObjectType, referenceId, definitionObjectType, definitionId, data, timeframe) {\n return _super.prototype.put.call(this, \"/\" + this.modulePath + \"/\" + referenceObjectType + \"/\" + referenceId + \"/\" + definitionObjectType + \"/\" + definitionId + \"?\" + (timeframe ? 'timeframe=' + timeframe : ''), data).then(function (data) {\n return data;\n });\n };\n ///////////////// TIMEFRAME /////////////////\n QmcUdfService.prototype.getTimeframes = function (definitionObjectType, referenceId) {\n return _super.prototype.get.call(this, \"/\" + this.modulePath + \"/Timeframe/\" + definitionObjectType, { referenceId: referenceId }, function (data) {\n return data;\n });\n };\n QmcUdfService.prototype.createTimeframe = function (definitionObjectType, data) {\n return _super.prototype.post.call(this, \"/\" + this.modulePath + \"/Timeframe/\" + definitionObjectType, data).then(function (data) {\n return data;\n });\n };\n QmcUdfService.prototype.updateTimeframe = function (definitionObjectType, timeframeId, data) {\n return _super.prototype.put.call(this, \"/\" + this.modulePath + \"/Timeframe/\" + definitionObjectType + \"/\" + timeframeId, data).then(function (data) {\n return data;\n });\n };\n QmcUdfService.prototype.deleteTimeframe = function (definitionObjectType, timeframeId, referenceId) {\n return _super.prototype.delete.call(this, \"/\" + this.modulePath + \"/Timeframe/\" + definitionObjectType + \"/\" + timeframeId + \"?referenceId=\" + referenceId).then(function (data) {\n return data;\n });\n };\n QmcUdfService.prototype.valiadateTimeframe = function (definitionObjectType, data) {\n return _super.prototype.post.call(this, \"/\" + this.modulePath + \"/Timeframe/Validation/\" + definitionObjectType, data).then(function (data) {\n return data;\n });\n };\n ///////////////// SINGLETIME /////////////////\n QmcUdfService.prototype.createSingletime = function (referenceObjectType, referenceId, definitionObjectType, definitionId, data) {\n return _super.prototype.post.call(this, \"/\" + this.modulePath + \"/Singletime/\" + referenceObjectType + \"/\" + referenceId + \"/\" + definitionObjectType + \"/\" + definitionId, data).then(function (data) {\n return data;\n });\n };\n QmcUdfService.prototype.deleteSingletime = function (referenceObjectType, referenceId, definitionObjectType, definitionId, singletimeId) {\n return _super.prototype.delete.call(this, \"/\" + this.modulePath + \"/Singletime/\" + referenceObjectType + \"/\" + referenceId + \"/\" + definitionObjectType + \"/\" + definitionId + \"/\" + singletimeId).then(function (data) {\n return data;\n });\n };\n QmcUdfService.prototype.createTabSingletime = function (referenceObjectType, referenceId, definitionObjectType, definitionId, data) {\n return _super.prototype.post.call(this, \"/\" + this.modulePath + \"/Singletime/Tabs/\" + referenceObjectType + \"/\" + referenceId + \"/\" + definitionObjectType + \"/\" + definitionId, data).then(function (data) {\n return data;\n });\n };\n QmcUdfService.prototype.deleteTabSingletime = function (referenceObjectType, referenceId, definitionObjectType, definitionId, singletimeId) {\n return _super.prototype.delete.call(this, \"/\" + this.modulePath + \"/Singletime/Tabs/\" + referenceObjectType + \"/\" + referenceId + \"/\" + definitionObjectType + \"/\" + definitionId + \"/\" + singletimeId).then(function (data) {\n return data;\n });\n };\n ///////////////// Tabs /////////////////\n QmcUdfService.prototype.getTabs = function (definitionObjectType) {\n return _super.prototype.get.call(this, \"/\" + this.modulePath + \"/Tabs/\" + definitionObjectType, {}, function (data) {\n return data;\n });\n };\n ///////////////// Media /////////////////\n QmcUdfService.prototype.getUserDefinedFieldMedia = function (mediaId) {\n return _super.prototype.get.call(this, \"/\" + this.modulePath + \"/Media/\" + mediaId, {}, function (data) {\n return data;\n });\n };\n QmcUdfService.prototype.postUserDefinedFieldMedia = function (data) {\n return _super.prototype.post.call(this, \"/\" + this.modulePath + \"/Media\", data).then(function (data) { return data; });\n };\n QmcUdfService = __decorate([\n QMC.Inject('$http', '$q'),\n QMC.Service('QMC.Udf', 'QmcUdfService')\n ], QmcUdfService);\n return QmcUdfService;\n }(QMC.Common.BaseService));\n Udf.QmcUdfService = QmcUdfService;\n })(Udf = QMC.Udf || (QMC.Udf = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Udf;\n (function (Udf) {\n /**\n * Stammdaten Detail UserInterface class\n *\n * @export\n * @class UserInterface\n * @extends {Common.UserInterface}\n */\n var UdfUi = /** @class */ (function (_super) {\n __extends(UdfUi, _super);\n function UdfUi(lng) {\n var _this = _super.call(this) || this;\n _this.lng = lng;\n /**\n * Client detail info form\n * @memberOf UserInterface\n */\n _this.timeframeForm = {\n form: [{\n label: {\n dateFrom: \"Datum von\",\n dateTo: \"Datum bis\"\n },\n type: \"DateRange\",\n model: {\n dateFrom: \"dateFrom\",\n dateTo: \"dateTo\"\n },\n lngTag: {\n dateFrom: 20000047,\n dateTo: 20000054\n },\n style: {\n class: \"col-xs-12\"\n },\n required: true,\n config: {\n displayDateTo: true,\n dateFromNotRequired: false\n }\n }],\n actions: {\n put: \"updateTimeframe\",\n post: \"createTimeframe\"\n }\n };\n return _this;\n }\n UdfUi.prototype.createDateString = function (dateFrom, dateTo) {\n var format = 'DD.MM.YYYY';\n if (dateFrom && dateTo)\n return moment(dateFrom).format(format) + ' - ' + moment(dateTo).format(format);\n else if (dateFrom && !dateTo)\n return this.lng.translate(20000124, 'Ab') + ' ' + moment(dateFrom).format(format);\n else if (!dateFrom && dateTo)\n return this.lng.translate(20000125, 'Bis') + ' ' + moment(dateTo).format(format);\n else\n return this.lng.translate(20000324, 'Unbestimmt');\n };\n return UdfUi;\n }(QMC.Common.UserInterface));\n Udf.UdfUi = UdfUi;\n })(Udf = QMC.Udf || (QMC.Udf = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Common;\n (function (Common) {\n /**\n * Stammdaten Detail UserInterface class\n *\n * @export\n * @class UserInterface\n * @extends {Common.UserInterface}\n */\n var DocumentDetailUI = /** @class */ (function (_super) {\n __extends(DocumentDetailUI, _super);\n function DocumentDetailUI() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\n * Client detail document table\n * @memberOf UserInterface\n */\n _this.attachedFilesTable = {\n \"table\": {\n \"Datum\": {\n \"label\": \"date\",\n \"dType\": \"Date\",\n \"lngTag\": \"20000045\"\n },\n \"Dateiname\": {\n \"label\": \"fileName\",\n \"dType\": \"string\",\n \"lngTag\": \"21006017\"\n },\n \"Dateigröße\": {\n \"label\": \"fileSize\",\n \"dType\": \"string\",\n \"lngTag\": \"21006018\"\n },\n \"Aktionen\": [{\n \"icon\": \"qm-icon-download grey\",\n \"click\": \"downloadFile\",\n \"openModal\": \"false\",\n \"label\": \"data\",\n \"dType\": \"Button\",\n \"tooltip\": \"Herunterladen\",\n \"lngTag\": \"21006014\",\n \"permission\": \"allowDownload\"\n }, {\n \"icon\": \"qm-icon-document_attachment green\",\n \"click\": \"previewDocument\",\n \"openModal\": \"false\",\n \"label\": \"data\",\n \"dType\": \"Button\",\n \"tooltip\": \"Vorschau\",\n \"lngTag\": \"20000091\",\n \"permission\": \"allowPreview\"\n }, {\n \"icon\": \"qm-icon-garbage_can red\",\n \"click\": \"deleteFileFromFolder\",\n \"label\": \"data\",\n \"dType\": \"Button\",\n \"tooltip\": \"Löschen\",\n \"lngTag\": \"20000002\",\n \"permission\": \"deleteFile\"\n }, {\n \"icon\": \"qm-icon-arrow_into orange\",\n \"click\": \"openReference\",\n \"label\": \"data\",\n \"dType\": \"Button\",\n \"tooltip\": \"Referenz-Datensatz öffnen\",\n \"lngTag\": \"21006030\",\n \"events\": {\n \"hide\": \"!stateLink\",\n }\n }]\n },\n \"card\": {\n \"avatar\": {\n \"icon\": \"qm-icon-document_attachment\"\n },\n \"text\": {\n \"label\": \"fileName\",\n \"dType\": \"string\"\n },\n \"subtext\": [\n {\n \"label\": \"date\",\n \"dType\": \"Date\"\n }\n ],\n \"buttons\": [\n {\n \"icon\": \"qm-icon-download grey\",\n \"click\": \"downloadFile\",\n \"openModal\": \"false\",\n \"label\": \"data\",\n \"dType\": \"Button\",\n \"tooltip\": \"Herunterladen\",\n \"lngTag\": \"21006014\",\n \"permission\": \"allowDownload\"\n }, {\n \"icon\": \"qm-icon-document_attachment green\",\n \"click\": \"previewDocument\",\n \"openModal\": \"false\",\n \"label\": \"data\",\n \"dType\": \"Button\",\n \"tooltip\": \"Vorschau\",\n \"lngTag\": \"20000091\",\n \"permission\": \"view\"\n }, {\n \"icon\": \"qm-icon-garbage_can red\",\n \"click\": \"deleteFileFromFolder\",\n \"label\": \"data\",\n \"dType\": \"Button\",\n \"tooltip\": \"Löschen\",\n \"lngTag\": \"20000002\",\n \"permission\": \"delete\"\n },\n {\n \"icon\": \"qm-icon-arrow_into orange\",\n \"click\": \"openReference\",\n \"label\": \"data\",\n \"dType\": \"Button\",\n \"tooltip\": \"Referenz-Datensatz öffnen\",\n \"lngTag\": \"21006030\",\n \"events\": {\n \"hide\": \"!stateLink\",\n }\n }\n ]\n },\n \"data\": null,\n };\n return _this;\n }\n return DocumentDetailUI;\n }(Common.UserInterface));\n Common.DocumentDetailUI = DocumentDetailUI;\n })(Common = QMC.Common || (QMC.Common = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Documents;\n (function (Documents) {\n var DocumentFolderStructureDirective = /** @class */ (function () {\n function DocumentFolderStructureDirective($qui, lng, permissionService, stammdatenService, userService, $state, $timeout) {\n var _this = this;\n this.$qui = $qui;\n this.lng = lng;\n this.permissionService = permissionService;\n this.stammdatenService = stammdatenService;\n this.userService = userService;\n this.$state = $state;\n this.$timeout = $timeout;\n this.restrict = 'E';\n this.templateUrl = './Documents/DocumentFolderStructure';\n this.replace = true;\n this.scope = {\n qmParent: '=',\n qmObjectType: '=',\n qmParentObjectType: '=',\n qmCreate: '=',\n qmPersonMode: '=?'\n };\n this.link = function (scope) {\n scope.vm = scope;\n scope.id = Math.random().toString(36).substring(2, 11);\n scope.idDeletePrompt = 'promptDeleteDocumentDirective_' + scope.id;\n scope.showFolderStructure = true;\n scope.loading = {\n folder: false,\n permission: false\n };\n scope.wv = {\n documentTypeWvList: [],\n mainCategoryWvList: [],\n subCategoryWvList: []\n };\n scope.fileObject = {\n id: null,\n objectId: null,\n base64String: null,\n date: null,\n documentId: null,\n fileName: null,\n };\n scope.ui = new QMC.Common.DocumentDetailUI();\n scope.firstLoad = true;\n scope.directiveCreated = false;\n scope.fileChoser = {\n files: []\n };\n scope.$watch('qmParent', function (newVal, oldVal) {\n if (newVal === oldVal && scope.directiveCreated)\n return;\n scope.directiveCreated = false;\n scope.qmCreate();\n });\n scope.$watch('qmObjectType', function (newVal, oldVal) {\n if (newVal === oldVal || !newVal)\n return;\n scope.directiveCreated = false;\n scope.qmCreate();\n });\n scope.qmCreate = function () {\n var createdFor = {\n objectType: scope.qmObjectType,\n parent: scope.qmParent\n };\n if (!scope.qmObjectType || JSON.stringify(scope.createdFor) === JSON.stringify(createdFor))\n return;\n scope.createdFor = createdFor;\n scope.initForm();\n scope.loading.permission = true;\n _this.permissionService.getPermissionsByObjectTypes([scope.qmObjectType, 920002, 905002, 905004]).then(function (data) {\n var _a, _b;\n //920002 - Web Dokumente herunterladen\n //905002 - Dokumentenverwaltung - Ordner\n scope.moduleAccess = ((_a = data[0]) === null || _a === void 0 ? void 0 : _a.moduleAccess) && ((_b = data[0]) === null || _b === void 0 ? void 0 : _b.view);\n scope.new = data[0].new && data[2].new;\n scope.modify = data[0].modify && data[2].modify;\n scope.delete = data[0].delete && data[2].delete;\n scope.print = data[0].print;\n scope.webAllowDownload = data[1].openFile;\n scope.newFolder = scope.new;\n scope.showMappings = data[3].view;\n scope.foldersTreeList = [];\n scope.foldersTreeListHierarchyEdit = [];\n scope.lastFolderSelected = undefined;\n scope.loading.folder = false;\n scope.ui.attachedFilesTable.data = [];\n _this.$qui.functionWaiter(\"ui.createTable\", scope);\n if (scope.qmParent === null || scope.qmParent === undefined) {\n return;\n }\n _this.$qui.getTableAutoload(_this.userService).then(function (ltd) {\n scope.shouldLoadTableData = ltd;\n if (scope.shouldLoadTableData) {\n scope.getData();\n }\n });\n scope.$watch('form.mainCategoryId', function (newVal, oldVal) {\n if (newVal != oldVal) {\n scope.getSubCategoryList();\n }\n }, true);\n scope.selectedFolderHierarchyId = QMC.Common.Constants.GUID_EMPTY;\n scope.selectedFolderId = QMC.Common.Constants.GUID_EMPTY;\n scope.hierachyTitle = _this.lng.translate(21006021, \"Kein übergeordneter Ordner\");\n $('#edit-form-document-' + scope.qmParent + scope.id).on('hidden.bs.modal', function () {\n scope.hierachyTitle = _this.lng.translate(21006021, \"Kein übergeordneter Ordner\");\n });\n scope.$watch('fileChoser.files', function () {\n if (scope.fileChoser.files && scope.fileChoser.files.length > 0) {\n scope.fileObject.fileName = scope.fileChoser.files[0].name;\n scope.fileObject.base64String = scope.fileChoser.files[0].base64;\n scope.postFileToFolder(scope.selectedFolderId);\n scope.fileChoser.files = [];\n }\n }, true);\n scope.loading.permission = false;\n _this.$qui.scopeApply(scope);\n if (scope.showMappings) {\n _this.stammdatenService.getDocumentMappingForObjecttype(scope.qmObjectType).then(function (data) {\n scope.mappings = data;\n });\n }\n });\n scope.directiveCreated = true;\n };\n //setValidationBack - in some cases (like for Tasks) the directive (with its Dialogs and so on) is included in another Dialog/Form that has to validate if the form.$invalid is false before\n //allowing the user to save. since the folder structure form has also its own internal validation, the main dialog/form finds that the folder structure form is not valid and set $invalid to true also for it\n //the user is not allowed to save so this trick is \"pausing\" the folder structure form validation on creating the directive and resets the validation back when the user wants to create or edit a folder\n scope.initForm = function (setValidationBack) {\n if (setValidationBack === void 0) { setValidationBack = false; }\n scope.formStateDocuDirective = \"new\";\n scope.documentListItem = {\n id: scope.qmParent,\n objectId: scope.qmParent,\n version: null,\n date: null,\n title: null,\n subTitle: null,\n isPrivate: false,\n mainCategory: null,\n parentObjectType: scope.qmParentObjectType,\n objectType: scope.qmObjectType\n };\n scope.document = {\n id: scope.qmParent,\n objectId: scope.qmParent,\n version: null,\n title: null,\n subTitle: null,\n comment: \"\",\n isPrivate: false,\n documentTypeId: null,\n attachedDocuments: [],\n parentObjectType: scope.qmParentObjectType,\n objectType: scope.qmObjectType\n };\n scope.form = {\n id: scope.qmParent,\n parentObjectId: null,\n fkParentHierarchy: QMC.Common.Constants.GUID_EMPTY,\n documentTypeId: setValidationBack ? null : QMC.Common.Constants.GUID_EMPTY,\n mainCategoryId: QMC.Common.Constants.GUID_EMPTY,\n subCategoryId: QMC.Common.Constants.GUID_EMPTY,\n objectId: null,\n version: null,\n title: setValidationBack ? null : \"You should never see me!\",\n subTitle: null,\n comment: null,\n isPrivate: false,\n attachedDocuments: null,\n parentObjectType: scope.qmParentObjectType,\n objectType: scope.qmObjectType\n };\n scope.selectedFolderHierarchyId = QMC.Common.Constants.GUID_EMPTY;\n _this.$qui.scopeApply(scope);\n };\n /************** UI HELPER *************/\n scope.getData = function (noFolderCreation) {\n if (noFolderCreation === void 0) { noFolderCreation = false; }\n scope.backupForm = null;\n scope.loading.folder = true;\n _this.stammdatenService.getDocumentList(scope.qmParent).then(function (data) { return __awaiter(_this, void 0, void 0, function () {\n var caption;\n var _a, _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n if (!(!noFolderCreation && scope.moduleAccess && !scope.qmPersonMode && !(data === null || data === void 0 ? void 0 : data.length) && !scope.addingFolder)) return [3 /*break*/, 2];\n return [4 /*yield*/, this.userService.getUserSettings(['DOKUMENTE.TREE.NameForAutoCreatedFolder'], false)];\n case 1:\n caption = (_b = (_a = (_c.sent())[0]) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : this.lng.translate(20013157, 'Allgemein');\n scope.form = {\n id: scope.qmParent,\n parentObjectId: null,\n fkParentHierarchy: QMC.Common.Constants.GUID_EMPTY,\n mainCategoryId: QMC.Common.Constants.GUID_EMPTY,\n subCategoryId: QMC.Common.Constants.GUID_EMPTY,\n objectId: null,\n version: null,\n title: caption,\n subTitle: null,\n comment: null,\n isPrivate: false,\n attachedDocuments: null,\n parentObjectType: scope.qmParentObjectType,\n objectType: scope.qmObjectType\n };\n scope.addDocFolder(false);\n _c.label = 2;\n case 2:\n scope.foldersTreeList = data;\n scope.foldersTreeListHierarchyEdit = angular.copy(data);\n if (!scope.lastFolderSelected) {\n scope.changeFolder(data[0]);\n }\n else {\n scope.changeFolder(scope.lastFolderSelected);\n }\n // decide wether or not folder structure should be visible\n scope.showFolderStructure = (data.length > 1 || scope.qmPersonMode);\n scope.loading.folder = false;\n return [2 /*return*/];\n }\n });\n }); });\n };\n scope.getSubCategoryList = function () {\n var data = [];\n if (scope.wv.subCategoryWvList) {\n for (var _i = 0, _a = scope.wv.subCategoryWvList; _i < _a.length; _i++) {\n var element = _a[_i];\n if ((element.parentWvId === scope.form.mainCategoryId) && !(/^\\s*$/).test(element.name)) {\n data.push(element);\n }\n }\n scope.subCategoryWvList = data.map(function (x) { return ({ text: x.name, value: x.objectId }); });\n if (data.length === 0) {\n scope.form.subCategoryId = QMC.Common.Constants.GUID_EMPTY;\n }\n }\n };\n scope.openMappingsModal = function () {\n $(\"#mappingsModal\" + scope.id).modal('show');\n };\n /************** Folder Functions *************/\n scope.changeFolder = function (data) {\n if (!data) {\n scope.newFolder = scope.new;\n return;\n }\n ;\n $('#' + scope.selectedFolderId).removeClass('active-folder');\n scope.selectedFolderId = data.id;\n scope.lastFolderSelected = data;\n scope.getFolder(data);\n var toggler = document.getElementsByClassName(\"qm-subfolders\");\n if (scope.firstLoad) {\n scope.getDocumentUserConfig();\n }\n else {\n for (var _i = 0, _a = Array.from(toggler); _i < _a.length; _i++) {\n var element = _a[_i];\n if (element.id === data.id) {\n element.parentElement.querySelector(\".nested\").classList.toggle(\"active\");\n element.parentElement.querySelector(\".foldername\").classList.toggle(\"foldername-down\");\n }\n }\n }\n scope.firstLoad = false;\n $('#' + scope.selectedFolderId).addClass('active-folder');\n };\n scope.getEditFolderHierarchy = function () {\n scope.formStateDocuDirective = \"edit\";\n if (!scope.form.parentObjectId && scope.backupForm) {\n scope.selectedFolderHierarchyId = scope.backupForm.fkParentHierarchy;\n scope.form = scope.backupForm;\n }\n else {\n scope.form.fkParentHierarchy = scope.selectedFolderHierarchyId;\n }\n scope.foldersTreeListHierarchyEdit = angular.copy(scope.foldersTreeList);\n scope.hideUnderFolders();\n scope.getSelectedHierarchyName();\n if (scope.selectedFolderHierarchyId != QMC.Common.Constants.GUID_EMPTY) {\n scope.hierachyTitle = _this.lng.translate(21006019, \"Untergeordnet von\") + \": \" + scope.hierachyTitle;\n }\n else {\n scope.hierachyTitle = _this.lng.translate(21006021, \"Kein übergeordneter Ordner\");\n }\n document.getElementById('untergeordnetVon' + scope.id).setAttribute(\"collapse\", \"close\");\n };\n scope.hideUnderFolders = function (hierarchyFolder) {\n if (hierarchyFolder === void 0) { hierarchyFolder = null; }\n if (!hierarchyFolder) {\n for (var i = scope.foldersTreeListHierarchyEdit.length - 1; i >= 0; i--) {\n if (scope.foldersTreeListHierarchyEdit[i].id === scope.form.id) {\n if (scope.foldersTreeListHierarchyEdit[i].children != null) {\n scope.foldersTreeListHierarchyEdit[i].children.splice(0, scope.foldersTreeListHierarchyEdit[i].children.length);\n }\n }\n else if (scope.foldersTreeListHierarchyEdit[i].children != null) {\n scope.hideUnderFolders(scope.foldersTreeListHierarchyEdit[i].children);\n }\n }\n }\n else {\n for (var i = hierarchyFolder.length - 1; i >= 0; i--) {\n if (hierarchyFolder[i].id === scope.form.id) {\n if (hierarchyFolder[i].children != null) {\n hierarchyFolder[i].children.splice(0, hierarchyFolder[i].children.length);\n }\n }\n else if (hierarchyFolder[i].children != null) {\n scope.hideUnderFolders(hierarchyFolder[i].children);\n }\n }\n }\n };\n scope.getSelectedHierarchyName = function (hierarchyFolder) {\n if (hierarchyFolder === void 0) { hierarchyFolder = null; }\n if (hierarchyFolder === null) {\n var folders = scope.foldersTreeListHierarchyEdit.filter(function (x) { return x.objectId === scope.form.fkParentHierarchy; });\n if (folders.length > 0) {\n scope.hierachyTitle = folders[0].title;\n }\n else {\n for (var i = scope.foldersTreeListHierarchyEdit.length - 1; i >= 0; i--) {\n var folders_1 = scope.foldersTreeListHierarchyEdit[i].children.filter(function (x) { return x.objectId === scope.form.fkParentHierarchy; });\n if (folders_1.length > 0) {\n scope.hierachyTitle = folders_1[0].title;\n break;\n }\n else if (scope.foldersTreeListHierarchyEdit[i].children != null) {\n scope.getSelectedHierarchyName(scope.foldersTreeListHierarchyEdit[i].children);\n }\n }\n }\n }\n else {\n for (var i = hierarchyFolder.length - 1; i >= 0; i--) {\n var folders = hierarchyFolder[i].children.filter(function (x) { return x.objectId === scope.form.fkParentHierarchy; });\n if (folders.length > 0) {\n scope.hierachyTitle = folders[0].title;\n break;\n }\n else if (hierarchyFolder[i].children != null) {\n scope.getSelectedHierarchyName(hierarchyFolder[i].children);\n }\n }\n }\n };\n scope.selectFolderHierarchy = function (data) {\n if (data.id != scope.selectedFolderId || scope.formStateDocuDirective === \"new\") {\n $('#' + scope.selectedFolderHierarchyId).removeClass('active-folder');\n if (scope.selectedFolderHierarchyId === data.id) {\n scope.selectedFolderHierarchyId = QMC.Common.Constants.GUID_EMPTY;\n scope.form.fkParentHierarchy = scope.selectedFolderHierarchyId;\n }\n else {\n scope.selectedFolderHierarchyId = data.id;\n scope.form.fkParentHierarchy = scope.selectedFolderHierarchyId;\n }\n scope.getSelectedHierarchyName();\n if (scope.selectedFolderHierarchyId != QMC.Common.Constants.GUID_EMPTY) {\n scope.hierachyTitle = _this.lng.translate(21006019, \"Untergeordnet von\") + \": \" + scope.hierachyTitle;\n }\n else {\n scope.hierachyTitle = _this.lng.translate(21006021, \"Kein übergeordneter Ordner\");\n }\n $('#' + scope.selectedFolderHierarchyId).addClass('active-folder');\n }\n };\n scope.saveDocFolderChanges = function () {\n if (scope.formStateDocuDirective === \"edit\") {\n scope.putDocFolder();\n }\n else {\n scope.addDocFolder();\n }\n };\n /************** Service Functions *************/\n scope.addDocFolder = function (showNotification) {\n if (showNotification === void 0) { showNotification = true; }\n scope.addingFolder = true;\n scope.form.parentObjectId = scope.qmParent;\n scope.form.isPrivate = true;\n scope.form.date = new Date();\n _this.stammdatenService.postNewDocument(scope.form).then(function (dataDocFolder) {\n scope.formStateDocuDirective = \"new\";\n if (showNotification)\n _this.$qui.notify(_this.$qui.successNote);\n }).finally(function () { return _this.$timeout(function () {\n scope.getData(true);\n scope.addingFolder = false;\n }); });\n };\n scope.putDocFolder = function () {\n scope.form.parentObjectId = scope.qmParent;\n _this.stammdatenService.editDocument(scope.qmParent, scope.form.objectId, scope.form).then(function (e) {\n _this.$qui.notify(_this.$qui.successNote);\n scope.getData(true);\n });\n };\n scope.deleteDocFolder = function () {\n scope.promptOptions = {\n title: _this.lng.translate(21006026, \"Ordner löschen\"),\n yesNo: true,\n icon: \"qm-icon-history2\",\n text: _this.lng.translate(20000290, \"Wollen Sie den Eintrag wirklich löschen?\"),\n itemText: scope.form.title\n };\n var containerId = scope.form.id;\n QMC.Common.Utilities.confirm(scope.promptOptions, function (data) {\n if (data)\n setTimeout(_this.stammdatenService.deleteDocument(scope.qmParent, containerId).then(function () {\n scope.lastFolderSelected = null;\n _this.$qui.notify(_this.$qui.deleteNote);\n $('#edit-form-document-' + scope.qmParent + scope.id).modal('hide');\n scope.getData(true);\n }), 300);\n }, \"#\" + scope.idDeletePrompt);\n };\n scope.getWv = function () {\n scope.wv = {\n documentTypeWvList: [],\n mainCategoryWvList: [],\n subCategoryWvList: []\n };\n _this.stammdatenService.getDocumentWV().then(function (data) {\n scope.wv = data;\n scope.documentTypeWvList = scope.wv.documentTypeWvList.map(function (x) { return ({ text: x.name, value: x.objectId }); });\n scope.mainCategoryWvList = scope.wv.mainCategoryWvList.map(function (x) { return ({ text: x.name, value: x.objectId }); });\n });\n };\n scope.getWv();\n scope.getDocumentUserConfig = function () {\n _this.stammdatenService.getDocumentsUserConfig().then(function (data) {\n scope.documentUserConfig = data;\n if (!scope.documentUserConfig.folderStructureIsCollapsable) {\n var toggler = document.getElementsByClassName(\"qm-subfolders\");\n for (var _i = 0, _a = Array.from(toggler); _i < _a.length; _i++) {\n var element = _a[_i];\n if (element.parentElement.querySelector(\".nested\"))\n element.parentElement.querySelector(\".nested\").classList.toggle(\"active\");\n if (element.parentElement.querySelector(\".foldername\"))\n element.parentElement.querySelector(\".foldername\").classList.toggle(\"foldername-down\");\n }\n _this.$qui.scopeApply(scope);\n }\n });\n };\n scope.postFileToFolder = function (docuId) {\n $('#uploadingScreen' + scope.id).modal('show');\n scope.fileObject.documentId = docuId;\n scope.fileObject.date = new Date();\n scope.fileObject.objectType = scope.qmObjectType;\n _this.stammdatenService.addFileToDocument(scope.fileObject).then(function () {\n _this.$qui.notify(_this.$qui.successNote, _this.lng.translate(20000291, 'Der Eintrag wurde gespeichert.'));\n $('#uploadingScreen' + scope.id).modal('hide');\n scope.getData(true);\n });\n };\n scope.getFolder = function (dataFolder) {\n var containerId = dataFolder.id;\n var folderIsTemplate = dataFolder.fkTemplate !== QMC.Common.Constants.GUID_EMPTY;\n _this.stammdatenService.getDocument(scope.qmParent, containerId).then(function (dataDocument) {\n _this.permissionService.getMediaPermissions(scope.qmObjectType, QMC.Common.Constants.WV_DOCUMENT_RUBRIC, dataDocument.mainCategoryId).then(function (dataPermFolder) {\n scope.newFolder = dataPermFolder[0].new && scope.new;\n scope.modifyFolder = dataPermFolder[0].modify && !folderIsTemplate && scope.moduleAccess && scope.modify;\n scope.deleteFolder = dataPermFolder[0].delete && scope.delete && dataDocument.attachedDocuments.length === 0 && !_this.hasChildren(dataDocument, scope.foldersTreeList);\n scope.newFile = dataPermFolder[0].new;\n scope.deleteFile = dataPermFolder[0].delete;\n scope.allowPreview = dataPermFolder[0].openFile;\n scope.allowDownload = dataPermFolder[0].openFile && scope.webAllowDownload;\n scope.printFile = dataPermFolder[0].print;\n scope.form = angular.copy(dataDocument);\n scope.backupForm = angular.copy(dataDocument);\n if (dataFolder.fkParentHierarchy != null) {\n scope.selectedFolderHierarchyId = dataFolder.fkParentHierarchy;\n }\n else {\n scope.selectedFolderHierarchyId = dataFolder.id;\n }\n if (scope.form) {\n scope.form.fkParentHierarchy = scope.selectedFolderId;\n scope.backupForm.fkParentHierarchy = scope.selectedFolderHierarchyId;\n }\n scope.hierachyTitle = _this.lng.translate(21006021, \"Kein übergeordneter Ordner\");\n if (dataPermFolder[0].view) {\n scope.documentType = _this.getWvName(dataDocument.documentTypeId, scope.wv);\n scope.mainCategory = _this.getWvName(dataDocument.mainCategoryId, scope.wv);\n scope.subCategory = _this.getWvName(dataDocument.subCategoryId, scope.wv);\n for (var _i = 0, _a = dataDocument.attachedDocuments; _i < _a.length; _i++) {\n var element = _a[_i];\n element.fileSize = _this.fileSizeConvert(element.fileSize);\n }\n dataDocument.attachedDocuments.forEach(function (x) { return x.stateLink = _this.createStateLink(x, scope.qmParent); });\n scope.ui.attachedFilesTable.data = dataDocument.attachedDocuments;\n _this.$qui.functionWaiter(\"ui.createTable\", scope);\n }\n });\n }).catch(function () {\n scope.initForm();\n scope.newFolder = scope.new;\n scope.modifyFolder = false;\n scope.ui.attachedFilesTable.data = [];\n _this.$qui.functionWaiter(\"ui.createTable\", scope);\n });\n };\n /************** File handling *************/\n scope.previewDocument = function (dataFile) {\n scope.downloadFile(dataFile, true);\n };\n scope.downloadFile = function (dataFile, prev) {\n if (prev === void 0) { prev = false; }\n scope.fileInfos = undefined;\n $('#downloadingScreen' + scope.id).modal('show');\n _this.stammdatenService.downloadAttachment(scope.selectedFolderId, dataFile.objectId).then(function (data) {\n $('#downloadingScreen' + scope.id).modal('hide');\n try {\n var filename = \"datei\";\n for (var _i = 0, _a = scope.form.attachedDocuments; _i < _a.length; _i++) {\n var document_1 = _a[_i];\n if (document_1.objectId === data.objectId) {\n filename = document_1.fileName;\n }\n }\n // get filename suffix and contenttype\n var temp = filename.split('.');\n var ext = temp[temp.length - 1];\n scope.fileInfos = {\n base64: data.base64,\n fileType: ext,\n fileName: filename\n };\n _this.$qui.scopeApply(scope);\n if (prev)\n $('#previewModal' + scope.id).modal('show');\n else {\n var blob = _this.$qui.base64ToBlob(scope.fileInfos.base64, _this.$qui.extToMime(scope.fileInfos.fileType));\n _this.$qui.downloadBlob(scope.fileInfos.fileName, blob);\n }\n }\n catch (e) {\n console.log(\"downloadDocument Fehler: \", e);\n _this.$qui.notify({\n message: e,\n title: 'Download Error',\n icon: 'qm-icon-error',\n status: 'warning',\n timer: 10000\n });\n }\n });\n };\n scope.deleteFileFromFolder = function (dataFile) {\n //a small change for a new pull request\n $('#loadingScreen' + scope.id).modal('toggle');\n $('.modal-backdrop').remove();\n scope.promptOptions = {\n title: _this.lng.translate(21006027, \"Datei löschen\"),\n yesNo: true,\n icon: \"qm-icon-history2\",\n text: _this.lng.translate(20000290, \"Wollen Sie den Eintrag wirklich löschen?\"),\n itemText: dataFile.fileName\n };\n if (!dataFile.referenceId || dataFile.referenceId === QMC.Common.Constants.GUID_EMPTY) {\n scope.promptOptions.text += \"\\r\\n\" + _this.lng.translate(21006031, 'Alle ggf. verlinktem Dokumente werden hierbei ebenfalls gelöscht.');\n }\n QMC.Common.Utilities.confirm(scope.promptOptions, function (data) {\n if (data) {\n setTimeout(function () {\n $('.modal-backdrop').remove();\n _this.stammdatenService.deleteFile(scope.selectedFolderId, dataFile.objectId).then(function (data) {\n _this.$qui.notify(_this.$qui.deleteNote);\n scope.getData(true);\n });\n }, 300);\n }\n }, \"#\" + scope.idDeletePrompt);\n };\n scope.openReference = function (data) {\n if (!data.stateLink)\n return;\n _this.$state.go(data.stateLink.state, { id: data.stateLink.parentId, dataId: data.stateLink.referenceId });\n };\n scope.$on('$destroy', function () {\n // remove all modals\n $('#previewModal' + scope.id).remove();\n $('#uploadingScreen' + scope.id).remove();\n $('#downloadingScreen' + scope.id).remove();\n $('#untergeordnetVon' + scope.id).remove();\n $('#edit-form-document-' + scope.qmParent + scope.id).remove();\n $('promptDeleteDocumentDirective_' + scope.id).remove();\n });\n scope.getSubFolderDocumentCount = function (folder) {\n var _a;\n var getChildren = function (members) {\n var children = [];\n var flattenMembers = members.map(function (m) {\n var _a;\n if ((_a = m.children) === null || _a === void 0 ? void 0 : _a.length) {\n children = __spreadArrays(children, m.children);\n }\n return m;\n });\n return flattenMembers.concat(children.length ? getChildren(children) : children);\n };\n var allFolders = __spreadArrays([folder], getChildren((_a = folder.children) !== null && _a !== void 0 ? _a : []));\n return allFolders.reduce(function (prev, current) { return (prev + current.documentCount); }, 0);\n };\n };\n }\n DocumentFolderStructureDirective.prototype.createStateLink = function (data, parentId) {\n if (!data.referenceObjectType || !data.referenceId)\n return undefined;\n var state = '';\n switch (data.referenceObjectType) {\n case 120002:\n state = 'employee.address';\n break;\n case 120004:\n state = 'employee.communication';\n break;\n case 120012:\n state = 'employee.contactperson';\n break;\n case 120020:\n state = 'employee.checklist';\n break;\n case 120046:\n state = 'employee.vaccination';\n break;\n case 140002:\n state = 'detail.disease';\n break;\n case 140003:\n state = 'detail.doctorsvisit';\n break;\n case 140005:\n state = 'detail.vaccination';\n break;\n case 140006:\n state = 'detail.contactperson';\n break;\n case 140021:\n state = 'detail.address';\n break;\n case 140023:\n state = 'detail.communication';\n break;\n case 140027:\n state = 'detail.legal';\n break;\n case 140057:\n state = 'detail.checklist';\n break;\n case 140068:\n state = 'detail.education';\n break;\n default: return undefined;\n }\n return {\n state: state,\n parentId: parentId,\n referenceId: data.referenceId\n };\n };\n DocumentFolderStructureDirective.prototype.hasChildren = function (folder, foldersTreeList) {\n for (var _i = 0, foldersTreeList_1 = foldersTreeList; _i < foldersTreeList_1.length; _i++) {\n var element = foldersTreeList_1[_i];\n if (element.id === folder.id) {\n return element.children.length > 0;\n }\n }\n return false;\n };\n DocumentFolderStructureDirective.prototype.fileSizeConvert = function (sizeInBytes) {\n if (sizeInBytes === 0) {\n return '0 Bytes';\n }\n ;\n var kbUnit = 1024;\n var usedSizes = ['Bytes', 'KB', 'MB', 'GB', 'TB'];\n var i = Math.floor(Math.log(sizeInBytes) / Math.log(kbUnit));\n return parseFloat((sizeInBytes / Math.pow(kbUnit, i)).toFixed(2)) + ' ' + usedSizes[i];\n };\n DocumentFolderStructureDirective.prototype.getWvName = function (id, wv) {\n var wvObjNames = ['documentTypeWvList', 'mainCategoryWvList', 'subCategoryWvList'];\n for (var _i = 0, wvObjNames_1 = wvObjNames; _i < wvObjNames_1.length; _i++) {\n var wvName = wvObjNames_1[_i];\n for (var _a = 0, _b = wv[wvName]; _a < _b.length; _a++) {\n var element = _b[_a];\n if (element.id !== null) {\n if (id === element.id)\n return element.name;\n }\n }\n }\n return \"\";\n };\n DocumentFolderStructureDirective = __decorate([\n QMC.Directive('QMC.Documents', 'qmDocumentFolderStructure', ['$qui', 'QmcLanguageService', 'QmcPermissionService', 'StammdatenService', 'UserService', '$state', '$timeout'])\n ], DocumentFolderStructureDirective);\n return DocumentFolderStructureDirective;\n }());\n Documents.DocumentFolderStructureDirective = DocumentFolderStructureDirective;\n })(Documents = QMC.Documents || (QMC.Documents = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Documents;\n (function (Documents) {\n var DocumentViewerDirective = /** @class */ (function () {\n function DocumentViewerDirective($qui, permissionService) {\n var _this = this;\n this.$qui = $qui;\n this.permissionService = permissionService;\n this.restrict = 'E';\n this.templateUrl = './Documents/DocumentViewer';\n this.replace = true;\n this.scope = {\n qmData: '=',\n qmFileName: '=',\n qmFileType: '=',\n qmReportFileId: '='\n };\n this.link = function (scope) {\n scope.allowDownload = false;\n _this.permissionService.getPermissionsByObjectType(920002).then(function (data) {\n scope.allowDownload = data[0].openFile;\n scope.allowPrint = data[0].print;\n });\n scope.prepareViewing = false;\n scope.$watch('qmData', function (newVal, oldVal) {\n if (newVal !== oldVal)\n _this.handleFile(scope);\n });\n scope.$watch('qmFileName', function (newVal, oldVal) {\n if (newVal !== oldVal)\n _this.handleFile(scope);\n });\n scope.$watch('qmFileType', function (newVal, oldVal) {\n if (newVal !== oldVal)\n _this.handleFile(scope);\n });\n scope.downloadBase64 = function () {\n var temp = scope.qmFileName.split('.');\n var ext = scope.qmFileType;\n if (temp.length > 1)\n ext = temp[temp.length - 1];\n var contentType = _this.$qui.extToMime(ext);\n _this.$qui.notify(_this.$qui.downloadNote);\n var blob = _this.$qui.base64ToBlob(scope.qmData, contentType);\n _this.$qui.downloadBlob(scope.qmFileName, blob);\n };\n };\n }\n DocumentViewerDirective.prototype.handleFile = function (scope) {\n scope.prepareViewing = true;\n scope.error = undefined;\n if (scope.qmData && scope.qmFileName && scope.qmFileType)\n scope.prepareViewing = false;\n else\n scope.error = 'Keine Vorschau möglich';\n };\n DocumentViewerDirective = __decorate([\n QMC.Directive('QMC.Documents', 'qmDocumentViewer', ['$qui', 'QmcPermissionService'])\n ], DocumentViewerDirective);\n return DocumentViewerDirective;\n }());\n Documents.DocumentViewerDirective = DocumentViewerDirective;\n })(Documents = QMC.Documents || (QMC.Documents = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Documents;\n (function (Documents) {\n var PdfViewerDirective = /** @class */ (function () {\n function PdfViewerDirective($qui) {\n var _this = this;\n this.$qui = $qui;\n this.restrict = 'E';\n this.templateUrl = './Documents/PdfViewer';\n this.replace = true;\n this.scope = {\n qmData: '=',\n qmFileName: '=',\n qmScale: '@',\n qmPage: '@',\n qmCallback: '&',\n qmCallbackButton: '=',\n qmDisableDownload: '=',\n qmDisablePrint: '='\n };\n this.link = function (scope) {\n scope.qmScale = 1.5;\n scope.qmPage = 1;\n scope.qmId = \"_\" + Math.random().toString(36).substr(2, 9);\n scope.$watch(\"qmData\", function (newVal, oldVal) {\n //if (newVal === oldVal) return;\n if (!scope.qmData) {\n scope.qmPdf = undefined;\n return;\n }\n var pdfPath = URL.createObjectURL(this.$qui.base64ToBlob(scope.qmData, 'application/pdf'));\n console.log(\"pdf path\", scope);\n if (pdfPath !== (null || undefined))\n scope.openPdf(pdfPath);\n }.bind(_this));\n scope.openPdf = function (pdfPath) {\n var pdfjsLib = window['pdfjs-dist/build/pdf'];\n pdfjsLib.GlobalWorkerOptions.workerSrc = URL.createObjectURL(new Blob([window['pdfjs-dist/build/pdf.worker'], 'application/javascript']));\n var loadingTask = pdfjsLib.getDocument(pdfPath);\n loadingTask.promise.then(function (_pdf) {\n console.log('PDF loaded', _pdf);\n scope.qmPdf = _pdf;\n scope.renderPdfPage(1);\n }).catch(function (e) {\n scope.qmPdf = \"error\";\n console.log('PDF error', e);\n });\n };\n scope.renderPdfPage = function (num) {\n scope.qmPage = num;\n // Using promise to fetch the page\n scope.qmPdf.getPage(num).then(function (page) {\n var viewport = page.getViewport({ scale: scope.qmScale });\n var cParent = document.getElementById('pdfCanvas' + scope.qmId).parentElement;\n cParent.removeChild(document.getElementById('pdfCanvas' + scope.qmId));\n var newCanvas = document.createElement('canvas');\n newCanvas.id = 'pdfCanvas' + scope.qmId;\n cParent.appendChild(newCanvas);\n var height = isNaN(window.innerHeight) ? document.body.clientHeight : window.innerHeight - 150;\n newCanvas.height = viewport.height;\n newCanvas.width = viewport.width;\n document.getElementById('canvasContainer').setAttribute(\"style\", \"height:\" + height + \"px; overflow-y:scroll;\");\n // Render PDF page into canvas context\n var renderContext = {\n canvasContext: newCanvas.getContext('2d'),\n viewport: viewport\n };\n var renderTask = page.render(renderContext);\n // Wait for rendering to finish\n renderTask.promise.then(function () {\n $qui.scopeApply(scope);\n });\n });\n };\n scope.downloadPdfFile = function () {\n scope.qmPdf.getData().then(function (result) {\n console.log(\"pdf.data\", result);\n var blob = new Blob([result], { type: \"application/pdf\" });\n var link = document.createElement('a');\n link.href = window.URL.createObjectURL(blob);\n link.download = scope.qmFileName.endsWith('.pdf') ? scope.qmFileName : scope.qmFileName + '.pdf';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n });\n };\n scope.print = function () {\n scope.qmPdf.getData().then(function (result) {\n var blob = new Blob([result], { type: \"application/pdf\" });\n var iframe = document.createElement('iframe');\n document.body.appendChild(iframe);\n iframe.style.display = 'none';\n iframe.onload = function () {\n setTimeout(function () {\n iframe.focus();\n iframe.contentWindow.print();\n iframe.addEventListener('close', function () { iframe.remove(); });\n }, 1);\n };\n iframe.src = window.URL.createObjectURL(blob);\n });\n };\n };\n }\n PdfViewerDirective = __decorate([\n QMC.Directive('QMC.Documents', 'qmPdfViewer', ['$qui'])\n ], PdfViewerDirective);\n return PdfViewerDirective;\n }());\n Documents.PdfViewerDirective = PdfViewerDirective;\n })(Documents = QMC.Documents || (QMC.Documents = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Documents;\n (function (Documents) {\n var SpreadViewerDirective = /** @class */ (function () {\n function SpreadViewerDirective($qui, reportingService) {\n var _this = this;\n this.$qui = $qui;\n this.reportingService = reportingService;\n this.restrict = 'EA';\n this.templateUrl = './Documents/SpreadViewer';\n this.replace = true;\n this.scope = {\n qmSpread: '=',\n qmSpreadName: '=',\n qmSpreadId: '=',\n qmDisableDownload: '=',\n qmDisablePrint: '='\n };\n this.link = function (scope) {\n scope.$on('$destroy', function () {\n $('#spreadDownloadNameModal').remove();\n });\n var elementId = 'spreadsheetViewer';\n var reportingService = _this.reportingService;\n var $qui = _this.$qui;\n scope.loading = true;\n scope.chkbx = {\n editable: true\n };\n var location = window.location.href.substring(0, window.location.href.indexOf('#'));\n if (!location.endsWith('/'))\n location = location + '/';\n var igScripts = [\n location + 'igniteui/js/infragistics.core.js',\n location + 'igniteui/js/infragistics.lob.js',\n location + 'igniteui/js/infragistics.excel-bundled.js',\n location + 'igniteui/js/infragistics.spreadsheet-bundled.js'\n ];\n // Detect if library loaded\n function isLoadedScript(lib) {\n return document.querySelectorAll('[src=\"' + lib + '\"]').length > 0;\n }\n // Load library\n function loadScript(lib) {\n console.log('loading Script', lib);\n var script = document.createElement('script');\n script.async = false;\n script.setAttribute('src', lib);\n document.getElementsByTagName('body')[0].prepend(script);\n return script;\n }\n for (var i = 0; i < igScripts.length; i++) {\n if (!isLoadedScript(igScripts[i])) {\n loadScript(igScripts[i]);\n }\n }\n function openSpreadFile() {\n scope.errortext = undefined;\n $.ig.excel.Workbook.load(scope.qmSpread, function (workbook) {\n if ($(\"#\" + elementId).igSpreadsheet !== undefined && workbook !== null) {\n //load specific workbook\n $(\"#\" + elementId).igSpreadsheet(\"option\", \"workbook\", workbook);\n }\n $qui.scopeApply(scope);\n }, function (error) {\n console.error(\"IG:\", error, scope.qmSpread);\n scope.errortext = error + ' ';\n $(\"#\" + elementId).igSpreadsheet(\"destroy\");\n $qui.scopeApply(scope);\n });\n }\n function allScriptsLoaded() {\n for (var i = 0; i < igScripts.length; i++) {\n if (!isLoadedScript(igScripts[i]) || typeof $(\"#\" + elementId).igSpreadsheet !== 'function' || !$.ig) {\n return false;\n }\n }\n return true;\n }\n function initSpreadsheet() {\n if (!allScriptsLoaded()) {\n setTimeout(function () {\n initSpreadsheet();\n }, 250);\n return;\n }\n $(\"#\" + elementId).igSpreadsheet({\n height: window.innerHeight - 100 + \"\",\n width: \"100%\",\n language: \"de\",\n isFormulaBarVisible: scope.chkbx.editable,\n editModeEntering: function (e, args) {\n return scope.chkbx.editable;\n }\n });\n $('.ui-igspreadsheet-formulabartextareasplitter').click(function (event) {\n event.preventDefault();\n });\n scope.loading = false;\n scope.$watch(\"chkbx.editable\", function (oldVal, newVal) {\n if (oldVal === newVal)\n return;\n $(\"#\" + elementId).igSpreadsheet(\"option\", \"isFormulaBarVisible\", scope.chkbx.editable);\n });\n if (scope.qmSpread && scope.qmSpread.length > 0)\n openSpreadFile();\n $qui.scopeApply(scope);\n }\n window.onresize = function () { initSpreadsheet(); };\n function handleFileChange() {\n if (!allScriptsLoaded()) {\n setTimeout(function () { initSpreadsheet(); }, 250);\n return;\n }\n setTimeout(function () {\n initSpreadsheet();\n openSpreadFile();\n }, 50);\n }\n scope.$watch(\"qmSpread\", function () {\n if (scope.qmSpread === undefined)\n return;\n if (scope.qmSpread === null)\n return;\n handleFileChange();\n });\n scope.$watch(\"qmSpreadName\", function () {\n if (scope.qmSpreadName.includes('.')) {\n if (scope.originalName === undefined) {\n scope.originalName = scope.originalName === scope.qmSpreadName ? scope.originalName : scope.qmSpreadName;\n scope.originalSuffix = scope.originalName.split('.')[scope.originalName.split('.').length - 1];\n scope.qmSpreadName = scope.originalName.substring(0, scope.originalName.lastIndexOf('.'));\n }\n }\n $qui.scopeApply(scope);\n }, true);\n scope.removeInvalidChars = function (fileName) {\n var fileNameNoWhiteSpace = fileName.replace(/[\\s]/g, \"_\");\n return fileNameNoWhiteSpace.replace(/[\\/\\?\\#\\[\\]\\@\\!\\$\\&\\§\\'\\(\\)\\*\\+\\,\\;\\:\\=]/g, \"-\"); //vgl: https://stackoverflow.com/questions/2366260/whats-valid-and-whats-not-in-a-uri-query\n };\n function downloadFile(data, suffix) {\n var name = scope.qmSpreadName;\n if (suffix && !name.endsWith(suffix)) {\n name += suffix;\n }\n if (window.navigator.userAgent.indexOf(\"MSIE\") > -1 || !!navigator.userAgent.match(/Trident.*rv\\:11\\./)) {\n window.navigator.msSaveOrOpenBlob(data, name);\n }\n else {\n var blobUrl_1 = URL.createObjectURL(data);\n var a_1 = document.createElement('a');\n a_1.style = \"display: none\";\n document.body.append(a_1);\n a_1.href = blobUrl_1;\n a_1.download = name;\n a_1.target = '_blank';\n a_1.click();\n setTimeout(function () {\n window.URL.revokeObjectURL(blobUrl_1);\n document.body.removeChild(a_1);\n }, 4E4);\n }\n }\n ;\n scope.downloadPdfFile = function () {\n $('#genericLoadingModal').modal('show');\n reportingService.getFinishedSpreadServerJobAsPdf(scope.qmSpreadId, scope.qmSpreadName).then(function (data) {\n downloadFile($qui.base64ToBlob(data.base64, 'application/pdf'), '.pdf');\n $('#genericLoadingModal').modal('hide');\n }).catch(function (e) {\n $('#genericLoadingModal').modal('hide');\n console.error(e);\n });\n };\n scope.downloadSpreadFile = function () {\n // make sure to change cell before saving since the component needs a cellchange to flush the current content into its datamodell\n var cell = $(\"#\" + elementId).igSpreadsheet(\"option\", \"activeCell\");\n cell = cell === 'A1' ? 'A2' : 'A1';\n $(\"#\" + elementId).igSpreadsheet(\"option\", \"activeCell\", cell);\n $(\"#\" + elementId).igSpreadsheet('option', 'workbook')\n .save({ type: 'blob' }, function (data) {\n downloadFile(data, scope.originalSuffix ? '.' + scope.originalSuffix : '.xlsx');\n }, function (error) {\n console.warn('Fehler beim Download: : ' + error); //testweise\n });\n };\n scope.downloadOriginalSpreadFile = function () {\n var _a;\n console.log(scope.qmSpreadName, scope.originalSuffix);\n var name = scope.removeInvalidChars(scope.qmSpreadName);\n if (scope.originalSuffix)\n name += '.' + scope.originalSuffix;\n else {\n name += '.xlsx';\n }\n var blob = _this.$qui.base64ToBlob(scope.qmSpread, _this.$qui.extToMime((_a = scope.originalSuffix) !== null && _a !== void 0 ? _a : 'xlsx'));\n _this.$qui.downloadBlob(name, blob);\n };\n scope.print = function () {\n var area = document.getElementsByClassName('ui-igspreadsheet-formulabar')[0].nextSibling.cloneNode(true);\n // dont show tab item area\n area.childNodes.forEach(function (x) {\n var cl = x.classList;\n if (cl.contains('ui-igspreadsheet-tabitemarea')) {\n x.remove();\n }\n });\n var iframe = document.createElement('iframe');\n document.body.appendChild(iframe);\n iframe.style.display = 'none';\n iframe.onload = function () {\n setTimeout(function () {\n iframe.contentDocument.title = scope.qmSpreadName;\n var style = iframe.contentWindow.document.createElement('style');\n style.type = 'text/css';\n style.innerText = '@page {size: auto; margin: 0;}/* div {border: 1px solid lightgrey;}*/';\n iframe.contentWindow.document.head.appendChild(style);\n iframe.contentWindow.document.body.appendChild(area);\n iframe.focus();\n iframe.contentWindow.print();\n iframe.addEventListener('close', function () { iframe.remove(); });\n }, 1);\n };\n iframe.src = '';\n };\n };\n }\n SpreadViewerDirective = __decorate([\n QMC.Directive('QMC.Documents', 'qmSpreadViewer', ['$qui', 'ReportingService'])\n ], SpreadViewerDirective);\n return SpreadViewerDirective;\n }());\n Documents.SpreadViewerDirective = SpreadViewerDirective;\n })(Documents = QMC.Documents || (QMC.Documents = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Documents;\n (function (Documents) {\n var ImageViewerDirective = /** @class */ (function () {\n function ImageViewerDirective($qui) {\n var _this = this;\n this.$qui = $qui;\n this.restrict = 'E';\n this.templateUrl = './Documents/ImageViewer';\n this.replace = true;\n this.scope = {\n qmData: '=',\n qmFileName: '=',\n qmFileType: '=',\n qmDisableDownload: '=',\n qmDisablePrint: '='\n };\n this.link = function (scope) {\n scope.prepareViewing = false;\n scope.$watch('qmData', function (newVal, oldVal) {\n if (newVal !== oldVal)\n _this.handleFile(scope);\n });\n scope.$watch('qmFileName', function (newVal, oldVal) {\n if (newVal !== oldVal)\n _this.handleFile(scope);\n });\n scope.$watch('qmFileType', function (newVal, oldVal) {\n if (newVal !== oldVal)\n _this.handleFile(scope);\n });\n scope.downloadBase64 = function () {\n var contentType = scope.getMimeType();\n _this.$qui.notify(_this.$qui.downloadNote);\n var blob = _this.$qui.base64ToBlob(scope.qmData, contentType);\n _this.$qui.downloadBlob(scope.qmFileName, blob);\n };\n scope.getMimeType = function () {\n var mime = _this.$qui.extToMime(scope.qmFileType);\n if (!mime || mime.length === 0) {\n var temp = scope.qmFileName.split('.');\n if (temp.length < 2) {\n scope.error = true;\n }\n var ext = temp[temp.length - 1];\n mime = _this.$qui.extToMime(ext);\n }\n return mime;\n };\n _this.handleFile(scope);\n scope.print = function () {\n var win = window.open('', '');\n win.document.write([\n '',\n ' ',\n ' ',\n ' ',\n ' ',\n ' ',\n ''\n ].join(''));\n win.document.close();\n };\n };\n }\n ImageViewerDirective.prototype.handleFile = function (scope) {\n scope.error = false;\n if (scope.qmData && scope.qmFileName) {\n scope.src = \"data:\" + scope.getMimeType() + \";base64,\" + scope.qmData;\n }\n else {\n scope.error = true;\n }\n };\n ImageViewerDirective = __decorate([\n QMC.Directive('QMC.Documents', 'qmImageViewer', ['$qui'])\n ], ImageViewerDirective);\n return ImageViewerDirective;\n }());\n Documents.ImageViewerDirective = ImageViewerDirective;\n })(Documents = QMC.Documents || (QMC.Documents = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Documents;\n (function (Documents) {\n var TextViewerDirective = /** @class */ (function () {\n function TextViewerDirective($qui, $sce, mediaService, lngService) {\n var _this = this;\n this.$qui = $qui;\n this.$sce = $sce;\n this.mediaService = mediaService;\n this.lngService = lngService;\n this.restrict = 'E';\n this.templateUrl = './Documents/TextViewer';\n this.replace = true;\n this.scope = {\n qmData: '=',\n qmFileName: '=',\n qmFileType: '=',\n qmDisableDownload: '=',\n qmDisablePrint: '='\n };\n this.link = function (scope) {\n scope.callbackButton = {\n label: _this.lngService.translate(21006014, 'Herunterladen'),\n icon: 'fa fa-download'\n };\n scope.prepareViewing = false;\n scope.$watch('qmData', function (newVal, oldVal) {\n if (newVal !== oldVal)\n _this.handleFile(scope);\n });\n scope.$watch('qmFileName', function (newVal, oldVal) {\n if (newVal !== oldVal)\n _this.handleFile(scope);\n });\n scope.$watch('qmFileType', function (newVal, oldVal) {\n if (newVal !== oldVal)\n _this.handleFile(scope);\n });\n scope.downloadBase64 = function () {\n var contentType = scope.getMimeType();\n _this.$qui.notify(_this.$qui.downloadNote);\n var blob = _this.$qui.base64ToBlob(scope.qmData, contentType);\n _this.$qui.downloadBlob(scope.qmFileName, blob);\n };\n scope.getMimeType = function () {\n var mime = _this.$qui.extToMime(scope.qmFileType);\n if (!mime || mime.length === 0) {\n var temp = scope.qmFileName.split('.');\n if (temp.length < 2) {\n scope.error = true;\n }\n var ext = temp[temp.length - 1];\n mime = _this.$qui.extToMime(ext);\n }\n return mime;\n };\n _this.handleFile(scope);\n scope.print = function () {\n var win = window.open('', '');\n win.document.write([\n '',\n ' ',\n ' ',\n ' ',\n ' ' + document.getElementById('textViewerPrintArea').innerHTML +\n ' ',\n ''\n ].join(''));\n win.document.close();\n };\n };\n }\n TextViewerDirective.prototype.handleFile = function (scope) {\n scope.error = false;\n scope.loading = false;\n scope.html = undefined;\n scope.pdf = undefined;\n if (scope.qmData && scope.qmFileName) {\n // directly supported files could be shown directly (ach was *facepalm*)\n if (['txt', 'text', 'html'].includes(scope.qmFileType)) {\n scope.html = this.$sce.trustAsHtml(atob(scope.qmData));\n }\n // others get translated by api to html\n else {\n scope.loading = true;\n this.mediaService.convertToPdf(scope.qmData, scope.qmFileType).then(function (data) {\n scope.pdf = data;\n scope.loading = false;\n });\n }\n }\n else {\n scope.error = true;\n }\n };\n TextViewerDirective = __decorate([\n QMC.Directive('QMC.Documents', 'qmTextViewer', ['$qui', '$sce', 'QmcMediaService', 'QmcLanguageService'])\n ], TextViewerDirective);\n return TextViewerDirective;\n }());\n Documents.TextViewerDirective = TextViewerDirective;\n })(Documents = QMC.Documents || (QMC.Documents = {}));\n})(QMC || (QMC = {}));\n\n//# sourceMappingURL=../maps/qmc.common.js.map\n"],"names":["QMC","__extends","this","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__","constructor","prototype","create","__decorate","decorators","target","key","desc","c","arguments","length","r","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","__generator","body","f","y","t","_","label","sent","trys","ops","g","verb","throw","return","Symbol","iterator","n","v","op","TypeError","call","pop","push","__assign","assign","s","__spreadArrays","il","k","a","j","jl","Constants","UserSettingConstantsAndDefaults","LocalStorageConstants","Common","FULL_CALENDAR_PREMIUM_LICENSE","DEFAULT_PAGINATION_SIZE","GUID_EMPTY","DEFAULT_NAV_ID","OBJECTTYPE_CLIENT","OBJECTTYPE_EMPLOYEE","SHOW_ONLY_ACTIVE_EMPLOYEES_PREDEFINED_SEARCH_ID","SHOW_ALL_EMPLOYEES_PREDEFINED_SEARCH_ID","DEFAULT_ACTIVITY_ID","MESSAGE_INBOX_FOLDER_ID","MESSAGE_SENT_FOLDER_ID","MESSAGE_RECYCLEBIN_FOLDER_ID","DEFAULT_CLIENT_PREDEFINED_SEARCH_ID","DEFAULT_COUNTRY_ID","DEFAULT_DISEASE_CODE_SCHEMA","DEMAND_MEDICATION","IS_MOBILE","$","hasClass","DELETE_REASON_ID","EXECUTION_TYPE_SINGLE_ID","EXECUTION_TYPE_MULTIPLE_ID","APPROVAL_PENDING_ID","APPROVAL_APRROVED_ID","JOURNAL_COMMENTTYPE_NORMAL","JOURNAL_COMMENTTYPE_WARNING","SIGNATURE_SIGNING_PERSON_CLIENT","WV_DOCUMENT_RUBRIC","WV_YES","WV_NO","SMARTACTIONCACHE","FLS_NO_MISCONTACT","SHOWTIMEINSTEADOFDECIMAL","SHOULDLOADTABLEDATA_KEY","SHOULDLOADTABLEDATA","SHOWDATETOAZN","ALLOWEMPTYREPORTS","PLANEDRAWDAYS","PLANEDDAYSFUTURE","SHOWDATETOFLS","SHOWMONTHFILTERFLS","SIGNATUREHIDEREPORTS","SIGNATUREDIRECTSIGN","FLSMINUTESTOSIGN","FLSWEEKPLANNERSHOWHOLIDAY","FLS_NEUMEHREREBETREUTE_ZEITAUFFAELLEVERTEILEN","FLS_NEUMEHREREBETREUTE_ZEITAUFFAELLEVERTEILEN_FIX","GC_FLS_NEUMEHREREBETREUTE_ZEITRESETBEIVERTEILUNG","DEFAULTFLSCARETYPE","DEFAULTFLSCONTACTTYPE","DEFAULTSIGNINGPERSON","DEFAULTSIGNINGREASON","FLS_WEEKPLANNER_INCLUDE_FUTURE_CASES","FLS_CASE_FILTER_KEY","FLS_CASE_FILTER_DEFAULTS","carerTypeFilterId","onlyCurrentCases","INACTIVITYTIMEOUT","FINISHEDTASKSDAYS","LANDINGPAGE","NAVIGATION_DEFAULT_ID","ASKDROPPEDSERVICE","INQUIRE_STAMPIN_ON_LOGIN","INQUIRE_STAMPOUT_ON_LOGOUT","DAYSINPAST","SHOWONLYUNFETCHED","SERVERJOBTIMERINTERVALLINSEC","LAST_LANGUAGE_SELECTION","USER_MODULE_PERMISSIONS","FLS_DOCU_LIST_FILTER_DATE_FROM","FLS_DOCU_LIST_FILTER_DATE_TO","FLS_DOCU_LIST_HIDE_SIGNATURE","FLS_DOCU_LIST_SHOW_ONLY_OWN_CREATED","FLS_DOCU_LIST_SHOW_ONLY_OWN_CASES","FLS_PREVIOUS_STATE","FLS_SUMMARY_ORDER_ASCENDING","FLS_SUMMARY_LAST_SEARCH","MSG_LIST_FILTER_DATE_FROM","MSG_LIST_FILTER_DATE_TO","JOURNAL_FILTER_DISPLAY_DATE","JOURNAL_LAST_SELECTED_ID","JOURNAL_FILTER_PRIORITY_WV_ID","JOURNAL_FILTER_LIVING_AREA_WV_ID","JOURNAL_FILTER_COMMENT","JOURNAL_FILTER_AUTHOR","JOURNAL_FILTER_MARKINGS","JOURNAL_FILTER_PARTICIPANT","JOURNAL_FILTER_COMMENTS","JOURNAL_USE_CURRENT_DATE","TASK_LIST_HIDE_FINISHED","APPOINTMENT_TYPES_TO_SHOW","ORGANISATION_LAST_SELECTED_ID","CLIENT_COVER","AZN_PREVIOUS_STATE","WEEKPLANNER_SCROLLPOSITION","HttpBaseProvider","configureHttpProvider","$httpProvider","defaults","headers","get","Resolve","console","log","BaseService","$http","$q","MAX_RETRIES","_b","_a","data","retries","loggingOut","isLoggedIn","isRefreshing","apiData","url","api","apiKey","refresh","apiRefreshKey","sessionStorage","getItem","clear","setApiData","setItem","webClientBasePath","baseUrl","notification","response","status","warn","displayNotifications","undefined","formatErrors","globalErrors","fieldErrors","GlobalErrors","FieldErrors","errorList","pro","concat","_i","errorList_1","element","statusText","arr","title","type","icon","$qui","qmwcUI","arr_1","message","replace","notify","timer","logout","noReturn","dbConnection","window","clientExchange","hash","location","substr","indexOf","href","document","getElementById","removeAttribute","setAttribute","path","params","successDataManipulation","performGetRequest","getPagination","cachedGetItem","uncachedGet","cachedGet","cached","deferred","_this","token","defer","getAccessToken","setTimeout","promise","getMissedCallCounter","method","cache","Authorization","setMissedCallCounter","tryRefresh","catch","post","object","delete","put","putParameter","renewToken","getRefreshToken","accessToken","refreshToken","accessKey","refreshKey","trim","getResourceList","searchString","onlyActive","getInstituteList","parseInt","toString","getVehicleList","listSearch","$inject","UserInterface","successNote","deleteNote","deleteNotes","downloadNote","promptOptions","text","updateCalendar","fields","select","isMobile","createCalendarEvent","appointment","randomId","typeDefaults","event","id","objectId","dateFrom","moment","format","mid","mainAppointmentId","description","start","end","dateTo","participantObjectId","allDay","isAllDay","isFinished","isPrivate","isRecurring","recurrenceSettings","isTypeAppointment","isTypeFlsDocumentation","appointmentType","appointmentTypeId","isTypeTask","editable","color","colorHtml","className","iconCode","textColor","getTextColor","permissions","permFlag","isDeleted","defaultColor","filter","x","typeId","borderColor","backgroundColor","dataSet","filters","filterChache","split","map","obj","note","randomNum","Date","getTime","Math","floor","random","_timer","_overlay","overlay","prepend","css","click","addClass","modal","remove","addTimeToDate","date","time","toDate","setHours","getHours","setMinutes","getMinutes","getDurationInHours","year","month","day","duration","diff","asHours","getDurationInDays","hours","minute","seconds","asDays","roundTime","part","rounded","round","setSeconds","getDisplayedPropertiesFromSchema","schema","prop","table","Filter","Humanize","userService","getNavigatorLanguage","navigator","languages","userLanguage","language","browserLanguage","settingName","filterStub","fromStorage","setting","isBefore","add","fromNow","getUserSettings","locale","$stateful","NotEmpty","string","FullNameFormat","Shortner","substring","Html","$sce","val","trustAsHtml","DisplayFormat","item","html","StartFrom","input","slice","Controller","moduleName","controllerName","decoratedPropertyName","angular","module","controller","Directive","directiveName","dependencies","directive","args","classConstructor","ctor","child","Inject","Service","serviceName","service","config","$locationProvider","$stateProvider","$urlRouterProvider","qmcBase","$sceDelegateProvider","$qProvider","when","hashPrefix","html5Mode","enabled","requireBase","resourceUrlWhitelist","state","templateUrl","controllerAs","ready","bootstrap","constant","run","qmcLanguageService","loadLanguageTags","$rootScope","$state","rxhtmlTag","jQuery","htmlPrefilter","removeClass","updateSession","$on","toState","toParams","fromState","fromParams","history","name","unshift","_super","QmcLanguageService","ele","isDebug","languageTags","languageId","toLowerCase","isLoading","fromTag","toTag","asDict","dbConnectionString","finally","timeout","clearTimeout","keys","translate","tag","defaultValue","getLanguages","getCurrentLanguageId","setLanguageTag","QmcMediaService","convertToHtml","base64","sourceType","convertToPdf","getTextBlocks","getTextTemplates","getTextTemplateContent","getMediaFile","mediaType","getMediaThumbnail","maxSize","getMediaAttachement","documentId","attachmentId","postMediaAttachement","deleteMediaAttachementDirect","deleteMediaAttachement","QmcPermissionService","cacheTTL","permissionCache","getCachedValue","objectType","timestamp","setCachedValue","temp","getPermissionsByObjectType","force","getAction","getPermissionsByObjectTypes","objectTypes","forEach","all","getMediaPermissions","objectTypeBase","wvTypeId","folderCategoryId","getPermissionsForDataset","getPermissionsForGivenUserAndObjectType","userId","getLicense","QmcMarkItemService","getMarkItems","getSelectedMarkItems","parentObjectId","parentObjectType","checkIfItemsAreMarked","parentObjectIds","putSelectedMarkItems","QmcIdentityService","getIdentity","setSecretToken","access","getSecretToken","permissionService","restrict","transclude","scope","granted","route","loading","link","license","isArray","checkLicense","scopeApply","QmcPrivateContentService","getPrivateContent","parentId","referenceObjectId","putPrivateContent","postPrivateContent","Utilities","confirm","cb","prompt","staticBD","backdrop","keyboard","callback","bool","arraysEqual","_arr1","_arr2","arr1","sort","arr2","SmartAction","clientService","lng","$scope","keyWords","keyWordGroups","activeKeys","ignoredKeys","cacheObject","JSON","parse","waitForPermissionCache","stringify","createKeyWords","clientList","employeeList","getClientPersonList","displayTitle","getEmployeeList","getAllPersonLists","personLists","resetSmartAction","keyword","$$phase","$apply","checkKeyWord","searchContent","search","includes","perms","new","some","addKeywords","savePermissionCache","140005","140003","140002","400000","140033","750001","840501","140032","330003","140006","index","QmcWvService","getWvList","wvId","getWv","itemId","putWv","postWv","deleteWv","getSubWvList","subWvId","getSubWv","putSubWv","postSubWv","deleteSubWv","getSubWvListForParent","DetailUI","smartAufgabeForm","form","placeholder","lngTag","required","model","validate","messageTag","style","class","dataSource","startDate","multiple","maxLength","actions","smartContactpersonForm","displayDateTo","smartAppointmentForm","displayTime","disableTime","smartAbsenteeismForm","smartDiseaseForm","smartDocVisitForm","smartVaccinationForm","DokumentDirectiveController","stammdatenService","ui","participants","fileObject","base64String","fileName","files","formState","client","wv","$watch","clientsList","objType","clientID","functionWaiter","DokumentDirective","qmParticipants","bindToController","showStructure","getData","waitForClientListCache","getClientList","KassenbuchController","accountingBookList","depositList","voucherTypeList","depositTypeList","initForm","getAccountingBookReferences","values","group","objectTypeCaption","toLocaleLowerCase","references","clientId","newValue","oldValue","getAccountingBookList","accountingBookId","currency","KassenbuchDirective","getAccountingBookWv","datawvList","wvList","generateVoucherNrPossible","generateVoucherNrPreselection","createVoucherNr","getDepositList","getDepositTypeList","getVoucherTypeList","isDeposit","voucherTypeId","voucherNr","voucherText","amount","comment","version","checkCanSave","dataAccountingBookList","caption","paymentVoucherTypeWvList","isFix","depositVoucherTypeWvList","addAccountingBookEntry","parseFloat","postAccountingBookEntry","fadeOut","putAccountingBookEntry","ContactpersonController","ContactpersonDirective","getContactPersonWvList","contactPersonTypeId","salutationId","titleId","forename","birthday","isContactBan","getContactPersonTypeList","contactPersonTypeWvList","getSalutationList","salutationWvList","getTitleList","titleWvList","addContactperson","postContactPerson","putContactperson","AufgabeDirectiveController","taskService","employee","personList","employeesList","personId","AufgabeDirective","waitForPersonListsCache","waitForEmployeeListCache","getTaskWv","dataTaskWv","taskName","categoryId","priorityId","executionTypeId","dateToFinishTill","isAppointment","taskDescription","getParticipantsList","getCategoryList","categoryWvList","getPriorityList","priorityWvList","getExecutionTypeList","executionTypeWvList","addAufgabe","postTask","putAufgabe","putTask","AppointmentDirectiveController","terminService","selectedEmployeeIds","AppointmentDirective","participantIds","addAppointment","postAppointment","putAppointment","AbsenteeismDirectiveController","AbsenteeismDirective","getAbsenteeismWv","absenteeismReasonWvList","absenteeismReasonId","addAbsenteeism","extend","postAbsenteeism","DiseaseDirective","DiseaseDirectiveController","diseases","getDiseaseWvList","diseaseCodeSchemaWvList","events","vm","typeahead","source","query","process","getDiseasesBySearchText","diseaseCodeSchemaId","items","updater","diseaseId","addDisease","postDisease","DocVisitDirectiveController","doctors","medOrgas","DocvisitDirective","getDoctorList","getMedicalOrganisationList","doctorId","diagnose","discipline","getDoctors","addDocVisit","treaterObjectType","getTreaterObjectType","treaterId","postDoctorsVisit","VaccinationDirectiveController","VaccinationDirective","getVaccinationWv","diseaseVaccinationWvList","dateFollowupAppointment","batchNumber","getDiseases","addVaccination","postVaccination","Directives","ContingentDirective","flsService","qmOpen","qmCase","qmDate","attrs","dontShowIndirect","dontShowIndirectContingent","grep","copy","startOf","newVal","oldVal","load","getContingent","contingent","showTargetDetails","targetedAmounts","direct","indirect","IncludeDirective","$timeout","identityService","qmPath","qmId","qmHeaderName","qmParams","createIFrame","resize","secret","frame","iFrame","ceBaseUrl","ceUrl","headerHeight","height","innerHeight","createElement","colors","bodyColorClasses","classList","contains","src","startsWith","origin","pathname","URLSearchParams","sandbox","append","addEventListener","onresize","innerHtml","MarkItemDirective","markItemService","saveMarkItem","qmBtnCircle","qmParentObjectIds","qmParentObjectId","qmParentObjectType","markItems","selectedMarkItems","loadElements","isSelected","markItemId","enableReason","reason","initModal","saveSelectedMarkItems","MaximizeModalButton","isMax","toggle","buttonElement","parents","find","toggleClass","component","template","PrivateContent","privateContentService","savePrivateContent","qmReference","qmParent","qmObjectType","qmFloating","qmMuted","getPermission","newPC","sn","init","openModal","save","focus","storagePermission","now","createDateFromString","timeStamp","moduleAccess","modify","view","cachePrivateContentPermission","SurveyDirective","getSurvey","survey","closeSurvey","dismissSurvey","performed","surveyId","participateInSurvey","open","UdfContainer","show","Udf","allDataValid","_c","definitionId","definitionObjectType","referenceId","referenceObjectType","bindings","hideSaveButton","isTouched","isValid","disabled","FormDirective","udfService","rows","wvDsData","timeValues","formWatcher","touchWatcher","$postLink","reference","definition","reset","createRowsFromUdf","udf","$onDestroy","clearFormWatcher","loadWvAndDataSourcesFromUdf","watcher","_d","maxColumns","column","field","fieldType","row","max","this_1","_loop_2","isRequired","_loop_1","handleDateTimeWatch","getDs","MediaDirective","mediaService","yesNo","itemText","loadMedia","file","newForm","lastIndexOf","mediaId","createMedia","error","getUserDefinedFieldMedia","thumbnail","mimeType","postNewDocument","isMainDataSet","itemOrder","subtitle","documentTypeId","mainCategoryId","subCategoryId","createdObjectId","Error","getIcon","getFileExtension","getAcceptedFileTypes","openFile","selectedFile","loadingPreview","deleteFile","openNewFile","uploadFile","loadingNew","qmDisabled","SaveButtonDirective","scroll","checkViewport","setInterval","rect","getBoundingClientRect","top","bottom","documentElement","clientHeight","fadeIn","hide","StandardDirective","loadPermissions","showNotification","saveObject","udfId","updateUserDefinedField","timeframe","getUserDefinedField","initCheckFunc","permissionObjectType","SingletimeDirective","definitionValues","UdfUi","getDefinition","getUdfData","addSingletime","openFormModal","openSingletime","createSingletime","updateSingletime","deleteSingletime","createDateString","isValidDate","getUserDefinedFieldDefintion","udfs","TabDirective","saveFunctions","tabs","touched","valid","saveAll","promises","saveResults","reduce","prev","curr","getTabs","waitForEl","TabSingletimeDirective","timeframeForm","validation","warnings","errors","valiadateTimeframe","createTimeframe","createTabSingletime","deleteTabSingletime","timeFrameId","selectedUdf","saveTabs","TabTimeframeDirective","timeframes","timeframesMap","timeframeValidation","getTimeframes","timeframeId","timeframeIdSelect","action","addTimeframe","openTimeframe","deleteTimeframe","updateTimeframe","tempId","TimeframeDirective","ValueDisplayDirective","getValueString","getValue","join","qmcRounding","captions_1","QmcUdfService","wvTimestamp","ds","dsTimestamp","container","containerTimestamp","modulePath","timestampExceedsThreshold","threshold","deferred_1","deferred_2","getUserDefinedFields","deferred_3","createDefaults","singletimeId","postUserDefinedFieldMedia","dateFromNotRequired","DocumentDetailUI","attachedFilesTable","Datum","dType","Dateiname","Dateigröße","Aktionen","tooltip","permission","card","avatar","subtext","buttons","Documents","DocumentFolderStructureDirective","qmCreate","qmPersonMode","idDeletePrompt","showFolderStructure","folder","documentTypeWvList","mainCategoryWvList","subCategoryWvList","firstLoad","directiveCreated","fileChoser","createdFor","parent","print","webAllowDownload","newFolder","showMappings","foldersTreeList","foldersTreeListHierarchyEdit","lastFolderSelected","getTableAutoload","ltd","shouldLoadTableData","getSubCategoryList","selectedFolderHierarchyId","selectedFolderId","hierachyTitle","on","postFileToFolder","getDocumentMappingForObjecttype","mappings","setValidationBack","formStateDocuDirective","documentListItem","subTitle","mainCategory","attachedDocuments","fkParentHierarchy","noFolderCreation","backupForm","getDocumentList","addingFolder","addDocFolder","changeFolder","parentWvId","test","openMappingsModal","getFolder","toggler","getElementsByClassName","getDocumentUserConfig","from","parentElement","querySelector","getEditFolderHierarchy","hideUnderFolders","getSelectedHierarchyName","hierarchyFolder","children","splice","folders","folders_1","selectFolderHierarchy","saveDocFolderChanges","putDocFolder","dataDocFolder","editDocument","deleteDocFolder","containerId","deleteDocument","getDocumentWV","getDocumentsUserConfig","documentUserConfig","folderStructureIsCollapsable","docuId","addFileToDocument","dataFolder","folderIsTemplate","fkTemplate","getDocument","dataDocument","dataPermFolder","modifyFolder","deleteFolder","hasChildren","newFile","allowPreview","allowDownload","printFile","documentType","getWvName","subCategory","fileSize","fileSizeConvert","stateLink","createStateLink","previewDocument","dataFile","downloadFile","fileInfos","downloadAttachment","filename","document_1","blob","ext","fileType","base64ToBlob","extToMime","downloadBlob","deleteFileFromFolder","openReference","go","dataId","getSubFolderDocumentCount","getChildren","members","m","current","documentCount","foldersTreeList_1","sizeInBytes","pow","toFixed","wvObjNames_1","DocumentViewerDirective","qmData","qmFileName","qmFileType","qmReportFileId","allowPrint","prepareViewing","handleFile","downloadBase64","contentType","PdfViewerDirective","qmScale","qmPage","qmCallback","qmCallbackButton","qmDisableDownload","qmDisablePrint","pdfPath","URL","createObjectURL","openPdf","qmPdf","bind","pdfjsLib","GlobalWorkerOptions","workerSrc","Blob","_pdf","renderPdfPage","num","getPage","page","viewport","getViewport","scale","cParent","newCanvas","removeChild","appendChild","isNaN","renderContext","width","canvasContext","getContext","render","downloadPdfFile","download","endsWith","iframe","display","onload","contentWindow","SpreadViewerDirective","reportingService","qmSpread","qmSpreadName","qmSpreadId","elementId","chkbx","igScripts","isLoadedScript","lib","querySelectorAll","script","async","getElementsByTagName","openSpreadFile","errortext","ig","excel","Workbook","workbook","igSpreadsheet","allScriptsLoaded","initSpreadsheet","isFormulaBarVisible","editModeEntering","preventDefault","suffix","blobUrl_1","a_1","userAgent","match","msSaveOrOpenBlob","revokeObjectURL","originalName","originalSuffix","removeInvalidChars","getFinishedSpreadServerJobAsPdf","downloadSpreadFile","cell","downloadOriginalSpreadFile","area","nextSibling","cloneNode","childNodes","contentDocument","innerText","head","ImageViewerDirective","getMimeType","mime","win","write","close","TextViewerDirective","lngService","callbackButton","innerHTML","pdf","atob"],"mappings":"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"}