{"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.prototype.isLicenseAvailable = function (key) {\n return _super.prototype.get.call(this, \"/Navigation/License\", { allKeys: true }).then(function (data) {\n return data.some(function (x) { return x === key || x === 'NOLIC'; });\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","isLicenseAvailable","allKeys","some","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","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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"}