{"version":3,"file":"site.min.js","sources":["site.js"],"sourcesContent":["var eventBus = new Vue();\r\nvar loginUrl = \"/account/login\";\r\n\r\nNumber.isInteger = Number.isInteger || function (value)\r\n{\r\n return typeof value === \"number\" &&\r\n isFinite(value) &&\r\n Math.floor(value) === value;\r\n};\r\n\r\n// https://tc39.github.io/ecma262/#sec-array.prototype.find\r\nif (!Array.prototype.find)\r\n{\r\n Object.defineProperty(Array.prototype, \"find\",\r\n {\r\n value: function (predicate)\r\n {\r\n // 1. Let O be ? ToObject(this value).\r\n if (this === null)\r\n {\r\n throw new TypeError('\"this\" is null or not defined');\r\n }\r\n\r\n var o = Object(this);\r\n\r\n // 2. Let len be ? ToLength(? Get(O, \"length\")).\r\n var len = o.length >>> 0;\r\n\r\n // 3. If IsCallable(predicate) is false, throw a TypeError exception.\r\n if (typeof predicate !== \"function\")\r\n {\r\n throw new TypeError(\"predicate must be a function\");\r\n }\r\n\r\n // 4. If thisArg was supplied, let T be thisArg; else let T be undefined.\r\n var thisArg = arguments[1];\r\n\r\n // 5. Let k be 0.\r\n var k = 0;\r\n\r\n // 6. Repeat, while k < len\r\n while (k < len)\r\n {\r\n // a. Let Pk be ! ToString(k).\r\n // b. Let kValue be ? Get(O, Pk).\r\n // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).\r\n // d. If testResult is true, return kValue.\r\n var kValue = o[k];\r\n\r\n if (predicate.call(thisArg, kValue, k, o))\r\n {\r\n return kValue;\r\n }\r\n // e. Increase k by 1.\r\n k++;\r\n }\r\n\r\n // 7. Return undefined.\r\n return undefined;\r\n },\r\n configurable: true,\r\n writable: true\r\n });\r\n}\r\n\r\n// https://tc39.github.io/ecma262/#sec-array.prototype.findIndex\r\nif (!Array.prototype.findIndex)\r\n{\r\n Object.defineProperty(Array.prototype, 'findIndex', {\r\n value: function (predicate)\r\n {\r\n // 1. Let O be ? ToObject(this value).\r\n if (this === null)\r\n {\r\n throw new TypeError('\"this\" is null or not defined');\r\n }\r\n\r\n var o = Object(this);\r\n\r\n // 2. Let len be ? ToLength(? Get(O, \"length\")).\r\n var len = o.length >>> 0;\r\n\r\n // 3. If IsCallable(predicate) is false, throw a TypeError exception.\r\n if (typeof predicate !== 'function')\r\n {\r\n throw new TypeError('predicate must be a function');\r\n }\r\n\r\n // 4. If thisArg was supplied, let T be thisArg; else let T be undefined.\r\n var thisArg = arguments[1];\r\n\r\n // 5. Let k be 0.\r\n var k = 0;\r\n\r\n // 6. Repeat, while k < len\r\n while (k < len)\r\n {\r\n // a. Let Pk be ! ToString(k).\r\n // b. Let kValue be ? Get(O, Pk).\r\n // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).\r\n // d. If testResult is true, return k.\r\n var kValue = o[k];\r\n if (predicate.call(thisArg, kValue, k, o))\r\n {\r\n return k;\r\n }\r\n // e. Increase k by 1.\r\n k++;\r\n }\r\n\r\n // 7. Return -1.\r\n return -1;\r\n },\r\n configurable: true,\r\n writable: true\r\n });\r\n}\r\n\r\nif (!String.prototype.endsWith)\r\n{\r\n String.prototype.endsWith = function (search, this_len)\r\n {\r\n if (this_len === undefined || this_len > this.length)\r\n {\r\n this_len = this.length;\r\n }\r\n\r\n return this.substring(this_len - search.length, this_len) === search;\r\n };\r\n}\r\n\r\nif (!Array.prototype.filter)\r\n{\r\n Array.prototype.filter = function(func, thisArg)\r\n {\r\n \"use strict\";\r\n\r\n if (!((typeof func === \"Function\" || typeof func === \"function\") && this))\r\n {\r\n throw new TypeError();\r\n }\r\n\r\n var len = this.length >>> 0;\r\n var result = new Array(len);\r\n var t = this;\r\n var c = 0;\r\n var i = -1;\r\n\r\n if (thisArg === undefined)\r\n {\r\n while (++i !== len)\r\n {\r\n if (i in this)\r\n {\r\n if (func(t[i], i, t))\r\n {\r\n result[c++] = t[i];\r\n }\r\n }\r\n }\r\n }\r\n else\r\n {\r\n while (++i !== len)\r\n {\r\n if (i in this)\r\n {\r\n if (func.call(thisArg, t[i], i, t))\r\n {\r\n result[c++] = t[i];\r\n }\r\n }\r\n }\r\n }\r\n\r\n result.length = c;\r\n\r\n return result;\r\n };\r\n}\r\n\r\nfunction isInputTypeSupported(inputType)\r\n{\r\n var input = document.createElement(\"input\");\r\n var value = \"a\";\r\n\r\n input.setAttribute(\"type\", inputType);\r\n input.setAttribute(\"value\", value);\r\n\r\n return (input.value !== value);\r\n}\r\n\r\nfunction formatString(text, jsonObj)\r\n{\r\n if (jsonObj === undefined || jsonObj === null)\r\n {\r\n return text;\r\n }\r\n\r\n var pattern = new RegExp(/\\{([^}]+)\\}/g);\r\n var result = text;\r\n\r\n if (pattern.test(text))\r\n {\r\n var matches = text.match(pattern);\r\n\r\n Object.keys(jsonObj).forEach(function (key, index)\r\n {\r\n for (var i = 0; i < matches.length; i++)\r\n {\r\n if ((\"{\" + key + \"}\") === matches[i])\r\n {\r\n result = result.replace(new RegExp(matches[i], \"g\"), jsonObj[key]);\r\n }\r\n }\r\n });\r\n } \r\n\r\n return result;\r\n}\r\n\r\nfunction debounce(func, wait, immediate)\r\n{\r\n var timeout;\r\n\r\n return function ()\r\n {\r\n var context = this;\r\n var args = arguments;\r\n\r\n var later = function ()\r\n {\r\n timeout = null;\r\n\r\n if (!immediate)\r\n {\r\n func.apply(context, args);\r\n }\r\n };\r\n\r\n var callNow = immediate && !timeout;\r\n\r\n clearTimeout(timeout);\r\n timeout = setTimeout(later, wait);\r\n\r\n if (callNow)\r\n {\r\n func.apply(context, args);\r\n }\r\n };\r\n}\r\n\r\nfunction throttle(func, limit)\r\n{\r\n var lastFunc;\r\n var lastRan;\r\n\r\n return function()\r\n {\r\n var context = this;\r\n var args = arguments;\r\n\r\n if (!lastRan)\r\n {\r\n func.apply(context, args);\r\n lastRan = Date.now();\r\n }\r\n else\r\n {\r\n clearTimeout(lastFunc);\r\n\r\n lastFunc = setTimeout(function()\r\n {\r\n if ((Date.now() - lastRan) >= limit)\r\n {\r\n func.apply(context, args);\r\n lastRan = Date.now();\r\n }\r\n }, limit - (Date.now() - lastRan));\r\n }\r\n };\r\n}\r\n\r\nfunction limitText(value, max)\r\n{\r\n if (value && typeof value === \"string\")\r\n {\r\n if (value.length > max)\r\n {\r\n return value.substr(0, max - 3) + \"...\";\r\n }\r\n }\r\n\r\n return value;\r\n}\r\n\r\nfunction formatBool(value, trueString, falseString)\r\n{\r\n if (typeof value === \"boolean\")\r\n {\r\n if (value)\r\n {\r\n return trueString;\r\n }\r\n\r\n return falseString;\r\n }\r\n\r\n if (value)\r\n {\r\n return value.toString();\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction formatDateTime(value, format)\r\n{\r\n if (value && typeof value === \"string\")\r\n {\r\n if (format && typeof format === \"string\" && format !== \"\")\r\n {\r\n return moment(value).format(format);\r\n }\r\n\r\n return moment(value).format(\"DD/MM/YYYY HH:mm\");\r\n }\r\n\r\n return value;\r\n}\r\n\r\nfunction gotoLogin(url, querystring)\r\n{\r\n var returnUrl = \"\";\r\n\r\n if (url && url !== null && url !== \"\")\r\n {\r\n if (querystring && querystring !== null && querystring !== \"\")\r\n {\r\n returnUrl = \"?returnUrl=\" + encodeURIComponent(url + querystring);\r\n }\r\n else\r\n {\r\n returnUrl = \"?returnUrl=\" + encodeURIComponent(url);\r\n }\r\n }\r\n\r\n window.location.href = loginUrl + returnUrl;\r\n}\r\n\r\nVue.filter(\"formatFileSize\", function (value)\r\n{\r\n if (value && typeof value === \"number\")\r\n {\r\n var size = 0;\r\n var unit = \"MB\";\r\n\r\n if (value >= 1048576)\r\n {\r\n size = value / (1024 * 1024);\r\n }\r\n else\r\n {\r\n size = value / 1024;\r\n unit = \"kB\";\r\n }\r\n\r\n if (Number.isInteger(size))\r\n {\r\n return size + unit;\r\n }\r\n else\r\n {\r\n return size.toFixed(2) + unit;\r\n }\r\n }\r\n\r\n return value;\r\n});\r\n\r\nVue.filter(\"formatCurrency\", function (value)\r\n{\r\n if (typeof value === \"number\")\r\n {\r\n return \"£ \" + value.toFixed(2);\r\n }\r\n\r\n return value;\r\n});\r\n\r\nVue.filter(\"formatDateTime\", function (value)\r\n{\r\n if (value && typeof value === \"string\")\r\n {\r\n return moment(value).format(\"DD/MM/YYYY HH:mm\");\r\n }\r\n\r\n return value;\r\n});\r\n\r\nVue.filter(\"formatDate\", function (value)\r\n{\r\n if (value && typeof value === \"string\")\r\n {\r\n return moment(value).format(\"DD/MM/YYYY\");\r\n }\r\n\r\n return value;\r\n});\r\n\r\nVue.filter(\"formatTime\", function (value)\r\n{\r\n if (value && typeof value === \"string\")\r\n {\r\n return moment(value).format(\"HH:mm\");\r\n }\r\n\r\n return value;\r\n});\r\n\r\nVue.filter(\"formatYesNo\", function (value)\r\n{\r\n return formatBool(value, \"Yes\", \"No\");\r\n});\r\n\r\nVue.filter(\"formatEnabled\", function (value)\r\n{\r\n return formatBool(value, \"Enabled\", \"Disabled\");\r\n});\r\n\r\nVue.filter(\"limitText\", function (value)\r\n{\r\n if (value && typeof value === \"string\")\r\n {\r\n if (value.length > 50)\r\n {\r\n return value.substr(0, 47) + \"...\";\r\n }\r\n }\r\n\r\n return value;\r\n});\r\n\r\nVue.component(\"paging-item\",\r\n {\r\n template: \"#paging-template\",\r\n props:\r\n {\r\n page: Number,\r\n pages: Number,\r\n count: Number\r\n },\r\n computed:\r\n {\r\n hasItems: function ()\r\n {\r\n return this.count > 0;\r\n },\r\n canPage: function ()\r\n {\r\n return this.pages > 1;\r\n },\r\n onFirstPage: function ()\r\n {\r\n return this.page === 1;\r\n },\r\n onLastPage: function ()\r\n {\r\n return this.page === this.pages;\r\n }\r\n },\r\n methods:\r\n {\r\n gotoFirstPage: function () { this.$emit(\"goto-page\", 1); },\r\n gotoPrevPage: function () { this.$emit(\"goto-page\", (this.page - 1)); },\r\n gotoNextPage: function () { this.$emit(\"goto-page\", (this.page + 1)); },\r\n gotoLastPage: function () { this.$emit(\"goto-page\", this.pages); }\r\n }\r\n });\r\n\r\nVue.component(\"recordcount-item\",\r\n {\r\n template: \"#recordcount-template\",\r\n props:\r\n {\r\n page: Number,\r\n pages: Number,\r\n count: Number,\r\n name: String\r\n },\r\n computed:\r\n {\r\n hasItems: function ()\r\n {\r\n return this.count > 0;\r\n }\r\n }\r\n });\r\n\r\nVue.component(\"notification-item\",\r\n {\r\n template: \"#notification-template\",\r\n props:\r\n {\r\n id: { type: String, required: false, default: \"notification\" },\r\n fixable: { type: Boolean, required: false, default: true }\r\n },\r\n data: function ()\r\n {\r\n return { message: null, items: [], success: false, error: false, notSeen: false, fixed: false };\r\n },\r\n created: function ()\r\n {\r\n eventBus.$on(\"notify-success\", this.showSuccess);\r\n eventBus.$on(\"notify-error\", this.showError);\r\n eventBus.$on(\"notify-clear\", this.clear);\r\n eventBus.$on(\"notify-fix\", this.fix);\r\n },\r\n beforeDestroy: function ()\r\n {\r\n eventBus.$off(\"notify-success\", this.showSuccess);\r\n eventBus.$off(\"notify-error\", this.showError);\r\n eventBus.$off(\"notify-clear\", this.clear);\r\n eventBus.$off(\"notify-fix\", this.fix);\r\n },\r\n mounted: function ()\r\n {\r\n if (this.fixable)\r\n {\r\n if (bodyTop === undefined)\r\n {\r\n bodyTop = $(\"#body-container\").offset().top;\r\n }\r\n\r\n window.addEventListener(\"scroll\", notificationScroll);\r\n }\r\n },\r\n computed:\r\n {\r\n hasMessage: function ()\r\n {\r\n return this.success || this.error;\r\n },\r\n \r\n hasItems: function ()\r\n {\r\n return this.items.length > 0;\r\n }\r\n },\r\n methods:\r\n {\r\n fix: function(value, id)\r\n {\r\n if (this.fixable && (id === undefined || id === this.id))\r\n {\r\n this.fixed = value;\r\n }\r\n },\r\n\r\n clear: function(id)\r\n {\r\n if (id === undefined || id === this.id)\r\n {\r\n this.error = false;\r\n this.success = false;\r\n this.message = null;\r\n this.notSeen = false;\r\n\r\n if (this.items.length > 0)\r\n {\r\n this.items.splice(0, this.items.length);\r\n }\r\n }\r\n },\r\n\r\n showSuccess: function(message, id)\r\n {\r\n if (message !== undefined && message !== null && (id === undefined || id === this.id))\r\n {\r\n this.error = false;\r\n this.success = true;\r\n this.message = message;\r\n\r\n if (this.items.length > 0)\r\n {\r\n this.items.splice(0, this.items.length);\r\n }\r\n\r\n this.notSeen = this.fixed;\r\n }\r\n },\r\n\r\n showError: function(error, id)\r\n {\r\n if (error !== undefined && error !== null && (id === undefined || id === this.id))\r\n {\r\n this.success = false;\r\n this.error = true;\r\n\r\n if (this.items.length > 0)\r\n {\r\n this.items.splice(0, this.items.length);\r\n }\r\n\r\n if (typeof error === \"string\")\r\n {\r\n this.message = error;\r\n return;\r\n }\r\n\r\n if (error.message !== undefined && error.message !== null)\r\n {\r\n this.message = error.message;\r\n }\r\n\r\n if (error.errors !== undefined && error.errors !== null)\r\n {\r\n if (typeof error.errors === \"string\")\r\n {\r\n this.items.push(error.errors);\r\n }\r\n else if (error.errors.constructor === Array && error.errors.length > 0)\r\n {\r\n var thisObj = this;\r\n\r\n error.errors.forEach(function (errorItem)\r\n {\r\n if (typeof errorItem === \"string\")\r\n {\r\n thisObj.items.push(errorItem);\r\n }\r\n else\r\n {\r\n Object.keys(error.errors).forEach(function (key, index)\r\n {\r\n if (error.errors[key] === \"string\")\r\n {\r\n thisObj.items.push(error.errors[key]);\r\n }\r\n else\r\n {\r\n error.errors[key].forEach(function (item)\r\n {\r\n thisObj.items.push(item);\r\n });\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n this.notSeen = this.fixed;\r\n } \r\n },\r\n\r\n notificationSeen: function()\r\n {\r\n this.notSeen = false;\r\n }\r\n }\r\n });\r\n \r\nVue.component(\"modal-item\",\r\n {\r\n template: \"#modal-template\",\r\n props:\r\n {\r\n id: String,\r\n title: String,\r\n text: String,\r\n confirmText: String,\r\n confirmType: String,\r\n cancelText: String\r\n },\r\n data: function ()\r\n {\r\n return { eventInfo: null, dialogText: null, confirmPrimary: false, confirmSecondary: false, confirmSuccess: false, confirmWarning: false, confirmDanger: false };\r\n },\r\n created: function ()\r\n {\r\n if (this.confirmType === null || this.confirmType === \"primary\")\r\n {\r\n this.confirmPrimary = true;\r\n }\r\n else if (this.confirmType === \"secondary\")\r\n {\r\n this.confirmSecondary = true;\r\n }\r\n else if (this.confirmType === \"success\")\r\n {\r\n this.confirmSuccess = true;\r\n }\r\n else if (this.confirmType === \"warning\")\r\n {\r\n this.confirmWarning = true;\r\n }\r\n else if (this.confirmType === \"danger\")\r\n {\r\n this.confirmDanger = true;\r\n }\r\n\r\n this.dialogText = this.text;\r\n\r\n eventBus.$on(\"show-modal\", this.show);\r\n },\r\n beforeDestroy: function ()\r\n {\r\n eventBus.$off(\"show-modal\", this.show);\r\n },\r\n methods:\r\n {\r\n confirmed: function ()\r\n {\r\n $(\"#\" + this.id).modal(\"hide\");\r\n\r\n if (this.eventInfo !== null)\r\n {\r\n this.$emit(\"confirmed\", JSON.parse(this.eventInfo));\r\n }\r\n else\r\n {\r\n this.$emit(\"confirmed\");\r\n }\r\n },\r\n\r\n cancelled: function ()\r\n {\r\n $(\"#\" + this.id).modal(\"hide\");\r\n\r\n if (this.eventInfo !== null)\r\n {\r\n this.$emit(\"cancelled\", JSON.parse(this.eventInfo));\r\n }\r\n else\r\n {\r\n this.$emit(\"cancelled\");\r\n }\r\n },\r\n\r\n show: function (e)\r\n {\r\n if (e.id === this.id)\r\n {\r\n if (e.info && e.info !== null)\r\n {\r\n this.eventInfo = JSON.stringify(e.info);\r\n this.dialogText = formatString(this.text, e.info);\r\n }\r\n else\r\n {\r\n this.eventInfo = null;\r\n }\r\n\r\n $(\"#\" + this.id).modal(\"show\");\r\n }\r\n }\r\n }\r\n });\r\n\r\nVue.component(\"actoast-item\",\r\n {\r\n template: \"#actoast-template\",\r\n props:\r\n {\r\n toast: { type: Object, required: true }\r\n },\r\n mounted: function()\r\n {\r\n if (this.toast.autoHide)\r\n {\r\n var hideId = this.toast.id;\r\n\r\n setTimeout(function() { eventBus.$emit(\"toast-hide\", hideId); }, 8000 );\r\n }\r\n },\r\n computed:\r\n {\r\n hasMessage: function ()\r\n {\r\n return (this.toast.message && this.toast.message !== \"\");\r\n },\r\n\r\n hasMessages: function ()\r\n {\r\n return this.toast.messages && this.toast.messages.constructor === Array && this.toast.messages.length > 0;\r\n },\r\n\r\n hasUrl: function ()\r\n {\r\n return (this.toast.url.href && this.toast.url.href !== \"\");\r\n }\r\n },\r\n methods:\r\n {\r\n close: function()\r\n {\r\n eventBus.$emit(\"toast-close\", this.toast.id);\r\n }\r\n }\r\n });\r\n\r\nVue.component(\"actoasts-item\",\r\n {\r\n template: \"#actoasts-template\",\r\n data: function()\r\n {\r\n return { seq: 0, items: [] };\r\n },\r\n created: function ()\r\n {\r\n eventBus.$on(\"toast-show\", this.show);\r\n eventBus.$on(\"toast-hide\", this.hide);\r\n eventBus.$on(\"toast-close\", this.close);\r\n },\r\n beforeDestroy: function ()\r\n {\r\n eventBus.$off(\"toast-show\", this.show);\r\n eventBus.$off(\"toast-hide\", this.hide);\r\n eventBus.$off(\"toast-close\", this.close);\r\n },\r\n computed:\r\n {\r\n hasItems: function()\r\n {\r\n return this.items.length > 0;\r\n } \r\n },\r\n methods:\r\n {\r\n show: function(info)\r\n {\r\n this.seq++;\r\n\r\n var item =\r\n {\r\n id: this.seq,\r\n title: info.title,\r\n message: info.message,\r\n messages: info.messages,\r\n url: { href: null, text: null },\r\n onClose: info.onClose,\r\n autoHide: true\r\n };\r\n\r\n if (info.url)\r\n {\r\n item.url.href = info.url.href;\r\n\r\n if (info.url.text && info.url.text !== \"\")\r\n {\r\n item.url.text = info.url.text;\r\n }\r\n else\r\n {\r\n item.url.text = info.url.href;\r\n }\r\n }\r\n\r\n if (info.autoHide !== undefined && info.autoHide !== null)\r\n {\r\n item.autoHide = info.autoHide;\r\n }\r\n\r\n this.items.push(item);\r\n },\r\n\r\n hide: function(id)\r\n {\r\n var index = this.items.findIndex(function (item) { return item.id === id; });\r\n\r\n if (index !== -1)\r\n {\r\n this.items.splice(index, 1);\r\n }\r\n },\r\n\r\n close: function(id)\r\n {\r\n var index = this.items.findIndex(function (item) { return item.id === id; });\r\n\r\n if (index !== -1)\r\n {\r\n if (this.items[index].onClose && (typeof this.items[index].onClose === \"function\"))\r\n {\r\n this.items[index].onClose.call();\r\n }\r\n\r\n this.items.splice(index, 1);\r\n }\r\n }\r\n }\r\n });\r\n \r\nvar getObject = function(action, headers)\r\n{\r\n return new Promise(function(resolve, reject)\r\n {\r\n $.ajax(\r\n {\r\n type: \"GET\",\r\n url: action,\r\n contentType: \"application/json; charset=utf-8\",\r\n headers: headers,\r\n async: true\r\n })\r\n .fail(function (jqxhr, textStatus, errorThrown)\r\n {\r\n if (jqxhr.status === 401)\r\n {\r\n gotoLogin(window.location.pathname, window.location.search);\r\n }\r\n else\r\n {\r\n reject(getJqxhrError(jqxhr, \"There was a problem with the request.\"));\r\n }\r\n })\r\n .done(function (data)\r\n {\r\n resolve(data);\r\n })\r\n .always(function ()\r\n {\r\n });\r\n });\r\n};\r\n\r\nvar submitForm = function(action, method, headers, json)\r\n{\r\n return new Promise(function(resolve, reject)\r\n {\r\n var formMethod = method;\r\n\r\n if (formMethod === \"PUT\")\r\n {\r\n formMethod = \"POST\";\r\n }\r\n\r\n $.ajax(\r\n {\r\n type: formMethod,\r\n url: action,\r\n contentType: \"application/json; charset=utf-8\",\r\n dataType: \"json\",\r\n data: json,\r\n headers: headers,\r\n async: true\r\n })\r\n .fail(function (jqxhr, textStatus, errorThrown)\r\n {\r\n if (jqxhr.status === 401)\r\n {\r\n gotoLogin(window.location.pathname, window.location.search);\r\n }\r\n else\r\n {\r\n reject(getJqxhrError(jqxhr, \"There was a problem with the request.\"));\r\n }\r\n })\r\n .done(function (data)\r\n {\r\n resolve(data);\r\n })\r\n .always(function ()\r\n {\r\n });\r\n });\r\n};\r\n\r\nvar deleteObject = function (action, headers)\r\n{\r\n return new Promise(function (resolve, reject)\r\n {\r\n $.ajax(\r\n {\r\n type: \"DELETE\",\r\n url: action,\r\n headers: headers,\r\n async: true\r\n })\r\n .fail(function (jqxhr, textStatus, errorThrown)\r\n {\r\n if (jqxhr.status === 401)\r\n {\r\n gotoLogin(window.location.pathname, window.location.search);\r\n }\r\n else\r\n {\r\n reject(getJqxhrError(jqxhr, \"There was a problem with the request.\"));\r\n }\r\n })\r\n .done(function (data)\r\n {\r\n resolve(data);\r\n })\r\n .always(function ()\r\n {\r\n });\r\n });\r\n};\r\n\r\nfunction getJqxhrError(jqxhr, defaultMessage)\r\n{\r\n var result = defaultMessage;\r\n\r\n if (jqxhr.status === 404)\r\n {\r\n result = \"URL not found.\";\r\n }\r\n else if (jqxhr.responseJSON && jqxhr.responseJSON !== null)\r\n {\r\n result = jqxhr.responseJSON;\r\n }\r\n else if (jqxhr.responseText && jqxhr.responseText !== null)\r\n {\r\n result = jqxhr.responseText;\r\n }\r\n else\r\n {\r\n result = \"System error (it has been logged).\";\r\n }\r\n\r\n return result;\r\n}\r\n\r\nvar bodyTop;\r\nvar notificationFixed = false;\r\n//var notificationBusy = false;\r\nvar angelShown = false;\r\nvar windowWidth = 0;\r\n\r\nvar notificationScroll = throttle(function ()\r\n{\r\n var windowTop = (window.pageYOffset || document.documentElement.scrollTop) - (document.documentElement.clientTop || 0);\r\n\r\n $(\".notification-wrapper.fixable\").each(function ()\r\n {\r\n var elementTop = windowTop;\r\n\r\n if ($(this).is(\":visible\"))\r\n {\r\n elementTop = $(this).offset().top;\r\n }\r\n else if ($(this).prev(\":visible\").length === 1)\r\n {\r\n elementTop = $(this).parent().offset().top;\r\n }\r\n else\r\n {\r\n elementTop = $(this).parent().offset().top;\r\n }\r\n\r\n if (windowTop > elementTop && !notificationFixed)\r\n {\r\n //if (!notificationFixed)\r\n //{\r\n //notificationBusy = true;\r\n notificationFixed = true;\r\n //$(this).css(\"height\", $(this).height() + \"px\");\r\n eventBus.$emit(\"notify-fix\", true);\r\n console.log(\"notification should be stuck\");\r\n console.log(\"elementTop = \" + elementTop);\r\n console.log(\"windowTop = \" + windowTop);\r\n //notificationBusy = false;\r\n //}\r\n }\r\n else if (windowTop < (elementTop + 1) && notificationFixed)\r\n {\r\n //notificationBusy = true;\r\n notificationFixed = false;\r\n eventBus.$emit(\"notify-fix\", false);\r\n //$(this).css(\"height\", \"auto\");\r\n console.log(\"notification should be unstuck\");\r\n //notificationBusy = false;\r\n }\r\n });\r\n}, 25);\r\n\r\nfunction toggleMenu()\r\n{\r\n var menu = document.getElementById(\"main-nav-menu\");\r\n var nav = document.getElementById(\"main-nav\");\r\n\r\n if (menu.classList.contains(\"slide-up\"))\r\n {\r\n menu.classList.remove(\"slide-up\");\r\n menu.classList.add(\"slide-down\");\r\n nav.classList.remove(\"slide-up\");\r\n nav.classList.add(\"slide-down\");\r\n }\r\n else\r\n {\r\n menu.classList.remove(\"slide-down\");\r\n menu.classList.add(\"slide-up\");\r\n nav.classList.remove(\"slide-down\");\r\n nav.classList.add(\"slide-up\");\r\n }\r\n\r\n return false;\r\n}\r\n\r\nfunction clearLoading()\r\n{\r\n var elements = document.getElementsByClassName(\"vloading\");\r\n\r\n for (var i = 0, l = elements.length; i !== l; i++) {\r\n elements[0].classList.remove(\"vloading\");\r\n }\r\n}\r\n\r\ndocument.getElementById(\"main-nav-button\").onclick = toggleMenu;\r\n\r\nvar wrappers = document.getElementsByClassName(\"cssload-wrapper\");\r\n\r\nfor (var wrapIndex = 0, wrapLength = wrappers.length; wrapIndex !== wrapLength; wrapIndex++)\r\n{\r\n if (wrappers[wrapIndex].parentElement)\r\n {\r\n wrappers[wrapIndex].parentElement.style.position = \"relative\";\n }\r\n}\r\n\r\nwrappers = null;"],"names":["eventBus","Vue","loginUrl","isInputTypeSupported","inputType","input","document","createElement","setAttribute","value","formatString","text","jsonObj","matches","pattern","RegExp","result","test","match","Object","keys","forEach","key","index","i","length","replace","debounce","func","wait","immediate","timeout","context","this","args","arguments","callNow","clearTimeout","setTimeout","apply","throttle","limit","lastFunc","lastRan","Date","now","limitText","max","substr","formatBool","trueString","falseString","toString","formatDateTime","format","moment","gotoLogin","url","querystring","returnUrl","encodeURIComponent","window","location","href","Number","isInteger","isFinite","Math","floor","Array","prototype","find","defineProperty","predicate","TypeError","o","len","thisArg","k","kValue","call","configurable","writable","findIndex","String","endsWith","search","this_len","undefined","substring","filter","t","c","size","unit","toFixed","component","template","props","page","pages","count","computed","hasItems","canPage","onFirstPage","onLastPage","methods","gotoFirstPage","$emit","gotoPrevPage","gotoNextPage","gotoLastPage","name","id","type","required","default","fixable","Boolean","data","message","items","success","error","notSeen","fixed","created","$on","showSuccess","showError","clear","fix","beforeDestroy","$off","mounted","bodyTop","$","offset","top","addEventListener","notificationScroll","hasMessage","splice","thisObj","errors","push","constructor","errorItem","item","notificationSeen","title","confirmText","confirmType","cancelText","eventInfo","dialogText","confirmPrimary","confirmSecondary","confirmSuccess","confirmWarning","confirmDanger","show","confirmed","modal","JSON","parse","cancelled","e","info","stringify","toast","hideId","autoHide","hasMessages","messages","hasUrl","close","seq","hide","onClose","getObject","action","headers","Promise","resolve","reject","ajax","contentType","async","fail","jqxhr","textStatus","errorThrown","status","pathname","getJqxhrError","done","always","submitForm","method","json","formMethod","dataType","deleteObject","defaultMessage","responseJSON","responseText","notificationFixed","angelShown","windowWidth","windowTop","pageYOffset","documentElement","scrollTop","clientTop","each","elementTop","is","prev","parent","console","log","toggleMenu","menu","getElementById","nav","classList","contains","remove","add","clearLoading","elements","getElementsByClassName","l","onclick","wrappers","wrapIndex","wrapLength","parentElement","style","position"],"mappings":"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"}