{"version":3,"sources":["webpack:///static/js/app.d87ce4666be6209d0113.js","webpack:///./src/components/reconnect.vue?9677","webpack:///./src/components/results-plot.vue","webpack:///./src/components/stats-card.vue?4b16","webpack:///./src/App.vue?fc6a","webpack:///./src/main.js","webpack:///./src/store/index.js","webpack:///App.vue","webpack:///chip-data.vue","webpack:///main-view.vue","webpack:///no-project-running.vue","webpack:///not-connected.vue","webpack:///project-error.vue","webpack:///project-finished.vue","webpack:///project-progress.vue","webpack:///reconnect.vue","webpack:///results-card.vue","webpack:///results-plot.vue","webpack:///sockets-card.vue","webpack:///stats-card.vue","webpack:///./src/components/chip-data.vue","webpack:///./src/components/main-view.vue?bd58","webpack:///./src/components/no-project-running.vue?b801","webpack:///./src/components/not-connected.vue?1d1c","webpack:///./src/components/project-error.vue?7a61","webpack:///./src/components/project-finished.vue?f2f3","webpack:///./src/components/project-progress.vue?fd94","webpack:///./src/components/results-card.vue?ca12","webpack:///./src/components/sockets-card.vue?995a","webpack:///./src/components/stats-card.vue?00f5","webpack:///./src/components/chip-data.vue?e307","webpack:///./src/components/project-finished.vue?fcec","webpack:///./src/components/main-view.vue?b953","webpack:///./src/components/results-card.vue?dfd3","webpack:///./src/components/reconnect.vue?50ba","webpack:///./src/components/not-connected.vue?74c1","webpack:///./src/components/sockets-card.vue?e638","webpack:///./src/components/project-error.vue?c018","webpack:///./src/components/project-progress.vue?07fa","webpack:///./src/components/results-plot.vue?321c","webpack:///./src/App.vue?13aa","webpack:///./src/components/no-project-running.vue?cf08"],"names":["webpackJsonp","242","module","exports","__webpack_require__","injectStyle","ssrContext","Component","243","244","246","270","__webpack_exports__","Object","defineProperty","value","__WEBPACK_IMPORTED_MODULE_0_vue__","__WEBPACK_IMPORTED_MODULE_1__App__","__WEBPACK_IMPORTED_MODULE_1__App___default","n","Vue","config","productionTip","el","template","components","App","271","receivedChip","state","cd","console","log","tests","ic","chips","length","id","splice","receivedStats","stats","name","counters","ok","next_ok","source","current","next_source","total","loaded","sources","start_chip","start_time","DateTime","fromISO","rejects","next_reject","ir","boards","sockets","receivedPhoto","photo","data","source_index","board","receivedResults","results","__WEBPACK_IMPORTED_MODULE_1_vuex__","__WEBPACK_IMPORTED_MODULE_2_luxon__","use","Vuex","connected","local","heartbeat","last_hash","getters","secsSinceLastUpdate","Math","ceil","diff","stopped","actions","new_message","_ref","msg","commit","mutations","SOCKET_ONERROR","event","SOCKET_ONMESSAGE","d","JSON","parse","type","hash","date","document","title","SOCKET_ONOPEN","SOCKET_ONCLOSE","Store","272","__WEBPACK_IMPORTED_MODULE_2_vue_native_websocket__","__WEBPACK_IMPORTED_MODULE_2_vue_native_websocket___default","__WEBPACK_IMPORTED_MODULE_3_element_ui__","__WEBPACK_IMPORTED_MODULE_3_element_ui___default","__WEBPACK_IMPORTED_MODULE_4_element_ui_lib_theme_chalk_index_css__","__WEBPACK_IMPORTED_MODULE_5__store__","__WEBPACK_IMPORTED_MODULE_6__components_not_connected__","__WEBPACK_IMPORTED_MODULE_6__components_not_connected___default","__WEBPACK_IMPORTED_MODULE_7__components_main_view__","__WEBPACK_IMPORTED_MODULE_7__components_main_view___default","cL","window","location","i","NODE_ENV","URL","a","store","prot","protocol","hostname","port","NotConnected","MainView","computed","isConnected","273","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_assign__","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_assign___default","__WEBPACK_IMPORTED_MODULE_1_luxon__","DTFMT","timeZoneName","DATETIME_SHORT_WITH_SECONDS","props","chip","methods","getLastTestResult","result","formatTestType","tt","formatTestTime","toLocaleString","formatTestTimespan","ts","secs","mins","floor","formatResult","row","fail_tray","getCodes","c","this","recons","forEach","r","codes","code","push","274","__WEBPACK_IMPORTED_MODULE_0_luxon__","__WEBPACK_IMPORTED_MODULE_1__project_progress__","__WEBPACK_IMPORTED_MODULE_1__project_progress___default","__WEBPACK_IMPORTED_MODULE_2__project_error__","__WEBPACK_IMPORTED_MODULE_2__project_error___default","__WEBPACK_IMPORTED_MODULE_3__project_finished__","__WEBPACK_IMPORTED_MODULE_3__project_finished___default","__WEBPACK_IMPORTED_MODULE_4__no_project_running__","__WEBPACK_IMPORTED_MODULE_4__no_project_running___default","ProjectProgress","ProjectError","ProjectFinished","NoProjectRunning","hasError","b","$store","sk","status","secsSinceHeartbeat","now","hasFinished","ps","running","projectIsRunning","275","__WEBPACK_IMPORTED_MODULE_0__reconnect__","__WEBPACK_IMPORTED_MODULE_0__reconnect___default","Reconnect","276","277","getErrorText","plc_state","error","278","__WEBPACK_IMPORTED_MODULE_0__stats_card__","__WEBPACK_IMPORTED_MODULE_0__stats_card___default","StatsCard","279","__WEBPACK_IMPORTED_MODULE_1__chip_data__","__WEBPACK_IMPORTED_MODULE_1__chip_data___default","__WEBPACK_IMPORTED_MODULE_2__sockets_card__","__WEBPACK_IMPORTED_MODULE_2__sockets_card___default","__WEBPACK_IMPORTED_MODULE_3__results_card__","__WEBPACK_IMPORTED_MODULE_3__results_card___default","ChipData","SocketsCard","ResultsCard","getImageData","hasResults","numSockets","ns","ib","280","secs_left","interval","mounted","self","setInterval","reload","beforeDestroy","clearInterval","281","__WEBPACK_IMPORTED_MODULE_0__results_plot__","__WEBPACK_IMPORTED_MODULE_0__results_plot___default","ResultsPlot","282","linear","e","s","p","t","generatePlot","val","arcLabel","radius","min","width","height","__WEBPACK_IMPORTED_MODULE_1_d3__","innerRadius","outerRadius","pdata","ft","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys___default","fail","fn","fo","ip","color","cb1","cb2","g","arcs","pieArcs","$refs","getBoundingClientRect","sC","setAttribute","arc","svg","attr","style","append","selectAll","enter","text","centroid","filter","endAngle","startAngle","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys__","sort","watch","oldV","283","dialog","visible","what","hasBoardResults","showBoardResults","hasSocketResults","is","showSocketResults","tableData","isk","socket","chip_id","current_retry","retries","v_tests","validation_tests","v_ok","validation_oks","v_fails","validation_fails","v_yield","round","getCellStyle","cell","column","property","background-color","text-align","text-transform","font-weight","284","retriesTableData","getTotalRetries","rt","getStartTime","getOverallProgress","getChipTested","ret","getRejectOccupancy","map","getOKPercentage","getRejectedCurrentSum","rejected","getRejectedTotalSum","getLastUpdate","suf","getChipsDone","getExpectedEndTime","chips_tested","elapsed_secs","secs_per_chip","chips_left","endTime","plus","seconds","days_left","hours_left","mins_left","getAverageChipTime","676","677","678","679","680","681","682","683","684","685","686","687","697","698","699","700","701","702","703","704","705","706","render","_vm","_h","$createElement","_c","_self","staticClass","attrs","slot","_v","_e","span","_s","text-inside","stroke-width","percentage","_l","reject","key","staticStyle","margin-bottom","staticRenderFns","707","pos","ipos","position","X","Y","corrected_position","label","scopedSlots","_u","scope","timestamp","timespan","prop","708","body-style","padding","src","frameborder","allowfullscreen","709","710","711","712","713","isb","on","click","$event","tests_done","header-cell-style","cell-style","update:visible","$set","714","715","716","ref","717","718"],"mappings":"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","file":"static/js/app.d87ce4666be6209d0113.js","sourcesContent":["webpackJsonp([1],{\n\n/***/ 242:\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction injectStyle (ssrContext) {\n __webpack_require__(681)\n}\nvar Component = __webpack_require__(9)(\n /* script */\n __webpack_require__(280),\n /* template */\n __webpack_require__(711),\n /* styles */\n injectStyle,\n /* scopeId */\n \"data-v-2b3c645c\",\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n\n/***/ 243:\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(9)(\n /* script */\n __webpack_require__(282),\n /* template */\n __webpack_require__(716),\n /* styles */\n null,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n\n/***/ 244:\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction injectStyle (ssrContext) {\n __webpack_require__(677)\n}\nvar Component = __webpack_require__(9)(\n /* script */\n __webpack_require__(284),\n /* template */\n __webpack_require__(706),\n /* styles */\n injectStyle,\n /* scopeId */\n \"data-v-0733dfda\",\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n\n/***/ 246:\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction injectStyle (ssrContext) {\n __webpack_require__(686)\n}\nvar Component = __webpack_require__(9)(\n /* script */\n __webpack_require__(272),\n /* template */\n __webpack_require__(717),\n /* styles */\n injectStyle,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n\n/***/ 270:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__App__ = __webpack_require__(246);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__App___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__App__);\n// The Vue build version to load with the `import` command\n// (runtime-only or standalone) has been set in webpack.base.conf with an alias.\n\n\n\n__WEBPACK_IMPORTED_MODULE_0_vue__[\"default\"].config.productionTip = false;\n\n/* eslint-disable no-new */\nnew __WEBPACK_IMPORTED_MODULE_0_vue__[\"default\"]({\n el: '#app',\n template: '',\n components: { App: __WEBPACK_IMPORTED_MODULE_1__App___default.a }\n});\n\n/***/ }),\n\n/***/ 271:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vuex__ = __webpack_require__(245);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_luxon__ = __webpack_require__(75);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_luxon___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_luxon__);\n\n\n\n\n__WEBPACK_IMPORTED_MODULE_0_vue__[\"default\"].use(__WEBPACK_IMPORTED_MODULE_1_vuex__[\"a\" /* default */]);\n\nvar state = {\n connected: false,\n name: '',\n photo: {\n data: '',\n source_index: 0,\n state: '',\n board: '',\n name: ''\n },\n chips: [],\n counters: {\n ok: 0,\n source: {\n current: 0,\n total: 0\n },\n rejects: []\n },\n start_chip: 0,\n start_time: __WEBPACK_IMPORTED_MODULE_2_luxon__[\"DateTime\"].local(),\n boards: [],\n heartbeat: __WEBPACK_IMPORTED_MODULE_2_luxon__[\"DateTime\"].fromISO('2000-01-01T00:00:01.000Z'),\n last_hash: '',\n results: {}\n};\n\nvar getters = {\n secsSinceLastUpdate: function secsSinceLastUpdate(state) {\n return Math.ceil(__WEBPACK_IMPORTED_MODULE_2_luxon__[\"DateTime\"].local().diff(state.heartbeat) / 1000);\n },\n stopped: function stopped(state) {\n return Math.ceil(__WEBPACK_IMPORTED_MODULE_2_luxon__[\"DateTime\"].local().diff(state.heartbeat) / 1000) > 600;\n }\n};\n\nvar actions = {\n new_message: function new_message(_ref, msg) {\n var commit = _ref.commit;\n\n console.log('New message!', msg);\n }\n};\n\nfunction receivedChip(state, cd) {\n console.log('New chip', cd);\n if (!cd.tests) {\n cd.tests = [];\n }\n for (var ic = 0; ic < state.chips.length; ic++) {\n if (state.chips[ic].id === cd.id) {\n state.chips.splice(ic, 1);\n break;\n }\n }\n state.chips.splice(0, 0, cd);\n while (state.chips.length > 20) {\n state.chips.splice(state.chips.length - 1, 1);\n }\n}\n\nfunction receivedStats(state, stats) {\n console.log('Stats update', stats);\n state.name = stats.name;\n state.counters.ok = stats.state.next_ok;\n state.counters.source.current = stats.state.next_source;\n state.counters.source.total = stats.loaded.sources;\n state.start_chip = stats.start_chip;\n state.start_time = __WEBPACK_IMPORTED_MODULE_2_luxon__[\"DateTime\"].fromISO(stats.start_time);\n while (state.counters.rejects.length < stats.state.next_reject.length) {\n state.counters.rejects.splice(0, 0, { current: 0, total: 0, id: '' });\n }\n for (var ir = 0; ir < stats.state.next_reject.length; ir++) {\n state.counters.rejects[ir].current = stats.state.next_reject[ir];\n state.counters.rejects[ir].total = stats.loaded.rejects[ir].total;\n state.counters.rejects[ir].id = stats.loaded.rejects[ir].id || 'any';\n }\n for (ir = 0; ir < stats.state.boards.length; ir++) {\n if (state.boards.length <= ir) {\n state.boards.splice(ir, 0, stats.state.boards[ir]);\n } else {\n state.boards.splice(ir, 1, stats.state.boards[ir]);\n }\n state.boards[ir].id = stats.loaded.sockets[ir].id;\n }\n}\n\nfunction receivedPhoto(state, photo) {\n state.photo.data = photo.data;\n state.photo.source_index = photo.source_index;\n state.photo.state = photo.state;\n state.photo.board = photo.board;\n state.photo.name = photo.name;\n}\n\nfunction receivedResults(state, data) {\n console.log('Stats results', data);\n state.results = data;\n}\n\nvar mutations = {\n SOCKET_ONERROR: function SOCKET_ONERROR(state, event) {\n console.log('EROR', state, event);\n },\n SOCKET_ONMESSAGE: function SOCKET_ONMESSAGE(state, msg) {\n var d = JSON.parse(msg.data);\n if (d.type === 'photo') {\n receivedPhoto(state, d.data);\n return;\n }\n if (d.type === 'chip') {\n receivedChip(state, d.data);\n return;\n }\n if (d.type === 'results') {\n receivedResults(state, d.data);\n return;\n }\n if (state.last_hash !== d.hash) {\n receivedStats(state, d.data);\n state.last_hash = d.hash;\n state.heartbeat = __WEBPACK_IMPORTED_MODULE_2_luxon__[\"DateTime\"].fromISO(d.date);\n }\n // Change title\n document.title = 'Roboweb (' + state.name + ' ' + state.counters.source.current + '/' + state.counters.source.total + ')';\n },\n SOCKET_ONOPEN: function SOCKET_ONOPEN(state, msg) {\n state.connected = true;\n },\n SOCKET_ONCLOSE: function SOCKET_ONCLOSE(state, msg) {\n state.connected = false;\n }\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (new __WEBPACK_IMPORTED_MODULE_1_vuex__[\"a\" /* default */].Store({\n state: state,\n getters: getters,\n actions: actions,\n mutations: mutations\n}));\n\n/***/ }),\n\n/***/ 272:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vuex__ = __webpack_require__(245);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_native_websocket__ = __webpack_require__(719);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_native_websocket___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_vue_native_websocket__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_element_ui__ = __webpack_require__(661);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_element_ui___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_element_ui__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_element_ui_lib_theme_chalk_index_css__ = __webpack_require__(676);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_element_ui_lib_theme_chalk_index_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_element_ui_lib_theme_chalk_index_css__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__store__ = __webpack_require__(271);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__components_not_connected__ = __webpack_require__(700);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__components_not_connected___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6__components_not_connected__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__components_main_view__ = __webpack_require__(698);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__components_main_view___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7__components_main_view__);\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n__WEBPACK_IMPORTED_MODULE_0_vue__[\"default\"].use(__WEBPACK_IMPORTED_MODULE_1_vuex__[\"a\" /* default */]);\n\n\n\nvar cL = window.location;\nif (__webpack_require__.i({\"NODE_ENV\":\"production\"}).URL) {\n console.log('Connecting to URL defined in the environment: ' + __webpack_require__.i({\"NODE_ENV\":\"production\"}).URL);\n __WEBPACK_IMPORTED_MODULE_0_vue__[\"default\"].use(__WEBPACK_IMPORTED_MODULE_2_vue_native_websocket___default.a, __webpack_require__.i({\"NODE_ENV\":\"production\"}).URL, { store: __WEBPACK_IMPORTED_MODULE_5__store__[\"a\" /* default */] });\n} else {\n var prot = 'ws:';\n if (location.protocol === 'https:') {\n prot = 'wss:';\n }\n __WEBPACK_IMPORTED_MODULE_0_vue__[\"default\"].use(__WEBPACK_IMPORTED_MODULE_2_vue_native_websocket___default.a, prot + '//' + cL.hostname + ':' + cL.port + '/ws', { store: __WEBPACK_IMPORTED_MODULE_5__store__[\"a\" /* default */] });\n}\n\n\n\n\n__WEBPACK_IMPORTED_MODULE_0_vue__[\"default\"].use(__WEBPACK_IMPORTED_MODULE_3_element_ui___default.a);\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'app',\n store: __WEBPACK_IMPORTED_MODULE_5__store__[\"a\" /* default */],\n components: {\n NotConnected: __WEBPACK_IMPORTED_MODULE_6__components_not_connected___default.a,\n MainView: __WEBPACK_IMPORTED_MODULE_7__components_main_view___default.a\n },\n computed: {\n isConnected: function isConnected() {\n return __WEBPACK_IMPORTED_MODULE_5__store__[\"a\" /* default */].state.connected;\n }\n }\n});\n\n/***/ }),\n\n/***/ 273:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_assign__ = __webpack_require__(77);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_assign___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_assign__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_luxon__ = __webpack_require__(75);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_luxon___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_luxon__);\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\nvar DTFMT = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_assign___default()({ timeZoneName: 'short' }, __WEBPACK_IMPORTED_MODULE_1_luxon__[\"DateTime\"].DATETIME_SHORT_WITH_SECONDS);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'chip-data',\n props: {\n chip: Object\n },\n methods: {\n getLastTestResult: function getLastTestResult(chip) {\n if (!chip.tests || chip.tests.length === 0) {\n return '';\n }\n for (var i = chip.tests.length - 1; i >= 0; i--) {\n if (chip.tests[i].type !== 'validate') {\n continue;\n }\n return '(state ' + chip.tests[i].result + ')';\n }\n },\n formatTestType: function formatTestType(tt) {\n switch (tt) {\n case 'validate':\n return 'validation';\n case 'check_empty':\n return 'socket empty';\n }\n return tt;\n },\n formatTestTime: function formatTestTime(tt) {\n return __WEBPACK_IMPORTED_MODULE_1_luxon__[\"DateTime\"].fromISO(tt).toLocaleString(DTFMT);\n },\n formatTestTimespan: function formatTestTimespan(ts) {\n var secs = Math.ceil(ts / 1000);\n var mins = Math.floor(secs / 60.0);\n return mins + 'm ' + (secs - mins * 60) + 's';\n },\n formatResult: function formatResult(row) {\n if (row.fail_tray.length > 0) {\n return row.result + ' (' + row.fail_tray + ')';\n }\n return row.result;\n }\n },\n computed: {\n getCodes: function getCodes() {\n var c = [];\n this.chip.recons.forEach(function (r) {\n r.codes.forEach(function (code) {\n c.push(code);\n });\n });\n return c;\n }\n }\n});\n\n/***/ }),\n\n/***/ 274:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_luxon__ = __webpack_require__(75);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_luxon___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_luxon__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__project_progress__ = __webpack_require__(703);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__project_progress___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__project_progress__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__project_error__ = __webpack_require__(701);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__project_error___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2__project_error__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__project_finished__ = __webpack_require__(702);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__project_finished___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3__project_finished__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__no_project_running__ = __webpack_require__(699);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__no_project_running___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4__no_project_running__);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'main-view',\n components: {\n ProjectProgress: __WEBPACK_IMPORTED_MODULE_1__project_progress___default.a,\n ProjectError: __WEBPACK_IMPORTED_MODULE_2__project_error___default.a,\n ProjectFinished: __WEBPACK_IMPORTED_MODULE_3__project_finished___default.a,\n NoProjectRunning: __WEBPACK_IMPORTED_MODULE_4__no_project_running___default.a\n },\n computed: {\n hasError: function hasError() {\n for (var b in this.$store.state.boards) {\n for (var sk in b.sockets) {\n if (sk.status === 'abort') {\n return true;\n }\n }\n }\n return false;\n },\n secsSinceHeartbeat: function secsSinceHeartbeat() {\n var now = __WEBPACK_IMPORTED_MODULE_0_luxon__[\"DateTime\"].local();\n return Math.ceil(now.diff(this.$store.state.heartbeat) / 1000);\n },\n hasFinished: function hasFinished() {\n var ps = this.$store.state.counters;\n if (ps.source.current < ps.source.total) {\n return false;\n }\n var running = false;\n this.$store.state.boards.forEach(function (b) {\n running = running || b.running;\n });\n return !running;\n },\n projectIsRunning: function projectIsRunning() {\n return this.secsSinceHeartbeat < 86400;\n }\n }\n});\n\n/***/ }),\n\n/***/ 275:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__reconnect__ = __webpack_require__(242);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__reconnect___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__reconnect__);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'no-project-running',\n components: { Reconnect: __WEBPACK_IMPORTED_MODULE_0__reconnect___default.a }\n});\n\n/***/ }),\n\n/***/ 276:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__reconnect__ = __webpack_require__(242);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__reconnect___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__reconnect__);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'not-connected',\n components: { Reconnect: __WEBPACK_IMPORTED_MODULE_0__reconnect___default.a }\n});\n\n/***/ }),\n\n/***/ 277:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\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\tname: 'project-error',\n\tcomputed: {\n\t\tgetErrorText: function getErrorText() {\n\t\t\tswitch (this.$store.state.plc_state.error) {\n\t\t\t\tcase 1:\n\t\t\t\t\treturn 'Too many retries';\n\t\t\t\tcase 2:\n\t\t\t\t\treturn 'Robot doesn\\'t know what to do';\n\t\t\t\tcase 3:\n\t\t\t\t\treturn 'Abort requested by robobrain';\n\t\t\t\tcase 4:\n\t\t\t\t\treturn 'Something is out of range';\n\t\t\t\tcase 5:\n\t\t\t\t\treturn 'There are no reject positions left';\n\t\t\t}\n\t\t\treturn 'Unknown error';\n\t\t}\n\t}\n});\n\n/***/ }),\n\n/***/ 278:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__stats_card__ = __webpack_require__(244);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__stats_card___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__stats_card__);\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 name: 'project-finished',\n components: {\n StatsCard: __WEBPACK_IMPORTED_MODULE_0__stats_card___default.a\n }\n});\n\n/***/ }),\n\n/***/ 279:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__stats_card__ = __webpack_require__(244);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__stats_card___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__stats_card__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__chip_data__ = __webpack_require__(697);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__chip_data___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__chip_data__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__sockets_card__ = __webpack_require__(705);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__sockets_card___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2__sockets_card__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__results_card__ = __webpack_require__(704);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__results_card___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3__results_card__);\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 name: 'project-progress',\n components: {\n StatsCard: __WEBPACK_IMPORTED_MODULE_0__stats_card___default.a,\n ChipData: __WEBPACK_IMPORTED_MODULE_1__chip_data___default.a,\n SocketsCard: __WEBPACK_IMPORTED_MODULE_2__sockets_card___default.a,\n ResultsCard: __WEBPACK_IMPORTED_MODULE_3__results_card___default.a\n },\n computed: {\n getImageData: function getImageData() {\n return 'data:image/jpg;base64,' + this.$store.state.photo.data;\n },\n hasResults: function hasResults() {\n return 'stats' in this.$store.state.results;\n },\n numSockets: function numSockets() {\n var ns = 0;\n for (var ib = 0; ib < this.$store.state.boards.length; ib++) {\n var b = this.$store.state.boards[ib];\n ns += b.sockets.length;\n }\n return ns;\n }\n }\n});\n\n/***/ }),\n\n/***/ 280:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n//\n//\n//\n//\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'reconnect',\n data: function data() {\n return {\n secs_left: 5,\n interval: 0\n };\n },\n mounted: function mounted() {\n var self = this;\n this.interval = setInterval(function () {\n console.log('secs left are', self.secs_left);\n self.secs_left = self.secs_left - 1;\n if (self.secs_left <= 0) {\n location.reload();\n }\n }, 1000);\n },\n beforeDestroy: function beforeDestroy() {\n if (this.interval > 0) {\n clearInterval(this.interval);\n }\n }\n});\n\n/***/ }),\n\n/***/ 281:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__results_plot__ = __webpack_require__(243);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__results_plot___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__results_plot__);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'results-card',\n components: { ResultsPlot: __WEBPACK_IMPORTED_MODULE_0__results_plot___default.a }\n});\n\n/***/ }),\n\n/***/ 282:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys__ = __webpack_require__(285);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_d3__ = __webpack_require__(655);\n\n//\n//\n//\n//\n//\n//\n\n\n\nvar pieArcs = __WEBPACK_IMPORTED_MODULE_1_d3__[\"a\" /* pie */]().sort(null).value(function (d) {\n return d.value;\n});\n\nvar cb1 = __WEBPACK_IMPORTED_MODULE_1_d3__[\"b\" /* rgb */](251, 248, 176);\nvar cb2 = __WEBPACK_IMPORTED_MODULE_1_d3__[\"b\" /* rgb */](209, 60, 75);\n\nfunction linear(e, s, p, t) {\n return (e - s) * p / t + s;\n}\n\nfunction generatePlot(self, val) {\n if (!val) {\n return;\n }\n var pdata = [];\n var ft = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys___default()(val.fail).length;\n for (var fn in val.fail) {\n var fo = {\n 'name': fn || 'fail',\n 'value': val.fail[fn]\n };\n var ip = 0;\n for (ip = 0; ip < pdata.length; ip++) {\n if (pdata[ip].value < fo.value) {\n pdata.splice(ip, 0, fo);\n break;\n }\n }\n if (ip === pdata.length) {\n pdata.push(fo);\n }\n }\n for (ip = 0; ip < pdata.length; ip++) {\n pdata[ip].color = __WEBPACK_IMPORTED_MODULE_1_d3__[\"b\" /* rgb */](linear(cb1.r, cb2.r, ip, ft - 1), linear(cb1.g, cb2.g, ip, ft - 1), linear(cb1.b, cb2.b, ip, ft - 1));\n }\n if (val.ok > 0) {\n pdata.splice(0, 0, { 'name': 'ok', 'value': val.ok, 'color': __WEBPACK_IMPORTED_MODULE_1_d3__[\"b\" /* rgb */](126, 201, 166) });\n }\n var arcs = pieArcs(pdata);\n var width = self.$refs['plotContainer'].getBoundingClientRect().width;\n width -= 10;\n var height = width;\n var sC = self.$refs['plot'];\n sC.setAttribute('height', height + 'px');\n sC.setAttribute('width', width + 'px');\n\n var arc = __WEBPACK_IMPORTED_MODULE_1_d3__[\"c\" /* arc */]().innerRadius(0).outerRadius(Math.min(width, height) / 2 - 1);\n\n function arcLabel() {\n var radius = Math.min(width, height) / 2 * 0.6;\n return __WEBPACK_IMPORTED_MODULE_1_d3__[\"c\" /* arc */]().innerRadius(radius).outerRadius(radius);\n }\n\n var svg = __WEBPACK_IMPORTED_MODULE_1_d3__[\"d\" /* select */](sC).attr('text-anchor', 'middle').style('font', '12px sans-serif');\n var g = svg.append('g').attr('transform', 'translate(' + width / 2 + ',' + height / 2 + ')');\n g.selectAll('path').data(arcs).enter().append('path').attr('fill', function (d) {\n return d.data.color;\n }).attr('stroke', 'white').attr('d', arc).append('title').text(function (d) {\n return d.data.name + ': ' + d.data.value.toLocaleString();\n });\n var text = g.selectAll('text').data(arcs).enter().append('text').attr('transform', function (d) {\n return 'translate(' + arcLabel().centroid(d) + ')';\n }).attr('dy', '0.35em');\n text.append('tspan').attr('x', 0).attr('y', '-0.7em').style('font-weight', 'bold').text(function (d) {\n return d.data.name;\n });\n text.filter(function (d) {\n return d.endAngle - d.startAngle > 0.25;\n }).append('tspan').attr('x', 0).attr('y', '0.7em').attr('fill-opacity', 0.7).text(function (d) {\n return d.data.value.toLocaleString();\n });\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'results-plot',\n props: {\n data: Object\n },\n data: function data() {\n return {};\n },\n mounted: function mounted() {\n generatePlot(this, this.data);\n },\n\n watch: {\n data: function data(val, oldV) {\n generatePlot(this, val);\n }\n }\n});\n\n/***/ }),\n\n/***/ 283:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__results_plot__ = __webpack_require__(243);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__results_plot___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__results_plot__);\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 name: 'sockets-card',\n components: { ResultsPlot: __WEBPACK_IMPORTED_MODULE_0__results_plot___default.a },\n data: function data() {\n return {\n dialog: {\n visible: false,\n what: '',\n data: { ok: 0, fail: {} }\n }\n };\n },\n\n methods: {\n hasBoardResults: function hasBoardResults(ib) {\n if (!this.$store.state.results.boards) {\n return false;\n }\n return this.$store.state.results.boards[ib].stats.tests > 0;\n },\n showBoardResults: function showBoardResults(ib) {\n this.dialog.what = 'board ' + this.$store.state.boards[ib].id;\n this.dialog.data = this.$store.state.results.boards[ib].stats;\n this.dialog.visible = true;\n },\n hasSocketResults: function hasSocketResults(ib, is) {\n if (!this.hasBoardResults(ib)) {\n return false;\n }\n if (is >= this.$store.state.results.boards[ib].sockets.length) {\n return false;\n }\n return this.$store.state.results.boards[ib].sockets[is].tests > 0;\n },\n showSocketResults: function showSocketResults(ib, is) {\n this.dialog.what = 'board ' + this.$store.state.boards[ib].id + ' socket ' + is;\n this.dialog.data = this.$store.state.results.boards[ib].sockets[is];\n this.dialog.visible = true;\n },\n tableData: function tableData(board) {\n var data = [];\n for (var isk = 0; isk < board.sockets.length; isk++) {\n var sk = board.sockets[isk];\n data.push({\n 'socket': isk,\n 'chip_id': sk.chip_id,\n 'fail_tray': sk.fail_tray,\n 'result': sk.result,\n 'current_retry': sk.current_retry,\n 'retries': sk.retries,\n 'source_index': sk.source_index,\n 'state': board.running && sk.state !== 'disabled' && sk.state !== 'stopped' ? 'running' : sk.state,\n 'v_tests': sk.validation_tests,\n 'v_ok': sk.validation_oks,\n 'v_fails': sk.validation_fails,\n 'v_yield': sk.validation_tests === 0 ? 0 : Math.round(100 * (sk.validation_oks * 100.0 / (sk.validation_oks + sk.validation_fails))) / 100\n });\n }\n return data;\n },\n getCellStyle: function getCellStyle(cell) {\n switch (cell.row[cell.column.property]) {\n case 'ready':\n return { 'background-color': '#ABF', 'text-align': 'center', 'color': '#222', 'text-transform': 'capitalize' };\n case 'running':\n return { 'background-color': '#F6E1A3', 'text-align': 'center', 'color': '#222', 'text-transform': 'capitalize' };\n case 'done':\n case 'ok':\n return { 'background-color': '#AFA', 'text-align': 'center', 'color': '#505', 'text-transform': 'capitalize' };\n case 'retry':\n case 'fail':\n return { 'background-color': '#FAA', 'text-align': 'center', 'color': '#055', 'text-transform': 'capitalize' };\n case 'abort':\n return { 'background-color': '#F00', 'text-align': 'center', 'color': '#FF0', 'text-transform': 'uppercase', 'font-weight': 'bold' };\n case 'empty':\n return { 'background-color': '#FFF', 'text-align': 'center', 'color': '#111', 'text-transform': 'capitalize' };\n case 'disabled':\n case 'stopped':\n return { 'background-color': '#666', 'text-align': 'center', 'color': '#DDD', 'text-transform': 'capitalize' };\n }\n return '';\n }\n }\n});\n\n/***/ }),\n\n/***/ 284:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_assign__ = __webpack_require__(77);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_assign___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_assign__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_luxon__ = __webpack_require__(75);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_luxon___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_luxon__);\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//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\nvar DTFMT = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_assign___default()({ timeZoneName: 'short' }, __WEBPACK_IMPORTED_MODULE_1_luxon__[\"DateTime\"].DATETIME_SHORT_WITH_SECONDS);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'stats-card',\n computed: {\n retriesTableData: function retriesTableData() {\n var data = [];\n for (var ib = 0; ib < this.$store.state.boards.length; ib++) {\n var b = this.$store.state.boards[ib];\n for (var isk = 0; isk < b.sockets.length; isk++) {\n data.push({ 'board': ib, 'socket': isk, 'retries': b.sockets[isk].retries });\n }\n }\n return data;\n },\n getTotalRetries: function getTotalRetries() {\n var rt = 0;\n for (var ib in this.$store.state.boards) {\n var b = this.$store.state.boards[ib];\n for (var isk in b.sockets) {\n rt += b.sockets[isk].retries;\n }\n }\n return rt;\n },\n getStartTime: function getStartTime() {\n return this.$store.state.start_time.toLocaleString(DTFMT);\n },\n getOverallProgress: function getOverallProgress() {\n var ps = this.$store.state.counters;\n if (ps.source.total === 0) {\n return 0;\n }\n return Math.round(ps.source.current / ps.source.total * 100);\n },\n getChipTested: function getChipTested() {\n var ps = this.$store.state.counters;\n var ret = '' + ps.source.current + ' / ' + ps.source.total;\n if (this.$store.state.start_chip > 0) {\n ret = ret + ' (started at chip ' + this.$store.state.start_chip + ')';\n }\n return ret;\n },\n getRejectOccupancy: function getRejectOccupancy() {\n return this.$store.counters.rejects.map(function (r) {\n if (r.current === 0) {\n return 0;\n }\n return Math.round(r.current / r.total * 100);\n });\n },\n getOKPercentage: function getOKPercentage() {\n var ps = this.$store.state.counters;\n var total = ps.ok;\n for (var ir in ps.rejects) {\n total += ps.rejects[ir].current;\n }\n if (total === 0) {\n return 0;\n }\n return Math.round(ps.ok * 100 / total);\n },\n getRejectedCurrentSum: function getRejectedCurrentSum() {\n var ps = this.$store.state.counters;\n var rejected = 0;\n for (var ir in ps.rejects) {\n rejected += ps.rejects[ir].current;\n }\n return rejected;\n },\n getRejectedTotalSum: function getRejectedTotalSum() {\n var ps = this.$store.state.counters;\n var rejected = 0;\n for (var ir in ps.rejects) {\n rejected += ps.rejects[ir].total;\n }\n return rejected;\n },\n getLastUpdate: function getLastUpdate() {\n var suf = '';\n if (this.$store.getters.stopped) {\n suf = ' (stopped)';\n }\n return this.$store.state.heartbeat.toLocaleString(DTFMT) + suf;\n },\n getChipsDone: function getChipsDone() {\n var ps = this.$store.state.counters;\n var cd = ps.source.current - this.$store.state.start_chip;\n this.$store.state.boards.forEach(function (b) {\n b.sockets.forEach(function (s) {\n if (b.state !== 'empty') {\n cd -= 1;\n }\n });\n });\n return cd;\n },\n getExpectedEndTime: function getExpectedEndTime() {\n var ps = this.$store.state.counters;\n var chips_tested = this.getChipsDone;\n if (chips_tested < 5) {\n return 'Can\\'t calculate expected end time until some chips have been tested';\n }\n var elapsed_secs = Math.round(this.$store.state.heartbeat.diff(this.$store.state.start_time) / 1000);\n var secs_per_chip = elapsed_secs / chips_tested;\n var chips_left = ps.source.total - ps.source.current;\n var secs_left = Math.round(secs_per_chip * chips_left / 600) * 600;\n var endTime = __WEBPACK_IMPORTED_MODULE_1_luxon__[\"DateTime\"].local().plus({ seconds: secs_left });\n var days_left = Math.floor(secs_left / 86400);\n var hours_left = Math.floor((secs_left - days_left * 86400) / 3600);\n var mins_left = Math.ceil((secs_left - (hours_left * 3600 + days_left * 86400)) / 60);\n return endTime.toLocaleString(DTFMT) + ' (' + days_left + 'd ' + hours_left + 'h ' + mins_left + 'm left)';\n },\n getAverageChipTime: function getAverageChipTime() {\n var chips_tested = this.getChipsDone;\n console.log('Tested in run', chips_tested);\n if (chips_tested < 5) {\n return 'Can\\'t calculate expected end time until some chips have been tested';\n }\n var elapsed_secs = Math.round(this.$store.state.heartbeat.diff(this.$store.state.start_time) / 1000);\n var secs_per_chip = elapsed_secs / chips_tested;\n var mins_left = Math.floor(secs_per_chip / 60.0);\n var secs_left = Math.round(secs_per_chip - mins_left * 60);\n return '' + mins_left + 'm ' + secs_left + 's';\n },\n getImageData: function getImageData() {\n return 'data:image/jpg;base64,' + this.$store.state.photo.data;\n }\n }\n});\n\n/***/ }),\n\n/***/ 676:\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ 677:\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ 678:\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ 679:\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ 680:\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ 681:\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ 682:\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ 683:\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ 684:\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ 685:\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ 686:\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ 687:\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ 697:\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(9)(\n /* script */\n __webpack_require__(273),\n /* template */\n __webpack_require__(707),\n /* styles */\n null,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n\n/***/ 698:\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction injectStyle (ssrContext) {\n __webpack_require__(679)\n}\nvar Component = __webpack_require__(9)(\n /* script */\n __webpack_require__(274),\n /* template */\n __webpack_require__(709),\n /* styles */\n injectStyle,\n /* scopeId */\n \"data-v-1cf4f3b4\",\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n\n/***/ 699:\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction injectStyle (ssrContext) {\n __webpack_require__(687)\n}\nvar Component = __webpack_require__(9)(\n /* script */\n __webpack_require__(275),\n /* template */\n __webpack_require__(718),\n /* styles */\n injectStyle,\n /* scopeId */\n \"data-v-da3083d8\",\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n\n/***/ 700:\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction injectStyle (ssrContext) {\n __webpack_require__(682)\n}\nvar Component = __webpack_require__(9)(\n /* script */\n __webpack_require__(276),\n /* template */\n __webpack_require__(712),\n /* styles */\n injectStyle,\n /* scopeId */\n \"data-v-3f7ec18a\",\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n\n/***/ 701:\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction injectStyle (ssrContext) {\n __webpack_require__(684)\n}\nvar Component = __webpack_require__(9)(\n /* script */\n __webpack_require__(277),\n /* template */\n __webpack_require__(714),\n /* styles */\n injectStyle,\n /* scopeId */\n \"data-v-4bbbbccf\",\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n\n/***/ 702:\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction injectStyle (ssrContext) {\n __webpack_require__(678)\n}\nvar Component = __webpack_require__(9)(\n /* script */\n __webpack_require__(278),\n /* template */\n __webpack_require__(708),\n /* styles */\n injectStyle,\n /* scopeId */\n \"data-v-19bd690a\",\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n\n/***/ 703:\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction injectStyle (ssrContext) {\n __webpack_require__(685)\n}\nvar Component = __webpack_require__(9)(\n /* script */\n __webpack_require__(279),\n /* template */\n __webpack_require__(715),\n /* styles */\n injectStyle,\n /* scopeId */\n \"data-v-59fff7b6\",\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n\n/***/ 704:\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction injectStyle (ssrContext) {\n __webpack_require__(680)\n}\nvar Component = __webpack_require__(9)(\n /* script */\n __webpack_require__(281),\n /* template */\n __webpack_require__(710),\n /* styles */\n injectStyle,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n\n/***/ 705:\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction injectStyle (ssrContext) {\n __webpack_require__(683)\n}\nvar Component = __webpack_require__(9)(\n /* script */\n __webpack_require__(283),\n /* template */\n __webpack_require__(713),\n /* styles */\n injectStyle,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n\n/***/ 706:\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-card', {\n staticClass: \"stats-card\"\n }, [_c('div', {\n staticClass: \"clearfix\",\n attrs: {\n \"slot\": \"header\"\n },\n slot: \"header\"\n }, [_c('span', [_vm._v(\"Stats\")]), _vm._v(\" \"), (_vm.$store.getters.stopped) ? _c('span', {\n staticClass: \"stopwarn\"\n }, [_vm._v(\"Not running\")]) : _vm._e()]), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n staticClass: \"kv-key\",\n attrs: {\n \"span\": 6\n }\n }, [_vm._v(\" Project name\")]), _vm._v(\" \"), _c('el-col', {\n staticClass: \"kv-value\",\n attrs: {\n \"span\": 18\n }\n }, [_vm._v(\" \" + _vm._s(_vm.$store.state.name) + \" \")])], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n staticClass: \"kv-key\",\n attrs: {\n \"span\": 6\n }\n }, [_vm._v(\" Start time \")]), _vm._v(\" \"), _c('el-col', {\n staticClass: \"kv-value\",\n attrs: {\n \"span\": 18\n }\n }, [_vm._v(\" \" + _vm._s(_vm.getStartTime) + \" \")])], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n staticClass: \"kv-key\",\n attrs: {\n \"span\": 6\n }\n }, [_vm._v(\"Expected end time\")]), _vm._v(\" \"), _c('el-col', {\n staticClass: \"kv-value\",\n attrs: {\n \"span\": 18\n }\n }, [_vm._v(\" \" + _vm._s(_vm.getExpectedEndTime) + \" \")])], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n staticClass: \"kv-key\",\n attrs: {\n \"span\": 6\n }\n }, [_vm._v(\" Chips tested \")]), _vm._v(\" \"), _c('el-col', {\n staticClass: \"kv-value\",\n attrs: {\n \"span\": 18\n }\n }, [_vm._v(\" \" + _vm._s(_vm.getChipTested) + \" \")])], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n staticClass: \"kv-key\",\n attrs: {\n \"span\": 6\n }\n }, [_vm._v(\"Total retries done\")]), _vm._v(\" \"), _c('el-col', {\n staticClass: \"kv-value\",\n attrs: {\n \"span\": 18\n }\n }, [_vm._v(\" \" + _vm._s(_vm.getTotalRetries) + \" \")])], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n staticClass: \"kv-key\",\n attrs: {\n \"span\": 6\n }\n }, [_vm._v(\" Overall progress \")]), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 18\n }\n }, [_c('el-progress', {\n attrs: {\n \"text-inside\": true,\n \"stroke-width\": 18,\n \"percentage\": _vm.getOverallProgress\n }\n })], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n staticClass: \"kv-key\",\n attrs: {\n \"span\": 6\n }\n }, [_vm._v(\" Average chip time \")]), _vm._v(\" \"), _c('el-col', {\n staticClass: \"kv-value\",\n attrs: {\n \"span\": 18\n }\n }, [_vm._v(\" \" + _vm._s(_vm.getAverageChipTime) + \" \")])], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n staticClass: \"kv-key\",\n attrs: {\n \"span\": 6\n }\n }, [_vm._v(\" Chips accepted \")]), _vm._v(\" \"), _c('el-col', {\n staticClass: \"kv-value\",\n attrs: {\n \"span\": 18\n }\n }, [_vm._v(\" \" + _vm._s(_vm.$store.state.counters.ok) + \" (\" + _vm._s(_vm.getOKPercentage) + \"%) \")])], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n staticClass: \"kv-key\",\n attrs: {\n \"span\": 6\n }\n }, [_vm._v(\"Total Chips rejected\")]), _vm._v(\" \"), _c('el-col', {\n staticClass: \"kv-value\",\n attrs: {\n \"span\": 18\n }\n }, [_vm._v(_vm._s(_vm.getRejectedCurrentSum))])], 1), _vm._v(\" \"), _vm._l((_vm.$store.state.counters.rejects), function(reject, ir) {\n return _c('el-row', {\n key: ir\n }, [_c('el-col', {\n staticClass: \"kv-key\",\n attrs: {\n \"span\": 6\n }\n }, [_vm._v(\" Chips rejected for sink \" + _vm._s(ir))]), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 18\n }\n }, [_c('div', {\n staticStyle: {\n \"margin-bottom\": \"5px\"\n }\n }, [_vm._v(_vm._s(reject.current) + \" for \" + _vm._s(reject.id) + \" errors out for \" + _vm._s(reject.total) + \" available positions\")]), _vm._v(\" \"), _c('el-progress', {\n attrs: {\n \"status\": \"exception\",\n \"text-inside\": true,\n \"stroke-width\": 18,\n \"percentage\": Math.round((reject.current / reject.total) * 100)\n }\n })], 1)], 1)\n }), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n staticClass: \"kv-key\",\n attrs: {\n \"span\": 6\n }\n }, [_vm._v(\"Last update\")]), _vm._v(\" \"), _c('el-col', {\n staticClass: \"kv-value\",\n attrs: {\n \"span\": 18\n }\n }, [_vm._v(_vm._s(_vm.getLastUpdate))])], 1)], 2)\n},staticRenderFns: []}\n\n/***/ }),\n\n/***/ 707:\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-collapse-item', {\n attrs: {\n \"title\": \"Chip \" + _vm.chip.id + \" \" + _vm.getLastTestResult(_vm.chip)\n }\n }, [_vm._l((_vm.chip.positions), function(pos, ipos) {\n return _c('h4', [_vm._v(\"Position \" + _vm._s(pos.position.X) + \"x\" + _vm._s(pos.position.Y) + \" to corrected \" + _vm._s(pos.corrected_position.X) + \"x\" + _vm._s(pos.corrected_position.Y))])\n }), _vm._v(\" \"), (_vm.chip.tests.length > 0) ? _c('div', [_c('h4', [_vm._v(\"Tests\")]), _vm._v(\" \"), _c('el-table', {\n attrs: {\n \"data\": _vm.chip.tests\n }\n }, [_c('el-table-column', {\n attrs: {\n \"label\": \"Date\",\n \"width\": \"190\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('span', [_vm._v(_vm._s(_vm.formatTestTime(scope.row.timestamp)))])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"Type\",\n \"width\": \"120\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('span', [_vm._v(_vm._s(_vm.formatTestType(scope.row.type)))])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"Timespan\",\n \"width\": \"100\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('span', [_vm._v(_vm._s(_vm.formatTestTimespan(scope.row.timespan)))])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"Result\",\n \"width\": \"100\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('span', [_vm._v(_vm._s(_vm.formatResult(scope.row)))])]\n }\n }])\n })], 1)], 1) : _vm._e(), _vm._v(\" \"), (_vm.getCodes && _vm.getCodes.length > 0) ? _c('div', [_c('h4', [_vm._v(\"Codes\")]), _vm._v(\" \"), _c('el-table', {\n attrs: {\n \"data\": _vm.getCodes\n }\n }, [_c('el-table-column', {\n attrs: {\n \"prop\": \"type\",\n \"label\": \"Type\",\n \"width\": \"100\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"data\",\n \"label\": \"Data\",\n \"width\": \"350\"\n }\n })], 1)], 1) : _vm._e()], 2)\n},staticRenderFns: []}\n\n/***/ }),\n\n/***/ 708:\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n attrs: {\n \"id\": \"top\"\n }\n }, [_c('h1', [_vm._v(\"Run finished\")]), _vm._v(\" \"), _c('el-row', [_c('el-col', [_c('stats-card'), _vm._v(\" \"), _c('el-card', {\n staticClass: \"video\",\n attrs: {\n \"body-style\": {\n height: '100%',\n padding: '0px'\n }\n }\n }, [_c('div', {\n staticClass: \"clearfix\",\n attrs: {\n \"slot\": \"header\"\n },\n slot: \"header\"\n }, [_c('span', [_vm._v(\"Done!\")])]), _vm._v(\" \"), _c('iframe', {\n attrs: {\n \"width\": \"100%\",\n \"height\": \"100%\",\n \"src\": \"https://www.youtube.com/embed/6ktnrKG8uq4?autoplay=1&cc_load_policy=1\",\n \"frameborder\": \"0\",\n \"allowfullscreen\": \"\"\n }\n })])], 1)], 1)], 1)\n},staticRenderFns: []}\n\n/***/ }),\n\n/***/ 709:\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n attrs: {\n \"id\": \"top\"\n }\n }, [(_vm.hasError) ? _c('project-error') : (_vm.hasFinished) ? _c('project-finished') : (_vm.projectIsRunning) ? _c('project-progress') : _c('no-project-running')], 1)\n},staticRenderFns: []}\n\n/***/ }),\n\n/***/ 710:\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-card', {\n staticClass: \"results-card\",\n attrs: {\n \"body-style\": {\n padding: 0\n }\n }\n }, [_c('div', {\n staticClass: \"clearfix\",\n attrs: {\n \"slot\": \"header\"\n },\n slot: \"header\"\n }, [_c('span', [_vm._v(\"Breakdown of test results\")])]), _vm._v(\" \"), _c('div', {\n staticStyle: {\n \"padding\": \"10px\"\n }\n }, [_c('results-plot', {\n attrs: {\n \"data\": _vm.$store.state.results.stats\n }\n })], 1)])\n},staticRenderFns: []}\n\n/***/ }),\n\n/***/ 711:\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n attrs: {\n \"id\": \"footer\"\n }\n }, [_vm._v(\"Reloading in \" + _vm._s(_vm.secs_left) + \" seconds...\")])\n},staticRenderFns: []}\n\n/***/ }),\n\n/***/ 712:\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n attrs: {\n \"id\": \"top\"\n }\n }, [_c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 4\n }\n }, [_c('div', {\n staticClass: \"grid-content bg-purple\"\n }, [_vm._v(\" \")])]), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 16\n }\n }, [_c('div', {\n staticClass: \"grid-content bg-purple\"\n }, [_vm._v(\"Not connected\")])]), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 4\n }\n }, [_c('div', {\n staticClass: \"grid-content bg-purple\"\n }, [_vm._v(\" \")])])], 1), _vm._v(\" \"), _c('reconnect')], 1)\n},staticRenderFns: []}\n\n/***/ }),\n\n/***/ 713:\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-card', {\n staticClass: \"sockets-card\",\n attrs: {\n \"body-style\": {\n padding: 0\n }\n }\n }, [_c('div', {\n staticClass: \"clearfix\",\n attrs: {\n \"slot\": \"header\"\n },\n slot: \"header\"\n }, [_c('span', [_vm._v(\"Sockets\")])]), _vm._v(\" \"), _vm._l((_vm.$store.state.boards), function(board, isb) {\n return _c('div', {\n staticStyle: {\n \"padding\": \"10px\"\n }\n }, [_c('h4', {\n staticClass: \"board-header\"\n }, [_c('i', {\n staticClass: \"el-icon-info\",\n on: {\n \"click\": function($event) {\n _vm.showBoardResults(isb)\n }\n }\n }), _vm._v(\" Board \" + _vm._s(board.id)), (board.running) ? _c('span', {\n staticStyle: {\n \"color\": \"#393\"\n }\n }, [_vm._v(\" (running test)\")]) : _vm._e(), _vm._v(\" has run\\n \" + _vm._s(board.tests_done) + \" tests \"), (board.error) ? _c('span', {\n staticStyle: {\n \"color\": \"#939\"\n }\n }, [_vm._v(_vm._s(board.error))]) : _vm._e()]), _vm._v(\" \"), _c('el-table', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.tableData(board),\n \"header-cell-style\": {\n color: '#000'\n },\n \"cell-style\": _vm.getCellStyle\n }\n }, [_c('el-table-column', {\n attrs: {\n \"width\": \"75px\",\n \"prop\": \"socket\",\n \"label\": \"Socket\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(\"\\n \" + _vm._s(scope.row.socket) + \"\\n \"), (_vm.hasSocketResults(isb, scope.row.socket)) ? _c('i', {\n staticClass: \"el-icon-info\",\n on: {\n \"click\": function($event) {\n _vm.showSocketResults(isb, scope.row.socket)\n }\n }\n }) : _vm._e()]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"width\": \"80px\",\n \"prop\": \"state\",\n \"label\": \"State\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"width\": \"75px\",\n \"prop\": \"current_retry\",\n \"label\": \"Retried\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"chip_id\",\n \"label\": \"Chip ID\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"width\": \"75px\",\n \"prop\": \"result\",\n \"label\": \"Result\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"fail_tray\",\n \"label\": \"Fail tray\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"width\": \"75px\",\n \"prop\": \"source_index\",\n \"label\": \"Source\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"width\": \"75px\",\n \"prop\": \"v_tests\",\n \"label\": \"Tests\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"width\": \"75px\",\n \"prop\": \"v_ok\",\n \"label\": \"Ok\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"width\": \"75px\",\n \"prop\": \"v_fails\",\n \"label\": \"Fails\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"width\": \"75px\",\n \"prop\": \"v_yield\",\n \"label\": \"Yield\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"width\": \"75px\",\n \"prop\": \"retries\",\n \"label\": \"Retries\"\n }\n })], 1)], 1)\n }), _vm._v(\" \"), _c('el-dialog', {\n attrs: {\n \"title\": 'Result breakdown for ' + _vm.dialog.what,\n \"visible\": _vm.dialog.visible,\n \"width\": \"500px\"\n },\n on: {\n \"update:visible\": function($event) {\n _vm.$set(_vm.dialog, \"visible\", $event)\n }\n }\n }, [_c('results-plot', {\n attrs: {\n \"data\": _vm.dialog.data\n }\n })], 1)], 2)\n},staticRenderFns: []}\n\n/***/ }),\n\n/***/ 714:\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n attrs: {\n \"id\": \"top\"\n }\n }, [_c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 4\n }\n }, [_vm._v(\" \")]), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 16\n }\n }, [_vm._v(\"\\n\\t\\t\\t\\t \" + _vm._s(_vm.getErrorText) + \" \\n\\t\\t\\t\")]), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 4\n }\n }, [_vm._v(\" \")])], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 4\n }\n }, [_vm._v(\" \")]), _vm._v(\" \"), _c('el-col', {\n staticClass: \"video\",\n attrs: {\n \"span\": 16\n }\n }, [_c('iframe', {\n attrs: {\n \"width\": \"100%\",\n \"height\": \"100%\",\n \"src\": \"http://www.youtube.com/embed/SkgTxQm9DWM?autoplay=1&cc_load_policy=1\",\n \"frameborder\": \"0\",\n \"allowfullscreen\": \"\"\n }\n })]), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 4\n }\n }, [_vm._v(\" \")])], 1)], 1)\n},staticRenderFns: []}\n\n/***/ }),\n\n/***/ 715:\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n attrs: {\n \"id\": \"top\"\n }\n }, [_c('h1', [_vm._v(\"Running stats for \" + _vm._s(_vm.$store.state.name))]), _vm._v(\" \"), _c('el-row', [_c('el-col', [_c('stats-card'), _vm._v(\" \"), (_vm.$store.state.photo.data.length > 0) ? _c('el-card', {\n staticClass: \"photo-card\",\n attrs: {\n \"body-style\": {\n padding: '0px'\n }\n }\n }, [_c('div', {\n staticClass: \"clearfix\",\n attrs: {\n \"slot\": \"header\"\n },\n slot: \"header\"\n }, [_c('span', [_vm._v(\"Last photo of chip \" + _vm._s(_vm.$store.state.photo.chip_id) + \" in state \" + _vm._s(_vm.$store.state.photo.state))])]), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 24\n }\n }, [_c('img', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"src\": _vm.getImageData\n }\n })])], 1)], 1) : _vm._e(), _vm._v(\" \"), _c('sockets-card'), _vm._v(\" \"), (_vm.hasResults) ? _c('results-card') : _vm._e(), _vm._v(\" \"), (_vm.$store.state.chips.length > 0) ? _c('el-card', {\n staticClass: \"chips-card\"\n }, [_c('div', {\n staticClass: \"clearfix\",\n attrs: {\n \"slot\": \"header\"\n },\n slot: \"header\"\n }, [_c('span', [_vm._v(\"Last chips tested\")])]), _vm._v(\" \"), _c('el-collapse', _vm._l((_vm.$store.state.chips), function(chip) {\n return _c('chip-data', {\n key: chip.id,\n attrs: {\n \"chip\": chip\n }\n })\n }))], 1) : _vm._e()], 1)], 1)], 1)\n},staticRenderFns: []}\n\n/***/ }),\n\n/***/ 716:\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n ref: \"plotContainer\"\n }, [_c('svg', {\n ref: \"plot\"\n })])\n},staticRenderFns: []}\n\n/***/ }),\n\n/***/ 717:\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n attrs: {\n \"id\": \"app\"\n }\n }, [(_vm.isConnected) ? _c('main-view') : _c('not-connected')], 1)\n},staticRenderFns: []}\n\n/***/ }),\n\n/***/ 718:\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n attrs: {\n \"id\": \"top\"\n }\n }, [_c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 4\n }\n }, [_c('div', {\n staticClass: \"grid-content bg-purple\"\n }, [_vm._v(\" \")])]), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 16\n }\n }, [_c('div', {\n staticClass: \"grid-content bg-purple\"\n }, [_vm._v(\"No project is running.\")])]), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 4\n }\n }, [_c('div', {\n staticClass: \"grid-content bg-purple\"\n }, [_vm._v(\" \")])])], 1), _vm._v(\" \"), _c('reconnect')], 1)\n},staticRenderFns: []}\n\n/***/ })\n\n},[270]);\n\n\n// WEBPACK FOOTER //\n// static/js/app.d87ce4666be6209d0113.js","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-2b3c645c\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./reconnect.vue\")\n}\nvar Component = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./reconnect.vue\"),\n /* template */\n require(\"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-2b3c645c\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":\\\"src\\\",\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./reconnect.vue\"),\n /* styles */\n injectStyle,\n /* scopeId */\n \"data-v-2b3c645c\",\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/reconnect.vue\n// module id = 242\n// module chunks = 1","var Component = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./results-plot.vue\"),\n /* template */\n require(\"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-af9d3ea6\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":\\\"src\\\",\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./results-plot.vue\"),\n /* styles */\n null,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/results-plot.vue\n// module id = 243\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-0733dfda\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./stats-card.vue\")\n}\nvar Component = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./stats-card.vue\"),\n /* template */\n require(\"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-0733dfda\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":\\\"src\\\",\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./stats-card.vue\"),\n /* styles */\n injectStyle,\n /* scopeId */\n \"data-v-0733dfda\",\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/stats-card.vue\n// module id = 244\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-cad49406\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../node_modules/vue-loader/lib/selector?type=styles&index=0!./App.vue\")\n}\nvar Component = require(\"!../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../node_modules/vue-loader/lib/selector?type=script&index=0!./App.vue\"),\n /* template */\n require(\"!!../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-cad49406\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":\\\"src\\\",\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"}}!../node_modules/vue-loader/lib/selector?type=template&index=0!./App.vue\"),\n /* styles */\n injectStyle,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/App.vue\n// module id = 246\n// module chunks = 1","// The Vue build version to load with the `import` command\n// (runtime-only or standalone) has been set in webpack.base.conf with an alias.\nimport Vue from 'vue'\nimport App from './App'\n\nVue.config.productionTip = false\n\n/* eslint-disable no-new */\nnew Vue({\n el: '#app',\n template: '',\n components: { App }\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/main.js","import Vue from 'vue'\nimport Vuex from 'vuex'\nimport { DateTime } from 'luxon'\n\nVue.use(Vuex)\n\nconst state = {\n connected: false,\n name: '',\n photo: {\n data: '',\n source_index: 0,\n state: '',\n board: '',\n name: ''\n },\n chips: [],\n counters: {\n ok: 0,\n source: {\n current: 0,\n total: 0\n },\n rejects: []\n },\n start_chip: 0,\n start_time: DateTime.local(),\n boards: [],\n heartbeat: DateTime.fromISO('2000-01-01T00:00:01.000Z'),\n last_hash: '',\n results: {}\n}\n\nconst getters = {\n secsSinceLastUpdate: state => {\n return Math.ceil( DateTime.local().diff(state.heartbeat) / 1000 )\n },\n stopped: state => {\n return Math.ceil( DateTime.local().diff(state.heartbeat) / 1000 ) > 600\n }\n}\n\nconst actions = {\n new_message: ({ commit }, msg) => {\n console.log('New message!', msg)\n }\n}\n\nfunction receivedChip(state, cd) {\n console.log('New chip', cd)\n if(!cd.tests) {\n cd.tests = []\n }\n for ( var ic = 0; ic < state.chips.length; ic++ ) {\n if ( state.chips[ic].id === cd.id ) {\n state.chips.splice(ic,1)\n break\n }\n }\n state.chips.splice(0,0,cd)\n while (state.chips.length > 20) {\n state.chips.splice(state.chips.length - 1,1)\n }\n}\n\nfunction receivedStats(state, stats) {\n console.log('Stats update', stats)\n state.name = stats.name\n state.counters.ok = stats.state.next_ok\n state.counters.source.current = stats.state.next_source\n state.counters.source.total = stats.loaded.sources\n state.start_chip = stats.start_chip\n state.start_time = DateTime.fromISO( stats.start_time )\n while( state.counters.rejects.length < stats.state.next_reject.length ) {\n state.counters.rejects.splice(0,0,{current: 0, total: 0, id: ''})\n }\n for( var ir = 0; ir < stats.state.next_reject.length; ir++ ){\n state.counters.rejects[ir].current = stats.state.next_reject[ir]\n state.counters.rejects[ir].total = stats.loaded.rejects[ir].total\n state.counters.rejects[ir].id = stats.loaded.rejects[ir].id || 'any'\n }\n for( ir = 0; ir < stats.state.boards.length; ir++ ){\n if( state.boards.length <= ir ) {\n state.boards.splice(ir,0,stats.state.boards[ir])\n } else {\n state.boards.splice(ir,1,stats.state.boards[ir])\n }\n state.boards[ir].id = stats.loaded.sockets[ir].id\n }\n}\n\nfunction receivedPhoto(state, photo) {\n state.photo.data = photo.data\n state.photo.source_index = photo.source_index\n state.photo.state = photo.state\n state.photo.board = photo.board\n state.photo.name = photo.name\n}\n\nfunction receivedResults(state,data) {\n console.log('Stats results', data)\n state.results = data\n}\n\nconst mutations = {\n SOCKET_ONERROR (state, event) {\n console.log('EROR', state, event)\n },\n SOCKET_ONMESSAGE (state, msg) {\n var d = JSON.parse(msg.data)\n if (d.type === 'photo') {\n receivedPhoto(state,d.data)\n return\n }\n if (d.type === 'chip') {\n receivedChip(state,d.data)\n return\n }\n if (d.type === 'results') {\n receivedResults(state,d.data)\n return\n }\n if( state.last_hash !== d.hash ){\n receivedStats(state, d.data)\n state.last_hash = d.hash\n state.heartbeat = DateTime.fromISO(d.date)\n }\n // Change title\n document.title = `Roboweb (${state.name} ${state.counters.source.current}/${state.counters.source.total})`\n },\n SOCKET_ONOPEN(state,msg) {\n state.connected = true\n },\n SOCKET_ONCLOSE(state,msg) {\n state.connected = false\n }\n}\n\nexport default new Vuex.Store({\n state,\n getters,\n actions,\n mutations\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/index.js","\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// App.vue?37cf2cef","\n\n\n\n\n\n// WEBPACK FOOTER //\n// chip-data.vue?5c38f6b2","\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// main-view.vue?7d042bad","\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// no-project-running.vue?3b9d9094","\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// not-connected.vue?72f5c5c2","\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// project-error.vue?34b11a84","\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// project-finished.vue?1ea07932","\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// project-progress.vue?c8bb6110","\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// reconnect.vue?44ee3698","\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// results-card.vue?7e0a5bf9","\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// results-plot.vue?eb0c1f2a","\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// sockets-card.vue?55d4e5e5","\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// stats-card.vue?1bdb41a3","var Component = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./chip-data.vue\"),\n /* template */\n require(\"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-0da0c506\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":\\\"src\\\",\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./chip-data.vue\"),\n /* styles */\n null,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/chip-data.vue\n// module id = 697\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-1cf4f3b4\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./main-view.vue\")\n}\nvar Component = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./main-view.vue\"),\n /* template */\n require(\"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-1cf4f3b4\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":\\\"src\\\",\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./main-view.vue\"),\n /* styles */\n injectStyle,\n /* scopeId */\n \"data-v-1cf4f3b4\",\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/main-view.vue\n// module id = 698\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-da3083d8\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./no-project-running.vue\")\n}\nvar Component = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./no-project-running.vue\"),\n /* template */\n require(\"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-da3083d8\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":\\\"src\\\",\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./no-project-running.vue\"),\n /* styles */\n injectStyle,\n /* scopeId */\n \"data-v-da3083d8\",\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/no-project-running.vue\n// module id = 699\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-3f7ec18a\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./not-connected.vue\")\n}\nvar Component = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./not-connected.vue\"),\n /* template */\n require(\"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-3f7ec18a\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":\\\"src\\\",\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./not-connected.vue\"),\n /* styles */\n injectStyle,\n /* scopeId */\n \"data-v-3f7ec18a\",\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/not-connected.vue\n// module id = 700\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-4bbbbccf\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./project-error.vue\")\n}\nvar Component = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./project-error.vue\"),\n /* template */\n require(\"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-4bbbbccf\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":\\\"src\\\",\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./project-error.vue\"),\n /* styles */\n injectStyle,\n /* scopeId */\n \"data-v-4bbbbccf\",\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/project-error.vue\n// module id = 701\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-19bd690a\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./project-finished.vue\")\n}\nvar Component = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./project-finished.vue\"),\n /* template */\n require(\"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-19bd690a\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":\\\"src\\\",\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./project-finished.vue\"),\n /* styles */\n injectStyle,\n /* scopeId */\n \"data-v-19bd690a\",\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/project-finished.vue\n// module id = 702\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-59fff7b6\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./project-progress.vue\")\n}\nvar Component = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./project-progress.vue\"),\n /* template */\n require(\"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-59fff7b6\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":\\\"src\\\",\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./project-progress.vue\"),\n /* styles */\n injectStyle,\n /* scopeId */\n \"data-v-59fff7b6\",\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/project-progress.vue\n// module id = 703\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-201a9f5c\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./results-card.vue\")\n}\nvar Component = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./results-card.vue\"),\n /* template */\n require(\"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-201a9f5c\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":\\\"src\\\",\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./results-card.vue\"),\n /* styles */\n injectStyle,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/results-card.vue\n// module id = 704\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-412f799c\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./sockets-card.vue\")\n}\nvar Component = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./sockets-card.vue\"),\n /* template */\n require(\"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-412f799c\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":\\\"src\\\",\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./sockets-card.vue\"),\n /* styles */\n injectStyle,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/sockets-card.vue\n// module id = 705\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-card', {\n staticClass: \"stats-card\"\n }, [_c('div', {\n staticClass: \"clearfix\",\n attrs: {\n \"slot\": \"header\"\n },\n slot: \"header\"\n }, [_c('span', [_vm._v(\"Stats\")]), _vm._v(\" \"), (_vm.$store.getters.stopped) ? _c('span', {\n staticClass: \"stopwarn\"\n }, [_vm._v(\"Not running\")]) : _vm._e()]), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n staticClass: \"kv-key\",\n attrs: {\n \"span\": 6\n }\n }, [_vm._v(\" Project name\")]), _vm._v(\" \"), _c('el-col', {\n staticClass: \"kv-value\",\n attrs: {\n \"span\": 18\n }\n }, [_vm._v(\" \" + _vm._s(_vm.$store.state.name) + \" \")])], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n staticClass: \"kv-key\",\n attrs: {\n \"span\": 6\n }\n }, [_vm._v(\" Start time \")]), _vm._v(\" \"), _c('el-col', {\n staticClass: \"kv-value\",\n attrs: {\n \"span\": 18\n }\n }, [_vm._v(\" \" + _vm._s(_vm.getStartTime) + \" \")])], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n staticClass: \"kv-key\",\n attrs: {\n \"span\": 6\n }\n }, [_vm._v(\"Expected end time\")]), _vm._v(\" \"), _c('el-col', {\n staticClass: \"kv-value\",\n attrs: {\n \"span\": 18\n }\n }, [_vm._v(\" \" + _vm._s(_vm.getExpectedEndTime) + \" \")])], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n staticClass: \"kv-key\",\n attrs: {\n \"span\": 6\n }\n }, [_vm._v(\" Chips tested \")]), _vm._v(\" \"), _c('el-col', {\n staticClass: \"kv-value\",\n attrs: {\n \"span\": 18\n }\n }, [_vm._v(\" \" + _vm._s(_vm.getChipTested) + \" \")])], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n staticClass: \"kv-key\",\n attrs: {\n \"span\": 6\n }\n }, [_vm._v(\"Total retries done\")]), _vm._v(\" \"), _c('el-col', {\n staticClass: \"kv-value\",\n attrs: {\n \"span\": 18\n }\n }, [_vm._v(\" \" + _vm._s(_vm.getTotalRetries) + \" \")])], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n staticClass: \"kv-key\",\n attrs: {\n \"span\": 6\n }\n }, [_vm._v(\" Overall progress \")]), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 18\n }\n }, [_c('el-progress', {\n attrs: {\n \"text-inside\": true,\n \"stroke-width\": 18,\n \"percentage\": _vm.getOverallProgress\n }\n })], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n staticClass: \"kv-key\",\n attrs: {\n \"span\": 6\n }\n }, [_vm._v(\" Average chip time \")]), _vm._v(\" \"), _c('el-col', {\n staticClass: \"kv-value\",\n attrs: {\n \"span\": 18\n }\n }, [_vm._v(\" \" + _vm._s(_vm.getAverageChipTime) + \" \")])], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n staticClass: \"kv-key\",\n attrs: {\n \"span\": 6\n }\n }, [_vm._v(\" Chips accepted \")]), _vm._v(\" \"), _c('el-col', {\n staticClass: \"kv-value\",\n attrs: {\n \"span\": 18\n }\n }, [_vm._v(\" \" + _vm._s(_vm.$store.state.counters.ok) + \" (\" + _vm._s(_vm.getOKPercentage) + \"%) \")])], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n staticClass: \"kv-key\",\n attrs: {\n \"span\": 6\n }\n }, [_vm._v(\"Total Chips rejected\")]), _vm._v(\" \"), _c('el-col', {\n staticClass: \"kv-value\",\n attrs: {\n \"span\": 18\n }\n }, [_vm._v(_vm._s(_vm.getRejectedCurrentSum))])], 1), _vm._v(\" \"), _vm._l((_vm.$store.state.counters.rejects), function(reject, ir) {\n return _c('el-row', {\n key: ir\n }, [_c('el-col', {\n staticClass: \"kv-key\",\n attrs: {\n \"span\": 6\n }\n }, [_vm._v(\" Chips rejected for sink \" + _vm._s(ir))]), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 18\n }\n }, [_c('div', {\n staticStyle: {\n \"margin-bottom\": \"5px\"\n }\n }, [_vm._v(_vm._s(reject.current) + \" for \" + _vm._s(reject.id) + \" errors out for \" + _vm._s(reject.total) + \" available positions\")]), _vm._v(\" \"), _c('el-progress', {\n attrs: {\n \"status\": \"exception\",\n \"text-inside\": true,\n \"stroke-width\": 18,\n \"percentage\": Math.round((reject.current / reject.total) * 100)\n }\n })], 1)], 1)\n }), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n staticClass: \"kv-key\",\n attrs: {\n \"span\": 6\n }\n }, [_vm._v(\"Last update\")]), _vm._v(\" \"), _c('el-col', {\n staticClass: \"kv-value\",\n attrs: {\n \"span\": 18\n }\n }, [_vm._v(_vm._s(_vm.getLastUpdate))])], 1)], 2)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-0733dfda\",\"hasScoped\":true,\"transformToRequire\":{\"video\":\"src\",\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"}}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/stats-card.vue\n// module id = 706\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-collapse-item', {\n attrs: {\n \"title\": \"Chip \" + _vm.chip.id + \" \" + _vm.getLastTestResult(_vm.chip)\n }\n }, [_vm._l((_vm.chip.positions), function(pos, ipos) {\n return _c('h4', [_vm._v(\"Position \" + _vm._s(pos.position.X) + \"x\" + _vm._s(pos.position.Y) + \" to corrected \" + _vm._s(pos.corrected_position.X) + \"x\" + _vm._s(pos.corrected_position.Y))])\n }), _vm._v(\" \"), (_vm.chip.tests.length > 0) ? _c('div', [_c('h4', [_vm._v(\"Tests\")]), _vm._v(\" \"), _c('el-table', {\n attrs: {\n \"data\": _vm.chip.tests\n }\n }, [_c('el-table-column', {\n attrs: {\n \"label\": \"Date\",\n \"width\": \"190\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('span', [_vm._v(_vm._s(_vm.formatTestTime(scope.row.timestamp)))])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"Type\",\n \"width\": \"120\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('span', [_vm._v(_vm._s(_vm.formatTestType(scope.row.type)))])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"Timespan\",\n \"width\": \"100\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('span', [_vm._v(_vm._s(_vm.formatTestTimespan(scope.row.timespan)))])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"Result\",\n \"width\": \"100\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('span', [_vm._v(_vm._s(_vm.formatResult(scope.row)))])]\n }\n }])\n })], 1)], 1) : _vm._e(), _vm._v(\" \"), (_vm.getCodes && _vm.getCodes.length > 0) ? _c('div', [_c('h4', [_vm._v(\"Codes\")]), _vm._v(\" \"), _c('el-table', {\n attrs: {\n \"data\": _vm.getCodes\n }\n }, [_c('el-table-column', {\n attrs: {\n \"prop\": \"type\",\n \"label\": \"Type\",\n \"width\": \"100\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"data\",\n \"label\": \"Data\",\n \"width\": \"350\"\n }\n })], 1)], 1) : _vm._e()], 2)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-0da0c506\",\"hasScoped\":false,\"transformToRequire\":{\"video\":\"src\",\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"}}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/chip-data.vue\n// module id = 707\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n attrs: {\n \"id\": \"top\"\n }\n }, [_c('h1', [_vm._v(\"Run finished\")]), _vm._v(\" \"), _c('el-row', [_c('el-col', [_c('stats-card'), _vm._v(\" \"), _c('el-card', {\n staticClass: \"video\",\n attrs: {\n \"body-style\": {\n height: '100%',\n padding: '0px'\n }\n }\n }, [_c('div', {\n staticClass: \"clearfix\",\n attrs: {\n \"slot\": \"header\"\n },\n slot: \"header\"\n }, [_c('span', [_vm._v(\"Done!\")])]), _vm._v(\" \"), _c('iframe', {\n attrs: {\n \"width\": \"100%\",\n \"height\": \"100%\",\n \"src\": \"https://www.youtube.com/embed/6ktnrKG8uq4?autoplay=1&cc_load_policy=1\",\n \"frameborder\": \"0\",\n \"allowfullscreen\": \"\"\n }\n })])], 1)], 1)], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-19bd690a\",\"hasScoped\":true,\"transformToRequire\":{\"video\":\"src\",\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"}}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/project-finished.vue\n// module id = 708\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n attrs: {\n \"id\": \"top\"\n }\n }, [(_vm.hasError) ? _c('project-error') : (_vm.hasFinished) ? _c('project-finished') : (_vm.projectIsRunning) ? _c('project-progress') : _c('no-project-running')], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-1cf4f3b4\",\"hasScoped\":true,\"transformToRequire\":{\"video\":\"src\",\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"}}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/main-view.vue\n// module id = 709\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-card', {\n staticClass: \"results-card\",\n attrs: {\n \"body-style\": {\n padding: 0\n }\n }\n }, [_c('div', {\n staticClass: \"clearfix\",\n attrs: {\n \"slot\": \"header\"\n },\n slot: \"header\"\n }, [_c('span', [_vm._v(\"Breakdown of test results\")])]), _vm._v(\" \"), _c('div', {\n staticStyle: {\n \"padding\": \"10px\"\n }\n }, [_c('results-plot', {\n attrs: {\n \"data\": _vm.$store.state.results.stats\n }\n })], 1)])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-201a9f5c\",\"hasScoped\":false,\"transformToRequire\":{\"video\":\"src\",\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"}}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/results-card.vue\n// module id = 710\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n attrs: {\n \"id\": \"footer\"\n }\n }, [_vm._v(\"Reloading in \" + _vm._s(_vm.secs_left) + \" seconds...\")])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-2b3c645c\",\"hasScoped\":true,\"transformToRequire\":{\"video\":\"src\",\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"}}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/reconnect.vue\n// module id = 711\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n attrs: {\n \"id\": \"top\"\n }\n }, [_c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 4\n }\n }, [_c('div', {\n staticClass: \"grid-content bg-purple\"\n }, [_vm._v(\" \")])]), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 16\n }\n }, [_c('div', {\n staticClass: \"grid-content bg-purple\"\n }, [_vm._v(\"Not connected\")])]), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 4\n }\n }, [_c('div', {\n staticClass: \"grid-content bg-purple\"\n }, [_vm._v(\" \")])])], 1), _vm._v(\" \"), _c('reconnect')], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-3f7ec18a\",\"hasScoped\":true,\"transformToRequire\":{\"video\":\"src\",\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"}}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/not-connected.vue\n// module id = 712\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-card', {\n staticClass: \"sockets-card\",\n attrs: {\n \"body-style\": {\n padding: 0\n }\n }\n }, [_c('div', {\n staticClass: \"clearfix\",\n attrs: {\n \"slot\": \"header\"\n },\n slot: \"header\"\n }, [_c('span', [_vm._v(\"Sockets\")])]), _vm._v(\" \"), _vm._l((_vm.$store.state.boards), function(board, isb) {\n return _c('div', {\n staticStyle: {\n \"padding\": \"10px\"\n }\n }, [_c('h4', {\n staticClass: \"board-header\"\n }, [_c('i', {\n staticClass: \"el-icon-info\",\n on: {\n \"click\": function($event) {\n _vm.showBoardResults(isb)\n }\n }\n }), _vm._v(\" Board \" + _vm._s(board.id)), (board.running) ? _c('span', {\n staticStyle: {\n \"color\": \"#393\"\n }\n }, [_vm._v(\" (running test)\")]) : _vm._e(), _vm._v(\" has run\\n \" + _vm._s(board.tests_done) + \" tests \"), (board.error) ? _c('span', {\n staticStyle: {\n \"color\": \"#939\"\n }\n }, [_vm._v(_vm._s(board.error))]) : _vm._e()]), _vm._v(\" \"), _c('el-table', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.tableData(board),\n \"header-cell-style\": {\n color: '#000'\n },\n \"cell-style\": _vm.getCellStyle\n }\n }, [_c('el-table-column', {\n attrs: {\n \"width\": \"75px\",\n \"prop\": \"socket\",\n \"label\": \"Socket\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(\"\\n \" + _vm._s(scope.row.socket) + \"\\n \"), (_vm.hasSocketResults(isb, scope.row.socket)) ? _c('i', {\n staticClass: \"el-icon-info\",\n on: {\n \"click\": function($event) {\n _vm.showSocketResults(isb, scope.row.socket)\n }\n }\n }) : _vm._e()]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"width\": \"80px\",\n \"prop\": \"state\",\n \"label\": \"State\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"width\": \"75px\",\n \"prop\": \"current_retry\",\n \"label\": \"Retried\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"chip_id\",\n \"label\": \"Chip ID\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"width\": \"75px\",\n \"prop\": \"result\",\n \"label\": \"Result\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"fail_tray\",\n \"label\": \"Fail tray\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"width\": \"75px\",\n \"prop\": \"source_index\",\n \"label\": \"Source\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"width\": \"75px\",\n \"prop\": \"v_tests\",\n \"label\": \"Tests\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"width\": \"75px\",\n \"prop\": \"v_ok\",\n \"label\": \"Ok\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"width\": \"75px\",\n \"prop\": \"v_fails\",\n \"label\": \"Fails\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"width\": \"75px\",\n \"prop\": \"v_yield\",\n \"label\": \"Yield\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"width\": \"75px\",\n \"prop\": \"retries\",\n \"label\": \"Retries\"\n }\n })], 1)], 1)\n }), _vm._v(\" \"), _c('el-dialog', {\n attrs: {\n \"title\": 'Result breakdown for ' + _vm.dialog.what,\n \"visible\": _vm.dialog.visible,\n \"width\": \"500px\"\n },\n on: {\n \"update:visible\": function($event) {\n _vm.$set(_vm.dialog, \"visible\", $event)\n }\n }\n }, [_c('results-plot', {\n attrs: {\n \"data\": _vm.dialog.data\n }\n })], 1)], 2)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-412f799c\",\"hasScoped\":false,\"transformToRequire\":{\"video\":\"src\",\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"}}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/sockets-card.vue\n// module id = 713\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n attrs: {\n \"id\": \"top\"\n }\n }, [_c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 4\n }\n }, [_vm._v(\" \")]), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 16\n }\n }, [_vm._v(\"\\n\\t\\t\\t\\t \" + _vm._s(_vm.getErrorText) + \" \\n\\t\\t\\t\")]), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 4\n }\n }, [_vm._v(\" \")])], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 4\n }\n }, [_vm._v(\" \")]), _vm._v(\" \"), _c('el-col', {\n staticClass: \"video\",\n attrs: {\n \"span\": 16\n }\n }, [_c('iframe', {\n attrs: {\n \"width\": \"100%\",\n \"height\": \"100%\",\n \"src\": \"http://www.youtube.com/embed/SkgTxQm9DWM?autoplay=1&cc_load_policy=1\",\n \"frameborder\": \"0\",\n \"allowfullscreen\": \"\"\n }\n })]), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 4\n }\n }, [_vm._v(\" \")])], 1)], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-4bbbbccf\",\"hasScoped\":true,\"transformToRequire\":{\"video\":\"src\",\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"}}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/project-error.vue\n// module id = 714\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n attrs: {\n \"id\": \"top\"\n }\n }, [_c('h1', [_vm._v(\"Running stats for \" + _vm._s(_vm.$store.state.name))]), _vm._v(\" \"), _c('el-row', [_c('el-col', [_c('stats-card'), _vm._v(\" \"), (_vm.$store.state.photo.data.length > 0) ? _c('el-card', {\n staticClass: \"photo-card\",\n attrs: {\n \"body-style\": {\n padding: '0px'\n }\n }\n }, [_c('div', {\n staticClass: \"clearfix\",\n attrs: {\n \"slot\": \"header\"\n },\n slot: \"header\"\n }, [_c('span', [_vm._v(\"Last photo of chip \" + _vm._s(_vm.$store.state.photo.chip_id) + \" in state \" + _vm._s(_vm.$store.state.photo.state))])]), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 24\n }\n }, [_c('img', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"src\": _vm.getImageData\n }\n })])], 1)], 1) : _vm._e(), _vm._v(\" \"), _c('sockets-card'), _vm._v(\" \"), (_vm.hasResults) ? _c('results-card') : _vm._e(), _vm._v(\" \"), (_vm.$store.state.chips.length > 0) ? _c('el-card', {\n staticClass: \"chips-card\"\n }, [_c('div', {\n staticClass: \"clearfix\",\n attrs: {\n \"slot\": \"header\"\n },\n slot: \"header\"\n }, [_c('span', [_vm._v(\"Last chips tested\")])]), _vm._v(\" \"), _c('el-collapse', _vm._l((_vm.$store.state.chips), function(chip) {\n return _c('chip-data', {\n key: chip.id,\n attrs: {\n \"chip\": chip\n }\n })\n }))], 1) : _vm._e()], 1)], 1)], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-59fff7b6\",\"hasScoped\":true,\"transformToRequire\":{\"video\":\"src\",\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"}}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/project-progress.vue\n// module id = 715\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n ref: \"plotContainer\"\n }, [_c('svg', {\n ref: \"plot\"\n })])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-af9d3ea6\",\"hasScoped\":false,\"transformToRequire\":{\"video\":\"src\",\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"}}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/results-plot.vue\n// module id = 716\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n attrs: {\n \"id\": \"app\"\n }\n }, [(_vm.isConnected) ? _c('main-view') : _c('not-connected')], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-cad49406\",\"hasScoped\":false,\"transformToRequire\":{\"video\":\"src\",\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"}}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/App.vue\n// module id = 717\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n attrs: {\n \"id\": \"top\"\n }\n }, [_c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 4\n }\n }, [_c('div', {\n staticClass: \"grid-content bg-purple\"\n }, [_vm._v(\" \")])]), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 16\n }\n }, [_c('div', {\n staticClass: \"grid-content bg-purple\"\n }, [_vm._v(\"No project is running.\")])]), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 4\n }\n }, [_c('div', {\n staticClass: \"grid-content bg-purple\"\n }, [_vm._v(\" \")])])], 1), _vm._v(\" \"), _c('reconnect')], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-da3083d8\",\"hasScoped\":true,\"transformToRequire\":{\"video\":\"src\",\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"}}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/no-project-running.vue\n// module id = 718\n// module chunks = 1"],"sourceRoot":""}