{"version":3,"sources":["webpack:///static/js/app.f456f5be68ba41cfaede.js","webpack:///./src/routes.js","webpack:///./src/store/store.js","webpack:///./src/App.vue?fc6a","webpack:///./src/main.js","webpack:///./src/store/modules/audits.js","webpack:///./src/store/modules/auth.js","webpack:///./src/store/modules/buildings.js","webpack:///./src/store/modules/dashboard.js","webpack:///./src/store/modules/global.js","webpack:///./src/store/modules/locations.js","webpack:///./src/store/modules/templates.js","webpack:///./src/store/modules/users.js","webpack:///App.vue","webpack:///./~/moment/locale ^\\.\\/.*$","webpack:///./src/App.vue?c1e7"],"names":["webpackJsonp","311","module","__webpack_exports__","__webpack_require__","d","guardRoute","routes","route","redirect","next","isAuthenticated","localStorage","getItem","matched","some","record","meta","allowAnonymous","path","component","resolve","e","then","__WEBPACK_AMD_REQUIRE_ARRAY__","apply","bind","this","catch","oe","children","alias","adminOnly","name","312","__WEBPACK_IMPORTED_MODULE_0_vue__","__WEBPACK_IMPORTED_MODULE_1_vuex__","__WEBPACK_IMPORTED_MODULE_2__modules_global__","__WEBPACK_IMPORTED_MODULE_3__modules_auth__","__WEBPACK_IMPORTED_MODULE_4__modules_dashboard__","__WEBPACK_IMPORTED_MODULE_5__modules_locations__","__WEBPACK_IMPORTED_MODULE_6__modules_buildings__","__WEBPACK_IMPORTED_MODULE_7__modules_users__","__WEBPACK_IMPORTED_MODULE_8__modules_templates__","__WEBPACK_IMPORTED_MODULE_9__modules_audits__","use","Store","modules","global","auth","dashboard","locations","buildings","users","templates","audits","314","exports","315","319","injectStyle","ssrContext","Component","342","Object","defineProperty","value","__WEBPACK_IMPORTED_MODULE_0_babel_polyfill__","__WEBPACK_IMPORTED_MODULE_1_vue__","n","__WEBPACK_IMPORTED_MODULE_2__App_vue__","__WEBPACK_IMPORTED_MODULE_2__App_vue___default","__WEBPACK_IMPORTED_MODULE_3_vue_router__","__WEBPACK_IMPORTED_MODULE_4__routes__","__WEBPACK_IMPORTED_MODULE_5__store_store__","__WEBPACK_IMPORTED_MODULE_6_axios__","__WEBPACK_IMPORTED_MODULE_6_axios___default","__WEBPACK_IMPORTED_MODULE_7_vue_axios__","__WEBPACK_IMPORTED_MODULE_7_vue_axios___default","__WEBPACK_IMPORTED_MODULE_8_vue_flatpickr__","__WEBPACK_IMPORTED_MODULE_8_vue_flatpickr___default","__WEBPACK_IMPORTED_MODULE_9_vue_flatpickr_theme_airbnb_css__","__WEBPACK_IMPORTED_MODULE_10_moment__","__WEBPACK_IMPORTED_MODULE_10_moment___default","__WEBPACK_IMPORTED_MODULE_11_jwt_decode__","__WEBPACK_IMPORTED_MODULE_11_jwt_decode___default","config","productionTip","router","mode","beforeEach","getters","token","exp","Date","now","alert","dispatch","includes","JSON","parse","roles","Name","a","defaults","headers","common","i","create","validateStatus","status","go","console","error","filter","format","window","app","el","store","render","h","343","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_set__","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_set___default","__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_toConsumableArray__","__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_toConsumableArray___default","__WEBPACK_IMPORTED_MODULE_2_babel_runtime_core_js_json_stringify__","__WEBPACK_IMPORTED_MODULE_2_babel_runtime_core_js_json_stringify___default","__WEBPACK_IMPORTED_MODULE_3_babel_runtime_core_js_promise__","__WEBPACK_IMPORTED_MODULE_3_babel_runtime_core_js_promise___default","__WEBPACK_IMPORTED_MODULE_4_babel_runtime_core_js_get_iterator__","__WEBPACK_IMPORTED_MODULE_4_babel_runtime_core_js_get_iterator___default","__WEBPACK_IMPORTED_MODULE_5_vue__","__WEBPACK_IMPORTED_MODULE_6_moment__","__WEBPACK_IMPORTED_MODULE_6_moment___default","__WEBPACK_IMPORTED_MODULE_7_pdfmake_build_pdfmake__","__WEBPACK_IMPORTED_MODULE_7_pdfmake_build_pdfmake___default","__WEBPACK_IMPORTED_MODULE_8_pdfmake_build_vfs_fonts__","state","audit","auditDetails","id","key","auditor","location","building","downloadingPDF","buildingNoteComment","mutations","SET_AUDIT","_ref","commit","DELETE_AUDIT","_ref2","splice","indexOf","SET_AUDITS_TO_USER","SET_ANSWER","_ref3","questionID","answer","_iteratorNormalCompletion","_didIteratorError","_iteratorError","undefined","_step","_iterator","done","x","Question","ID","Answer","err","return","SET_COMMENTS","_ref4","sectionID","comments","forEach","Section","Comments","UPDATE_UPLOAD_PROGRESS","_ref5","percentCompleted","item","UploadProgress","SET_AUDIT_DETAILS","SET_BUILDING_NOTE","buildingNotes","actions","getAll","_ref6","reject","axios","get","apiUrl","response","updateBuildingNote","_ref7","_ref8","surveyId","comment","isDefault","log","post","getBuildingNotes","_ref9","data","getAudit","_ref10","getAuditByKey","_ref11","_ref12","userID","getAuditsAssignedToUser","_ref13","getAuditsByLocation","_ref14","assignAudit","_ref15","_ref16","templateID","buildingID","TemplateID","BuildingID","AssignedTo","deleteAudit","_ref17","updateAnswer","_ref18","_ref19","auditID","answers","map","QuestionID","AnswerID","Photos","Answers","updateComments","_ref20","_ref21","cmts","sections","push","SectionID","resetAuditSelection","_ref22","uploadPhoto","_ref23","_ref24","photos","onUploadProgress","progressEvent","Math","round","loaded","total","message","deletePhoto","_ref25","_ref26","filename","replace","charAt","substring","length","resetUploadProgress","_ref27","getReport","_ref28","_ref29","start","end","Error","getReportByLocation","_ref30","_ref31","locationID","getReportByBuilding","_ref32","_ref33","getReportByUser","_ref34","_ref35","downloadPDF","_ref36","rootState","vfs","content","image","logo","width","margin","score","Value","maxScore","toFixed","style","table","headerRows","widths","body","text","fontSize","bold","alignment","createdOn","layout","color","filenames","y","split","promises","responseType","btoa","Uint8Array","reduce","byte","String","fromCharCode","dataURL","toLowerCase","all","dataURLs","title","Text","images","columns","columnGap","styles","header","docDefinition","createPdf","download","sendReport","_ref37","email","notifyAdminsAuditIsComplete","_ref38","thing","index","self","findIndex","t","userAudits","auditScore","344","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_json_stringify__","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_json_stringify___default","__WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_promise__","__WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_promise___default","__WEBPACK_IMPORTED_MODULE_2_vue__","role","user","SET_USER_TOKEN","_token","removeItem","SET_USER_DETAILS","_userDetails","LOGOUT","login","password","Email","Password","setItem","user_details","logout","setUserToken","setUserRole","requestPasswordReset","setNewPassword","updateNotificationConfig","newNotificationValue","notificationsConfig","optIn","loggedUser","access_token","getAuthenticationHeader","Authorization","getUserRole","345","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise__","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default","SET_BUILDING","SET_BUILDINGS","ADD_BUILDING","REMOVE_BUILDING","getBuildings","getBuildingsByLocation","params","createBuilding","locationId","Id","Location","updateBuilding","deleteBuilding","buildingsByLocation","acc","346","stats","graphData","graphDataAvg","SET_DASHBOARD_STATS","SET_GRAPH_DATA","labels","SET_GRAPH_DATA_AVG","getDashboardStats","setGraphData","setGraphDataAvg","getGraphData","getGraphDataAvg","347","isDropdownMenuOpen","menu","TOGGLE_DROPDOW_MENU","SET_MENU","options","toggleDropDownMenu","dropDownMenuState","link","348","SET_LOCATION","SET_LOCATIONS","ADD_LOCATION","REMOVE_LOCATION","getLocations","createLocation","TimeZone","updateLocation","deleteLocation","349","masterTemplate","template","assignTemplateValues","SET_MASTER_TEMPLATE","SET_TEMPLATES","ADD_TEMPLATE","unshift","DELETE_TEMPLATE","getMasterTemplate","getTemplates","upsertTemplate","isActive","createTemplate","deleteTemplate","SectionName","350","__WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_get_iterator__","__WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_get_iterator___default","SET_USERS","SET_ROLES","ADD_USER","DELETE_USER","UPDATE_USER","u","Roles","getUsers","getRoles","createUser","updateUser","deleteUser","351","created","$store","595","599","webpackContext","req","webpackContextResolve","./af","./af.js","./ar","./ar-dz","./ar-dz.js","./ar-kw","./ar-kw.js","./ar-ly","./ar-ly.js","./ar-ma","./ar-ma.js","./ar-sa","./ar-sa.js","./ar-tn","./ar-tn.js","./ar.js","./az","./az.js","./be","./be.js","./bg","./bg.js","./bn","./bn.js","./bo","./bo.js","./br","./br.js","./bs","./bs.js","./ca","./ca.js","./cs","./cs.js","./cv","./cv.js","./cy","./cy.js","./da","./da.js","./de","./de-at","./de-at.js","./de-ch","./de-ch.js","./de.js","./dv","./dv.js","./el","./el.js","./en-au","./en-au.js","./en-ca","./en-ca.js","./en-gb","./en-gb.js","./en-ie","./en-ie.js","./en-nz","./en-nz.js","./eo","./eo.js","./es","./es-do","./es-do.js","./es.js","./et","./et.js","./eu","./eu.js","./fa","./fa.js","./fi","./fi.js","./fo","./fo.js","./fr","./fr-ca","./fr-ca.js","./fr-ch","./fr-ch.js","./fr.js","./fy","./fy.js","./gd","./gd.js","./gl","./gl.js","./gom-latn","./gom-latn.js","./he","./he.js","./hi","./hi.js","./hr","./hr.js","./hu","./hu.js","./hy-am","./hy-am.js","./id","./id.js","./is","./is.js","./it","./it.js","./ja","./ja.js","./jv","./jv.js","./ka","./ka.js","./kk","./kk.js","./km","./km.js","./kn","./kn.js","./ko","./ko.js","./ky","./ky.js","./lb","./lb.js","./lo","./lo.js","./lt","./lt.js","./lv","./lv.js","./me","./me.js","./mi","./mi.js","./mk","./mk.js","./ml","./ml.js","./mr","./mr.js","./ms","./ms-my","./ms-my.js","./ms.js","./my","./my.js","./nb","./nb.js","./ne","./ne.js","./nl","./nl-be","./nl-be.js","./nl.js","./nn","./nn.js","./pa-in","./pa-in.js","./pl","./pl.js","./pt","./pt-br","./pt-br.js","./pt.js","./ro","./ro.js","./ru","./ru.js","./sd","./sd.js","./se","./se.js","./si","./si.js","./sk","./sk.js","./sl","./sl.js","./sq","./sq.js","./sr","./sr-cyrl","./sr-cyrl.js","./sr.js","./ss","./ss.js","./sv","./sv.js","./sw","./sw.js","./ta","./ta.js","./te","./te.js","./tet","./tet.js","./th","./th.js","./tl-ph","./tl-ph.js","./tlh","./tlh.js","./tr","./tr.js","./tzl","./tzl.js","./tzm","./tzm-latn","./tzm-latn.js","./tzm.js","./uk","./uk.js","./ur","./ur.js","./uz","./uz-latn","./uz-latn.js","./uz.js","./vi","./vi.js","./x-pseudo","./x-pseudo.js","./yo","./yo.js","./zh-cn","./zh-cn.js","./zh-hk","./zh-hk.js","./zh-tw","./zh-tw.js","keys","605","_vm","_h","$createElement","_self","_c","staticRenderFns"],"mappings":"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UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,aAAA,IACAC,gBAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,UAAA,IACAC,aAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,UAAA,IACAC,aAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,YAAA,IACAC,eAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,QAAA,IACAC,WAAA,IACAC,OAAA,IACAC,UAAA,IACAC,UAAA,IACAC,aAAA,IACAC,QAAA,IACAC,WAAA,IACAC,OAAA,IACAC,UAAA,IACAC,QAAA,IACAC,WAAA,IACAC,QAAA,IACAC,aAAA,IACAC,gBAAA,IACAC,WAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,YAAA,IACAC,eAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,aAAA,IACAC,gBAAA,IACAC,OAAA,IACAC,UAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IAWAxO,GAAAyO,KAAA,WACA,MAAA5nB,QAAA4nB,KAAAld,IAEAyO,EAAA9b,QAAAgc,EACAnd,EAAAuD,QAAA0Z,EACAA,EAAArU,GAAA,KdogEM+iB,IACA,SAAU3rB,EAAQuD,Ge3vExBvD,EAAAuD,SAAgB+D,OAAA,WAAmB,GAAAskB,GAAAnqB,KAAaoqB,EAAAD,EAAAE,cAChD,QAD0EF,EAAAG,MAAAC,IAAAH,GAC1E,gBACCI,uBfiwEE","file":"static/js/app.f456f5be68ba41cfaede.js","sourcesContent":["webpackJsonp([15],{\n\n/***/ 311:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return guardRoute; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return routes; });\n\nvar guardRoute = function guardRoute(route, redirect, next) {\n var isAuthenticated = localStorage.getItem('user_details') !== null;\n\n if (route.matched.some(function (record) {\n return record.meta.allowAnonymous;\n })) {\n next();\n } else if (!isAuthenticated) {\n next('/login');\n } else if (isAuthenticated) {\n next();\n }\n};\n\nvar routes = [{\n path: '/',\n component: function component(resolve) {\n return __webpack_require__.e/* require */(4).then(function() { var __WEBPACK_AMD_REQUIRE_ARRAY__ = [__webpack_require__(612)]; (resolve.apply(null, __WEBPACK_AMD_REQUIRE_ARRAY__));}.bind(this)).catch(__webpack_require__.oe);\n },\n children: [{\n path: '/',\n alias: '/home',\n component: function component(resolve) {\n return __webpack_require__.e/* require */(9).then(function() { var __WEBPACK_AMD_REQUIRE_ARRAY__ = [__webpack_require__(609)]; (resolve.apply(null, __WEBPACK_AMD_REQUIRE_ARRAY__));}.bind(this)).catch(__webpack_require__.oe);\n }\n }, {\n path: '/admin',\n alias: '/admin/dashboard',\n meta: { adminOnly: true },\n component: function component(resolve) {\n return __webpack_require__.e/* require */(0).then(function() { var __WEBPACK_AMD_REQUIRE_ARRAY__ = [__webpack_require__(614)]; (resolve.apply(null, __WEBPACK_AMD_REQUIRE_ARRAY__));}.bind(this)).catch(__webpack_require__.oe);\n }\n }, {\n path: '/admin/users',\n meta: { adminOnly: true },\n component: function component(resolve) {\n return __webpack_require__.e/* require */(3).then(function() { var __WEBPACK_AMD_REQUIRE_ARRAY__ = [__webpack_require__(618)]; (resolve.apply(null, __WEBPACK_AMD_REQUIRE_ARRAY__));}.bind(this)).catch(__webpack_require__.oe);\n }\n }, {\n path: '/admin/locations',\n meta: { adminOnly: true },\n component: function component(resolve) {\n return __webpack_require__.e/* require */(7).then(function() { var __WEBPACK_AMD_REQUIRE_ARRAY__ = [__webpack_require__(615)]; (resolve.apply(null, __WEBPACK_AMD_REQUIRE_ARRAY__));}.bind(this)).catch(__webpack_require__.oe);\n }\n }, {\n path: '/admin/buildings',\n meta: { adminOnly: true },\n component: function component(resolve) {\n return __webpack_require__.e/* require */(6).then(function() { var __WEBPACK_AMD_REQUIRE_ARRAY__ = [__webpack_require__(613)]; (resolve.apply(null, __WEBPACK_AMD_REQUIRE_ARRAY__));}.bind(this)).catch(__webpack_require__.oe);\n }\n }, {\n path: '/admin/templates',\n meta: { adminOnly: true },\n component: function component(resolve) {\n return __webpack_require__.e/* require */(1).then(function() { var __WEBPACK_AMD_REQUIRE_ARRAY__ = [__webpack_require__(617)]; (resolve.apply(null, __WEBPACK_AMD_REQUIRE_ARRAY__));}.bind(this)).catch(__webpack_require__.oe);\n }\n }, {\n path: '/template/:id',\n name: 'template',\n component: function component(resolve) {\n return __webpack_require__.e/* require */(11).then(function() { var __WEBPACK_AMD_REQUIRE_ARRAY__ = [__webpack_require__(616)]; (resolve.apply(null, __WEBPACK_AMD_REQUIRE_ARRAY__));}.bind(this)).catch(__webpack_require__.oe);\n }\n }, {\n path: '/audits',\n component: function component(resolve) {\n return __webpack_require__.e/* require */(10).then(function() { var __WEBPACK_AMD_REQUIRE_ARRAY__ = [__webpack_require__(620)]; (resolve.apply(null, __WEBPACK_AMD_REQUIRE_ARRAY__));}.bind(this)).catch(__webpack_require__.oe);\n }\n }, {\n path: '/audit/:id',\n name: 'audit',\n component: function component(resolve) {\n return __webpack_require__.e/* require */(2).then(function() { var __WEBPACK_AMD_REQUIRE_ARRAY__ = [__webpack_require__(619)]; (resolve.apply(null, __WEBPACK_AMD_REQUIRE_ARRAY__));}.bind(this)).catch(__webpack_require__.oe);\n }\n }, {\n path: '/login/:action?',\n component: function component(resolve) {\n return __webpack_require__.e/* require */(8).then(function() { var __WEBPACK_AMD_REQUIRE_ARRAY__ = [__webpack_require__(610)]; (resolve.apply(null, __WEBPACK_AMD_REQUIRE_ARRAY__));}.bind(this)).catch(__webpack_require__.oe);\n },\n meta: { allowAnonymous: true }\n }, {\n path: '/resetpassword/:token?',\n component: function component(resolve) {\n return __webpack_require__.e/* require */(12).then(function() { var __WEBPACK_AMD_REQUIRE_ARRAY__ = [__webpack_require__(611)]; (resolve.apply(null, __WEBPACK_AMD_REQUIRE_ARRAY__));}.bind(this)).catch(__webpack_require__.oe);\n },\n meta: { allowAnonymous: true }\n }]\n}, {\n path: '/download-audit/:key?/:userID?',\n component: function component(resolve) {\n return __webpack_require__.e/* require */(5).then(function() { var __WEBPACK_AMD_REQUIRE_ARRAY__ = [__webpack_require__(621)]; (resolve.apply(null, __WEBPACK_AMD_REQUIRE_ARRAY__));}.bind(this)).catch(__webpack_require__.oe);\n },\n meta: { allowAnonymous: true }\n}, {\n path: '*',\n component: function component(resolve) {\n return __webpack_require__.e/* require */(13).then(function() { var __WEBPACK_AMD_REQUIRE_ARRAY__ = [__webpack_require__(622)]; (resolve.apply(null, __WEBPACK_AMD_REQUIRE_ARRAY__));}.bind(this)).catch(__webpack_require__.oe);\n },\n meta: { allowAnonymous: true }\n}];\n\n/***/ }),\n\n/***/ 312:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue__ = __webpack_require__(32);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vuex__ = __webpack_require__(324);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__modules_global__ = __webpack_require__(347);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__modules_auth__ = __webpack_require__(344);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__modules_dashboard__ = __webpack_require__(346);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__modules_locations__ = __webpack_require__(348);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__modules_buildings__ = __webpack_require__(345);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__modules_users__ = __webpack_require__(350);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__modules_templates__ = __webpack_require__(349);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__modules_audits__ = __webpack_require__(343);\n\n\n\n\n\n\n\n\n\n\n\n\n\n__WEBPACK_IMPORTED_MODULE_0_vue__[\"a\" /* default */].use(__WEBPACK_IMPORTED_MODULE_1_vuex__[\"c\" /* default */]);\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (new __WEBPACK_IMPORTED_MODULE_1_vuex__[\"c\" /* default */].Store({\n modules: {\n global: __WEBPACK_IMPORTED_MODULE_2__modules_global__[\"a\" /* default */],\n auth: __WEBPACK_IMPORTED_MODULE_3__modules_auth__[\"a\" /* default */],\n dashboard: __WEBPACK_IMPORTED_MODULE_4__modules_dashboard__[\"a\" /* default */],\n locations: __WEBPACK_IMPORTED_MODULE_5__modules_locations__[\"a\" /* default */],\n buildings: __WEBPACK_IMPORTED_MODULE_6__modules_buildings__[\"a\" /* default */],\n users: __WEBPACK_IMPORTED_MODULE_7__modules_users__[\"a\" /* default */],\n templates: __WEBPACK_IMPORTED_MODULE_8__modules_templates__[\"a\" /* default */],\n audits: __WEBPACK_IMPORTED_MODULE_9__modules_audits__[\"a\" /* default */]\n }\n}));\n\n/***/ }),\n\n/***/ 314:\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ 315:\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ 319:\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction injectStyle (ssrContext) {\n __webpack_require__(595)\n}\nvar Component = __webpack_require__(321)(\n /* script */\n __webpack_require__(351),\n /* template */\n __webpack_require__(605),\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/***/ 342:\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_polyfill__ = __webpack_require__(313);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_polyfill___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_polyfill__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue__ = __webpack_require__(32);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__App_vue__ = __webpack_require__(319);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__App_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2__App_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_vue_router__ = __webpack_require__(320);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__routes__ = __webpack_require__(311);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__store_store__ = __webpack_require__(312);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_axios__ = __webpack_require__(310);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_axios___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_axios__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_vue_axios__ = __webpack_require__(317);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_vue_axios___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_vue_axios__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_vue_flatpickr__ = __webpack_require__(318);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_vue_flatpickr___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8_vue_flatpickr__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_vue_flatpickr_theme_airbnb_css__ = __webpack_require__(314);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_vue_flatpickr_theme_airbnb_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9_vue_flatpickr_theme_airbnb_css__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_moment__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_moment___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_10_moment__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_jwt_decode__ = __webpack_require__(316);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_jwt_decode___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_11_jwt_decode__);\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n__webpack_require__(315);\n\n__WEBPACK_IMPORTED_MODULE_1_vue__[\"a\" /* default */].config.productionTip = false;\n\n__WEBPACK_IMPORTED_MODULE_1_vue__[\"a\" /* default */].use(__WEBPACK_IMPORTED_MODULE_3_vue_router__[\"a\" /* default */]);\nvar router = new __WEBPACK_IMPORTED_MODULE_3_vue_router__[\"a\" /* default */]({\n mode: 'history',\n routes: __WEBPACK_IMPORTED_MODULE_4__routes__[\"a\" /* routes */]\n});\n\nrouter.beforeEach(function (route, redirect, next) {\n if (__WEBPACK_IMPORTED_MODULE_5__store_store__[\"a\" /* default */].getters.token) {\n if (__WEBPACK_IMPORTED_MODULE_11_jwt_decode___default()(__WEBPACK_IMPORTED_MODULE_5__store_store__[\"a\" /* default */].getters.token).exp < Date.now() / 1000) {\n alert('Either you tried to access a restricted area or your token has expired! For security reason, please try to log in again.');\n __WEBPACK_IMPORTED_MODULE_5__store_store__[\"a\" /* default */].dispatch('logout');\n next('/');\n }\n\n if (typeof route.meta.adminOnly !== 'undefined' && route.meta.adminOnly === true && !['SuperAdmin', 'Admin'].includes(JSON.parse(__WEBPACK_IMPORTED_MODULE_11_jwt_decode___default()(__WEBPACK_IMPORTED_MODULE_5__store_store__[\"a\" /* default */].getters.token).roles)[0].Name)) {\n next('/');\n }\n }\n\n __WEBPACK_IMPORTED_MODULE_5__store_store__[\"a\" /* default */].dispatch('toggleDropDownMenu', false);\n\n if (__WEBPACK_IMPORTED_MODULE_5__store_store__[\"a\" /* default */].getters.token !== null && typeof __WEBPACK_IMPORTED_MODULE_5__store_store__[\"a\" /* default */].getters.token !== 'undefined') {\n __WEBPACK_IMPORTED_MODULE_6_axios___default.a.defaults.headers.common['Authorization'] = __WEBPACK_IMPORTED_MODULE_5__store_store__[\"a\" /* default */].getters.token;\n }\n\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__routes__[\"b\" /* guardRoute */])(route, redirect, next);\n});\n\n__WEBPACK_IMPORTED_MODULE_5__store_store__[\"a\" /* default */].dispatch('setUserToken');\n__WEBPACK_IMPORTED_MODULE_1_vue__[\"a\" /* default */].use(__WEBPACK_IMPORTED_MODULE_7_vue_axios___default.a, __WEBPACK_IMPORTED_MODULE_6_axios___default.a.create({\n validateStatus: function validateStatus(status) {\n if (status === 401) {\n alert('Token expired!');\n __WEBPACK_IMPORTED_MODULE_5__store_store__[\"a\" /* default */].dispatch('logout');\n router.go('/');\n return false;\n } else if (status === 403) {\n console.error(\"Seems like you don't have enough permissions to perform a specific action in this page.\");\n\n return false;\n } else {\n return true;\n }\n }\n}));\n\n__WEBPACK_IMPORTED_MODULE_1_vue__[\"a\" /* default */].use(__WEBPACK_IMPORTED_MODULE_8_vue_flatpickr___default.a);\n\n__WEBPACK_IMPORTED_MODULE_1_vue__[\"a\" /* default */].filter('prettifyDate', function (value) {\n return __WEBPACK_IMPORTED_MODULE_10_moment___default()(value).format('MM/DD/YYYY hh:mm:ssa');\n});\n\nwindow.app = new __WEBPACK_IMPORTED_MODULE_1_vue__[\"a\" /* default */]({\n el: '#app',\n router: router,\n store: __WEBPACK_IMPORTED_MODULE_5__store_store__[\"a\" /* default */],\n render: function render(h) {\n return h(__WEBPACK_IMPORTED_MODULE_2__App_vue___default.a);\n }\n});\n\n/***/ }),\n\n/***/ 343:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_set__ = __webpack_require__(353);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_set___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_set__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_toConsumableArray__ = __webpack_require__(354);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_toConsumableArray___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_toConsumableArray__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_core_js_json_stringify__ = __webpack_require__(136);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_core_js_json_stringify___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_core_js_json_stringify__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_core_js_promise__ = __webpack_require__(43);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_core_js_promise___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_core_js_promise__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_core_js_get_iterator__ = __webpack_require__(135);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_core_js_get_iterator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_babel_runtime_core_js_get_iterator__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_vue__ = __webpack_require__(32);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_moment__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_moment___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_moment__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_pdfmake_build_pdfmake__ = __webpack_require__(600);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_pdfmake_build_pdfmake___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_pdfmake_build_pdfmake__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_pdfmake_build_vfs_fonts__ = __webpack_require__(601);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_pdfmake_build_vfs_fonts___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8_pdfmake_build_vfs_fonts__);\n\n\n\n\n\n\n\n\n\n\nvar state = {\n audit: [],\n audits: [],\n\n auditDetails: {\n id: null,\n key: null,\n auditor: null,\n location: null,\n building: null\n },\n downloadingPDF: false,\n buildingNoteComment: null\n};\n\nvar mutations = {\n SET_AUDIT: function SET_AUDIT(_ref, value) {\n var commit = _ref.commit;\n\n state.audit = value;\n },\n DELETE_AUDIT: function DELETE_AUDIT(_ref2, audit) {\n var commit = _ref2.commit;\n\n state.audits.splice(state.audits.indexOf(audit), 1);\n },\n SET_AUDITS_TO_USER: function SET_AUDITS_TO_USER(state, audits) {\n state.audits = audits || [];\n },\n SET_ANSWER: function SET_ANSWER(state, _ref3) {\n var questionID = _ref3.questionID,\n answer = _ref3.answer;\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = __WEBPACK_IMPORTED_MODULE_4_babel_runtime_core_js_get_iterator___default()(state.audit), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var x = _step.value;\n\n if (x.Question.ID === questionID) {\n x.Answer = answer;\n break;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n },\n SET_COMMENTS: function SET_COMMENTS(state, _ref4) {\n var sectionID = _ref4.sectionID,\n comments = _ref4.comments;\n\n state.audit.forEach(function (x, i) {\n if (x.Section.ID === sectionID) {\n x.Comments = comments;\n }\n });\n },\n UPDATE_UPLOAD_PROGRESS: function UPDATE_UPLOAD_PROGRESS(state, _ref5) {\n var sectionID = _ref5.sectionID,\n percentCompleted = _ref5.percentCompleted;\n\n state.audit.filter(function (item) {\n if (item.Section.ID === sectionID) {\n item.UploadProgress = percentCompleted;\n }\n });\n },\n SET_AUDIT_DETAILS: function SET_AUDIT_DETAILS(state, auditDetails) {\n state.auditDetails = auditDetails;\n },\n SET_BUILDING_NOTE: function SET_BUILDING_NOTE(state, buildingNotes) {\n state.buildingNoteComment = buildingNotes;\n }\n};\n\nvar actions = {\n getAll: function getAll(_ref6) {\n var commit = _ref6.commit;\n\n return new __WEBPACK_IMPORTED_MODULE_3_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n __WEBPACK_IMPORTED_MODULE_5_vue__[\"a\" /* default */].axios.get(window.config.apiUrl + 'audit/getall').then(function (response) {\n resolve(response);\n }).catch(function (error) {\n reject(error);\n });\n });\n },\n updateBuildingNote: function updateBuildingNote(_ref7, _ref8) {\n var commit = _ref7.commit;\n var surveyId = _ref8.surveyId,\n comment = _ref8.comment,\n isDefault = _ref8.isDefault;\n\n state.auditDetails.buildingNotes = comment;\n console.log(state);\n console.log(state.auditDetails);\n console.log(state.auditDetails.buildingNotes);\n return new __WEBPACK_IMPORTED_MODULE_3_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n __WEBPACK_IMPORTED_MODULE_5_vue__[\"a\" /* default */].axios.post(window.config.apiUrl + 'audit/updatebuildingnote?surveyId=' + surveyId + '&comment=' + comment + '&isDefault=' + isDefault).then(function (response) {\n resolve(response);\n }).catch(function (error) {\n reject(error);\n });\n });\n },\n getBuildingNotes: function getBuildingNotes(_ref9, surveyId) {\n var commit = _ref9.commit;\n\n return new __WEBPACK_IMPORTED_MODULE_3_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n __WEBPACK_IMPORTED_MODULE_5_vue__[\"a\" /* default */].axios.get(window.config.apiUrl + 'audit/GetBuildingNotes?surveyId=' + surveyId).then(function (response) {\n if (response.data !== '') {\n commit('SET_BUILDING_NOTE', response.data.buildingNoteComment);\n }\n resolve(response.data);\n }).catch(function (error) {\n reject(error);\n });\n });\n },\n getAudit: function getAudit(_ref10, value) {\n var commit = _ref10.commit;\n\n return new __WEBPACK_IMPORTED_MODULE_3_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n __WEBPACK_IMPORTED_MODULE_5_vue__[\"a\" /* default */].axios.get(window.config.apiUrl + 'audit/get?id=' + value).then(function (response) {\n if (response.data !== '') {\n commit('SET_AUDIT', response.data.audit);\n commit('SET_AUDIT_DETAILS', response.data.auditDetails);\n }\n resolve(response);\n }).catch(function (error) {\n reject(error);\n });\n });\n },\n getAuditByKey: function getAuditByKey(_ref11, _ref12) {\n var commit = _ref11.commit;\n var key = _ref12.key,\n userID = _ref12.userID;\n\n return new __WEBPACK_IMPORTED_MODULE_3_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n __WEBPACK_IMPORTED_MODULE_5_vue__[\"a\" /* default */].axios.get(window.config.apiUrl + 'audit/getbykey?key=' + key + '&userID=' + userID).then(function (response) {\n if (response.data !== '') {\n commit('SET_AUDIT', response.data.audit);\n commit('SET_AUDIT_DETAILS', response.data.auditDetails);\n }\n resolve(response);\n }).catch(function (error) {\n reject(error);\n });\n });\n },\n getAuditsAssignedToUser: function getAuditsAssignedToUser(_ref13) {\n var commit = _ref13.commit;\n\n return new __WEBPACK_IMPORTED_MODULE_3_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n __WEBPACK_IMPORTED_MODULE_5_vue__[\"a\" /* default */].axios.get(window.config.apiUrl + 'audit/GetAssignedToUser').then(function (response) {\n commit('SET_AUDITS_TO_USER', response.data);\n resolve(response);\n }).catch(function (error) {\n reject(error);\n });\n });\n },\n getAuditsByLocation: function getAuditsByLocation(_ref14) {\n var commit = _ref14.commit;\n\n return new __WEBPACK_IMPORTED_MODULE_3_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n __WEBPACK_IMPORTED_MODULE_5_vue__[\"a\" /* default */].axios.get(window.config.apiUrl + 'audit/getbylocation').then(function (response) {\n commit('SET_AUDITS_TO_USER', response.data);\n resolve(response);\n }).catch(function (error) {\n reject(error);\n });\n });\n },\n assignAudit: function assignAudit(_ref15, _ref16) {\n var commit = _ref15.commit;\n var templateID = _ref16.templateID,\n buildingID = _ref16.buildingID,\n userID = _ref16.userID;\n\n return new __WEBPACK_IMPORTED_MODULE_3_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n __WEBPACK_IMPORTED_MODULE_5_vue__[\"a\" /* default */].axios.post(window.config.apiUrl + 'audit/create', {\n TemplateID: templateID,\n BuildingID: buildingID,\n AssignedTo: userID\n }).then(function (response) {\n resolve(response);\n }).catch(function (error) {\n reject(error);\n });\n });\n },\n deleteAudit: function deleteAudit(_ref17, audit) {\n var commit = _ref17.commit;\n\n return new __WEBPACK_IMPORTED_MODULE_3_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n __WEBPACK_IMPORTED_MODULE_5_vue__[\"a\" /* default */].axios.post(window.config.apiUrl + 'audit/delete', {\n ID: audit.ID\n }).then(function (response) {\n if (response) {\n commit('DELETE_AUDIT', audit);\n }\n resolve(response);\n }).catch(function (error) {\n reject(error);\n });\n });\n },\n updateAnswer: function updateAnswer(_ref18, _ref19) {\n var commit = _ref18.commit;\n var auditID = _ref19.auditID,\n questionID = _ref19.questionID,\n answer = _ref19.answer;\n\n return new __WEBPACK_IMPORTED_MODULE_3_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n commit('SET_ANSWER', {\n questionID: questionID,\n answer: answer\n });\n\n var answers = state.audit;\n answers = answers.filter(function (item) {\n return item.Answer.ID !== null;\n }).map(function (x) {\n return {\n QuestionID: x.Question.ID,\n AnswerID: x.Answer.ID,\n Photos: []\n };\n });\n\n __WEBPACK_IMPORTED_MODULE_5_vue__[\"a\" /* default */].axios.post(window.config.apiUrl + 'audit/update', {\n ID: auditID,\n Answers: __WEBPACK_IMPORTED_MODULE_2_babel_runtime_core_js_json_stringify___default()(answers)\n }).then(function (response) {\n resolve(response);\n }).catch(function (error) {\n reject(error);\n });\n });\n },\n updateComments: function updateComments(_ref20, _ref21) {\n var commit = _ref20.commit;\n var auditID = _ref21.auditID,\n sectionID = _ref21.sectionID,\n comments = _ref21.comments;\n\n return new __WEBPACK_IMPORTED_MODULE_3_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n commit('SET_COMMENTS', {\n sectionID: sectionID,\n comments: comments\n });\n\n var cmts = state.audit;\n var sections = [];\n\n cmts = cmts.filter(function (item) {\n return item.Section.Comments !== null;\n }).map(function (x) {\n if (sections.indexOf(x.Section.ID) === -1) {\n sections.push(x.Section.ID);\n return {\n SectionID: x.Section.ID,\n Comments: x.Comments\n };\n }\n }).filter(function (item) {\n return item !== undefined;\n });\n __WEBPACK_IMPORTED_MODULE_5_vue__[\"a\" /* default */].axios.post(window.config.apiUrl + 'audit/updateComments', {\n ID: auditID,\n Comments: __WEBPACK_IMPORTED_MODULE_2_babel_runtime_core_js_json_stringify___default()(cmts)\n }).then(function (response) {\n resolve(response);\n }).catch(function (error) {\n reject(error);\n });\n });\n },\n resetAuditSelection: function resetAuditSelection(_ref22) {\n var commit = _ref22.commit;\n\n commit('SET_AUDIT', []);\n },\n uploadPhoto: function uploadPhoto(_ref23, _ref24) {\n var commit = _ref23.commit;\n var photos = _ref24.photos,\n sectionID = _ref24.sectionID;\n\n return new __WEBPACK_IMPORTED_MODULE_3_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n var config = {\n onUploadProgress: function onUploadProgress(progressEvent) {\n var percentCompleted = Math.round(progressEvent.loaded * 100 / progressEvent.total);\n commit('UPDATE_UPLOAD_PROGRESS', {\n sectionID: sectionID,\n percentCompleted: percentCompleted\n });\n }\n };\n\n __WEBPACK_IMPORTED_MODULE_5_vue__[\"a\" /* default */].axios.post(window.config.apiUrl + 'audit/uploadphoto', photos, config).then(function (response) {\n state.audit.filter(function (x) {\n if (x.Section.ID === sectionID) {\n if (x.Section.Photos !== null && x.Section.Photos !== '') {\n x.Section.Photos += ',' + response.data;\n } else {\n x.Section.Photos = response.data;\n }\n }\n });\n resolve(response);\n }).catch(function (err) {\n reject(err.message);\n });\n });\n },\n deletePhoto: function deletePhoto(_ref25, _ref26) {\n var commit = _ref25.commit;\n var filename = _ref26.filename,\n auditID = _ref26.auditID,\n sectionID = _ref26.sectionID;\n\n return new __WEBPACK_IMPORTED_MODULE_3_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n __WEBPACK_IMPORTED_MODULE_5_vue__[\"a\" /* default */].axios.post(window.config.apiUrl + 'audit/deletephoto?filename=' + filename + '&auditID=' + auditID + '§ionID=' + sectionID).then(function (response) {\n if (!response) return;\n\n state.audit.filter(function (x) {\n if (x.Section.ID === sectionID) {\n x.Section.Photos = x.Section.Photos.replace('' + filename, '').replace(',,', ',');\n\n if (x.Section.Photos.charAt(0) === ',') {\n x.Section.Photos = x.Section.Photos.substring(1);\n } else if (x.Section.Photos.charAt(x.Section.Photos.length - 1) === ',') {\n x.Section.Photos = x.Section.Photos.substring(0, x.Section.Photos.length - 1);\n }\n }\n });\n resolve(response);\n }).catch(function (err) {\n reject(err.message);\n });\n });\n },\n resetUploadProgress: function resetUploadProgress(_ref27, sectionID) {\n var commit = _ref27.commit;\n\n commit('UPDATE_UPLOAD_PROGRESS', {\n sectionID: sectionID,\n percentCompleted: 0\n });\n },\n getReport: function getReport(_ref28, _ref29) {\n var commit = _ref28.commit;\n var start = _ref29.start,\n end = _ref29.end;\n\n return new __WEBPACK_IMPORTED_MODULE_3_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n __WEBPACK_IMPORTED_MODULE_5_vue__[\"a\" /* default */].axios.get(window.config.apiUrl + 'report/get?start=' + start + '&end=' + end).then(function (response) {\n if (response.data === '') {\n reject(new Error('No data found.'));\n alert('No data found.');\n } else {\n resolve(response);\n }\n }).catch(function (error) {\n reject(error);\n });\n });\n },\n getReportByLocation: function getReportByLocation(_ref30, _ref31) {\n var commit = _ref30.commit;\n var locationID = _ref31.locationID,\n start = _ref31.start,\n end = _ref31.end;\n\n return new __WEBPACK_IMPORTED_MODULE_3_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n __WEBPACK_IMPORTED_MODULE_5_vue__[\"a\" /* default */].axios.get(window.config.apiUrl + 'report/getByLocation?locationID=' + locationID + '&start=' + start + '&end=' + end).then(function (response) {\n if (response.data === '') {\n reject(new Error('No data found.'));\n } else {\n resolve(response);\n }\n }).catch(function (error) {\n reject(error);\n });\n });\n },\n getReportByBuilding: function getReportByBuilding(_ref32, _ref33) {\n var commit = _ref32.commit;\n var buildingID = _ref33.buildingID,\n start = _ref33.start,\n end = _ref33.end;\n\n return new __WEBPACK_IMPORTED_MODULE_3_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n __WEBPACK_IMPORTED_MODULE_5_vue__[\"a\" /* default */].axios.get(window.config.apiUrl + 'report/getByBuilding?buildingID=' + buildingID + '&start=' + start + '&end=' + end).then(function (response) {\n if (response.data === '') {\n reject(new Error('No data found.'));\n } else {\n resolve(response);\n }\n }).catch(function (error) {\n reject(error);\n });\n });\n },\n getReportByUser: function getReportByUser(_ref34, _ref35) {\n var commit = _ref34.commit;\n var userID = _ref35.userID,\n start = _ref35.start,\n end = _ref35.end;\n\n return new __WEBPACK_IMPORTED_MODULE_3_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n __WEBPACK_IMPORTED_MODULE_5_vue__[\"a\" /* default */].axios.get(window.config.apiUrl + 'report/getByUser?userID=' + userID + '&start=' + start + '&end=' + end).then(function (response) {\n if (response.data === '') {\n reject(new Error('No data found.'));\n } else {\n resolve(response);\n }\n }).catch(function (error) {\n reject(error);\n });\n });\n },\n downloadPDF: function downloadPDF(_ref36) {\n var commit = _ref36.commit,\n rootState = _ref36.rootState;\n\n state.downloadingPDF = true;\n __WEBPACK_IMPORTED_MODULE_7_pdfmake_build_pdfmake___default.a.vfs = __WEBPACK_IMPORTED_MODULE_8_pdfmake_build_vfs_fonts__[\"pdfMake\"].vfs;\n\n var content = [];\n\n content.push({\n image: rootState.global.logo,\n width: 150,\n margin: [0, 0, 0, 25]\n });\n\n var score = 0;\n rootState.audits.audit.forEach(function (x) {\n score += x.Answer.Value;\n });\n score = (score / rootState.audits.auditDetails.maxScore * 100).toFixed(0).replace('.00', '') + '%';\n\n content.push({\n style: 'tableExample',\n table: {\n headerRows: 1,\n widths: [125, 150, '*', '*', '*'],\n body: [[{\n text: 'Location',\n fontSize: 10,\n bold: true\n }, {\n text: 'Building',\n fontSize: 10,\n bold: true\n }, {\n text: 'Auditor',\n fontSize: 10,\n bold: true,\n alignment: 'right'\n }, {\n text: 'Score',\n fontSize: 10,\n bold: true,\n alignment: 'right'\n }, {\n text: 'Created On',\n fontSize: 10,\n bold: true,\n alignment: 'right'\n }], [{\n text: state.auditDetails.location,\n fontSize: 12,\n bold: false\n }, {\n text: state.auditDetails.building,\n fontSize: 12,\n bold: false\n }, {\n text: state.auditDetails.auditor,\n fontSize: 12,\n bold: false,\n alignment: 'right'\n }, {\n text: score,\n fontSize: 12,\n bold: false,\n alignment: 'right'\n }, {\n text: __WEBPACK_IMPORTED_MODULE_6_moment___default()(state.auditDetails.createdOn).format('MM/DD/YYYY'),\n fontSize: 10,\n bold: false,\n alignment: 'right'\n }]]\n },\n layout: 'noBorders'\n });\n\n content.push({\n text: '__________________________________________________________________________________________________________________',\n color: '#ccc',\n fontSize: 10,\n margin: [0, 0, 0, 5]\n });\n var buildingNotes = state.auditDetails.buildingNotes;\n if (buildingNotes) {\n content.push({\n text: 'Building Notes',\n fontSize: 14,\n bold: true,\n margin: [0, 15, 0, 5]\n }, {\n text: state.auditDetails.buildingNotes,\n fontSize: 12,\n bold: false,\n alignment: 'left'\n });\n }\n\n var sections = [].concat(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_toConsumableArray___default()(new __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_set___default.a(state.audit.map(function (x) {\n return x.Section.ID;\n }))));\n\n var photos = [];\n sections.forEach(function (sectionID) {\n var filenames = state.audit.filter(function (y) {\n return y.Section.ID === sectionID;\n })[0].Section.Photos;\n if (filenames) {\n filenames.split(',').forEach(function (filename) {\n photos.push({\n sectionID: sectionID,\n filename: filename\n });\n });\n }\n });\n\n var promises = [];\n if (photos) {\n photos.forEach(function (item) {\n promises.push(new __WEBPACK_IMPORTED_MODULE_3_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n __WEBPACK_IMPORTED_MODULE_5_vue__[\"a\" /* default */].axios.get('/uploads/' + state.auditDetails.id + '/' + item.sectionID + '/resized_' + item.filename, {\n responseType: 'arraybuffer'\n }).then(function (response) {\n var image = btoa(new Uint8Array(response.data).reduce(function (data, byte) {\n return data + String.fromCharCode(byte);\n }, ''));\n resolve({\n sectionID: item.sectionID,\n dataURL: 'data:' + response.headers['content-type'].toLowerCase() + ';base64,' + image\n });\n });\n }));\n });\n }\n __WEBPACK_IMPORTED_MODULE_3_babel_runtime_core_js_promise___default.a.all(promises).then(function (dataURLs) {\n sections.forEach(function (sectionID) {\n var title = state.audit.filter(function (y) {\n return y.Section.ID === sectionID;\n })[0].Section.Text;\n content.push({\n text: title,\n fontSize: 15,\n bold: true,\n margin: [0, 15, 0, 5]\n });\n\n var body = [];\n\n body.push([{\n text: 'Item',\n fontSize: 14,\n bold: true\n }, {\n text: 'Answer',\n fontSize: 14,\n bold: true\n }]);\n\n state.audit.filter(function (y) {\n return y.Section.ID === sectionID;\n }).forEach(function (x) {\n return body.push([x.Question.Text, x.Answer.Text]);\n });\n\n content.push({\n table: {\n headerRows: 1,\n widths: ['*', 75],\n body: body\n }\n });\n\n var comments = state.audit.filter(function (y) {\n return y.Section.ID === sectionID;\n })[0].Section.Comments;\n if (comments) {\n content.push({\n text: 'Comments',\n fontSize: 14,\n bold: true,\n margin: [0, 15, 0, 5]\n }, {\n text: comments,\n fontSize: 12\n });\n }\n\n var images = dataURLs.filter(function (x) {\n return x.sectionID === sectionID;\n });\n if (images) {\n var columns = [];\n var margin = [0, 10, 0, 0];\n var columnGap = 10;\n images.forEach(function (image, i) {\n columns.push({\n image: image.dataURL,\n width: 252.5\n });\n\n if (columns.length === 2) {\n content.push({\n columns: columns,\n margin: margin,\n columnGap: columnGap\n });\n columns = [];\n } else if (images.length === i + 1) {\n content.push({\n columns: columns,\n margin: margin,\n columnGap: columnGap\n });\n }\n });\n }\n });\n\n var styles = {\n header: {\n fontSize: 18,\n bold: true,\n margin: [0, 0, 0, 10]\n }\n };\n\n var docDefinition = {\n content: content,\n styles: styles\n };\n __WEBPACK_IMPORTED_MODULE_7_pdfmake_build_pdfmake___default.a.createPdf(docDefinition).download(state.auditDetails.building + ' - ' + state.auditDetails.location + ' - ' + state.auditDetails.auditor + '.pdf');\n state.downloadingPDF = false;\n });\n },\n sendReport: function sendReport(_ref37, email) {\n var commit = _ref37.commit;\n\n return new __WEBPACK_IMPORTED_MODULE_3_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n __WEBPACK_IMPORTED_MODULE_5_vue__[\"a\" /* default */].axios.post(window.config.apiUrl + 'audit/sendreport?auditKey=' + state.auditDetails.key + '&email=' + email).then(function (response) {\n resolve(response);\n }).catch(function (error) {\n reject(error);\n });\n });\n },\n notifyAdminsAuditIsComplete: function notifyAdminsAuditIsComplete(_ref38) {\n var commit = _ref38.commit;\n\n return new __WEBPACK_IMPORTED_MODULE_3_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n __WEBPACK_IMPORTED_MODULE_5_vue__[\"a\" /* default */].axios.get(window.config.apiUrl + 'audit/sendcompletionemail?auditID=' + state.auditDetails.id).then(function (response) {\n resolve(response);\n }).catch(function (error) {\n reject(error);\n });\n });\n }\n};\n\nvar getters = {\n sections: function sections() {\n if (state.audit === '') return;\n return state.audit.filter(function (thing, index, self) {\n return self.findIndex(function (t) {\n return t.Section.ID === thing.Section.ID && t.Section.Text === thing.Section.Text;\n }) === index;\n });\n },\n audit: function audit() {\n return state.audit;\n },\n auditDetails: function auditDetails() {\n return state.auditDetails;\n },\n userAudits: function userAudits() {\n return state.audits;\n },\n auditScore: function auditScore() {\n var score = 0;\n\n state.audit.forEach(function (x) {\n if (x.Answer.Value !== null) {\n score += x.Answer.Value;\n }\n });\n\n score = (score / (state.audit.length * 4) * 100).toFixed(0).replace('.00', '');\n\n return score;\n }\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n state: state,\n mutations: mutations,\n actions: actions,\n getters: getters\n});\n\n/***/ }),\n\n/***/ 344:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_json_stringify__ = __webpack_require__(136);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_json_stringify___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_json_stringify__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_promise__ = __webpack_require__(43);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_promise___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_promise__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue__ = __webpack_require__(32);\n\n\n\n\nvar state = {\n token: null,\n role: null,\n user: null\n};\n\nvar mutations = {\n SET_USER_TOKEN: function SET_USER_TOKEN(state, token) {\n var _token = void 0;\n\n try {\n _token = JSON.parse(localStorage.getItem('token'));\n } catch (e) {\n localStorage.removeItem('token');\n _token = null;\n }\n\n state.token = _token;\n },\n SET_USER_DETAILS: function SET_USER_DETAILS(state) {\n var _userDetails = void 0;\n\n try {\n _userDetails = JSON.parse(localStorage.getItem('user_details'));\n } catch (e) {\n localStorage.removeItem('user_details');\n _userDetails = null;\n }\n\n state.user = _userDetails;\n },\n LOGOUT: function LOGOUT(state) {\n localStorage.removeItem('token');\n localStorage.removeItem('user_details');\n state.token = null;\n state.role = null;\n state.user = null;\n state.audits = [];\n }\n};\n\nvar actions = {\n login: function login(_ref, _ref2) {\n var commit = _ref.commit;\n var email = _ref2.email,\n password = _ref2.password;\n\n return new __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n __WEBPACK_IMPORTED_MODULE_2_vue__[\"a\" /* default */].axios.post(window.config.apiUrl + 'jwt/AuthUser', {\n Email: email,\n Password: password\n }).then(function (response) {\n if (response.data !== '') {\n localStorage.setItem('token', __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_json_stringify___default()(response.data.token));\n localStorage.setItem('user_details', __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_json_stringify___default()(response.data.user_details));\n\n commit('SET_USER_DETAILS');\n\n commit('SET_USER_TOKEN');\n resolve(response);\n } else {\n reject(new Error('Authentication failed!'));\n }\n }).catch(function (error) {\n localStorage.removeItem('token');\n localStorage.removeItem('user_details');\n reject(error);\n });\n });\n },\n logout: function logout(_ref3) {\n var commit = _ref3.commit;\n\n return new __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n commit('LOGOUT');\n resolve();\n });\n },\n setUserToken: function setUserToken(_ref4) {\n var commit = _ref4.commit;\n\n commit('SET_USER_TOKEN');\n },\n setUserRole: function setUserRole(_ref5) {\n var commit = _ref5.commit;\n\n if (localStorage.getItem('user_details') === null) return;\n state.role = JSON.parse(localStorage.getItem('user_details')).roles[0].name;\n },\n requestPasswordReset: function requestPasswordReset(_ref6, email) {\n var commit = _ref6.commit;\n\n return new __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n __WEBPACK_IMPORTED_MODULE_2_vue__[\"a\" /* default */].axios.post(window.config.apiUrl + 'Users/RequestPasswordReset', {\n Email: email\n }).then(function (response) {\n resolve(response);\n }).catch(function (error) {\n localStorage.removeItem('token');\n localStorage.removeItem('user_details');\n reject(error);\n });\n });\n },\n setNewPassword: function setNewPassword(_ref7, user) {\n var commit = _ref7.commit;\n\n return new __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n __WEBPACK_IMPORTED_MODULE_2_vue__[\"a\" /* default */].axios.post(window.config.apiUrl + 'Users/SetNewPassword', user).then(function (response) {\n resolve(response);\n }).catch(function (error) {\n reject(error);\n });\n });\n },\n updateNotificationConfig: function updateNotificationConfig(_ref8) {\n var state = _ref8.state,\n commit = _ref8.commit,\n rootState = _ref8.rootState;\n\n var user = JSON.parse(localStorage.getItem('user_details'));\n\n var newNotificationValue = typeof user.notificationsConfig === 'undefined' || user.notificationsConfig === null ? false : !user.notificationsConfig[0].optIn;\n\n return new __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n __WEBPACK_IMPORTED_MODULE_2_vue__[\"a\" /* default */].axios.post(window.config.apiUrl + 'Users/UpdateNotificationsConfig', {\n notificationsConfig: [{\n optIn: newNotificationValue\n }]\n }).then(function (response) {\n user.notificationsConfig = [{\n optIn: newNotificationValue\n }];\n\n localStorage.setItem('user_details', __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_json_stringify___default()(user));\n\n commit('SET_USER_DETAILS');\n resolve(response);\n }).catch(function (error) {\n alert('Something went wrong, we couldn\\'t update your settings.');\n console.error(error);\n reject(error);\n });\n });\n }\n};\n\nvar getters = {\n loggedUser: function loggedUser() {\n return state.user || JSON.parse(localStorage.getItem('user_details'));\n },\n token: function token() {\n return state.token ? 'Bearer ' + state.token.access_token : null;\n },\n getAuthenticationHeader: function getAuthenticationHeader() {\n return state.token ? { 'Authorization': 'Bearer ' + state.token.access_token } : null;\n },\n getUserRole: function getUserRole() {\n return state.role;\n }\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n state: state,\n mutations: mutations,\n actions: actions,\n getters: getters\n});\n\n/***/ }),\n\n/***/ 345:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise__ = __webpack_require__(43);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue__ = __webpack_require__(32);\n\n\n\nvar state = {\n building: {},\n buildings: []\n};\n\nvar mutations = {\n SET_BUILDING: function SET_BUILDING(_ref, value) {\n var commit = _ref.commit;\n\n state.building = value || {};\n },\n SET_BUILDINGS: function SET_BUILDINGS(_ref2, value) {\n var commit = _ref2.commit;\n\n state.buildings = value || [];\n },\n ADD_BUILDING: function ADD_BUILDING(_ref3, value) {\n var commit = _ref3.commit;\n\n state.buildings.push(value);\n },\n REMOVE_BUILDING: function REMOVE_BUILDING(_ref4, value) {\n var commit = _ref4.commit;\n\n state.buildings.splice(state.buildings.indexOf(value), 1);\n }\n};\n\nvar actions = {\n getBuildings: function getBuildings(_ref5) {\n var commit = _ref5.commit;\n\n return new __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n __WEBPACK_IMPORTED_MODULE_1_vue__[\"a\" /* default */].axios.get(window.config.apiUrl + 'building/getall').then(function (response) {\n commit('SET_BUILDINGS', response.data);\n resolve(response);\n }).catch(function (error) {\n reject(error);\n });\n });\n },\n getBuildingsByLocation: function getBuildingsByLocation(_ref6, locationID) {\n var commit = _ref6.commit;\n\n var params = typeof locationID !== 'undefined' ? '?locationID=' + locationID : '';\n\n return new __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n __WEBPACK_IMPORTED_MODULE_1_vue__[\"a\" /* default */].axios.get(window.config.apiUrl + 'building/getbylocation' + params).then(function (response) {\n commit('SET_BUILDINGS', response.data);\n resolve(response);\n }).catch(function (error) {\n reject(error);\n });\n });\n },\n createBuilding: function createBuilding(_ref7, building) {\n var commit = _ref7.commit;\n\n return new __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n var location = building.locationId !== null ? { Id: building.locationId } : null;\n\n __WEBPACK_IMPORTED_MODULE_1_vue__[\"a\" /* default */].axios.post(window.config.apiUrl + 'building/create', {\n Name: building.name,\n Location: location\n }).then(function (response) {\n if (response.data !== '') {\n commit('ADD_BUILDING', response.data);\n resolve(response);\n } else {\n reject(new Error('Building already exists.'));\n }\n }).catch(function (error) {\n reject(error);\n });\n });\n },\n updateBuilding: function updateBuilding(_ref8, building) {\n var commit = _ref8.commit;\n\n return new __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n __WEBPACK_IMPORTED_MODULE_1_vue__[\"a\" /* default */].axios.post(window.config.apiUrl + 'building/update', {\n ID: building.ID,\n Name: building.Name\n }).then(function (response) {\n resolve(response);\n }).catch(function (error) {\n reject(error);\n });\n });\n },\n deleteBuilding: function deleteBuilding(_ref9, building) {\n var commit = _ref9.commit;\n\n return new __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n __WEBPACK_IMPORTED_MODULE_1_vue__[\"a\" /* default */].axios.post(window.config.apiUrl + 'building/delete', {\n ID: building.ID\n }).then(function (response) {\n if (response.data) {\n commit('REMOVE_BUILDING', building);\n resolve(response);\n } else {\n reject(new Error('Something went wrong.'));\n }\n }).catch(function (error) {\n reject(error);\n });\n });\n }\n};\n\nvar getters = {\n building: function building() {\n return state.building;\n },\n buildings: function buildings() {\n return state.buildings;\n },\n buildingsByLocation: function buildingsByLocation() {\n return state.buildings.reduce(function (acc, item) {\n var key = item.Location.Name;\n acc[key] = acc[key] || [];\n acc[key].push(item);\n return acc;\n }, {});\n }\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n state: state,\n mutations: mutations,\n actions: actions,\n getters: getters\n});\n\n/***/ }),\n\n/***/ 346:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise__ = __webpack_require__(43);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue__ = __webpack_require__(32);\n\n\n\nvar state = {\n stats: [],\n graphData: {},\n graphDataAvg: {}\n};\n\nvar mutations = {\n SET_DASHBOARD_STATS: function SET_DASHBOARD_STATS(state, data) {\n state.stats = data;\n },\n SET_GRAPH_DATA: function SET_GRAPH_DATA(_ref, _ref2) {\n var commit = _ref.commit;\n var labels = _ref2.labels,\n data = _ref2.data;\n\n state.graphData = {\n labels: labels,\n data: data\n };\n },\n SET_GRAPH_DATA_AVG: function SET_GRAPH_DATA_AVG(_ref3, _ref4) {\n var commit = _ref3.commit;\n var labels = _ref4.labels,\n data = _ref4.data;\n\n state.graphDataAvg = {\n labels: labels,\n data: data\n };\n }\n};\n\nvar actions = {\n getDashboardStats: function getDashboardStats(_ref5) {\n var commit = _ref5.commit;\n\n return new __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n __WEBPACK_IMPORTED_MODULE_1_vue__[\"a\" /* default */].axios.get(window.config.apiUrl + 'users/GetDashboardStats').then(function (response) {\n commit('SET_DASHBOARD_STATS', response.data);\n resolve(response);\n }).catch(function (error) {\n reject(error);\n });\n });\n },\n setGraphData: function setGraphData(_ref6, _ref7) {\n var commit = _ref6.commit;\n var labels = _ref7.labels,\n data = _ref7.data;\n\n commit('SET_GRAPH_DATA', { labels: labels, data: data });\n },\n setGraphDataAvg: function setGraphDataAvg(_ref8, _ref9) {\n var commit = _ref8.commit;\n var labels = _ref9.labels,\n data = _ref9.data;\n\n commit('SET_GRAPH_DATA_AVG', { labels: labels, data: data });\n }\n};\n\nvar getters = {\n getDashboardStats: function getDashboardStats() {\n return state.stats;\n },\n getGraphData: function getGraphData() {\n return state.graphData;\n },\n getGraphDataAvg: function getGraphDataAvg() {\n return state.graphDataAvg;\n }\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n state: state,\n mutations: mutations,\n actions: actions,\n getters: getters\n});\n\n/***/ }),\n\n/***/ 347:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar state = {\n isDropdownMenuOpen: false,\n logo: 'data:image/png;base64,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',\n menu: []\n};\n\nvar mutations = {\n TOGGLE_DROPDOW_MENU: function TOGGLE_DROPDOW_MENU(state, value) {\n state.isDropdownMenuOpen = value;\n },\n SET_MENU: function SET_MENU(state, options) {\n state.menu = options;\n }\n};\n\nvar actions = {\n toggleDropDownMenu: function toggleDropDownMenu(_ref, value) {\n var commit = _ref.commit;\n\n commit('TOGGLE_DROPDOW_MENU', value);\n }\n};\n\nvar getters = {\n dropDownMenuState: function dropDownMenuState(state) {\n return state.isDropdownMenuOpen;\n },\n logo: function logo(state) {\n return state.logo;\n },\n menu: function menu(state, getters, rootState) {\n if (rootState.auth.role === 'SuperAdmin' || rootState.auth.role === 'Admin') {\n return [{\n name: 'Dashboard',\n link: '/admin/dashboard'\n }, {\n name: 'Locations',\n link: '/admin/locations'\n }, {\n name: 'Users',\n link: '/admin/users'\n }, {\n name: 'Buildings',\n link: '/admin/buildings'\n }, {\n name: 'Audit Templates',\n link: '/admin/templates'\n }, {\n name: 'Audits',\n link: '/audits'\n }];\n } else {\n return [{\n name: 'Audits',\n link: '/audits'\n }];\n }\n }\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n state: state,\n mutations: mutations,\n actions: actions,\n getters: getters\n});\n\n/***/ }),\n\n/***/ 348:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise__ = __webpack_require__(43);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue__ = __webpack_require__(32);\n\n\n\nvar state = {\n location: {},\n locations: []\n};\n\nvar mutations = {\n SET_LOCATION: function SET_LOCATION(_ref, value) {\n var commit = _ref.commit;\n\n state.location = value;\n },\n SET_LOCATIONS: function SET_LOCATIONS(_ref2, value) {\n var commit = _ref2.commit;\n\n state.locations = value || [];\n },\n ADD_LOCATION: function ADD_LOCATION(_ref3, value) {\n var commit = _ref3.commit;\n\n state.locations.push(value);\n },\n REMOVE_LOCATION: function REMOVE_LOCATION(_ref4, value) {\n var commit = _ref4.commit;\n\n state.locations.splice(state.locations.indexOf(value), 1);\n }\n};\n\nvar actions = {\n getLocations: function getLocations(_ref5) {\n var commit = _ref5.commit;\n\n return new __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n __WEBPACK_IMPORTED_MODULE_1_vue__[\"a\" /* default */].axios.get(window.config.apiUrl + 'location/getbyuser').then(function (response) {\n commit('SET_LOCATIONS', response.data);\n resolve(response);\n }).catch(function (error) {\n reject(error);\n });\n });\n },\n createLocation: function createLocation(_ref6, name) {\n var commit = _ref6.commit;\n\n return new __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n __WEBPACK_IMPORTED_MODULE_1_vue__[\"a\" /* default */].axios.post(window.config.apiUrl + 'location/create', {\n Name: name,\n TimeZone: 'US Eastern Standard Time'\n }).then(function (response) {\n if (response.data > 0) {\n commit('ADD_LOCATION', { ID: response.data, Name: name });\n resolve(response);\n } else {\n reject(new Error('Location already exists.'));\n }\n }).catch(function (error) {\n reject(error);\n });\n });\n },\n updateLocation: function updateLocation(_ref7, location) {\n var commit = _ref7.commit;\n\n return new __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n __WEBPACK_IMPORTED_MODULE_1_vue__[\"a\" /* default */].axios.post(window.config.apiUrl + 'location/update', {\n ID: location.ID,\n Name: location.Name\n }).then(function (response) {\n resolve(response);\n }).catch(function (error) {\n reject(error);\n });\n });\n },\n deleteLocation: function deleteLocation(_ref8, location) {\n var commit = _ref8.commit;\n\n return new __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n __WEBPACK_IMPORTED_MODULE_1_vue__[\"a\" /* default */].axios.post(window.config.apiUrl + 'location/delete', {\n ID: location.ID\n }).then(function (response) {\n if (response.data) {\n commit('REMOVE_LOCATION', location);\n resolve(response);\n } else {\n reject(new Error('Something went wrong.'));\n }\n }).catch(function (error) {\n reject(error);\n });\n });\n }\n};\n\nvar getters = {\n location: function location() {\n return state.location;\n },\n locations: function locations() {\n return state.locations;\n }\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n state: state,\n mutations: mutations,\n actions: actions,\n getters: getters\n});\n\n/***/ }),\n\n/***/ 349:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise__ = __webpack_require__(43);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue__ = __webpack_require__(32);\n\n\n\nvar state = {\n masterTemplate: [],\n template: [],\n templates: [],\n assignTemplateValues: {\n templateID: '',\n userID: '',\n locationID: ''\n }\n};\n\nvar mutations = {\n SET_MASTER_TEMPLATE: function SET_MASTER_TEMPLATE(_ref, value) {\n var commit = _ref.commit;\n\n state.masterTemplate = value;\n },\n SET_TEMPLATES: function SET_TEMPLATES(_ref2, value) {\n var commit = _ref2.commit;\n\n state.templates = value || [];\n },\n ADD_TEMPLATE: function ADD_TEMPLATE(_ref3, value) {\n var commit = _ref3.commit;\n\n var index = state.templates.findIndex(function (x) {\n return x.ID === value.ID;\n });\n if (index > -1) {\n state.templates[index] = value;\n } else {\n state.templates.unshift(value);\n }\n },\n DELETE_TEMPLATE: function DELETE_TEMPLATE(_ref4, template) {\n var commit = _ref4.commit;\n\n state.templates.splice(state.templates.indexOf(template), 1);\n }\n};\n\nvar actions = {\n getMasterTemplate: function getMasterTemplate(_ref5) {\n var commit = _ref5.commit;\n\n return new __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n __WEBPACK_IMPORTED_MODULE_1_vue__[\"a\" /* default */].axios.get(window.config.apiUrl + 'auditTemplate/getmaster').then(function (response) {\n commit('SET_MASTER_TEMPLATE', response.data);\n resolve(response);\n }).catch(function (error) {\n reject(error);\n });\n });\n },\n getTemplates: function getTemplates(_ref6) {\n var commit = _ref6.commit;\n\n return new __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n __WEBPACK_IMPORTED_MODULE_1_vue__[\"a\" /* default */].axios.get(window.config.apiUrl + 'auditTemplate/getbylocation').then(function (response) {\n commit('SET_TEMPLATES', response.data);\n resolve(response);\n }).catch(function (error) {\n reject(error);\n });\n });\n },\n upsertTemplate: function upsertTemplate(_ref7, _ref8) {\n var commit = _ref7.commit;\n var id = _ref8.id,\n name = _ref8.name,\n template = _ref8.template,\n isActive = _ref8.isActive,\n locationID = _ref8.locationID;\n\n return new __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n __WEBPACK_IMPORTED_MODULE_1_vue__[\"a\" /* default */].axios.post(window.config.apiUrl + 'auditTemplate/upsert', {\n id: id,\n name: name,\n locationID: locationID,\n isActive: isActive,\n template: template\n }).then(function (response) {\n commit('ADD_TEMPLATE', response.data);\n resolve(response);\n }).catch(function (error) {\n reject(error);\n });\n });\n },\n createTemplate: function createTemplate(_ref9, _ref10) {\n var commit = _ref9.commit;\n var name = _ref10.name,\n template = _ref10.template,\n locationID = _ref10.locationID;\n\n return new __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n __WEBPACK_IMPORTED_MODULE_1_vue__[\"a\" /* default */].axios.post(window.config.apiUrl + 'auditTemplate/create', {\n name: name,\n locationID: locationID,\n template: template\n }).then(function (response) {\n commit('ADD_TEMPLATE', response.data);\n resolve(response);\n }).catch(function (error) {\n reject(error);\n });\n });\n },\n deleteTemplate: function deleteTemplate(_ref11, template) {\n var commit = _ref11.commit;\n\n return new __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n __WEBPACK_IMPORTED_MODULE_1_vue__[\"a\" /* default */].axios.post(window.config.apiUrl + 'audittemplate/delete', {\n ID: template.ID\n }).then(function (response) {\n if (response) {\n commit('DELETE_TEMPLATE', template);\n }\n resolve(response);\n }).catch(function (error) {\n reject(error);\n });\n });\n }\n};\n\nvar getters = {\n masterTemplate: function masterTemplate() {\n return state.masterTemplate.reduce(function (acc, item) {\n var key = item.SectionName;\n acc[key] = acc[key] || [];\n acc[key].push(item);\n return acc;\n }, {});\n },\n template: function template() {\n return state.template;\n },\n templates: function templates() {\n return state.templates;\n },\n assignTemplateValues: function assignTemplateValues() {\n return state.assignTemplateValues;\n }\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n state: state,\n mutations: mutations,\n actions: actions,\n getters: getters\n});\n\n/***/ }),\n\n/***/ 350:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise__ = __webpack_require__(43);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_get_iterator__ = __webpack_require__(135);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_get_iterator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_get_iterator__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue__ = __webpack_require__(32);\n\n\n\n\nvar state = {\n users: [],\n roles: []\n};\n\nvar mutations = {\n SET_USERS: function SET_USERS(_ref, value) {\n var commit = _ref.commit;\n\n state.users = value || [];\n },\n SET_ROLES: function SET_ROLES(_ref2, value) {\n var commit = _ref2.commit;\n\n state.roles = value;\n },\n ADD_USER: function ADD_USER(_ref3, value) {\n var commit = _ref3.commit;\n\n state.users.push(value);\n },\n DELETE_USER: function DELETE_USER(_ref4, user) {\n var commit = _ref4.commit;\n\n state.users.splice(state.users.indexOf(user), 1);\n },\n UPDATE_USER: function UPDATE_USER(_ref5, user) {\n var commit = _ref5.commit;\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_get_iterator___default()(state.users), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var u = _step.value;\n\n if (u.ID === user.ID) {\n u.Location.ID = user.Location.ID;\n u.Location.Name = user.Location.Name;\n u.Roles[0].Name = user.Roles[0].Name;\n u.Roles[0].ID = user.Roles[0].ID;\n break;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n};\n\nvar actions = {\n getUsers: function getUsers(_ref6) {\n var commit = _ref6.commit;\n\n return new __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n __WEBPACK_IMPORTED_MODULE_2_vue__[\"a\" /* default */].axios.get(window.config.apiUrl + 'users/getbylocation').then(function (response) {\n commit('SET_USERS', response.data);\n resolve(response);\n }).catch(function (error) {\n reject(error);\n });\n });\n },\n getRoles: function getRoles(_ref7) {\n var commit = _ref7.commit;\n\n return new __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n __WEBPACK_IMPORTED_MODULE_2_vue__[\"a\" /* default */].axios.get(window.config.apiUrl + 'users/getroles').then(function (response) {\n commit('SET_ROLES', response.data);\n resolve(response);\n }).catch(function (error) {\n reject(error);\n });\n });\n },\n createUser: function createUser(_ref8, user) {\n var commit = _ref8.commit;\n\n return new __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n __WEBPACK_IMPORTED_MODULE_2_vue__[\"a\" /* default */].axios.post(window.config.apiUrl + 'users/create', user).then(function (response) {\n if (response.data !== '') {\n commit('ADD_USER', response.data);\n resolve(response);\n } else {\n reject(new Error('User already exists.'));\n }\n }).catch(function (error) {\n reject(error);\n });\n });\n },\n updateUser: function updateUser(_ref9, user) {\n var commit = _ref9.commit;\n\n return new __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n __WEBPACK_IMPORTED_MODULE_2_vue__[\"a\" /* default */].axios.post(window.config.apiUrl + 'users/update', user).then(function (response) {\n if (response.data !== -1) {\n commit('UPDATE_USER', response.data);\n } else {\n reject(new Error('The email address is already being used by another user.'));\n }\n resolve(response);\n }).catch(function (error) {\n reject(error);\n });\n });\n },\n deleteUser: function deleteUser(_ref10, user) {\n var commit = _ref10.commit;\n\n return new __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n __WEBPACK_IMPORTED_MODULE_2_vue__[\"a\" /* default */].axios.post(window.config.apiUrl + 'users/delete', user).then(function (response) {\n if (response.data) {\n commit('DELETE_USER', user);\n }\n resolve(response);\n }).catch(function (error) {\n reject(error);\n });\n });\n }\n};\n\nvar getters = {\n users: function users() {\n return state.users;\n },\n roles: function roles() {\n return state.roles;\n }\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n state: state,\n mutations: mutations,\n actions: actions,\n getters: getters\n});\n\n/***/ }),\n\n/***/ 351:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'app',\n created: function created() {\n this.$store.dispatch('setUserToken');\n this.$store.dispatch('setUserRole');\n }\n});\n\n/***/ }),\n\n/***/ 595:\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ 599:\n/***/ (function(module, exports, __webpack_require__) {\n\nvar map = {\n\t\"./af\": 195,\n\t\"./af.js\": 195,\n\t\"./ar\": 202,\n\t\"./ar-dz\": 196,\n\t\"./ar-dz.js\": 196,\n\t\"./ar-kw\": 197,\n\t\"./ar-kw.js\": 197,\n\t\"./ar-ly\": 198,\n\t\"./ar-ly.js\": 198,\n\t\"./ar-ma\": 199,\n\t\"./ar-ma.js\": 199,\n\t\"./ar-sa\": 200,\n\t\"./ar-sa.js\": 200,\n\t\"./ar-tn\": 201,\n\t\"./ar-tn.js\": 201,\n\t\"./ar.js\": 202,\n\t\"./az\": 203,\n\t\"./az.js\": 203,\n\t\"./be\": 204,\n\t\"./be.js\": 204,\n\t\"./bg\": 205,\n\t\"./bg.js\": 205,\n\t\"./bn\": 206,\n\t\"./bn.js\": 206,\n\t\"./bo\": 207,\n\t\"./bo.js\": 207,\n\t\"./br\": 208,\n\t\"./br.js\": 208,\n\t\"./bs\": 209,\n\t\"./bs.js\": 209,\n\t\"./ca\": 210,\n\t\"./ca.js\": 210,\n\t\"./cs\": 211,\n\t\"./cs.js\": 211,\n\t\"./cv\": 212,\n\t\"./cv.js\": 212,\n\t\"./cy\": 213,\n\t\"./cy.js\": 213,\n\t\"./da\": 214,\n\t\"./da.js\": 214,\n\t\"./de\": 217,\n\t\"./de-at\": 215,\n\t\"./de-at.js\": 215,\n\t\"./de-ch\": 216,\n\t\"./de-ch.js\": 216,\n\t\"./de.js\": 217,\n\t\"./dv\": 218,\n\t\"./dv.js\": 218,\n\t\"./el\": 219,\n\t\"./el.js\": 219,\n\t\"./en-au\": 220,\n\t\"./en-au.js\": 220,\n\t\"./en-ca\": 221,\n\t\"./en-ca.js\": 221,\n\t\"./en-gb\": 222,\n\t\"./en-gb.js\": 222,\n\t\"./en-ie\": 223,\n\t\"./en-ie.js\": 223,\n\t\"./en-nz\": 224,\n\t\"./en-nz.js\": 224,\n\t\"./eo\": 225,\n\t\"./eo.js\": 225,\n\t\"./es\": 227,\n\t\"./es-do\": 226,\n\t\"./es-do.js\": 226,\n\t\"./es.js\": 227,\n\t\"./et\": 228,\n\t\"./et.js\": 228,\n\t\"./eu\": 229,\n\t\"./eu.js\": 229,\n\t\"./fa\": 230,\n\t\"./fa.js\": 230,\n\t\"./fi\": 231,\n\t\"./fi.js\": 231,\n\t\"./fo\": 232,\n\t\"./fo.js\": 232,\n\t\"./fr\": 235,\n\t\"./fr-ca\": 233,\n\t\"./fr-ca.js\": 233,\n\t\"./fr-ch\": 234,\n\t\"./fr-ch.js\": 234,\n\t\"./fr.js\": 235,\n\t\"./fy\": 236,\n\t\"./fy.js\": 236,\n\t\"./gd\": 237,\n\t\"./gd.js\": 237,\n\t\"./gl\": 238,\n\t\"./gl.js\": 238,\n\t\"./gom-latn\": 239,\n\t\"./gom-latn.js\": 239,\n\t\"./he\": 240,\n\t\"./he.js\": 240,\n\t\"./hi\": 241,\n\t\"./hi.js\": 241,\n\t\"./hr\": 242,\n\t\"./hr.js\": 242,\n\t\"./hu\": 243,\n\t\"./hu.js\": 243,\n\t\"./hy-am\": 244,\n\t\"./hy-am.js\": 244,\n\t\"./id\": 245,\n\t\"./id.js\": 245,\n\t\"./is\": 246,\n\t\"./is.js\": 246,\n\t\"./it\": 247,\n\t\"./it.js\": 247,\n\t\"./ja\": 248,\n\t\"./ja.js\": 248,\n\t\"./jv\": 249,\n\t\"./jv.js\": 249,\n\t\"./ka\": 250,\n\t\"./ka.js\": 250,\n\t\"./kk\": 251,\n\t\"./kk.js\": 251,\n\t\"./km\": 252,\n\t\"./km.js\": 252,\n\t\"./kn\": 253,\n\t\"./kn.js\": 253,\n\t\"./ko\": 254,\n\t\"./ko.js\": 254,\n\t\"./ky\": 255,\n\t\"./ky.js\": 255,\n\t\"./lb\": 256,\n\t\"./lb.js\": 256,\n\t\"./lo\": 257,\n\t\"./lo.js\": 257,\n\t\"./lt\": 258,\n\t\"./lt.js\": 258,\n\t\"./lv\": 259,\n\t\"./lv.js\": 259,\n\t\"./me\": 260,\n\t\"./me.js\": 260,\n\t\"./mi\": 261,\n\t\"./mi.js\": 261,\n\t\"./mk\": 262,\n\t\"./mk.js\": 262,\n\t\"./ml\": 263,\n\t\"./ml.js\": 263,\n\t\"./mr\": 264,\n\t\"./mr.js\": 264,\n\t\"./ms\": 266,\n\t\"./ms-my\": 265,\n\t\"./ms-my.js\": 265,\n\t\"./ms.js\": 266,\n\t\"./my\": 267,\n\t\"./my.js\": 267,\n\t\"./nb\": 268,\n\t\"./nb.js\": 268,\n\t\"./ne\": 269,\n\t\"./ne.js\": 269,\n\t\"./nl\": 271,\n\t\"./nl-be\": 270,\n\t\"./nl-be.js\": 270,\n\t\"./nl.js\": 271,\n\t\"./nn\": 272,\n\t\"./nn.js\": 272,\n\t\"./pa-in\": 273,\n\t\"./pa-in.js\": 273,\n\t\"./pl\": 274,\n\t\"./pl.js\": 274,\n\t\"./pt\": 276,\n\t\"./pt-br\": 275,\n\t\"./pt-br.js\": 275,\n\t\"./pt.js\": 276,\n\t\"./ro\": 277,\n\t\"./ro.js\": 277,\n\t\"./ru\": 278,\n\t\"./ru.js\": 278,\n\t\"./sd\": 279,\n\t\"./sd.js\": 279,\n\t\"./se\": 280,\n\t\"./se.js\": 280,\n\t\"./si\": 281,\n\t\"./si.js\": 281,\n\t\"./sk\": 282,\n\t\"./sk.js\": 282,\n\t\"./sl\": 283,\n\t\"./sl.js\": 283,\n\t\"./sq\": 284,\n\t\"./sq.js\": 284,\n\t\"./sr\": 286,\n\t\"./sr-cyrl\": 285,\n\t\"./sr-cyrl.js\": 285,\n\t\"./sr.js\": 286,\n\t\"./ss\": 287,\n\t\"./ss.js\": 287,\n\t\"./sv\": 288,\n\t\"./sv.js\": 288,\n\t\"./sw\": 289,\n\t\"./sw.js\": 289,\n\t\"./ta\": 290,\n\t\"./ta.js\": 290,\n\t\"./te\": 291,\n\t\"./te.js\": 291,\n\t\"./tet\": 292,\n\t\"./tet.js\": 292,\n\t\"./th\": 293,\n\t\"./th.js\": 293,\n\t\"./tl-ph\": 294,\n\t\"./tl-ph.js\": 294,\n\t\"./tlh\": 295,\n\t\"./tlh.js\": 295,\n\t\"./tr\": 296,\n\t\"./tr.js\": 296,\n\t\"./tzl\": 297,\n\t\"./tzl.js\": 297,\n\t\"./tzm\": 299,\n\t\"./tzm-latn\": 298,\n\t\"./tzm-latn.js\": 298,\n\t\"./tzm.js\": 299,\n\t\"./uk\": 300,\n\t\"./uk.js\": 300,\n\t\"./ur\": 301,\n\t\"./ur.js\": 301,\n\t\"./uz\": 303,\n\t\"./uz-latn\": 302,\n\t\"./uz-latn.js\": 302,\n\t\"./uz.js\": 303,\n\t\"./vi\": 304,\n\t\"./vi.js\": 304,\n\t\"./x-pseudo\": 305,\n\t\"./x-pseudo.js\": 305,\n\t\"./yo\": 306,\n\t\"./yo.js\": 306,\n\t\"./zh-cn\": 307,\n\t\"./zh-cn.js\": 307,\n\t\"./zh-hk\": 308,\n\t\"./zh-hk.js\": 308,\n\t\"./zh-tw\": 309,\n\t\"./zh-tw.js\": 309\n};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) // check for number or string\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\treturn id;\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 599;\n\n/***/ }),\n\n/***/ 605:\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('router-view')\n},staticRenderFns: []}\n\n/***/ })\n\n},[342]);\n\n\n// WEBPACK FOOTER //\n// static/js/app.f456f5be68ba41cfaede.js","// Will run beforeEach\r\nexport const guardRoute = (route, redirect, next) => {\r\n // Resource: https://goo.gl/MsK7bY\r\n // Check if user is authenticated\r\n const isAuthenticated = localStorage.getItem('user_details') !== null\r\n\r\n // Allow Anonymous\r\n if (route.matched.some(record => record.meta.allowAnonymous)) {\r\n next()\r\n } else if (!isAuthenticated) { // Not authenticated\r\n next('/login')\r\n } else if (isAuthenticated) { // Authenticated\r\n next()\r\n }\r\n}\r\n\r\n// Routes\r\n// Note: The component functions, which returns the \"require\", is a must for the code splitting.\r\nexport const routes = [\r\n {\r\n path: '/',\r\n component: resolve => require(['./components/Root.vue'], resolve),\r\n children: [\r\n {\r\n path: '/',\r\n alias: '/home',\r\n component: resolve => require(['./components/Home.vue'], resolve)\r\n },\r\n {\r\n path: '/admin',\r\n alias: '/admin/dashboard',\r\n meta: { adminOnly: true },\r\n component: resolve => require(['./components/admin/dashboard/Dashboard.vue'], resolve)\r\n },\r\n {\r\n path: '/admin/users',\r\n meta: { adminOnly: true },\r\n component: resolve => require(['./components/admin/users/Users.vue'], resolve)\r\n },\r\n {\r\n path: '/admin/locations',\r\n meta: { adminOnly: true },\r\n component: resolve => require(['./components/admin/locations/Locations.vue'], resolve)\r\n },\r\n {\r\n path: '/admin/buildings',\r\n meta: { adminOnly: true },\r\n component: resolve => require(['./components/admin/buildings/Buildings.vue'], resolve)\r\n },\r\n {\r\n path: '/admin/templates',\r\n meta: { adminOnly: true },\r\n component: resolve => require(['./components/admin/templates/Templates.vue'], resolve)\r\n },\r\n {\r\n path: '/template/:id',\r\n name: 'template',\r\n component: resolve => require(['./components/admin/templates/Template.vue'], resolve)\r\n },\r\n {\r\n path: '/audits',\r\n component: resolve => require(['./components/audits/Audits.vue'], resolve)\r\n },\r\n {\r\n path: '/audit/:id',\r\n name: 'audit',\r\n component: resolve => require(['./components/audits/Audit.vue'], resolve)\r\n },\r\n {\r\n path: '/login/:action?',\r\n component: resolve => require(['./components/Login.vue'], resolve),\r\n meta: { allowAnonymous: true }\r\n },\r\n {\r\n path: '/resetpassword/:token?',\r\n component: resolve => require(['./components/ResetPassword.vue'], resolve),\r\n meta: { allowAnonymous: true }\r\n }\r\n ]\r\n },\r\n {\r\n path: '/download-audit/:key?/:userID?',\r\n component: resolve => require(['./components/audits/DownloadAudit.vue'], resolve),\r\n meta: { allowAnonymous: true }\r\n },\r\n {\r\n path: '*',\r\n component: resolve => require(['./components/error-pages/404.vue'], resolve),\r\n meta: { allowAnonymous: true }\r\n }\r\n]\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/routes.js","import Vue from 'vue'\r\nimport Vuex from 'vuex'\r\n\r\nimport global from './modules/global'\r\n\r\nimport auth from './modules/auth'\r\nimport dashboard from './modules/dashboard'\r\nimport locations from './modules/locations'\r\nimport buildings from './modules/buildings'\r\nimport users from './modules/users'\r\nimport templates from './modules/templates'\r\nimport audits from './modules/audits'\r\n\r\nVue.use(Vuex)\r\n\r\nexport default new Vuex.Store({\r\n modules: {\r\n global,\r\n auth,\r\n dashboard,\r\n locations,\r\n buildings,\r\n users,\r\n templates,\r\n audits\r\n }\r\n})\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/store.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-8eacfd06\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!sass-loader?{\\\"sourceMap\\\":true}!../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-8eacfd06\\\"}!../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 = 319\n// module chunks = 15","// Polyfill\r\nimport 'babel-polyfill'\r\n\r\n// Vue\r\nimport Vue from 'vue'\r\nimport App from './App.vue'\r\n\r\n// Router\r\nimport VueRouter from 'vue-router'\r\nimport {\r\n routes,\r\n guardRoute\r\n} from './routes'\r\n\r\n// Store\r\nimport store from './store/store'\r\n\r\n// Axios\r\nimport axios from 'axios'\r\nimport VueAxios from 'vue-axios'\r\n\r\n// Other Libraries\r\nimport VueFlatpickr from 'vue-flatpickr'\r\nimport 'vue-flatpickr/theme/airbnb.css'\r\n\r\nimport moment from 'moment'\r\nimport jwtDecode from 'jwt-decode'\r\n\r\n// Include Bulma and its overrides (it will be generated as a separate file)\r\nrequire('../static/style.scss')\r\n\r\nVue.config.productionTip = false\r\n\r\n// Router\r\nVue.use(VueRouter)\r\nconst router = new VueRouter({\r\n mode: 'history',\r\n routes\r\n})\r\n\r\nrouter.beforeEach((route, redirect, next) => {\r\n // Check if there's a token\r\n if (store.getters.token) {\r\n // Automatically log out the user if the token has expired\r\n // TODO: Token is expired - reset it\r\n // Resource: https://goo.gl/7AWk8A\r\n if (jwtDecode(store.getters.token).exp < Date.now() / 1000) {\r\n alert('Either you tried to access a restricted area or your token has expired! For security reason, please try to log in again.')\r\n store.dispatch('logout')\r\n next('/')\r\n }\r\n\r\n // User isn't allowed to see the page\r\n if (typeof route.meta.adminOnly !== 'undefined' && route.meta.adminOnly === true && !['SuperAdmin', 'Admin'].includes(JSON.parse(jwtDecode(store.getters.token).roles)[0].Name)) {\r\n // alert(`You don't have sufficient privileges to see this page.`)\r\n next('/')\r\n }\r\n }\r\n\r\n store.dispatch('toggleDropDownMenu', false)\r\n\r\n // Set default Authorization header\r\n if (store.getters.token !== null && typeof store.getters.token !== 'undefined') {\r\n axios.defaults.headers.common['Authorization'] = store.getters.token // set default header\r\n }\r\n\r\n guardRoute(route, redirect, next)\r\n})\r\n\r\n// Axios\r\nstore.dispatch('setUserToken') // Make sure we get token from local storage\r\nVue.use(VueAxios, axios.create({\r\n // baseURL: process.env.API_URL,\r\n validateStatus: status => {\r\n // Unauthorized\r\n if (status === 401) {\r\n alert('Token expired!')\r\n store.dispatch('logout')\r\n router.go('/')\r\n return false\r\n } else if (status === 403) { // Forbidden\r\n console.error(\"Seems like you don't have enough permissions to perform a specific action in this page.\")\r\n // TODO: The following two lines results in an infinite loop. Why?\r\n // store.dispatch('logout')\r\n // router.go('/')\r\n return false\r\n } else {\r\n return true\r\n }\r\n }\r\n}))\r\n\r\n// Datepicker\r\nVue.use(VueFlatpickr)\r\n\r\n// Filters (TODO: Place in a separate file)\r\nVue.filter('prettifyDate', (value) => {\r\n return moment(value).format('MM/DD/YYYY hh:mm:ssa')\r\n})\r\n\r\n// App\r\nwindow.app = new Vue({\r\n el: '#app',\r\n router,\r\n store,\r\n render: h => h(App)\r\n})\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/main.js","import Vue from 'vue'\r\nimport moment from 'moment'\r\nimport pdfMake from 'pdfmake/build/pdfmake'\r\nimport * as pdfFonts from 'pdfmake/build/vfs_fonts'\r\n\r\nconst state = {\r\n audit: [],\r\n audits: [],\r\n // Note: Had to declare this outside audit since it might need a lot of changes if it was included inside audit\r\n auditDetails: {\r\n id: null,\r\n key: null,\r\n auditor: null,\r\n location: null,\r\n building: null\r\n },\r\n downloadingPDF: false,\r\n buildingNoteComment: null\r\n}\r\n\r\nconst mutations = {\r\n SET_AUDIT({\r\n commit\r\n }, value) {\r\n state.audit = value\r\n },\r\n DELETE_AUDIT({\r\n commit\r\n }, audit) {\r\n state.audits.splice(state.audits.indexOf(audit), 1)\r\n },\r\n SET_AUDITS_TO_USER(state, audits) {\r\n state.audits = audits || []\r\n },\r\n SET_ANSWER(state, {\r\n questionID,\r\n answer\r\n }) {\r\n for (let x of state.audit) {\r\n if (x.Question.ID === questionID) {\r\n x.Answer = answer\r\n break\r\n }\r\n }\r\n },\r\n SET_COMMENTS(state, {\r\n sectionID,\r\n comments\r\n }) {\r\n state.audit.forEach((x, i) => {\r\n if (x.Section.ID === sectionID) {\r\n x.Comments = comments\r\n }\r\n })\r\n },\r\n UPDATE_UPLOAD_PROGRESS(state, {\r\n sectionID,\r\n percentCompleted\r\n }) {\r\n state.audit.filter(item => {\r\n if (item.Section.ID === sectionID) {\r\n item.UploadProgress = percentCompleted\r\n }\r\n })\r\n },\r\n SET_AUDIT_DETAILS(state, auditDetails) {\r\n state.auditDetails = auditDetails\r\n },\r\n SET_BUILDING_NOTE(state, buildingNotes) {\r\n state.buildingNoteComment = buildingNotes\r\n }\r\n}\r\n\r\nconst actions = {\r\n getAll({\r\n commit\r\n }) {\r\n return new Promise((resolve, reject) => {\r\n Vue.axios.get(`${window.config.apiUrl}audit/getall`)\r\n .then(response => {\r\n // commit('SET_AUDITS_TO_USER', response.data)\r\n resolve(response)\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n updateBuildingNote({\r\n commit\r\n }, {surveyId, comment, isDefault}) {\r\n state.auditDetails.buildingNotes = comment\r\n console.log(state)\r\n console.log(state.auditDetails)\r\n console.log(state.auditDetails.buildingNotes)\r\n return new Promise((resolve, reject) => {\r\n Vue.axios.post(`${window.config.apiUrl}audit/updatebuildingnote?surveyId=${surveyId}&comment=${comment}&isDefault=${isDefault}`)\r\n .then(response => {\r\n resolve(response)\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n getBuildingNotes({\r\n commit\r\n }, surveyId) {\r\n return new Promise((resolve, reject) => {\r\n Vue.axios.get(`${window.config.apiUrl}audit/GetBuildingNotes?surveyId=${surveyId}`)\r\n .then(response => {\r\n if (response.data !== '') {\r\n commit('SET_BUILDING_NOTE', response.data.buildingNoteComment)\r\n }\r\n resolve(response.data)\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n getAudit({\r\n commit\r\n }, value) {\r\n return new Promise((resolve, reject) => {\r\n Vue.axios.get(`${window.config.apiUrl}audit/get?id=${value}`)\r\n .then(response => {\r\n if (response.data !== '') {\r\n commit('SET_AUDIT', response.data.audit)\r\n commit('SET_AUDIT_DETAILS', response.data.auditDetails)\r\n }\r\n resolve(response)\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n getAuditByKey({\r\n commit\r\n }, {\r\n key,\r\n userID\r\n }) {\r\n return new Promise((resolve, reject) => {\r\n Vue.axios.get(`${window.config.apiUrl}audit/getbykey?key=${key}&userID=${userID}`)\r\n .then(response => {\r\n if (response.data !== '') {\r\n commit('SET_AUDIT', response.data.audit)\r\n commit('SET_AUDIT_DETAILS', response.data.auditDetails)\r\n }\r\n resolve(response)\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n getAuditsAssignedToUser({\r\n commit\r\n }) {\r\n return new Promise((resolve, reject) => {\r\n Vue.axios.get(`${window.config.apiUrl}audit/GetAssignedToUser`)\r\n .then(response => {\r\n commit('SET_AUDITS_TO_USER', response.data)\r\n resolve(response)\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n getAuditsByLocation({\r\n commit\r\n }) {\r\n return new Promise((resolve, reject) => {\r\n Vue.axios.get(`${window.config.apiUrl}audit/getbylocation`)\r\n .then(response => {\r\n commit('SET_AUDITS_TO_USER', response.data)\r\n resolve(response)\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n assignAudit({\r\n commit\r\n }, {\r\n templateID,\r\n buildingID,\r\n userID\r\n }) {\r\n return new Promise((resolve, reject) => {\r\n Vue.axios.post(`${window.config.apiUrl}audit/create`, {\r\n TemplateID: templateID,\r\n BuildingID: buildingID,\r\n AssignedTo: userID\r\n })\r\n .then(response => {\r\n resolve(response)\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n deleteAudit({\r\n commit\r\n }, audit) {\r\n return new Promise((resolve, reject) => {\r\n Vue.axios.post(`${window.config.apiUrl}audit/delete`, {\r\n ID: audit.ID\r\n })\r\n .then(response => {\r\n if (response) {\r\n commit('DELETE_AUDIT', audit)\r\n }\r\n resolve(response)\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n updateAnswer({\r\n commit\r\n }, {\r\n auditID,\r\n questionID,\r\n answer\r\n }) {\r\n return new Promise((resolve, reject) => {\r\n // set answer on audit state\r\n commit('SET_ANSWER', {\r\n questionID,\r\n answer\r\n })\r\n\r\n // create an object with the required format: Example: [{\"QuestionID\": 1, \"AnswerID\": 4, Photos: []}, {\"QuestionID\": 2, \"AnswerID\": 3, Photos: []}]\r\n let answers = state.audit\r\n answers = answers.filter(item => item.Answer.ID !== null)\r\n .map(x => {\r\n return {\r\n QuestionID: x.Question.ID,\r\n AnswerID: x.Answer.ID,\r\n Photos: []\r\n }\r\n })\r\n\r\n // update on database\r\n Vue.axios.post(`${window.config.apiUrl}audit/update`, {\r\n ID: auditID,\r\n Answers: JSON.stringify(answers)\r\n })\r\n .then(response => {\r\n resolve(response)\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n updateComments({\r\n commit\r\n }, {\r\n auditID,\r\n sectionID,\r\n comments\r\n }) {\r\n return new Promise((resolve, reject) => {\r\n // set answer on audit state\r\n commit('SET_COMMENTS', {\r\n sectionID,\r\n comments\r\n })\r\n\r\n // create an object with the required format: Example: [{\"SectionID\": 1, \"Comments\": \"Testing\"}]\r\n let cmts = state.audit\r\n let sections = []\r\n\r\n cmts = cmts.filter(item => item.Section.Comments !== null) // Get only sections with comments\r\n .map(x => {\r\n // Remove duplicates (since we are looping per questions and not per sections)\r\n if (sections.indexOf(x.Section.ID) === -1) {\r\n sections.push(x.Section.ID)\r\n return {\r\n SectionID: x.Section.ID,\r\n Comments: x.Comments\r\n }\r\n }\r\n })\r\n .filter(item => item !== undefined) // Remove undefined (The previous map function still inserts an undefined object if the SectionID is already in the sections list)\r\n\r\n // update on database\r\n Vue.axios.post(`${window.config.apiUrl}audit/updateComments`, {\r\n ID: auditID,\r\n Comments: JSON.stringify(cmts)\r\n })\r\n .then(response => {\r\n resolve(response)\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n resetAuditSelection({\r\n commit\r\n }) {\r\n commit('SET_AUDIT', [])\r\n },\r\n uploadPhoto({\r\n commit\r\n }, {\r\n photos,\r\n sectionID\r\n }) {\r\n return new Promise((resolve, reject) => {\r\n let config = {\r\n onUploadProgress: function (progressEvent) {\r\n let percentCompleted = Math.round((progressEvent.loaded * 100) / progressEvent.total)\r\n commit('UPDATE_UPLOAD_PROGRESS', {\r\n sectionID,\r\n percentCompleted\r\n })\r\n }\r\n }\r\n\r\n Vue.axios.post(`${window.config.apiUrl}audit/uploadphoto`, photos, config)\r\n .then(response => {\r\n state.audit.filter(x => {\r\n if (x.Section.ID === sectionID) {\r\n if (x.Section.Photos !== null && x.Section.Photos !== '') {\r\n x.Section.Photos += ',' + response.data\r\n } else {\r\n x.Section.Photos = response.data\r\n }\r\n }\r\n })\r\n resolve(response)\r\n })\r\n .catch(err => {\r\n reject(err.message)\r\n })\r\n })\r\n },\r\n deletePhoto({\r\n commit\r\n }, {\r\n filename,\r\n auditID,\r\n sectionID\r\n }) {\r\n return new Promise((resolve, reject) => {\r\n Vue.axios.post(`${window.config.apiUrl}audit/deletephoto?filename=${filename}&auditID=${auditID}§ionID=${sectionID}`)\r\n .then(response => {\r\n // If response wasn't valir, return\r\n if (!response) return\r\n\r\n // Remove photo from audit state\r\n state.audit.filter(x => {\r\n if (x.Section.ID === sectionID) {\r\n x.Section.Photos = x.Section.Photos.replace(`${filename}`, '').replace(',,', ',')\r\n\r\n if (x.Section.Photos.charAt(0) === ',') {\r\n x.Section.Photos = x.Section.Photos.substring(1)\r\n } else if (x.Section.Photos.charAt(x.Section.Photos.length - 1) === ',') {\r\n x.Section.Photos = x.Section.Photos.substring(0, x.Section.Photos.length - 1)\r\n }\r\n }\r\n })\r\n resolve(response)\r\n })\r\n .catch(err => {\r\n reject(err.message)\r\n })\r\n })\r\n },\r\n resetUploadProgress({\r\n commit\r\n }, sectionID) {\r\n commit('UPDATE_UPLOAD_PROGRESS', {\r\n sectionID,\r\n percentCompleted: 0\r\n })\r\n },\r\n getReport({\r\n commit\r\n }, {\r\n start,\r\n end\r\n }) {\r\n return new Promise((resolve, reject) => {\r\n Vue.axios.get(`${window.config.apiUrl}report/get?start=${start}&end=${end}`)\r\n .then(response => {\r\n if (response.data === '') {\r\n reject(new Error('No data found.'))\r\n alert('No data found.')\r\n } else {\r\n resolve(response)\r\n }\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n getReportByLocation({\r\n commit\r\n }, {\r\n locationID,\r\n start,\r\n end\r\n }) {\r\n return new Promise((resolve, reject) => {\r\n Vue.axios.get(`${window.config.apiUrl}report/getByLocation?locationID=${locationID}&start=${start}&end=${end}`)\r\n .then(response => {\r\n if (response.data === '') {\r\n reject(new Error('No data found.'))\r\n } else {\r\n resolve(response)\r\n }\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n getReportByBuilding({\r\n commit\r\n }, {\r\n buildingID,\r\n start,\r\n end\r\n }) {\r\n return new Promise((resolve, reject) => {\r\n Vue.axios.get(`${window.config.apiUrl}report/getByBuilding?buildingID=${buildingID}&start=${start}&end=${end}`)\r\n .then(response => {\r\n if (response.data === '') {\r\n reject(new Error('No data found.'))\r\n } else {\r\n resolve(response)\r\n }\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n getReportByUser({\r\n commit\r\n }, {\r\n userID,\r\n start,\r\n end\r\n }) {\r\n return new Promise((resolve, reject) => {\r\n Vue.axios.get(`${window.config.apiUrl}report/getByUser?userID=${userID}&start=${start}&end=${end}`)\r\n .then(response => {\r\n if (response.data === '') {\r\n reject(new Error('No data found.'))\r\n } else {\r\n resolve(response)\r\n }\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n downloadPDF({\r\n commit,\r\n rootState\r\n }) {\r\n state.downloadingPDF = true\r\n pdfMake.vfs = pdfFonts.pdfMake.vfs\r\n // Content\r\n var content = []\r\n // Logo\r\n content.push({\r\n image: rootState.global.logo,\r\n width: 150,\r\n margin: [0, 0, 0, 25]\r\n })\r\n\r\n // Get audit score\r\n var score = 0\r\n rootState.audits.audit.forEach(x => {\r\n score += x.Answer.Value\r\n })\r\n score = ((score / rootState.audits.auditDetails.maxScore) * 100).toFixed(0).replace('.00', '') + '%'\r\n\r\n // Top details\r\n content.push({\r\n style: 'tableExample',\r\n table: {\r\n headerRows: 1,\r\n widths: [125, 150, '*', '*', '*'],\r\n body: [\r\n [{\r\n text: `Location`,\r\n fontSize: 10,\r\n bold: true\r\n },\r\n {\r\n text: `Building`,\r\n fontSize: 10,\r\n bold: true\r\n },\r\n {\r\n text: `Auditor`,\r\n fontSize: 10,\r\n bold: true,\r\n alignment: 'right'\r\n },\r\n {\r\n text: `Score`,\r\n fontSize: 10,\r\n bold: true,\r\n alignment: 'right'\r\n },\r\n {\r\n text: `Created On`,\r\n fontSize: 10,\r\n bold: true,\r\n alignment: 'right'\r\n }\r\n ],\r\n [{\r\n text: state.auditDetails.location,\r\n fontSize: 12,\r\n bold: false\r\n },\r\n {\r\n text: state.auditDetails.building,\r\n fontSize: 12,\r\n bold: false\r\n },\r\n {\r\n text: state.auditDetails.auditor,\r\n fontSize: 12,\r\n bold: false,\r\n alignment: 'right'\r\n },\r\n {\r\n text: score,\r\n fontSize: 12,\r\n bold: false,\r\n alignment: 'right'\r\n },\r\n {\r\n text: moment(state.auditDetails.createdOn).format('MM/DD/YYYY'),\r\n fontSize: 10,\r\n bold: false,\r\n alignment: 'right'\r\n }\r\n ]\r\n ]\r\n },\r\n layout: 'noBorders'\r\n })\r\n // Divider\r\n content.push({\r\n text: '__________________________________________________________________________________________________________________',\r\n color: '#ccc',\r\n fontSize: 10,\r\n margin: [0, 0, 0, 5]\r\n })\r\n var buildingNotes = state.auditDetails.buildingNotes\r\n if (buildingNotes) {\r\n content.push({\r\n text: 'Building Notes',\r\n fontSize: 14,\r\n bold: true,\r\n margin: [0, 15, 0, 5]\r\n }, {\r\n text: state.auditDetails.buildingNotes,\r\n fontSize: 12,\r\n bold: false,\r\n alignment: 'left'\r\n })\r\n }\r\n // Get unique sections\r\n var sections = [...new Set(state.audit.map(x => x.Section.ID))]\r\n // Get all filenames separately\r\n var photos = []\r\n sections.forEach(sectionID => {\r\n var filenames = state.audit.filter(y => y.Section.ID === sectionID)[0].Section.Photos\r\n if (filenames) {\r\n filenames.split(',').forEach(filename => {\r\n photos.push({\r\n sectionID,\r\n filename\r\n })\r\n })\r\n }\r\n })\r\n // Prepare a promises array to get photos first\r\n var promises = []\r\n if (photos) {\r\n photos.forEach(item => {\r\n // Fill promises array\r\n promises.push(\r\n new Promise((resolve, reject) => {\r\n Vue.axios.get(`/uploads/${state.auditDetails.id}/${item.sectionID}/resized_${item.filename}`, {\r\n responseType: 'arraybuffer'\r\n })\r\n .then((response) => {\r\n let image = btoa(new Uint8Array(response.data).reduce((data, byte) => data + String.fromCharCode(byte), ''))\r\n resolve({\r\n sectionID: item.sectionID,\r\n dataURL: `data:${response.headers['content-type'].toLowerCase()};base64,${image}`\r\n })\r\n })\r\n })\r\n )\r\n })\r\n }\r\n Promise.all(promises).then(dataURLs => {\r\n // Loop thru sections to create tables\r\n sections.forEach(sectionID => {\r\n // Section Title\r\n var title = state.audit.filter(y => y.Section.ID === sectionID)[0].Section.Text\r\n content.push({\r\n text: title,\r\n fontSize: 15,\r\n bold: true,\r\n margin: [0, 15, 0, 5]\r\n })\r\n // Table\r\n var body = []\r\n // Add Headers\r\n body.push([{\r\n text: 'Item',\r\n fontSize: 14,\r\n bold: true\r\n }, {\r\n text: 'Answer',\r\n fontSize: 14,\r\n bold: true\r\n }])\r\n // Add Rows\r\n state.audit.filter(y => y.Section.ID === sectionID).forEach(x => body.push([x.Question.Text, x.Answer.Text]))\r\n // Add Table to Content\r\n content.push({\r\n table: {\r\n // headers are automatically repeated if the table spans over multiple pages\r\n // you can declare how many rows should be treated as headers\r\n headerRows: 1,\r\n widths: ['*', 75],\r\n body\r\n }\r\n })\r\n // Comments\r\n var comments = state.audit.filter(y => y.Section.ID === sectionID)[0].Section.Comments\r\n if (comments) {\r\n content.push({\r\n text: 'Comments',\r\n fontSize: 14,\r\n bold: true,\r\n margin: [0, 15, 0, 5]\r\n }, {\r\n text: comments,\r\n fontSize: 12\r\n })\r\n }\r\n // Images\r\n var images = dataURLs.filter(x => x.sectionID === sectionID)\r\n if (images) {\r\n var columns = []\r\n var margin = [0, 10, 0, 0]\r\n var columnGap = 10\r\n images.forEach((image, i) => {\r\n // Add photo into columns array\r\n columns.push({\r\n image: image.dataURL,\r\n width: 252.5\r\n })\r\n // Whenever we got 2 columns(photos), we add them into the content\r\n if (columns.length === 2) {\r\n content.push({\r\n columns,\r\n margin,\r\n columnGap\r\n })\r\n columns = []\r\n // If it's the last image, add the single column\r\n } else if (images.length === i + 1) {\r\n content.push({\r\n columns,\r\n margin,\r\n columnGap\r\n })\r\n }\r\n })\r\n }\r\n })\r\n // Styles\r\n var styles = {\r\n header: {\r\n fontSize: 18,\r\n bold: true,\r\n margin: [0, 0, 0, 10]\r\n }\r\n }\r\n // Create and Download PDF\r\n var docDefinition = {\r\n content,\r\n styles\r\n }\r\n pdfMake.createPdf(docDefinition).download(`${state.auditDetails.building} - ${state.auditDetails.location} - ${state.auditDetails.auditor}.pdf`)\r\n state.downloadingPDF = false\r\n })\r\n },\r\n sendReport({\r\n commit\r\n }, email) {\r\n return new Promise((resolve, reject) => {\r\n Vue.axios.post(`${window.config.apiUrl}audit/sendreport?auditKey=${state.auditDetails.key}&email=${email}`)\r\n .then(response => {\r\n resolve(response)\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n notifyAdminsAuditIsComplete({\r\n commit\r\n }) {\r\n return new Promise((resolve, reject) => {\r\n Vue.axios.get(`${window.config.apiUrl}audit/sendcompletionemail?auditID=${state.auditDetails.id}`)\r\n .then(response => {\r\n resolve(response)\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n }\r\n}\r\n\r\nconst getters = {\r\n sections() {\r\n // Resource: https://goo.gl/gUuY5P (Remove duplicates from an array of objects in javascript)\r\n if (state.audit === '') return\r\n return state.audit.filter((thing, index, self) => self.findIndex((t) => {\r\n return t.Section.ID === thing.Section.ID && t.Section.Text === thing.Section.Text\r\n }) === index)\r\n },\r\n audit() {\r\n return state.audit\r\n },\r\n auditDetails() {\r\n return state.auditDetails\r\n },\r\n userAudits() {\r\n return state.audits\r\n },\r\n auditScore() {\r\n let score = 0\r\n\r\n // Sum all points\r\n state.audit.forEach(x => {\r\n if (x.Answer.Value !== null) {\r\n score += x.Answer.Value\r\n }\r\n })\r\n\r\n // Calculate score based on questions\r\n score = (score / (state.audit.length * 4) * 100).toFixed(0).replace('.00', '') // \"4\" = max score per question\r\n\r\n return score\r\n }\r\n}\r\n\r\nexport default {\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/modules/audits.js","import Vue from 'vue'\r\n\r\nconst state = {\r\n token: null,\r\n role: null,\r\n user: null\r\n}\r\n\r\nconst mutations = {\r\n SET_USER_TOKEN (state, token) {\r\n let _token\r\n\r\n try {\r\n _token = JSON.parse(localStorage.getItem('token'))\r\n } catch (e) {\r\n localStorage.removeItem('token')\r\n _token = null\r\n }\r\n\r\n state.token = _token\r\n },\r\n SET_USER_DETAILS (state) {\r\n let _userDetails\r\n\r\n try {\r\n _userDetails = JSON.parse(localStorage.getItem('user_details'))\r\n } catch (e) {\r\n localStorage.removeItem('user_details')\r\n _userDetails = null\r\n }\r\n\r\n state.user = _userDetails\r\n },\r\n LOGOUT (state) {\r\n localStorage.removeItem('token')\r\n localStorage.removeItem('user_details')\r\n state.token = null\r\n state.role = null\r\n state.user = null\r\n state.audits = []\r\n }\r\n}\r\n\r\nconst actions = {\r\n login ({ commit }, { email, password }) {\r\n return new Promise((resolve, reject) => {\r\n Vue.axios.post(`${window.config.apiUrl}jwt/AuthUser`,\r\n {\r\n Email: email,\r\n Password: password\r\n })\r\n .then(response => {\r\n if (response.data !== '') {\r\n // Save Token on local storage\r\n localStorage.setItem('token', JSON.stringify(response.data.token))\r\n localStorage.setItem('user_details', JSON.stringify(response.data.user_details))\r\n\r\n // Set user details to state.user\r\n commit('SET_USER_DETAILS')\r\n\r\n // Set Token to state.user.token\r\n commit('SET_USER_TOKEN')\r\n resolve(response)\r\n } else {\r\n reject(new Error('Authentication failed!'))\r\n }\r\n })\r\n .catch(error => {\r\n localStorage.removeItem('token')\r\n localStorage.removeItem('user_details')\r\n reject(error)\r\n })\r\n })\r\n },\r\n logout ({ commit }) {\r\n return new Promise((resolve, reject) => {\r\n commit('LOGOUT')\r\n resolve()\r\n })\r\n },\r\n setUserToken ({ commit }) {\r\n commit('SET_USER_TOKEN')\r\n },\r\n setUserRole ({ commit }) {\r\n if (localStorage.getItem('user_details') === null) return\r\n state.role = JSON.parse(localStorage.getItem('user_details')).roles[0].name\r\n },\r\n requestPasswordReset ({ commit }, email) {\r\n return new Promise((resolve, reject) => {\r\n Vue.axios.post(`${window.config.apiUrl}Users/RequestPasswordReset`,\r\n {\r\n Email: email\r\n })\r\n .then(response => {\r\n resolve(response)\r\n })\r\n .catch(error => {\r\n localStorage.removeItem('token')\r\n localStorage.removeItem('user_details')\r\n reject(error)\r\n })\r\n })\r\n },\r\n setNewPassword ({ commit }, user) {\r\n return new Promise((resolve, reject) => {\r\n Vue.axios.post(`${window.config.apiUrl}Users/SetNewPassword`, user)\r\n .then(response => {\r\n resolve(response)\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n updateNotificationConfig ({ state, commit, rootState }) {\r\n /* TODO: We might need to update this function in the future in order to reuse it for other notifications */\r\n\r\n // Get current user\r\n var user = JSON.parse(localStorage.getItem('user_details'))\r\n\r\n // Get new value to be set. Since it's a new value, users that were already logged in before this new feature was deployed,\r\n // won't have the notificationsConfig object in their user_details object.\r\n // For this reason, we need to set the new value as 'true' since this notification config will be set as 'false' by default.\r\n var newNotificationValue = typeof user.notificationsConfig === 'undefined' || user.notificationsConfig === null ? false : !user.notificationsConfig[0].optIn\r\n\r\n return new Promise((resolve, reject) => {\r\n Vue.axios.post(`${window.config.apiUrl}Users/UpdateNotificationsConfig`,\r\n {\r\n notificationsConfig: [\r\n {\r\n /* notificationTypeId: 11, */\r\n optIn: newNotificationValue\r\n }\r\n ]\r\n })\r\n .then(response => {\r\n // Update optIn value\r\n user.notificationsConfig = [\r\n {\r\n /* id: 11, */\r\n optIn: newNotificationValue\r\n }\r\n ]\r\n\r\n // Update local storage\r\n localStorage.setItem('user_details', JSON.stringify(user))\r\n\r\n // Set state.user\r\n commit('SET_USER_DETAILS')\r\n resolve(response)\r\n })\r\n .catch(error => {\r\n alert(`Something went wrong, we couldn't update your settings.`)\r\n console.error(error)\r\n reject(error)\r\n })\r\n })\r\n }\r\n}\r\n\r\nconst getters = {\r\n loggedUser () {\r\n return state.user || JSON.parse(localStorage.getItem('user_details'))\r\n },\r\n token () {\r\n return state.token ? 'Bearer ' + state.token.access_token : null\r\n },\r\n getAuthenticationHeader () {\r\n return state.token ? { 'Authorization': 'Bearer ' + state.token.access_token } : null\r\n },\r\n getUserRole () {\r\n return state.role\r\n }\r\n}\r\n\r\nexport default {\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/modules/auth.js","import Vue from 'vue'\r\n\r\nconst state = {\r\n building: {},\r\n buildings: []\r\n}\r\n\r\nconst mutations = {\r\n SET_BUILDING ({ commit }, value) {\r\n state.building = value || {}\r\n },\r\n SET_BUILDINGS ({ commit }, value) {\r\n state.buildings = value || []\r\n },\r\n ADD_BUILDING ({ commit }, value) {\r\n state.buildings.push(value)\r\n },\r\n REMOVE_BUILDING ({ commit }, value) {\r\n state.buildings.splice(state.buildings.indexOf(value), 1)\r\n }\r\n}\r\n\r\nconst actions = {\r\n getBuildings ({ commit }) {\r\n return new Promise((resolve, reject) => {\r\n Vue.axios.get(`${window.config.apiUrl}building/getall`)\r\n .then(response => {\r\n commit('SET_BUILDINGS', response.data)\r\n resolve(response)\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n getBuildingsByLocation ({ commit }, locationID) {\r\n var params = typeof locationID !== 'undefined' ? `?locationID=${locationID}` : ''\r\n\r\n return new Promise((resolve, reject) => {\r\n Vue.axios.get(`${window.config.apiUrl}building/getbylocation${params}`)\r\n .then(response => {\r\n commit('SET_BUILDINGS', response.data)\r\n resolve(response)\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n createBuilding ({ commit }, building) {\r\n return new Promise((resolve, reject) => {\r\n var location = building.locationId !== null ? { Id: building.locationId } : null\r\n\r\n Vue.axios.post(`${window.config.apiUrl}building/create`, {\r\n Name: building.name,\r\n Location: location\r\n })\r\n .then(response => {\r\n if (response.data !== '') {\r\n commit('ADD_BUILDING', response.data)\r\n resolve(response)\r\n } else {\r\n reject(new Error('Building already exists.'))\r\n }\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n updateBuilding ({ commit }, building) {\r\n return new Promise((resolve, reject) => {\r\n Vue.axios.post(`${window.config.apiUrl}building/update`, {\r\n ID: building.ID,\r\n Name: building.Name\r\n })\r\n .then(response => {\r\n resolve(response)\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n deleteBuilding ({ commit }, building) {\r\n return new Promise((resolve, reject) => {\r\n Vue.axios.post(`${window.config.apiUrl}building/delete`, {\r\n ID: building.ID\r\n })\r\n .then(response => {\r\n if (response.data) {\r\n commit('REMOVE_BUILDING', building)\r\n resolve(response)\r\n } else {\r\n reject(new Error('Something went wrong.'))\r\n }\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n }\r\n}\r\n\r\nconst getters = {\r\n building () {\r\n return state.building\r\n },\r\n buildings () {\r\n return state.buildings\r\n },\r\n buildingsByLocation () {\r\n // Group by section name\r\n // Resource: https://goo.gl/hlpGx\r\n return state.buildings.reduce((acc, item) => {\r\n var key = item.Location.Name\r\n acc[key] = acc[key] || []\r\n acc[key].push(item)\r\n return acc\r\n }, {})\r\n }\r\n}\r\n\r\nexport default {\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/modules/buildings.js","import Vue from 'vue'\r\n\r\nconst state = {\r\n stats: [],\r\n graphData: {},\r\n graphDataAvg: {}\r\n}\r\n\r\nconst mutations = {\r\n SET_DASHBOARD_STATS (state, data) {\r\n state.stats = data\r\n },\r\n SET_GRAPH_DATA ({ commit }, { labels, data }) {\r\n state.graphData = {\r\n labels: labels,\r\n data: data\r\n }\r\n },\r\n SET_GRAPH_DATA_AVG ({ commit }, { labels, data }) {\r\n state.graphDataAvg = {\r\n labels: labels,\r\n data: data\r\n }\r\n }\r\n}\r\n\r\nconst actions = {\r\n getDashboardStats ({ commit }) {\r\n return new Promise((resolve, reject) => {\r\n Vue.axios.get(`${window.config.apiUrl}users/GetDashboardStats`)\r\n .then(response => {\r\n commit('SET_DASHBOARD_STATS', response.data)\r\n resolve(response)\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n setGraphData ({ commit }, { labels, data }) {\r\n commit('SET_GRAPH_DATA', { labels, data })\r\n },\r\n setGraphDataAvg ({ commit }, { labels, data }) {\r\n commit('SET_GRAPH_DATA_AVG', { labels, data })\r\n }\r\n}\r\n\r\nconst getters = {\r\n getDashboardStats () {\r\n return state.stats\r\n },\r\n getGraphData () {\r\n return state.graphData\r\n },\r\n getGraphDataAvg () {\r\n return state.graphDataAvg\r\n }\r\n}\r\n\r\nexport default {\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/modules/dashboard.js","const state = {\r\n isDropdownMenuOpen: false,\r\n logo: `data:image/png;base64,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`,\r\n menu: []\r\n}\r\n\r\nconst mutations = {\r\n TOGGLE_DROPDOW_MENU(state, value) {\r\n state.isDropdownMenuOpen = value\r\n },\r\n SET_MENU(state, options) {\r\n state.menu = options\r\n }\r\n}\r\n\r\nconst actions = {\r\n toggleDropDownMenu({ commit }, value) {\r\n commit('TOGGLE_DROPDOW_MENU', value)\r\n }\r\n}\r\n\r\nconst getters = {\r\n dropDownMenuState: state => state.isDropdownMenuOpen,\r\n logo: state => state.logo,\r\n menu(state, getters, rootState) {\r\n if (\r\n rootState.auth.role === 'SuperAdmin' ||\r\n rootState.auth.role === 'Admin'\r\n ) {\r\n return [\r\n {\r\n name: 'Dashboard',\r\n link: '/admin/dashboard'\r\n },\r\n {\r\n name: 'Locations',\r\n link: '/admin/locations'\r\n },\r\n {\r\n name: 'Users',\r\n link: '/admin/users'\r\n },\r\n {\r\n name: 'Buildings',\r\n link: '/admin/buildings'\r\n },\r\n {\r\n name: 'Audit Templates',\r\n link: '/admin/templates'\r\n },\r\n {\r\n name: 'Audits',\r\n link: '/audits'\r\n }\r\n ]\r\n } else {\r\n return [\r\n {\r\n name: 'Audits',\r\n link: '/audits'\r\n }\r\n ]\r\n }\r\n }\r\n}\r\n\r\nexport default {\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/modules/global.js","import Vue from 'vue'\r\n\r\nconst state = {\r\n location: {},\r\n locations: []\r\n}\r\n\r\nconst mutations = {\r\n SET_LOCATION ({ commit }, value) {\r\n state.location = value\r\n },\r\n SET_LOCATIONS ({ commit }, value) {\r\n state.locations = value || []\r\n },\r\n ADD_LOCATION ({ commit }, value) {\r\n state.locations.push(value)\r\n },\r\n REMOVE_LOCATION ({ commit }, value) {\r\n state.locations.splice(state.locations.indexOf(value), 1)\r\n }\r\n}\r\n\r\nconst actions = {\r\n getLocations ({ commit }) {\r\n return new Promise((resolve, reject) => {\r\n Vue.axios.get(`${window.config.apiUrl}location/getbyuser`)\r\n .then(response => {\r\n commit('SET_LOCATIONS', response.data)\r\n resolve(response)\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n createLocation ({ commit }, name) {\r\n return new Promise((resolve, reject) => {\r\n Vue.axios.post(`${window.config.apiUrl}location/create`, {\r\n Name: name,\r\n TimeZone: 'US Eastern Standard Time'\r\n })\r\n .then(response => {\r\n if (response.data > 0) {\r\n commit('ADD_LOCATION', { ID: response.data, Name: name })\r\n resolve(response)\r\n } else {\r\n reject(new Error('Location already exists.'))\r\n }\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n updateLocation ({ commit }, location) {\r\n return new Promise((resolve, reject) => {\r\n Vue.axios.post(`${window.config.apiUrl}location/update`, {\r\n ID: location.ID,\r\n Name: location.Name\r\n })\r\n .then(response => {\r\n resolve(response)\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n deleteLocation ({ commit }, location) {\r\n return new Promise((resolve, reject) => {\r\n Vue.axios.post(`${window.config.apiUrl}location/delete`, {\r\n ID: location.ID\r\n })\r\n .then(response => {\r\n if (response.data) {\r\n commit('REMOVE_LOCATION', location)\r\n resolve(response)\r\n } else {\r\n reject(new Error('Something went wrong.'))\r\n }\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n }\r\n}\r\n\r\nconst getters = {\r\n location () {\r\n return state.location\r\n },\r\n locations () {\r\n return state.locations\r\n }\r\n}\r\n\r\nexport default {\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/modules/locations.js","import Vue from 'vue'\r\n\r\nconst state = {\r\n masterTemplate: [],\r\n template: [],\r\n templates: [],\r\n assignTemplateValues: {\r\n templateID: '',\r\n userID: '',\r\n locationID: ''\r\n }\r\n}\r\n\r\nconst mutations = {\r\n SET_MASTER_TEMPLATE({\r\n commit\r\n }, value) {\r\n state.masterTemplate = value\r\n },\r\n SET_TEMPLATES({\r\n commit\r\n }, value) {\r\n state.templates = value || []\r\n },\r\n ADD_TEMPLATE({\r\n commit\r\n }, value) {\r\n let index = state.templates.findIndex(x => {\r\n return x.ID === value.ID\r\n })\r\n if (index > -1) {\r\n state.templates[index] = value\r\n } else {\r\n state.templates.unshift(value)\r\n }\r\n },\r\n DELETE_TEMPLATE({\r\n commit\r\n }, template) {\r\n state.templates.splice(state.templates.indexOf(template), 1)\r\n }\r\n}\r\n\r\nconst actions = {\r\n getMasterTemplate({\r\n commit\r\n }) {\r\n return new Promise((resolve, reject) => {\r\n Vue.axios.get(`${window.config.apiUrl}auditTemplate/getmaster`)\r\n .then(response => {\r\n commit('SET_MASTER_TEMPLATE', response.data)\r\n resolve(response)\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n getTemplates({\r\n commit\r\n }) {\r\n return new Promise((resolve, reject) => {\r\n Vue.axios.get(`${window.config.apiUrl}auditTemplate/getbylocation`)\r\n .then(response => {\r\n commit('SET_TEMPLATES', response.data)\r\n resolve(response)\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n upsertTemplate({\r\n commit\r\n }, {\r\n id,\r\n name,\r\n template,\r\n isActive,\r\n locationID\r\n }) {\r\n return new Promise((resolve, reject) => {\r\n Vue.axios.post(`${window.config.apiUrl}auditTemplate/upsert`, {\r\n id: id,\r\n name: name,\r\n locationID: locationID,\r\n isActive: isActive,\r\n template: template\r\n })\r\n .then(response => {\r\n commit('ADD_TEMPLATE', response.data)\r\n resolve(response)\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n createTemplate({\r\n commit\r\n }, {\r\n name,\r\n template,\r\n locationID\r\n }) {\r\n return new Promise((resolve, reject) => {\r\n Vue.axios.post(`${window.config.apiUrl}auditTemplate/create`, {\r\n name: name,\r\n locationID: locationID,\r\n template: template\r\n })\r\n .then(response => {\r\n commit('ADD_TEMPLATE', response.data)\r\n resolve(response)\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n deleteTemplate({\r\n commit\r\n }, template) {\r\n return new Promise((resolve, reject) => {\r\n Vue.axios.post(`${window.config.apiUrl}audittemplate/delete`, {\r\n ID: template.ID\r\n })\r\n .then(response => {\r\n if (response) {\r\n commit('DELETE_TEMPLATE', template)\r\n }\r\n resolve(response)\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n }\r\n}\r\n\r\nconst getters = {\r\n masterTemplate() {\r\n // Group by section name\r\n // Resource: https://goo.gl/hlpGx\r\n return state.masterTemplate\r\n .reduce((acc, item) => {\r\n var key = item.SectionName\r\n acc[key] = acc[key] || []\r\n acc[key].push(item)\r\n return acc\r\n }, {})\r\n },\r\n template() {\r\n return state.template\r\n },\r\n templates() {\r\n return state.templates\r\n },\r\n assignTemplateValues() {\r\n return state.assignTemplateValues\r\n }\r\n}\r\n\r\nexport default {\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/modules/templates.js","import Vue from 'vue'\r\n\r\nconst state = {\r\n users: [],\r\n roles: []\r\n}\r\n\r\nconst mutations = {\r\n SET_USERS ({ commit }, value) {\r\n state.users = value || []\r\n },\r\n SET_ROLES ({ commit }, value) {\r\n state.roles = value\r\n },\r\n ADD_USER ({ commit }, value) {\r\n state.users.push(value)\r\n },\r\n DELETE_USER ({ commit }, user) {\r\n state.users.splice(state.users.indexOf(user), 1)\r\n },\r\n UPDATE_USER ({ commit }, user) {\r\n // TODO: Improve the following:\r\n // Maybe we just might do u = user but first we might need to check how the data from the API looks like\r\n for (let u of state.users) {\r\n if (u.ID === user.ID) {\r\n // u = user --> This didn't work for some reason. It was only updating any int value but not the strings such as \"Name\" properties.\r\n // For some other reason, values for FirstName, LastName and Email are automatically updating.\r\n // I believe it must have something with the binding - since we are binding only the ID's in our dropdowns.\r\n u.Location.ID = user.Location.ID\r\n u.Location.Name = user.Location.Name\r\n u.Roles[0].Name = user.Roles[0].Name\r\n u.Roles[0].ID = user.Roles[0].ID\r\n break\r\n }\r\n }\r\n }\r\n}\r\n\r\nconst actions = {\r\n getUsers ({ commit }) {\r\n return new Promise((resolve, reject) => {\r\n Vue.axios.get(`${window.config.apiUrl}users/getbylocation`)\r\n .then(response => {\r\n commit('SET_USERS', response.data)\r\n resolve(response)\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n getRoles ({ commit }) {\r\n return new Promise((resolve, reject) => {\r\n Vue.axios.get(`${window.config.apiUrl}users/getroles`)\r\n .then(response => {\r\n commit('SET_ROLES', response.data)\r\n resolve(response)\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n createUser ({ commit }, user) {\r\n return new Promise((resolve, reject) => {\r\n Vue.axios.post(`${window.config.apiUrl}users/create`, user)\r\n .then(response => {\r\n if (response.data !== '') {\r\n commit('ADD_USER', response.data)\r\n resolve(response)\r\n } else {\r\n reject(new Error('User already exists.'))\r\n }\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n updateUser ({ commit }, user) {\r\n return new Promise((resolve, reject) => {\r\n Vue.axios.post(`${window.config.apiUrl}users/update`, user)\r\n .then(response => {\r\n if (response.data !== -1) {\r\n commit('UPDATE_USER', response.data)\r\n } else {\r\n reject(new Error(`The email address is already being used by another user.`))\r\n }\r\n resolve(response)\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n deleteUser ({ commit }, user) {\r\n return new Promise((resolve, reject) => {\r\n Vue.axios.post(`${window.config.apiUrl}users/delete`, user)\r\n .then(response => {\r\n if (response.data) {\r\n commit('DELETE_USER', user)\r\n }\r\n resolve(response)\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n }\r\n}\r\n\r\nconst getters = {\r\n users () {\r\n return state.users\r\n },\r\n roles () {\r\n return state.roles\r\n }\r\n}\r\n\r\nexport default {\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/modules/users.js","\r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// App.vue?4b4a375c","var map = {\n\t\"./af\": 195,\n\t\"./af.js\": 195,\n\t\"./ar\": 202,\n\t\"./ar-dz\": 196,\n\t\"./ar-dz.js\": 196,\n\t\"./ar-kw\": 197,\n\t\"./ar-kw.js\": 197,\n\t\"./ar-ly\": 198,\n\t\"./ar-ly.js\": 198,\n\t\"./ar-ma\": 199,\n\t\"./ar-ma.js\": 199,\n\t\"./ar-sa\": 200,\n\t\"./ar-sa.js\": 200,\n\t\"./ar-tn\": 201,\n\t\"./ar-tn.js\": 201,\n\t\"./ar.js\": 202,\n\t\"./az\": 203,\n\t\"./az.js\": 203,\n\t\"./be\": 204,\n\t\"./be.js\": 204,\n\t\"./bg\": 205,\n\t\"./bg.js\": 205,\n\t\"./bn\": 206,\n\t\"./bn.js\": 206,\n\t\"./bo\": 207,\n\t\"./bo.js\": 207,\n\t\"./br\": 208,\n\t\"./br.js\": 208,\n\t\"./bs\": 209,\n\t\"./bs.js\": 209,\n\t\"./ca\": 210,\n\t\"./ca.js\": 210,\n\t\"./cs\": 211,\n\t\"./cs.js\": 211,\n\t\"./cv\": 212,\n\t\"./cv.js\": 212,\n\t\"./cy\": 213,\n\t\"./cy.js\": 213,\n\t\"./da\": 214,\n\t\"./da.js\": 214,\n\t\"./de\": 217,\n\t\"./de-at\": 215,\n\t\"./de-at.js\": 215,\n\t\"./de-ch\": 216,\n\t\"./de-ch.js\": 216,\n\t\"./de.js\": 217,\n\t\"./dv\": 218,\n\t\"./dv.js\": 218,\n\t\"./el\": 219,\n\t\"./el.js\": 219,\n\t\"./en-au\": 220,\n\t\"./en-au.js\": 220,\n\t\"./en-ca\": 221,\n\t\"./en-ca.js\": 221,\n\t\"./en-gb\": 222,\n\t\"./en-gb.js\": 222,\n\t\"./en-ie\": 223,\n\t\"./en-ie.js\": 223,\n\t\"./en-nz\": 224,\n\t\"./en-nz.js\": 224,\n\t\"./eo\": 225,\n\t\"./eo.js\": 225,\n\t\"./es\": 227,\n\t\"./es-do\": 226,\n\t\"./es-do.js\": 226,\n\t\"./es.js\": 227,\n\t\"./et\": 228,\n\t\"./et.js\": 228,\n\t\"./eu\": 229,\n\t\"./eu.js\": 229,\n\t\"./fa\": 230,\n\t\"./fa.js\": 230,\n\t\"./fi\": 231,\n\t\"./fi.js\": 231,\n\t\"./fo\": 232,\n\t\"./fo.js\": 232,\n\t\"./fr\": 235,\n\t\"./fr-ca\": 233,\n\t\"./fr-ca.js\": 233,\n\t\"./fr-ch\": 234,\n\t\"./fr-ch.js\": 234,\n\t\"./fr.js\": 235,\n\t\"./fy\": 236,\n\t\"./fy.js\": 236,\n\t\"./gd\": 237,\n\t\"./gd.js\": 237,\n\t\"./gl\": 238,\n\t\"./gl.js\": 238,\n\t\"./gom-latn\": 239,\n\t\"./gom-latn.js\": 239,\n\t\"./he\": 240,\n\t\"./he.js\": 240,\n\t\"./hi\": 241,\n\t\"./hi.js\": 241,\n\t\"./hr\": 242,\n\t\"./hr.js\": 242,\n\t\"./hu\": 243,\n\t\"./hu.js\": 243,\n\t\"./hy-am\": 244,\n\t\"./hy-am.js\": 244,\n\t\"./id\": 245,\n\t\"./id.js\": 245,\n\t\"./is\": 246,\n\t\"./is.js\": 246,\n\t\"./it\": 247,\n\t\"./it.js\": 247,\n\t\"./ja\": 248,\n\t\"./ja.js\": 248,\n\t\"./jv\": 249,\n\t\"./jv.js\": 249,\n\t\"./ka\": 250,\n\t\"./ka.js\": 250,\n\t\"./kk\": 251,\n\t\"./kk.js\": 251,\n\t\"./km\": 252,\n\t\"./km.js\": 252,\n\t\"./kn\": 253,\n\t\"./kn.js\": 253,\n\t\"./ko\": 254,\n\t\"./ko.js\": 254,\n\t\"./ky\": 255,\n\t\"./ky.js\": 255,\n\t\"./lb\": 256,\n\t\"./lb.js\": 256,\n\t\"./lo\": 257,\n\t\"./lo.js\": 257,\n\t\"./lt\": 258,\n\t\"./lt.js\": 258,\n\t\"./lv\": 259,\n\t\"./lv.js\": 259,\n\t\"./me\": 260,\n\t\"./me.js\": 260,\n\t\"./mi\": 261,\n\t\"./mi.js\": 261,\n\t\"./mk\": 262,\n\t\"./mk.js\": 262,\n\t\"./ml\": 263,\n\t\"./ml.js\": 263,\n\t\"./mr\": 264,\n\t\"./mr.js\": 264,\n\t\"./ms\": 266,\n\t\"./ms-my\": 265,\n\t\"./ms-my.js\": 265,\n\t\"./ms.js\": 266,\n\t\"./my\": 267,\n\t\"./my.js\": 267,\n\t\"./nb\": 268,\n\t\"./nb.js\": 268,\n\t\"./ne\": 269,\n\t\"./ne.js\": 269,\n\t\"./nl\": 271,\n\t\"./nl-be\": 270,\n\t\"./nl-be.js\": 270,\n\t\"./nl.js\": 271,\n\t\"./nn\": 272,\n\t\"./nn.js\": 272,\n\t\"./pa-in\": 273,\n\t\"./pa-in.js\": 273,\n\t\"./pl\": 274,\n\t\"./pl.js\": 274,\n\t\"./pt\": 276,\n\t\"./pt-br\": 275,\n\t\"./pt-br.js\": 275,\n\t\"./pt.js\": 276,\n\t\"./ro\": 277,\n\t\"./ro.js\": 277,\n\t\"./ru\": 278,\n\t\"./ru.js\": 278,\n\t\"./sd\": 279,\n\t\"./sd.js\": 279,\n\t\"./se\": 280,\n\t\"./se.js\": 280,\n\t\"./si\": 281,\n\t\"./si.js\": 281,\n\t\"./sk\": 282,\n\t\"./sk.js\": 282,\n\t\"./sl\": 283,\n\t\"./sl.js\": 283,\n\t\"./sq\": 284,\n\t\"./sq.js\": 284,\n\t\"./sr\": 286,\n\t\"./sr-cyrl\": 285,\n\t\"./sr-cyrl.js\": 285,\n\t\"./sr.js\": 286,\n\t\"./ss\": 287,\n\t\"./ss.js\": 287,\n\t\"./sv\": 288,\n\t\"./sv.js\": 288,\n\t\"./sw\": 289,\n\t\"./sw.js\": 289,\n\t\"./ta\": 290,\n\t\"./ta.js\": 290,\n\t\"./te\": 291,\n\t\"./te.js\": 291,\n\t\"./tet\": 292,\n\t\"./tet.js\": 292,\n\t\"./th\": 293,\n\t\"./th.js\": 293,\n\t\"./tl-ph\": 294,\n\t\"./tl-ph.js\": 294,\n\t\"./tlh\": 295,\n\t\"./tlh.js\": 295,\n\t\"./tr\": 296,\n\t\"./tr.js\": 296,\n\t\"./tzl\": 297,\n\t\"./tzl.js\": 297,\n\t\"./tzm\": 299,\n\t\"./tzm-latn\": 298,\n\t\"./tzm-latn.js\": 298,\n\t\"./tzm.js\": 299,\n\t\"./uk\": 300,\n\t\"./uk.js\": 300,\n\t\"./ur\": 301,\n\t\"./ur.js\": 301,\n\t\"./uz\": 303,\n\t\"./uz-latn\": 302,\n\t\"./uz-latn.js\": 302,\n\t\"./uz.js\": 303,\n\t\"./vi\": 304,\n\t\"./vi.js\": 304,\n\t\"./x-pseudo\": 305,\n\t\"./x-pseudo.js\": 305,\n\t\"./yo\": 306,\n\t\"./yo.js\": 306,\n\t\"./zh-cn\": 307,\n\t\"./zh-cn.js\": 307,\n\t\"./zh-hk\": 308,\n\t\"./zh-hk.js\": 308,\n\t\"./zh-tw\": 309,\n\t\"./zh-tw.js\": 309\n};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) // check for number or string\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\treturn id;\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 599;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/moment/locale ^\\.\\/.*$\n// module id = 599\n// module chunks = 15","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('router-view')\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-8eacfd06\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/App.vue\n// module id = 605\n// module chunks = 15"],"sourceRoot":""}