(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[65],{

/***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/main/computer/Log.vue?vue&type=script&lang=js&":
/*!**************************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/main/computer/Log.vue?vue&type=script&lang=js& ***!
  \**************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils_computer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/utils/computer */ \"./src/utils/computer.js\");\n/* harmony import */ var _utils_socket__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/utils/socket */ \"./src/utils/socket.js\");\n/* harmony import */ var _utils_string__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/utils/string */ \"./src/utils/string.js\");\n/* harmony import */ var _utils_date__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/utils/date */ \"./src/utils/date.js\");\n/* harmony import */ var _utils_http__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/utils/http */ \"./src/utils/http.js\");\n/* harmony import */ var _utils_document__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/utils/document */ \"./src/utils/document.js\");\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n  props: {\n    value: Boolean,\n    computer: Object\n  },\n  components: {\n    Modal: () => __webpack_require__.e(/*! import() */ 2).then(__webpack_require__.bind(null, /*! @/components/main/Modal.vue */ \"./src/components/main/Modal.vue\"))\n  },\n  computed: {\n    subtitle() {\n      if (this.computer.systemInfo.dpLogSent) return `Updated ${Object(_utils_date__WEBPACK_IMPORTED_MODULE_3__[\"fromNow\"])(this.computer.systemInfo.dpLogSent)}`;else return null;\n    },\n    parseAndRound() {\n      return str => {\n        return Object(_utils_string__WEBPACK_IMPORTED_MODULE_2__[\"parseAndRound\"])(str);\n      };\n    },\n    name() {\n      return computer => {\n        return _utils_computer__WEBPACK_IMPORTED_MODULE_0__[\"default\"].getName(computer);\n      };\n    },\n    fromNow() {\n      return date => {\n        return Object(_utils_date__WEBPACK_IMPORTED_MODULE_3__[\"fromNow\"])(date);\n      };\n    },\n    toIso() {\n      return date => {\n        return Object(_utils_date__WEBPACK_IMPORTED_MODULE_3__[\"toReadable\"])(date);\n      };\n    }\n  },\n  data() {\n    return {\n      log: null,\n      originalDpLogSent: null,\n      refreshing: false,\n      interval: null\n    };\n  },\n  beforeDestroy() {\n    clearInterval(this.interval);\n  },\n  created() {\n    this.refresh(true);\n  },\n  methods: {\n    async getLog() {\n      const res = await Object(_utils_http__WEBPACK_IMPORTED_MODULE_4__[\"postApi\"])(\"get/computerLog\", {\n        computerUID: this.computer.uid,\n        domainUID: this.$route.params.domainUID\n      });\n      this.log = res[0];\n      this.$nextTick(() => {\n        Object(_utils_document__WEBPACK_IMPORTED_MODULE_5__[\"scrollToEnd\"])(\"modal-body\");\n      });\n    },\n    async refresh(force) {\n      if (!this.refreshing && (this.computer.online || force)) {\n        this.refreshing = true;\n        this.originalDpLogSent = this.computer.systemInfo.dpLogSent;\n        if (Object(_utils_socket__WEBPACK_IMPORTED_MODULE_1__[\"requestLog\"])([this.computer.uid])) {\n          const success = await this.waitForLogChange();\n          if (success || force) await this.getLog();\n        } else this.$helpers.notify(\"Disconnected\", \"No connection to the server, cannot receive log update.\", \"warning\", -1);\n      }\n      this.refreshing = false;\n    },\n    waitForLogChange() {\n      return new Promise(resolve => {\n        this.interval = setInterval(() => {\n          if (this.computer.systemInfo && this.originalDpLogSent != this.computer.systemInfo.dpLogSent || !this.$store.state.socket.connected || !this.computer.online) {\n            clearInterval(this.interval);\n            if (!this.$store.state.socket.connected) {\n              this.$helpers.notify(\"Disconnected\", \"Connection to the server was interrupted, please try again.\", \"warning\");\n              resolve(false);\n            }\n            if (!this.computer.online) {\n              this.$helpers.notify(\"Disconnected\", \"The computer is offline, the log was not updated.\", \"info\", -1);\n              resolve(false);\n            }\n            this.refreshing = false;\n            resolve(true);\n          }\n        }, 1000);\n      });\n    },\n    hide() {\n      this.$emit(\"hide\", false);\n      this.$emit(\"input\", false);\n    },\n    download() {\n      if (this.log) {\n        Object(_utils_document__WEBPACK_IMPORTED_MODULE_5__[\"downloadFile\"])(Object(_utils_document__WEBPACK_IMPORTED_MODULE_5__[\"getTextUrl\"])(this.log, \"text/plain\"), `${this.computer.name}_dpLog.txt`);\n      }\n    }\n  }\n});\n\n//# sourceURL=webpack:///./src/components/main/computer/Log.vue?./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");

/***/ }),

/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"7d40fa80-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/main/computer/Log.vue?vue&type=template&id=6ec5efe6&":
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7d40fa80-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/main/computer/Log.vue?vue&type=template&id=6ec5efe6& ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n  var _vm = this\n  var _h = _vm.$createElement\n  var _c = _vm._self._c || _h\n  return _vm.computer\n    ? _c(\n        \"Modal\",\n        {\n          attrs: {\n            value: _vm.value,\n            title: \"Computer log\",\n            subtitle: _vm.subtitle\n          },\n          on: {\n            hide: function($event) {\n              return _vm.hide()\n            }\n          }\n        },\n        [\n          _c(\"template\", { staticClass: \"content\", slot: \"body\" }, [\n            _vm.refreshing\n              ? _c(\"p\", [_c(\"i\", [_vm._v(\"Fetching log...\")])])\n              : _vm._e(),\n            _c(\n              \"pre\",\n              {\n                directives: [\n                  {\n                    name: \"show\",\n                    rawName: \"v-show\",\n                    value: _vm.log,\n                    expression: \"log\"\n                  }\n                ]\n              },\n              [_vm._v(_vm._s(_vm.log))]\n            )\n          ]),\n          _c(\"template\", { staticClass: \"content\", slot: \"footer\" }, [\n            !_vm.refreshing\n              ? _c(\"div\", [\n                  _c(\n                    \"div\",\n                    {\n                      staticClass: \"button is-primary\",\n                      attrs: { disabled: !_vm.computer.online },\n                      on: {\n                        click: function($event) {\n                          return _vm.refresh()\n                        }\n                      }\n                    },\n                    [_vm._v(\" Refresh \")]\n                  ),\n                  _c(\n                    \"div\",\n                    {\n                      staticClass: \"button is-primary\",\n                      attrs: { disabled: _vm.refreshing || !_vm.log },\n                      on: {\n                        click: function($event) {\n                          return _vm.download()\n                        }\n                      }\n                    },\n                    [_vm._v(\" Download \")]\n                  ),\n                  _c(\n                    \"div\",\n                    {\n                      staticClass: \"button\",\n                      on: {\n                        click: function($event) {\n                          return _vm.hide()\n                        }\n                      }\n                    },\n                    [_vm._v(\"Close\")]\n                  )\n                ])\n              : _c(\"div\", { staticClass: \"spinner-wrapper center\" }, [\n                  _c(\"span\", { staticClass: \"margin-left-5 spinner\" })\n                ])\n          ])\n        ],\n        2\n      )\n    : _vm._e()\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/main/computer/Log.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%227d40fa80-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");

/***/ }),

/***/ "./src/components/main/computer/Log.vue":
/*!**********************************************!*\
  !*** ./src/components/main/computer/Log.vue ***!
  \**********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Log_vue_vue_type_template_id_6ec5efe6___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Log.vue?vue&type=template&id=6ec5efe6& */ \"./src/components/main/computer/Log.vue?vue&type=template&id=6ec5efe6&\");\n/* harmony import */ var _Log_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Log.vue?vue&type=script&lang=js& */ \"./src/components/main/computer/Log.vue?vue&type=script&lang=js&\");\n/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n  _Log_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n  _Log_vue_vue_type_template_id_6ec5efe6___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n  _Log_vue_vue_type_template_id_6ec5efe6___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/components/main/computer/Log.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/components/main/computer/Log.vue?");

/***/ }),

/***/ "./src/components/main/computer/Log.vue?vue&type=script&lang=js&":
/*!***********************************************************************!*\
  !*** ./src/components/main/computer/Log.vue?vue&type=script&lang=js& ***!
  \***********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_12_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Log_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Log.vue?vue&type=script&lang=js& */ \"./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/main/computer/Log.vue?vue&type=script&lang=js&\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_dist_cjs_js_ref_12_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Log_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/components/main/computer/Log.vue?");

/***/ }),

/***/ "./src/components/main/computer/Log.vue?vue&type=template&id=6ec5efe6&":
/*!*****************************************************************************!*\
  !*** ./src/components/main/computer/Log.vue?vue&type=template&id=6ec5efe6& ***!
  \*****************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_7d40fa80_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Log_vue_vue_type_template_id_6ec5efe6___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"7d40fa80-vue-loader-template\"}!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Log.vue?vue&type=template&id=6ec5efe6& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"7d40fa80-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/main/computer/Log.vue?vue&type=template&id=6ec5efe6&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_7d40fa80_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Log_vue_vue_type_template_id_6ec5efe6___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_7d40fa80_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Log_vue_vue_type_template_id_6ec5efe6___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/main/computer/Log.vue?");

/***/ }),

/***/ "./src/utils/date.js":
/*!***************************!*\
  !*** ./src/utils/date.js ***!
  \***************************/
/*! exports provided: fromNow, normalize, fromJson, toReadable, toReadableDate, convert, duration */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fromNow\", function() { return fromNow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"normalize\", function() { return normalize; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fromJson\", function() { return fromJson; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toReadable\", function() { return toReadable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toReadableDate\", function() { return toReadableDate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"convert\", function() { return convert; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"duration\", function() { return duration; });\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_0__);\n\nfunction fromNow(date) {\n  if (date) return moment__WEBPACK_IMPORTED_MODULE_0___default()(normalize(date)).fromNow();else return \"\";\n}\nfunction normalize(date) {\n  if (date && typeof date === \"string\" && !date.includes(\":\")) return parseInt(date);else return date;\n}\nfunction fromJson(jsonDate) {\n  var offset = new Date().getTimezoneOffset();\n  var parts = /\\/Date\\((-?\\d+)([+-]\\d{2})?(\\d{2})?.*/.exec(jsonDate);\n  if (parts[2] == undefined) parts[2] = 0;\n  if (parts[3] == undefined) parts[3] = 0;\n  return new Date(+parts[1] + offset + parts[2] * 3600000 + parts[3] * 60000);\n}\nfunction toReadable(date) {\n  if (date) {\n    date = convert(normalize(date));\n    return date.toLocaleDateString([], {\n      //weekday: \"narrow\",\n      year: \"numeric\",\n      month: \"numeric\",\n      day: \"numeric\",\n      hour: \"numeric\",\n      minute: \"numeric\",\n      hour12: false\n    });\n  }\n  return \"\";\n}\nfunction toReadableDate(date) {\n  if (date && date != \"\") {\n    date = convert(normalize(date));\n    return date.toLocaleDateString();\n  }\n  return \"\";\n}\nfunction convert(dateStr) {\n  if (dateStr) {\n    const dateObj = new Date(dateStr);\n    return dateObj;\n  }\n  return null;\n}\nfunction duration(date1, date2) {\n  const start = moment__WEBPACK_IMPORTED_MODULE_0___default()(date1);\n  const end = moment__WEBPACK_IMPORTED_MODULE_0___default()(date2);\n  const duration = end.diff(start, \"minutes\", true);\n  return +(Math.round(duration + \"e+2\") + \"e-2\");\n}\n\n//# sourceURL=webpack:///./src/utils/date.js?");

/***/ }),

/***/ "./src/utils/string.js":
/*!*****************************!*\
  !*** ./src/utils/string.js ***!
  \*****************************/
/*! exports provided: parseAndRound, firstCapital, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"parseAndRound\", function() { return parseAndRound; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"firstCapital\", function() { return firstCapital; });\nfunction parseAndRound(str, decimals) {\n  if (typeof str !== String) str = str.toString();\n  if (!decimals) decimals = 0;\n  const value = parseFloat(str.replace(/,/g, \".\"));\n  if (str) return Number(Math.round(value + \"e\" + decimals) + \"e-\" + decimals);\n}\nfunction firstCapital(str) {\n  if (str) return str.charAt(0).toUpperCase() + str.slice(1);\n  return str;\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n  parseAndRound,\n  firstCapital\n});\n\n//# sourceURL=webpack:///./src/utils/string.js?");

/***/ })

}]);